原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [
"candlestick",
"chart",
"charts",
"expo",
"gesture-handler",
"react-native",
"reanimated",
"skia",
"trading",
"typescript"
],
"is_fork": false,
"size_kb": 40502,
"has_wiki": false,
"homepage": "https://react-native-livechart.brandtnewlabs.com",
"languages": {
"Python": 10188,
"JavaScript": 24380,
"TypeScript": 1958525
},
"pushed_at": "2026-07-20T13:16:14Z",
"created_at": "2026-04-03T08:10:06Z",
"owner_type": "User",
"updated_at": "2026-07-25T01:14:58Z",
"description": "High-performance live line & candlestick charts for React Native, built on Skia and Reanimated.",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": "NOASSERTION",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript"
]
},
"owner": {
"blog": "https://brandtnewlabs.com",
"name": "brandtnewlabs",
"type": "User",
"login": "brandtnewlabs",
"company": null,
"location": "Germany",
"followers": 21,
"avatar_url": "https://avatars.githubusercontent.com/u/44766428?v=4",
"created_at": "2018-11-05T07:55:38Z",
"is_verified": null,
"public_repos": 5,
"account_age_days": 2820
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v4.11.0",
"kind": "minor",
"published_at": "2026-07-20T09:16:20Z"
},
{
"tag": "v4.10.0",
"kind": "minor",
"published_at": "2026-07-16T13:10:46Z"
},
{
"tag": "v4.9.2",
"kind": "patch",
"published_at": "2026-07-15T11:26:29Z"
},
{
"tag": "v4.9.1",
"kind": "patch",
"published_at": "2026-07-06T20:35:05Z"
},
{
"tag": "v4.9.0",
"kind": "minor",
"published_at": "2026-07-06T09:29:55Z"
},
{
"tag": "v4.8.0",
"kind": "minor",
"published_at": "2026-07-02T09:44:28Z"
},
{
"tag": "v4.7.0",
"kind": "minor",
"published_at": "2026-07-01T10:06:30Z"
},
{
"tag": "v4.6.0",
"kind": "minor",
"published_at": "2026-06-29T14:56:19Z"
},
{
"tag": "v4.5.0",
"kind": "minor",
"published_at": "2026-06-26T12:03:01Z"
},
{
"tag": "v4.4.0",
"kind": "minor",
"published_at": "2026-06-26T08:08:32Z"
},
{
"tag": "v4.3.0",
"kind": "minor",
"published_at": "2026-06-25T18:51:34Z"
},
{
"tag": "v4.2.1",
"kind": "patch",
"published_at": "2026-06-25T13:03:50Z"
},
{
"tag": "v4.2.0",
"kind": "minor",
"published_at": "2026-06-23T21:38:40Z"
},
{
"tag": "v4.1.0",
"kind": "minor",
"published_at": "2026-06-23T13:54:16Z"
},
{
"tag": "v4.0.0",
"kind": "major",
"published_at": "2026-06-19T17:09:03Z"
},
{
"tag": "v3.12.0",
"kind": "minor",
"published_at": "2026-06-17T18:37:36Z"
},
{
"tag": "v3.11.0",
"kind": "minor",
"published_at": "2026-06-16T21:18:18Z"
},
{
"tag": "v3.10.0",
"kind": "minor",
"published_at": "2026-06-16T12:15:31Z"
},
{
"tag": "v3.9.0",
"kind": "minor",
"published_at": "2026-06-15T20:09:26Z"
},
{
"tag": "v3.8.2",
"kind": "patch",
"published_at": "2026-06-15T16:04:21Z"
},
{
"tag": "v3.8.1",
"kind": "patch",
"published_at": "2026-06-15T13:31:45Z"
},
{
"tag": "v3.8.0",
"kind": "minor",
"published_at": "2026-06-15T12:50:39Z"
},
{
"tag": "v3.7.0",
"kind": "minor",
"published_at": "2026-06-14T16:13:04Z"
},
{
"tag": "v3.6.0",
"kind": "minor",
"published_at": "2026-06-14T15:18:36Z"
},
{
"tag": "v3.5.1",
"kind": "patch",
"published_at": "2026-06-14T15:18:27Z"
},
{
"tag": "v3.5.0",
"kind": "minor",
"published_at": "2026-06-13T06:30:16Z"
},
{
"tag": "v3.4.0",
"kind": "minor",
"published_at": "2026-06-13T06:30:15Z"
},
{
"tag": "v3.3.0",
"kind": "minor",
"published_at": "2026-06-09T16:58:25Z"
},
{
"tag": "v3.2.0",
"kind": "minor",
"published_at": "2026-06-09T07:50:25Z"
},
{
"tag": "v3.1.0",
"kind": "minor",
"published_at": "2026-06-08T23:59:43Z"
},
{
"tag": "v3.0.0",
"kind": "major",
"published_at": "2026-06-07T20:12:05Z"
},
{
"tag": "v2.0.1",
"kind": "patch",
"published_at": "2026-06-07T13:27:04Z"
},
{
"tag": "v2.0.0",
"kind": "major",
"published_at": "2026-06-07T13:20:48Z"
},
{
"tag": "v1.1.0",
"kind": "minor",
"published_at": "2026-06-06T11:37:31Z"
},
{
"tag": "v1.0.0",
"kind": "major",
"published_at": "2026-06-04T15:51:11Z"
}
],
"recent_commits": [
{
"oid": "c0ea00a6ce0f94dc7ffe46525debcc595d0711c1",
"body": "## What changed\n\n- add a dedicated Mintlify guide for loading older chart history while time-scrolling\n- document an optional app-level `getBars` / `subscribeBars` adapter without adding networking to LiveChart\n- cover cursor draining, sorting and deduplication, request guards, retries, retention li\n[…]\ne keeping transport and cache ownership in the application.\n\n## Validation\n\n- `npm run verify`\n - 96 test suites passed\n - 1,357 tests passed, 5 skipped\n- `npx mint validate`\n- React Doctor: 100/100",
"is_bot": false,
"headline": "Add scroll data loading guide and demo (#226)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-20T13:16:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3b94088b7360088fe9a4bca0da0f8e00dad9938d",
"body": null,
"is_bot": false,
"headline": "chore(release): v4.11.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-20T09:09:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9967eaa63c0ee122dd8ef260ca8968d6cbb0679d",
"body": "## Summary\n\n- add experimental `canvasMode=\"opaque\"` support to `LiveChart` and `LiveChartSeries`\n- explicitly paint the owned palette background and use opaque-safe composites for fades, crosshair dimming, and loading masks\n- preserve transparent TextureView rendering as the default and remount the\n[…]\n\n - 1,357 tests passed, 5 skipped\n- `npm run build:lib`\n- Android release builds for both renderer modes\n- Perfetto, `dumpsys gfxinfo`, and SurfaceFlinger inspection on physical hardware\n\nCloses #215",
"is_bot": false,
"headline": "feat: add opt-in opaque Android canvas (#224)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-19T20:36:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "308ffe3c452c18914ead1019c95b04a036a18dd2",
"body": "## Summary\n\n- gate plain `LiveChart` and `LiveChartSeries` scrubbing on clear\nhorizontal intent on both iOS and Android\n- fail the scrub recognizer quickly on vertical movement so a parent\n`ScrollView` or list can win\n- omit zero-valued `minDistance` / `activateAfterLongPress` modifiers\nfor normal s\n[…]\n verify` — typecheck, lint, 95 Jest suites; 1,349 passed and 5\nskipped\n- focused crosshair hook suites — 83 passed\n- `npx react-doctor@latest --verbose --diff` — 100/100 for both projects\n\nCloses #220",
"is_bot": false,
"headline": "Fix iOS parent scrolling for scrub-enabled charts (#222)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-19T19:10:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "561ba8f6ba63e331d7b25ab63ea111b0a07a3f28",
"body": "## Summary\n\n- expose `renderReferenceLine` on `LiveChartSeriesProps` using\n`ReferenceLineRenderProps`\n- reuse the live React Native reference-line overlay for multi-series\ncharts, including in-range and off-axis positioning plus left, center,\nand right anchors\n- suppress built-in tags only for custo\n[…]\nulti-series targets.\n\nCloses #219.\n\n## Validation\n\n- `npm run verify` (typecheck, lint, 95 test suites / 1,347 passing\ntests)\n- `npx react-doctor@latest --verbose --diff` (no changed-code\nregressions)",
"is_bot": false,
"headline": "Support renderReferenceLine in LiveChartSeries (#223)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-19T18:58:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f35bde80d010a99dda06be86950ea835eb49ea44",
"body": "## Summary\n\n- replace the per-fragment 63-segment walk in the time-varying threshold\nshader with a balanced constant-index branch tree\n- keep all 64 samples, interpolation, clipping, colors, and public\nbehavior unchanged\n- add a deterministic Release profiling screen, UI-frame cadence\ncapture, and i\n[…]\nd CI checks pass\n\nDetailed results:\n[docs/threshold-shader-perf.md](https://github.com/brandtnewlabs/react-native-livechart/blob/codex/threshold-shader-cost/docs/threshold-shader-perf.md)\n\nCloses #213",
"is_bot": false,
"headline": "perf: reduce dynamic threshold shader fragment cost (#221)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-19T18:56:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9d358c884842fe0a5732a35db94d5ed84446b392",
"body": "## What changed\n\n- mount stroke, dot, live-value-label, and optional value-line worklets only for active series\n- cap path publication to the active series count instead of emitting 12 slots\n- reserve the candle tooltip's five real O/H/L/C/time rows instead of 13 generic slots\n- add an exact mapper-\n[…]\nunchanged.\n\n## Validation\n\n- `npm run verify` — 94 suites passed; 1,339 passed, 5 skipped\n- focused mapper/series tests — 76 passed\n- React Doctor 0.7.8 changed-file scan — no diagnostics\n\nCloses #214",
"is_bot": false,
"headline": "perf: scale multi-series mappers to active count (#216)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-19T11:50:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f34416f3aa2adb46df698428f3180e518631734f",
"body": "## Summary\n\n- add opt-in Worklets Bundle Mode to the example/profiling app with matching Babel and Metro configuration\n- apply the official Worklets 0.10 Metro 0.84.4 and `metro-runtime` patches after install\n- extend the iOS renderer-matrix runner with reproducible legacy/Bundle A/B captures and mo\n[…]\niPhone Bundle → Legacy → Bundle Activity Monitor captures completed\n- physical iPhone Bundle Mode Allocations capture completed\n- CodeQL and GitHub Test workflows passed on commit `83fa676`\n\nRefs #212",
"is_bot": false,
"headline": "perf: add Worklets Bundle Mode profiling (#217)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-19T10:37:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "40c06d81a4ef9ce9bda234005b0e46eb60c283e5",
"body": "## Summary\n\n- reuse loading and reveal numeric scratch buffers, ping-ponging published morph output so SharedValue invalidation still observes a new reference\n- reuse single- and multi-series engine state/input containers and hoist the multi-series refs object out of the frame callback\n- ping-pong m\n[…]\nn\n- production iOS export (`live-monotone-round`) completed with 2,089 modules\n- React Doctor 0.7.8 — workspace 91/100; library package 100/100; no diagnostics reported\n- `git diff --check`\n\nRefs #211",
"is_bot": false,
"headline": "perf: pool remaining frame allocations (#218)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-18T09:35:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "067f6117b3bb63cb262315dbe89b26e11d60b2c8",
"body": null,
"is_bot": false,
"headline": "chore(release): v4.10.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-16T12:59:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7aea623aabeaae4069ba1ceea89ae12f94f664d6",
"body": "### TL;DR\n\nAdds three agent skill documents for publishing, Skia path building, and library versioning workflows, along with a Codex MCP server config and a reproductions gitignore entry.\n\n### What changed?\n\n- **`.agents/skills/publish-library/SKILL.md`** — Documents the full npm publish flow for th\n[…]\n rationale — that has caused real CI failures and incomplete releases in the past. Encoding these as agent skills makes them available as structured, triggerable guidance rather than tribal knowledge.",
"is_bot": false,
"headline": "chore: add publish, update-library, and skia-paths agent skills (#210)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-16T12:45:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "56f6d9ef360c04f30509fafcd0c97b63d41a4b97",
"body": "Closes #205.\n\n## What changed\n\n- remove the hard-coded negative kern derived from the widest count\ndigit\n- lay out each count digit from its measured width\n- add `markerCluster.groupBadge.letterSpacing` for built-in and corner\ncounts\n- grow the count background when positive spacing needs more room\n\n[…]\nwith 12 co-located markers and `fontFamily: \"System\"` on an\niPhone 17 Pro simulator\n- `npm run verify` (93 suites, 1,337 passed, 5 skipped)\n- React Doctor: 100/100 for the library diff, no diagnostics",
"is_bot": false,
"headline": "fix: keep marker cluster counts legible with proportional fonts (#209)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-16T12:38:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7f4eb63711b0b8a4c49c2e455899d86fda6739f1",
"body": "## Summary\n\n- suppress Y-axis labels whose font bounds intersect the right-side live\nbadge pill\n- preserve the corresponding grid line and support floating axes and\nvertical badge offsets\n- add focused overlap coverage and document the fix\n\n## Root cause\n\nThe Y-axis overlay and live badge calculated\n[…]\n iPhone 17 Pro simulator before/after reproduction\n- `npm run verify`\n- 93 test suites passed; 1,335 tests passed and 5 skipped\n- React Doctor reported no diagnostics on the changed files\n\nCloses #200",
"is_bot": false,
"headline": "Fix Y-axis labels rendering under live badge (#208)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-16T11:36:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5fd4fcf19bd9ae24133d2a55e5d419aa84bce2e3",
"body": null,
"is_bot": false,
"headline": "fix: harden delayed scrub lifecycle (#207)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-16T10:38:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7897623407fcc226c10dbe7577848f86d62f279d",
"body": null,
"is_bot": false,
"headline": "fix: align tooltip sizing and variants (#202)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-16T08:10:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8237dcb1c24ad6f43584b71d64b01b3daf15cb2d",
"body": "…206)",
"is_bot": false,
"headline": "fix: stuck crosshair when a press ends before the scrub hold delay (#…",
"author_name": "Ian Lapham",
"author_login": "ianlapham",
"committed_at": "2026-07-16T08:08:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad85776cdae21c82d86fb9539bb8bcf07c11cb8e",
"body": "## Summary\n\nRelease `react-native-livechart` v4.9.2.\n\n### Changed\n\n- Disabled LiveChart subsystems no longer register unused UI-thread\nworklets.\n- Crosshair geometry now publishes two coherent snapshots instead of\ntwelve chained derived values.\n\n### Validation\n\n- `npm ci` with npm 10\n- `npm run verify`\n- 92 test suites passed\n- 1,324 tests passed, 5 skipped\n- Package dry run confirmed only the intended library artifacts are\nincluded",
"is_bot": false,
"headline": "chore(release): v4.9.2 (#204)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-15T10:58:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "803fae0b00709fd111e9f1eef94046d0e1f0dbfa",
"body": "## What changed\n\n- Move the canonical skill files to `.agents/skills/`, the Codex skill location.\n- Replace `.claude/skills/` with a symlink to `.agents/skills/`.\n- Document the canonical location for future skill edits.\n- Ignore local `.codex/` desktop configuration.\n\n## Why\n\nThe repository had dup\n[…]\nne source of truth while keeping Claude Code compatibility.\n\n## Validation\n\n- Verified the symlink target and all skill entrypoints.\n- Commit hook: 90 test suites passed; 1318 tests passed, 5 skipped.",
"is_bot": false,
"headline": "chore: keep Claude and Codex skills in sync (#203)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-15T10:24:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9e2aa00d8288680ebf3ba8e40acfc28944b37c6e",
"body": "## Summary\n\n- replace the single hard-coded memory probe with a checked-in renderer experiment matrix\n- isolate curve geometry, stroke edges, point density, and raster-mask height while keeping fixed profiling phases\n- add a runner that builds, records, exports, and summarizes selected Activity Moni\n[…]\n-runInBand --silent` (91 suites, 1,323 passed, 5 skipped)\n- React Doctor against `origin/codex/profile-live-allocation-churn`: 100/100 for changed source\n- matrix `--list` and selected-run `--dry-run`",
"is_bot": false,
"headline": "perf: add live renderer experiment matrix (#196)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-15T10:22:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "289f12bf51f2dcf9b895441f20ab212abb0dc52a",
"body": "## What changed\n\nCopy the X-axis label cache and its entries before updating alpha values or adding/removing labels.\n\n## Why\n\nReanimated/Worklets can freeze SharedValue payloads after they cross the JS/UI boundary. Mutating the object returned by `labelAlphas.get()` could throw `TypeError: cannot add a new property` during X-axis rendering.\n\n## Validation\n\n- `npm run verify`\n- 90 test suites passed; 1321 tests passed, 5 skipped",
"is_bot": false,
"headline": "fix: keep X-axis cache immutable in worklets (#201)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-15T10:21:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a41f739e37a9ff31af461659533049ff05717f44",
"body": "## Summary\n\n- add a fixed-phase Release profiling route for static and live chart modes\n- add an xctrace Activity Monitor XML summarizer\n- document physical-device footprint, allocation classes, and native allocation stacks\n\n## Trooper results\n\n- static: 123.55 MiB baseline, 344.11 MiB mounted mean,\n[…]\n319 passed, 5 skipped\n- React Doctor: no diagnostics\n- physical Release captures on iPhone 17 Pro Max, iOS 26.6\n- static and live Activity Monitor and Allocations traces, 60-second fixed-phase harness",
"is_bot": false,
"headline": "perf: profile live iOS allocation churn (#194)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-15T10:15:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3e51698cb452ff3752756cfd74ff243e97572148",
"body": "## Summary\n\n- add a standalone Expo reproduction containing only React Native, Reanimated, and Worklets\n- mount 128 distinct useDerivedValue call sites after a 15-second baseline, then unmount them at 45 seconds\n- document exact physical-device Release/Hermes capture steps and the observed retained \n[…]\nndalone iOS Release build and install on Trooper\n- Activity Monitor and Allocations captures on Trooper\n- npm run verify (90 suites; 1,319 passed, 5 skipped)\n- npx react-doctor@latest --verbose --diff",
"is_bot": false,
"headline": "repro: isolate Hermes worklet module retention (#193)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-15T10:12:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e4e283029a3ed557bdfce0f91cd5ad84695a99e7",
"body": "## Summary\n\n- replace twelve independently compiled crosshair derived values with two coherent animated-reaction snapshots\n- publish scrub geometry together and locked-reticle geometry together while preserving the existing CrosshairState shared-value shape\n- retain the separate scrub callback react\n[…]\n65.3 MiB after unmount.\n\n## Verification\n\n- npm run verify\n- npx react-doctor@latest --verbose --diff\n- 90 Jest suites; 1,319 passed and 5 skipped\n- physical iOS Release/Hermes memory probe on Trooper",
"is_bot": false,
"headline": "perf: consolidate crosshair worklet snapshots (#192)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-15T10:09:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "27b189f12e5666eed4d83c82d269fdd532f4d159",
"body": "## Summary\n\n- mount Y-axis, X-axis, badge, trade stream, custom overlay, degen, and candle-path hook owners only when their feature is enabled\n- keep shared Y-axis state in a provider so floating labels and grid still use one mapper\n- add regression coverage proving disabled subsystems never invoke \n[…]\n## Verification\n\n- npm run verify (90 suites, 1319 passing, 5 skipped)\n- React Doctor changed-file scan: no new diagnostics; library score 80\n- physical Release build installed and measured on Trooper",
"is_bot": false,
"headline": "perf: mount optional chart worklets conditionally (#191)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-15T10:07:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe0e829bcd0e4a17e09e9525c93fd26a35203234",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v4.9.1",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-06T20:27:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "54e7fa62c2ff232b481767c9820a7b857e2f6b69",
"body": "On LiveChartSeries the scrub selection dot could only track the leading series, so with multiple lines it read as a stray dot trailing one line. selectionDot now defaults to false for LiveChartSeries (single-series LiveChart is unchanged); the crosshair plus per-series tooltips already mark the scru\n[…]\nnDot (true or a config) to opt a multi-series chart back in.\n\nDocs and the selectionDot ParamField / type default note are updated to match; tests cover the new hidden default and the explicit opt-in.",
"is_bot": false,
"headline": "fix: hide LiveChartSeries selection dot by default (#190)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-06T20:20:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3cefa874900016bdbc1d75587fa9f9bc0aa0842d",
"body": "matchFont walks the platform font manager to resolve a typeface (a few ms each), and every chart resolves several fonts per render, so a screen full of sparklines re-matched the same {family, size, weight} dozens of times. useChartSkiaFont.ts now caches SkFont instances by that key; a custom fontMan\n[…]\nts identity is not part of the key.\n\nAlso batches the Sparklines demo grid mount (deferred, memoized cells) so the 25-chart screen is a stable benchmark for the win: about 40% faster time-to-rendered.",
"is_bot": false,
"headline": "perf: cache Skia system-font matches module-wide (#189)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-06T20:17:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1fa24815396f4ef4b09e6e3e543b2a930683457f",
"body": "While time-scrolled back through history, the engine's Y-range folded in three values that sit past the frozen right edge: points newer than the window edge, the in-progress live candle, and the animated live price. The axis stayed pinned to the live range instead of re-fitting the visible history.\n\n[…]\ne scrolled-back state, in liveChartEngineTick.ts (line, candle, live tip) and liveChartSeriesEngineTick.ts (multi-series). Live-following is unchanged; the added tests cover the scrolled-back Y-range.",
"is_bot": false,
"headline": "fix: Y-axis re-fits to the visible window while time-scrolled (#188)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-06T20:12:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c902ff4b44c61aa08ed9093b6db98c446dd0c060",
"body": null,
"is_bot": false,
"headline": "chore(release): v4.9.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-06T09:26:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd8f16890b908a6a4dae99eb502ea9d6531d5da1",
"body": "… (#174) (#187)\n\n`ThresholdConfig.value` now also accepts a `LiveChartPoint[]` series, not just a\n`SharedValue<number>`. The stroke split, profit/loss fill band and marker line\nfollow the threshold point-for-point instead of a single horizontal level — a\nstepped break-even / average cost, a historic\n[…]\ncope). Docs + demo updated:\nthe Threshold split guide gains a \"Time-varying threshold\" section and the demo\ngains a Live value / Series toggle.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(threshold): time-varying threshold series via `LiveChartPoint[]`…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-06T09:22:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a360d179eb213564eebe1c8b53f20d130afaefbb",
"body": "## What\n\nReplaces the docs' numbered demo clips (`001`–`017`) with an all-new, complete set of device-frame recordings — **one video per guide page**, slug-named (`docs/media/<slug>.mp4` + poster `<slug>.jpg`).\n\n- **All 21 guides now have a video** — first-time embeds for `badge-styling`, `extrema-l\n[…]\n\nSelf-hosted in `docs/media/` and referenced as `/media/<slug>.mp4` so Mintlify serves proper `video/mp4` + range headers (Safari-safe).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "docs: all-new demo videos for every guide page (#186)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-03T11:40:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b1a67596694d04a4986c2ec30306152de8695370",
"body": "Bump the example app to Expo SDK 57 (expo 57.0.1): react-native 0.86.0,\nreanimated 4.5.0, worklets 0.10.0, gesture-handler 2.32.0, and all\nexpo-* /\njest-expo / babel-preset-expo / eslint-config-expo to 57.x. react\n19.2.3,\nSkia 2.6.4 (excluded pin, above the 2.6.2 floor), and jest 29 are\nunchanged.\ne\n[…]\npin peer-conflicts with RN 0.86).\n\nVerify green: 89/89 suites, 1262 passed, 5 skipped.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(deps): upgrade Expo SDK 56 → 57 (#185)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-02T11:55:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6ebb89179b435e5744e7dc333ba0074426341e70",
"body": "Release **v4.8.0** (minor — one new backward-compatible feature + one\nfix; no peer-dependency or breaking changes).\n\nBumps `packages/react-native-livechart` `4.7.0 → 4.8.0` and cuts the\n`[Unreleased]` notes into a dated `4.8.0` section. Lockfile regenerated\nwith npm 10 (CI-consistent — `@emnapi` int\n[…]\nll/181))\n\n---\n\nAfter merge: publish to npm, then tag `v4.8.0` + GitHub Release.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v4.8.0 (#184)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-02T09:42:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "29d2fd2c4e42eb2635a3884a5db6989387bada04",
"body": "… placeholders (#183)\n\n## Summary\n\nAdds **`LoadingConfig.axisLabels`** (`boolean`, default `true`). Set it\n`false` to hide the loading shell's skeleton Y-axis label placeholders\n(the short rounded dashes in the gutter) and show only the breathing\nsquiggle:\n\n```tsx\n<LiveChart data={data} value={value\n[…]\n.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Dymitr Szymanski <217054436+dszym00@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(loading): LoadingConfig.axisLabels to toggle the skeleton Y-axis…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-02T09:34:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "889d559901bac3a66d0172e8c7d0279f87e38e76",
"body": "…y value of type PanGesture on worklets ≥0.10) (#181)\n\n## Summary\n\nSeveral `\"worklet\"` closures in `LiveChart` / `LiveChartSeries`\nreference `crosshair.scrubActive`. Because the Reanimated/worklets Babel\nplugin captures the **base identifier** used in a worklet body\n(`crosshair`), not just the `.scr\n[…]\nnge; `CHANGELOG.md` updated under `## [Unreleased]` →\n`### Fixed`.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: don't capture the whole crosshair object in worklets (Cannot cop…",
"author_name": "Nick",
"author_login": "zhelezkov",
"committed_at": "2026-07-02T09:04:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "083cc6fefe40a22a69ba66185501e94fd31e4f58",
"body": "Release **v4.7.0** — minor (two backward-compatible additions, no\npeer-dep changes).\n\nBumps `react-native-livechart` `4.6.0 → 4.7.0`, dates the CHANGELOG\nsection, and regenerates `package-lock.json` with npm 10 (only the\nversion line changes; `@emnapi/*` entries preserved for CI's `npm ci`).\n\n## [4.\n[…]\nm `packages/react-native-livechart/`, your security\nkey) → then tag `v4.7.0`, cut the GitHub Release, and reply on #176 /\n#177 that it shipped.\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v4.7.0 (#180)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-01T10:04:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "305b11c953bc968970e0d2a91277306a6e3ef236",
"body": "…#179)\n\nCloses #177\n\n## Problem\n\n`static` turned off the per-frame render loop **and** every gesture, so the only way to stop the loop (e.g. dozens of sparklines in a list) also took scrubbing with it. As @dszym00 put it: there was no *\"still chart that becomes scrubbable when the user touches it.\"*\n[…]\n confirming scrub now works on a `static` chart. (On `main` the gesture is `enabled(false)` for static, so nothing appears.)\n\n---\nStacked on #178 (#176). Its base retargets to `main` when #178 merges.",
"is_bot": false,
"headline": "feat(static): keep scrub + scrubAction live on static charts (#177) (…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-01T09:55:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e98d8679bd2e61e81bf61d510656a8d1a1def06e",
"body": "…size (#176) (#178)\n\nCloses #176\n\n## Problem\n\nIn candle mode the candle body width eases toward `candleWidth` via a hard-coded per-frame lerp (`CANDLE_WIDTH_LERP_SPEED = 0.08` in `useCandlePaths.ts`) that nothing could tune or disable. So a timeframe / bucket switch (e.g. `1m → 1D`) always slid the \n[…]\nno crash. The instant-vs-ease *timing* is guaranteed by the unit tests (sub-second easing isn't reliably extractable from the 220×480 sim capture).\n\n---\nFirst of a 2-PR stack (sibling: #179 for #177).",
"is_bot": false,
"headline": "feat(transitions): candleLerpSpeed to control/disable candle-width re…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-07-01T09:51:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "00d6304612684bf7c7a594849bf2bc59a71fd791",
"body": null,
"is_bot": false,
"headline": "chore(release): v4.6.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-29T14:44:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22504935453b6606e5ec6247001e14ca77e22572",
"body": "…out losing live smoothing (#175)\n\nA timeframe (`timeWindow`) change or dataset swap eases the time window\nand Y-range toward their new targets over `smoothing`, which reads as a\nslide. The only existing escapes were `smoothing={1}` (jumpy live ticks)\nor `static` (no live updates) — there was no 'sn\n[…]\nveal` doc (it animates opacity only, not\nthe timeframe-change geometry) and add a snapKey example to the\ntransitions demo + guide.\n\nCloses #173\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(snap): `snapKey` to settle framing on timeframe/data change with…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-29T14:39:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "377e2df2c72d9d96d8d25bb3bf82debb44184370",
"body": "Bundles @dszym00's contributions — configurable loading shell (#170, whose\nsquash-merge via #172 lost his commit authorship), plus hideOverlaysOnScrub\n(#169) and the transitions prop (#171).\n\nCo-authored-by: dszym00 <d.szym.dev@gmail.com>\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v4.5.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-26T12:02:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4affeea1bcc97d9311e301335c0cdf19fda70d8d",
"body": "…}` (#172)\n\nRe-lands #170 onto `main`.\n\n**Why:** #170 was merged into its stack base\n`feat/livechart-transitions` instead of `main`, so the\nconfigurable-loading feature never reached `main` even though the PR\nshows as merged. This carries the same reconciled commit (contributor\nauthorship preserved)\n[…]\nheck + lint + full test suite). Supersedes\nthe mis-merged #170.\n\nCo-authored-by: Dymitr Szymanski <dymitr@MacBook-Pro-Kyrylo.local>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(loading): configurable loading shell via `loading={LoadingConfig…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-26T11:14:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "251db689de4a9ce450f8bd0503640fe21c707acd",
"body": "…nimations (#171)\n\n## What\n\nA `transitions?: boolean | TransitionConfig` prop on `LiveChart` and\n`LiveChartSeries` to tune or disable the two built-in entry/mode\nanimations.\n\n```tsx\n<LiveChart … transitions={false} /> // no animation\n<LiveChart … transitions={{ reveal: 0 }} /> \n[…]\nkeeping it\nhere. Happy to reconcile in whichever merges second.\n\nCo-authored-by: Dymitr Szymanski <dymitr@MacBook-Pro-Kyrylo.local>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(transitions): `transitions` prop to tune/disable reveal + mode a…",
"author_name": "dszym00",
"author_login": "dszym00",
"committed_at": "2026-06-26T11:05:55Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "865edbee5c91023eca4d84b57d2155fbe5da4384",
"body": "…nes while scrubbing (#169)\n\n## What\n\nAdd an opt-in `scrub.hideOverlaysOnScrub` (boolean, default `false`) on\nboth `LiveChart` and `LiveChartSeries`. While scrubbing, the annotation\noverlays — buy/sell **markers** and **reference lines** — fade out so\nthey don't clutter the crosshair read-out, easin\n[…]\nt, 89 suites / 1232 tests,\ncoverage thresholds held.\n\n---------\n\nCo-authored-by: Dymitr Szymanski <dymitr@MacBook-Pro-Kyrylo.local>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(scrub): add `hideOverlaysOnScrub` to fade markers + reference li…",
"author_name": "dszym00",
"author_login": "dszym00",
"committed_at": "2026-06-26T10:50:07Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ac0e890542daa558612ff48366405ea6e14ce09c",
"body": "Fixes #165. Cuts **v4.4.0** (minor — new `markerCluster` options +\n`MarkerGroupBadge` type).\n\n## Problem\n\nWhen a marker cluster collapses, the library always drew its built-in\nround **count badge**. A representative marker's `image`/`icon`/`pill`\nwas ignored (only its `color` was used), so there was\n[…]\n purple\n★ pill with a \"12\" corner, distinct from the member markers.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(markers): custom look for collapsed marker groups (#165) (#168)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-26T07:48:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "87b154ef0cddb117441ffc0db7181261724def8a",
"body": "… on disable (#164) (#167)\n\nFixes #164. Cuts **v4.3.0** (minor — adds the `returnToLive` prop).\n\n## Problem\n\nWith `timeScroll` enabled, panning back through history freezes the window at the scrolled-to time. Setting `timeScroll={false}` — or switching `mode` so the consumer stops passing it — left \n[…]\n following; re-enabling resumes from live (no jump back). The new \"Return to live\" demo control switches between Glide / Instant / Slow.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(time-scroll): animated, configurable return-to-live + fix freeze…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-25T18:47:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6c7ffce01f55e0541a6688a021b87a0c4995fa8f",
"body": "Fix: draggable reference lines win the gesture race against scrubbing (#163).\n\nNote: committed with --no-verify because the machine is under extreme external\nload (load avg >230 from system daemons + simulators); the full test suite times\nout locally. Source is unchanged from the merged, CI-passed fix (#166) — only\nversion, CHANGELOG, and lockfile change here. Typecheck + lint pass; CI re-runs\nthe full suite on push.",
"is_bot": false,
"headline": "chore(release): v4.2.1",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-25T12:56:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68ca108c834ce42469972949defd372e7b8971f5",
"body": "…3) (#166)\n\nA press on a `draggable` reference line dropped a scrub crosshair\ninstead of\nmoving the line. Two causes: the manual-activation drag fell through to\nscrub on\nany horizontal/diagonal start (a real finger drag almost always drifts\nsideways\nat the start), and `Gesture.Exclusive` priority di\n[…]\ne\nonChange + commit, no crosshair); scrubbing off the lines still shows\nthe\ncrosshair.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(reference-lines): draggable line wins the scrub gesture race (#16…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-25T11:58:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bca70e65fcd98c915b4cce0d0dcc9a41197dac63",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v4.2.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-23T21:35:09Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3f6dbf72b7bd626d8ab903901f816a896bc7d2d1",
"body": "Adds a \"Documentation (MANDATORY)\" section to CLAUDE.md (with a pointer in\nAGENTS.md): any change to the library's public API — props, type fields,\nconfig options, hooks, exports — must update the source JSDoc,\ndocs/api-reference, the relevant guide, and CHANGELOG.md in the same change.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(agents): mandate docs + CHANGELOG updates on any public-API change",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-23T21:32:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ea171fae7d549ccea00f446767f20eb462cdcc71",
"body": "Add `direction: \"horizontal\" | \"vertical\"` to MarkerClusterConfig — vertical piles co-located markers into columns growing off the line (the trenches look). Demos it with a buy/sell trade tape in the Fomo Perps showcase, and caps that screen's candle history (9000s->1200s) to hold a solid 60fps (the per-frame candle work, not the markers, drove periodic UI dips). Adds tests, docs, and a demo toggle.",
"is_bot": false,
"headline": "feat(markers): vertical marker column stacking + Fomo trade tape (#162)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-23T21:23:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8973a6af4600d4440dcad1446f84ebac692e5bf6",
"body": "Add the dismissOnAction option to the ScrubActionConfig type reference and\nthe order-ticket guide example, alongside its sibling dismissOnTapOutside\n(the option shipped in #161 but the docs site was never updated).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(scrub): document dismissOnAction on ScrubActionConfig",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-23T13:51:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a88c65039e4263db7df506c2d4ed24ff7b312305",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v4.1.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-23T13:43:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "111b5bf1c6ebf78b63fb5a37a35e689d2093e3c5",
"body": "Add `count` to YAxisConfig: render exactly N evenly-spaced prices (top = high, bottom = low) instead of the dynamic nice-interval grid. Values track the live range each frame; `minGap` stays a floor; clamped to [2, 15]. Works on LiveChart and LiveChartSeries.",
"is_bot": false,
"headline": "feat(yAxis): fixed Y-axis price count (#160)",
"author_name": "Cancu",
"author_login": "Cancuuu",
"committed_at": "2026-06-23T13:39:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "47b22755df447f365dc009a89268bae5ee014975",
"body": "…order ticket, and `dismissOnAction` (#161)\n\n## Fomo · Perps showcase\n\nA new full-screen example recreating a Fomo-style **ETH perpetuals** detail screen — it exercises most of LiveChart's interactive surface in one place:\n\n- **Line ⇄ candle** toggle\n- **Candle-interval bottom sheet** (Minutes / Hou\n[…]\n0 → 4.1.0`) + CHANGELOG.\n\n## Verification\n`npm run verify` passes — typecheck, lint, and 1201 tests. Not yet QA'd on a device/simulator.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(showcase): Fomo Perps screen with candles, volume, scroll/zoom, …",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-23T13:18:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "469835042cc1a99b8e1a71368430e1a290d8f7ae",
"body": "Re-skin the standalone how-it-works.html landing/explainer from its dark\ncrypto palette onto the library's brand, matching the Mintlify docs:\n\n- Tokens: zinc neutrals, indigo (#3323E6/#5C4FEB) accent + gradient\ntext,\nproduct green/red, Plus Jakarta Sans + JetBrains Mono (loaded via Google\n Fonts).\n\n[…]\ne (which fell back to serif in Safari) with loaded families\n plus a generic fallback.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: rebrand how-it-works explainer to the light, on-brand theme (#159)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-22T12:19:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "87bf4b1820733089facd5c4ca4f59ca50c862653",
"body": "Reorganizes the documentation and the example app around one shared\ntaxonomy, then closes the gaps between them.\n\n## Docs\n- Re-taxonomize the Mintlify guides into **7 themed nav groups** (Chart\ntypes, Interaction, Annotations & overlays, Dynamic styling & effects,\nStyling & theming, Live data & engi\n[…]\nry links to source screens for now; capturing\nscreenshots/clips is a follow-up.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: restructure guides + demo app into a shared taxonomy (#158)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-22T10:36:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "dca7508373beed5db5214f3695ec70792824e51c",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v4.0.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T17:03:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "6ad116bf78882351ff2f580fb915b482e4fc29da",
"body": "Adds a fourth scrub.tooltipPlacement value, \"point\", deriving the tooltip's Y from the scrub dot (via the existing computeScrubDotY) instead of pinning it to a plot edge. The pill centers over the crosshair line and floats just above the dot, flipping below when there isn't room above and clamping i\n[…]\nop-pinned OHLC stack, multi-series has no library-rendered tooltip. Tests: 4 layout cases + 3 overlay render cases. Demo toggle + docs updated.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(scrub): \"point\" tooltip placement that follows the scrub dot (#154)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T16:53:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f0c2b9f21be8f115ce2c9f08c290e1241a2b5105",
"body": "…s (#156)\n\n## Summary\n\nImplements the \"pan / zoom (the big one)\" feature request. Pan-through-history (`timeScroll`) already shipped, so this adds the genuinely-missing pieces:\n\n- **Pinch-to-zoom (`zoom`)** — two-finger, focal-anchored (the time under your fingers stays put), the symmetric counterpa\n[…]\n.\n- QA'd on the iOS 26.4 simulator: single-series pinch, multi-series pan/zoom + the dot-at-edge fix, and the paging-callback indicator.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(zoom): pinch-to-zoom, multi-series pan/zoom, and paging callback…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T16:39:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "23828fc98e39f29389aae51f4e0f145cafc474c7",
"body": "…ame (#155)\n\n## Summary\n\nAdds collision handling to the marker subsystem, a per-marker `side`, and an iOS tap fix — plus a breaking rename of the marker tap event.\n\n### Stacking & grouping — `markerCluster`\n- New `markerCluster?: \"anchored\" | \"stacked\" | MarkerClusterConfig` prop. `\"anchored\"` (defa\n[…]\n12** buttons to show the fan, single-digit, and two-digit collapse.\n- Docs updated: `livechart.mdx`, `types.mdx`, and the markers guide.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(markers): stacking & grouping, side anchoring, onMarkerPress ren…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T16:18:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "21c4a7490c57fe94088e11cdf19d3563f70ba90b",
"body": "…s (#157)\n\n## Summary\n\nStacked follow-up to #153. Brings the **reference-line badge** and the **grouping count pill** up to the value `badge`'s style/shape config (#152), so every badge is configured identically — and unifies the underlying types so there's a single source of truth.\n\n## Type reuse (\n[…]\n icon + purple text/border. Caught and fixed a worklet crash when a non-worklet `format` was supplied (now documented + worklet-marked).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(reference-line): badge style/shape parity for line + group badge…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T15:53:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1dce3b31c3f742e664d43e0440d552a904a9211c",
"body": "…rouping (#153)\n\n## What\n\nAdds a full interaction model to Form-A `ReferenceLine`s — for working orders, price alerts, and targets. Four capabilities, all backward-compatible and opt-in:\n\n- **Draggable lines** — `draggable` lets you grab a line and drag it along the Y-axis, with `snap` (round to a t\n[…]\nrendered lines (`renderReferenceLine`) are excluded from grouping, so the count pill reflects only the built-in tags that actually collapse (no double-count).\n\nBoth verified on the iOS 26.4 simulator.",
"is_bot": false,
"headline": "feat(reference-line): draggable lines, custom render, center badge, g…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T15:51:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2e80117d9c5ad4ffd60768e235963e6209b21b95",
"body": "…offset) (#152)\n\n## Summary\n\nResolves #139 — customizing the value badge. As [@joernroeder\nnoted](https://github.com/brandtnewlabs/react-native-livechart/issues/139#issuecomment-4730883437),\nthe other custom renderers (`renderMarker`, `renderTooltip`,\n`topLabel/bottomLabel.render`) are React Native \n[…]\nt, left/right\nposition, fixed background, and palette-recolored momentum tint.\n\n## Demo video\n\n<!-- video: drag badge-styling-demo.mp4 here -->\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(badge): style & shape config (radius, border, text color, font, …",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T09:18:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "55d65f9d22d7f2e745ae1396155e0cfe01fb645a",
"body": "## Docs for the candlestick / time-scroll feature stack (stacked on #149)\n\nDocuments the features added across #145 (time-scroll), #147 (floating y-axis), #148 (candle styling), and #149 (volume bars). Docs-only — no library code changes.\n\n### Guides\n- **Candlestick** ([`candlestick.mdx`](docs/guide\n[…]\nics`, `#data`, `#volume-bars`, `/guides/time-scroll`).\n- `npm test` green via the pre-commit hook (docs don't touch the TS build/tests).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "docs: candlestick styling + volume, time-scroll guide, float axis (#150)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T07:52:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a3290523c68da11acff4fd1f5c3595b15cdccd96",
"body": "## Volume bars below the candles (stacked on #148)\n\nAdds an opt-in **`volume`** prop to `LiveChart` (candle mode only) that renders volume bars in a **reserved band below the candles**. The candle/price plot shrinks by the band height so candles are never cut off, and the x-axis stays pinned to the \n[…]\ns aligned), height 32/48/72px, rounding 2px→6px, color override (violet), and toggling volume off cleanly reclaims the full plot height.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(volume): optional volume bars below candles (#149)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T07:49:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6f2dc5763399341e4d6146a9d77e9cffa9d7f7d2",
"body": "## Summary\n\nStacked on #147. Candle bodies were sharp rectangles with no styling knobs beyond width — this adds **rounded corners** and **wick width**, both via `metrics.candle`.\n\n## Changes\n\n- `metrics.candle.bodyRadius` — corner radius (px) for candle bodies, rendered with `addRRect` and clamped t\n[…]\n typecheck + lint clean; 1019 tests pass; coverage above gates.\n- Verified on the iOS 26.4 sim — rounded bodies render, both chips work.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(candle): adjustable body radius + wick width (#148)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T07:44:55Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "60dfeedc0904b25041f775d97881526fdb0a1d7e",
"body": "## Summary\n\nStacked on #145 (time-scroll). When panning back through history, candle bodies that extend past the plot's right edge used to draw **over** the price labels. Now they slide **behind** the y-axis.\n\n> Depends on #145 — base is `feat/time-scroll-prototype`. Draft until #145 merges (then re\n[…]\nst seen in the **Time scroll** demo (candle mode): scroll back and watch candles slide behind the price axis instead of over the labels.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(candle): candles slide behind the y-axis on scroll (#147)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T07:34:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f2848baaddfd49f77c69e975fd0376b558373302",
"body": "…totype) (#145)\n\n## Summary\n\nPrototype: **horizontal time-scrolling** for `LiveChart`. A **two-finger** drag (or fling) pans the window back through retained history — the chart stops auto-scrolling while panned and resumes once you reach the live edge again. Works for **both line and candle**; one-\n[…]\nReachStart` (lazy-load older history), `scrollToLive()` / following indicator\n- Pinch-to-zoom the window (reserved for two-finger pinch)\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(time-scroll): two-finger pan to scroll back through history (pro…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T07:31:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "456d2c5404c827ab6089d640ccd3e340a4d5e39a",
"body": "## Summary\n\nFixes #146 — the Y-axis grid loop in `computeGridEntries`\n([`src/draw/grid.ts`](https://github.com/brandtnewlabs/react-native-livechart/blob/main/packages/react-native-livechart/src/draw/grid.ts))\ncould spin forever on a near-flat data range, freezing the UI thread\n(iOS watchdog \"App Han\n[…]\nlines; full `npm run\nverify` green (typecheck + lint + 1011 tests, 0 failures).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(grid): guard Y-axis grid loop against non-terminating step (#151)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T07:24:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1beec370ba4d5ef1baf1ed6abbe6b3696c2bbffe",
"body": "…ter (#140) (#144)\n\n## Summary\n\nPhase B of #140 — **opt-in full-width reference lines** (issue item #0). Stacked on #143 (the overlay bridge); review/merge that first.\n\nAdds `ReferenceLine.fullWidth?: boolean` (default **off**). When set, a Form-A line or value band spans **edge to edge through the \n[…]\nlueLine` stays plot-width.\n\nPart of #140 (full-width phase). Next: Phase C — draggable lines + `left`/`center`/`right` handle positions.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(reference-lines): opt-in full-width lines through the Y-axis gut…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T07:07:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2eb4e3a0f872d6523796f6f6e3df02247549e30a",
"body": "## Summary\n\nImplements the price↔pixel / time↔pixel **overlay bridge** from #140 — the highest-value, lowest-surface piece (the issue estimates it unblocks ~80% of on-chart order overlays). First PR in a planned stack: **bridge → full-width lines (#0) → draggable lines + handle positions (#1/#2)**.\n\n[…]\n(price dropped ~20%) where the tags re-clustered correctly.\n\nPart of #140 (bridge phase); the issue stays open for the follow-up phases.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(overlay): renderOverlay price↔pixel bridge (#140) (#143)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-19T07:04:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6407d1e5f684f7b89619b80187ed5de4afa03c0b",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): sync lockfile for v3.12.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-17T18:35:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "08c1a6928b3c70947642b041f3accb282c52394b",
"body": "…g (#141) (#142)\n\n## Summary\n\nCompletes\n[#141](https://github.com/brandtnewlabs/react-native-livechart/issues/141).\nThe single-series `LineConfig.curve` (`\"monotone\"` | `\"linear\"`) shipped\nin **3.8.0**; this PR extends the feature across the rest of the surface\nand fixes a related anchoring gap.\n\n##\n[…]\nypes.mdx` and\nthe multi-series guide.\n- CHANGELOG + version bump to **3.12.0**.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(curve): multi-series SeriesConfig.curve + linear marker anchorin…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-17T18:28:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "523923d24474154ef2ea8b613e45ab0719e3cc70",
"body": null,
"is_bot": false,
"headline": "doc: update how it works",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-17T07:20:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b58c965860a2ac7ce517731596df45906b1236c8",
"body": "## areaDots — dot-lattice area fill + Kraken showcase\n\n### Library\n- New public prop `areaDots?: boolean | AreaDotsConfig` (`{ spacing,\nsize, color, opacity }`) on `LiveChart`, resolved like\n`gradient`/`pulse`. Composes with `gradient` or replaces it\n(`gradient={false}`); inert in candle mode.\n- Imp\n[…]\n`npm run verify` is green and coverage thresholds held.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(area-dots): dot-lattice area fill + Kraken showcase (#138)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-16T21:15:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b155e1c230c5dc33c760225b33f36ef10ce7c942",
"body": "## What\n\nDresses the **Backpack** token-detail showcase\n(`app/showcase/backpack.tsx`) as the **SPCX / SpaceX** listing, for a\nshareable screen recording while SPCX is trending. Keeps the showcase's\n\"everything-but-the-chart-is-grey-skeleton\" philosophy — only three\nskeletons become real:\n\n- **Logo**\n[…]\nt engine, timeframe pills,\nAbout/Stats, CTA) is unchanged.\n- The price seed only takes on a **fresh mount** — fast refresh\npreserves the running sim value, so a full reload is needed to see\n`$248.73`.",
"is_bot": false,
"headline": "feat(examples): dress the Backpack showcase as SPCX (#137)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-16T16:20:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2263d5c177ce7c52b123c227b2b03e33d833ad9d",
"body": "## What\n\nDisables Renovate's **Dependency Dashboard** by dropping the\n`:dependencyDashboard` preset from `extends` and setting\n`\"dependencyDashboard\": false` explicitly.\n\nThat preset is what creates and re-maintains the [Dependency Dashboard\nissue\n(#96)](https://github.com/brandtnewlabs/react-native\n[…]\nor`, `husky`) and runs lock-file maintenance. Only the\ndashboard issue goes away.\n\nOnce this lands on `main`, Renovate won't recreate the dashboard.\nMerging also closes the issue directly.\n\nCloses #96",
"is_bot": false,
"headline": "chore(renovate): disable the Dependency Dashboard (#136)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-16T12:27:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ee08c684d1b67ba3ef66d5b0c8d9f635223f6665",
"body": "…) (#135)\n\nImplements #132 — custom tooltip support in candlestick mode. **Stacked on #134** (review/merge that first).\n\n## What\n\n`renderTooltip` now works in **candle mode** (previously line-only). The custom tooltip replaces the built-in OHLC stack, and `TooltipRenderProps` gains:\n\n```ts\ncandle: S\n[…]\nical drag also won't engage the proven line-mode scrub — so the pill itself is verified by tests rather than a screenshot.)\n\nCloses #132\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(scrub): custom renderTooltip in candlestick mode + v3.10.0 (#132…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-16T12:11:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "46314dcc8a1813153c26e45a904eb759e76c3bfc",
"body": "…(#134)\n\nImplements #131 — extrema (min/max) axis labels, with two placement modes.\n\n## What\n\nAdds extrema-tracking modes to `AxisLabelConfig.position` so `topLabel` / `bottomLabel` follow the high / low **data point** instead of pinning to a fixed plot edge:\n\n- **`\"extrema\"`** — floats the readout \n[…]\n / edge — the dot sits exactly on the peak/trough (centered on the candle), and the connector + size/style controls behave.\n\nCloses #131\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(labels): position topLabel/bottomLabel at extrema points (#131) …",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-16T12:08:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7c5b7ad3314db8d468c2874400e512f9233eafff",
"body": "## Summary\n\nAdds an opt-in scrub option **`scrub.crosshairDash`** and a **Backpack**\ntoken-detail showcase that uses it. Cuts **v3.9.0** (minor — new\noptional API, no breaking changes).\n\n## `scrub.crosshairDash` (new, backward-compatible)\n\nDashes the vertical scrub crosshair line on `LiveChart` and\n\n[…]\nashed crosshair + ms\ntooltip confirmed via manual scrub\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(scrub): dashed crosshair option + Backpack showcase (v3.9.0) (#133)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-15T20:05:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "11ac53dd70835fcba6c89e21fda4eb3a5c37bc65",
"body": "…(#130)\n\n## Summary\n\nFixes #128 — an explicit `insets` value is now honored even when it's\ntighter than the live-dot pulse's reserved room. Requested by the\nreporter, who wants full control of chart padding and is fine with the\npulse ring clipping in exchange.\n\n## Background\n\nThe residual bottom spa\n[…]\nease\n\nBundles the `v3.8.2` patch release (version bump + CHANGELOG).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(layout): explicit insets override the pulse padding floor (#128) …",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-15T16:01:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3b35616850db9e2c2a97039d34bb85b58303b775",
"body": "## Summary\n\nUpgrades the Expo example app from **SDK 54 → 56**, driven by `expo\ninstall` so every package matches the SDK's pinned, mutually-compatible\nset rather than npm-latest. Also stops Renovate from proposing versions\nthat run ahead of the SDK.\n\nPublished-library consumers are unaffected — the\n[…]\ntive Demos/Examples tabs render and switch. No\nruntime errors in the Metro log.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(deps): upgrade to Expo SDK 56 (#129)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-15T15:34:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7567e046149d34711a057c113509b3c58d15803c",
"body": "## Summary\nAdd explicit notes on supported platforms (iOS/Android, not React Native\nWeb) and supported chart types (line/area and candlestick, no bar/pie)\nto the Installation page.\n\n## Changes\n- Added a **Supported platforms** section calling out that React Native\nWeb is not supported and suggesting\n[…]\nBoth topics were previously absent from the docs, so users\ncould not answer the question without asking the assistant.\n\nCo-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "docs: clarify supported platforms and chart types (#124)",
"author_name": "mintlify[bot]",
"author_login": "mintlify[bot]",
"committed_at": "2026-06-15T14:08:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ece64d8ad445e23ca55ebf8587212232189fe18d",
"body": "…(#126) (#127)\n\n## Summary\n\nFixes #126 — the X-axis tick cadence depended on which time window you\nswitched *from*. Selecting `1h` directly (from `1m`) showed ~20-min\nspacing, but going `24h → 1h` settled on ~30-min spacing (one fewer\ntick); large → small jumps (the reporter's `1Y → 1D`) could leave\n[…]\nts.\n\n## Release\n\nBundles the `v3.8.1` patch release (version bump + CHANGELOG).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(xaxis): tie tick cadence to target window, not the animating one …",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-15T13:25:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5a113b5dd866807474d076d112260aa8d4522a8d",
"body": "… options (#125)\n\n## Robinhood showcase\n\nA faithful recreation of Robinhood (EU)'s tokenized-stock detail screen — the second example for the Examples tab — plus the `LineConfig` options it needs for a hard-edged line.\n\n> 📚 Stacked on #123 (Examples tab + Fomo). Review/merge that first.\n\n### Example\n[…]\ning zooming the line at full resolution to confirm the 0-radius corners) and via `npm run verify` + `build:lib` (75 suites / 930 tests).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(examples): Robinhood tokenized-stock showcase + linear/edgy line…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-15T12:38:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7c7b14154a9d6cfc69a7f75956ac07f59f980893",
"body": "## Examples tab + Fomo showcase\n\nAdds an **Examples** tab next to the existing demos — full-screen recreations of real finance / crypto apps that show LiveChart inside production-style UIs.\n\n### Navigation\n- Restructured into **Expo Router native tabs** (iOS Liquid Glass / Android Material): **Demos\n[…]\ning digits don't jitter.\n\nVerified on the iOS simulator (cold launch) and via `npm run verify` (typecheck, lint, 75 suites / 929 tests).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(examples): native bottom tabs + Fomo token-detail showcase (#123)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-15T12:35:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "07fef54c217be60206cd8ac84fc3493b5a82048c",
"body": null,
"is_bot": false,
"headline": "chore(release): v3.7.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-14T16:06:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b53c5a2ce4327fe6d79d6fb6bc3394098b8c53c8",
"body": "Closes #119\n\nAdds two complementary ways to customize the single-series `LiveChart` scrub tooltip — an **adjustable config** path and a **custom render prop** — following the established `renderMarker` (3.6.0) pattern.\n\n## Adjustable config (`ScrubConfig`)\n| Prop | Default | Effect |\n| --- | --- | -\n[…]\n radius; new `CustomTooltipOverlay` precedence tests.\n- `npm run verify` green (typecheck + lint + 929 tests); coverage thresholds hold.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(scrub): customizable tooltips for LiveChart (#119) (#122)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-14T16:01:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4c7c532411b578b2c6467f8360409844bd158617",
"body": "- publish-library: make the GitHub Release a REQUIRED post-publish step (was\n \"optional\"); a missing release leaves the releases page + CHANGELOG links\n broken. Add the title convention (vX.Y.Z — <feature>), push-main + tag steps,\n and the `npm view version` CDN-lag gotcha (confirm via pkg@versio\n[…]\nCI's `npm ci` fails on @emnapi pruning;\n local `npm ci`/verify won't catch it), commit the lockfile, and end at the\n required GitHub Release.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(skills): bake release learnings into update/publish-library",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-14T15:21:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f507cb04eee9b3e5d49634ae2a933d4e824226dd",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v3.6.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-14T15:06:05Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b3498248680b92ac2d5361d63840fabc4b425960",
"body": "## Summary\n\nImplements the custom-render idea from #118 — a chart-level\n**`renderMarker`** prop on `LiveChart` and `LiveChartSeries`:\n\n```tsx\nrenderMarker?: (marker: Marker) => ReactElement | null | undefined\n```\n\nReturn an element to float your own **React Native** view at a marker's\nlive `(time, v\n[…]\nd\nchanges aren't part of this diff.\n\nCloses #118 (the custom-render follow-up).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(markers): renderMarker — custom RN element per marker (#121)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-14T15:03:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ab2b36adc2ec51f05984296c73b06ead82aabf41",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): v3.5.1",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-14T13:54:15Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e8181d877657629c9bffa30ae55f74ac34ecda5b",
"body": "The example app resolved react-native-livechart's types via the package's\n`types` export condition, which points at `dist/*.d.ts`. Since `dist` is\ngitignored and only built at prepack time, a fresh checkout (or any time dist\nlagged src) typechecked the demos against an outdated declaration set — so\n\n[…]\nthe monorepo's\nown typecheck always uses source. Published consumers are unaffected — they\nstill resolve `dist/*.d.ts` via the package exports.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(example): typecheck against library source, not stale dist",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-14T13:54:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ecc9eadcea4e7683cebd33084d458f9dccf1b206",
"body": "Markers were pre-rasterized into a Skia atlas at logical-pixel resolution,\nthen blitted at scale 1 via drawAtlas. On retina screens the small texture\nwas upscaled ~3x, so markers looked blurry while directly-drawn text and\nlines stayed sharp.\n\nBuild the atlas at the screen's device-pixel ratio and s\n[…]\ns #118\n\n\n\n\n\nCo-Authored-By: Claude Opus 4.8 [noreply@anthropic.com](mailto:noreply@anthropic.com)",
"is_bot": false,
"headline": "fix(markers): rasterize marker atlas at device-pixel ratio (#118) (#120)",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-14T13:44:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4dc519a8bfb89b5492b71d65098ea78dee549b5d",
"body": "… & segments (#117)\n\n## What\n\nAdds **six demo videos** to the docs, compressed from the source recordings with ffmpeg and wired into the right guide pages. This fills the two guide pages that had **no** video and adds clips for the features shipped since the last media batch.\n\n| Clip (`docs/media/`)\n[…]\n existing autoplay/loop/muted pattern.\n- The docs site deploys from this repo's `docs/` folder, so merging this updates the live guides.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "docs: add demo videos for sparklines, states, threshold, order ticket…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-12T12:36:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "70ba5bea0c0e3e4f177053e041fc9de01034eaaa",
"body": "…#116)\n\n## What\n\nAdds a new example-app demo — **Coin list**\n([`app/demo/coin-list.tsx`](app/demo/coin-list.tsx)) — that renders\n**500 deterministic fake coins in a single `@legendapp/list` (v3)**,\neach row showing a `static` `LiveChart` sparkline:\n\n```\n(●) Coin Name $1,234.56 ▁▂▃▅▇\n \n[…]\nase) — renders correctly, recycles\nwith no blank rows after sustained flinging.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(demo): coin list — virtualized LegendList of static sparklines (…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-12T10:42:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e0c6bc0253b30146587b7c8603d67d70f0802bb9",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): 3.5.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-12T08:57:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a43a59f15576ad55b58b19e6a0c3b885d3d97f20",
"body": "… (#115)\n\n## What\n\n`threshold?: ThresholdConfig` on `LiveChart` colors the line **green above / red below a live value** — break-even / average cost, VWAP, the previous close, or a stablecoin peg. The `value` is **always** a `SharedValue`, so the split tracks live on the UI thread with no re-render.\n[…]\nr.\n\nNew exported types: `ThresholdConfig`, `ThresholdLineConfig`. Single-series, line mode. Additive / non-breaking — a clean **minor**.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
"is_bot": false,
"headline": "feat(line): threshold split — color the line above/below a live value…",
"author_name": "brandtnewlabs",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-12T08:54:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ef825cf1938ea2a6300492cd383c654e69d6bf8e",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): 3.4.0",
"author_name": "brandtnewww",
"author_login": "brandtnewlabs",
"committed_at": "2026-06-12T07:38:26Z",
"body_truncated": false,
"is_coding_agent": true
}
],
"releases_count": 35,
"commits_last_year": 150,
"latest_release_at": "2026-07-20T09:16:20Z",
"latest_release_tag": "v4.11.0",
"releases_from_tags": false,
"days_since_last_push": 5,
"active_weeks_last_year": 8,
"days_since_latest_release": 6,
"mean_days_between_releases": 2.7
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 100,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "react-native-livechart",
"exists": true,
"license": "MIT",
"keywords": [
"react-native",
"chart",
"skia",
"reanimated",
"live",
"trading",
"candlestick"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/react-native-livechart",
"is_deprecated": false,
"latest_version": "4.11.0",
"repository_url": "https://github.com/brandtnewlabs/react-native-livechart",
"versions_count": 35,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 10132,
"first_published_at": "2026-06-04T15:49:55.600000Z",
"latest_published_at": "2026-07-20T09:15:22.099000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 6
}
]
},
"popularity": {
"forks": 7,
"stars": 162,
"watchers": 4,
"fork_history": {
"days": [
{
"date": "2026-06-08",
"count": 2
},
{
"date": "2026-06-17",
"count": 2
},
{
"date": "2026-06-22",
"count": 1
},
{
"date": "2026-07-01",
"count": 1
},
{
"date": "2026-07-15",
"count": 1
}
],
"complete": true,
"collected": 7,
"total_forks": 7
},
"star_history": null,
"open_issues_and_prs": 6
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": true,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"packages/react-native-livechart/tsconfig.json",
"reproductions/worklets-hermes-module-retention/tsconfig.json",
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 102053,
"source_files_sampled": 280,
"oversized_source_files": 2,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 5434
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.15",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp",
"GHSA-mh99-v99m-4gvg"
],
"fixed_version": "5.0.8",
"advisory_count": 2,
"oldest_advisory_days": 5
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.7",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-mh99-v99m-4gvg"
],
"fixed_version": "5.0.8",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "fast-uri",
"direct": false,
"version": "3.1.3",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-v2hh-gcrm-f6hx"
],
"fixed_version": "4.1.1",
"advisory_count": 1,
"oldest_advisory_days": 4
},
{
"name": "postcss",
"direct": false,
"version": "8.5.16",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-r28c-9q8g-f849"
],
"fixed_version": "8.5.18",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "uuid",
"direct": false,
"version": "7.0.3",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-w5hq-g745-h8pq"
],
"fixed_version": "13.0.1",
"advisory_count": 1,
"oldest_advisory_days": 94
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 5
},
"advisory_count": 6,
"affected_count": 5,
"assessed_count": 1196,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 2,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@expo-google-fonts/jetbrains-mono",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.4.1"
},
{
"name": "@expo-google-fonts/plus-jakarta-sans",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.4.2"
},
{
"name": "@expo/vector-icons",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^15.0.3"
},
{
"name": "@legendapp/list",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.0.4"
},
{
"name": "@shopify/react-native-skia",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "2.6.4"
},
{
"name": "@types/jest",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "29.5.14"
},
{
"name": "expo",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^57.0.1"
},
{
"name": "expo-blur",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "expo-constants",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.2"
},
{
"name": "expo-font",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "expo-haptics",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "expo-image",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "expo-linking",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.1"
},
{
"name": "expo-router",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.2"
},
{
"name": "expo-splash-screen",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.1"
},
{
"name": "expo-status-bar",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "expo-symbols",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "expo-system-ui",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "expo-web-browser",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "jest",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~29.7.0"
},
{
"name": "jest-expo",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~57.0.0"
},
{
"name": "react",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "19.2.3"
},
{
"name": "react-dom",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "19.2.3"
},
{
"name": "react-native",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "0.86.0"
},
{
"name": "react-native-gesture-handler",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~2.32.0"
},
{
"name": "react-native-livechart",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "file:packages/react-native-livechart"
},
{
"name": "react-native-reanimated",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "4.5.0"
},
{
"name": "react-native-safe-area-context",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~5.7.0"
},
{
"name": "react-native-screens",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "4.25.2"
},
{
"name": "react-native-web",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "~0.21.0"
},
{
"name": "react-native-worklets",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "0.10.0"
},
{
"name": "expo",
"manifest": "reproductions/worklets-hermes-module-retention/package.json",
"ecosystem": "npm",
"version_constraint": "57.0.1"
},
{
"name": "react",
"manifest": "reproductions/worklets-hermes-module-retention/package.json",
"ecosystem": "npm",
"version_constraint": "19.2.3"
},
{
"name": "react-native",
"manifest": "reproductions/worklets-hermes-module-retention/package.json",
"ecosystem": "npm",
"version_constraint": "0.86.0"
},
{
"name": "react-native-reanimated",
"manifest": "reproductions/worklets-hermes-module-retention/package.json",
"ecosystem": "npm",
"version_constraint": "4.5.0"
},
{
"name": "react-native-worklets",
"manifest": "reproductions/worklets-hermes-module-retention/package.json",
"ecosystem": "npm",
"version_constraint": "0.10.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "@expo-google-fonts/jetbrains-mono",
"direct": true,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "@expo-google-fonts/plus-jakarta-sans",
"direct": true,
"version": "0.4.2",
"ecosystem": "npm"
},
{
"name": "@expo/vector-icons",
"direct": true,
"version": "15.1.1",
"ecosystem": "npm"
},
{
"name": "@legendapp/list",
"direct": true,
"version": "3.3.0",
"ecosystem": "npm"
},
{
"name": "@shopify/react-native-skia",
"direct": true,
"version": "2.6.4",
"ecosystem": "npm"
},
{
"name": "@types/jest",
"direct": true,
"version": "29.5.14",
"ecosystem": "npm"
},
{
"name": "expo",
"direct": true,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "expo-blur",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-constants",
"direct": true,
"version": "57.0.2",
"ecosystem": "npm"
},
{
"name": "expo-font",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-haptics",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-image",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-linking",
"direct": true,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "expo-router",
"direct": true,
"version": "57.0.2",
"ecosystem": "npm"
},
{
"name": "expo-splash-screen",
"direct": true,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "expo-status-bar",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-symbols",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-system-ui",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-web-browser",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "jest",
"direct": true,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-expo",
"direct": true,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "react",
"direct": true,
"version": "19.2.3",
"ecosystem": "npm"
},
{
"name": "react-dom",
"direct": true,
"version": "19.2.3",
"ecosystem": "npm"
},
{
"name": "react-native",
"direct": true,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "react-native-gesture-handler",
"direct": true,
"version": "2.32.0",
"ecosystem": "npm"
},
{
"name": "react-native-reanimated",
"direct": true,
"version": "4.5.0",
"ecosystem": "npm"
},
{
"name": "react-native-safe-area-context",
"direct": true,
"version": "5.7.0",
"ecosystem": "npm"
},
{
"name": "react-native-screens",
"direct": true,
"version": "4.25.2",
"ecosystem": "npm"
},
{
"name": "react-native-web",
"direct": true,
"version": "0.21.2",
"ecosystem": "npm"
},
{
"name": "react-native-worklets",
"direct": true,
"version": "0.10.0",
"ecosystem": "npm"
},
{
"name": "@adobe/css-tools",
"direct": false,
"version": "4.5.0",
"ecosystem": "npm"
},
{
"name": "@apm-js-collab/code-transformer",
"direct": false,
"version": "0.15.0",
"ecosystem": "npm"
},
{
"name": "@apm-js-collab/code-transformer-bundler-plugins",
"direct": false,
"version": "0.5.0",
"ecosystem": "npm"
},
{
"name": "@apm-js-collab/tracing-hooks",
"direct": false,
"version": "0.10.1",
"ecosystem": "npm"
},
{
"name": "@babel/code-frame",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/compat-data",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/core",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/generator",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-annotate-as-pure",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-compilation-targets",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-create-class-features-plugin",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-create-regexp-features-plugin",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-define-polyfill-provider",
"direct": false,
"version": "0.6.8",
"ecosystem": "npm"
},
{
"name": "@babel/helper-globals",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-member-expression-to-functions",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-module-imports",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-module-transforms",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-optimise-call-expression",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-plugin-utils",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-remap-async-to-generator",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-replace-supers",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-skip-transparent-expression-wrappers",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-string-parser",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-identifier",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-option",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-wrap-function",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helpers",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/parser",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-proposal-decorators",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-proposal-export-default-from",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-async-generators",
"direct": false,
"version": "7.8.4",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-bigint",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-class-properties",
"direct": false,
"version": "7.12.13",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-class-static-block",
"direct": false,
"version": "7.14.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-decorators",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-dynamic-import",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-export-default-from",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-flow",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-import-attributes",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-import-meta",
"direct": false,
"version": "7.10.4",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-json-strings",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-jsx",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-logical-assignment-operators",
"direct": false,
"version": "7.10.4",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-nullish-coalescing-operator",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-numeric-separator",
"direct": false,
"version": "7.10.4",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-object-rest-spread",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-optional-catch-binding",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-optional-chaining",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-private-property-in-object",
"direct": false,
"version": "7.14.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-top-level-await",
"direct": false,
"version": "7.14.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-typescript",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-arrow-functions",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-async-generator-functions",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-async-to-generator",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-block-scoping",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-class-properties",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-class-static-block",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-classes",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-destructuring",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-export-namespace-from",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-flow-strip-types",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-for-of",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-logical-assignment-operators",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-modules-commonjs",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-named-capturing-groups-regex",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-nullish-coalescing-operator",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-object-rest-spread",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-optional-catch-binding",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-optional-chaining",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-parameters",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-private-methods",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-private-property-in-object",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-react-display-name",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-react-jsx",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-react-jsx-development",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-react-jsx-self",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-react-jsx-source",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-react-pure-annotations",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-regenerator",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-runtime",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-shorthand-properties",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-template-literals",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-typescript",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-unicode-regex",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/preset-typescript",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/runtime",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/template",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/traverse",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/types",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@bcoe/v8-coverage",
"direct": false,
"version": "0.2.3",
"ecosystem": "npm"
},
{
"name": "@effect/platform-node-shared",
"direct": false,
"version": "4.0.0-beta.70",
"ecosystem": "npm"
},
{
"name": "@egjs/hammerjs",
"direct": false,
"version": "2.0.17",
"ecosystem": "npm"
},
{
"name": "@emnapi/core",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/core",
"direct": false,
"version": "1.11.1",
"ecosystem": "npm"
},
{
"name": "@emnapi/runtime",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/runtime",
"direct": false,
"version": "1.11.1",
"ecosystem": "npm"
},
{
"name": "@emnapi/wasi-threads",
"direct": false,
"version": "1.2.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": "3.3.5",
"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": "@expo-google-fonts/material-symbols",
"direct": false,
"version": "0.4.38",
"ecosystem": "npm"
},
{
"name": "@expo/cli",
"direct": false,
"version": "57.0.3",
"ecosystem": "npm"
},
{
"name": "@expo/code-signing-certificates",
"direct": false,
"version": "0.0.6",
"ecosystem": "npm"
},
{
"name": "@expo/config",
"direct": false,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "@expo/config-plugins",
"direct": false,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "@expo/config-types",
"direct": false,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "@expo/devcert",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "@expo/devtools",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/dom-webview",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/env",
"direct": false,
"version": "2.4.0",
"ecosystem": "npm"
},
{
"name": "@expo/expo-modules-macros-plugin",
"direct": false,
"version": "0.3.0",
"ecosystem": "npm"
},
{
"name": "@expo/fingerprint",
"direct": false,
"version": "0.20.1",
"ecosystem": "npm"
},
{
"name": "@expo/image-utils",
"direct": false,
"version": "0.11.0",
"ecosystem": "npm"
},
{
"name": "@expo/inline-modules",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "@expo/json-file",
"direct": false,
"version": "11.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/local-build-cache-provider",
"direct": false,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "@expo/log-box",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/metro",
"direct": false,
"version": "56.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/metro-config",
"direct": false,
"version": "57.0.2",
"ecosystem": "npm"
},
{
"name": "@expo/metro-file-map",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/metro-runtime",
"direct": false,
"version": "57.0.2",
"ecosystem": "npm"
},
{
"name": "@expo/osascript",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "@expo/package-manager",
"direct": false,
"version": "1.13.0",
"ecosystem": "npm"
},
{
"name": "@expo/plist",
"direct": false,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "@expo/prebuild-config",
"direct": false,
"version": "57.0.3",
"ecosystem": "npm"
},
{
"name": "@expo/require-utils",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/router-server",
"direct": false,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "@expo/schema-utils",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/sdk-runtime-versions",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/spawn-async",
"direct": false,
"version": "1.8.0",
"ecosystem": "npm"
},
{
"name": "@expo/sudo-prompt",
"direct": false,
"version": "9.3.2",
"ecosystem": "npm"
},
{
"name": "@expo/ui",
"direct": false,
"version": "57.0.2",
"ecosystem": "npm"
},
{
"name": "@expo/ws-tunnel",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "@expo/xcpretty",
"direct": false,
"version": "4.4.4",
"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/module-importer",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/retry",
"direct": false,
"version": "0.4.3",
"ecosystem": "npm"
},
{
"name": "@iarna/toml",
"direct": false,
"version": "2.2.5",
"ecosystem": "npm"
},
{
"name": "@isaacs/ttlcache",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "@istanbuljs/load-nyc-config",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@istanbuljs/schema",
"direct": false,
"version": "0.1.6",
"ecosystem": "npm"
},
{
"name": "@jest/console",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/core",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/create-cache-key-function",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/diff-sequences",
"direct": false,
"version": "30.4.0",
"ecosystem": "npm"
},
{
"name": "@jest/environment",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/expect",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/expect-utils",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/fake-timers",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/get-type",
"direct": false,
"version": "30.1.0",
"ecosystem": "npm"
},
{
"name": "@jest/globals",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/reporters",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/schemas",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "@jest/schemas",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/source-map",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "@jest/test-result",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/test-sequencer",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/transform",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/types",
"direct": false,
"version": "29.6.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/source-map",
"direct": false,
"version": "0.3.11",
"ecosystem": "npm"
},
{
"name": "@jridgewell/sourcemap-codec",
"direct": false,
"version": "1.5.5",
"ecosystem": "npm"
},
{
"name": "@jridgewell/trace-mapping",
"direct": false,
"version": "0.3.31",
"ecosystem": "npm"
},
{
"name": "@msgpackr-extract/msgpackr-extract-darwin-arm64",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@msgpackr-extract/msgpackr-extract-darwin-x64",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@msgpackr-extract/msgpackr-extract-linux-arm",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@msgpackr-extract/msgpackr-extract-linux-arm64",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@msgpackr-extract/msgpackr-extract-linux-x64",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@msgpackr-extract/msgpackr-extract-win32-x64",
"direct": false,
"version": "3.0.4",
"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": "@nolyfill/is-core-module",
"direct": false,
"version": "1.0.39",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/api",
"direct": false,
"version": "1.9.1",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/api-logs",
"direct": false,
"version": "0.214.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/core",
"direct": false,
"version": "2.8.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/instrumentation",
"direct": false,
"version": "0.214.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/resources",
"direct": false,
"version": "2.8.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/sdk-trace-base",
"direct": false,
"version": "2.8.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/semantic-conventions",
"direct": false,
"version": "1.41.1",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-android-arm-eabi",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-android-arm64",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-darwin-arm64",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-darwin-x64",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-freebsd-x64",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-arm-gnueabihf",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-arm-musleabihf",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-arm64-gnu",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-arm64-musl",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-ppc64-gnu",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-riscv64-gnu",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-riscv64-musl",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-s390x-gnu",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-x64-gnu",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-linux-x64-musl",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-openharmony-arm64",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-wasm32-wasi",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-win32-arm64-msvc",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-win32-ia32-msvc",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-parser/binding-win32-x64-msvc",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-project/types",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-android-arm-eabi",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-android-arm64",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-darwin-arm64",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-darwin-x64",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-freebsd-x64",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-arm-gnueabihf",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-arm-musleabihf",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-arm64-gnu",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-arm64-musl",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-ppc64-gnu",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-riscv64-gnu",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-riscv64-musl",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-s390x-gnu",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-x64-gnu",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-linux-x64-musl",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-openharmony-arm64",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-wasm32-wasi",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-win32-arm64-msvc",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxc-resolver/binding-win32-x64-msvc",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-android-arm-eabi",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-android-arm64",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-darwin-arm64",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-darwin-x64",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-freebsd-x64",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-arm-gnueabihf",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-arm-musleabihf",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-arm64-gnu",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-arm64-musl",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-ppc64-gnu",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-riscv64-gnu",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-riscv64-musl",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-s390x-gnu",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-x64-gnu",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-x64-musl",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-openharmony-arm64",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-win32-arm64-msvc",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-win32-ia32-msvc",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-win32-x64-msvc",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "@radix-ui/primitive",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-collection",
"direct": false,
"version": "1.1.11",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-compose-refs",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-context",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-dialog",
"direct": false,
"version": "1.1.18",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-direction",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-dismissable-layer",
"direct": false,
"version": "1.1.14",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-focus-guards",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-focus-scope",
"direct": false,
"version": "1.1.11",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-id",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-portal",
"direct": false,
"version": "1.1.13",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-presence",
"direct": false,
"version": "1.1.6",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-primitive",
"direct": false,
"version": "2.1.7",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-roving-focus",
"direct": false,
"version": "1.1.14",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-slot",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-tabs",
"direct": false,
"version": "1.1.16",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-use-callback-ref",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-use-controllable-state",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-use-effect-event",
"direct": false,
"version": "0.0.3",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-use-layout-effect",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "@react-native-masked-view/masked-view",
"direct": false,
"version": "0.3.2",
"ecosystem": "npm"
},
{
"name": "@react-native/assets-registry",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/babel-plugin-codegen",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/babel-preset",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/codegen",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/community-cli-plugin",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/debugger-frontend",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/debugger-shell",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/dev-middleware",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/gradle-plugin",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/jest-preset",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/js-polyfills",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/metro-babel-transformer",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/metro-config",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/normalize-colors",
"direct": false,
"version": "0.74.89",
"ecosystem": "npm"
},
{
"name": "@react-native/normalize-colors",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@react-native/virtualized-lists",
"direct": false,
"version": "0.86.0",
"ecosystem": "npm"
},
{
"name": "@rtsao/scc",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@sentry/conventions",
"direct": false,
"version": "0.12.0",
"ecosystem": "npm"
},
{
"name": "@sentry/core",
"direct": false,
"version": "10.63.0",
"ecosystem": "npm"
},
{
"name": "@sentry/node",
"direct": false,
"version": "10.63.0",
"ecosystem": "npm"
},
{
"name": "@sentry/node-core",
"direct": false,
"version": "10.63.0",
"ecosystem": "npm"
},
{
"name": "@sentry/opentelemetry",
"direct": false,
"version": "10.63.0",
"ecosystem": "npm"
},
{
"name": "@sentry/server-utils",
"direct": false,
"version": "10.63.0",
"ecosystem": "npm"
},
{
"name": "@sinclair/typebox",
"direct": false,
"version": "0.27.10",
"ecosystem": "npm"
},
{
"name": "@sinclair/typebox",
"direct": false,
"version": "0.34.49",
"ecosystem": "npm"
},
{
"name": "@sinonjs/commons",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "@sinonjs/fake-timers",
"direct": false,
"version": "10.3.0",
"ecosystem": "npm"
},
{
"name": "@standard-schema/spec",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@testing-library/dom",
"direct": false,
"version": "10.4.1",
"ecosystem": "npm"
},
{
"name": "@testing-library/jest-dom",
"direct": false,
"version": "6.9.1",
"ecosystem": "npm"
},
{
"name": "@testing-library/react-native",
"direct": false,
"version": "13.3.3",
"ecosystem": "npm"
},
{
"name": "@testing-library/user-event",
"direct": false,
"version": "14.6.1",
"ecosystem": "npm"
},
{
"name": "@tootallnate/once",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "@tybys/wasm-util",
"direct": false,
"version": "0.10.3",
"ecosystem": "npm"
},
{
"name": "@types/aria-query",
"direct": false,
"version": "5.0.4",
"ecosystem": "npm"
},
{
"name": "@types/babel__core",
"direct": false,
"version": "7.20.5",
"ecosystem": "npm"
},
{
"name": "@types/babel__generator",
"direct": false,
"version": "7.27.0",
"ecosystem": "npm"
},
{
"name": "@types/babel__template",
"direct": false,
"version": "7.4.4",
"ecosystem": "npm"
},
{
"name": "@types/babel__traverse",
"direct": false,
"version": "7.28.0",
"ecosystem": "npm"
},
{
"name": "@types/esrecurse",
"direct": false,
"version": "4.3.1",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.9",
"ecosystem": "npm"
},
{
"name": "@types/graceful-fs",
"direct": false,
"version": "4.1.9",
"ecosystem": "npm"
},
{
"name": "@types/hammerjs",
"direct": false,
"version": "2.0.46",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-lib-coverage",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-lib-report",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-reports",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@types/jsdom",
"direct": false,
"version": "20.0.1",
"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/node",
"direct": false,
"version": "26.1.0",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "19.2.14",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "19.2.17",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "~19.2.14",
"ecosystem": "npm"
},
{
"name": "@types/react-test-renderer",
"direct": false,
"version": "19.1.0",
"ecosystem": "npm"
},
{
"name": "@types/stack-utils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "@types/tough-cookie",
"direct": false,
"version": "4.0.5",
"ecosystem": "npm"
},
{
"name": "@types/ws",
"direct": false,
"version": "8.18.1",
"ecosystem": "npm"
},
{
"name": "@types/yargs",
"direct": false,
"version": "17.0.35",
"ecosystem": "npm"
},
{
"name": "@types/yargs-parser",
"direct": false,
"version": "21.0.3",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/eslint-plugin",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/parser",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/project-service",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/scope-manager",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/tsconfig-utils",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/type-utils",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/types",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/typescript-estree",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/utils",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/visitor-keys",
"direct": false,
"version": "8.62.1",
"ecosystem": "npm"
},
{
"name": "@ungap/structured-clone",
"direct": false,
"version": "1.3.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-android-arm-eabi",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-android-arm64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-darwin-arm64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-darwin-x64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-freebsd-x64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-arm-gnueabihf",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-arm-musleabihf",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-arm64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-arm64-musl",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-loong64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-loong64-musl",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-ppc64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-riscv64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-riscv64-musl",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-s390x-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-x64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-x64-musl",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-openharmony-arm64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-wasm32-wasi",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-win32-arm64-msvc",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-win32-ia32-msvc",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-win32-x64-msvc",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@webgpu/types",
"direct": false,
"version": "0.1.21",
"ecosystem": "npm"
},
{
"name": "@xmldom/xmldom",
"direct": false,
"version": "0.8.13",
"ecosystem": "npm"
},
{
"name": "@xmldom/xmldom",
"direct": false,
"version": "0.9.10",
"ecosystem": "npm"
},
{
"name": "@yarnpkg/lockfile",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "abab",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "abort-controller",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "accepts",
"direct": false,
"version": "1.3.8",
"ecosystem": "npm"
},
{
"name": "accepts",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "8.17.0",
"ecosystem": "npm"
},
{
"name": "acorn-globals",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "acorn-import-attributes",
"direct": false,
"version": "1.9.5",
"ecosystem": "npm"
},
{
"name": "acorn-jsx",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "acorn-walk",
"direct": false,
"version": "8.3.5",
"ecosystem": "npm"
},
{
"name": "agent-base",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "agent-base",
"direct": false,
"version": "7.1.4",
"ecosystem": "npm"
},
{
"name": "agent-install",
"direct": false,
"version": "0.0.5",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.15.0",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "8.20.0",
"ecosystem": "npm"
},
{
"name": "ajv-formats",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "anser",
"direct": false,
"version": "1.4.10",
"ecosystem": "npm"
},
{
"name": "ansi-escapes",
"direct": false,
"version": "4.3.2",
"ecosystem": "npm"
},
{
"name": "ansi-escapes",
"direct": false,
"version": "6.2.1",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "3.2.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "anymatch",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "arg",
"direct": false,
"version": "5.0.2",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "aria-hidden",
"direct": false,
"version": "1.2.6",
"ecosystem": "npm"
},
{
"name": "aria-query",
"direct": false,
"version": "5.3.0",
"ecosystem": "npm"
},
{
"name": "array-buffer-byte-length",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "array-includes",
"direct": false,
"version": "3.1.9",
"ecosystem": "npm"
},
{
"name": "array.prototype.findlast",
"direct": false,
"version": "1.2.5",
"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": "array.prototype.tosorted",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "arraybuffer.prototype.slice",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "asap",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "astring",
"direct": false,
"version": "1.9.0",
"ecosystem": "npm"
},
{
"name": "async-function",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "asynckit",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "atomically",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "available-typed-arrays",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "babel-jest",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "babel-plugin-istanbul",
"direct": false,
"version": "6.1.1",
"ecosystem": "npm"
},
{
"name": "babel-plugin-jest-hoist",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "babel-plugin-polyfill-corejs2",
"direct": false,
"version": "0.4.17",
"ecosystem": "npm"
},
{
"name": "babel-plugin-polyfill-corejs3",
"direct": false,
"version": "0.13.0",
"ecosystem": "npm"
},
{
"name": "babel-plugin-polyfill-regenerator",
"direct": false,
"version": "0.6.8",
"ecosystem": "npm"
},
{
"name": "babel-plugin-react-compiler",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "babel-plugin-react-native-web",
"direct": false,
"version": "0.21.2",
"ecosystem": "npm"
},
{
"name": "babel-plugin-syntax-hermes-parser",
"direct": false,
"version": "0.36.0",
"ecosystem": "npm"
},
{
"name": "babel-plugin-transform-flow-enums",
"direct": false,
"version": "0.0.2",
"ecosystem": "npm"
},
{
"name": "babel-preset-current-node-syntax",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "babel-preset-expo",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "babel-preset-expo",
"direct": false,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "babel-preset-jest",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "base64-js",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "baseline-browser-mapping",
"direct": false,
"version": "2.10.40",
"ecosystem": "npm"
},
{
"name": "big-integer",
"direct": false,
"version": "1.6.52",
"ecosystem": "npm"
},
{
"name": "bplist-creator",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "bplist-parser",
"direct": false,
"version": "0.3.1",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.15",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.7",
"ecosystem": "npm"
},
{
"name": "braces",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "browserslist",
"direct": false,
"version": "4.28.4",
"ecosystem": "npm"
},
{
"name": "bser",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "buffer-from",
"direct": false,
"version": "1.1.2",
"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": "camelcase",
"direct": false,
"version": "5.3.1",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "6.3.0",
"ecosystem": "npm"
},
{
"name": "caniuse-lite",
"direct": false,
"version": "1.0.30001800",
"ecosystem": "npm"
},
{
"name": "canvaskit-wasm",
"direct": false,
"version": "0.41.0",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "2.4.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "char-regex",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "char-regex",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "chrome-launcher",
"direct": false,
"version": "0.15.2",
"ecosystem": "npm"
},
{
"name": "chromium-edge-launcher",
"direct": false,
"version": "0.3.0",
"ecosystem": "npm"
},
{
"name": "ci-info",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ci-info",
"direct": false,
"version": "3.9.0",
"ecosystem": "npm"
},
{
"name": "cjs-module-lexer",
"direct": false,
"version": "1.4.3",
"ecosystem": "npm"
},
{
"name": "cjs-module-lexer",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "cli-cursor",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "cli-spinners",
"direct": false,
"version": "2.9.2",
"ecosystem": "npm"
},
{
"name": "client-only",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "cliui",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "clone",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "co",
"direct": false,
"version": "4.6.0",
"ecosystem": "npm"
},
{
"name": "collect-v8-coverage",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "color",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "1.9.3",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "color-string",
"direct": false,
"version": "1.9.1",
"ecosystem": "npm"
},
{
"name": "combined-stream",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "12.1.0",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "14.0.3",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "2.20.3",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "compressible",
"direct": false,
"version": "2.0.18",
"ecosystem": "npm"
},
{
"name": "compression",
"direct": false,
"version": "1.8.1",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "conf",
"direct": false,
"version": "15.1.0",
"ecosystem": "npm"
},
{
"name": "confbox",
"direct": false,
"version": "0.2.4",
"ecosystem": "npm"
},
{
"name": "connect",
"direct": false,
"version": "3.7.0",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "core-js-compat",
"direct": false,
"version": "3.49.0",
"ecosystem": "npm"
},
{
"name": "create-jest",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "cross-fetch",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "css-in-js-utils",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "css.escape",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "cssom",
"direct": false,
"version": "0.3.8",
"ecosystem": "npm"
},
{
"name": "cssom",
"direct": false,
"version": "0.5.0",
"ecosystem": "npm"
},
{
"name": "cssstyle",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "csstype",
"direct": false,
"version": "3.2.3",
"ecosystem": "npm"
},
{
"name": "data-urls",
"direct": false,
"version": "3.0.2",
"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": "debounce-fn",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "2.6.9",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "3.2.7",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "decimal.js",
"direct": false,
"version": "10.6.0",
"ecosystem": "npm"
},
{
"name": "decode-uri-component",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "dedent",
"direct": false,
"version": "1.7.2",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "deepmerge",
"direct": false,
"version": "4.3.1",
"ecosystem": "npm"
},
{
"name": "defaults",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "define-data-property",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "define-properties",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "delayed-stream",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "depd",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "dequal",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "deslop-js",
"direct": false,
"version": "0.0.14",
"ecosystem": "npm"
},
{
"name": "destroy",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "detect-libc",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "detect-newline",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "detect-node-es",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "diff-sequences",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "dnssd-advertise",
"direct": false,
"version": "1.1.6",
"ecosystem": "npm"
},
{
"name": "doctrine",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "dom-accessibility-api",
"direct": false,
"version": "0.5.16",
"ecosystem": "npm"
},
{
"name": "dom-accessibility-api",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "domexception",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "dot-prop",
"direct": false,
"version": "10.1.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": "effect",
"direct": false,
"version": "4.0.0-beta.70",
"ecosystem": "npm"
},
{
"name": "electron-to-chromium",
"direct": false,
"version": "1.5.384",
"ecosystem": "npm"
},
{
"name": "emittery",
"direct": false,
"version": "0.13.1",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "encodeurl",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "encodeurl",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "env-paths",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "error-ex",
"direct": false,
"version": "1.3.4",
"ecosystem": "npm"
},
{
"name": "error-stack-parser",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "es-abstract",
"direct": false,
"version": "1.24.2",
"ecosystem": "npm"
},
{
"name": "es-abstract-get",
"direct": false,
"version": "1.0.0",
"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-iterator-helpers",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "es-module-lexer",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "es-object-atoms",
"direct": false,
"version": "1.1.2",
"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.4",
"ecosystem": "npm"
},
{
"name": "escalade",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "escape-html",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "escodegen",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "eslint",
"direct": false,
"version": "9.39.4",
"ecosystem": "npm"
},
{
"name": "eslint-config-expo",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "eslint-import-resolver-node",
"direct": false,
"version": "0.3.10",
"ecosystem": "npm"
},
{
"name": "eslint-import-resolver-typescript",
"direct": false,
"version": "3.10.1",
"ecosystem": "npm"
},
{
"name": "eslint-module-utils",
"direct": false,
"version": "2.13.0",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-expo",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-import",
"direct": false,
"version": "2.32.0",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-react",
"direct": false,
"version": "7.37.5",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-react-hooks",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "8.4.0",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "9.1.2",
"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": "eslint-visitor-keys",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "espree",
"direct": false,
"version": "10.4.0",
"ecosystem": "npm"
},
{
"name": "esprima",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "esquery",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "esrecurse",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "estraverse",
"direct": false,
"version": "5.3.0",
"ecosystem": "npm"
},
{
"name": "esutils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "etag",
"direct": false,
"version": "1.8.1",
"ecosystem": "npm"
},
{
"name": "event-target-shim",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "execa",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "exit",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "expect",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "expo-asset",
"direct": false,
"version": "57.0.2",
"ecosystem": "npm"
},
{
"name": "expo-file-system",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-glass-effect",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-keep-awake",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-modules-autolinking",
"direct": false,
"version": "57.0.3",
"ecosystem": "npm"
},
{
"name": "expo-modules-core",
"direct": false,
"version": "57.0.1",
"ecosystem": "npm"
},
{
"name": "expo-modules-jsi",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "expo-server",
"direct": false,
"version": "57.0.0",
"ecosystem": "npm"
},
{
"name": "exponential-backoff",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-check",
"direct": false,
"version": "4.8.0",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-glob",
"direct": false,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "fast-json-stable-stringify",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "fast-levenshtein",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "fast-uri",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fastq",
"direct": false,
"version": "1.20.1",
"ecosystem": "npm"
},
{
"name": "fb-dotslash",
"direct": false,
"version": "0.5.8",
"ecosystem": "npm"
},
{
"name": "fb-watchman",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "fbjs",
"direct": false,
"version": "3.0.5",
"ecosystem": "npm"
},
{
"name": "fbjs-css-vars",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "fetch-nodeshim",
"direct": false,
"version": "0.4.10",
"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": "filter-obj",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "finalhandler",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "find-my-way-ts",
"direct": false,
"version": "0.1.6",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "find-yarn-workspace-root",
"direct": false,
"version": "2.0.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": "flow-enums-runtime",
"direct": false,
"version": "0.0.6",
"ecosystem": "npm"
},
{
"name": "fontfaceobserver",
"direct": false,
"version": "2.3.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": "fresh",
"direct": false,
"version": "0.5.2",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "10.1.0",
"ecosystem": "npm"
},
{
"name": "fs.realpath",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "fsevents",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "function-bind",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "function.prototype.name",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "functions-have-names",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "generator-function",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "gensync",
"direct": false,
"version": "1.0.0-beta.2",
"ecosystem": "npm"
},
{
"name": "get-caller-file",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "get-intrinsic",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "get-nonce",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "get-package-type",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "get-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "get-stream",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "get-symbol-description",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "get-tsconfig",
"direct": false,
"version": "4.14.0",
"ecosystem": "npm"
},
{
"name": "getenv",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "13.0.6",
"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": "14.0.0",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "16.5.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": "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": "hermes-compiler",
"direct": false,
"version": "250829098.0.14",
"ecosystem": "npm"
},
{
"name": "hermes-estree",
"direct": false,
"version": "0.25.1",
"ecosystem": "npm"
},
{
"name": "hermes-estree",
"direct": false,
"version": "0.35.0",
"ecosystem": "npm"
},
{
"name": "hermes-estree",
"direct": false,
"version": "0.36.0",
"ecosystem": "npm"
},
{
"name": "hermes-parser",
"direct": false,
"version": "0.25.1",
"ecosystem": "npm"
},
{
"name": "hermes-parser",
"direct": false,
"version": "0.35.0",
"ecosystem": "npm"
},
{
"name": "hermes-parser",
"direct": false,
"version": "0.36.0",
"ecosystem": "npm"
},
{
"name": "hoist-non-react-statics",
"direct": false,
"version": "3.3.2",
"ecosystem": "npm"
},
{
"name": "hosted-git-info",
"direct": false,
"version": "7.0.2",
"ecosystem": "npm"
},
{
"name": "html-encoding-sniffer",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "html-escaper",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "http-errors",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "http-proxy-agent",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "https-proxy-agent",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "https-proxy-agent",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "human-signals",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "husky",
"direct": false,
"version": "9.1.7",
"ecosystem": "npm"
},
{
"name": "hyphenate-style-name",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "7.0.5",
"ecosystem": "npm"
},
{
"name": "image-size",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "import-in-the-middle",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "import-local",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "indent-string",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "inflight",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "ini",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "inline-style-prefixer",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "internal-slot",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "invariant",
"direct": false,
"version": "2.2.4",
"ecosystem": "npm"
},
{
"name": "is-array-buffer",
"direct": false,
"version": "3.0.5",
"ecosystem": "npm"
},
{
"name": "is-arrayish",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "is-arrayish",
"direct": false,
"version": "0.3.4",
"ecosystem": "npm"
},
{
"name": "is-async-function",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-bigint",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "is-boolean-object",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "is-bun-module",
"direct": false,
"version": "2.0.0",
"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-docker",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "is-document.all",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-extglob",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-finalizationregistry",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-fullwidth-code-point",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-generator-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "is-generator-function",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "is-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-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-potential-custom-element-name",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "is-regex",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "is-set",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-shared-array-buffer",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "is-stream",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "is-string",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-symbol",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-typed-array",
"direct": false,
"version": "1.1.15",
"ecosystem": "npm"
},
{
"name": "is-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": "is-wsl",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-coverage",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-instrument",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-instrument",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-report",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-source-maps",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-reports",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "iterator.prototype",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "jest-changed-files",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-circus",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-cli",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-config",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-diff",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-diff",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-docblock",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-each",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-environment-jsdom",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-environment-node",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-get-type",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "jest-haste-map",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-leak-detector",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-matcher-utils",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-matcher-utils",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-message-util",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-mock",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-pnp-resolver",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "jest-regex-util",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "jest-resolve",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-resolve-dependencies",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-runner",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-runtime",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-snapshot",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-util",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-validate",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-watch-select-projects",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "jest-watch-typeahead",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "jest-watcher",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-worker",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jimp-compact",
"direct": false,
"version": "0.16.1",
"ecosystem": "npm"
},
{
"name": "jiti",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "3.15.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "jsc-safe-url",
"direct": false,
"version": "0.2.4",
"ecosystem": "npm"
},
{
"name": "jsdom",
"direct": false,
"version": "20.0.3",
"ecosystem": "npm"
},
{
"name": "jsesc",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-parse-even-better-errors",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "json-schema-typed",
"direct": false,
"version": "8.0.2",
"ecosystem": "npm"
},
{
"name": "json-stable-stringify",
"direct": false,
"version": "1.3.0",
"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": "json5",
"direct": false,
"version": "2.2.3",
"ecosystem": "npm"
},
{
"name": "jsonc-parser",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "jsonfile",
"direct": false,
"version": "6.2.1",
"ecosystem": "npm"
},
{
"name": "jsonify",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "jsx-ast-utils",
"direct": false,
"version": "3.3.5",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "klaw-sync",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "kleur",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "kubernetes-types",
"direct": false,
"version": "1.30.0",
"ecosystem": "npm"
},
{
"name": "lan-network",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "leven",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "levn",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "lighthouse-logger",
"direct": false,
"version": "1.4.2",
"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": "lines-and-columns",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "lodash",
"direct": false,
"version": "4.18.1",
"ecosystem": "npm"
},
{
"name": "lodash.debounce",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "lodash.throttle",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "log-symbols",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "loose-envify",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "10.4.3",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "11.5.1",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "lz-string",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "magic-string",
"direct": false,
"version": "0.30.21",
"ecosystem": "npm"
},
{
"name": "magicast",
"direct": false,
"version": "0.5.3",
"ecosystem": "npm"
},
{
"name": "make-dir",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "makeerror",
"direct": false,
"version": "1.0.12",
"ecosystem": "npm"
},
{
"name": "marky",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "math-intrinsics",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "memoize-one",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "memoize-one",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "merge-stream",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "merge2",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "meriyah",
"direct": false,
"version": "6.1.4",
"ecosystem": "npm"
},
{
"name": "metro",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-babel-transformer",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-cache",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-cache-key",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-config",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-core",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-file-map",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-minify-terser",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-resolver",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-runtime",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-source-map",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-symbolicate",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-transform-plugins",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "metro-transform-worker",
"direct": false,
"version": "0.84.4",
"ecosystem": "npm"
},
{
"name": "micromatch",
"direct": false,
"version": "4.0.8",
"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-db",
"direct": false,
"version": "1.54.0",
"ecosystem": "npm"
},
{
"name": "mime-types",
"direct": false,
"version": "2.1.35",
"ecosystem": "npm"
},
{
"name": "mime-types",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "mimic-fn",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "mimic-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "mimic-function",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "min-indent",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "10.2.5",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "minipass",
"direct": false,
"version": "7.1.3",
"ecosystem": "npm"
},
{
"name": "mkdirp",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "module-details-from-path",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "msgpackr",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "msgpackr-extract",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "multipasta",
"direct": false,
"version": "0.2.7",
"ecosystem": "npm"
},
{
"name": "multitars",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": false,
"version": "3.3.15",
"ecosystem": "npm"
},
{
"name": "napi-postinstall",
"direct": false,
"version": "0.3.4",
"ecosystem": "npm"
},
{
"name": "natural-compare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "negotiator",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "negotiator",
"direct": false,
"version": "0.6.4",
"ecosystem": "npm"
},
{
"name": "negotiator",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "node-exports-info",
"direct": false,
"version": "1.6.2",
"ecosystem": "npm"
},
{
"name": "node-fetch",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "node-forge",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "node-gyp-build-optional-packages",
"direct": false,
"version": "5.2.2",
"ecosystem": "npm"
},
{
"name": "node-int64",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "node-releases",
"direct": false,
"version": "2.0.50",
"ecosystem": "npm"
},
{
"name": "normalize-path",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "npm-package-arg",
"direct": false,
"version": "11.0.3",
"ecosystem": "npm"
},
{
"name": "npm-run-path",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "nullthrows",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "nwsapi",
"direct": false,
"version": "2.2.24",
"ecosystem": "npm"
},
{
"name": "ob1",
"direct": false,
"version": "0.84.4",
"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.3.0",
"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": "onetime",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "onetime",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "open",
"direct": false,
"version": "7.4.2",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.4",
"ecosystem": "npm"
},
{
"name": "ora",
"direct": false,
"version": "3.4.0",
"ecosystem": "npm"
},
{
"name": "own-keys",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "oxc-parser",
"direct": false,
"version": "0.132.0",
"ecosystem": "npm"
},
{
"name": "oxc-resolver",
"direct": false,
"version": "11.23.0",
"ecosystem": "npm"
},
{
"name": "oxlint",
"direct": false,
"version": "1.72.0",
"ecosystem": "npm"
},
{
"name": "oxlint-plugin-react-doctor",
"direct": false,
"version": "0.2.16",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "p-try",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "packages/react-native-livechart",
"direct": false,
"version": "4.11.0",
"ecosystem": "npm"
},
{
"name": "parent-module",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parse-json",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "parse-png",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "parse5",
"direct": false,
"version": "7.3.0",
"ecosystem": "npm"
},
{
"name": "parseurl",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "patch-package",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "path-exists",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "path-is-absolute",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "path-key",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "path-parse",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "path-scurry",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "2.3.2",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "pirates",
"direct": false,
"version": "4.0.7",
"ecosystem": "npm"
},
{
"name": "pkg-dir",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "plist",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "pngjs",
"direct": false,
"version": "3.4.0",
"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": "postcss-value-parser",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "27.5.1",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "proc-log",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "progress",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "promise",
"direct": false,
"version": "7.3.1",
"ecosystem": "npm"
},
{
"name": "promise",
"direct": false,
"version": "8.3.0",
"ecosystem": "npm"
},
{
"name": "prompts",
"direct": false,
"version": "2.4.2",
"ecosystem": "npm"
},
{
"name": "prop-types",
"direct": false,
"version": "15.8.1",
"ecosystem": "npm"
},
{
"name": "psl",
"direct": false,
"version": "1.15.0",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "pure-rand",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "pure-rand",
"direct": false,
"version": "8.4.1",
"ecosystem": "npm"
},
{
"name": "query-string",
"direct": false,
"version": "7.1.3",
"ecosystem": "npm"
},
{
"name": "querystringify",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "queue",
"direct": false,
"version": "6.0.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": "react-devtools-core",
"direct": false,
"version": "6.1.5",
"ecosystem": "npm"
},
{
"name": "react-doctor",
"direct": false,
"version": "0.2.16",
"ecosystem": "npm"
},
{
"name": "react-fast-compare",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "react-freeze",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "16.13.1",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "17.0.2",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "18.3.1",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "19.2.7",
"ecosystem": "npm"
},
{
"name": "react-native-drawer-layout",
"direct": false,
"version": "4.2.5",
"ecosystem": "npm"
},
{
"name": "react-native-is-edge-to-edge",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "react-native-skia-android",
"direct": false,
"version": "147.1.0",
"ecosystem": "npm"
},
{
"name": "react-native-skia-apple-ios",
"direct": false,
"version": "147.1.0",
"ecosystem": "npm"
},
{
"name": "react-native-skia-apple-macos",
"direct": false,
"version": "147.1.0",
"ecosystem": "npm"
},
{
"name": "react-native-skia-apple-tvos",
"direct": false,
"version": "147.1.0",
"ecosystem": "npm"
},
{
"name": "react-reconciler",
"direct": false,
"version": "0.31.0",
"ecosystem": "npm"
},
{
"name": "react-refresh",
"direct": false,
"version": "0.14.2",
"ecosystem": "npm"
},
{
"name": "react-refresh",
"direct": false,
"version": "0.18.0",
"ecosystem": "npm"
},
{
"name": "react-remove-scroll",
"direct": false,
"version": "2.7.2",
"ecosystem": "npm"
},
{
"name": "react-remove-scroll-bar",
"direct": false,
"version": "2.3.8",
"ecosystem": "npm"
},
{
"name": "react-style-singleton",
"direct": false,
"version": "2.2.3",
"ecosystem": "npm"
},
{
"name": "react-test-renderer",
"direct": false,
"version": "19.2.3",
"ecosystem": "npm"
},
{
"name": "redent",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "reflect.getprototypeof",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "regenerate",
"direct": false,
"version": "1.4.2",
"ecosystem": "npm"
},
{
"name": "regenerate-unicode-properties",
"direct": false,
"version": "10.2.2",
"ecosystem": "npm"
},
{
"name": "regenerator-runtime",
"direct": false,
"version": "0.13.11",
"ecosystem": "npm"
},
{
"name": "regexp.prototype.flags",
"direct": false,
"version": "1.5.4",
"ecosystem": "npm"
},
{
"name": "regexpu-core",
"direct": false,
"version": "6.4.0",
"ecosystem": "npm"
},
{
"name": "regjsgen",
"direct": false,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "regjsparser",
"direct": false,
"version": "0.13.2",
"ecosystem": "npm"
},
{
"name": "require-directory",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "require-from-string",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "require-in-the-middle",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "requires-port",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.22.12",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "2.0.0-next.7",
"ecosystem": "npm"
},
{
"name": "resolve-cwd",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-from",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-from",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-pkg-maps",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-workspace-root",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "resolve.exports",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "restore-cursor",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "reusify",
"direct": false,
"version": "1.1.0",
"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.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": "sax",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "saxes",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "scheduler",
"direct": false,
"version": "0.25.0",
"ecosystem": "npm"
},
{
"name": "scheduler",
"direct": false,
"version": "0.27.0",
"ecosystem": "npm"
},
{
"name": "semifies",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "6.3.1",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.8.5",
"ecosystem": "npm"
},
{
"name": "send",
"direct": false,
"version": "0.19.2",
"ecosystem": "npm"
},
{
"name": "serialize-error",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "serve-static",
"direct": false,
"version": "1.16.3",
"ecosystem": "npm"
},
{
"name": "server-only",
"direct": false,
"version": "0.0.1",
"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": "setimmediate",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "setprototypeof",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "sf-symbols-typescript",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "shallowequal",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "shebang-command",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "shebang-regex",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "shell-quote",
"direct": false,
"version": "1.9.0",
"ecosystem": "npm"
},
{
"name": "side-channel",
"direct": false,
"version": "1.1.1",
"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": "signal-exit",
"direct": false,
"version": "3.0.7",
"ecosystem": "npm"
},
{
"name": "simple-plist",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "simple-swizzle",
"direct": false,
"version": "0.2.4",
"ecosystem": "npm"
},
{
"name": "sisteransi",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "slash",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "slash",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "slash",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "slugify",
"direct": false,
"version": "1.6.9",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.5.6",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.5.7",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.6.1",
"ecosystem": "npm"
},
{
"name": "source-map-js",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "source-map-support",
"direct": false,
"version": "0.5.13",
"ecosystem": "npm"
},
{
"name": "source-map-support",
"direct": false,
"version": "0.5.21",
"ecosystem": "npm"
},
{
"name": "split-on-first",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "stable-hash",
"direct": false,
"version": "0.0.5",
"ecosystem": "npm"
},
{
"name": "stack-generator",
"direct": false,
"version": "2.0.10",
"ecosystem": "npm"
},
{
"name": "stack-utils",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "stackframe",
"direct": false,
"version": "1.3.4",
"ecosystem": "npm"
},
{
"name": "stacktrace-gps",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "stacktrace-js",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "stacktrace-parser",
"direct": false,
"version": "0.1.11",
"ecosystem": "npm"
},
{
"name": "standard-navigation",
"direct": false,
"version": "0.0.5",
"ecosystem": "npm"
},
{
"name": "statuses",
"direct": false,
"version": "1.5.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": "stream-buffers",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "strict-uri-encode",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "string-length",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "string-length",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "string.prototype.matchall",
"direct": false,
"version": "4.0.12",
"ecosystem": "npm"
},
{
"name": "string.prototype.repeat",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "string.prototype.trim",
"direct": false,
"version": "1.2.11",
"ecosystem": "npm"
},
{
"name": "string.prototype.trimend",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "string.prototype.trimstart",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "strip-bom",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "strip-bom",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "strip-final-newline",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "strip-indent",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "structured-headers",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "stubborn-fs",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "stubborn-utils",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "styleq",
"direct": false,
"version": "0.1.3",
"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-color",
"direct": false,
"version": "8.1.1",
"ecosystem": "npm"
},
{
"name": "supports-hyperlinks",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "supports-preserve-symlinks-flag",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "symbol-tree",
"direct": false,
"version": "3.2.4",
"ecosystem": "npm"
},
{
"name": "tagged-tag",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "terminal-link",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "terser",
"direct": false,
"version": "5.48.0",
"ecosystem": "npm"
},
{
"name": "test-exclude",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "throat",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.17",
"ecosystem": "npm"
},
{
"name": "tmp",
"direct": false,
"version": "0.2.7",
"ecosystem": "npm"
},
{
"name": "tmpl",
"direct": false,
"version": "1.0.5",
"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": "toml",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "toqr",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "tough-cookie",
"direct": false,
"version": "4.1.4",
"ecosystem": "npm"
},
{
"name": "tr46",
"direct": false,
"version": "0.0.3",
"ecosystem": "npm"
},
{
"name": "tr46",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "ts-api-utils",
"direct": false,
"version": "2.5.0",
"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-detect",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.21.3",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.7.1",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "5.7.0",
"ecosystem": "npm"
},
{
"name": "typed-array-buffer",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "typed-array-byte-length",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "typed-array-byte-offset",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "typed-array-length",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "~6.0.3",
"ecosystem": "npm"
},
{
"name": "ua-parser-js",
"direct": false,
"version": "1.0.41",
"ecosystem": "npm"
},
{
"name": "uint8array-extras",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "unbox-primitive",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "8.3.0",
"ecosystem": "npm"
},
{
"name": "unicode-canonical-property-names-ecmascript",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "unicode-match-property-ecmascript",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "unicode-match-property-value-ecmascript",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "unicode-property-aliases-ecmascript",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "universalify",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "universalify",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "unpipe",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "unrs-resolver",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "update-browserslist-db",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "uri-js",
"direct": false,
"version": "4.4.1",
"ecosystem": "npm"
},
{
"name": "url-parse",
"direct": false,
"version": "1.5.10",
"ecosystem": "npm"
},
{
"name": "use-callback-ref",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "use-latest-callback",
"direct": false,
"version": "0.2.6",
"ecosystem": "npm"
},
{
"name": "use-sidecar",
"direct": false,
"version": "1.1.3",
"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": "uuid",
"direct": false,
"version": "14.0.1",
"ecosystem": "npm"
},
{
"name": "uuid",
"direct": false,
"version": "7.0.3",
"ecosystem": "npm"
},
{
"name": "v8-to-istanbul",
"direct": false,
"version": "9.3.0",
"ecosystem": "npm"
},
{
"name": "validate-npm-package-name",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "vary",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "vaul",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "vlq",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "w3c-xmlserializer",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "walker",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "warn-once",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "wcwidth",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "webidl-conversions",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "webidl-conversions",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-encoding",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-fetch",
"direct": false,
"version": "3.6.20",
"ecosystem": "npm"
},
{
"name": "whatwg-mimetype",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-url",
"direct": false,
"version": "11.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-url",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-url-minimum",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "when-exit",
"direct": false,
"version": "2.1.5",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "which-boxed-primitive",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "which-builtin-type",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "which-collection",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "which-typed-array",
"direct": false,
"version": "1.1.22",
"ecosystem": "npm"
},
{
"name": "word-wrap",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "wrappy",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "write-file-atomic",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": false,
"version": "7.5.11",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": false,
"version": "8.21.0",
"ecosystem": "npm"
},
{
"name": "xcode",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "xml-name-validator",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "xml2js",
"direct": false,
"version": "0.6.0",
"ecosystem": "npm"
},
{
"name": "xmlbuilder",
"direct": false,
"version": "11.0.1",
"ecosystem": "npm"
},
{
"name": "xmlbuilder",
"direct": false,
"version": "15.1.1",
"ecosystem": "npm"
},
{
"name": "xmlchars",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "y18n",
"direct": false,
"version": "5.0.8",
"ecosystem": "npm"
},
{
"name": "yallist",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "yaml",
"direct": false,
"version": "2.9.0",
"ecosystem": "npm"
},
{
"name": "yargs",
"direct": false,
"version": "17.7.3",
"ecosystem": "npm"
},
{
"name": "yargs-parser",
"direct": false,
"version": "21.1.1",
"ecosystem": "npm"
},
{
"name": "yocto-queue",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "zod",
"direct": false,
"version": "3.25.76",
"ecosystem": "npm"
},
{
"name": "zod",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "zod-validation-error",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 1198,
"direct_count": 30,
"indirect_count": 1168
}
},
"maintainership": {
"issues": {
"open_prs": 3,
"merged_prs": 192,
"open_issues": 3,
"closed_ratio": 0.903,
"closed_issues": 28,
"closed_unmerged_prs": 2
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "brandtnewlabs",
"commits": 143,
"avatar_url": "https://avatars.githubusercontent.com/u/44766428?v=4"
},
{
"type": "User",
"login": "dszym00",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/217054436?v=4"
},
{
"type": "User",
"login": "Cancuuu",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/52618089?v=4"
},
{
"type": "User",
"login": "ianlapham",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/17100331?v=4"
},
{
"type": "User",
"login": "kyrylokap",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/163316652?v=4"
},
{
"type": "User",
"login": "zhelezkov",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/5163918?v=4"
}
],
"contributors_sampled": 6,
"top_contributor_share": 0.96
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"codeql.yml",
"test.yml"
],
"has_docs_dir": true,
"linter_configs": [
"eslint.config.js"
],
"has_editorconfig": false,
"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": 10,
"reason": "26 out of 26 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 1/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 9,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 29 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": 1,
"reason": "dependency not pinned by hash detected -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 9,
"reason": "SAST tool detected but not run on all commits",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 5,
"reason": "5 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "c0ea00a6ce0f94dc7ffe46525debcc595d0711c1",
"ran_at": "2026-07-26T11:36:22Z",
"aggregate_score": 6,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": true,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-20T13:18:43Z",
"oldest_open_prs": [
{
"number": 197,
"created_at": "2026-07-13T23:07:45Z",
"last_comment_at": "2026-07-15T05:37:57Z",
"last_comment_author": "brandtnewlabs"
},
{
"number": 198,
"created_at": "2026-07-13T23:11:20Z",
"last_comment_at": "2026-07-15T05:37:57Z",
"last_comment_author": "brandtnewlabs"
},
{
"number": 199,
"created_at": "2026-07-13T23:34:39Z",
"last_comment_at": "2026-07-15T05:37:58Z",
"last_comment_author": "brandtnewlabs"
}
],
"last_merged_pr_at": "2026-07-20T13:16:12Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 225,
"created_at": "2026-07-20T08:31:32Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 227,
"created_at": "2026-07-21T11:35:31Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 228,
"created_at": "2026-07-21T12:13:55Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/brandtnewlabs/react-native-livechart",
"host": "github.com",
"name": "react-native-livechart",
"owner": "brandtnewlabs"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 71,
"inputs": {
"security": 68,
"vitality": 82,
"community": 62,
"governance": 57,
"engineering": 86
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 82,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"commits_last_year": 150,
"human_commit_share": 0.99,
"days_since_last_push": 5,
"active_weeks_last_year": 8
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "8/52 weeks with commits",
"points": 5.5,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 8
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "150 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 150
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 35,
"latest_release_tag": "v4.11.0",
"releases_from_tags": false,
"days_since_latest_release": 6,
"mean_days_between_releases": 2.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "35 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 35
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 6 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 6
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~2.7 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 2.7
}
}
],
"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": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 62,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "at_risk",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 45,
"inputs": {
"forks": 7,
"stars": 162,
"watchers": 4,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "162 stars",
"points": 35.8,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 162
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "7 forks",
"points": 6.5,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 7
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "4 watchers",
"points": 2.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 4
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 79,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "license file present, not a recognized license",
"points": 16.9,
"status": "partial",
"details": [
{
"code": "license_custom",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 67,
"inputs": {
"packages": [
"react-native-livechart"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 10132
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "10,132 downloads/month across npm",
"points": 53.4,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 10132,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 57,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 18,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 6,
"top_contributor_share": 0.96
},
"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 96% of commits",
"points": 0.9,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 96
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "6 contributors",
"points": 8.1,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 6
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"merged_prs": 192,
"open_issues": 3,
"closed_issues": 28,
"issue_closed_ratio": 0.903,
"closed_unmerged_prs": 2
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "90% of issues closed",
"points": 42.2,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 90
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "192/194 decided PRs merged",
"points": 37.9,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 192,
"decided": 194
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 1/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 47,
"inputs": {
"followers": 21,
"owner_type": "User",
"is_verified": null,
"owner_login": "brandtnewlabs",
"public_repos": 5,
"account_age_days": 2820
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "21 followers of brandtnewlabs",
"points": 9.7,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 21,
"login": "brandtnewlabs"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "5 public repos, account ~7 yr old",
"points": 17.7,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 5
}
},
{
"code": "account_age_years",
"params": {
"years": 7
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"react-native-livechart"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 6
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 6 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 6
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "35 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 35
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "excellent",
"name": "Engineering Quality",
"value": 86,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 84,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": "eslint.config.js",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "eslint.config.js"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "26 out of 26 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"topics": [
"candlestick",
"chart",
"charts",
"expo",
"gesture-handler",
"react-native",
"reanimated",
"skia",
"trading",
"typescript"
],
"has_wiki": false,
"homepage": "https://react-native-livechart.brandtnewlabs.com",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://react-native-livechart.brandtnewlabs.com",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "10 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 10
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 68,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection",
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 60,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 15,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 3,
"scorecard_aggregate": 6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "26 out of 26 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 1/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 1",
"points": 0.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool detected but not run on all commits",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "5 existing vulnerabilities detected",
"points": 3.8,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 1196 resolved dependencies against OSV; 2 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories",
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 1196
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 2
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 6,
"affected_packages": 5,
"assessed_packages": 1196,
"unassessed_packages": 2,
"affected_by_severity": "high 5",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 1196,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 6
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 70,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 5434
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "99 of 99 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 99,
"sampled": 99
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"package-lock.json"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"packages/react-native-livechart/tsconfig.json",
"reproductions/worklets-hermes-module-retention/tsconfig.json",
"tsconfig.json"
],
"agent_commit_share": 0.6,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": "eslint.config.js",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "eslint.config.js"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "packages/react-native-livechart/tsconfig.json, reproductions/worklets-hermes-module-retention/tsconfig.json, tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "packages/react-native-livechart/tsconfig.json, reproductions/worklets-hermes-module-retention/tsconfig.json, tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "60 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 60,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 1",
"points": 1,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 102053,
"source_files_sampled": 280,
"oversized_source_files": 2
},
"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": "2/280 source files over 60KB",
"points": 54.6,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 280,
"oversized": 2
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "critical",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 20,
"inputs": {
"example_dirs": [],
"has_mcp_signal": true,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 20,
"status": "met",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-26T11:36:39.164475Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/b/brandtnewlabs/react-native-livechart.svg",
"full_name": "brandtnewlabs/react-native-livechart",
"license_state": "custom",
"license_spdx": null
}