diff --git a/.changeset/README.md b/.changeset/README.md
index 042fc7a8..9ab5c86d 100644
--- a/.changeset/README.md
+++ b/.changeset/README.md
@@ -6,6 +6,6 @@ Add a changeset for every user-visible package change:
pnpm changeset
```
-All eleven public Charts packages release as one fixed version. Documentation,
+All twelve public Charts packages release as one fixed version. Documentation,
tests, benchmarks, and build-only changes do not need a changeset unless they
change the published package contract.
diff --git a/.changeset/config.json b/.changeset/config.json
index 73e3ddd2..60f4275e 100644
--- a/.changeset/config.json
+++ b/.changeset/config.json
@@ -17,6 +17,7 @@
"@tanstack/charts",
"@tanstack/charts-scales",
"@tanstack/react-charts",
+ "@tanstack/react-native-charts",
"@tanstack/octane-charts",
"@tanstack/preact-charts",
"@tanstack/vue-charts",
diff --git a/.changeset/native-svg-host.md b/.changeset/native-svg-host.md
new file mode 100644
index 00000000..9b7b1cd4
--- /dev/null
+++ b/.changeset/native-svg-host.md
@@ -0,0 +1,8 @@
+---
+'@tanstack/react-native-charts': minor
+---
+
+Add the experimental React Native SVG host with responsive scene rendering,
+focus, selection, accessibility actions, and an optional native tooltip entry.
+Ship compiled ESM and declarations, and verify the packed package in bare React
+Native and Expo Metro consumers.
diff --git a/.github/workflows/chart-library-benchmarks.yml b/.github/workflows/chart-library-benchmarks.yml
index a6ca01db..8ba83a4e 100644
--- a/.github/workflows/chart-library-benchmarks.yml
+++ b/.github/workflows/chart-library-benchmarks.yml
@@ -41,6 +41,9 @@ jobs:
- name: Run cached validation graph
run: pnpm run validate
+ - name: Check React Native POC types
+ run: pnpm react-native:poc:types
+
- name: Upload production catalog
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
diff --git a/.gitignore b/.gitignore
index 075a9272..0c18d993 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@ dist
.benchmark-output
.catalog-artifact
.release-artifacts
+.expo/
.nx/cache
.nx/workspace-data
coverage
diff --git a/API-FRICTION.md b/API-FRICTION.md
index f942b5a4..119cf02f 100644
--- a/API-FRICTION.md
+++ b/API-FRICTION.md
@@ -5,7 +5,7 @@ observed difficulty from examples, production migrations, tests, and agent
evaluations so later API, documentation, and TanStack Intent skill work is
based on evidence.
-Last updated: 2026-07-31
+Last updated: 2026-08-01
## Triage rule
@@ -202,6 +202,14 @@ Each entry records:
| F-164 | Sankey widths required a custom scene renderer | API | resolved |
| F-165 | Incidental D3 utilities leaked into core paths | API/Tooling | resolved |
| F-166 | Grouped tooltip order diverged from mark position | API | resolved |
+| F-167 | D3 declarations require a browser image global | Tooling | monitoring |
+| F-168 | Native interaction copied DOM-renderer policy | API | monitoring |
+| F-169 | CSS theme defaults reach the native scene compiler | API | monitoring |
+| F-170 | Text measurement omits native typography | API | monitoring |
+| F-171 | Packed declarations assume one platform global set | Tooling | resolved |
+| F-172 | Metro skipped the fixture-owned Babel runtime | Tooling | resolved |
+| F-173 | Metro retained the complete universal barrel | API/Tooling | monitoring |
+| F-174 | OIDC release cannot claim a new npm package name | Tooling | monitoring |
## Findings
@@ -3178,7 +3186,9 @@ Each entry records:
widths. The cross-library fixtures now configure tooltip, keyboard, focus,
and animation on each definition through the typed `defineChart` overload;
a typed host-options boundary prevents behavior from drifting back to
- adapter props.
+ adapter props. The React Native `/universal` fixture keeps behavior on its
+ directly authored one-argument definition; the two-argument form remains
+ reserved for decorating an existing definition.
### F-131 — Stable identity repeated inferable key channels
@@ -3712,21 +3722,22 @@ Each entry records:
`@tanstack/charts/universal` for common authoring/runtime values plus
`@tanstack/charts/types` for universal contracts. The name describes the
supported cross-runtime surface while the browser-first root remains the
- normal web entry. DOM surface, renderer, host, and render-context types now
- live behind an internal module while retaining their existing root
- re-exports. Definition inputs retain DOM-free extension token contracts while
- the generic tooltip and portal token interfaces are exported for host-adapter
- authors. Typed DOM tooltip and portal lifecycles remain in the DOM module. Do
- not conditionally change the root until a native host can test one coherent
- platform contract.
-- Verification: root typechecking and 61 focused core tests pass. The packed
- package gate resolves both new entries from `dist`, compiles their
+ normal web entry. `/portable` was an early pre-1.0 name and is intentionally
+ not restored; `/universal` is the sole cross-runtime barrel. DOM surface,
+ renderer, host, and render-context types now live behind an internal module
+ while retaining their existing root re-exports. Definition inputs retain
+ DOM-free extension token contracts while the generic tooltip and portal token
+ interfaces are exported for host-adapter authors. Typed DOM tooltip and
+ portal lifecycles remain in the DOM module. Do not conditionally change the
+ root until a native host can test one coherent platform contract.
+- Verification: root typechecking and focused core tests pass. The packed
+ package gate resolves `/universal` and `/types` from `dist` and compiles their
declarations, including tooltip definition inputs and direct generic-token
imports, with Web Worker rather than DOM globals. Type regressions reject
swapping tooltip and portal tokens.
The packed bundle proof excludes the root, adapters, Canvas, DOM host/text,
browser export, reconciliation, renderer, and SVG surface modules. That full
- universal barrel measures 53.95 kB minified and 16.60 kB gzip; granular
+ universal barrel measures 84.30 kB minified and 26.55 kB gzip; granular
subpaths remain the bundle-sensitive option.
### F-155 — Optional tooltip code burdened every chart consumer
@@ -3735,7 +3746,7 @@ Each entry records:
- Severity: high
- Owner: API
- Observed in: reducing the representative React line consumer from 25.11 KiB
- to 13.89 KiB gzip
+ to 13.89 KiB gzip and restacking the React Native host proof
- Friction: the renderer statically owned native tooltip DOM, formatting,
placement, pinning, portal transport, and observers. React's base entries
also statically owned `react-dom` portal composition and the default rich
@@ -3747,13 +3758,22 @@ Each entry records:
portal extension. Move React rich-body composition to drop-in Chart,
CanvasChart, and RendererChart exports from
`@tanstack/react-charts/tooltip`. Base entries export only erased extension
- types and never import those runtime modules.
+ types and never import those runtime modules. Apply the same boundary to the
+ native host: its branded renderer token and implementation live at
+ `@tanstack/react-native-charts/tooltip`, while the base package imports only
+ the erased native extension contract. A string host brand accepts duplicate
+ package copies and custom native renderers without accepting the DOM token.
- Verification: the representative compact React line is 14,227 gzip bytes.
Native tooltip adds 3,381 bytes; portal adds 806 more. Retained-output graph
checks prove base renderer and React entries contain none of the tooltip,
- portal, or React rich-body modules. Core, Lit, React, export, declaration,
- packed-package, and lifecycle tests cover creation, update, disable,
- transport switching, custom bodies, and cleanup.
+ portal, or React rich-body modules. The React Native base host is 10,468 gzip
+ bytes and adding its tooltip subpath costs 1,990 bytes; retained-input checks
+ prove both the base host and line consumer omit `Tooltip.tsx`, all native
+ entries omit web tooltip and portal code, and the base host retains no D3
+ runtime. Core, Lit,
+ React, native, export, declaration, packed-package, and lifecycle tests cover
+ creation, update, disable, host ownership, transport switching, custom
+ bodies, and cleanup.
### F-156 — Releases stranded manual Unreleased migration notes
@@ -4001,3 +4021,207 @@ Each entry records:
`color-domain`, `focus`, and custom comparators as explicit policies.
- Verification: runtime tests cover both axes with input and color-domain order
opposed to the rendered mark order.
+
+### F-167 — D3 declarations require a browser image global
+
+- Status: monitoring
+- Severity: medium
+- Owner: Tooling
+- Observed in: strict DOM-free React Native consumer typecheck
+- Friction: after Charts' DOM types were removed from the selected declaration
+ graph, `skipLibCheck: false` with native libraries still failed in
+ `@types/d3-array`. Its `blurImage` signature references the browser global
+ `ImageData`, even though the chart consumer does not import or call that API.
+- Current decision: keep the strict configuration as a sentinel. Do not add a
+ fake `ImageData` declaration, enable DOM libraries, or weaken the package's
+ runtime boundary to conceal an upstream declaration issue. The normal
+ React Native configuration passes.
+- Verification: the native type gate accepts only the two known
+ `@types/d3-array` diagnostics or a clean result after the upstream
+ declaration is fixed. It rejects every other diagnostic.
+
+### F-168 — Native interaction copied DOM-renderer policy
+
+- Status: monitoring
+- Severity: high
+- Owner: API
+- Observed in: restacking the React Native focus, selection, and tooltip proof
+ after tooltip rendering moved behind an extension token
+- Friction: focus preset resolution, stable-point restoration, navigation
+ order, tooltip content construction, anchor resolution, and placement math
+ are pure behavior but remain private across the DOM renderer and tooltip
+ implementation. The native proof reproduced them to exercise realistic
+ interaction. The
+ extension split also made configured tooltip options require a host-owned
+ token; importing the web token would pull DOM implementation into Metro.
+ Restacking onto 0.3.0 also required the duplicate native resolver to learn
+ the new per-axis anchors and focus-aware custom-anchor context before its
+ strict type gate passed again. The scene compiler now also emits authored or
+ default focus layers and inline mark-state metadata. Rendering those groups
+ directly made inactive focus marks permanently visible in the native scene.
+ The duplicate tooltip path also sorted display rows before choosing its
+ primary point, so a non-first focused series changed formatter and anchor
+ context. Scene restoration compared only semantic point identity, leaving
+ overlays, tooltips, and external callbacks attached to old point objects
+ after responsive geometry changed. Callback prop identity could also
+ retrigger restoration and incorrectly change the focus source.
+ Restacking onto the visual grouped-tooltip ordering change then exposed the
+ same drift again: the DOM host defaulted to visual order while the native
+ copy still used color-domain order.
+- Current decision: keep the duplication confined to the private proof. The
+ native adapter exports a branded extension from its optional `/tooltip`
+ subpath, accepts duplicate package copies and custom native implementations,
+ and rejects tokens owned by another host. The environment-neutral `/types`
+ entry exposes the generic token contract so an adapter does not need a hidden
+ core import. That generic contract means the wrong host token is rejected at
+ native render time rather than by the shared definition type; production
+ typing may need a host-refined definition. A definition becomes host-specific
+ when decorated with a tooltip token, while applications can still share the
+ chart spec and options before that platform step. A supported native package
+ still requires extracting renderer-neutral interaction and tooltip state,
+ with the DOM and native hosts consuming the same implementation. The proof
+ omits shared focus-layer groups from its base scene and uses a generic native
+ overlay; authored focus marks and inline mark states remain unsupported until
+ scene-state resolution is shared. It now preserves the original primary and
+ focus group independently from sorted tooltip rows, refreshes restored point
+ objects and callbacks, and keeps callback refs out of restoration effect
+ dependencies.
+- Verification: focused native tests cover strategy selection, grouping,
+ restoration, navigation, axis and custom anchors, supported default content,
+ placement, and extension ownership. The native type and Metro gates use the
+ native token without web tooltip modules, and retained-input gates prove the
+ base native entry does not include the optional tooltip implementation.
+ Browser portal tokens fail explicitly instead of being ignored. The default
+ native tooltip still lacks the complete `items` formatting contract. A
+ regression verifies inactive focus-layer paint is absent from the native
+ scene. Component regressions cover a primary point that sorts after another
+ series, restored coordinates and callbacks after resize, and stable focus
+ source when only callback props change. A grouped-tooltip regression now
+ verifies visual default order and explicit color-domain order in both hosts.
+
+### F-169 — CSS theme defaults reach the native scene compiler
+
+- Status: monitoring
+- Severity: high
+- Owner: API
+- Observed in: React Native paint resolution
+- Friction: the shared default theme contains `currentColor`, system CSS names,
+ and CSS custom properties. The native proof can resolve final paint strings
+ and their fallbacks, but a dynamic chart builder still receives the web
+ default theme before the host sees the scene.
+- Current decision: the private host resolves final paints explicitly and
+ never evaluates application CSS. Before release, runtime construction needs
+ an additive platform-default-theme option used both by dynamic build context
+ and final theme merging. Structured paint references may be warranted if
+ more host semantics appear.
+- Verification: native paint and full-scene tests contain no unresolved CSS
+ variable or `currentColor` output. Device themes and dynamic native-theme
+ builders remain unverified.
+
+### F-170 — Text measurement omits native typography
+
+- Status: monitoring
+- Severity: high
+- Owner: API
+- Observed in: React Native SVG labels and automatic guide layout
+- Friction: `ChartTextMeasureOptions` carries size and weight but not font
+ family, style, stretch, letter spacing, direction, locale, or font-scale
+ policy. The native painter accepts a `fontFamily`, while the shared layout
+ cannot ask a native measurer for the same font.
+- Current decision: expose the existing injected measurer in the proof and do
+ not claim text parity. Production work must complete the typography contract
+ and decide how native asynchronous measurement feeds deterministic scene
+ layout without hidden mounted views.
+- Verification: injected-measurer core tests pass. No iOS or Android font-scale
+ and clipping matrix has been run.
+
+### F-171 — Packed declarations assume one platform global set
+
+- Status: resolved
+- Severity: medium
+- Owner: Tooling
+- Observed in: making the React Native package publishable
+- Friction: the existing packed fixture compiles web packages under DOM
+ libraries. Loading React Native declarations in that same TypeScript program
+ introduces incompatible duplicate globals. Removing DOM libraries makes the
+ web contracts invalid and also exposes F-167.
+- Decision: build and pack the native adapter in the release artifact matrix,
+ but keep its declarations and consumers outside the DOM fixture's TypeScript
+ program. The package publishes compiled ESM and declarations with `types`,
+ `react-native`, and `import` conditions. A native-specific gate deploys clean
+ bare React Native and Expo dependency trees, installs the packed core and
+ adapter tarballs, and runs each platform's normal Metro configuration.
+- Verification: the staged package emits both root and optional-tooltip
+ declarations, contains no source or tests, and retains no `workspace:`
+ ranges. Node resolution selects the import build normally and the native
+ shims under `--conditions=react-native`. Bare React Native 0.86.2 with
+ `react-native-svg` 15.15.5 and Expo 57 with Expo's 15.15.4 build both
+ typecheck and produce iOS and Android bundles. All four source maps resolve
+ the adapter and `/universal` from installed `dist`, include the native
+ conditional entries, exclude workspace source and guarded browser modules,
+ and retain only F-167's two known strict dependency diagnostics. Separately,
+ the workspace Expo 57 fixture boots in Expo Go on an iOS simulator and
+ renders its chart under Hermes; the packed artifact has not been run on that
+ simulator.
+
+### F-172 — Metro skipped the fixture-owned Babel runtime
+
+- Status: resolved
+- Severity: medium
+- Owner: Tooling
+- Observed in: rebuilding the React Native POC after removing redundant root
+ dependencies
+- Friction: the example correctly declared `@babel/runtime`, but Metro resolved
+ React Native from pnpm's physical store path and searched that path's
+ ancestors instead of the example's `node_modules`. Production bundling
+ failed on `@babel/runtime/helpers/interopRequireDefault` unless the dependency
+ was duplicated at the workspace root.
+- Decision: configure Metro's `resolver.nodeModulesPaths` with the example and
+ workspace module roots. Keep Babel ownership in the example rather than
+ masking the monorepo resolution boundary with a root dependency.
+- Verification: all ten blank, RNSVG, core, granular full-chart, and universal
+ full-chart production bundles complete for iOS and Android. The universal
+ variants require `/universal`, and source-map checks exclude every guarded
+ browser implementation module.
+
+### F-173 — Metro retained the complete universal barrel
+
+- Status: monitoring
+- Severity: medium
+- Owner: API/Tooling
+- Observed in: measuring the documented React Native minimum usage through
+ `@tanstack/charts/universal`
+- Friction: Metro 0.84 retained every runtime module re-exported by the broad
+ barrel, even though the fixture imported only `defineChart` and `lineY`. The
+ result included unused marks, data-transform families, and the
+ environment-neutral static SVG string serializer. Against the same granular
+ full-chart fixture, `/universal` added 119.06 KiB minified and 28.91 KiB gzip
+ on both iOS and Android, plus 102 modules per platform.
+- Current decision: keep `/universal` as the ergonomic cross-runtime authoring
+ entry and make the full-chart Metro proof exercise it. Keep the native host's
+ own imports granular, publish granular entries as the bundle-sensitive path,
+ and do not describe the broad barrel as cost-equivalent under Metro.
+- Verification: the iOS and Android full-chart bundles require
+ `packages/charts-core/src/universal.ts`, measure 103.00 and 103.05 KiB gzip over
+ blank respectively, and exclude DOM hosts, browser adapters, Canvas,
+ reconciliation, SVG resources/surface, web tooltip code, and `react-dom`.
+
+### F-174 — OIDC release cannot claim a new npm package name
+
+- Status: monitoring
+- Severity: high
+- Owner: Tooling
+- Observed in: adding `@tanstack/react-native-charts` to the fixed release set
+- Friction: the package name is not present in the npm registry, while the
+ aggregate release uses npm trusted publishing. npm configures that trust from
+ an existing package's settings, so the normal tokenless workflow cannot be
+ authorized for this package before its registry entry exists.
+- Current decision: keep the package in release artifacts and the fixed
+ changeset, but require a maintainer-controlled direct public publish of the
+ checked `0.4.0` tarball. Configure the repository's release workflow as the
+ trusted publisher immediately afterward; the aggregate changeset can then
+ publish `0.5.0` through OIDC.
+- Verification: `npm view @tanstack/react-native-charts` currently returns
+ `E404`. Close this entry only after the public package exists, its trusted
+ publisher names the repository release workflow, and an aggregate release
+ publishes it without a long-lived write token.
diff --git a/NATIVE-PLATFORM-SUPPORT-SPIKE.md b/NATIVE-PLATFORM-SUPPORT-SPIKE.md
new file mode 100644
index 00000000..a1ad4832
--- /dev/null
+++ b/NATIVE-PLATFORM-SUPPORT-SPIKE.md
@@ -0,0 +1,874 @@
+# Native platform support spike
+
+Research date: 2026-07-30
+
+## Decision
+
+Full React Native support is feasible without replacing the chart grammar or
+the D3-based compiler. It is not an adapter-only project. The reusable unit is
+the keyed `ChartScene`; sizing, text, paint resolution, rendering, gestures,
+tooltips, animation, accessibility, and raster export need native
+implementations.
+
+Build in this order:
+
+1. Keep the compiler and existing focus algorithms DOM-free, extract the
+ browser-owned interaction state, and introduce a renderer-neutral
+ transition plan.
+2. Ship `react-native-svg` as the default React Native renderer.
+3. Add React Native Skia as an optional renderer for dense or frequently
+ updated charts, after measuring the crossover.
+4. Use the same core refactor to test a NativeScript Core view backed by
+ `@nativescript/canvas`.
+5. Treat Compose, SwiftUI, and Flutter as separate native products consuming a
+ portable definition or scene schema. They cannot share the live TypeScript
+ API.
+
+React Native is the highest-confidence target because its JavaScript runtime
+can execute the existing definitions, accessors, imported D3 modules, scales,
+and scene compiler. NativeScript is expected to reuse those layers, subject to
+a bundler and runtime proof. Kotlin, Swift, and Dart cannot preserve arbitrary
+JavaScript callbacks without embedding a JavaScript runtime.
+
+## What “everything” should mean
+
+Parity should be measured by outcome, not by reproducing browser mechanics.
+
+| Contract | Native parity |
+| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Data-to-scene behavior | The same definition and data produce equal normalized domains, mark keys, topology, and focus order; numeric geometry and runtime-formatted labels meet explicit tolerances. |
+| Visual behavior | Every current scene primitive, mark family, coordinate system, guide, legend, gradient, and clip renders within documented tolerances. |
+| Interaction behavior | Library-owned focus, grouped focus, activation, and pinning match. App-owned brush, zoom, scrub, range selection, and editing use documented native integration patterns. |
+| Motion behavior | Stable-key enter/update/exit, interruption, reduced motion, and incompatible-path fallback retain the same semantics. |
+| Accessibility behavior | A user can discover the chart, traverse or adjust the current datum, hear values, activate selections, and reach an application-provided complete data representation. |
+| Export behavior | JavaScript targets retain deterministic resource-aware SVG. Native renderers add platform bitmap snapshots and file/share integration. |
+| Web-only behavior | SSR, hydration, DOM callbacks, CSS selectors, and mouse-specific input remain supported by the web renderer; they are not native device requirements. |
+
+Pixel-identical text across browser engines, Core Text, Android text, and Skia
+is not a useful acceptance criterion. Geometry can be exact when renderers
+consume the same scene; independently ported compilers need numeric tolerances
+for geometry too.
+
+## Current repository boundary
+
+The repository already has most of the right compiler boundary:
+
+- `createChartRuntime` and `createChartScene` take definitions and logical
+ dimensions and produce a scene.
+- Marks emit seven portable node types: group, rule, polyline, area, dot,
+ rectangle, and label.
+- Cartesian, facet, polar, and geographic marks all end at those primitives.
+ Polar and geographic shapes carry path strings instead of requiring a DOM.
+- Focusable `ChartPoint` records are separate from painted nodes. This permits
+ renderer batching without losing datum identity or hit testing.
+- Resource-aware static SVG serialization through
+ `renderChartSvgWithResources` is already independent of a mounted browser
+ surface. The lower-level `renderChartSvg` does not emit gradient and clip
+ resources by itself.
+- The conformance corpus contains 100 cases, including 16 executable
+ interaction cases and 51 interaction scenarios. It supplies coverage, but
+ many cases combine definition, DOM mount, controls, selectors, and
+ DOM-specific gesture code. Native conformance first requires extracting
+ platform-neutral data and definition factories, then replacing mounts,
+ application controllers, and drivers.
+
+The public renderer and host boundary is browser-shaped:
+
+| Evidence | Native consequence |
+| ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
+| `ChartSurface.element` is `Element`; `ChartRenderer.mount` accepts `HTMLElement`; render callbacks expose `HTMLElement` and `SVGSVGElement`. | A native renderer cannot implement the current public contract honestly. |
+| `renderer.ts` owns `ResizeObserver`, pointer and keyboard events, animation frames, DOM tooltips, focus, and reduced-motion queries. | Reusable interaction state is mixed with browser services. |
+| `canvas.ts` creates HTML canvases and reads `devicePixelRatio` and media queries. | Its painter can be extracted, but the current Canvas renderer cannot run in NativeScript or React Native. |
+| `dom-text.ts` reads computed CSS and measures through browser Canvas 2D. | Native layout needs a different font-resolution and measurement service. |
+| `RendererChart.tsx` imports `react-dom`, mounts `
` elements, injects HTML, and portals tooltips into DOM elements. | The React adapter is a web adapter, not a portable React component. |
+| Default theme colors use `currentColor` and CSS custom properties. | Native renderers need concrete colors or platform-resolved semantic tokens. |
+| Gradient references are emitted as SVG/CSS `url(#id)` strings; scene nodes also carry `className` and `ariaHidden`. | Structured paint references and semantic metadata should be separated from web serialization. |
+| `SceneLabel` and `ChartTextMeasureOptions` expose size and weight, but not family, style, stretch, direction, letter spacing, or locale. | Native guide layout cannot reproduce the font that will paint the label. |
+| `ResolvedScale.map` is a function and `ChartPoint.datum` can contain any live value. | The in-process scene is portable between JavaScript renderers, but is not a language-neutral serialized schema. |
+| The root remains browser-inclusive; `@tanstack/charts/universal` and `@tanstack/charts/types` select the DOM-free value and declaration graph. | Native code has a supported boundary, while strict dependency checking still exposes the upstream `ImageData` declaration issue. |
+
+Directional code inventory:
+
+- The browser-heavy renderer, Canvas host, DOM export, DOM text measurement,
+ and reconciliation files remain a substantial but isolated implementation
+ layer.
+- Most mark, scale, layout, polar, geographic, and scene construction code is
+ renderer-independent.
+
+Source counts change too quickly to serve as a credible reuse guarantee.
+`types.ts` is now DOM-free, while `renderer.ts` and `canvas.ts` still mix
+portable behavior with browser services. The React web adapter remains a
+rewrite target because its UI is HTML plus `react-dom`.
+
+## Required architecture
+
+```mermaid
+flowchart TD
+ Definition["Live TypeScript chart definition"] --> Runtime["Shared runtime
marks · D3 · scales · guides · layout"]
+ CompileInputs["Compiler inputs
logical size · text metrics · theme input"] --> Runtime
+ Runtime --> Scene["In-process ChartScene
geometry · keys · points · scale metadata"]
+ Scene --> State["Shared controller
focus restoration · activation · pinning · transition plan · semantics"]
+ Host["Host capabilities
frame clock · input · overlays · accessibility · snapshots"] --> State
+ State --> Web["Web
SVG · Canvas · DOM overlays"]
+ State --> RNSVG["React Native
react-native-svg · RN overlays"]
+ State --> Skia["React Native
Skia · RN semantic overlays"]
+ State --> NS["NativeScript
Canvas · native overlays"]
+ Portable["Portable definition / scene DTO"] --> Compose["Compose"]
+ Portable --> Flutter["Flutter"]
+ Portable --> Apple["SwiftUI / Core Graphics"]
+```
+
+Use narrow capabilities, not DOM-shaped polyfills.
+
+Compiler inputs:
+
+- `measureText(request)`: resolved font properties in; advance width and line
+ metrics out, with optional ink bounds.
+- `resolvePaint(token)`: semantic or CSS-like theme input to renderer-usable
+ paint.
+- `layoutSize`: logical dimensions supplied by the host.
+
+Host, controller, and surface capabilities:
+
+- `requestFrame`, `cancelFrame`, and reduced-motion state.
+- Platform coordinates to logical scene coordinates.
+- Tooltip and application-owned overlay presentation.
+- Focus-indicator geometry, style, visibility, and paint.
+- Accessible summary, active-datum controls, actions, and announcements.
+- Optional renderer-specific bitmap snapshots.
+
+The compiler must remain a normal JavaScript operation. React Native worklets
+should only own frame-critical numeric state, such as gesture coordinates,
+crosshair position, preview transforms, paint interpolation, and a
+worklet-safe nearest-point index. Arbitrary accessors, D3 modules, tooltip
+formatters, and custom marks should not be serialized into the UI runtime.
+[Reanimated worklets](https://docs.swmansion.com/react-native-reanimated/docs/guides/worklets/)
+are a separate JavaScript context with serialization constraints.
+
+### Two scene contracts
+
+Do not freeze the current `ChartScene` as a cross-language wire format.
+
+1. **In-process scene:** retains live data references, scale mapping functions,
+ extension objects, and efficient indexes. React Native and NativeScript can
+ consume this directly.
+2. **Portable scene DTO:** versioned JSON-compatible geometry, resolved paints,
+ scale metadata, datum IDs, semantic descriptions, and interaction policies.
+ Compose, SwiftUI, and Flutter can consume this, but live callbacks stay in
+ their host language.
+
+The proposed [`PORTABLE-CHART-SPEC.md`](./PORTABLE-CHART-SPEC.md) registry
+model is the right definition-level companion. `$call` and `$data` can describe
+a supported portable subset. It should never claim to serialize arbitrary
+JavaScript accessors, custom tooltip components, or renderer plugins.
+
+### Core refactor
+
+1. Keep the completed universal/DOM declaration split. Further separate shared
+ renderer, focus, semantic, and transition contracts from browser host
+ implementations.
+2. Keep the existing focus strategies, grouping, and spatial contracts. Move
+ focus restoration/order, pinned state, host input orchestration, default
+ tooltip content, and render-reason policy out of `renderer.ts` into a
+ renderer-neutral controller.
+3. Introduce keyed scene diffing, interpolation instructions, and interruption
+ state as a transition planner. Current SVG motion is DOM attribute
+ reconciliation; current Canvas motion is a whole-frame crossfade.
+4. Extract the Canvas 2D painter behind a structural drawing-context
+ interface. Keep HTML canvas creation, pixel ratio, media queries, and export
+ in the web host.
+5. Resolve theme colors before painting. Keep CSS variables and
+ `currentColor` as web-adapter inputs, not scene paints.
+6. Expand typography to include family, size, weight, style, stretch, letter
+ spacing, direction, locale, and font-scale policy. Measurement cache keys
+ must include all of them.
+7. Preserve the resolved F-106 ownership rule: dynamic builders receive the
+ default theme; application and platform overrides enter through typed
+ inputs or the returned definition and merge during scene creation. Do not
+ pass a builder the theme that it is itself responsible for returning.
+8. Keep deterministic, resource-aware SVG serialization in the shared
+ JavaScript package.
+9. Define capability fallbacks for unsupported paint, path, filter, snapshot,
+ and semantic features.
+10. Give gradients and other resources structured scene references; serialize
+ `url(#id)` only in the SVG renderer.
+11. Treat typography and structured paints as public API migrations. Add
+ backward-compatible unions and normalization first, or version the change;
+ update migration docs and conformance before removing string paints or
+ existing text-measure options.
+
+This can remain additive for web consumers: add new internal contracts and
+make the DOM host implement them. The browser-oriented root remains compatible;
+cross-runtime consumers opt into `@tanstack/charts/universal` and
+`@tanstack/charts/types`.
+
+## React Native
+
+As of this research, React Native 0.86 is current stable. React Native 0.82
+made the New Architecture mandatory. Set the initial support floor to React
+Native 0.86 and test Expo SDK 57 plus bare React Native 0.86. Supporting older
+minors later requires adding those CI lanes; a nominal floor without tests is
+not support. Version-one product scope is iOS and Android. Renderer
+dependencies may also run on macOS, Windows, web, or TV, but those platforms
+need their own input, accessibility, packaging, and conformance gates.
+[React Native versions](https://reactnative.dev/versions.html) ·
+[React Native 0.82](https://reactnative.dev/blog/2025/10/08/react-native-0.82) ·
+[Expo SDK 57](https://docs.expo.dev/versions/v57.0.0/)
+
+The two supported dependency lanes differ:
+
+| Dependency | Expo SDK 57 / RN 0.86 | Bare RN 0.86 |
+| ------------------ | -------------------------------------------- | ----------------------------------------------------- |
+| `react-native-svg` | Expo-pinned 15.15.4 | current compatible 15.15.x |
+| Skia | Expo-pinned 2.6.2 | current compatible 2.x |
+| Reanimated | Expo-pinned 4.5.1 | matching RN 0.86-compatible line |
+| Worklets | managed with the Expo/Reanimated combination | matching line from the Reanimated compatibility table |
+| Gesture Handler | Expo-pinned ~2.32.0 | current RN 0.86-compatible line |
+
+Reanimated 4 is New-Architecture-only. Expo configures its supported plugin
+combination; bare apps must install the matching Worklets package and plugin.
+Gesture Handler also requires `GestureHandlerRootView`.
+[Expo Reanimated](https://docs.expo.dev/versions/v57.0.0/sdk/reanimated/) ·
+[Expo Gesture Handler](https://docs.expo.dev/versions/v57.0.0/sdk/gesture-handler/) ·
+[Expo SVG](https://docs.expo.dev/versions/v57.0.0/sdk/svg/) ·
+[Expo Skia](https://docs.expo.dev/versions/v57.0.0/sdk/skia/) ·
+[Reanimated compatibility](https://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility/)
+
+D3 is not expected to be the blocker. The imported `d3-array`, `d3-scale`,
+`d3-shape`, and `d3-geo` code paths should be audited and executed under
+Hermes rather than relying on a blanket package-family claim. `d3-shape`
+explicitly supports path-string or Canvas-context output.
+[d3-shape](https://d3js.org/d3-shape)
+
+### Default renderer: `react-native-svg`
+
+The scene maps directly:
+
+| Scene primitive | React Native SVG |
+| ---------------------- | -------------------------------- |
+| group, translate, clip | `G`, `ClipPath`, `Rect` |
+| rule | `Line` or `Path` |
+| polyline and area | `Path` |
+| dot | `Circle` |
+| rectangle | `Rect` |
+| label | `Text` |
+| linear gradient | `Defs`, `LinearGradient`, `Stop` |
+
+`react-native-svg` supports Fabric and the relevant primitives on iOS,
+Android, macOS, Windows, and web. Its 15.13+ compatibility line requires React
+Native 0.78+, below the proposed floor. This is dependency support, not a
+promise that the chart package supports every one of those platforms.
+[react-native-svg repository](https://github.com/software-mansion/react-native-svg) ·
+[usage reference](https://github.com/software-mansion/react-native-svg/blob/main/USAGE.md)
+
+Why it should ship first:
+
+- The current scene is already SVG-shaped.
+- D3-generated polar and geographic path strings transfer directly.
+- A retained node tree makes initial keyed updates and visual inspection
+ straightforward.
+- It avoids a required Skia binary for ordinary charts.
+- It keeps the public renderer replaceable.
+
+Known limits:
+
+- The package Codegen configuration creates native component types for SVG
+ primitives. A large tree may make React construction and Fabric commits
+ expensive, but that is a benchmark hypothesis rather than a pre-measured
+ limit.
+- Native text metrics and baseline behavior differ from DOM SVG.
+- The documented filter set is incomplete, and Android cannot apply a radial
+ gradient focal point.
+- `getBBox`, `isPointInFill`, and related synchronous shape methods are marked
+ experimental; core layout and hit testing must not depend on them.
+ [Shape implementation](https://github.com/software-mansion/react-native-svg/blob/main/src/elements/Shape.tsx)
+- RNSVG can parse stylesheet classes through `SvgCss`, but the typed production
+ renderer should resolve styles to props instead of depending on reparsed CSS.
+- `strokeDasharray` and uncommon line joins need normalization and
+ compatibility tests.
+
+Parsing the existing SVG string through `SvgXml` is useful as a one-day visual
+probe, not a production architecture. `SvgXml` and `SvgCss` reparse markup,
+lose scene identities and transition keys, and cannot preserve the current DOM
+interaction and accessibility model.
+[RNSVG package Codegen configuration](https://github.com/software-mansion/react-native-svg/blob/main/package.json) ·
+[RNSVG filter support](https://github.com/software-mansion/react-native-svg/blob/main/USAGE.md#filters) ·
+[RNSVG CSS support](https://github.com/software-mansion/react-native-svg/blob/main/USAGE.md#css-support)
+
+### Optional renderer: React Native Skia
+
+Skia should consume the same scene and host controller. It is the likely
+choice for dense scatterplots, heatmaps, streaming data, gesture-heavy charts,
+and animation, but the renderer crossover must be measured.
+
+React Native Skia 2.x currently requires React Native 0.79+, React 19+, iOS
+14+, and Android API 21+. Its documented binary contribution is roughly 6 MB
+on iOS and 4 MB on Android, so it should remain an isolated optional entry.
+[Skia installation](https://shopify.github.io/react-native-skia/docs/getting-started/installation/)
+
+Skia provides paths, clipping, gradients, synchronous font metrics, snapshots,
+and direct Reanimated shared-value integration.
+[Canvas](https://shopify.github.io/react-native-skia/docs/canvas/overview/) ·
+[text](https://shopify.github.io/react-native-skia/docs/text/text/) ·
+[gradients](https://shopify.github.io/react-native-skia/docs/shaders/gradients/) ·
+[animation](https://shopify.github.io/react-native-skia/docs/animations/animations/)
+
+Do not replace the current web renderer with Skia. Its web target loads
+CanvasKit, adds roughly 2.9 MB compressed, and has different WebGL and API
+constraints.
+[Skia web support](https://shopify.github.io/react-native-skia/docs/getting-started/web/)
+
+Do not begin with a custom Fabric surface. If profiling proves that SVG and
+Skia both fail a required workload, a single Codegen-backed native chart
+surface could accept a compact scene buffer. That decision would add iOS,
+Android, Codegen, serialization, and React Native version maintenance.
+[React Native Codegen](https://reactnative.dev/docs/the-new-architecture/what-is-codegen)
+
+### Layout and text
+
+Text is the largest visual-parity risk.
+
+The current synchronous `ChartTextMeasurer` is a useful compiler seam, but a
+React Native `Text` measurement may arrive after layout. The native host should
+use this protocol:
+
+1. Resolve the complete font descriptor and issue keyed measurement requests.
+2. Return cached metrics synchronously when present.
+3. Use deterministic estimates for cache misses.
+4. Batch native measurement of misses.
+5. Rebuild the scene once when real measurements materially change guide
+ bounds.
+
+For the SVG renderer, test an offscreen native `Text` measurement surface and
+`onTextLayout`; do not depend on experimental SVG bounding-box calls. For
+Skia, `Font` can synchronously measure a resolved font, while complex scripts,
+fallback, wrapping, and bidirectional text require Paragraph shaping. An
+offscreen React Native `Text` result may not match RNSVG `Text`; measured and
+painted output must agree closely enough to keep guide layout stable.
+[Skia font interface](https://github.com/Shopify/react-native-skia/blob/main/packages/skia/src/skia/types/Font/Font.ts) ·
+[Skia Paragraph](https://shopify.github.io/react-native-skia/docs/text/paragraph/)
+
+The test matrix must include:
+
+- system and bundled fonts;
+- unavailable weight fallback;
+- emoji and mixed scripts;
+- RTL;
+- locale-specific shaping and number formatting;
+- timezone, daylight-saving transitions, and non-Gregorian calendar settings;
+- letter spacing and rotated labels;
+- dynamic font scale;
+- font loading after first render.
+
+The public API needs an explicit choice for chart text scaling. Blindly
+applying unbounded system font scale can make a chart unreadable, while
+ignoring it harms accessibility. The likely contract is a host-level
+font-scaling policy plus an accessible nonvisual data representation.
+
+### Sizing and paint
+
+- The React Native root `View` supplies logical width and height through
+ `onLayout`.
+- Scene coordinates should use density-independent logical units. Each
+ renderer handles physical pixel density at paint or snapshot time.
+- Orientation and container changes schedule a new scene build; they do not
+ require a `ResizeObserver`.
+- `PlatformColor` and `DynamicColorIOS` are opaque platform values, not
+ portable strings. Each renderer resolves them, subscribes to appearance and
+ accessibility changes, and uses `processColor` where native or animated
+ props require it. Deterministic SVG export requires an explicit color
+ scheme.
+- High-contrast capabilities differ across iOS and Android; the adapter maps
+ the available accessibility state to semantic theme input rather than
+ promising one cross-platform flag.
+- `currentColor`, CSS variables, inherited `font-family`, and CSS class styles
+ remain web-only resolution mechanisms.
+
+[React Native Appearance](https://reactnative.dev/docs/appearance) ·
+[React Native AccessibilityInfo](https://reactnative.dev/docs/accessibilityinfo)
+
+### Gestures, focus, and application interactions
+
+Use one chart-level gesture detector, not one responder per mark:
+
+1. Convert touch, pointer, or hover coordinates to logical scene coordinates.
+2. Query the shared focus strategy and spatial index.
+3. Update the visual focus overlay at frame cadence.
+4. Commit semantic focus and pinned state at a coalesced cadence or gesture
+ end, and emit application activation or domain-change events through typed
+ integration points.
+
+Simple tap and activation can use React Native responders. Scrubbing, pinch,
+pan, long press, and composed gestures should use Gesture Handler where
+available. For app-owned brush, zoom, scrubber, and editor behavior, the
+package supplies coordinates, focus primitives, integration contracts, and
+examples; it does not take ownership of application domain or range state.
+Gesture Handler recognizes gestures using native platform facilities and
+integrates with Reanimated.
+[Gesture Handler](https://docs.swmansion.com/react-native-gesture-handler/)
+
+Input parity is capability-based:
+
+| Web input | Native behavior |
+| -------------------- | -------------------------------------------------------------------- |
+| hover / pointer move | touch scrub, stylus/trackpad hover where available |
+| click | tap |
+| pinned click tooltip | tap or long press, with explicit dismiss |
+| wheel zoom | pinch; trackpad/wheel where the platform reports it |
+| drag brush | pan gesture with visible handles and minimum touch targets |
+| arrow-key focus | adjustable screen-reader actions; hardware keys on supported targets |
+| Escape | dismiss action, back action, or hardware key |
+
+The 16 interaction conformance cases should call semantic drivers such as
+`focusAt`, `activate`, `pan`, `zoom`, `setBrush`, and `adjustDatum`. Each
+platform harness translates those operations to real input separately. Cases
+whose controller is application-owned must extract and port that controller;
+they are integration conformance, not new core behavior.
+
+Launch gates include:
+
+- arbitration with nested `ScrollView`, navigation, and parent gestures;
+- axis locking, cancellation, and responder loss;
+- coordinate conversion under view and chart transforms;
+- Android back behavior for pinned state;
+- the copy and memory cost of moving any spatial index into a worklet;
+- minimum touch targets and handles near safe areas.
+
+### Accessibility
+
+Painted geometry and accessibility must be separate outputs of the controller.
+Skia explicitly requires overlaid React Native views to make inner canvas
+elements accessible, and an SVG node per datum is not a scalable semantic
+tree.
+[Skia canvas accessibility](https://shopify.github.io/react-native-skia/docs/canvas/overview/) ·
+[React Native accessibility](https://reactnative.dev/docs/accessibility)
+
+Recommended native model:
+
+- A non-accessible layout container with sibling semantic elements. React
+ Native warns that VoiceOver can suppress nested accessible elements.
+- One accessible summary element with label, description, and concise chart
+ summary.
+- One sibling adjustable active-datum controller with increment, decrement,
+ and activate actions.
+- `accessibilityValue.text` containing series, category or time, value, and
+ relevant interval.
+- Platform-appropriate announcement or live status when the active value
+ changes; live-region behavior differs between iOS and Android.
+- A visible focus marker and tooltip rendered through ordinary React Native
+ views.
+- Semantics and data hooks that let the application supply a virtualized list
+ or table for complete inspection. Shipping that table is a new feature, not
+ current package parity.
+- Reduced-motion behavior driven by `AccessibilityInfo`.
+- Visual renderer descendants hidden with the platform-appropriate
+ `importantForAccessibility`, `accessibilityElementsHidden`, or equivalent
+ props to prevent duplicate or unusably large traversal.
+
+VoiceOver and TalkBack testing on physical devices is an exit criterion.
+Thousands of transparent focusable views are not an acceptable implementation.
+
+The shared semantic model can supply series and datum descriptions for
+Apple’s `AXChartDescriptor` and audio graphs. React Native core, RNSVG, and
+Skia do not expose that API; using it would require a custom iOS native
+accessibility component and is not part of the first renderer.
+[Apple chart accessibility](https://developer.apple.com/documentation/swiftui/view/accessibilitychartdescriptor%28_%3A%29)
+
+### Motion
+
+The shared transition planner should produce stable-key enter, update, and
+exit operations from the currently painted state, not only previous and next
+scenes. Renderers then execute:
+
+- numeric geometry and opacity interpolation;
+- color interpolation;
+- path interpolation when topology is compatible;
+- a documented resampling or crossfade fallback when it is not;
+- cancellation and restart from the current visual value;
+- zero-duration output under reduced motion.
+
+Skia’s path interpolation requires compatible path commands, so arbitrary
+path morphing cannot be delegated without normalization.
+[Skia path interpolation](https://shopify.github.io/react-native-skia/docs/animations/hooks/)
+
+Per-frame React/RNSVG prop commits are safe only as a small-scene proof, not
+the assumed production default. The motion spike must compare animated props
+and UI-thread execution early, including path normalization, color processing,
+and interruption from the value actually painted on the UI thread.
+[Reanimated `useAnimatedProps`](https://docs.swmansion.com/react-native-reanimated/docs/core/useAnimatedProps/)
+
+Transition state must live outside React render side effects. It must discard
+stale concurrent scene builds, rebase after font/theme/size invalidation, and
+pause or rebase when `AppState` moves between background and foreground.
+
+### Export and web
+
+- Keep resource-aware SVG string export in the shared JavaScript core. It does
+ not require a mounted native surface.
+- Define whether a PNG captures only chart paint or also React Native tooltip,
+ legend, and focus overlays. Add explicit scale, background, color-scheme,
+ and font-readiness options.
+- Skia’s asynchronous snapshot runs on the UI thread and is required when
+ textures are present. Generic view capture has separate native-surface and
+ view-collapsing constraints; both paths need device proof.
+- Add file and share helpers only in platform integration packages.
+- Keep browser consumers on the existing root and DOM/SVG React adapter. React
+ Native Web can render native components, but the current web implementation
+ already has better SSR, hydration, CSS, text measurement, and semantic SVG
+ behavior.
+- Keep native callbacks typed to native surface and layout data; do not expose
+ fake `HTMLElement` or `SVGSVGElement` values.
+
+[Skia canvas snapshots](https://shopify.github.io/react-native-skia/docs/canvas/overview/) ·
+[Skia view snapshots](https://shopify.github.io/react-native-skia/docs/snapshotviews/)
+
+A WebView can demonstrate visual reuse, but it is not native support. Expo DOM
+components use a separate JavaScript engine, JSON-serialized asynchronous
+props, whole-tree rerenders, and no SSR/SSG or native children.
+[Expo DOM components](https://docs.expo.dev/guides/dom-components/)
+
+### Package shape
+
+```text
+@tanstack/charts
+ browser-compatible root
+ ./universal
+ DOM-free definitions, marks, D3 integration, scene, focus, semantics
+ ./types
+ DOM-free public contracts
+
+@tanstack/react-charts
+ existing web React adapter
+
+@tanstack/react-native-charts
+ native React adapter and react-native-svg renderer
+ ./skia
+ optional Skia renderer subpath
+```
+
+The base native entry should peer-depend on React, React Native, and
+`react-native-svg`. Skia, Reanimated, Worklets, and Gesture Handler should be
+optional peers, declared through `peerDependenciesMeta.optional`, so a static
+SVG chart does not acquire or autolink unrelated native modules. Do not use
+`optionalDependencies`. The base implementation and declaration graph must
+have no static reference to optional peers.
+
+The native-only preview needs explicit `types`, `react-native`, and `import`
+conditions. A future entry that serves different browser and native
+implementations would also need an explicit `browser` condition before
+`react-native`. Once an export matches, Metro does not append `.native` or
+`.web` to that target. Test resolution through Metro/Expo, Node, and
+TypeScript. An export target cannot point into another package, so any future
+browser re-export needs a local shim and declared dependency or peer.
+[Metro package exports](https://metrobundler.dev/docs/package-exports/)
+
+## NativeScript
+
+NativeScript is the second-best reuse target because its runtime can execute
+the JavaScript built from the TypeScript core and expose native platform APIs
+directly. NativeScript Core supports custom native views, gestures, animation,
+and accessibility. Its Canvas project provides native-backed Canvas 2D, WebGL,
+and WebGPU packages. Ordinary JavaScript runs on the UI thread; Workers are
+isolated and communicate through JSON-serializable messages. Large scene
+compilation plus Canvas painting is therefore a first-order benchmark, not
+assumed reuse.
+[NativeScript documentation](https://docs.nativescript.org/) ·
+[native APIs](https://docs.nativescript.org/guide/adding-native-code) ·
+[custom native views](https://docs.nativescript.org/guide/create-custom-native-elements) ·
+[gestures](https://docs.nativescript.org/guide/gestures) ·
+[accessibility](https://docs.nativescript.org/guide/accessibility) ·
+[multithreading](https://docs.nativescript.org/guide/multithreading) ·
+[NativeScript Canvas](https://github.com/NativeScript/canvas)
+
+Recommended implementation:
+
+1. Extract the current Canvas painter from HTML canvas creation and DOM host
+ behavior.
+2. Implement a NativeScript Core chart view that supplies size, pixel ratio,
+ a Canvas context, frame scheduling, and gestures.
+3. Prove that the same definition and in-process scene compiler run unchanged
+ through NativeScript’s bundler and runtime.
+4. Add Angular, Vue, Solid, Svelte, or React wrappers only after the Core view
+ is stable.
+
+React NativeScript is a React renderer over NativeScript views, not React
+Native compatibility. React Native components and ecosystem packages do not
+transfer. It should be a thin wrapper around a NativeScript Core chart view
+rather than the foundation.
+[NativeScript React tutorial](https://docs.nativescript.org/tutorials/build-a-master-detail-app-with-react) ·
+[React NativeScript repository](https://github.com/shirakaba/react-nativescript)
+
+NativeScript proof requirements:
+
+- correct text metrics, baselines, font fallback, and pixel ratio;
+- `Path2D`, clipping, gradients, dash arrays, joins, and transforms;
+- image snapshot/export;
+- touch coordinate conversion and gesture composition;
+- an accessible root and active-datum control implemented either with a small
+ number of real NativeScript views or custom iOS/Android accessibility
+ containers; NativeScript documents accessibility for `View` objects but no
+ Canvas virtual-child semantic tree;
+- long-running animation and streaming stability;
+- scene build and paint time at 1k, 10k, and 50k primitives;
+- memory and UI-thread responsiveness on low-end Android.
+
+If its Canvas implementation cannot meet these gates without platform-specific
+patches, stop rather than maintain a browser API imitation with divergent
+behavior.
+
+## Other native UI stacks
+
+| Target | Source reuse | Technical fit | Recommendation |
+| ----------------------------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| Compose Multiplatform | No executable TypeScript reuse; definitions, scene DTOs, fixtures, and semantics can transfer. | Shared Kotlin API; Android uses Jetpack Compose and iOS Compose is canvas-rendered through Skiko. Custom Canvas semantics must be authored. | Best candidate for a shared Kotlin/Compose product after the portable contract is proven. |
+| Flutter | No TypeScript reuse on native; requires a Dart port of the compiler/runtime or a Dart scene consumer. | `CustomPainter` maps cleanly to the scene and supports hit testing and virtual semantics; Flutter paints through its own engine/Impeller. | Build only as a first-class Flutter product with dedicated ownership and add-to-app cost. |
+| SwiftUI `Canvas` | Schema and fixtures only. | Uses `GraphicsContext`; Apple excludes per-element interaction and accessibility, so synthetic children/representations are required. | Apple-only product or accessibility reference, not the cross-platform starting point. |
+| UIKit / Core Graphics | Schema and fixtures only. | Separate lower-level custom-view path with maximum Apple control and no Android implementation. | Use only if SwiftUI Canvas cannot meet required fidelity or integration. |
+| Swift Charts | Semantic mapping, not scene parity. | Supplies native marks, axes, legends, and chart accessibility, but owns layout and styling. | Optional native-style backend, not feature-for-feature TanStack rendering. |
+| Lynx / ReactLynx | Pure TypeScript compiler may transfer after DOM removal. React Native components do not. | Lynx 4 exposes static-oriented SVG as one native view and no public Canvas element; per-mark input and semantics need overlays or custom native elements. | Watchlist until its graphics layer can support interactive dynamic scenes. |
+| Separate UIKit and Android View renderers | Schema and fixtures only unless a JavaScript runtime is embedded. | Maximum control and maximum duplicated implementation. | Avoid unless profiling and commercial demand justify two permanent native engines. |
+
+Primary references:
+
+- [Compose Multiplatform](https://kotlinlang.org/docs/multiplatform/compose-multiplatform-and-jetpack-compose.html),
+ [iOS renderer explanation](https://blog.jetbrains.com/kotlin/2023/05/compose-multiplatform-for-ios-is-in-alpha/),
+ [iOS stable announcement](https://blog.jetbrains.com/kotlin/2025/05/compose-multiplatform-1-8-0-released-compose-multiplatform-for-ios-is-stable-and-production-ready/),
+ [Compose custom graphics](https://developer.android.com/develop/ui/compose/graphics/draw/overview),
+ [Compose semantics](https://developer.android.com/develop/ui/compose/accessibility/semantics),
+ and [Compose iOS accessibility](https://kotlinlang.org/docs/multiplatform/compose-ios-accessibility.html)
+- [Flutter `CustomPainter`](https://api.flutter.dev/flutter/rendering/CustomPainter-class.html),
+ [Flutter architecture](https://docs.flutter.dev/resources/architectural-overview),
+ [add-to-app](https://docs.flutter.dev/add-to-app), and
+ [Flutter semantics](https://api.flutter.dev/flutter/widgets/Semantics-class.html)
+- [SwiftUI `Canvas`](https://developer.apple.com/documentation/swiftui/canvas),
+ [accessibility representations](https://developer.apple.com/documentation/swiftui/view/accessibilityrepresentation%28representation%3A%29),
+ [AXChart](https://developer.apple.com/documentation/accessibility/axchart),
+ and [Swift Charts](https://developer.apple.com/documentation/charts)
+- [Lynx 4 elements](https://lynxjs.org/4.0/api/),
+ [SVG element](https://lynxjs.org/4.0/api/elements/built-in/svg.html), and
+ [custom native components](https://lynxjs.org/4.0/guide/custom-native-component)
+
+For non-JavaScript targets, “same API” can mean equivalent chart concepts and
+conformance, not source compatibility. Accessors, formatters, custom scales,
+tooltip bodies, callbacks, and plugins must be declared as one of:
+
+- portable declarative input;
+- a named registry function;
+- a host-language callback;
+- JavaScript-only.
+
+Sending a complete scene across a JavaScript-to-native or host-language
+boundary on every frame is not a durable dynamic-chart design. A portable
+scene DTO is appropriate for static charts, fixtures, export, and an initial
+renderer proof. A production native-language library eventually needs local
+layout, interaction, and animation logic.
+
+## Feature parity matrix
+
+| Capability | Shared work | React Native | NativeScript | Non-JS native |
+| --------------------------------------------- | --------------------------------------------- | ------------------------------- | ------------------------------------------------- | -------------------------------------------- |
+| Definitions, accessors, transforms, D3 scales | Existing compiler through universal entries | Direct reuse after Hermes proof | Expected reuse after runtime proof | Declarative subset or reimplementation |
+| Cartesian marks and guides | Existing scene | Render primitives | Canvas painter | Render DTO or reimplement |
+| Facets and layered charts | Existing layout and groups | Direct reuse | Expected after runtime proof | Scene-compatible |
+| Polar, pie, radar, gauge | Existing path-producing marks | SVG/Skia paths | Canvas paths | Scene-compatible |
+| Geography and projections | Existing D3-generated paths | SVG/Skia paths | Canvas paths | Scene-compatible |
+| Gradients and clipping | Existing scene data plus capability rules | New mapping, platform tests | New mapping, platform tests | New mapping |
+| Text, axes, legend margins | Shared request/cache protocol | New native measurement | New native measurement | New native measurement |
+| Theme and color | Shared semantic theme | New RN resolution | New NativeScript resolution | New platform resolution |
+| Focus and grouped tooltip logic | Extract from web renderer | Reuse controller; new overlay | Reuse controller; new overlay | Port controller |
+| Activation / `onSelect` | Shared callback contract | Tap and accessibility actions | Tap and accessibility actions | Platform input |
+| Brush, zoom, scrubber, editor | Application-owned state plus semantic drivers | Native integration examples | Native integration examples | Platform implementations |
+| Keyed animation | New shared transition planner | SVG and Skia execution | Canvas execution | Port planner |
+| Focus indicator | New shared overlay contract | RN overlay or renderer layer | Canvas/native overlay | Platform overlay |
+| Accessibility | New shared semantic model | RN sibling semantic controls | Feasibility gate: real views or native containers | Native semantics |
+| Custom marks using scene primitives | Existing extension model | Reuse | Reuse | Equivalent host-language API |
+| Renderer-specific custom output | None | Native renderer callback | Canvas/native callback | Platform-specific |
+| Pure SVG export | Resource-aware JavaScript serializer | Reuse | Reuse if runtime proof passes | Native serializer or externally supplied SVG |
+| Mounted PNG export | Platform capability | Snapshot/view capture | Canvas or platform capture, pending proof | Platform snapshot |
+| SSR and hydration | Existing browser root and React host | Not applicable on device | Web target only | Not applicable on device |
+
+## Validation program
+
+### Stage 1: portability proof
+
+Run the compiler under Hermes and NativeScript without DOM globals.
+
+Pass conditions:
+
+- Representative definitions import through Metro and NativeScript bundling.
+- With locale, calendar, and timezone fixed, web, Hermes, and NativeScript
+ produce exact normalized domains, keys, topology, and explicitly formatted
+ labels. Compare numeric coordinates and normalized path data with a defined
+ epsilon.
+- DOM types are absent from the Charts declaration graph; strict dependency
+ checking reaches only the known upstream `ImageData` declaration.
+- Theme and text services are injected.
+- No browser polyfill is required.
+- Conditional exports and optional-peer isolation resolve through Expo/Metro,
+ bare Metro, TypeScript, Jest, and a browser bundler.
+
+### Stage 2: renderer sentinels
+
+Render a deliberately small set before porting all 100 cases:
+
+1. multi-line chart with gaps, rotated ticks, and a legend;
+2. stacked area with stable-key update;
+3. grouped and stacked bars;
+4. 10k-point scatter;
+5. labeled heatmap with clipping and gradients;
+6. faceted chart;
+7. pie/donut plus radar or gauge;
+8. geographic projection;
+9. grouped tooltip with touch scrub and pinning;
+10. zoom/pan or brush interaction;
+11. streaming update with interruption;
+12. custom scene mark.
+
+Pass conditions:
+
+- iOS and Android screenshots meet geometry and visual tolerances.
+- Every sentinel has a usable VoiceOver and TalkBack path.
+- Visible focus-indicator geometry, style, and visibility match the semantic
+ focus state.
+- Custom fonts, RTL, dark mode, high contrast, reduced motion, and orientation
+ changes work.
+- SVG and Skia consume the same scene and interaction controller.
+
+### Stage 3: performance crossover
+
+Use release or `debugOptimized` builds on a low-end Android device and a
+representative iPhone. Standard Android debug builds are not valid evidence.
+
+Test 100, 1k, 10k, and 50k painted primitives, with an optional 100k stress
+case. Record:
+
+- scene preparation and layout time;
+- first paint;
+- single-datum update;
+- full data replacement;
+- streaming update cadence;
+- orientation and resize;
+- touch scrub, pan, and zoom latency;
+- nested-scroll arbitration, cancellation, and transformed hit coordinates;
+- JS and UI frame time;
+- memory;
+- Fabric node count;
+- native binary and application bundle delta;
+- snapshot time and size.
+
+The measured SVG/Skia crossover becomes documentation. Do not choose a point
+count from intuition.
+
+### Stage 4: conformance
+
+- Run all 100 visual cases on iOS and Android for the default renderer.
+- Run the performance and renderer-sensitive subset on Skia and NativeScript.
+- Extract platform-neutral definition/data factories from all 100 cases.
+- Translate all 16 interaction cases to semantic platform drivers, with
+ application controllers remaining application-owned integration fixtures.
+- Compare normalized domains, keys, and topology exactly; compare numeric
+ geometry and normalized paths with the agreed tolerance before screenshot
+ tolerances.
+- Keep the DOM-free TypeScript compile and Metro import smoke alongside the
+ current jsdom-oriented unit suite; add Hermes execution coverage.
+- Test current web SSR, hydration, SVG, Canvas, and export to catch refactor
+ regressions.
+- Test stale-scene cancellation, concurrent updates, mid-flight interruption,
+ font/theme/size invalidation, and app background/foreground rebasing.
+- Use React Native Testing Library for adapter state and semantics, but require
+ device tests for native drawing, gestures, and accessibility. Its own
+ guidance notes that native behavior needs simulator or device validation.
+ [React Native Testing Library boundary](https://callstack.github.io/react-native-testing-library/12.x/docs/guides/faq)
+
+### Stop conditions
+
+Do not claim supported native parity if any of these remain unresolved after
+the proof:
+
+- text measurement causes repeated layout oscillation or materially wrong
+ guides, or the measuring and painting stacks disagree on shaped text;
+- the default renderer misses interaction frame budgets on ordinary charts;
+- the semantic model cannot provide useful VoiceOver and TalkBack navigation;
+- Metro requires DOM declarations or browser polyfills;
+- SVG and Skia require divergent public chart definitions;
+- native output depends on reparsing SVG strings;
+- NativeScript requires project-local patches to its graphics runtime.
+
+## Estimated effort
+
+An engineer-week means one experienced library engineer working full time.
+Ranges include implementation, tests, examples, and documentation, but not
+unrelated chart features or store release work.
+
+| Deliverable | Estimate | Confidence |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -----------------------------------------: | ----------------------- |
+| Shared controller extraction, transition design, platform theme/typography contracts, and device harness | 2–4 engineer-weeks | Medium |
+| React Native SVG proof productionization: gestures, complete tooltips, packaging, and release gates | 3–5 engineer-weeks | Medium |
+| React Native full applicable parity: text, themes, keyed motion, gestures, tooltips, accessibility, export, API migration, 100-case hardening, Expo/bare CI | 5–8 engineer-weeks | Low–medium |
+| Production React Native SVG package total | 10–16 engineer-weeks | Low–medium |
+| Optional Skia execution/optimization of the shared motion contract, snapshots, and crossover benchmarks | +4–7 engineer-weeks | Low–medium |
+| NativeScript Core Canvas package after shared refactor | +6–10 engineer-weeks | Low |
+| Portable scene DTO plus one Compose or Flutter rendering proof | +3–6 engineer-weeks | Low |
+| Production Compose, Flutter, or Swift implementation | Separate multi-month product per ecosystem | Low until the DTO proof |
+
+Directional implementation size is 5–8k production lines plus 3–6k lines of
+tests and fixtures for first-class React Native parity. A NativeScript
+framework/view wrapper could remain near 1k lines only after a portable painter
+and backend exist. The renderer/backend itself is likely another 2–4k lines;
+device testing, accessibility feasibility, performance work, and hardening
+explain the 6–10 week estimate.
+
+Two experienced engineers could overlap core/controller work, React Native
+rendering, and device harness work. A realistic calendar range for a
+production React Native package with both SVG and Skia is roughly 8–12 weeks,
+assuming the text and accessibility proofs pass early. NativeScript should not
+be scheduled as a committed package until its Canvas proof passes.
+
+Ongoing maintenance is material:
+
+- React Native, Expo, Metro, `react-native-svg`, Skia, Reanimated, and Gesture
+ Handler compatibility;
+- physical-device screenshot, performance, VoiceOver, and TalkBack coverage;
+- renderer-specific bug triage;
+- font and graphics differences across iOS and Android;
+- conformance updates whenever the scene grammar grows.
+
+## Recommended first commitment
+
+Fund a two-week, two-engineer device and shared-behavior proof before treating
+the experimental package as supported.
+
+Engineer A:
+
+- extract the shared interaction and tooltip controller;
+- define platform theme and typography ownership;
+- replace the responder proof with scroll-safe gesture arbitration;
+- exercise representative definitions under Hermes and on devices.
+
+Engineer B:
+
+- build the iOS/Android visual, performance, and binary-size harness;
+- define semantic output and VoiceOver/TalkBack flows;
+- test the existing SVG host across density and gesture sentinels;
+- scope the later Canvas/NativeScript proof from measured bottlenecks.
+
+At the end of the proof, decide from evidence:
+
+1. whether `react-native-svg` is a viable default;
+2. whether Skia is required for the first release or can follow;
+3. whether the typography contract is stable enough for public API;
+4. whether NativeScript meets the bar without runtime patches;
+5. whether to stabilize a portable scene DTO for non-JavaScript targets.
+
+## Explicit non-goals
+
+- No DOM emulation layer on native.
+- No WebView marketed as native support.
+- No D3 or arbitrary user callbacks in UI-thread worklets.
+- No Skia dependency in the base package.
+- No point-count threshold before device benchmarks.
+- No thousands of invisible accessible views.
+- No pixel-perfect cross-engine promise.
+- No claim that a JSON subset preserves the complete live TypeScript API.
+- No custom Fabric, UIKit, or Android renderer before the shared renderers are
+ measured.
diff --git a/REACT-NATIVE-HOST-POC.md b/REACT-NATIVE-HOST-POC.md
new file mode 100644
index 00000000..1f1026dd
--- /dev/null
+++ b/REACT-NATIVE-HOST-POC.md
@@ -0,0 +1,426 @@
+# React Native host proof of concept
+
+Research and implementation date: 2026-07-30
+
+## Decision
+
+A React Native SVG host is viable. The chart grammar, D3 scales, marks,
+responsive scene compiler, gradients, clips, polar and geographic paths, point
+identity, and most focus algorithms can run unchanged. The current web
+`ChartRenderer` cannot be the native abstraction: its public contract requires
+DOM elements, string prerendering, client coordinates, and browser-owned
+surface lifecycle.
+
+The proof should advance only as a separate package and host:
+
+```text
+definition + D3 scales + marks
+ │
+ ▼
+ shared @tanstack/charts runtime
+ │
+ ▼
+ ChartScene
+ │
+ ▼
+ React Native interaction + react-native-svg
+```
+
+This can remain additive for current consumers. Do not generalize
+`ChartRenderer` or remove DOM types from the root API to make native fit.
+
+The POC establishes technical feasibility, package isolation, approximate
+JavaScript cost, and the main API boundaries. It does not establish device
+visual parity, application binary cost, Hermes runtime performance, or
+production support.
+
+## Implemented proof
+
+The publishable experimental `@tanstack/react-native-charts` package includes:
+
+- a generic React Native `Chart` component that owns `createChartRuntime`;
+- responsive sizing from explicit dimensions, aspect ratio, or `onLayout`;
+- a direct keyed `ChartScene` visitor using `react-native-svg`;
+- groups, rules, polylines, areas, dots, rectangles, labels, linear gradients,
+ nested translation, and rectangular clips;
+- current-color and CSS-variable-fallback paint resolution;
+- nearest, axis-nearest, and grouped focus;
+- tap selection, sticky pinning, focus restoration, and accessibility actions;
+- a separate SVG focus overlay;
+- inactive shared focus-layer groups are omitted from the base scene;
+- an optional native tooltip subpath with point, pointer, group-center, and
+ custom anchors, collision-aware placement, custom content, and a custom
+ React body;
+- an optional injected text measurer;
+- a bare Metro fixture using React Native 0.86.2 and `react-native-svg`
+ 15.15.5;
+- an Expo 57 Metro fixture using Expo's `react-native-svg` 15.15.4;
+- source-map checks that reject browser renderer code in iOS and Android
+ bundles.
+
+The host imports runtime values from narrow core subpaths. It does not import
+the root barrel, `react-dom`, a browser adapter, the DOM renderer, the Canvas
+host, or the SVG string/reconciliation pipeline. The full-chart Metro fixture
+imports its application definition from `@tanstack/charts/universal`; the core
+line control keeps granular imports for a tighter comparison.
+
+That distinction matters to shared application source. A Metro probe using
+`defineChart` and `lineY` from the browser-oriented root
+`@tanstack/charts` barrel traversed the DOM renderer, DOM text, reconciliation,
+SVG surface, and adapters. The prerequisite universal-barrel PR adds
+`@tanstack/charts/universal` for normal environment-neutral authoring while
+retaining granular entries for tighter bundles.
+
+Metro 0.84 retains every runtime module re-exported by `/universal`, including
+unused marks and the environment-neutral static SVG string serializer. It does
+not retain the guarded DOM or browser host modules. The broad entry is the
+simplest supported authoring path; bundle-sensitive native applications can
+use granular mark, runtime, and scene entries until Metro can eliminate those
+unused re-exports.
+
+That prerequisite also adds `@tanstack/charts/types`, exports the generic
+tooltip and portal token interfaces for host-adapter authors, and moves DOM
+host types to an internal `dom-types.ts` module while preserving their root
+re-exports. This POC adds no further core public API.
+
+Minimum usage keeps the browser-oriented root unchanged and selects the native
+host and tooltip explicitly:
+
+```tsx
+import { scaleLinear } from 'd3-scale'
+import { defineChart, lineY } from '@tanstack/charts/universal'
+import { Chart } from '@tanstack/react-native-charts'
+import { tooltip } from '@tanstack/react-native-charts/tooltip'
+
+const definition = defineChart({
+ marks: [lineY([4, 9, 7])],
+ x: { scale: scaleLinear().domain([0, 2]) },
+ y: { scale: scaleLinear().domain([0, 10]) },
+ tooltip: { use: tooltip, sticky: true },
+})
+
+export function RevenueChart() {
+ return (
+
+ )
+}
+```
+
+The tooltip token makes that configured definition native-specific. A shared
+application can keep the chart spec and tooltip options universal, then attach
+the web or native token in its platform entry.
+
+## Bundle measurements
+
+### Isolated esbuild entries
+
+Production, minified ESM; React, React Native, and `react-native-svg` are
+external in the native entries.
+
+| Entry | Minified | Gzip |
+| ---------------------------------- | -------: | -------: |
+| React Native SVG host | 26.95 kB | 10.22 kB |
+| React Native SVG host with tooltip | 32.71 kB | 12.17 kB |
+| React Native line consumer | 49.18 kB | 19.03 kB |
+| Shared line scene | 38.17 kB | 14.82 kB |
+| Existing React web adapter | 39.98 kB | 14.57 kB |
+| Existing React web line consumer | 62.03 kB | 23.41 kB |
+
+The native host entry includes the host plus every shared runtime and D3 module
+reachable from exporting `Chart`; it is not isolated adapter-only overhead.
+The base host and line consumer omit `Tooltip.tsx`. Importing the tooltip
+subpath adds 5.76 kB minified and 1.94 kB gzip. The native line consumer
+additionally includes the line mark and D3 scale code while leaving platform
+peers external. It is the closest comparison to the existing React line entry,
+but the two platforms do not have identical runtime baselines. The native
+entries are informational measurements, not locked budgets.
+
+### Metro application deltas
+
+React Native production bundles were minified for both platforms. Each row is
+measured against a blank React Native application built with the same Metro
+configuration. The full chart uses `/universal`; the core line control uses
+granular entries.
+
+| Platform | Full `/universal` chart minified JS delta | `react-native-svg` gzip delta | Core line gzip delta | Full `/universal` chart gzip delta | Full chart module delta |
+| -------- | ----------------------------------------: | ----------------------------: | -------------------: | ---------------------------------: | ----------------------: |
+| iOS | 434.49 KiB | 27.75 KiB | 38.94 KiB | 103.00 KiB | 384 |
+| Android | 434.64 KiB | 27.69 KiB | 38.94 KiB | 103.05 KiB | 384 |
+
+The full iOS bundle was 1,328,999 bytes and 319,853 bytes gzip, versus 884,080
+and 214,383 for blank. Android was 1,334,515 and 320,921, versus 889,448 and
+215,397 for blank. Compared with the otherwise identical granular fixture,
+`/universal` retains another 119.06 KiB minified and 28.91 KiB gzip on both iOS
+and Android, plus 102 modules per platform under this Metro version.
+
+These are JavaScript bundle measurements, not Hermes bytecode or installed
+application sizes. They exclude the native iOS and Android code linked by
+`react-native-svg`. A clean release-binary before/after comparison is still
+required.
+
+The full-chart source maps require `/universal` and include its static SVG
+serializer. They exclude every guarded browser module: adapters, DOM host, DOM
+text measurement, DOM renderer, Canvas, reconciliation, SVG resources/surface,
+`react-dom`, React web charts, and Octane charts.
+
+## Parity and boundaries
+
+| Capability | POC result | Production boundary |
+| -------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------ |
+| Definitions, D3 scales, marks, layout | Shared unchanged | High confidence |
+| Cartesian, facet, polar, geo geometry | Shared scene paths | Needs device conformance |
+| All seven scene node kinds | Implemented | Needs iOS/Android visual tests |
+| Linear gradients and rectangular clips | Implemented | Device and nested-clip tests remain |
+| Responsive sizing | `onLayout`, explicit size, aspect ratio | Scroll/layout integration remains |
+| Paint | `currentColor` and CSS fallback resolution | Dynamic definitions still see the web default theme |
+| Text | SVG text plus injected core measurer | Exact native typography and async measurement are unresolved |
+| Nearest and grouped focus | Implemented | Logic is duplicated from the DOM renderer |
+| Focus presentation | Generic native overlay | Authored focus marks and mark states are not applied |
+| Tap, selection, sticky tooltip | Implemented | Responder ownership may conflict with scrolling and gestures |
+| Tooltip | Native in-tree overlay | Web `className`, portal semantics, and full item formatting are not equivalent |
+| Accessibility | Labeled adjustable root and actions | No per-point native accessibility tree or data-table escape |
+| Motion | Not implemented | Requires a renderer-neutral transition model |
+| SVG/PNG export | Not implemented | Needs native snapshot/share APIs |
+| Large-data renderer | Not measured | SVG node pressure may require an optional Skia host |
+| SSR and hydration | Intentionally absent | Web-only behavior |
+
+### Rendering details that are not exact
+
+- SVG `arcs` and `miter-clip` joins are explicitly normalized to `round` and
+ `miter`, respectively, because the React Native SVG type surface does not
+ expose them.
+- The native paint resolver can consume CSS variable fallbacks, but it cannot
+ evaluate application CSS. A production host needs concrete native theme
+ values before scene compilation.
+- The current text-measure contract does not carry font family, font style,
+ letter spacing, direction, or locale. Passing `fontFamily` to the painter
+ cannot make guide layout measure the same font.
+- `react-native-svg` supports the required primitive family and Fabric, but
+ SVG compatibility must be verified on real iOS and Android renderers rather
+ than inferred from server-rendered component markup.
+
+### Interaction details that are not exact
+
+- Focus preset resolution, point restoration, navigation order, tooltip
+ content, anchor, and placement remain private across the DOM renderer and
+ tooltip implementation. The POC had to reproduce those policies. A supported
+ package must extract the pure behavior and make both hosts consume it.
+- Shared focus-layer groups are hidden from the base native scene so they are
+ not painted permanently. The proof uses its generic native overlay instead;
+ authored focus marks and inline mark states need a shared scene-state
+ resolver before they can be supported accurately.
+- The POC does not implement the complete `tooltip.items` channel, datum, and
+ derived-row contract. Custom `content`, `format`, `formatGroup`, and a custom
+ React body work, but default structured content is only partial.
+- The shared definition type accepts environment-neutral extension tokens, so
+ a web tooltip token typechecks in native application code and fails when the
+ native `Chart` resolves it. Compile-time host rejection would require a
+ refined native definition type before release.
+- The root `View` currently claims touch responder ownership on press.
+ `ScrollView`, pan, brush, zoom, and application gestures require an explicit
+ arbitration model, likely through Pressability or Gesture Handler rather
+ than more responder callbacks.
+- Native accessibility cannot reuse DOM focus and ARIA. The adjustable-root
+ behavior proves a useful minimum, not parity with keyboard traversal or a
+ complete accessible data representation.
+- The chart is one accessible root. Nested controls in a custom pinned tooltip
+ may be hidden by platform accessibility grouping, and
+ `accessibilityLiveRegion` is Android-specific. This needs VoiceOver and
+ TalkBack design rather than prop translation.
+- A local absolute tooltip cannot escape clipped native ancestors. Native
+ portal/modal behavior needs a separate definition from the browser top-layer
+ implementation.
+
+## API and compatibility impact
+
+No existing public call needs to break for an SVG-native release.
+
+Prerequisite changes delivered by the universal-barrel PR:
+
+- additive `@tanstack/charts/universal` export;
+- additive `@tanstack/charts/types` export, including generic tooltip and portal
+ token contracts;
+- mechanical split between universal and DOM host types, with root re-exports
+ preserved.
+
+This proof adds a separate React Native package, base component contract, and
+optional tooltip subpath.
+
+Additive changes likely required before a supported release:
+
+- a shared, renderer-neutral interaction state module;
+- a shared tooltip content/anchor/placement model;
+- a runtime option for platform default themes;
+- a complete typography and text-measurement contract;
+- structured paint references or a host paint-resolution contract;
+- native-specific tooltip overlay and gesture integration points.
+
+Changes to avoid:
+
+- making the current `ChartRenderer` union over DOM and native surfaces;
+- making string prerendering optional inside that renderer contract;
+- importing React Native from the core package;
+- shipping CSS tokens to native and silently substituting arbitrary colors;
+- claiming compatibility outside the tested Expo 57 and bare React Native
+ 0.86.2 lanes or the `react-native-svg` 15.15.4–15.15.5 pair;
+- adding Skia before an on-device density/performance crossover is measured.
+
+The root type API remains compatible. Consumers that want a DOM-free
+declaration graph can opt into `@tanstack/charts/types`. Shared definitions can
+replace browser-root imports with `@tanstack/charts/universal`; granular entries
+remain the bundle-sensitive option. Neither path changes existing published
+web behavior.
+
+The package now ships compiled ESM and declarations for the root and optional
+tooltip entries. Published exports put `types` first, select explicit native
+shims through the `react-native` condition, and retain `import` fallbacks. The
+release gate builds and packs the adapter with the fixed package set, then
+installs the core and native tarballs into isolated bare React Native and Expo
+consumers. Their default Metro configurations must resolve installed `dist`
+files rather than workspace source.
+
+## Pros and cons
+
+### Advantages
+
+- Most data-to-geometry behavior remains one implementation.
+- Existing definitions, accessors, D3 scales, custom marks, polar charts, and
+ geographic paths remain usable.
+- The direct scene visitor is small and avoids an SVG XML parse/reconcile step.
+- `react-native-svg` provides one renderer across iOS and Android and supports
+ the current React Native architecture.
+- Native callbacks receive the original datum objects because the scene and
+ interaction model stay in one JavaScript runtime.
+- The separate package keeps native dependencies and platform assumptions out
+ of web bundles.
+
+### Costs
+
+- Rendering parity is only the easy half; text, input, tooltips, animation,
+ accessibility, and export are host products.
+- `react-native-svg` adds both JavaScript and native binary code.
+- Many SVG nodes can become expensive before the shared scene compiler does.
+- Native support needs devices, release builds, TalkBack/VoiceOver testing,
+ and two platform-specific failure surfaces.
+- Current interaction and tooltip ownership must be refactored out of mature
+ DOM host implementations without regressing web behavior.
+- The native package needs its separate packed-declaration program because
+ React Native and DOM global declarations conflict in one TypeScript program.
+
+## Verification performed
+
+- 22 focused POC tests cover every scene primitive, gradients, clips, paint
+ resolution, focus modes, point and callback restoration, tooltip ordering,
+ placement, chart compilation, extension ownership, inactive focus layers,
+ and no-speculative-size behavior. Component mapping tests use React DOM with
+ native modules mocked; they are structural tests, not native renderer tests.
+- The native package and the normal React Native application configuration
+ typecheck.
+- Packed root and tooltip declarations typecheck in isolated bare and Expo
+ consumers. Normal and `react-native` conditional resolution both select the
+ installed `dist` files.
+- The repository-wide typecheck passes with the native dependency graph.
+- The prerequisite PR's packed gate validates the supported environment-safe
+ entries without changing the browser root.
+- Existing locked web bundle baselines remain unchanged.
+- Production Metro bundles complete for iOS and Android, and the full-chart
+ variants must resolve `/universal`.
+- Packed bare React Native and Expo consumers produce iOS and Android bundles
+ without workspace aliases. Their source maps include the native conditional
+ entries and exclude workspace source and guarded browser modules.
+- The workspace Expo 57 fixture boots in Expo Go on an iOS simulator and
+ renders its axes and line. Expo logs identify the Hermes engine, bytecode
+ transform, and running application. The packed artifact is compiled
+ separately; this smoke does not claim that the tarball itself ran in the
+ simulator.
+- Source-map gates prove the full native entries do not include guarded browser
+ implementation files, including the web tooltip and portal runtimes.
+- Retained-input gates prove the base native host and line consumer omit the
+ optional native tooltip implementation, all native entries omit web tooltip
+ and portal code, the base host retains no D3 runtime, and the line consumer
+ retains no D3 geometry runtime.
+
+A strict native consumer with `skipLibCheck: false` now gets past the Charts
+DOM boundary and stops in `@types/d3-array`, whose `blurImage` declaration
+references the browser global `ImageData`. An automated diagnostic accepts
+only those two known errors, or a clean result after the upstream declaration
+is fixed. The POC does not add a fake global or pull DOM libraries into native
+to hide the upstream declaration problem.
+
+The isolated esbuild boundary and packed bare/Expo Metro gate run in
+`pnpm validate`. GitHub also runs the source native declaration check as a
+separate workflow step. The ten-build comparative Metro measurement remains a
+local spike command rather than a mandatory CI gate.
+
+Not performed:
+
+- bare React Native or Android simulator rendering, and physical-device
+ rendering;
+- native component interaction tests;
+- visual comparison against the conformance corpus;
+- Hermes release-mode execution or profiling;
+- 1k/10k-point interaction and memory tests;
+- release application binary comparison;
+- VoiceOver and TalkBack validation;
+- Expo prebuild or dev-client validation;
+- motion, export, or Skia implementation.
+
+## Production path
+
+### Phase 1: shared behavior and a supported SVG host
+
+Extract interaction and tooltip policy, add native theme ownership, complete
+the typography contract, and replace the proof's responder policy. Maintain
+the native-specific package gate and keep the package scoped to tested
+RN/RNSVG lanes.
+
+Estimated effort: 3–5 engineering weeks.
+
+### Phase 2: device confidence
+
+Add generated native projects for bare and Expo applications, iOS and Android
+release builds, a platform-neutral definition corpus, screenshot/geometry
+comparison, VoiceOver/TalkBack flows, binary-size measurement, and sustained
+interaction benchmarks.
+
+Estimated effort: 3–5 engineering weeks.
+
+### Phase 3: broader parity
+
+Add renderer-neutral motion, native export/share, advanced gesture recipes,
+and a Skia renderer only if measured SVG node pressure justifies it. Expand the
+supported version matrix from evidence.
+
+Estimated effort: 4–10 engineering weeks, strongly dependent on motion,
+accessibility, and dense-data requirements.
+
+An honest SVG-native MVP is therefore roughly 6–10 weeks. Broad parity with
+the current web product is closer to 10–20 weeks. These are engineering ranges,
+not schedule commitments.
+
+## Recommendation
+
+Proceed to Phase 1 if a real React Native product is planned. The architecture
+is sound and the JavaScript cost is reasonable for a charting package. Keep the
+published package experimental until the device-confidence work is complete.
+
+Do not start a NativeScript adapter in parallel. The earlier
+[native platform support spike](./NATIVE-PLATFORM-SUPPORT-SPIKE.md) remains the
+architecture comparison; this proof increases confidence specifically for
+React Native because its runtime, Metro pipeline, SVG implementation, and
+interaction surface were exercised.
+
+## Primary platform references
+
+- [React Native 0.86 release](https://reactnative.dev/blog/2026/06/11/react-native-0.86)
+- [React Native version support status](https://reactnative.dev/versions.html)
+- [Expo SDK version matrix](https://docs.expo.dev/versions/latest/)
+- [Expo 57 SVG renderer](https://docs.expo.dev/versions/v57.0.0/sdk/svg/)
+- [React Native layout events](https://reactnative.dev/docs/layoutevent)
+- [React Native accessibility](https://reactnative.dev/docs/accessibility)
+- [`react-native-svg` support and compatibility](https://github.com/software-mansion/react-native-svg)
+- [Metro package exports and the `react-native` condition](https://metrobundler.dev/docs/package-exports/)
diff --git a/README.md b/README.md
index 8c7a6e8c..67bfc53b 100644
--- a/README.md
+++ b/README.md
@@ -130,18 +130,19 @@ bounded representation.
## Packages
-| Package | Role |
-| ------------------------------------------------------- | ------------------------------------- |
-| [`@tanstack/charts`](./packages/charts-core) | Framework-neutral grammar and runtime |
-| [`@tanstack/react-charts`](./packages/react-charts) | React adapter |
-| [`@tanstack/preact-charts`](./packages/preact-charts) | Preact adapter |
-| [`@tanstack/vue-charts`](./packages/vue-charts) | Vue adapter |
-| [`@tanstack/solid-charts`](./packages/solid-charts) | Solid adapter |
-| [`@tanstack/svelte-charts`](./packages/svelte-charts) | Svelte adapter |
-| [`@tanstack/angular-charts`](./packages/angular-charts) | Angular standalone-component adapter |
-| [`@tanstack/lit-charts`](./packages/lit-charts) | Lit custom-element adapter |
-| [`@tanstack/alpine-charts`](./packages/alpine-charts) | Alpine directive adapter |
-| [`@tanstack/octane-charts`](./packages/octane-charts) | Octane adapter |
+| Package | Role |
+| ----------------------------------------------------------------- | ------------------------------------- |
+| [`@tanstack/charts`](./packages/charts-core) | Framework-neutral grammar and runtime |
+| [`@tanstack/react-charts`](./packages/react-charts) | React adapter |
+| [`@tanstack/react-native-charts`](./packages/react-native-charts) | Experimental React Native SVG adapter |
+| [`@tanstack/preact-charts`](./packages/preact-charts) | Preact adapter |
+| [`@tanstack/vue-charts`](./packages/vue-charts) | Vue adapter |
+| [`@tanstack/solid-charts`](./packages/solid-charts) | Solid adapter |
+| [`@tanstack/svelte-charts`](./packages/svelte-charts) | Svelte adapter |
+| [`@tanstack/angular-charts`](./packages/angular-charts) | Angular standalone-component adapter |
+| [`@tanstack/lit-charts`](./packages/lit-charts) | Lit custom-element adapter |
+| [`@tanstack/alpine-charts`](./packages/alpine-charts) | Alpine directive adapter |
+| [`@tanstack/octane-charts`](./packages/octane-charts) | Octane adapter |
The earlier host experiment remains under `@plot-poc/*` for migration evidence
and benchmark comparison. The private
diff --git a/benchmarks/comparison/bundle-baseline.json b/benchmarks/comparison/bundle-baseline.json
index 633c24a4..cfdc957e 100644
--- a/benchmarks/comparison/bundle-baseline.json
+++ b/benchmarks/comparison/bundle-baseline.json
@@ -1,8 +1,8 @@
{
"schemaVersion": 3,
- "generatedAt": "2026-08-01T17:40:25.541Z",
+ "generatedAt": "2026-08-01T18:25:10.144Z",
"packageVersions": {
- "tanstack": "0.3.1",
+ "tanstack": "0.4.0",
"chartjs": "4.5.1",
"echarts": "6.1.0",
"recharts": "3.10.1",
@@ -11,7 +11,7 @@
"sources": {
"tanstack": {
"kind": "workspace",
- "revision": "d563eba5d295dc3ddf60eecd2d8a9bd418aaf635"
+ "revision": "1a8b888822bb94be75b6416979d671a04218fe02"
},
"chartjs": {
"kind": "package",
diff --git a/benchmarks/entries/charts-react-native-line.ts b/benchmarks/entries/charts-react-native-line.ts
new file mode 100644
index 00000000..88ab0a3d
--- /dev/null
+++ b/benchmarks/entries/charts-react-native-line.ts
@@ -0,0 +1,11 @@
+import { scaleLinear } from 'd3-scale'
+import { lineY } from '@tanstack/charts/line'
+import { defineChart } from '@tanstack/charts/scene'
+
+export { Chart } from '@tanstack/react-native-charts'
+
+export const definition = defineChart({
+ marks: [lineY([4, 9, 7])],
+ x: { scale: scaleLinear().domain([0, 2]) },
+ y: { scale: scaleLinear().domain([0, 10]) },
+})
diff --git a/benchmarks/entries/charts-react-native-tooltip.ts b/benchmarks/entries/charts-react-native-tooltip.ts
new file mode 100644
index 00000000..bc8b2df9
--- /dev/null
+++ b/benchmarks/entries/charts-react-native-tooltip.ts
@@ -0,0 +1,2 @@
+export { Chart } from '@tanstack/react-native-charts'
+export { tooltip } from '@tanstack/react-native-charts/tooltip'
diff --git a/benchmarks/entries/charts-react-native.ts b/benchmarks/entries/charts-react-native.ts
new file mode 100644
index 00000000..c7629ddd
--- /dev/null
+++ b/benchmarks/entries/charts-react-native.ts
@@ -0,0 +1 @@
+export { Chart } from '@tanstack/react-native-charts'
diff --git a/docs/comparison.md b/docs/comparison.md
index 6e9b7057..3ef0a70e 100644
--- a/docs/comparison.md
+++ b/docs/comparison.md
@@ -4,22 +4,22 @@ description: Compare TanStack Charts with measured and documentation-reviewed ch
---
TanStack Charts `0.4.0` is a pre-alpha release. Its results on this page measure
-the exact workspace source included in this release and pinned competitor
-packages. This comparison records architectural differences and reproducible
-evidence without turning untested behavior into a checkmark.
+the current workspace source and pinned competitor packages. This comparison
+records architectural differences and reproducible evidence without turning
+untested behavior into a checkmark.
## Tested versions
| Library | Package | Measured source |
| -------------------------------------------------------------------------------------- | -------------------- | ------------------- |
-| [TanStack Charts](./overview.md) | `@tanstack/charts` | workspace `d563eba` |
+| [TanStack Charts](./overview.md) | `@tanstack/charts` | workspace `1a8b888` |
| [Chart.js](https://www.chartjs.org/docs/latest/) | `chart.js` | npm `4.5.1` |
| [Apache ECharts](https://echarts.apache.org/handbook/en/best-practices/canvas-vs-svg/) | `echarts` | npm `6.1.0` |
| [Recharts](https://recharts.github.io/en-US/) | `recharts` | npm `3.10.1` |
| [Observable Plot](https://observablehq.com/plot/features/plots) | `@observablehq/plot` | npm `0.6.17` |
The competitor versions are exact package pins, not latest versions inferred
-at page render time. The measured TanStack workspace revision is `d563eba`.
+at page render time. The measured TanStack workspace revision is `1a8b888`.
## Capability matrix
@@ -170,7 +170,8 @@ Canvas composition while keeping D3 and state ownership explicit.
## Evidence and reproduction
- [Standard comparison protocol](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/comparison/README.md)
-- [Tracked bundle baseline](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/comparison/bundle-baseline.json)
+- [Current tracked bundle baseline](https://github.com/TanStack/charts/blob/main/benchmarks/comparison/bundle-baseline.json)
+- [0.4.0 tagged bundle baseline](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/comparison/bundle-baseline.json)
- [Stress protocol](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/comparison/stress/README.md)
- [Catalog conformance protocol](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/conformance/README.md)
diff --git a/docs/installation.md b/docs/installation.md
index 3fcbb600..809705c8 100644
--- a/docs/installation.md
+++ b/docs/installation.md
@@ -17,6 +17,9 @@ Then add one adapter if the application needs it:
# React
pnpm add @tanstack/react-charts react react-dom
+# React Native
+pnpm add @tanstack/react-native-charts react react-native react-native-svg
+
# Preact
pnpm add @tanstack/preact-charts preact
@@ -46,22 +49,56 @@ The adapters intentionally do not replace the core package. Definitions and mark
## Framework compatibility
-| Adapter package | Framework peers |
-| -------------------------- | ---------------------------------------- |
-| `@tanstack/react-charts` | React and React DOM `^19.0.0` |
-| `@tanstack/preact-charts` | Preact `>=10` |
-| `@tanstack/vue-charts` | Vue `>=3.5` |
-| `@tanstack/solid-charts` | Solid `>=1.8` |
-| `@tanstack/svelte-charts` | Svelte `^5.20.0` |
-| `@tanstack/angular-charts` | Angular core and platform browser `>=19` |
-| `@tanstack/lit-charts` | Lit `>=3.1.3` |
-| `@tanstack/alpine-charts` | Alpine `>=3.15` |
-| `@tanstack/octane-charts` | Octane `^0.1.13` |
+| Adapter package | Framework peers |
+| ------------------------------- | ------------------------------------------------------------------------------- |
+| `@tanstack/react-charts` | React and React DOM `^19.0.0` |
+| `@tanstack/react-native-charts` | React `^19.2.3`, React Native `^0.86.0`, and `react-native-svg` `>=15.15.4 <16` |
+| `@tanstack/preact-charts` | Preact `>=10` |
+| `@tanstack/vue-charts` | Vue `>=3.5` |
+| `@tanstack/solid-charts` | Solid `>=1.8` |
+| `@tanstack/svelte-charts` | Svelte `^5.20.0` |
+| `@tanstack/angular-charts` | Angular core and platform browser `>=19` |
+| `@tanstack/lit-charts` | Lit `>=3.1.3` |
+| `@tanstack/alpine-charts` | Alpine `>=3.15` |
+| `@tanstack/octane-charts` | Octane `^0.1.13` |
These ranges are the package peer contracts. Use the selected framework's
normal renderer or application package beside the adapter when the application
needs browser mounting or server rendering.
+## React Native and Expo
+
+The React Native adapter is experimental and renders through
+`react-native-svg`. Expo 57 applications can install the package and the SVG
+version selected by Expo:
+
+```sh
+pnpm add @tanstack/charts @tanstack/react-native-charts d3-scale
+pnpm exec expo install react-native-svg
+```
+
+Bare React Native 0.86 applications install the renderer directly:
+
+```sh
+pnpm add @tanstack/charts @tanstack/react-native-charts d3-scale react-native-svg
+```
+
+Run `bundle exec pod install` from `ios/` after adding it to a bare iOS
+application. Import shared definitions through the universal entry and choose
+the native host explicitly:
+
+```tsx
+import { defineChart, lineY } from '@tanstack/charts/universal'
+import { Chart } from '@tanstack/react-native-charts'
+import { tooltip } from '@tanstack/react-native-charts/tooltip'
+```
+
+Packed tarballs are typechecked and bundled through default bare React Native
+and Expo Metro configurations on iOS and Android. The workspace Expo 57
+fixture also renders in Expo Go on an iOS simulator. Bare-native and Android
+simulators, physical devices, gestures, visual parity, and screen readers are
+not yet support claims.
+
## Install the D3 modules you import
TanStack Charts accepts D3 scale factories, configured scale instances, and
diff --git a/docs/overview.md b/docs/overview.md
index 46864bd5..66a81c62 100644
--- a/docs/overview.md
+++ b/docs/overview.md
@@ -22,8 +22,9 @@ The library is designed for two equally important authors:
- People should get polished, responsive charts from a short declaration.
- AI should be able to compose, inspect, and modify charts without learning an application-specific series model or guessing at hidden behavior.
-The same definition works with the vanilla DOM host and every framework
-adapter. React and Octane also provide optional Canvas entries.
+The same definition can feed the vanilla DOM host and framework adapters.
+React and Octane also provide optional Canvas entries; the experimental React
+Native adapter consumes definitions from the universal entry.
## A chart is a composition
@@ -156,18 +157,19 @@ Every automatic behavior has an explicit escape hatch. The [Guides](./guides/res
## Packages
-| Package | Use it for |
-| -------------------------- | ---------------------------------------------------------------- |
-| `@tanstack/charts` | Definitions, marks, scenes, SVG, Canvas, export, and vanilla DOM |
-| `@tanstack/react-charts` | React `
` |
-| `@tanstack/preact-charts` | Preact `` |
-| `@tanstack/vue-charts` | Vue `` |
-| `@tanstack/solid-charts` | Solid `` |
-| `@tanstack/svelte-charts` | Svelte `` |
-| `@tanstack/angular-charts` | Angular `` |
-| `@tanstack/lit-charts` | Lit `` |
-| `@tanstack/alpine-charts` | Alpine `x-chart` |
-| `@tanstack/octane-charts` | Octane `` |
+| Package | Use it for |
+| ------------------------------- | ---------------------------------------------------------------- |
+| `@tanstack/charts` | Definitions, marks, scenes, SVG, Canvas, export, and vanilla DOM |
+| `@tanstack/react-charts` | React `` |
+| `@tanstack/react-native-charts` | Experimental React Native SVG `` |
+| `@tanstack/preact-charts` | Preact `` |
+| `@tanstack/vue-charts` | Vue `` |
+| `@tanstack/solid-charts` | Solid `` |
+| `@tanstack/svelte-charts` | Svelte `` |
+| `@tanstack/angular-charts` | Angular `` |
+| `@tanstack/lit-charts` | Lit `` |
+| `@tanstack/alpine-charts` | Alpine `x-chart` |
+| `@tanstack/octane-charts` | Octane `` |
All packages are ESM and tree-shakeable. Built-in marks and optional capabilities also have subpath exports when a library or design system needs tighter bundle boundaries.
diff --git a/examples/charts-expo/App.tsx b/examples/charts-expo/App.tsx
new file mode 100644
index 00000000..08067151
--- /dev/null
+++ b/examples/charts-expo/App.tsx
@@ -0,0 +1,44 @@
+import * as React from 'react'
+import { SafeAreaView, View } from 'react-native'
+import { scaleLinear } from 'd3-scale'
+import { defineChart, lineY } from '@tanstack/charts/universal'
+import { Chart } from '@tanstack/react-native-charts'
+import { tooltip } from '@tanstack/react-native-charts/tooltip'
+
+const rows = [
+ { month: 1, revenue: 12 },
+ { month: 2, revenue: 18 },
+ { month: 3, revenue: 15 },
+ { month: 4, revenue: 26 },
+ { month: 5, revenue: 31 },
+]
+
+const definition = defineChart({
+ marks: [
+ lineY(rows, {
+ x: 'month',
+ y: 'revenue',
+ stroke: '#2563eb',
+ strokeWidth: 3,
+ points: true,
+ }),
+ ],
+ x: { label: 'Month', scale: scaleLinear().domain([1, 5]) },
+ y: { label: 'Revenue', scale: scaleLinear().domain([0, 35]) },
+ focus: 'nearest-x',
+ tooltip: { use: tooltip, sticky: true },
+})
+
+export default function App() {
+ return (
+
+
+
+
+
+ )
+}
diff --git a/examples/charts-expo/app.json b/examples/charts-expo/app.json
new file mode 100644
index 00000000..af08ba59
--- /dev/null
+++ b/examples/charts-expo/app.json
@@ -0,0 +1,6 @@
+{
+ "expo": {
+ "name": "TanStack Charts Expo",
+ "slug": "tanstack-charts-expo"
+ }
+}
diff --git a/examples/charts-expo/index.ts b/examples/charts-expo/index.ts
new file mode 100644
index 00000000..40906434
--- /dev/null
+++ b/examples/charts-expo/index.ts
@@ -0,0 +1,4 @@
+import { registerRootComponent } from 'expo'
+import App from './App'
+
+registerRootComponent(App)
diff --git a/examples/charts-expo/metro.config.cjs b/examples/charts-expo/metro.config.cjs
new file mode 100644
index 00000000..9f8f3c43
--- /dev/null
+++ b/examples/charts-expo/metro.config.cjs
@@ -0,0 +1,3 @@
+const { getDefaultConfig } = require('expo/metro-config')
+
+module.exports = getDefaultConfig(__dirname)
diff --git a/examples/charts-expo/package.json b/examples/charts-expo/package.json
new file mode 100644
index 00000000..ad79c448
--- /dev/null
+++ b/examples/charts-expo/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "@charts-poc/expo-example",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "main": "index.ts",
+ "scripts": {
+ "start": "expo start",
+ "bundle": "expo export --platform all --output-dir dist --clear"
+ },
+ "dependencies": {
+ "@tanstack/charts": "workspace:*",
+ "@tanstack/react-native-charts": "workspace:*",
+ "d3-scale": "4.0.2",
+ "expo": "~57.0.9",
+ "react": "19.2.3",
+ "react-native": "0.86.2",
+ "react-native-svg": "15.15.4"
+ },
+ "devDependencies": {
+ "@types/d3-scale": "^4.0.9",
+ "@types/react": "~19.2.2",
+ "typescript": "~6.0.3"
+ },
+ "engines": {
+ "node": ">=22.13.0"
+ }
+}
diff --git a/examples/charts-expo/tsconfig.json b/examples/charts-expo/tsconfig.json
new file mode 100644
index 00000000..d8a90988
--- /dev/null
+++ b/examples/charts-expo/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "expo/tsconfig.base",
+ "compilerOptions": {
+ "strict": true,
+ "skipLibCheck": true
+ },
+ "include": ["App.tsx", "index.ts"]
+}
diff --git a/examples/charts-react-native/App.granular.tsx b/examples/charts-react-native/App.granular.tsx
new file mode 100644
index 00000000..8d572a44
--- /dev/null
+++ b/examples/charts-react-native/App.granular.tsx
@@ -0,0 +1,10 @@
+import * as React from 'react'
+import { lineY } from '@tanstack/charts/line'
+import { defineChart } from '@tanstack/charts/scene'
+import { createRevenueDefinition, RevenueChart } from './RevenueChart'
+
+const definition = createRevenueDefinition(defineChart, lineY)
+
+export default function GranularApp() {
+ return
+}
diff --git a/examples/charts-react-native/App.tsx b/examples/charts-react-native/App.tsx
new file mode 100644
index 00000000..46109d9e
--- /dev/null
+++ b/examples/charts-react-native/App.tsx
@@ -0,0 +1,9 @@
+import * as React from 'react'
+import { defineChart, lineY } from '@tanstack/charts/universal'
+import { createRevenueDefinition, RevenueChart } from './RevenueChart'
+
+const definition = createRevenueDefinition(defineChart, lineY)
+
+export default function App() {
+ return
+}
diff --git a/examples/charts-react-native/RevenueChart.tsx b/examples/charts-react-native/RevenueChart.tsx
new file mode 100644
index 00000000..607a2bb5
--- /dev/null
+++ b/examples/charts-react-native/RevenueChart.tsx
@@ -0,0 +1,75 @@
+import * as React from 'react'
+import { SafeAreaView, Text, View } from 'react-native'
+import { scaleLinear } from 'd3-scale'
+import type { ChartDefinition } from '@tanstack/charts/types'
+import { Chart } from '@tanstack/react-native-charts'
+import { tooltip } from '@tanstack/react-native-charts/tooltip'
+
+const data = [
+ { month: 1, revenue: 12 },
+ { month: 2, revenue: 18 },
+ { month: 3, revenue: 15 },
+ { month: 4, revenue: 26 },
+ { month: 5, revenue: 31 },
+]
+
+type RevenueDefinition = ChartDefinition<(typeof data)[number], number, number>
+type DefineChart = typeof import('@tanstack/charts/scene').defineChart
+type LineY = typeof import('@tanstack/charts/line').lineY
+
+export function createRevenueDefinition(
+ define: DefineChart,
+ line: LineY,
+): RevenueDefinition {
+ return define({
+ marks: [
+ line(data, {
+ x: 'month',
+ y: 'revenue',
+ stroke: 'var(--revenue, #2563eb)',
+ strokeWidth: 3,
+ points: true,
+ }),
+ ],
+ x: {
+ label: 'Month',
+ scale: scaleLinear().domain([1, 5]),
+ },
+ y: {
+ label: 'Revenue',
+ grid: true,
+ scale: scaleLinear().domain([0, 35]),
+ },
+ focus: 'nearest-x',
+ tooltip: { use: tooltip, sticky: true },
+ })
+}
+
+export function RevenueChart({
+ definition,
+}: {
+ definition: RevenueDefinition
+}) {
+ return (
+
+
+ (
+
+ {defaultBody}
+ {pinned ? (
+
+ Pinned
+
+ ) : null}
+
+ )}
+ />
+
+
+ )
+}
diff --git a/examples/charts-react-native/app.json b/examples/charts-react-native/app.json
new file mode 100644
index 00000000..af4d3ea3
--- /dev/null
+++ b/examples/charts-react-native/app.json
@@ -0,0 +1,4 @@
+{
+ "name": "ChartsNativePoc",
+ "displayName": "Charts Native POC"
+}
diff --git a/examples/charts-react-native/babel.config.cjs b/examples/charts-react-native/babel.config.cjs
new file mode 100644
index 00000000..3e0218e6
--- /dev/null
+++ b/examples/charts-react-native/babel.config.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ presets: ['module:@react-native/babel-preset'],
+}
diff --git a/examples/charts-react-native/index.blank.js b/examples/charts-react-native/index.blank.js
new file mode 100644
index 00000000..d5f656f5
--- /dev/null
+++ b/examples/charts-react-native/index.blank.js
@@ -0,0 +1,9 @@
+import * as React from 'react'
+import { AppRegistry, View } from 'react-native'
+import { name as appName } from './app.json'
+
+function BlankApp() {
+ return React.createElement(View)
+}
+
+AppRegistry.registerComponent(appName, () => BlankApp)
diff --git a/examples/charts-react-native/index.core.js b/examples/charts-react-native/index.core.js
new file mode 100644
index 00000000..98759e74
--- /dev/null
+++ b/examples/charts-react-native/index.core.js
@@ -0,0 +1,23 @@
+import * as React from 'react'
+import { AppRegistry, View } from 'react-native'
+import { scaleLinear } from 'd3-scale'
+import { lineY } from '@tanstack/charts/line'
+import { createChartRuntime } from '@tanstack/charts/runtime'
+import { defineChart } from '@tanstack/charts/scene'
+import { name as appName } from './app.json'
+
+const definition = defineChart({
+ marks: [lineY([4, 9, 7])],
+ x: { scale: scaleLinear().domain([0, 2]) },
+ y: { scale: scaleLinear().domain([0, 10]) },
+})
+const runtime = createChartRuntime()
+const scene = runtime.render(definition, { width: 320, height: 240 })
+
+function CoreApp() {
+ return React.createElement(View, {
+ accessibilityLabel: `${scene.points.length} chart points`,
+ })
+}
+
+AppRegistry.registerComponent(appName, () => CoreApp)
diff --git a/examples/charts-react-native/index.granular.js b/examples/charts-react-native/index.granular.js
new file mode 100644
index 00000000..08a296ba
--- /dev/null
+++ b/examples/charts-react-native/index.granular.js
@@ -0,0 +1,5 @@
+import { AppRegistry } from 'react-native'
+import App from './App.granular'
+import { name as appName } from './app.json'
+
+AppRegistry.registerComponent(appName, () => App)
diff --git a/examples/charts-react-native/index.js b/examples/charts-react-native/index.js
new file mode 100644
index 00000000..33fbb360
--- /dev/null
+++ b/examples/charts-react-native/index.js
@@ -0,0 +1,5 @@
+import { AppRegistry } from 'react-native'
+import App from './App'
+import { name as appName } from './app.json'
+
+AppRegistry.registerComponent(appName, () => App)
diff --git a/examples/charts-react-native/index.svg.js b/examples/charts-react-native/index.svg.js
new file mode 100644
index 00000000..0e7e94f3
--- /dev/null
+++ b/examples/charts-react-native/index.svg.js
@@ -0,0 +1,23 @@
+import * as React from 'react'
+import { AppRegistry, View } from 'react-native'
+import { Circle, Svg } from 'react-native-svg'
+import { name as appName } from './app.json'
+
+function SvgApp() {
+ return React.createElement(
+ View,
+ null,
+ React.createElement(
+ Svg,
+ { width: 100, height: 100 },
+ React.createElement(Circle, {
+ cx: 50,
+ cy: 50,
+ r: 20,
+ fill: '#2563eb',
+ }),
+ ),
+ )
+}
+
+AppRegistry.registerComponent(appName, () => SvgApp)
diff --git a/examples/charts-react-native/metro.config.cjs b/examples/charts-react-native/metro.config.cjs
new file mode 100644
index 00000000..51160f83
--- /dev/null
+++ b/examples/charts-react-native/metro.config.cjs
@@ -0,0 +1,14 @@
+const path = require('node:path')
+const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config')
+
+const workspaceRoot = path.resolve(__dirname, '../..')
+
+module.exports = mergeConfig(getDefaultConfig(__dirname), {
+ watchFolders: [workspaceRoot],
+ resolver: {
+ nodeModulesPaths: [
+ path.resolve(__dirname, 'node_modules'),
+ path.resolve(workspaceRoot, 'node_modules'),
+ ],
+ },
+})
diff --git a/examples/charts-react-native/package.json b/examples/charts-react-native/package.json
new file mode 100644
index 00000000..fcf782a5
--- /dev/null
+++ b/examples/charts-react-native/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@charts-poc/react-native-example",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "scripts": {
+ "bundle:android": "react-native bundle --entry-file index.js --platform android --dev false --minify true --bundle-output ../../.bundle-output/react-native-chart.android.js --sourcemap-output ../../.bundle-output/react-native-chart.android.map",
+ "bundle:ios": "react-native bundle --entry-file index.js --platform ios --dev false --minify true --bundle-output ../../.bundle-output/react-native-chart.ios.js --sourcemap-output ../../.bundle-output/react-native-chart.ios.map",
+ "start": "react-native start"
+ },
+ "dependencies": {
+ "@tanstack/charts": "workspace:*",
+ "@tanstack/react-native-charts": "workspace:*",
+ "d3-scale": "4.0.2",
+ "react": "19.2.3",
+ "react-native": "0.86.2",
+ "react-native-svg": "15.15.5"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.25.2",
+ "@babel/runtime": "^7.25.0",
+ "@react-native-community/cli": "20.1.0",
+ "@react-native-community/cli-platform-android": "20.1.0",
+ "@react-native-community/cli-platform-ios": "20.1.0",
+ "@react-native/babel-preset": "0.86.2",
+ "@react-native/metro-config": "0.86.2",
+ "@react-native/typescript-config": "0.86.2",
+ "@types/d3-scale": "^4.0.9",
+ "@types/react": "~19.2.2",
+ "typescript": "~6.0.3"
+ },
+ "engines": {
+ "node": ">=22.11.0"
+ }
+}
diff --git a/examples/charts-react-native/tsconfig.json b/examples/charts-react-native/tsconfig.json
new file mode 100644
index 00000000..203e9655
--- /dev/null
+++ b/examples/charts-react-native/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@react-native/typescript-config",
+ "compilerOptions": {
+ "lib": ["es2022"],
+ "types": ["react", "react-native"]
+ },
+ "include": ["App.tsx", "App.granular.tsx", "RevenueChart.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/examples/charts-react-native/tsconfig.strict.json b/examples/charts-react-native/tsconfig.strict.json
new file mode 100644
index 00000000..8c174d9c
--- /dev/null
+++ b/examples/charts-react-native/tsconfig.strict.json
@@ -0,0 +1,6 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "skipLibCheck": false
+ }
+}
diff --git a/nx.json b/nx.json
index 44671a45..f46ad7ea 100644
--- a/nx.json
+++ b/nx.json
@@ -61,11 +61,14 @@
"{workspaceRoot}/docs/**/*",
"{workspaceRoot}/packages/charts-core/**/*",
"{workspaceRoot}/packages/*-charts/**/*",
+ "{workspaceRoot}/examples/charts-react-native/**/*",
+ "{workspaceRoot}/examples/charts-expo/**/*",
"!{workspaceRoot}/packages/*/dist/**/*",
"{workspaceRoot}/scripts/*package*.mjs",
"{workspaceRoot}/scripts/*release*.mjs",
"{workspaceRoot}/scripts/check-framework-adapters.mjs",
"{workspaceRoot}/scripts/check-packed-consumers.mjs",
+ "{workspaceRoot}/scripts/packed-react-native-consumers.mjs",
"{workspaceRoot}/scripts/packed-markdown-links.mjs"
],
"testSolid": [
diff --git a/package.json b/package.json
index d2f1c8f8..ce317adf 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,8 @@
"conformance:quick": "node scripts/compare-plot-catalog.mjs --profile=quick",
"conformance:size": "node scripts/compare-plot-catalog.mjs --size-only",
"performance": "node scripts/measure-rendering.mjs",
+ "react-native:poc:bundle": "node scripts/measure-react-native-poc.mjs",
+ "react-native:poc:types": "node scripts/check-react-native-types.mjs",
"package:check": "nx run charts-workspace:package-check",
"release:artifacts": "nx run charts-workspace:release-artifacts",
"release:check": "node scripts/publish-release.mjs --check",
@@ -72,6 +74,7 @@
"@tanstack/charts-d3": "workspace:*",
"@tanstack/charts-scales": "workspace:*",
"@tanstack/octane-charts": "workspace:*",
+ "@tanstack/react-native-charts": "workspace:*",
"@tanstack/react-charts": "workspace:*",
"@types/d3-array": "^3.2.2",
"@types/d3-brush": "^3.0.6",
diff --git a/packages/charts-core/docs/comparison.md b/packages/charts-core/docs/comparison.md
index 6e9b7057..3ef0a70e 100644
--- a/packages/charts-core/docs/comparison.md
+++ b/packages/charts-core/docs/comparison.md
@@ -4,22 +4,22 @@ description: Compare TanStack Charts with measured and documentation-reviewed ch
---
TanStack Charts `0.4.0` is a pre-alpha release. Its results on this page measure
-the exact workspace source included in this release and pinned competitor
-packages. This comparison records architectural differences and reproducible
-evidence without turning untested behavior into a checkmark.
+the current workspace source and pinned competitor packages. This comparison
+records architectural differences and reproducible evidence without turning
+untested behavior into a checkmark.
## Tested versions
| Library | Package | Measured source |
| -------------------------------------------------------------------------------------- | -------------------- | ------------------- |
-| [TanStack Charts](./overview.md) | `@tanstack/charts` | workspace `d563eba` |
+| [TanStack Charts](./overview.md) | `@tanstack/charts` | workspace `1a8b888` |
| [Chart.js](https://www.chartjs.org/docs/latest/) | `chart.js` | npm `4.5.1` |
| [Apache ECharts](https://echarts.apache.org/handbook/en/best-practices/canvas-vs-svg/) | `echarts` | npm `6.1.0` |
| [Recharts](https://recharts.github.io/en-US/) | `recharts` | npm `3.10.1` |
| [Observable Plot](https://observablehq.com/plot/features/plots) | `@observablehq/plot` | npm `0.6.17` |
The competitor versions are exact package pins, not latest versions inferred
-at page render time. The measured TanStack workspace revision is `d563eba`.
+at page render time. The measured TanStack workspace revision is `1a8b888`.
## Capability matrix
@@ -170,7 +170,8 @@ Canvas composition while keeping D3 and state ownership explicit.
## Evidence and reproduction
- [Standard comparison protocol](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/comparison/README.md)
-- [Tracked bundle baseline](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/comparison/bundle-baseline.json)
+- [Current tracked bundle baseline](https://github.com/TanStack/charts/blob/main/benchmarks/comparison/bundle-baseline.json)
+- [0.4.0 tagged bundle baseline](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/comparison/bundle-baseline.json)
- [Stress protocol](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/comparison/stress/README.md)
- [Catalog conformance protocol](https://github.com/TanStack/charts/blob/v0.4.0/benchmarks/conformance/README.md)
diff --git a/packages/charts-core/docs/installation.md b/packages/charts-core/docs/installation.md
index 3fcbb600..809705c8 100644
--- a/packages/charts-core/docs/installation.md
+++ b/packages/charts-core/docs/installation.md
@@ -17,6 +17,9 @@ Then add one adapter if the application needs it:
# React
pnpm add @tanstack/react-charts react react-dom
+# React Native
+pnpm add @tanstack/react-native-charts react react-native react-native-svg
+
# Preact
pnpm add @tanstack/preact-charts preact
@@ -46,22 +49,56 @@ The adapters intentionally do not replace the core package. Definitions and mark
## Framework compatibility
-| Adapter package | Framework peers |
-| -------------------------- | ---------------------------------------- |
-| `@tanstack/react-charts` | React and React DOM `^19.0.0` |
-| `@tanstack/preact-charts` | Preact `>=10` |
-| `@tanstack/vue-charts` | Vue `>=3.5` |
-| `@tanstack/solid-charts` | Solid `>=1.8` |
-| `@tanstack/svelte-charts` | Svelte `^5.20.0` |
-| `@tanstack/angular-charts` | Angular core and platform browser `>=19` |
-| `@tanstack/lit-charts` | Lit `>=3.1.3` |
-| `@tanstack/alpine-charts` | Alpine `>=3.15` |
-| `@tanstack/octane-charts` | Octane `^0.1.13` |
+| Adapter package | Framework peers |
+| ------------------------------- | ------------------------------------------------------------------------------- |
+| `@tanstack/react-charts` | React and React DOM `^19.0.0` |
+| `@tanstack/react-native-charts` | React `^19.2.3`, React Native `^0.86.0`, and `react-native-svg` `>=15.15.4 <16` |
+| `@tanstack/preact-charts` | Preact `>=10` |
+| `@tanstack/vue-charts` | Vue `>=3.5` |
+| `@tanstack/solid-charts` | Solid `>=1.8` |
+| `@tanstack/svelte-charts` | Svelte `^5.20.0` |
+| `@tanstack/angular-charts` | Angular core and platform browser `>=19` |
+| `@tanstack/lit-charts` | Lit `>=3.1.3` |
+| `@tanstack/alpine-charts` | Alpine `>=3.15` |
+| `@tanstack/octane-charts` | Octane `^0.1.13` |
These ranges are the package peer contracts. Use the selected framework's
normal renderer or application package beside the adapter when the application
needs browser mounting or server rendering.
+## React Native and Expo
+
+The React Native adapter is experimental and renders through
+`react-native-svg`. Expo 57 applications can install the package and the SVG
+version selected by Expo:
+
+```sh
+pnpm add @tanstack/charts @tanstack/react-native-charts d3-scale
+pnpm exec expo install react-native-svg
+```
+
+Bare React Native 0.86 applications install the renderer directly:
+
+```sh
+pnpm add @tanstack/charts @tanstack/react-native-charts d3-scale react-native-svg
+```
+
+Run `bundle exec pod install` from `ios/` after adding it to a bare iOS
+application. Import shared definitions through the universal entry and choose
+the native host explicitly:
+
+```tsx
+import { defineChart, lineY } from '@tanstack/charts/universal'
+import { Chart } from '@tanstack/react-native-charts'
+import { tooltip } from '@tanstack/react-native-charts/tooltip'
+```
+
+Packed tarballs are typechecked and bundled through default bare React Native
+and Expo Metro configurations on iOS and Android. The workspace Expo 57
+fixture also renders in Expo Go on an iOS simulator. Bare-native and Android
+simulators, physical devices, gestures, visual parity, and screen readers are
+not yet support claims.
+
## Install the D3 modules you import
TanStack Charts accepts D3 scale factories, configured scale instances, and
diff --git a/packages/charts-core/docs/overview.md b/packages/charts-core/docs/overview.md
index 46864bd5..66a81c62 100644
--- a/packages/charts-core/docs/overview.md
+++ b/packages/charts-core/docs/overview.md
@@ -22,8 +22,9 @@ The library is designed for two equally important authors:
- People should get polished, responsive charts from a short declaration.
- AI should be able to compose, inspect, and modify charts without learning an application-specific series model or guessing at hidden behavior.
-The same definition works with the vanilla DOM host and every framework
-adapter. React and Octane also provide optional Canvas entries.
+The same definition can feed the vanilla DOM host and framework adapters.
+React and Octane also provide optional Canvas entries; the experimental React
+Native adapter consumes definitions from the universal entry.
## A chart is a composition
@@ -156,18 +157,19 @@ Every automatic behavior has an explicit escape hatch. The [Guides](./guides/res
## Packages
-| Package | Use it for |
-| -------------------------- | ---------------------------------------------------------------- |
-| `@tanstack/charts` | Definitions, marks, scenes, SVG, Canvas, export, and vanilla DOM |
-| `@tanstack/react-charts` | React `` |
-| `@tanstack/preact-charts` | Preact `` |
-| `@tanstack/vue-charts` | Vue `` |
-| `@tanstack/solid-charts` | Solid `` |
-| `@tanstack/svelte-charts` | Svelte `` |
-| `@tanstack/angular-charts` | Angular `` |
-| `@tanstack/lit-charts` | Lit `` |
-| `@tanstack/alpine-charts` | Alpine `x-chart` |
-| `@tanstack/octane-charts` | Octane `` |
+| Package | Use it for |
+| ------------------------------- | ---------------------------------------------------------------- |
+| `@tanstack/charts` | Definitions, marks, scenes, SVG, Canvas, export, and vanilla DOM |
+| `@tanstack/react-charts` | React `` |
+| `@tanstack/react-native-charts` | Experimental React Native SVG `` |
+| `@tanstack/preact-charts` | Preact `` |
+| `@tanstack/vue-charts` | Vue `` |
+| `@tanstack/solid-charts` | Solid `` |
+| `@tanstack/svelte-charts` | Svelte `` |
+| `@tanstack/angular-charts` | Angular `` |
+| `@tanstack/lit-charts` | Lit `` |
+| `@tanstack/alpine-charts` | Alpine `x-chart` |
+| `@tanstack/octane-charts` | Octane `` |
All packages are ESM and tree-shakeable. Built-in marks and optional capabilities also have subpath exports when a library or design system needs tighter bundle boundaries.
diff --git a/packages/charts-core/src/reconcile.test.ts b/packages/charts-core/src/reconcile.test.ts
index 9fe0fc2e..a17e1cea 100644
--- a/packages/charts-core/src/reconcile.test.ts
+++ b/packages/charts-core/src/reconcile.test.ts
@@ -142,7 +142,7 @@ describe('keyed SVG reconciliation', () => {
const cancelFrame = vi
.spyOn(window, 'cancelAnimationFrame')
.mockImplementation((handle) => {
- callbacks.delete(handle)
+ if (typeof handle === 'number') callbacks.delete(handle)
})
reconcileChartSvg(
container,
diff --git a/packages/react-native-charts/CHANGELOG.md b/packages/react-native-charts/CHANGELOG.md
new file mode 100644
index 00000000..ef86d90b
--- /dev/null
+++ b/packages/react-native-charts/CHANGELOG.md
@@ -0,0 +1,10 @@
+# @tanstack/react-native-charts
+
+## 0.4.0
+
+### Minor Changes
+
+- Add the initial experimental React Native SVG host with responsive scene
+ rendering, focus, selection, accessibility actions, and an optional native
+ tooltip entry. Ship compiled ESM and declarations verified in packed bare
+ React Native and Expo Metro consumers.
diff --git a/packages/react-native-charts/LICENSE b/packages/react-native-charts/LICENSE
new file mode 100644
index 00000000..cce7e258
--- /dev/null
+++ b/packages/react-native-charts/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2026 TanStack
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/react-native-charts/README.md b/packages/react-native-charts/README.md
new file mode 100644
index 00000000..9eb34c90
--- /dev/null
+++ b/packages/react-native-charts/README.md
@@ -0,0 +1,58 @@
+# TanStack React Native Charts
+
+Experimental React Native SVG host for `@tanstack/charts` definitions and
+scene graphs.
+
+## Install
+
+```sh
+npm install @tanstack/react-native-charts @tanstack/charts d3-scale
+npm install --save-dev @types/d3-scale
+```
+
+Expo applications also need the SDK-compatible SVG renderer:
+
+```sh
+npx expo install react-native-svg
+```
+
+Bare React Native applications can install it directly:
+
+```sh
+npm install react-native-svg
+```
+
+Run `bundle exec pod install` from `ios/` after adding it to a bare iOS
+application.
+
+## Usage
+
+```tsx
+import { scaleLinear } from 'd3-scale'
+import { defineChart, lineY } from '@tanstack/charts/universal'
+import { Chart } from '@tanstack/react-native-charts'
+import { tooltip } from '@tanstack/react-native-charts/tooltip'
+
+const definition = defineChart({
+ marks: [lineY([4, 9, 7])],
+ x: { scale: scaleLinear().domain([0, 2]) },
+ y: { scale: scaleLinear().domain([0, 10]) },
+ tooltip: { use: tooltip, sticky: true },
+})
+
+export function RevenueChart() {
+ return (
+
+ )
+}
+```
+
+The package is tested with Expo 57 / React Native 0.86 and
+`react-native-svg` 15.15.x. The workspace fixture also renders in Expo Go on an
+iOS simulator. It remains experimental: bare-native and Android simulators,
+physical devices, gestures, accessibility, release builds, and performance
+still need validation.
diff --git a/packages/react-native-charts/package.json b/packages/react-native-charts/package.json
new file mode 100644
index 00000000..9c0970c4
--- /dev/null
+++ b/packages/react-native-charts/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "@tanstack/react-native-charts",
+ "version": "0.4.0",
+ "private": false,
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/TanStack/charts.git",
+ "directory": "packages/react-native-charts"
+ },
+ "type": "module",
+ "sideEffects": false,
+ "files": [
+ "dist",
+ "CHANGELOG.md",
+ "LICENSE",
+ "README.md"
+ ],
+ "exports": {
+ ".": "./src/index.ts",
+ "./tooltip": "./src/tooltip-entry.ts"
+ },
+ "publishConfig": {
+ "access": "public",
+ "provenance": true,
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "react-native": "./dist/index.native.js",
+ "import": "./dist/index.js"
+ },
+ "./tooltip": {
+ "types": "./dist/tooltip-entry.d.ts",
+ "react-native": "./dist/tooltip-entry.native.js",
+ "import": "./dist/tooltip-entry.js"
+ }
+ }
+ },
+ "dependencies": {
+ "@tanstack/charts": "workspace:*"
+ },
+ "devDependencies": {
+ "react": "19.2.3",
+ "react-native": "0.86.2",
+ "react-native-svg": "15.15.5"
+ },
+ "peerDependencies": {
+ "react": "^19.2.3",
+ "react-native": "^0.86.0",
+ "react-native-svg": ">=15.15.4 <16"
+ }
+}
diff --git a/packages/react-native-charts/src/Chart.test.tsx b/packages/react-native-charts/src/Chart.test.tsx
new file mode 100644
index 00000000..7900d967
--- /dev/null
+++ b/packages/react-native-charts/src/Chart.test.tsx
@@ -0,0 +1,279 @@
+import * as React from 'react'
+import { createRoot } from 'react-dom/client'
+import { renderToStaticMarkup } from 'react-dom/server'
+import { scaleLinear } from 'd3-scale'
+import { describe, expect, it, vi } from 'vitest'
+import { lineY } from '@tanstack/charts/line'
+import { defineChart } from '@tanstack/charts/scene'
+import { Chart } from './Chart'
+import {
+ tooltip,
+ type NativeChartTooltipComponent,
+ type NativeChartTooltipExtension,
+} from './tooltip-entry'
+
+vi.mock('react-native', async () => {
+ const ReactModule = await import('react')
+ return {
+ Text: 'span',
+ View: ReactModule.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes & { style?: unknown }
+ >(function MockView({ children, onBlur, onFocus, style }, ref) {
+ const resolvedStyle = Array.isArray(style)
+ ? Object.assign({}, ...style.filter(Boolean))
+ : style
+ return ReactModule.createElement(
+ 'div',
+ {
+ ref,
+ onBlur,
+ onFocus,
+ style: resolvedStyle as React.CSSProperties,
+ },
+ children,
+ )
+ }),
+ }
+})
+
+vi.mock('react-native-svg', () => ({
+ Circle: 'circle',
+ ClipPath: 'clipPath',
+ Defs: 'defs',
+ G: 'g',
+ Line: 'line',
+ LinearGradient: 'linearGradient',
+ Path: 'path',
+ Rect: 'rect',
+ Stop: 'stop',
+ Svg: 'svg',
+ Text: 'text',
+}))
+
+const data = [
+ { month: 1, value: 8 },
+ { month: 2, value: 12 },
+]
+const definition = defineChart({
+ marks: [
+ lineY(data, {
+ x: 'month',
+ y: 'value',
+ stroke: 'var(--series, #2563eb)',
+ points: true,
+ }),
+ ],
+ x: { scale: scaleLinear().domain([1, 2]) },
+ y: { scale: scaleLinear().domain([8, 12]) },
+ tooltip: { use: tooltip, sticky: true },
+})
+
+describe('React Native Chart', () => {
+ it('compiles a shared definition directly into native SVG components', () => {
+ const markup = renderToStaticMarkup(
+ ,
+ )
+
+ expect(markup).toContain(' {
+ const markup = renderToStaticMarkup(
+ ,
+ )
+
+ expect(markup).not.toContain(' {
+ const foreignDefinition = defineChart({
+ marks: [lineY(data, { x: 'month', y: 'value' })],
+ x: { scale: scaleLinear().domain([1, 2]) },
+ y: { scale: scaleLinear().domain([8, 12]) },
+ tooltip: {
+ id: 'foreign-tooltip',
+ create: (): undefined => undefined,
+ },
+ })
+
+ expect(() =>
+ renderToStaticMarkup(
+ ,
+ ),
+ ).toThrow('tooltip extension from @tanstack/react-native-charts/tooltip')
+ })
+
+ it('creates branded native tooltip extensions without singleton identity', () => {
+ const CustomTooltip: NativeChartTooltipComponent = () => null
+ const create = vi.fn(() => CustomTooltip)
+ const customTooltip: NativeChartTooltipExtension = {
+ id: 'custom-native-tooltip',
+ __chartExtensionType: 'tooltip',
+ __nativeChartHost: 'react-native',
+ create,
+ }
+ const customDefinition = defineChart({
+ marks: [lineY(data, { x: 'month', y: 'value' })],
+ x: { scale: scaleLinear().domain([1, 2]) },
+ y: { scale: scaleLinear().domain([8, 12]) },
+ tooltip: { use: customTooltip, sticky: true },
+ })
+
+ renderToStaticMarkup(
+ ,
+ )
+
+ expect(create).toHaveBeenCalledOnce()
+ })
+
+ it('refreshes focused callbacks with points from a resized scene', async () => {
+ const container = document.createElement('div')
+ const root = createRoot(container)
+ const onFocusChange = vi.fn()
+
+ try {
+ await React.act(() => {
+ root.render(
+ ,
+ )
+ })
+ const chart = container.firstElementChild
+ if (!chart) throw new Error('Expected the native chart root to render.')
+
+ await React.act(() => {
+ chart.dispatchEvent(new FocusEvent('focusin', { bubbles: true }))
+ })
+ const initial = onFocusChange.mock.lastCall?.[0]
+
+ await React.act(() => {
+ root.render(
+ ,
+ )
+ })
+ const restored = onFocusChange.mock.lastCall?.[0]
+
+ expect(onFocusChange).toHaveBeenCalledTimes(2)
+ expect(restored).not.toBe(initial)
+ expect(restored?.y).not.toBe(initial?.y)
+ } finally {
+ await React.act(() => root.unmount())
+ }
+ })
+
+ it('keeps the focus source when only callback props change', async () => {
+ const focusSources: string[] = []
+ const TrackingTooltip: NativeChartTooltipComponent = ({ focusSource }) => {
+ focusSources.push(focusSource)
+ return null
+ }
+ const trackingTooltip: NativeChartTooltipExtension = {
+ id: 'tracking-native-tooltip',
+ __chartExtensionType: 'tooltip',
+ __nativeChartHost: 'react-native',
+ create: () => TrackingTooltip,
+ }
+ const trackingDefinition = defineChart({
+ marks: [lineY(data, { x: 'month', y: 'value' })],
+ x: { scale: scaleLinear().domain([1, 2]) },
+ y: { scale: scaleLinear().domain([8, 12]) },
+ tooltip: { use: trackingTooltip },
+ })
+ const container = document.createElement('div')
+ const root = createRoot(container)
+
+ try {
+ await React.act(() => {
+ root.render(
+ ,
+ )
+ })
+ const chart = container.firstElementChild
+ if (!chart) throw new Error('Expected the native chart root to render.')
+
+ await React.act(() => {
+ chart.dispatchEvent(new FocusEvent('focusin', { bubbles: true }))
+ })
+ expect(focusSources.at(-1)).toBe('keyboard')
+
+ await React.act(() => {
+ root.render(
+ ,
+ )
+ })
+ expect(focusSources.at(-1)).toBe('keyboard')
+ } finally {
+ await React.act(() => root.unmount())
+ }
+ })
+
+ it('rejects browser tooltip portal extensions', () => {
+ const portalDefinition = defineChart({
+ marks: [lineY(data, { x: 'month', y: 'value' })],
+ x: { scale: scaleLinear().domain([1, 2]) },
+ y: { scale: scaleLinear().domain([8, 12]) },
+ tooltip: {
+ use: tooltip,
+ portal: {
+ id: 'browser-portal',
+ create: (): undefined => undefined,
+ },
+ },
+ })
+
+ expect(() =>
+ renderToStaticMarkup(
+ ,
+ ),
+ ).toThrow('do not support browser tooltip portal extensions')
+ })
+})
diff --git a/packages/react-native-charts/src/Chart.tsx b/packages/react-native-charts/src/Chart.tsx
new file mode 100644
index 00000000..02bd7e8d
--- /dev/null
+++ b/packages/react-native-charts/src/Chart.tsx
@@ -0,0 +1,447 @@
+import * as React from 'react'
+import type {
+ AccessibilityActionEvent,
+ ColorValue,
+ GestureResponderEvent,
+ LayoutChangeEvent,
+ StyleProp,
+ ViewStyle,
+} from 'react-native'
+import { View } from 'react-native'
+import { createChartRuntime } from '@tanstack/charts/runtime'
+import type {
+ ChartDefinition,
+ ChartFocusSource,
+ ChartPoint,
+ ChartScene,
+ ChartTextMeasurer,
+ ChartTooltipExtensionToken,
+ ChartTooltipInput,
+ ChartTooltipOptions,
+ ChartTooltipPosition,
+ ChartValue,
+} from '@tanstack/charts/types'
+import { NativeChartFocusOverlay } from './FocusOverlay'
+import {
+ adjacentFocusPoint,
+ createNativeChartFocusModel,
+ samePointReferences,
+} from './interaction'
+import { resolveNativePaint, type NativePaintResolver } from './paint'
+import { NativeChartScene } from './SvgScene'
+import type {
+ NativeChartTooltipComponent,
+ NativeChartTooltipExtension,
+ NativeChartTooltipRenderContext,
+} from './Tooltip'
+
+export interface NativeChartRenderContext<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+> {
+ scene: ChartScene
+}
+
+export interface ChartProps<
+ TDatum = unknown,
+ TXValue extends ChartValue = ChartValue,
+ TYValue extends ChartValue = ChartValue,
+> {
+ definition: ChartDefinition
+ accessibilityLabel: string
+ accessibilityHint?: string
+ width?: number
+ height?: number
+ aspectRatio?: number
+ style?: StyleProp
+ color?: ColorValue
+ focusFill?: ColorValue
+ fontFamily?: string
+ idPrefix?: string
+ testID?: string
+ measureText?: ChartTextMeasurer
+ resolvePaint?: NativePaintResolver
+ onFocusChange?: (point: ChartPoint | null) => void
+ onFocusGroupChange?: (
+ points: readonly ChartPoint[],
+ ) => void
+ onSelect?: (point: ChartPoint | null) => void
+ onRender?: (
+ context: NativeChartRenderContext,
+ ) => void
+ renderTooltip?: (
+ context: NativeChartTooltipRenderContext,
+ ) => React.ReactNode
+}
+
+export function Chart<
+ TDatum,
+ TXValue extends ChartValue = ChartValue,
+ TYValue extends ChartValue = ChartValue,
+>({
+ definition,
+ accessibilityLabel,
+ accessibilityHint,
+ width,
+ height,
+ aspectRatio,
+ style,
+ color = '#111827',
+ focusFill = '#ffffff',
+ fontFamily,
+ idPrefix: idPrefixOption,
+ testID,
+ measureText,
+ resolvePaint = resolveNativePaint,
+ onFocusChange,
+ onFocusGroupChange,
+ onSelect,
+ onRender,
+ renderTooltip,
+}: ChartProps) {
+ const generatedId = React.useId()
+ const idPrefix =
+ idPrefixOption ??
+ `ts-chart-${generatedId.replaceAll(/[^a-zA-Z0-9_-]/g, '')}`
+ const runtime = React.useMemo(
+ () => createChartRuntime(),
+ [],
+ )
+ const [layout, setLayout] = React.useState<{
+ width: number
+ height: number
+ } | null>(null)
+ const resolvedAspectRatio = positiveFinite(aspectRatio)
+ const explicitWidth = positiveFinite(width)
+ const explicitHeight = positiveFinite(height)
+ const sceneSize = resolveSceneSize(
+ explicitWidth,
+ explicitHeight,
+ resolvedAspectRatio,
+ layout,
+ )
+ const scene = React.useMemo(
+ () =>
+ sceneSize ? runtime.render(definition, sceneSize, { measureText }) : null,
+ [definition, measureText, runtime, sceneSize?.height, sceneSize?.width],
+ )
+ const focusModel = React.useMemo(
+ () => (scene ? createNativeChartFocusModel(scene, definition) : null),
+ [definition, scene],
+ )
+ const [focusedPoints, setFocusedPoints] = React.useState<
+ readonly ChartPoint[]
+ >([])
+ const focusedPointsRef = React.useRef(focusedPoints)
+ const onFocusChangeRef = React.useRef(onFocusChange)
+ const onFocusGroupChangeRef = React.useRef(onFocusGroupChange)
+ onFocusChangeRef.current = onFocusChange
+ onFocusGroupChangeRef.current = onFocusGroupChange
+ const [pinnedKey, setPinnedKey] = React.useState(null)
+ const [pointer, setPointer] = React.useState(
+ null,
+ )
+ const [focusSource, setFocusSource] =
+ React.useState('programmatic')
+ const tooltipInput = React.useMemo(
+ () => resolveNativeTooltipInput(definition.tooltip),
+ [definition.tooltip],
+ )
+ const TooltipComponent = tooltipInput?.component
+ const tooltipOptions = tooltipInput?.options
+ const sticky = Boolean(tooltipInput) && tooltipOptions?.sticky !== false
+ const interactive = Boolean(scene?.points.length)
+
+ const commitFocus = React.useCallback(
+ (points: readonly ChartPoint[]) => {
+ const current = focusedPointsRef.current
+ if (samePointReferences(points, current)) return
+ focusedPointsRef.current = points
+ setFocusedPoints(points)
+ onFocusChangeRef.current?.(points[0] ?? null)
+ onFocusGroupChangeRef.current?.(points)
+ },
+ [],
+ )
+
+ React.useEffect(() => () => runtime.destroy(), [runtime])
+ React.useEffect(() => {
+ if (scene) onRender?.({ scene })
+ }, [onRender, scene])
+ React.useEffect(() => {
+ const previous = focusedPointsRef.current[0]
+ if (!focusModel || !previous) return
+ const restored = focusModel.restore(previous)
+ if (restored) {
+ setFocusSource('restored')
+ commitFocus(focusModel.group(restored))
+ } else {
+ setPinnedKey(null)
+ commitFocus([])
+ }
+ }, [commitFocus, focusModel])
+ React.useEffect(() => {
+ if (!sticky) setPinnedKey(null)
+ }, [sticky])
+
+ const dismiss = React.useCallback(() => {
+ setPinnedKey(null)
+ setPointer(null)
+ commitFocus([])
+ }, [commitFocus])
+
+ const pointAtEvent = React.useCallback(
+ (event: GestureResponderEvent) => {
+ if (!scene || !focusModel) return []
+ const measuredWidth = layout?.width ?? scene.width
+ const measuredHeight = layout?.height ?? scene.height
+ if (measuredWidth <= 0 || measuredHeight <= 0) return []
+ const position = {
+ x: (event.nativeEvent.locationX / measuredWidth) * scene.width,
+ y: (event.nativeEvent.locationY / measuredHeight) * scene.height,
+ }
+ setFocusSource('pointer')
+ setPointer(position)
+ return focusModel.resolve(position.x, position.y)
+ },
+ [focusModel, layout?.height, layout?.width, scene],
+ )
+
+ const handleResponderGrant = (event: GestureResponderEvent) => {
+ if (pinnedKey) return
+ commitFocus(pointAtEvent(event))
+ }
+ const handleResponderMove = (event: GestureResponderEvent) => {
+ if (pinnedKey) return
+ commitFocus(pointAtEvent(event))
+ }
+ const handleResponderRelease = (event: GestureResponderEvent) => {
+ const points = pointAtEvent(event)
+ const point = points[0] ?? null
+ if (sticky) setPinnedKey(pinnedKey ? null : (point?.key ?? null))
+ commitFocus(points)
+ onSelect?.(point)
+ }
+ const handleResponderTerminate = () => {
+ if (pinnedKey) return
+ setPointer(null)
+ commitFocus([])
+ }
+ const handleLayout = (event: LayoutChangeEvent) => {
+ const next = event.nativeEvent.layout
+ if (!positiveFinite(next.width) || !positiveFinite(next.height)) return
+ setLayout((current) =>
+ current?.width === next.width && current.height === next.height
+ ? current
+ : { width: next.width, height: next.height },
+ )
+ }
+
+ const navigate = (direction: -1 | 1) => {
+ if (!focusModel) return
+ setFocusSource('keyboard')
+ const point = adjacentFocusPoint(
+ focusModel,
+ focusedPointsRef.current[0] ?? null,
+ direction,
+ )
+ setPointer(null)
+ commitFocus(point ? focusModel.group(point) : [])
+ }
+ const activate = () => {
+ const point = focusedPointsRef.current[0] ?? null
+ if (!point) return
+ if (sticky) setPinnedKey((current) => (current ? null : point.key))
+ onSelect?.(point)
+ }
+ const handleAccessibilityAction = (event: AccessibilityActionEvent) => {
+ switch (event.nativeEvent.actionName) {
+ case 'increment':
+ navigate(1)
+ break
+ case 'decrement':
+ navigate(-1)
+ break
+ case 'activate':
+ activate()
+ break
+ case 'escape':
+ dismiss()
+ break
+ }
+ }
+ const handleFocus = () => {
+ if (definition.keyboard === false || focusedPointsRef.current.length) return
+ navigate(1)
+ }
+ const focusedPoint = focusedPoints[0] ?? null
+
+ return (
+ false}
+ onResponderGrant={handleResponderGrant}
+ onResponderMove={handleResponderMove}
+ onResponderRelease={handleResponderRelease}
+ onResponderTerminate={handleResponderTerminate}
+ onResponderTerminationRequest={() => true}
+ onStartShouldSetResponder={() => interactive}
+ style={[
+ {
+ position: 'relative',
+ overflow: 'visible',
+ width: explicitWidth ?? '100%',
+ height:
+ explicitHeight ??
+ (resolvedAspectRatio === undefined ? 320 : undefined),
+ aspectRatio:
+ explicitHeight === undefined ? resolvedAspectRatio : undefined,
+ },
+ style,
+ ]}
+ testID={testID}
+ >
+ {scene ? (
+ <>
+
+
+ {TooltipComponent && focusedPoints.length ? (
+
+ ) : null}
+ >
+ ) : null}
+
+ )
+}
+
+function resolveNativeTooltipInput<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ input: false | ChartTooltipInput | undefined,
+): {
+ component: NativeChartTooltipComponent
+ options?: ChartTooltipOptions
+} | null {
+ if (!input) return null
+ const extension = 'create' in input ? input : input.use
+ if (!isNativeTooltipExtension(extension)) {
+ throw new Error(
+ 'React Native charts require a tooltip extension from @tanstack/react-native-charts/tooltip.',
+ )
+ }
+ if (!('create' in input) && input.portal) {
+ throw new Error(
+ 'React Native charts do not support browser tooltip portal extensions.',
+ )
+ }
+ return {
+ component: extension.create(),
+ options: 'create' in input ? undefined : input,
+ }
+}
+
+function isNativeTooltipExtension(
+ extension: ChartTooltipExtensionToken,
+): extension is NativeChartTooltipExtension {
+ const candidate = extension as Partial
+ return (
+ candidate.__chartExtensionType === 'tooltip' &&
+ candidate.__nativeChartHost === 'react-native'
+ )
+}
+
+function resolveSceneSize(
+ width: number | undefined,
+ height: number | undefined,
+ aspectRatio: number | undefined,
+ layout: { width: number; height: number } | null,
+) {
+ const resolvedWidth = width ?? layout?.width
+ if (!resolvedWidth) return null
+ const resolvedHeight =
+ height ??
+ (aspectRatio === undefined
+ ? (layout?.height ?? (width === undefined ? undefined : 320))
+ : resolvedWidth / aspectRatio)
+ return resolvedHeight
+ ? { width: resolvedWidth, height: resolvedHeight }
+ : null
+}
+
+function positiveFinite(value: number | undefined) {
+ return value !== undefined && Number.isFinite(value) && value > 0
+ ? value
+ : undefined
+}
+
+function describePoint(point: ChartPoint) {
+ return [
+ point.groupLabel,
+ formatValue(point.xValue),
+ formatValue(point.yValue),
+ ]
+ .filter(Boolean)
+ .join(', ')
+}
+
+function formatValue(value: ChartValue) {
+ return value instanceof Date
+ ? Number.isNaN(+value)
+ ? 'Invalid Date'
+ : value.toISOString().replace('T00:00:00.000Z', '')
+ : typeof value === 'number'
+ ? value.toLocaleString()
+ : String(value)
+}
diff --git a/packages/react-native-charts/src/FocusOverlay.tsx b/packages/react-native-charts/src/FocusOverlay.tsx
new file mode 100644
index 00000000..1e2e3869
--- /dev/null
+++ b/packages/react-native-charts/src/FocusOverlay.tsx
@@ -0,0 +1,64 @@
+import * as React from 'react'
+import type { ColorValue } from 'react-native'
+import { Circle, Svg } from 'react-native-svg'
+import type { ChartPoint, ChartValue } from '@tanstack/charts/types'
+import { resolveNativeSolidPaint, type NativePaintResolver } from './paint'
+
+export interface NativeChartFocusOverlayProps<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+> {
+ width: number
+ height: number
+ points: readonly ChartPoint[]
+ color: ColorValue
+ fill: ColorValue
+ resolvePaint: NativePaintResolver
+}
+
+export function NativeChartFocusOverlay<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>({
+ width,
+ height,
+ points,
+ color,
+ fill,
+ resolvePaint,
+}: NativeChartFocusOverlayProps) {
+ if (!points.length) return null
+ return (
+
+ {points.map((point, index) => (
+
+ ))}
+
+ )
+}
+
+const absoluteFill = {
+ position: 'absolute',
+ left: 0,
+ top: 0,
+ right: 0,
+ bottom: 0,
+} as const
diff --git a/packages/react-native-charts/src/SvgScene.test.tsx b/packages/react-native-charts/src/SvgScene.test.tsx
new file mode 100644
index 00000000..0ecc1569
--- /dev/null
+++ b/packages/react-native-charts/src/SvgScene.test.tsx
@@ -0,0 +1,181 @@
+import * as React from 'react'
+import { renderToStaticMarkup } from 'react-dom/server'
+import { describe, expect, it, vi } from 'vitest'
+import type { ChartScene, SceneNode } from '@tanstack/charts/types'
+import { resolveNativePaint } from './paint'
+import { NativeChartScene, resolveNativeLineJoin } from './SvgScene'
+
+vi.mock('react-native-svg', () => ({
+ Circle: 'circle',
+ ClipPath: 'clipPath',
+ Defs: 'defs',
+ G: 'g',
+ Line: 'line',
+ LinearGradient: 'linearGradient',
+ Path: 'path',
+ Rect: 'rect',
+ Stop: 'stop',
+ Svg: 'svg',
+ Text: 'text',
+}))
+
+describe('React Native SVG scene renderer', () => {
+ it('maps every scene primitive, gradients, clipping, and authored paths', () => {
+ const markup = renderToStaticMarkup(
+ ,
+ )
+
+ expect(markup).toContain(' {
+ expect(resolveNativeLineJoin('arcs')).toBe('round')
+ expect(resolveNativeLineJoin('miter-clip')).toBe('miter')
+ expect(resolveNativeLineJoin('round')).toBe('round')
+ })
+})
+
+function scene(): ChartScene {
+ const nodes: SceneNode[] = [
+ {
+ kind: 'group',
+ key: 'translated-grid',
+ translateX: 10,
+ translateY: 12,
+ clip: { x: 0, y: 0, width: 80, height: 60 },
+ style: {
+ stroke: 'currentColor',
+ strokeOpacity: 0.4,
+ strokeWidth: 3,
+ strokeDasharray: '2 4',
+ },
+ children: [{ kind: 'rule', key: 'rule', x1: 0, y1: 0, x2: 30, y2: 30 }],
+ },
+ {
+ kind: 'polyline',
+ key: 'line',
+ points: [
+ [2, 4],
+ [20, 30],
+ ],
+ style: { fill: 'none', stroke: '#abcdef', lineJoin: 'arcs' },
+ },
+ {
+ kind: 'polyline',
+ key: 'curved-line',
+ points: [],
+ path: 'M0,0C10,20,20,20,30,0',
+ style: {
+ fill: 'none',
+ stroke: '#334455',
+ lineJoin: 'miter-clip',
+ },
+ },
+ {
+ kind: 'area',
+ key: 'area',
+ points: [
+ [0, 20],
+ [20, 0],
+ [40, 20],
+ ],
+ style: { fill: 'url(#fill)' },
+ },
+ {
+ kind: 'dot',
+ key: 'dot',
+ x: 50,
+ y: 30,
+ radius: 5,
+ style: { fill: 'var(--dot, #ff0000)' },
+ },
+ {
+ kind: 'rect',
+ key: 'rect',
+ x: 60,
+ y: 10,
+ width: 20,
+ height: 30,
+ radius: 4,
+ style: { fill: '#00ff00' },
+ },
+ {
+ kind: 'label',
+ key: 'label',
+ x: 40,
+ y: 50,
+ text: 'Native',
+ anchor: 'middle',
+ baseline: 'middle',
+ rotate: -30,
+ fontSize: 12,
+ fontWeight: 600,
+ style: { fill: '#111111' },
+ },
+ {
+ kind: 'group',
+ key: 'inactive-focus',
+ focus: { match: 'primary', points: [], placement: 'over' },
+ children: [
+ {
+ kind: 'dot',
+ key: 'inactive-focus-dot',
+ x: 50,
+ y: 30,
+ radius: 9,
+ style: { fill: '#fedcba' },
+ },
+ ],
+ },
+ ]
+ return {
+ width: 100,
+ height: 60,
+ margin: { top: 0, right: 0, bottom: 0, left: 0 },
+ chart: { x: 0, y: 0, width: 100, height: 60 },
+ nodes,
+ points: [],
+ scales: {},
+ colors: {
+ type: 'ordinal',
+ domain: [],
+ range: [],
+ map: () => '#2563eb',
+ },
+ gradients: [
+ {
+ id: 'fill',
+ stops: [
+ { offset: 0, color: '#2563eb', opacity: 0.2 },
+ { offset: 1, color: '#2563eb' },
+ ],
+ },
+ ],
+ theme: {
+ foreground: '#111111',
+ muted: '#666666',
+ grid: '#999999',
+ background: '#f8fafc',
+ palette: ['#2563eb'],
+ },
+ }
+}
diff --git a/packages/react-native-charts/src/SvgScene.tsx b/packages/react-native-charts/src/SvgScene.tsx
new file mode 100644
index 00000000..d0c41631
--- /dev/null
+++ b/packages/react-native-charts/src/SvgScene.tsx
@@ -0,0 +1,288 @@
+import * as React from 'react'
+import type { ColorValue } from 'react-native'
+import {
+ Circle,
+ ClipPath,
+ Defs,
+ G,
+ Line,
+ LinearGradient,
+ Path,
+ Rect,
+ Stop,
+ Svg,
+ Text,
+} from 'react-native-svg'
+import type { CommonPathProps, Linejoin } from 'react-native-svg'
+import type {
+ ChartScene,
+ SceneGroup,
+ SceneNode,
+ SceneStyle,
+} from '@tanstack/charts/types'
+import type { NativePaintResolver } from './paint'
+
+export interface NativeChartSceneProps {
+ scene: ChartScene
+ color: ColorValue
+ fontFamily?: string
+ idPrefix: string
+ resolvePaint: NativePaintResolver
+}
+
+export const NativeChartScene = React.memo(function NativeChartScene({
+ scene,
+ color,
+ fontFamily,
+ idPrefix,
+ resolvePaint,
+}: NativeChartSceneProps) {
+ const gradientIds = React.useMemo(
+ () => new Set(scene.gradients.map((gradient) => gradient.id)),
+ [scene.gradients],
+ )
+ const paint = React.useCallback(
+ (value: string) =>
+ resolveScenePaint(value, gradientIds, idPrefix, resolvePaint, color),
+ [color, gradientIds, idPrefix, resolvePaint],
+ )
+
+ return (
+
+ {scene.gradients.length ? (
+
+ {scene.gradients.map((gradient) => (
+
+ {gradient.stops.map((stop, index) => (
+
+ ))}
+
+ ))}
+
+ ) : null}
+ {scene.theme.background === 'transparent' ? null : (
+
+ )}
+ {scene.nodes.map((node) => renderSceneNode(node, idPrefix, paint))}
+
+ )
+})
+
+function renderSceneNode(
+ node: SceneNode,
+ idPrefix: string,
+ paint: (value: string) => ColorValue,
+): React.ReactNode {
+ if (node.kind === 'group' && node.focus) return null
+ const style = nativeSceneStyle(node.style, paint)
+
+ switch (node.kind) {
+ case 'group':
+ return renderGroup(node, idPrefix, paint, style)
+ case 'rule':
+ return (
+
+ )
+ case 'polyline':
+ return (
+
+ )
+ case 'area':
+ return (
+
+ )
+ case 'dot':
+ return (
+
+ )
+ case 'rect':
+ return (
+
+ )
+ case 'label':
+ return (
+
+ {node.text}
+
+ )
+ }
+}
+
+function renderGroup(
+ node: SceneGroup,
+ idPrefix: string,
+ paint: (value: string) => ColorValue,
+ style: ReturnType,
+) {
+ const clipId = node.clip
+ ? scopedId(idPrefix, `clip-${stableId(node.key)}`)
+ : undefined
+ const transform =
+ node.translateX === undefined && node.translateY === undefined
+ ? undefined
+ : `translate(${node.translateX ?? 0} ${node.translateY ?? 0})`
+
+ return (
+
+ {node.clip && clipId ? (
+
+
+
+
+
+ ) : null}
+ {node.children.map((child) => renderSceneNode(child, idPrefix, paint))}
+
+ )
+}
+
+function nativeSceneStyle(
+ style: SceneStyle | undefined,
+ paint: (value: string) => ColorValue,
+): CommonPathProps & { opacity?: number } {
+ if (!style) return {}
+ return {
+ fill: style.fill === undefined ? undefined : paint(style.fill),
+ fillOpacity: style.fillOpacity,
+ stroke: style.stroke === undefined ? undefined : paint(style.stroke),
+ strokeOpacity: style.strokeOpacity,
+ strokeWidth: style.strokeWidth,
+ opacity: style.opacity,
+ strokeLinecap: style.lineCap,
+ strokeLinejoin: resolveNativeLineJoin(style.lineJoin),
+ strokeDasharray: style.strokeDasharray,
+ }
+}
+
+export function resolveNativeLineJoin(
+ lineJoin: SceneStyle['lineJoin'],
+): Linejoin | undefined {
+ if (lineJoin === 'arcs') return 'round'
+ if (lineJoin === 'miter-clip') return 'miter'
+ return lineJoin
+}
+
+function resolveScenePaint(
+ value: string,
+ gradientIds: ReadonlySet,
+ idPrefix: string,
+ resolvePaint: NativePaintResolver,
+ color: ColorValue,
+) {
+ const match = /^url\(#([^)]+)\)$/.exec(value)
+ const id = match?.[1]
+ if (id && gradientIds.has(id)) return `url(#${scopedId(idPrefix, id)})`
+ return resolvePaint(value, { color })
+}
+
+function pointsPath(
+ points: readonly (readonly [number, number])[],
+ close: boolean,
+) {
+ return `${points
+ .map(([x, y], index) => `${index === 0 ? 'M' : 'L'}${x},${y}`)
+ .join('')}${close ? 'Z' : ''}`
+}
+
+function scopedId(prefix: string, id: string) {
+ return prefix ? `${prefix}-${sanitizeId(id)}` : sanitizeId(id)
+}
+
+function sanitizeId(value: string) {
+ return value.replaceAll(/[^a-zA-Z0-9_-]/g, '')
+}
+
+function stableId(value: string) {
+ let hash = 2166136261
+ for (let index = 0; index < value.length; index += 1) {
+ hash = Math.imul(hash ^ value.charCodeAt(index), 16777619)
+ }
+ return (hash >>> 0).toString(36)
+}
+
+function percent(value: number) {
+ return `${Math.max(0, Math.min(1, value)) * 100}%`
+}
diff --git a/packages/react-native-charts/src/Tooltip.test.ts b/packages/react-native-charts/src/Tooltip.test.ts
new file mode 100644
index 00000000..ef2b1078
--- /dev/null
+++ b/packages/react-native-charts/src/Tooltip.test.ts
@@ -0,0 +1,263 @@
+import * as React from 'react'
+import { renderToStaticMarkup } from 'react-dom/server'
+import type { ColorValue } from 'react-native'
+import { describe, expect, it, vi } from 'vitest'
+import type {
+ ChartPoint,
+ ChartScene,
+ ChartTooltipAnchorContext,
+} from '@tanstack/charts/types'
+import {
+ createNativeTooltipContent,
+ NativeChartTooltip,
+ placeNativeTooltip,
+ resolveNativeTooltipAnchor,
+} from './Tooltip'
+import type { NativeChartTooltipRenderContext } from './Tooltip'
+
+vi.mock('react-native', () => ({
+ Text: 'span',
+ View: 'div',
+}))
+
+describe('native tooltip model', () => {
+ it('builds the supported shared-axis default content', () => {
+ const points = [point('alpha', 'Alpha', 3), point('beta', 'Beta', 7)]
+
+ expect(createNativeTooltipContent(points, scene(points))).toEqual({
+ title: 'x: 1',
+ rows: [
+ { label: 'Alpha', value: '3', color: '#2563eb' },
+ { label: 'Beta', value: '7', color: '#f97316' },
+ ],
+ })
+ })
+
+ it('chooses and clamps a placement inside the native layout boundary', () => {
+ expect(
+ placeNativeTooltip(
+ { x: 4, y: 4 },
+ { width: 20, height: 10 },
+ { width: 100, height: 60 },
+ 'top',
+ 10,
+ ),
+ ).toEqual({ left: 8, top: 8, placement: 'top' })
+ })
+
+ it('preserves an intentional null custom body', () => {
+ const points = [point('alpha', 'Alpha', 3)]
+ const markup = renderToStaticMarkup(
+ React.createElement(NativeChartTooltip, {
+ scene: scene(points),
+ width: 100,
+ height: 60,
+ points,
+ pointer: null,
+ focusSource: 'programmatic',
+ pinned: false,
+ color: '#111827',
+ resolvePaint: (value) => value,
+ dismiss: vi.fn(),
+ render: () => null,
+ }),
+ )
+
+ expect(markup).not.toContain(' {
+ const points = [point('alpha', 'Alpha', 3), point('beta', 'Beta', 7)]
+ const currentScene = scene(points)
+
+ expect(
+ resolveNativeTooltipAnchor(
+ points[0]!,
+ points,
+ currentScene,
+ null,
+ 'keyboard',
+ true,
+ { anchor: { x: 'plot-center', y: 'plot-top' } },
+ ),
+ ).toEqual({ x: 50, y: 0 })
+
+ let context: ChartTooltipAnchorContext | undefined
+ expect(
+ resolveNativeTooltipAnchor(
+ points[0]!,
+ points,
+ currentScene,
+ null,
+ 'keyboard',
+ true,
+ {
+ anchor: (_focusedPoints, nextContext) => {
+ context = nextContext
+ return { x: 75, y: 25 }
+ },
+ },
+ ),
+ ).toEqual({ x: 75, y: 25 })
+ expect(context).toEqual({
+ focus: {
+ primary: points[0],
+ group: points,
+ source: 'keyboard',
+ pinned: true,
+ },
+ pointer: null,
+ plot: currentScene.chart,
+ surface: { width: 100, height: 60 },
+ scales: currentScene.scales,
+ })
+ })
+
+ it('keeps the focused point stable when display rows are sorted', () => {
+ const beta = point('beta', 'Beta', 7)
+ const alpha = point('alpha', 'Alpha', 3)
+ const focusedPoints = [beta, alpha]
+ const currentScene = scene(focusedPoints)
+ const format = vi.fn(
+ (focused: ChartPoint) => focused.key,
+ )
+ const anchor = vi.fn(
+ (
+ _points: readonly ChartPoint[],
+ _context: ChartTooltipAnchorContext,
+ ) => ({ x: 75, y: 25 }),
+ )
+ let renderedPoints:
+ readonly ChartPoint[] | undefined
+
+ renderToStaticMarkup(
+ React.createElement(NativeChartTooltip, {
+ scene: currentScene,
+ width: 100,
+ height: 60,
+ points: focusedPoints,
+ pointer: null,
+ focusSource: 'keyboard',
+ options: { anchor, format },
+ pinned: true,
+ color: '#111827',
+ resolvePaint: (value) => value,
+ dismiss: vi.fn(),
+ render: (context) => {
+ renderedPoints = context.points
+ return null
+ },
+ }),
+ )
+
+ expect(renderedPoints).toEqual([alpha, beta])
+ expect(format).toHaveBeenCalledWith(beta)
+ expect(anchor).toHaveBeenCalledWith([alpha, beta], {
+ focus: {
+ primary: beta,
+ group: focusedPoints,
+ source: 'keyboard',
+ pinned: true,
+ },
+ pointer: null,
+ plot: currentScene.chart,
+ surface: { width: 100, height: 60 },
+ scales: currentScene.scales,
+ })
+ })
+
+ it('orders grouped points visually unless color-domain order is requested', () => {
+ const right = point('alpha', 'Alpha', 4, { x: 80, xValue: 8, y: 20 })
+ const left = point('beta', 'Beta', 4, { x: 20, xValue: 2, y: 20 })
+ const focusedPoints = [right, left]
+ const currentScene = scene(focusedPoints)
+ const visualRender = vi.fn<
+ (
+ context: NativeChartTooltipRenderContext,
+ ) => React.ReactNode
+ >(() => null)
+ const colorRender = vi.fn<
+ (
+ context: NativeChartTooltipRenderContext,
+ ) => React.ReactNode
+ >(() => null)
+ const sharedProps = {
+ scene: currentScene,
+ width: 100,
+ height: 60,
+ points: focusedPoints,
+ pointer: null,
+ focusSource: 'keyboard' as const,
+ pinned: true,
+ color: '#111827',
+ resolvePaint: (value: ColorValue) => value,
+ dismiss: vi.fn(),
+ }
+
+ renderToStaticMarkup(
+ React.createElement(NativeChartTooltip, {
+ ...sharedProps,
+ render: visualRender,
+ }),
+ )
+ renderToStaticMarkup(
+ React.createElement(NativeChartTooltip, {
+ ...sharedProps,
+ options: { sort: 'color-domain' },
+ render: colorRender,
+ }),
+ )
+
+ expect(visualRender.mock.calls[0]?.[0].points).toEqual([left, right])
+ expect(colorRender.mock.calls[0]?.[0].points).toEqual([right, left])
+ })
+})
+
+function point(
+ key: string,
+ groupLabel: string,
+ yValue: number,
+ position: { x?: number; xValue?: number; y?: number } = {},
+): ChartPoint {
+ return {
+ key,
+ markId: 'series',
+ group: key,
+ groupLabel,
+ datum: null,
+ datumIndex: 0,
+ xValue: position.xValue ?? 1,
+ yValue,
+ x: position.x ?? 20,
+ y: position.y ?? yValue * 4,
+ color: key === 'alpha' ? '#2563eb' : '#f97316',
+ }
+}
+
+function scene(
+ points: readonly ChartPoint[],
+): ChartScene {
+ return {
+ width: 100,
+ height: 60,
+ margin: { top: 0, right: 0, bottom: 0, left: 0 },
+ chart: { x: 0, y: 0, width: 100, height: 60 },
+ nodes: [],
+ points,
+ scales: {},
+ colors: {
+ type: 'ordinal',
+ domain: ['alpha', 'beta'],
+ range: ['#2563eb', '#f97316'],
+ map: (value) => (value === 'beta' ? '#f97316' : '#2563eb'),
+ },
+ gradients: [],
+ theme: {
+ foreground: '#111827',
+ muted: '#6b7280',
+ grid: '#d1d5db',
+ background: 'transparent',
+ palette: ['#2563eb', '#f97316'],
+ },
+ }
+}
diff --git a/packages/react-native-charts/src/Tooltip.tsx b/packages/react-native-charts/src/Tooltip.tsx
new file mode 100644
index 00000000..ba79ce0a
--- /dev/null
+++ b/packages/react-native-charts/src/Tooltip.tsx
@@ -0,0 +1,608 @@
+import * as React from 'react'
+import type {
+ ColorValue,
+ LayoutChangeEvent,
+ TextStyle,
+ ViewStyle,
+} from 'react-native'
+import { Text, View } from 'react-native'
+import type {
+ ChartPoint,
+ ChartFocusSource,
+ ChartScene,
+ ChartTooltipContent,
+ ChartTooltipContentContext,
+ ChartTooltipExtensionToken,
+ ChartTooltipOptions,
+ ChartTooltipPlacement,
+ ChartTooltipPosition,
+ ChartTooltipXAnchor,
+ ChartTooltipYAnchor,
+ ChartValue,
+} from '@tanstack/charts/types'
+import { resolveNativeSolidPaint, type NativePaintResolver } from './paint'
+
+export interface NativeChartTooltipRenderContext<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+> {
+ points: readonly ChartPoint[]
+ content: ChartTooltipContent | string
+ pinned: boolean
+ dismiss: () => void
+ defaultBody: React.ReactNode
+}
+
+export interface NativeChartTooltipProps<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+> {
+ scene: ChartScene
+ width: number
+ height: number
+ points: readonly ChartPoint[]
+ pointer: ChartTooltipPosition | null
+ focusSource: ChartFocusSource
+ options?: ChartTooltipOptions
+ pinned: boolean
+ color: ColorValue
+ resolvePaint: NativePaintResolver
+ dismiss: () => void
+ render?: (
+ context: NativeChartTooltipRenderContext,
+ ) => React.ReactNode
+}
+
+export function NativeChartTooltip<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>({
+ scene,
+ width,
+ height,
+ points: unorderedPoints,
+ pointer,
+ focusSource,
+ options,
+ pinned,
+ color,
+ resolvePaint,
+ dismiss,
+ render,
+}: NativeChartTooltipProps) {
+ const [size, setSize] = React.useState({ width: 0, height: 0 })
+ const points = React.useMemo(
+ () => orderTooltipPoints(unorderedPoints, scene, options?.sort),
+ [options?.sort, scene, unorderedPoints],
+ )
+ const point = unorderedPoints[0]
+ if (!point) return null
+ const content = createNativeTooltipContent(points, scene, options, point)
+ const sceneAnchor = resolveNativeTooltipAnchor(
+ point,
+ points,
+ scene,
+ pointer,
+ focusSource,
+ pinned,
+ options,
+ unorderedPoints,
+ )
+ const anchor = {
+ x: (sceneAnchor.x / scene.width) * width,
+ y: (sceneAnchor.y / scene.height) * height,
+ }
+ const position = placeNativeTooltip(
+ anchor,
+ size,
+ { width, height },
+ options?.placement,
+ options?.offset,
+ )
+ const defaultBody = (
+
+ )
+ const body = render
+ ? render({ points, content, pinned, dismiss, defaultBody })
+ : defaultBody
+ const accessibilityLabel = tooltipAccessibilityLabel(content)
+ const handleLayout = (event: LayoutChangeEvent) => {
+ const next = event.nativeEvent.layout
+ if (next.width !== size.width || next.height !== size.height) {
+ setSize({ width: next.width, height: next.height })
+ }
+ }
+
+ return (
+ pinned}
+ pointerEvents={pinned ? 'auto' : 'none'}
+ style={[tooltipStyle, { left: position.left, top: position.top }]}
+ >
+ {body}
+
+ )
+}
+
+export type NativeChartTooltipComponent = typeof NativeChartTooltip
+
+export interface NativeChartTooltipExtension extends ChartTooltipExtensionToken {
+ readonly __chartExtensionType: 'tooltip'
+ readonly __nativeChartHost: 'react-native'
+ create: () => NativeChartTooltipComponent
+}
+
+export const tooltip: NativeChartTooltipExtension = {
+ id: 'react-native-tooltip',
+ __chartExtensionType: 'tooltip',
+ __nativeChartHost: 'react-native',
+ create: () => NativeChartTooltip,
+}
+
+function DefaultNativeTooltipBody({
+ content,
+ color,
+ resolvePaint,
+}: {
+ content: ChartTooltipContent | string
+ color: ColorValue
+ resolvePaint: NativePaintResolver
+}) {
+ if (typeof content === 'string') {
+ return {content}
+ }
+ return (
+
+ {content.title ? (
+
+ {content.color ? (
+
+ ) : null}
+ {content.title}
+
+ ) : null}
+ {content.rows.map((row, index) => (
+
+
+
+ {row.label}
+
+
+ {row.value}
+
+
+ ))}
+
+ )
+}
+
+export function createNativeTooltipContent<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ points: readonly ChartPoint[],
+ scene: ChartScene,
+ options?: ChartTooltipOptions,
+ primaryPoint?: ChartPoint,
+): ChartTooltipContent | string {
+ const point = points[0]
+ if (!point) return { rows: [] }
+ const context = createTooltipContentContext(scene)
+ const content = options?.content?.(points, context)
+ if (content !== undefined) return content
+ const formatted =
+ options?.formatGroup?.(points) ?? options?.format?.(primaryPoint ?? point)
+ if (formatted !== undefined) return formatted
+
+ const sharedX =
+ points.length > 1 &&
+ points.every((candidate) => chartValueEqual(candidate.xValue, point.xValue))
+ if (sharedX) {
+ return {
+ title: `${context.xLabel}: ${context.formatX(point.xValue)}`,
+ rows: points.map((candidate) => ({
+ label: candidate.groupLabel,
+ value: context.formatY(candidate.yValue),
+ color: candidate.color,
+ })),
+ }
+ }
+
+ return {
+ title: point.group == null ? undefined : point.groupLabel,
+ color: point.group == null ? undefined : point.color,
+ rows: [
+ { label: context.xLabel, value: context.formatX(point.xValue) },
+ { label: context.yLabel, value: context.formatY(point.yValue) },
+ ],
+ }
+}
+
+function createTooltipContentContext(
+ scene: ChartScene,
+): ChartTooltipContentContext {
+ return {
+ xLabel: findSceneLabel(scene, 'x-label') ?? 'x',
+ yLabel: findSceneLabel(scene, 'y-label') ?? 'y',
+ formatX: formatValue,
+ formatY: formatValue,
+ }
+}
+
+function orderTooltipPoints<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ points: readonly ChartPoint[],
+ scene: ChartScene,
+ sort: ChartTooltipOptions['sort'],
+) {
+ if (sort === 'focus') return [...points]
+ if (typeof sort === 'function') return [...points].sort(sort)
+ if (sort !== 'color-domain') {
+ const first = points[0]
+ const sharedX =
+ first !== undefined &&
+ points.every((point) => chartValueEqual(point.xValue, first.xValue))
+ const sharedY =
+ first !== undefined &&
+ points.every((point) => chartValueEqual(point.yValue, first.yValue))
+ return [...points].sort((left, right) =>
+ sharedY && !sharedX
+ ? left.x - right.x || left.y - right.y
+ : left.y - right.y || left.x - right.x,
+ )
+ }
+ return [...points].sort(
+ (left, right) =>
+ colorOrder(scene, left.group) - colorOrder(scene, right.group),
+ )
+}
+
+function colorOrder(scene: ChartScene, group: ChartPoint['group']) {
+ const index = group == null ? -1 : scene.colors.domain.indexOf(group)
+ return index < 0 ? Number.MAX_SAFE_INTEGER : index
+}
+
+function findSceneLabel(scene: ChartScene, key: string) {
+ const axes = scene.nodes.find(
+ (node) => node.kind === 'group' && node.key === 'axes',
+ )
+ if (axes?.kind !== 'group') return undefined
+ const label = axes.children.find((node) => node.key === key)
+ return label?.kind === 'label' ? label.text : undefined
+}
+
+export function resolveNativeTooltipAnchor<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ point: ChartPoint,
+ points: readonly ChartPoint[],
+ scene: ChartScene,
+ pointer: ChartTooltipPosition | null,
+ focusSource: ChartFocusSource,
+ pinned: boolean,
+ options?: ChartTooltipOptions,
+ focusPoints: readonly ChartPoint[] = points,
+): ChartTooltipPosition {
+ const fallback = { x: point.x, y: point.y }
+ const anchor = options?.anchor ?? 'point'
+ if (anchor === 'point') return fallback
+ if (anchor === 'pointer') return pointer ?? fallback
+ if (anchor === 'group-center') {
+ const x = points.map((candidate) => candidate.x)
+ const y = points.map((candidate) => candidate.y)
+ return {
+ x: (Math.min(...x) + Math.max(...x)) / 2,
+ y: (Math.min(...y) + Math.max(...y)) / 2,
+ }
+ }
+ if (typeof anchor === 'object') {
+ return {
+ x: resolveTooltipCoordinate(
+ 'x',
+ anchor.x,
+ point,
+ points,
+ scene,
+ pointer,
+ fallback.x,
+ ),
+ y: resolveTooltipCoordinate(
+ 'y',
+ anchor.y,
+ point,
+ points,
+ scene,
+ pointer,
+ fallback.y,
+ ),
+ }
+ }
+ const resolved = anchor(points, {
+ focus: {
+ primary: point,
+ group: focusPoints,
+ source: focusSource,
+ pinned,
+ },
+ pointer,
+ plot: scene.chart,
+ surface: { width: scene.width, height: scene.height },
+ scales: scene.scales,
+ })
+ return resolved && Number.isFinite(resolved.x) && Number.isFinite(resolved.y)
+ ? resolved
+ : fallback
+}
+
+function resolveTooltipCoordinate<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ axis: 'x' | 'y',
+ source: ChartTooltipXAnchor | ChartTooltipYAnchor,
+ point: ChartPoint,
+ points: readonly ChartPoint[],
+ scene: ChartScene,
+ pointer: ChartTooltipPosition | null,
+ fallback: number,
+): number {
+ if (source === 'point') return axis === 'x' ? point.x : point.y
+ if (source === 'pointer') return pointer?.[axis] ?? fallback
+ if (source === 'value') {
+ const value = axis === 'x' ? point.xValue : point.yValue
+ const position = scene.scales[axis]?.map(value)
+ return position !== undefined && Number.isFinite(position)
+ ? position
+ : fallback
+ }
+ if (source === 'group-center') {
+ let minimum = axis === 'x' ? point.x : point.y
+ let maximum = minimum
+ for (const candidate of points) {
+ const position = axis === 'x' ? candidate.x : candidate.y
+ minimum = Math.min(minimum, position)
+ maximum = Math.max(maximum, position)
+ }
+ return (minimum + maximum) / 2
+ }
+ const plot = scene.chart
+ if (axis === 'x') {
+ if (source === 'plot-left') return plot.x
+ if (source === 'plot-center') return plot.x + plot.width / 2
+ if (source === 'plot-right') return plot.x + plot.width
+ } else {
+ if (source === 'plot-top') return plot.y
+ if (source === 'plot-center') return plot.y + plot.height / 2
+ if (source === 'plot-bottom') return plot.y + plot.height
+ }
+ return fallback
+}
+
+export function placeNativeTooltip(
+ anchor: ChartTooltipPosition,
+ tooltip: { width: number; height: number },
+ boundary: { width: number; height: number },
+ placement:
+ | 'auto'
+ | ChartTooltipPlacement
+ | readonly ChartTooltipPlacement[]
+ | undefined,
+ offset: number | undefined,
+) {
+ const edge = 8
+ const gap =
+ offset !== undefined && Number.isFinite(offset) ? Math.max(0, offset) : 10
+ const placements =
+ placement === undefined || placement === 'auto'
+ ? defaultTooltipPlacements
+ : Array.isArray(placement)
+ ? placement.length
+ ? placement
+ : defaultTooltipPlacements
+ : [placement as ChartTooltipPlacement]
+ const candidates = placements.map((candidate) =>
+ tooltipPlacement(candidate, anchor, tooltip, gap),
+ )
+ let selected = candidates[0]!
+ let selectedOverflow = overflow(selected, tooltip, boundary, edge)
+ for (const candidate of candidates) {
+ const candidateOverflow = overflow(candidate, tooltip, boundary, edge)
+ if (candidateOverflow === 0) {
+ selected = candidate
+ break
+ }
+ if (candidateOverflow < selectedOverflow) {
+ selected = candidate
+ selectedOverflow = candidateOverflow
+ }
+ }
+ return {
+ left: clamp(
+ selected.left,
+ edge,
+ Math.max(edge, boundary.width - edge - tooltip.width),
+ ),
+ top: clamp(
+ selected.top,
+ edge,
+ Math.max(edge, boundary.height - edge - tooltip.height),
+ ),
+ placement: selected.placement,
+ }
+}
+
+const defaultTooltipPlacements: readonly ChartTooltipPlacement[] = [
+ 'top',
+ 'bottom',
+ 'right',
+ 'left',
+]
+
+function tooltipPlacement(
+ placement: ChartTooltipPlacement,
+ anchor: ChartTooltipPosition,
+ tooltip: { width: number; height: number },
+ gap: number,
+) {
+ const xDirection =
+ placement.endsWith('right') || placement === 'right'
+ ? 1
+ : placement.endsWith('left') || placement === 'left'
+ ? -1
+ : 0
+ const yDirection =
+ placement.startsWith('bottom') || placement === 'bottom'
+ ? 1
+ : placement.startsWith('top') || placement === 'top'
+ ? -1
+ : 0
+ return {
+ placement,
+ left: anchor.x + ((xDirection - 1) * tooltip.width) / 2 + xDirection * gap,
+ top: anchor.y + ((yDirection - 1) * tooltip.height) / 2 + yDirection * gap,
+ }
+}
+
+function overflow(
+ position: { left: number; top: number },
+ tooltip: { width: number; height: number },
+ boundary: { width: number; height: number },
+ edge: number,
+) {
+ return (
+ Math.max(0, edge - position.left) +
+ Math.max(0, position.left + tooltip.width + edge - boundary.width) +
+ Math.max(0, edge - position.top) +
+ Math.max(0, position.top + tooltip.height + edge - boundary.height)
+ )
+}
+
+function tooltipAccessibilityLabel(content: ChartTooltipContent | string) {
+ return typeof content === 'string'
+ ? content
+ : [
+ content.title,
+ ...content.rows.map((row) => `${row.label}: ${row.value}`),
+ ]
+ .filter(Boolean)
+ .join('\n')
+}
+
+function formatValue(value: ChartValue) {
+ return value instanceof Date
+ ? Number.isNaN(+value)
+ ? 'Invalid Date'
+ : value.toISOString().replace('T00:00:00.000Z', '')
+ : typeof value === 'number'
+ ? value.toLocaleString()
+ : String(value)
+}
+
+function chartValueEqual(left: ChartValue, right: ChartValue) {
+ return left instanceof Date && right instanceof Date
+ ? left.getTime() === right.getTime()
+ : Object.is(left, right)
+}
+
+function clamp(value: number, minimum: number, maximum: number) {
+ return Math.max(minimum, Math.min(maximum, value))
+}
+
+const tooltipStyle: ViewStyle = {
+ position: 'absolute',
+ zIndex: 1,
+ maxWidth: '80%',
+ paddingHorizontal: 9,
+ paddingVertical: 7,
+ borderWidth: 1,
+ borderColor: 'rgba(17, 24, 39, 0.16)',
+ borderRadius: 7,
+ backgroundColor: '#ffffff',
+ shadowColor: '#000000',
+ shadowOffset: { width: 0, height: 6 },
+ shadowOpacity: 0.14,
+ shadowRadius: 12,
+ elevation: 4,
+}
+
+const tooltipTextStyle = {
+ color: '#111827',
+ fontSize: 12,
+ fontWeight: '500',
+} as const
+
+const titleStyle = {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 6,
+ marginBottom: 4,
+} as const
+
+const titleTextStyle = {
+ color: '#111827',
+ fontSize: 12,
+ fontWeight: '700',
+} as const
+
+const rowStyle = {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 6,
+} as const
+
+const swatchStyle = {
+ width: 9,
+ height: 9,
+ borderRadius: 2,
+} as const
+
+const rowLabelStyle = {
+ flexGrow: 1,
+ flexShrink: 1,
+ color: '#374151',
+ fontSize: 12,
+} as const
+
+const rowValueStyle: TextStyle = {
+ color: '#111827',
+ fontSize: 12,
+ fontVariant: ['tabular-nums'],
+}
diff --git a/packages/react-native-charts/src/index.native.ts b/packages/react-native-charts/src/index.native.ts
new file mode 100644
index 00000000..df7053ef
--- /dev/null
+++ b/packages/react-native-charts/src/index.native.ts
@@ -0,0 +1 @@
+export * from './index'
diff --git a/packages/react-native-charts/src/index.ts b/packages/react-native-charts/src/index.ts
new file mode 100644
index 00000000..0d15583a
--- /dev/null
+++ b/packages/react-native-charts/src/index.ts
@@ -0,0 +1,5 @@
+export { Chart } from './Chart'
+export type { ChartProps, NativeChartRenderContext } from './Chart'
+export type { NativeChartTooltipRenderContext } from './Tooltip'
+export type { NativePaintContext, NativePaintResolver } from './paint'
+export { resolveNativePaint } from './paint'
diff --git a/packages/react-native-charts/src/interaction.test.ts b/packages/react-native-charts/src/interaction.test.ts
new file mode 100644
index 00000000..0710d8a0
--- /dev/null
+++ b/packages/react-native-charts/src/interaction.test.ts
@@ -0,0 +1,125 @@
+import { describe, expect, it } from 'vitest'
+import type {
+ ChartDefinition,
+ ChartPoint,
+ ChartScene,
+} from '@tanstack/charts/types'
+import { adjacentFocusPoint, createNativeChartFocusModel } from './interaction'
+
+interface Datum {
+ id: string
+}
+
+describe('native focus model', () => {
+ it('reuses grouped focus semantics and native accessibility order', () => {
+ const points = [
+ point('alpha-1', 'alpha', 0, 10, 10, 1, 2),
+ point('beta-1', 'beta', 1, 10, 30, 1, 3),
+ point('alpha-2', 'alpha', 2, 40, 20, 2, 4),
+ ]
+ const model = createNativeChartFocusModel(
+ chartScene(points),
+ definition({ focus: 'group-x', maxFocusDistance: 20 }),
+ )
+
+ expect(model.resolve(11, 29).map((candidate) => candidate.key)).toEqual([
+ 'beta-1',
+ 'alpha-1',
+ ])
+ expect(adjacentFocusPoint(model, null, 1)?.key).toBe('alpha-1')
+ expect(adjacentFocusPoint(model, model.navigation[0] ?? null, 1)?.key).toBe(
+ 'alpha-2',
+ )
+ })
+
+ it('honors a supplied spatial index for nearest focus', () => {
+ const points = [point('alpha', 'alpha', 0, 10, 10, 1, 2)]
+ let calls = 0
+ const model = createNativeChartFocusModel(
+ chartScene(points),
+ definition({
+ spatialIndex: (indexedPoints) => ({
+ findNearest() {
+ calls += 1
+ return indexedPoints[0] ?? null
+ },
+ }),
+ }),
+ )
+
+ expect(model.resolve(500, 500)[0]?.key).toBe('alpha')
+ expect(calls).toBe(1)
+ })
+
+ it('restores duplicate keys by datum identity after a scene update', () => {
+ const datum = { id: 'same' }
+ const previous = point('duplicate', 'alpha', 0, 10, 10, 1, 2, datum)
+ const other = point('duplicate', 'alpha', 0, 20, 20, 2, 3, { id: 'same' })
+ const restored = point('duplicate', 'alpha', 1, 30, 30, 3, 4, datum)
+ const model = createNativeChartFocusModel(
+ chartScene([other, restored]),
+ definition({}),
+ )
+
+ expect(model.restore(previous)).toBe(restored)
+ })
+})
+
+function definition(
+ options: Partial>,
+): ChartDefinition {
+ return { marks: [], ...options }
+}
+
+function point(
+ key: string,
+ group: string,
+ datumIndex: number,
+ x: number,
+ y: number,
+ xValue: number,
+ yValue: number,
+ datum: Datum = { id: key },
+): ChartPoint {
+ return {
+ key,
+ markId: 'series',
+ group,
+ groupLabel: group,
+ datum,
+ datumIndex,
+ xValue,
+ yValue,
+ x,
+ y,
+ color: '#2563eb',
+ }
+}
+
+function chartScene(
+ points: readonly ChartPoint[],
+): ChartScene {
+ return {
+ width: 100,
+ height: 60,
+ margin: { top: 0, right: 0, bottom: 0, left: 0 },
+ chart: { x: 0, y: 0, width: 100, height: 60 },
+ nodes: [],
+ points,
+ scales: {},
+ colors: {
+ type: 'ordinal',
+ domain: ['alpha', 'beta'],
+ range: ['#2563eb', '#f97316'],
+ map: (value) => (value === 'beta' ? '#f97316' : '#2563eb'),
+ },
+ gradients: [],
+ theme: {
+ foreground: '#111827',
+ muted: '#6b7280',
+ grid: '#d1d5db',
+ background: 'transparent',
+ palette: ['#2563eb', '#f97316'],
+ },
+ }
+}
diff --git a/packages/react-native-charts/src/interaction.ts b/packages/react-native-charts/src/interaction.ts
new file mode 100644
index 00000000..180d5e9c
--- /dev/null
+++ b/packages/react-native-charts/src/interaction.ts
@@ -0,0 +1,205 @@
+import {
+ focusNearestX,
+ focusNearestY,
+ focusX,
+ focusY,
+} from '@tanstack/charts/focus'
+import { findNearestPoint } from '@tanstack/charts/scene'
+import type {
+ ChartDefinition,
+ ChartFocusMode,
+ ChartFocusStrategy,
+ ChartPoint,
+ ChartScene,
+ ChartValue,
+} from '@tanstack/charts/types'
+
+export interface NativeChartFocusModel<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+> {
+ resolve: (
+ x: number,
+ y: number,
+ ) => readonly ChartPoint[]
+ group: (
+ point: ChartPoint,
+ ) => readonly ChartPoint[]
+ navigation: readonly ChartPoint[]
+ restore: (
+ point: ChartPoint,
+ ) => ChartPoint | null
+}
+
+export function createNativeChartFocusModel<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ scene: ChartScene,
+ definition: ChartDefinition,
+): NativeChartFocusModel {
+ const strategy = resolveFocusStrategy(definition.focus)
+ const spatialIndex = definition.spatialIndex?.(scene.points)
+ const maxDistance = definition.maxFocusDistance ?? 48
+ const navigation =
+ strategy?.navigation(scene.points) ?? sceneOrder(scene.points)
+
+ return {
+ resolve(x, y) {
+ if (strategy) {
+ return strategy.resolve(scene.points, x, y, maxDistance)
+ }
+ const point = spatialIndex
+ ? spatialIndex.findNearest(x, y, maxDistance)
+ : findNearestPoint(scene, x, y, maxDistance)
+ return point ? [point] : []
+ },
+ group(point) {
+ return strategy?.group(scene.points, point) ?? [point]
+ },
+ navigation,
+ restore(point) {
+ return restoreFocusedPoint(scene.points, point)
+ },
+ }
+}
+
+export function adjacentFocusPoint<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ model: NativeChartFocusModel,
+ current: ChartPoint | null,
+ direction: -1 | 1,
+) {
+ const currentIndex = current
+ ? model.navigation.findIndex((point) => samePointIdentity(point, current))
+ : -1
+ const nextIndex =
+ currentIndex < 0
+ ? direction > 0
+ ? 0
+ : model.navigation.length - 1
+ : Math.max(
+ 0,
+ Math.min(model.navigation.length - 1, currentIndex + direction),
+ )
+ return model.navigation[nextIndex] ?? null
+}
+
+export function samePointIdentity<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ left: ChartPoint | null,
+ right: ChartPoint | null,
+) {
+ return (
+ left === right ||
+ (left !== null &&
+ right !== null &&
+ left.key === right.key &&
+ left.markId === right.markId &&
+ left.datumIndex === right.datumIndex)
+ )
+}
+
+export function samePointReferences<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ left: readonly ChartPoint[],
+ right: readonly ChartPoint[],
+) {
+ return (
+ left.length === right.length &&
+ left.every((point, index) => point === right[index])
+ )
+}
+
+function resolveFocusStrategy<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ focus: ChartFocusMode | undefined,
+): ChartFocusStrategy | undefined {
+ if (typeof focus !== 'string') return focus
+ switch (focus) {
+ case 'nearest-x':
+ return focusNearestX
+ case 'nearest-y':
+ return focusNearestY
+ case 'group-x':
+ return focusX
+ case 'group-y':
+ return focusY
+ case 'nearest':
+ return undefined
+ }
+}
+
+function sceneOrder<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(points: readonly ChartPoint[]) {
+ return points
+ .map((point, index) => ({ point, index }))
+ .sort(
+ (left, right) =>
+ left.point.x - right.point.x ||
+ left.point.y - right.point.y ||
+ left.index - right.index,
+ )
+ .map(({ point }) => point)
+}
+
+function restoreFocusedPoint<
+ TDatum,
+ TXValue extends ChartValue,
+ TYValue extends ChartValue,
+>(
+ points: readonly ChartPoint[],
+ previous: ChartPoint,
+) {
+ const matches = points.filter((point) => point.key === previous.key)
+ if (matches.length < 2) return matches[0] ?? null
+
+ const datumType = typeof previous.datum
+ const hasReferenceIdentity =
+ previous.datum !== null &&
+ (datumType === 'object' || datumType === 'function')
+ if (hasReferenceIdentity) {
+ const sameDatum = matches.find((point) => point.datum === previous.datum)
+ if (sameDatum) return sameDatum
+ }
+
+ return (
+ matches.find(
+ (point) =>
+ point.markId === previous.markId &&
+ Object.is(point.group, previous.group) &&
+ chartValueEqual(point.xValue, previous.xValue) &&
+ chartValueEqual(point.yValue, previous.yValue),
+ ) ??
+ matches.find(
+ (point) =>
+ point.markId === previous.markId &&
+ point.datumIndex === previous.datumIndex,
+ ) ??
+ matches[0] ??
+ null
+ )
+}
+
+function chartValueEqual(left: ChartValue, right: ChartValue) {
+ return left instanceof Date && right instanceof Date
+ ? left.getTime() === right.getTime()
+ : Object.is(left, right)
+}
diff --git a/packages/react-native-charts/src/paint.test.ts b/packages/react-native-charts/src/paint.test.ts
new file mode 100644
index 00000000..6cce3707
--- /dev/null
+++ b/packages/react-native-charts/src/paint.test.ts
@@ -0,0 +1,43 @@
+import { describe, expect, it } from 'vitest'
+import { resolveNativePaint, resolveNativeSolidPaint } from './paint'
+
+describe('native paint resolution', () => {
+ it('resolves the browser-backed default theme tokens', () => {
+ const context = { color: '#102030' }
+
+ expect(resolveNativePaint('currentColor', context)).toBe('#102030')
+ expect(resolveNativePaint('CanvasText', context)).toBe('#102030')
+ expect(resolveNativePaint('var(--ts-chart-1, #2563eb)', context)).toBe(
+ '#2563eb',
+ )
+ expect(
+ resolveNativePaint(
+ 'var(--app-chart, var(--ts-chart-2, rgb(10, 20, 30)))',
+ context,
+ ),
+ ).toBe('rgb(10, 20, 30)')
+ })
+
+ it('uses the host color when an authored CSS variable has no fallback', () => {
+ expect(resolveNativePaint('var(--app-chart)', { color: '#abcdef' })).toBe(
+ '#abcdef',
+ )
+ })
+
+ it('preserves concrete native paints and resource references', () => {
+ const context = { color: '#102030' }
+
+ expect(resolveNativePaint('transparent', context)).toBe('transparent')
+ expect(resolveNativePaint('#fff', context)).toBe('#fff')
+ expect(resolveNativePaint('url(#gradient)', context)).toBe('url(#gradient)')
+ })
+
+ it('falls back to the host color where native views cannot use SVG resources', () => {
+ expect(
+ resolveNativeSolidPaint('url(#gradient)', { color: '#102030' }),
+ ).toBe('#102030')
+ expect(resolveNativeSolidPaint('#abcdef', { color: '#102030' })).toBe(
+ '#abcdef',
+ )
+ })
+})
diff --git a/packages/react-native-charts/src/paint.ts b/packages/react-native-charts/src/paint.ts
new file mode 100644
index 00000000..e382df8b
--- /dev/null
+++ b/packages/react-native-charts/src/paint.ts
@@ -0,0 +1,48 @@
+import type { ColorValue } from 'react-native'
+
+export interface NativePaintContext {
+ color: ColorValue
+}
+
+export type NativePaintResolver = (
+ paint: string,
+ context: NativePaintContext,
+) => ColorValue
+
+export function resolveNativePaint(
+ paint: string,
+ { color }: NativePaintContext,
+): ColorValue {
+ const value = paint.trim()
+ if (value === 'currentColor' || value === 'CanvasText') return color
+ if (!value.startsWith('var(') || !value.endsWith(')')) return value
+
+ const fallback = cssVariableFallback(value)
+ return fallback ? resolveNativePaint(fallback, { color }) : color
+}
+
+export function resolveNativeSolidPaint(
+ paint: string,
+ context: NativePaintContext,
+ resolvePaint: NativePaintResolver = resolveNativePaint,
+): ColorValue {
+ const resolved = resolvePaint(paint, context)
+ return typeof resolved === 'string' &&
+ resolved.trim().startsWith('url(') &&
+ resolved.trim().endsWith(')')
+ ? context.color
+ : resolved
+}
+
+function cssVariableFallback(value: string) {
+ let depth = 0
+ for (let index = 4; index < value.length - 1; index += 1) {
+ const character = value[index]
+ if (character === '(') depth += 1
+ if (character === ')') depth -= 1
+ if (character === ',' && depth === 0) {
+ return value.slice(index + 1, -1).trim()
+ }
+ }
+ return undefined
+}
diff --git a/packages/react-native-charts/src/tooltip-entry.native.ts b/packages/react-native-charts/src/tooltip-entry.native.ts
new file mode 100644
index 00000000..5a005128
--- /dev/null
+++ b/packages/react-native-charts/src/tooltip-entry.native.ts
@@ -0,0 +1 @@
+export * from './tooltip-entry'
diff --git a/packages/react-native-charts/src/tooltip-entry.ts b/packages/react-native-charts/src/tooltip-entry.ts
new file mode 100644
index 00000000..432e11b5
--- /dev/null
+++ b/packages/react-native-charts/src/tooltip-entry.ts
@@ -0,0 +1,7 @@
+export { tooltip } from './Tooltip'
+export type {
+ NativeChartTooltipComponent,
+ NativeChartTooltipExtension,
+ NativeChartTooltipProps,
+ NativeChartTooltipRenderContext,
+} from './Tooltip'
diff --git a/packages/react-native-charts/tsconfig.json b/packages/react-native-charts/tsconfig.json
new file mode 100644
index 00000000..136f244f
--- /dev/null
+++ b/packages/react-native-charts/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "lib": ["ES2022"],
+ "types": ["react", "react-native"]
+ },
+ "include": ["src/**/*.ts", "src/**/*.tsx"],
+ "exclude": ["src/**/*.test.ts", "src/**/*.test.tsx"]
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6b46f0e9..607e1af4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -36,7 +36,7 @@ importers:
version: link:packages/react
'@sveltejs/vite-plugin-svelte':
specifier: ^7.1.2
- version: 7.2.0(svelte@5.56.8)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 7.2.0(svelte@5.56.8)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
'@tanstack/charts':
specifier: workspace:*
version: link:packages/charts-core
@@ -52,6 +52,9 @@ importers:
'@tanstack/react-charts':
specifier: workspace:*
version: link:packages/react-charts
+ '@tanstack/react-native-charts':
+ specifier: workspace:*
+ version: link:packages/react-native-charts
'@types/d3-array':
specifier: ^3.2.2
version: 3.2.2
@@ -129,7 +132,7 @@ importers:
version: 1.0.5
'@vitejs/plugin-react':
specifier: ^6.0.1
- version: 6.0.4(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 6.0.4(babel-plugin-react-compiler@1.0.0)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
chart.js:
specifier: 4.5.1
version: 4.5.1
@@ -207,7 +210,7 @@ importers:
version: 22.7.5(debug@4.4.3(supports-color@10.2.2))
octane:
specifier: 0.1.13
- version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
playwright:
specifier: 1.62.0
version: 1.62.0
@@ -243,13 +246,13 @@ importers:
version: 3.0.1
vite:
specifier: ^8.0.16
- version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
vite-plugin-solid:
specifier: ^2.11.12
- version: 2.11.14(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 2.11.14(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
vitest:
specifier: ^4.1.9
- version: 4.1.10(@types/node@25.9.5)(jsdom@29.1.1(@noble/hashes@2.2.0))(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 4.1.10(@types/node@25.9.5)(jsdom@29.1.1(@noble/hashes@2.2.0))(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
world-atlas:
specifier: 2.0.2
version: 2.0.2
@@ -257,6 +260,40 @@ importers:
specifier: 4.103.0
version: 4.103.0
+ examples/charts-expo:
+ dependencies:
+ '@tanstack/charts':
+ specifier: workspace:*
+ version: link:../../packages/charts-core
+ '@tanstack/react-native-charts':
+ specifier: workspace:*
+ version: link:../../packages/react-native-charts
+ d3-scale:
+ specifier: 4.0.2
+ version: 4.0.2
+ expo:
+ specifier: ~57.0.9
+ version: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ react:
+ specifier: 19.2.3
+ version: 19.2.3
+ react-native:
+ specifier: 0.86.2
+ version: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ react-native-svg:
+ specifier: 15.15.4
+ version: 15.15.4(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ devDependencies:
+ '@types/d3-scale':
+ specifier: ^4.0.9
+ version: 4.0.9
+ '@types/react':
+ specifier: ~19.2.2
+ version: 19.2.17
+ typescript:
+ specifier: ~6.0.3
+ version: 6.0.3
+
examples/charts-octane:
dependencies:
'@charts-poc/demo-data':
@@ -279,7 +316,7 @@ importers:
version: 3.2.0
octane:
specifier: 0.1.13
- version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
devDependencies:
'@types/d3-array':
specifier: ^3.2.2
@@ -292,7 +329,7 @@ importers:
version: 3.1.8
vite:
specifier: ^8.0.16
- version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
examples/charts-react:
dependencies:
@@ -332,10 +369,65 @@ importers:
version: 3.1.8
'@vitejs/plugin-react':
specifier: ^6.0.1
- version: 6.0.4(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 6.0.4(babel-plugin-react-compiler@1.0.0)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
vite:
specifier: ^8.0.16
- version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
+
+ examples/charts-react-native:
+ dependencies:
+ '@tanstack/charts':
+ specifier: workspace:*
+ version: link:../../packages/charts-core
+ '@tanstack/react-native-charts':
+ specifier: workspace:*
+ version: link:../../packages/react-native-charts
+ d3-scale:
+ specifier: 4.0.2
+ version: 4.0.2
+ react:
+ specifier: 19.2.3
+ version: 19.2.3
+ react-native:
+ specifier: 0.86.2
+ version: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ react-native-svg:
+ specifier: 15.15.5
+ version: 15.15.5(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ devDependencies:
+ '@babel/core':
+ specifier: ^7.25.2
+ version: 7.29.7(supports-color@10.2.2)
+ '@babel/runtime':
+ specifier: ^7.25.0
+ version: 7.29.7
+ '@react-native-community/cli':
+ specifier: 20.1.0
+ version: 20.1.0(supports-color@10.2.2)(typescript@6.0.3)
+ '@react-native-community/cli-platform-android':
+ specifier: 20.1.0
+ version: 20.1.0
+ '@react-native-community/cli-platform-ios':
+ specifier: 20.1.0
+ version: 20.1.0
+ '@react-native/babel-preset':
+ specifier: 0.86.2
+ version: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@react-native/metro-config':
+ specifier: 0.86.2
+ version: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@react-native/typescript-config':
+ specifier: 0.86.2
+ version: 0.86.2
+ '@types/d3-scale':
+ specifier: ^4.0.9
+ version: 4.0.9
+ '@types/react':
+ specifier: ~19.2.2
+ version: 19.2.17
+ typescript:
+ specifier: ~6.0.3
+ version: 6.0.3
examples/conformance:
dependencies:
@@ -375,7 +467,7 @@ importers:
version: 3.1.8
vite:
specifier: ^8.0.16
- version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
examples/octane:
dependencies:
@@ -390,11 +482,11 @@ importers:
version: link:../../packages/octane
octane:
specifier: 0.1.13
- version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
devDependencies:
vite:
specifier: ^8.0.16
- version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
examples/react:
dependencies:
@@ -416,10 +508,10 @@ importers:
devDependencies:
'@vitejs/plugin-react':
specifier: ^6.0.1
- version: 6.0.4(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 6.0.4(babel-plugin-react-compiler@1.0.0)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
vite:
specifier: ^8.0.16
- version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
examples/sandbox:
dependencies:
@@ -459,10 +551,10 @@ importers:
version: 3.1.8
'@vitejs/plugin-react':
specifier: ^6.0.1
- version: 6.0.4(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 6.0.4(babel-plugin-react-compiler@1.0.0)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
vite:
specifier: ^8.0.16
- version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ version: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
packages/alpine-charts:
dependencies:
@@ -638,7 +730,7 @@ importers:
version: link:../plot
octane:
specifier: ^0.1.13
- version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
packages/octane-charts:
dependencies:
@@ -647,7 +739,7 @@ importers:
version: link:../charts-core
octane:
specifier: ^0.1.13
- version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
devDependencies:
'@types/d3-scale':
specifier: ^4.0.9
@@ -709,6 +801,22 @@ importers:
specifier: 4.0.2
version: 4.0.2
+ packages/react-native-charts:
+ dependencies:
+ '@tanstack/charts':
+ specifier: workspace:*
+ version: link:../charts-core
+ devDependencies:
+ react:
+ specifier: 19.2.3
+ version: 19.2.3
+ react-native:
+ specifier: 0.86.2
+ version: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ react-native-svg:
+ specifier: 15.15.5
+ version: 15.15.5(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+
packages/solid-charts:
dependencies:
'@tanstack/charts':
@@ -720,7 +828,7 @@ importers:
version: 1.9.14
vite-plugin-solid:
specifier: ^2.11.12
- version: 2.11.14(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 2.11.14(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
packages/svelte-charts:
dependencies:
@@ -733,7 +841,7 @@ importers:
version: 2.5.8(svelte@5.56.8)(typescript@6.0.3)
'@sveltejs/vite-plugin-svelte':
specifier: ^7.1.2
- version: 7.2.0(svelte@5.56.8)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ version: 7.2.0(svelte@5.56.8)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
svelte:
specifier: ^5.56.2
version: 5.56.8
@@ -891,6 +999,13 @@ packages:
}
engines: { node: '>=6.9.0' }
+ '@babel/helper-annotate-as-pure@7.29.7':
+ resolution:
+ {
+ integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==,
+ }
+ engines: { node: '>=6.9.0' }
+
'@babel/helper-compilation-targets@7.29.7':
resolution:
{
@@ -898,6 +1013,32 @@ packages:
}
engines: { node: '>=6.9.0' }
+ '@babel/helper-create-class-features-plugin@7.29.7':
+ resolution:
+ {
+ integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==,
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-create-regexp-features-plugin@7.29.7':
+ resolution:
+ {
+ integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==,
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-define-polyfill-provider@0.6.8':
+ resolution:
+ {
+ integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==,
+ }
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
'@babel/helper-globals@7.29.7':
resolution:
{
@@ -905,6 +1046,13 @@ packages:
}
engines: { node: '>=6.9.0' }
+ '@babel/helper-member-expression-to-functions@7.29.7':
+ resolution:
+ {
+ integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==,
+ }
+ engines: { node: '>=6.9.0' }
+
'@babel/helper-module-imports@7.18.6':
resolution:
{
@@ -928,6 +1076,13 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-optimise-call-expression@7.29.7':
+ resolution:
+ {
+ integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==,
+ }
+ engines: { node: '>=6.9.0' }
+
'@babel/helper-plugin-utils@7.29.7':
resolution:
{
@@ -935,6 +1090,31 @@ packages:
}
engines: { node: '>=6.9.0' }
+ '@babel/helper-remap-async-to-generator@7.29.7':
+ resolution:
+ {
+ integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==,
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-replace-supers@7.29.7':
+ resolution:
+ {
+ integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==,
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.29.7':
+ resolution:
+ {
+ integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==,
+ }
+ engines: { node: '>=6.9.0' }
+
'@babel/helper-string-parser@7.29.7':
resolution:
{
@@ -956,6 +1136,13 @@ packages:
}
engines: { node: '>=6.9.0' }
+ '@babel/helper-wrap-function@7.29.7':
+ resolution:
+ {
+ integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==,
+ }
+ engines: { node: '>=6.9.0' }
+
'@babel/helpers@7.29.7':
resolution:
{
@@ -971,5661 +1158,8537 @@ packages:
engines: { node: '>=6.0.0' }
hasBin: true
- '@babel/plugin-syntax-jsx@7.29.7':
+ '@babel/plugin-proposal-decorators@7.29.7':
resolution:
{
- integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==,
+ integrity: sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==,
}
engines: { node: '>=6.9.0' }
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/runtime@7.29.7':
+ '@babel/plugin-proposal-export-default-from@7.29.7':
resolution:
{
- integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==,
+ integrity: sha512-p+G5BNXDcy3bOXplhY4HybQ1GxH3i2Tppmdm/3epyRu2VgJJZuUlZ61MqRTg582Q7ZLBdP7fePYvsumSEkMxcQ==,
}
engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@babel/template@7.29.7':
+ '@babel/plugin-syntax-decorators@7.29.7':
resolution:
{
- integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==,
+ integrity: sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==,
}
engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@babel/traverse@7.29.7':
+ '@babel/plugin-syntax-dynamic-import@7.8.3':
resolution:
{
- integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==,
+ integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==,
}
- engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@babel/types@7.29.7':
+ '@babel/plugin-syntax-export-default-from@7.29.7':
resolution:
{
- integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==,
+ integrity: sha512-foag0BB37ROhdeIX9O8G0jX7hw0UekJc04cHMrYLOnrErsnBKqJGHJ8eDRpoCFZBvEPPygmmtw4qyU97qa4oOw==,
}
engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@bramus/specificity@2.4.2':
+ '@babel/plugin-syntax-flow@7.29.7':
resolution:
{
- integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==,
+ integrity: sha512-ajMX6QPcyomotqwpzhkYGxcK2i/us0rs1Qo9QvUpa+Fca0FTmqrzKrctoIYLMxcOhGZldGT/BAVkRGTWBiR8gQ==,
}
- hasBin: true
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/apply-release-plan@7.1.1':
+ '@babel/plugin-syntax-jsx@7.29.7':
resolution:
{
- integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==,
+ integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/assemble-release-plan@6.0.10':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
resolution:
{
- integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==,
+ integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==,
}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/changelog-git@0.2.1':
+ '@babel/plugin-syntax-optional-chaining@7.8.3':
resolution:
{
- integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==,
+ integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==,
}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/changelog-github@0.7.0':
+ '@babel/plugin-syntax-typescript@7.29.7':
resolution:
{
- integrity: sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA==,
+ integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/cli@2.31.1':
+ '@babel/plugin-transform-async-generator-functions@7.29.7':
resolution:
{
- integrity: sha512-uO05WTcRBwuVOJVSW8Cmpqw6q0WDL53ajGCMyszutvOe5toOnunbpM4jZzf+qxBOz7i0AzopZ8diBuewjmF40w==,
+ integrity: sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==,
}
- hasBin: true
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/config@3.1.4':
+ '@babel/plugin-transform-async-to-generator@7.29.7':
resolution:
{
- integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==,
+ integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/errors@0.2.0':
+ '@babel/plugin-transform-block-scoping@7.29.7':
resolution:
{
- integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==,
+ integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/get-dependents-graph@2.1.4':
+ '@babel/plugin-transform-class-properties@7.29.7':
resolution:
{
- integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==,
+ integrity: sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/get-github-info@0.8.0':
+ '@babel/plugin-transform-class-static-block@7.29.7':
resolution:
{
- integrity: sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==,
+ integrity: sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.12.0
- '@changesets/get-release-plan@4.0.16':
+ '@babel/plugin-transform-classes@7.29.7':
resolution:
{
- integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==,
+ integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/get-version-range-type@0.4.0':
+ '@babel/plugin-transform-destructuring@7.29.7':
resolution:
{
- integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==,
+ integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/git@3.0.4':
+ '@babel/plugin-transform-export-namespace-from@7.29.7':
resolution:
{
- integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==,
+ integrity: sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/logger@0.1.1':
+ '@babel/plugin-transform-flow-strip-types@7.29.7':
resolution:
{
- integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==,
+ integrity: sha512-wRHeUjUjCZnMHmiO5bRgjFLcoEh7JyTdByOW11ahhwNa4V0bmeGEaIvt51yq0zQp2yWIpqfxXXPyUP6GFJZHOQ==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/parse@0.4.3':
+ '@babel/plugin-transform-for-of@7.29.7':
resolution:
{
- integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==,
+ integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/pre@2.0.2':
+ '@babel/plugin-transform-logical-assignment-operators@7.29.7':
resolution:
{
- integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==,
+ integrity: sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/read@0.6.7':
+ '@babel/plugin-transform-modules-commonjs@7.29.7':
resolution:
{
- integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==,
+ integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/should-skip-package@0.1.2':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.29.7':
resolution:
{
- integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==,
+ integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
- '@changesets/types@4.1.0':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.29.7':
resolution:
{
- integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==,
+ integrity: sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/types@6.1.0':
+ '@babel/plugin-transform-object-rest-spread@7.29.7':
resolution:
{
- integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==,
+ integrity: sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@changesets/write@0.4.0':
+ '@babel/plugin-transform-optional-catch-binding@7.29.7':
resolution:
{
- integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==,
+ integrity: sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@cloudflare/kv-asset-handler@0.5.0':
+ '@babel/plugin-transform-optional-chaining@7.29.7':
resolution:
{
- integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==,
+ integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==,
}
- engines: { node: '>=22.0.0' }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@cloudflare/unenv-preset@2.16.1':
+ '@babel/plugin-transform-parameters@7.29.7':
resolution:
{
- integrity: sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==,
+ integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==,
}
+ engines: { node: '>=6.9.0' }
peerDependencies:
- unenv: 2.0.0-rc.24
- workerd: '>1.20260305.0 <2.0.0-0'
- peerDependenciesMeta:
- workerd:
- optional: true
+ '@babel/core': ^7.0.0-0
- '@cloudflare/workerd-darwin-64@1.20260617.1':
+ '@babel/plugin-transform-private-methods@7.29.7':
resolution:
{
- integrity: sha512-jWwmgEVVWbsHNrLSNXzwjJaH90VzRxq1cWkQFUidxyeUPnMxemeNE8I9qFAfrpzGgE11e9sKDcE3ettJW08swQ==,
+ integrity: sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==,
}
- engines: { node: '>=16' }
- cpu: [x64]
- os: [darwin]
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@cloudflare/workerd-darwin-arm64@1.20260617.1':
+ '@babel/plugin-transform-private-property-in-object@7.29.7':
resolution:
{
- integrity: sha512-LHH7b565g9znfCUOkwbec6FG2rmRbsgCy6aJiU9KN662mNheWl5sw/iKleiFSiljPKQQP3HkjnC/NSkdgi/aSA==,
+ integrity: sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==,
}
- engines: { node: '>=16' }
- cpu: [arm64]
- os: [darwin]
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@cloudflare/workerd-linux-64@1.20260617.1':
+ '@babel/plugin-transform-react-display-name@7.29.7':
resolution:
{
- integrity: sha512-FMnaAKXe4Cfd8TQurCVd9fs2XQVBFRCsP+Id/SRdUv89MlwYu9zXfoyx6BxM+brPTIUK38SHbo8iaxiwzLi9JQ==,
+ integrity: sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==,
}
- engines: { node: '>=16' }
- cpu: [x64]
- os: [linux]
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@cloudflare/workerd-linux-arm64@1.20260617.1':
+ '@babel/plugin-transform-react-jsx-development@7.29.7':
resolution:
{
- integrity: sha512-MRoifFYcqbxxIIQy7PqO5tFY/qPFSnjXzakWl0sO93l+HLyG35jRAgOi6jfqa4kBxc7gKKtH861DcewjxUfkjA==,
+ integrity: sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==,
}
- engines: { node: '>=16' }
- cpu: [arm64]
- os: [linux]
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@cloudflare/workerd-windows-64@1.20260617.1':
+ '@babel/plugin-transform-react-jsx-self@7.29.7':
resolution:
{
- integrity: sha512-rgBV9wQrv0OSKgCTTbhFUFY3sLGNANZ88aqaLvtmEn2gmbFVb1J4PDGochVUdB7NSEp4D/ghHva6/8SZmbONpw==,
+ integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==,
}
- engines: { node: '>=16' }
- cpu: [x64]
- os: [win32]
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@cspotcode/source-map-support@0.8.1':
+ '@babel/plugin-transform-react-jsx-source@7.29.7':
resolution:
{
- integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==,
+ integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==,
}
- engines: { node: '>=12' }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@csstools/color-helpers@6.1.0':
+ '@babel/plugin-transform-react-jsx@7.29.7':
resolution:
{
- integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==,
+ integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==,
}
- engines: { node: '>=20.19.0' }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@csstools/css-calc@3.3.0':
+ '@babel/plugin-transform-react-pure-annotations@7.29.7':
resolution:
{
- integrity: sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==,
+ integrity: sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==,
}
- engines: { node: '>=20.19.0' }
+ engines: { node: '>=6.9.0' }
peerDependencies:
- '@csstools/css-parser-algorithms': ^4.0.0
- '@csstools/css-tokenizer': ^4.0.0
+ '@babel/core': ^7.0.0-0
- '@csstools/css-color-parser@4.1.10':
+ '@babel/plugin-transform-regenerator@7.29.7':
resolution:
{
- integrity: sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==,
+ integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==,
}
- engines: { node: '>=20.19.0' }
+ engines: { node: '>=6.9.0' }
peerDependencies:
- '@csstools/css-parser-algorithms': ^4.0.0
- '@csstools/css-tokenizer': ^4.0.0
+ '@babel/core': ^7.0.0-0
- '@csstools/css-parser-algorithms@4.0.0':
+ '@babel/plugin-transform-runtime@7.29.7':
resolution:
{
- integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==,
+ integrity: sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==,
}
- engines: { node: '>=20.19.0' }
+ engines: { node: '>=6.9.0' }
peerDependencies:
- '@csstools/css-tokenizer': ^4.0.0
+ '@babel/core': ^7.0.0-0
- '@csstools/css-syntax-patches-for-csstree@1.1.7':
+ '@babel/plugin-transform-typescript@7.29.7':
resolution:
{
- integrity: sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==,
+ integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==,
}
+ engines: { node: '>=6.9.0' }
peerDependencies:
- css-tree: ^3.2.1
- peerDependenciesMeta:
- css-tree:
- optional: true
+ '@babel/core': ^7.0.0-0
- '@csstools/css-tokenizer@4.0.0':
+ '@babel/plugin-transform-unicode-regex@7.29.7':
resolution:
{
- integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==,
+ integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==,
}
- engines: { node: '>=20.19.0' }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@emnapi/core@1.11.1':
+ '@babel/preset-typescript@7.29.7':
resolution:
{
- integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==,
+ integrity: sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==,
}
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@emnapi/core@1.4.5':
+ '@babel/runtime@7.29.7':
resolution:
{
- integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==,
+ integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==,
}
+ engines: { node: '>=6.9.0' }
- '@emnapi/runtime@1.11.1':
+ '@babel/template@7.29.7':
resolution:
{
- integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==,
+ integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==,
}
+ engines: { node: '>=6.9.0' }
- '@emnapi/runtime@1.4.5':
+ '@babel/traverse@7.29.7':
resolution:
{
- integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==,
+ integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==,
}
+ engines: { node: '>=6.9.0' }
- '@emnapi/wasi-threads@1.0.4':
+ '@babel/types@7.29.7':
resolution:
{
- integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==,
+ integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==,
}
+ engines: { node: '>=6.9.0' }
- '@emnapi/wasi-threads@1.2.2':
+ '@bramus/specificity@2.4.2':
resolution:
{
- integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==,
+ integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==,
}
+ hasBin: true
- '@esbuild/aix-ppc64@0.27.7':
+ '@changesets/apply-release-plan@7.1.1':
resolution:
{
- integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==,
+ integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==,
}
- engines: { node: '>=18' }
- cpu: [ppc64]
- os: [aix]
- '@esbuild/aix-ppc64@0.28.1':
+ '@changesets/assemble-release-plan@6.0.10':
resolution:
{
- integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==,
+ integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==,
}
- engines: { node: '>=18' }
- cpu: [ppc64]
- os: [aix]
- '@esbuild/android-arm64@0.27.7':
+ '@changesets/changelog-git@0.2.1':
resolution:
{
- integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==,
+ integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [android]
- '@esbuild/android-arm64@0.28.1':
+ '@changesets/changelog-github@0.7.0':
resolution:
{
- integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==,
+ integrity: sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [android]
- '@esbuild/android-arm@0.27.7':
+ '@changesets/cli@2.31.1':
resolution:
{
- integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==,
+ integrity: sha512-uO05WTcRBwuVOJVSW8Cmpqw6q0WDL53ajGCMyszutvOe5toOnunbpM4jZzf+qxBOz7i0AzopZ8diBuewjmF40w==,
}
- engines: { node: '>=18' }
- cpu: [arm]
- os: [android]
+ hasBin: true
- '@esbuild/android-arm@0.28.1':
+ '@changesets/config@3.1.4':
resolution:
{
- integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==,
+ integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==,
}
- engines: { node: '>=18' }
- cpu: [arm]
- os: [android]
- '@esbuild/android-x64@0.27.7':
+ '@changesets/errors@0.2.0':
resolution:
{
- integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==,
+ integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [android]
- '@esbuild/android-x64@0.28.1':
+ '@changesets/get-dependents-graph@2.1.4':
resolution:
{
- integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==,
+ integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [android]
- '@esbuild/darwin-arm64@0.27.7':
+ '@changesets/get-github-info@0.8.0':
resolution:
{
- integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==,
+ integrity: sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [darwin]
- '@esbuild/darwin-arm64@0.28.1':
+ '@changesets/get-release-plan@4.0.16':
resolution:
{
- integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==,
+ integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [darwin]
- '@esbuild/darwin-x64@0.27.7':
+ '@changesets/get-version-range-type@0.4.0':
resolution:
{
- integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==,
+ integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [darwin]
- '@esbuild/darwin-x64@0.28.1':
+ '@changesets/git@3.0.4':
resolution:
{
- integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==,
+ integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [darwin]
- '@esbuild/freebsd-arm64@0.27.7':
+ '@changesets/logger@0.1.1':
resolution:
{
- integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==,
+ integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [freebsd]
- '@esbuild/freebsd-arm64@0.28.1':
+ '@changesets/parse@0.4.3':
resolution:
{
- integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==,
+ integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [freebsd]
- '@esbuild/freebsd-x64@0.27.7':
+ '@changesets/pre@2.0.2':
resolution:
{
- integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==,
+ integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [freebsd]
- '@esbuild/freebsd-x64@0.28.1':
+ '@changesets/read@0.6.7':
resolution:
{
- integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==,
+ integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [freebsd]
- '@esbuild/linux-arm64@0.27.7':
+ '@changesets/should-skip-package@0.1.2':
resolution:
{
- integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==,
+ integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [linux]
- '@esbuild/linux-arm64@0.28.1':
+ '@changesets/types@4.1.0':
resolution:
{
- integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==,
+ integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [linux]
- '@esbuild/linux-arm@0.27.7':
+ '@changesets/types@6.1.0':
resolution:
{
- integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==,
+ integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==,
}
- engines: { node: '>=18' }
- cpu: [arm]
- os: [linux]
- '@esbuild/linux-arm@0.28.1':
+ '@changesets/write@0.4.0':
resolution:
{
- integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==,
+ integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==,
}
- engines: { node: '>=18' }
- cpu: [arm]
- os: [linux]
- '@esbuild/linux-ia32@0.27.7':
+ '@cloudflare/kv-asset-handler@0.5.0':
resolution:
{
- integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==,
+ integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==,
}
- engines: { node: '>=18' }
- cpu: [ia32]
- os: [linux]
+ engines: { node: '>=22.0.0' }
- '@esbuild/linux-ia32@0.28.1':
+ '@cloudflare/unenv-preset@2.16.1':
resolution:
{
- integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==,
+ integrity: sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==,
}
- engines: { node: '>=18' }
- cpu: [ia32]
- os: [linux]
+ peerDependencies:
+ unenv: 2.0.0-rc.24
+ workerd: '>1.20260305.0 <2.0.0-0'
+ peerDependenciesMeta:
+ workerd:
+ optional: true
- '@esbuild/linux-loong64@0.27.7':
+ '@cloudflare/workerd-darwin-64@1.20260617.1':
resolution:
{
- integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==,
+ integrity: sha512-jWwmgEVVWbsHNrLSNXzwjJaH90VzRxq1cWkQFUidxyeUPnMxemeNE8I9qFAfrpzGgE11e9sKDcE3ettJW08swQ==,
}
- engines: { node: '>=18' }
- cpu: [loong64]
- os: [linux]
+ engines: { node: '>=16' }
+ cpu: [x64]
+ os: [darwin]
- '@esbuild/linux-loong64@0.28.1':
+ '@cloudflare/workerd-darwin-arm64@1.20260617.1':
resolution:
{
- integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==,
+ integrity: sha512-LHH7b565g9znfCUOkwbec6FG2rmRbsgCy6aJiU9KN662mNheWl5sw/iKleiFSiljPKQQP3HkjnC/NSkdgi/aSA==,
}
- engines: { node: '>=18' }
- cpu: [loong64]
- os: [linux]
+ engines: { node: '>=16' }
+ cpu: [arm64]
+ os: [darwin]
- '@esbuild/linux-mips64el@0.27.7':
+ '@cloudflare/workerd-linux-64@1.20260617.1':
resolution:
{
- integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==,
+ integrity: sha512-FMnaAKXe4Cfd8TQurCVd9fs2XQVBFRCsP+Id/SRdUv89MlwYu9zXfoyx6BxM+brPTIUK38SHbo8iaxiwzLi9JQ==,
}
- engines: { node: '>=18' }
- cpu: [mips64el]
+ engines: { node: '>=16' }
+ cpu: [x64]
os: [linux]
- '@esbuild/linux-mips64el@0.28.1':
+ '@cloudflare/workerd-linux-arm64@1.20260617.1':
resolution:
{
- integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==,
+ integrity: sha512-MRoifFYcqbxxIIQy7PqO5tFY/qPFSnjXzakWl0sO93l+HLyG35jRAgOi6jfqa4kBxc7gKKtH861DcewjxUfkjA==,
}
- engines: { node: '>=18' }
- cpu: [mips64el]
+ engines: { node: '>=16' }
+ cpu: [arm64]
os: [linux]
- '@esbuild/linux-ppc64@0.27.7':
+ '@cloudflare/workerd-windows-64@1.20260617.1':
resolution:
{
- integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==,
+ integrity: sha512-rgBV9wQrv0OSKgCTTbhFUFY3sLGNANZ88aqaLvtmEn2gmbFVb1J4PDGochVUdB7NSEp4D/ghHva6/8SZmbONpw==,
}
- engines: { node: '>=18' }
- cpu: [ppc64]
- os: [linux]
+ engines: { node: '>=16' }
+ cpu: [x64]
+ os: [win32]
- '@esbuild/linux-ppc64@0.28.1':
+ '@cspotcode/source-map-support@0.8.1':
resolution:
{
- integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==,
+ integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==,
}
- engines: { node: '>=18' }
- cpu: [ppc64]
- os: [linux]
+ engines: { node: '>=12' }
- '@esbuild/linux-riscv64@0.27.7':
+ '@csstools/color-helpers@6.1.0':
resolution:
{
- integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==,
+ integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==,
}
- engines: { node: '>=18' }
- cpu: [riscv64]
- os: [linux]
+ engines: { node: '>=20.19.0' }
- '@esbuild/linux-riscv64@0.28.1':
+ '@csstools/css-calc@3.3.0':
resolution:
{
- integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==,
+ integrity: sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==,
}
- engines: { node: '>=18' }
- cpu: [riscv64]
- os: [linux]
+ engines: { node: '>=20.19.0' }
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^4.0.0
+ '@csstools/css-tokenizer': ^4.0.0
- '@esbuild/linux-s390x@0.27.7':
+ '@csstools/css-color-parser@4.1.10':
resolution:
{
- integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==,
+ integrity: sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==,
}
- engines: { node: '>=18' }
- cpu: [s390x]
- os: [linux]
+ engines: { node: '>=20.19.0' }
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^4.0.0
+ '@csstools/css-tokenizer': ^4.0.0
- '@esbuild/linux-s390x@0.28.1':
+ '@csstools/css-parser-algorithms@4.0.0':
resolution:
{
- integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==,
+ integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==,
}
- engines: { node: '>=18' }
- cpu: [s390x]
- os: [linux]
+ engines: { node: '>=20.19.0' }
+ peerDependencies:
+ '@csstools/css-tokenizer': ^4.0.0
- '@esbuild/linux-x64@0.27.7':
+ '@csstools/css-syntax-patches-for-csstree@1.1.7':
resolution:
{
- integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==,
+ integrity: sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [linux]
+ peerDependencies:
+ css-tree: ^3.2.1
+ peerDependenciesMeta:
+ css-tree:
+ optional: true
- '@esbuild/linux-x64@0.28.1':
+ '@csstools/css-tokenizer@4.0.0':
resolution:
{
- integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==,
+ integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [linux]
+ engines: { node: '>=20.19.0' }
- '@esbuild/netbsd-arm64@0.27.7':
+ '@emnapi/core@1.11.1':
resolution:
{
- integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==,
+ integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [netbsd]
- '@esbuild/netbsd-arm64@0.28.1':
+ '@emnapi/core@1.4.5':
resolution:
{
- integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==,
+ integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [netbsd]
- '@esbuild/netbsd-x64@0.27.7':
+ '@emnapi/runtime@1.11.1':
resolution:
{
- integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==,
+ integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [netbsd]
- '@esbuild/netbsd-x64@0.28.1':
+ '@emnapi/runtime@1.4.5':
resolution:
{
- integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==,
+ integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==,
}
- engines: { node: '>=18' }
- cpu: [x64]
- os: [netbsd]
- '@esbuild/openbsd-arm64@0.27.7':
+ '@emnapi/wasi-threads@1.0.4':
resolution:
{
- integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==,
+ integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [openbsd]
- '@esbuild/openbsd-arm64@0.28.1':
+ '@emnapi/wasi-threads@1.2.2':
resolution:
{
- integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==,
+ integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==,
}
- engines: { node: '>=18' }
- cpu: [arm64]
- os: [openbsd]
- '@esbuild/openbsd-x64@0.27.7':
+ '@esbuild/aix-ppc64@0.27.7':
resolution:
{
- integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==,
+ integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==,
}
engines: { node: '>=18' }
- cpu: [x64]
- os: [openbsd]
+ cpu: [ppc64]
+ os: [aix]
- '@esbuild/openbsd-x64@0.28.1':
+ '@esbuild/aix-ppc64@0.28.1':
resolution:
{
- integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==,
+ integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==,
}
engines: { node: '>=18' }
- cpu: [x64]
- os: [openbsd]
+ cpu: [ppc64]
+ os: [aix]
- '@esbuild/openharmony-arm64@0.27.7':
+ '@esbuild/android-arm64@0.27.7':
resolution:
{
- integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==,
+ integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==,
}
engines: { node: '>=18' }
cpu: [arm64]
- os: [openharmony]
+ os: [android]
- '@esbuild/openharmony-arm64@0.28.1':
+ '@esbuild/android-arm64@0.28.1':
resolution:
{
- integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==,
+ integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==,
}
engines: { node: '>=18' }
cpu: [arm64]
- os: [openharmony]
+ os: [android]
- '@esbuild/sunos-x64@0.27.7':
+ '@esbuild/android-arm@0.27.7':
resolution:
{
- integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==,
+ integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==,
}
engines: { node: '>=18' }
- cpu: [x64]
- os: [sunos]
+ cpu: [arm]
+ os: [android]
- '@esbuild/sunos-x64@0.28.1':
+ '@esbuild/android-arm@0.28.1':
resolution:
{
- integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==,
+ integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==,
}
engines: { node: '>=18' }
- cpu: [x64]
- os: [sunos]
+ cpu: [arm]
+ os: [android]
- '@esbuild/win32-arm64@0.27.7':
+ '@esbuild/android-x64@0.27.7':
resolution:
{
- integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==,
+ integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==,
}
engines: { node: '>=18' }
- cpu: [arm64]
- os: [win32]
+ cpu: [x64]
+ os: [android]
- '@esbuild/win32-arm64@0.28.1':
+ '@esbuild/android-x64@0.28.1':
resolution:
{
- integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==,
+ integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==,
}
engines: { node: '>=18' }
- cpu: [arm64]
- os: [win32]
+ cpu: [x64]
+ os: [android]
- '@esbuild/win32-ia32@0.27.7':
+ '@esbuild/darwin-arm64@0.27.7':
resolution:
{
- integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==,
+ integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==,
}
engines: { node: '>=18' }
- cpu: [ia32]
- os: [win32]
+ cpu: [arm64]
+ os: [darwin]
- '@esbuild/win32-ia32@0.28.1':
+ '@esbuild/darwin-arm64@0.28.1':
resolution:
{
- integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==,
+ integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==,
}
engines: { node: '>=18' }
- cpu: [ia32]
- os: [win32]
+ cpu: [arm64]
+ os: [darwin]
- '@esbuild/win32-x64@0.27.7':
+ '@esbuild/darwin-x64@0.27.7':
resolution:
{
- integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==,
+ integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==,
}
engines: { node: '>=18' }
cpu: [x64]
- os: [win32]
+ os: [darwin]
- '@esbuild/win32-x64@0.28.1':
+ '@esbuild/darwin-x64@0.28.1':
resolution:
{
- integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==,
+ integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==,
}
engines: { node: '>=18' }
cpu: [x64]
- os: [win32]
+ os: [darwin]
- '@exodus/bytes@1.15.1':
+ '@esbuild/freebsd-arm64@0.27.7':
resolution:
{
- integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==,
+ integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==,
}
- engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 }
- peerDependencies:
- '@noble/hashes': ^1.8.0 || ^2.0.0
- peerDependenciesMeta:
- '@noble/hashes':
- optional: true
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [freebsd]
- '@img/colour@1.1.0':
+ '@esbuild/freebsd-arm64@0.28.1':
resolution:
{
- integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==,
+ integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==,
}
engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [freebsd]
- '@img/sharp-darwin-arm64@0.34.5':
+ '@esbuild/freebsd-x64@0.27.7':
resolution:
{
- integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==,
+ integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- cpu: [arm64]
- os: [darwin]
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [freebsd]
- '@img/sharp-darwin-x64@0.34.5':
+ '@esbuild/freebsd-x64@0.28.1':
resolution:
{
- integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==,
+ integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ engines: { node: '>=18' }
cpu: [x64]
- os: [darwin]
+ os: [freebsd]
- '@img/sharp-libvips-darwin-arm64@1.2.4':
+ '@esbuild/linux-arm64@0.27.7':
resolution:
{
- integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==,
+ integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==,
}
+ engines: { node: '>=18' }
cpu: [arm64]
- os: [darwin]
+ os: [linux]
- '@img/sharp-libvips-darwin-x64@1.2.4':
+ '@esbuild/linux-arm64@0.28.1':
resolution:
{
- integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==,
+ integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==,
}
- cpu: [x64]
- os: [darwin]
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [linux]
- '@img/sharp-libvips-linux-arm64@1.2.4':
+ '@esbuild/linux-arm@0.27.7':
resolution:
{
- integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==,
+ integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==,
}
- cpu: [arm64]
+ engines: { node: '>=18' }
+ cpu: [arm]
os: [linux]
- libc: [glibc]
- '@img/sharp-libvips-linux-arm@1.2.4':
+ '@esbuild/linux-arm@0.28.1':
resolution:
{
- integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==,
+ integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==,
}
+ engines: { node: '>=18' }
cpu: [arm]
os: [linux]
- libc: [glibc]
- '@img/sharp-libvips-linux-ppc64@1.2.4':
+ '@esbuild/linux-ia32@0.27.7':
resolution:
{
- integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==,
+ integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==,
}
- cpu: [ppc64]
+ engines: { node: '>=18' }
+ cpu: [ia32]
os: [linux]
- libc: [glibc]
- '@img/sharp-libvips-linux-riscv64@1.2.4':
+ '@esbuild/linux-ia32@0.28.1':
resolution:
{
- integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==,
+ integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==,
}
- cpu: [riscv64]
+ engines: { node: '>=18' }
+ cpu: [ia32]
os: [linux]
- libc: [glibc]
- '@img/sharp-libvips-linux-s390x@1.2.4':
+ '@esbuild/linux-loong64@0.27.7':
resolution:
{
- integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==,
+ integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==,
}
- cpu: [s390x]
+ engines: { node: '>=18' }
+ cpu: [loong64]
os: [linux]
- libc: [glibc]
- '@img/sharp-libvips-linux-x64@1.2.4':
+ '@esbuild/linux-loong64@0.28.1':
resolution:
{
- integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==,
+ integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==,
}
- cpu: [x64]
+ engines: { node: '>=18' }
+ cpu: [loong64]
os: [linux]
- libc: [glibc]
- '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
+ '@esbuild/linux-mips64el@0.27.7':
resolution:
{
- integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==,
+ integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==,
}
- cpu: [arm64]
+ engines: { node: '>=18' }
+ cpu: [mips64el]
os: [linux]
- libc: [musl]
- '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ '@esbuild/linux-mips64el@0.28.1':
resolution:
{
- integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==,
+ integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==,
}
- cpu: [x64]
+ engines: { node: '>=18' }
+ cpu: [mips64el]
os: [linux]
- libc: [musl]
- '@img/sharp-linux-arm64@0.34.5':
+ '@esbuild/linux-ppc64@0.27.7':
resolution:
{
- integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==,
+ integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- cpu: [arm64]
+ engines: { node: '>=18' }
+ cpu: [ppc64]
os: [linux]
- libc: [glibc]
- '@img/sharp-linux-arm@0.34.5':
+ '@esbuild/linux-ppc64@0.28.1':
resolution:
{
- integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==,
+ integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- cpu: [arm]
+ engines: { node: '>=18' }
+ cpu: [ppc64]
os: [linux]
- libc: [glibc]
- '@img/sharp-linux-ppc64@0.34.5':
+ '@esbuild/linux-riscv64@0.27.7':
resolution:
{
- integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==,
+ integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- cpu: [ppc64]
+ engines: { node: '>=18' }
+ cpu: [riscv64]
os: [linux]
- libc: [glibc]
- '@img/sharp-linux-riscv64@0.34.5':
+ '@esbuild/linux-riscv64@0.28.1':
resolution:
{
- integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==,
+ integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ engines: { node: '>=18' }
cpu: [riscv64]
os: [linux]
- libc: [glibc]
- '@img/sharp-linux-s390x@0.34.5':
+ '@esbuild/linux-s390x@0.27.7':
resolution:
{
- integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==,
+ integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ engines: { node: '>=18' }
cpu: [s390x]
os: [linux]
- libc: [glibc]
- '@img/sharp-linux-x64@0.34.5':
+ '@esbuild/linux-s390x@0.28.1':
resolution:
{
- integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==,
+ integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- cpu: [x64]
+ engines: { node: '>=18' }
+ cpu: [s390x]
os: [linux]
- libc: [glibc]
- '@img/sharp-linuxmusl-arm64@0.34.5':
+ '@esbuild/linux-x64@0.27.7':
resolution:
{
- integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==,
+ integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- cpu: [arm64]
+ engines: { node: '>=18' }
+ cpu: [x64]
os: [linux]
- libc: [musl]
- '@img/sharp-linuxmusl-x64@0.34.5':
+ '@esbuild/linux-x64@0.28.1':
resolution:
{
- integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==,
+ integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ engines: { node: '>=18' }
cpu: [x64]
os: [linux]
- libc: [musl]
- '@img/sharp-wasm32@0.34.5':
+ '@esbuild/netbsd-arm64@0.27.7':
resolution:
{
- integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==,
+ integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- cpu: [wasm32]
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [netbsd]
- '@img/sharp-win32-arm64@0.34.5':
+ '@esbuild/netbsd-arm64@0.28.1':
resolution:
{
- integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==,
+ integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ engines: { node: '>=18' }
cpu: [arm64]
- os: [win32]
+ os: [netbsd]
- '@img/sharp-win32-ia32@0.34.5':
+ '@esbuild/netbsd-x64@0.27.7':
resolution:
{
- integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==,
+ integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- cpu: [ia32]
- os: [win32]
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [netbsd]
- '@img/sharp-win32-x64@0.34.5':
+ '@esbuild/netbsd-x64@0.28.1':
resolution:
{
- integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==,
+ integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ engines: { node: '>=18' }
cpu: [x64]
- os: [win32]
+ os: [netbsd]
- '@inquirer/external-editor@1.0.3':
+ '@esbuild/openbsd-arm64@0.27.7':
resolution:
{
- integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==,
+ integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==,
}
engines: { node: '>=18' }
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
+ cpu: [arm64]
+ os: [openbsd]
- '@jest/diff-sequences@30.0.1':
+ '@esbuild/openbsd-arm64@0.28.1':
resolution:
{
- integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==,
+ integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==,
}
- engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [openbsd]
- '@jridgewell/gen-mapping@0.3.13':
+ '@esbuild/openbsd-x64@0.27.7':
resolution:
{
- integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==,
+ integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==,
}
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [openbsd]
- '@jridgewell/remapping@2.3.5':
+ '@esbuild/openbsd-x64@0.28.1':
resolution:
{
- integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==,
+ integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==,
}
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [openbsd]
- '@jridgewell/resolve-uri@3.1.2':
+ '@esbuild/openharmony-arm64@0.27.7':
resolution:
{
- integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==,
+ integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==,
}
- engines: { node: '>=6.0.0' }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [openharmony]
- '@jridgewell/sourcemap-codec@1.5.5':
+ '@esbuild/openharmony-arm64@0.28.1':
resolution:
{
- integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==,
+ integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==,
}
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [openharmony]
- '@jridgewell/trace-mapping@0.3.31':
+ '@esbuild/sunos-x64@0.27.7':
resolution:
{
- integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==,
+ integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==,
}
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [sunos]
- '@jridgewell/trace-mapping@0.3.9':
+ '@esbuild/sunos-x64@0.28.1':
resolution:
{
- integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==,
+ integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==,
}
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [sunos]
- '@kurkle/color@0.3.4':
+ '@esbuild/win32-arm64@0.27.7':
resolution:
{
- integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==,
+ integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==,
}
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [win32]
- '@lit-labs/ssr-dom-shim@1.6.0':
+ '@esbuild/win32-arm64@0.28.1':
resolution:
{
- integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==,
+ integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==,
}
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [win32]
- '@lit/reactive-element@2.1.2':
+ '@esbuild/win32-ia32@0.27.7':
resolution:
{
- integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==,
+ integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==,
}
+ engines: { node: '>=18' }
+ cpu: [ia32]
+ os: [win32]
- '@manypkg/find-root@1.1.0':
+ '@esbuild/win32-ia32@0.28.1':
resolution:
{
- integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==,
+ integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==,
}
+ engines: { node: '>=18' }
+ cpu: [ia32]
+ os: [win32]
- '@manypkg/get-packages@1.1.3':
+ '@esbuild/win32-x64@0.27.7':
resolution:
{
- integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==,
+ integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==,
}
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [win32]
- '@napi-rs/nice-android-arm-eabi@1.1.1':
+ '@esbuild/win32-x64@0.28.1':
resolution:
{
- integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==,
+ integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==,
}
- engines: { node: '>= 10' }
- cpu: [arm]
- os: [android]
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [win32]
- '@napi-rs/nice-android-arm64@1.1.1':
+ '@exodus/bytes@1.15.1':
resolution:
{
- integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==,
+ integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==,
}
- engines: { node: '>= 10' }
- cpu: [arm64]
- os: [android]
+ engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 }
+ peerDependencies:
+ '@noble/hashes': ^1.8.0 || ^2.0.0
+ peerDependenciesMeta:
+ '@noble/hashes':
+ optional: true
- '@napi-rs/nice-darwin-arm64@1.1.1':
+ '@expo/cli@57.0.11':
resolution:
{
- integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==,
+ integrity: sha512-ENXCwRyL8Q9qbabUmm0L6w9kXTmdGotW7eDEEWmUDXLPux+nEzNDqw0MzWQ5K3ZsXS51QmUJZg5yETB+6SnNRg==,
}
- engines: { node: '>= 10' }
- cpu: [arm64]
- os: [darwin]
+ hasBin: true
+ peerDependencies:
+ expo: '*'
+ expo-router: '*'
+ react-native: '*'
+ peerDependenciesMeta:
+ expo-router:
+ optional: true
+ react-native:
+ optional: true
- '@napi-rs/nice-darwin-x64@1.1.1':
+ '@expo/code-signing-certificates@0.0.6':
resolution:
{
- integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==,
+ integrity: sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==,
}
- engines: { node: '>= 10' }
- cpu: [x64]
- os: [darwin]
- '@napi-rs/nice-freebsd-x64@1.1.1':
+ '@expo/config-plugins@57.0.6':
resolution:
{
- integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==,
+ integrity: sha512-7CmKrS5Rnu8aSZyNlxH2qzA7Ls1HEa4EQvEVOAkHDKPr1e4Cg/nz7I7dUl09QDTVjMvkKYDH4Th0DuAsgqASaw==,
}
- engines: { node: '>= 10' }
- cpu: [x64]
- os: [freebsd]
- '@napi-rs/nice-linux-arm-gnueabihf@1.1.1':
+ '@expo/config-types@57.0.2':
resolution:
{
- integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==,
+ integrity: sha512-ewW08OonrcRIsRKIlFvvcmmafE5zemb1ocu3HkNwtVPyRtj2w42pZCAkMIROYpcVBaPnc3mDT9UZDzwXWC3i6g==,
}
- engines: { node: '>= 10' }
- cpu: [arm]
- os: [linux]
- '@napi-rs/nice-linux-arm64-gnu@1.1.1':
+ '@expo/config@57.0.6':
resolution:
{
- integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==,
+ integrity: sha512-VpMJpB/De/fb9bBFVVBiK6Ntg9lt0kAleLH9hcZz85CYRUQ3jVFVA8rNC5f8y4cp2+FiiPNFp62+kEOFI6pDiw==,
}
- engines: { node: '>= 10' }
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
- '@napi-rs/nice-linux-arm64-musl@1.1.1':
+ '@expo/devcert@1.2.1':
resolution:
{
- integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==,
+ integrity: sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==,
}
- engines: { node: '>= 10' }
- cpu: [arm64]
- os: [linux]
- libc: [musl]
- '@napi-rs/nice-linux-ppc64-gnu@1.1.1':
+ '@expo/devtools@57.0.1':
resolution:
{
- integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==,
+ integrity: sha512-GyUf+wFNkbttaX0jR7MZa9bm77U0IrLg6d2AjpxdyoXw/w4abHoXG0oFufwLMgP9zLTd5+Ct4X/ffNUTnlzZgg==,
}
- engines: { node: '>= 10' }
- cpu: [ppc64]
- os: [linux]
- libc: [glibc]
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-native:
+ optional: true
- '@napi-rs/nice-linux-riscv64-gnu@1.1.1':
+ '@expo/dom-webview@57.0.1':
resolution:
{
- integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==,
+ integrity: sha512-lAKsME4SAq+8sf56oN0DX5TBYyruupoRxbWbD2xf9RnKY8y6x8eb9LCE5pxSN0qyWdqnp+0wmyWzDkKboThKAw==,
}
- engines: { node: '>= 10' }
- cpu: [riscv64]
- os: [linux]
- libc: [glibc]
+ peerDependencies:
+ expo: '*'
+ react: '*'
+ react-native: '*'
- '@napi-rs/nice-linux-s390x-gnu@1.1.1':
+ '@expo/env@2.4.2':
resolution:
{
- integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==,
+ integrity: sha512-28pqaEqwnmLduZ00Pq9HkSzE5wbj1MTwp5/n8nm8rD8MCjR9eUnVOwmNksPI3Be2ReAPO/DbPn1puy0mvoocsQ==,
}
- engines: { node: '>= 10' }
- cpu: [s390x]
- os: [linux]
- libc: [glibc]
+ engines: { node: '>=20.12.0' }
- '@napi-rs/nice-linux-x64-gnu@1.1.1':
+ '@expo/expo-modules-macros-plugin@0.6.1':
resolution:
{
- integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==,
+ integrity: sha512-cpsLZE4rqkc1Y3eZTkxB98jrqY1YXgetmtxFt8q89jBRmk3quRuk1BZo+VcnCSObZardjg99r1k5xijEMONFGA==,
}
- engines: { node: '>= 10' }
- cpu: [x64]
- os: [linux]
- libc: [glibc]
- '@napi-rs/nice-linux-x64-musl@1.1.1':
+ '@expo/fingerprint@0.20.6':
resolution:
{
- integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==,
+ integrity: sha512-cmC/6BOPRbdKr77Mgjwszb8aM0hY2RKBpMRCmjSdn9zIcn2FGor/ic4fHVr46cQFa1G6RDGg1GyAjRw3US4CCQ==,
}
- engines: { node: '>= 10' }
- cpu: [x64]
- os: [linux]
- libc: [musl]
+ hasBin: true
- '@napi-rs/nice-openharmony-arm64@1.1.1':
+ '@expo/image-utils@0.11.4':
resolution:
{
- integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==,
+ integrity: sha512-pn/4770DIEOcYZr484uazuwg20FX/qaDkeMRF6J+oxejynDmEmO8wLsCudaNShFE0BhyKGQTYrs2rsRhqrqESw==,
}
- engines: { node: '>= 10' }
- cpu: [arm64]
- os: [openharmony]
- '@napi-rs/nice-win32-arm64-msvc@1.1.1':
+ '@expo/inline-modules@0.1.4':
resolution:
{
- integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==,
+ integrity: sha512-8bPSCm//dv8raYfrQ4x79rCX52vMw0QzmnYYl4eSOAvEbGvDPPRGGdbrhZZ7oihU+hI1sZNS5kYEgqODgFwfsw==,
}
- engines: { node: '>= 10' }
- cpu: [arm64]
- os: [win32]
- '@napi-rs/nice-win32-ia32-msvc@1.1.1':
+ '@expo/json-file@11.0.1':
resolution:
{
- integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==,
+ integrity: sha512-zxHWj4MKKMAL29ZQSY/Fssx4Thluk40JmuGNaeS078wy/NhlFhnVi+rHHunulE3xJAJ0CM73m8VK2+GkF9eRwQ==,
}
- engines: { node: '>= 10' }
- cpu: [ia32]
- os: [win32]
- '@napi-rs/nice-win32-x64-msvc@1.1.1':
+ '@expo/local-build-cache-provider@57.0.5':
resolution:
{
- integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==,
+ integrity: sha512-OwiNC0Uxu67TOH7TEQ94GLa4oNzNfbbItKGdy3QMfX+hCSZv2VvjcjRo5vttMHfXCnXa9KZIu3GBS9pvtDHWhA==,
}
- engines: { node: '>= 10' }
- cpu: [x64]
- os: [win32]
- '@napi-rs/nice@1.1.1':
+ '@expo/log-box@57.0.2':
resolution:
{
- integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==,
+ integrity: sha512-ZsFyfIR7YCbQAdVLzuTUmMHofZC7ZS9ywYCJNPlLc78x59cI8GwXFEIVbRjjC0uJERpNtXx/tsNNnkhexXlzMw==,
}
- engines: { node: '>= 10' }
+ peerDependencies:
+ '@expo/dom-webview': ^57.0.1
+ expo: '*'
+ react: '*'
+ react-native: '*'
- '@napi-rs/wasm-runtime@0.2.4':
+ '@expo/metro-config@57.0.7':
resolution:
{
- integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==,
+ integrity: sha512-bVfEkg4zF1cA62OqAdYXmFOooJ6TB/I+REi7Se6Ct+PbSC+89TwSqWXnYx34L08eIs4z+1ilgbATakTZpgefmQ==,
}
+ peerDependencies:
+ expo: '*'
+ peerDependenciesMeta:
+ expo:
+ optional: true
- '@napi-rs/wasm-runtime@1.1.6':
+ '@expo/metro-file-map@57.0.1':
resolution:
{
- integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==,
+ integrity: sha512-8JXfVstZN7QnP4NianZZnlTVboOWR0sG8trUDNajOjnbGlPln29vponXM84tY+3tAHapz5/TxE53L0ixUwqPtA==,
}
- peerDependencies:
- '@emnapi/core': ^1.7.1
- '@emnapi/runtime': ^1.7.1
- '@noble/hashes@2.2.0':
+ '@expo/metro@56.0.0':
resolution:
{
- integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==,
+ integrity: sha512-5gIgQHtEpjjvsjKfVtIv23a98LLRV0/y07PDShEwYSytAMlE3FSF8RHXqtHc1sUJL6dn7hnuIBpIbrLXXuVi0A==,
}
- engines: { node: '>= 20.19.0' }
- '@nodelib/fs.scandir@2.1.5':
+ '@expo/osascript@2.7.1':
resolution:
{
- integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==,
+ integrity: sha512-Zn03EX6In7ts2lPUW2ESUSkEhEWQN1qqsiXjadtZMJOuZRkMiAg1ZQHuvz9DjByDWNJ2pBwAGyrts9lj9k389g==,
}
- engines: { node: '>= 8' }
+ engines: { node: '>=12' }
- '@nodelib/fs.stat@2.0.5':
+ '@expo/package-manager@1.13.1':
resolution:
{
- integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==,
+ integrity: sha512-y/K+CaYYpZpNGZhSX4HyLT/vyIunFjNfyoxNysPBCefeLKI/VCx6f9LNPzrxayr3rCYO5bl9O8H+HRQK265Nkg==,
}
- engines: { node: '>= 8' }
- '@nodelib/fs.walk@1.2.8':
+ '@expo/plist@0.8.1':
resolution:
{
- integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==,
+ integrity: sha512-3gTReGIUm0oRaMClsAJYxBnVPCl6fVpsl8HS+DTVxDhW4GyVyxg9E/Znm3BvcHtUJ51RJJI14pC1wvrNilCRHw==,
}
- engines: { node: '>= 8' }
- '@nx/nx-darwin-arm64@22.7.5':
+ '@expo/prebuild-config@57.0.10':
resolution:
{
- integrity: sha512-eoPtwx0qZqvRUD+VVOHm150AlSYwYoPxkDHBBGqKCn5nzPspb0lLWw8q83crM/L1M928YgK0WmGf3C++7eqsTA==,
+ integrity: sha512-myrS5NolFAQWD8g7QuqkettnkyJx3GRl603N6rlmqAMxmO5EU7sZu4EX2EsIKkva8QtpX84B0E17PsM9xXMsTQ==,
}
- cpu: [arm64]
- os: [darwin]
- '@nx/nx-darwin-x64@22.7.5':
+ '@expo/require-utils@57.0.4':
resolution:
{
- integrity: sha512-VLOn/ZoEn3HfjSj+yIHLCM56/el79r+9I28CkZNHaSXJQWZ3edSkcgcfYjVxCurpN2VEwDQHLBeFCH8M+lQ7wQ==,
+ integrity: sha512-e7xbg/9BTQcsZE/oErafZXtI7kh5IgfasLJ97J5sFSzX2cA74pDvdlhW1KHVSaDkQyQv6h1LSLhsY7dEeOk7hw==,
}
- cpu: [x64]
- os: [darwin]
+ peerDependencies:
+ typescript: ^5.0.0 || ^5.0.0-0 || ^6.0.0 || ^7.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
- '@nx/nx-freebsd-x64@22.7.5':
+ '@expo/router-server@57.0.4':
resolution:
{
- integrity: sha512-LEVer/E2xfGvK9Go+imMQoEninOoq/38Z2bhV1SD3AThXrp1xaLFVkW5jQ6juebeVkAeztEoMLFlr576egS0vw==,
+ integrity: sha512-ucqCP0hK8nZb9+S8QJYdQxNCkfRClzkKdg2RpWYDKDYgRIHyoRyxEDRgDgvbhH+q78yfY83abU8OTx8MMOrf1g==,
}
- cpu: [x64]
- os: [freebsd]
+ peerDependencies:
+ '@expo/metro-runtime': ^57.0.7
+ expo: '*'
+ expo-constants: ^57.0.7
+ expo-font: ^57.0.1
+ expo-router: '*'
+ expo-server: ^57.0.1
+ react: '*'
+ react-dom: '*'
+ react-server-dom-webpack: ~19.0.1 || ~19.1.2 || ~19.2.1
+ peerDependenciesMeta:
+ '@expo/metro-runtime':
+ optional: true
+ expo-router:
+ optional: true
+ react-dom:
+ optional: true
+ react-server-dom-webpack:
+ optional: true
- '@nx/nx-linux-arm-gnueabihf@22.7.5':
+ '@expo/schema-utils@57.0.2':
resolution:
{
- integrity: sha512-NP27EFGpmFJM6RL1Ey/AFJ7gA2xuqtIHaw6jjSNGvfrnZRUNaway30GrVaGGeODf0DsvAty/unqoBMPy6kDHbw==,
+ integrity: sha512-fMu/jyN0l1Wzv7XkeWR4IYCx1M8ryui3FdBNGrWwbRgJ7EhxXxK8E2jxP2W3pbgUwUY0V3hG8+GyfCZwny+Lxw==,
}
- cpu: [arm]
- os: [linux]
- '@nx/nx-linux-arm64-gnu@22.7.5':
+ '@expo/sdk-runtime-versions@1.0.0':
resolution:
{
- integrity: sha512-QLnkJl3HkHsPfpLiNiAiMfpfAeFpic0U1diAxF8RqChOkCpQ7ulvyBVgE1UrQxvhd+gFQ3ed5RNDxtCRw8nTiw==,
+ integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==,
}
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
- '@nx/nx-linux-arm64-musl@22.7.5':
+ '@expo/spawn-async@1.8.0':
resolution:
{
- integrity: sha512-cEP6KmwBgnb38+jTTaibWCjwXcHmigqhTfy0tN1be7WZr6bHxbqNLsXqKRN70PSNA3HouZcxw1cdRL8tqbPBBA==,
+ integrity: sha512-eb9xxd/LbuEGSdua4NumCu/McVB9EM+F/JxB9pWgnERw4HQ9XyTNH1KapG6oqLWR8TuRK2LQfzJlmNi94CVobw==,
}
- cpu: [arm64]
- os: [linux]
- libc: [musl]
+ engines: { node: '>=12' }
- '@nx/nx-linux-x64-gnu@22.7.5':
+ '@expo/sudo-prompt@9.3.2':
resolution:
{
- integrity: sha512-tbaX1tZCSpGifDNBfDdEZAMxVF3Yg4bhFP/bm1needc0diqb+Zflc0u5tM5/6BWDMITQDwenJVsNiQ8ZdtJURA==,
+ integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==,
}
- cpu: [x64]
- os: [linux]
- libc: [glibc]
- '@nx/nx-linux-x64-musl@22.7.5':
+ '@expo/ws-tunnel@2.0.0':
resolution:
{
- integrity: sha512-H0M7csOZIgPT822LqjxSXzf4MXRND15vIkAQe3F3Jlr3Si8LC3tzbL52aVcRfgb8MF/xOB5U47mSwxWt1M2bPQ==,
+ integrity: sha512-j+JfTRdCk820J9dU0sA2SqshQIKFOMo7ED84w9MJFcebfbNQgsLztEY/SABDkGnjatrW4xGqnUhVRxSBVyCkXw==,
}
- cpu: [x64]
- os: [linux]
- libc: [musl]
+ peerDependencies:
+ ws: ^8.0.0
- '@nx/nx-win32-arm64-msvc@22.7.5':
+ '@expo/xcpretty@4.4.4':
resolution:
{
- integrity: sha512-JTcZch9YAnDL1gbhqePz3DZ4x7iYemLn1yJzrjbbXAmXju2eiiJiZvJJHbV06+SP9HKXDT8RjTKuAWTdVxnHug==,
+ integrity: sha512-4aQzz9vgxcNXFfo/iyNgDDYfsU5XGKKxWxZopw0cVotHiW+U8IJbIxMaxsINs6bHhtkG3StKNPcOrn3eBuxKPw==,
}
- cpu: [arm64]
- os: [win32]
+ hasBin: true
- '@nx/nx-win32-x64-msvc@22.7.5':
+ '@hapi/hoek@9.3.0':
resolution:
{
- integrity: sha512-ngcMyHdBJ9FSz2nHdbZ7gtJlFq0O2b05sPAsVMkZ18CKzdaA1qrBDJfsMO49hPCny505eiT766+CkKdaCDl5kA==,
+ integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==,
}
- cpu: [x64]
- os: [win32]
- '@observablehq/plot@0.6.17':
+ '@hapi/topo@5.1.0':
resolution:
{
- integrity: sha512-/qaXP/7mc4MUS0s4cPPFASDRjtsWp85/TbfsciqDgU1HwYixbSbbytNuInD8AcTYC3xaxACgVX06agdfQy9W+g==,
+ integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==,
}
- engines: { node: '>=12' }
- '@observablehq/sample-datasets@1.0.1':
+ '@img/colour@1.1.0':
resolution:
{
- integrity: sha512-2gc2wteMytPgDalqUPdLHEFInNb8J3vI17oniIYS89B1iwuO4EPXNWgzpfryyB4CH35CpXL0BgHfVeI+qICWwA==,
+ integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==,
}
+ engines: { node: '>=18' }
- '@oxc-project/types@0.139.0':
+ '@img/sharp-darwin-arm64@0.34.5':
resolution:
{
- integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==,
+ integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==,
}
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [arm64]
+ os: [darwin]
- '@parcel/watcher-android-arm64@2.6.0':
+ '@img/sharp-darwin-x64@0.34.5':
resolution:
{
- integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==,
+ integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==,
}
- engines: { node: '>= 10.0.0' }
- cpu: [arm64]
- os: [android]
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [x64]
+ os: [darwin]
- '@parcel/watcher-darwin-arm64@2.6.0':
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
resolution:
{
- integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==,
+ integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==,
}
- engines: { node: '>= 10.0.0' }
cpu: [arm64]
os: [darwin]
- '@parcel/watcher-darwin-x64@2.6.0':
+ '@img/sharp-libvips-darwin-x64@1.2.4':
resolution:
{
- integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==,
+ integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==,
}
- engines: { node: '>= 10.0.0' }
cpu: [x64]
os: [darwin]
- '@parcel/watcher-freebsd-x64@2.6.0':
+ '@img/sharp-libvips-linux-arm64@1.2.4':
resolution:
{
- integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==,
+ integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==,
}
- engines: { node: '>= 10.0.0' }
- cpu: [x64]
- os: [freebsd]
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
- '@parcel/watcher-linux-arm-glibc@2.6.0':
+ '@img/sharp-libvips-linux-arm@1.2.4':
resolution:
{
- integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==,
+ integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==,
}
- engines: { node: '>= 10.0.0' }
cpu: [arm]
os: [linux]
libc: [glibc]
- '@parcel/watcher-linux-arm-musl@2.6.0':
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
resolution:
{
- integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==,
+ integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==,
}
- engines: { node: '>= 10.0.0' }
- cpu: [arm]
+ cpu: [ppc64]
os: [linux]
- libc: [musl]
+ libc: [glibc]
- '@parcel/watcher-linux-arm64-glibc@2.6.0':
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
resolution:
{
- integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==,
+ integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==,
}
- engines: { node: '>= 10.0.0' }
- cpu: [arm64]
+ cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@parcel/watcher-linux-arm64-musl@2.6.0':
+ '@img/sharp-libvips-linux-s390x@1.2.4':
resolution:
{
- integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==,
+ integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==,
}
- engines: { node: '>= 10.0.0' }
- cpu: [arm64]
+ cpu: [s390x]
os: [linux]
- libc: [musl]
+ libc: [glibc]
- '@parcel/watcher-linux-x64-glibc@2.6.0':
+ '@img/sharp-libvips-linux-x64@1.2.4':
resolution:
{
- integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==,
+ integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==,
}
- engines: { node: '>= 10.0.0' }
cpu: [x64]
os: [linux]
libc: [glibc]
- '@parcel/watcher-linux-x64-musl@2.6.0':
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
resolution:
{
- integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==,
+ integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==,
+ }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ resolution:
+ {
+ integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==,
}
- engines: { node: '>= 10.0.0' }
cpu: [x64]
os: [linux]
libc: [musl]
- '@parcel/watcher-win32-arm64@2.6.0':
+ '@img/sharp-linux-arm64@0.34.5':
resolution:
{
- integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==,
+ integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==,
}
- engines: { node: '>= 10.0.0' }
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
cpu: [arm64]
- os: [win32]
+ os: [linux]
+ libc: [glibc]
- '@parcel/watcher-win32-x64@2.6.0':
+ '@img/sharp-linux-arm@0.34.5':
resolution:
{
- integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==,
+ integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==,
}
- engines: { node: '>= 10.0.0' }
- cpu: [x64]
- os: [win32]
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
- '@parcel/watcher@2.6.0':
+ '@img/sharp-linux-ppc64@0.34.5':
resolution:
{
- integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==,
+ integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==,
}
- engines: { node: '>= 10.0.0' }
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
- '@poppinss/colors@4.1.6':
+ '@img/sharp-linux-riscv64@0.34.5':
resolution:
{
- integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==,
+ integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==,
}
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
- '@poppinss/dumper@0.6.5':
+ '@img/sharp-linux-s390x@0.34.5':
resolution:
{
- integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==,
+ integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==,
}
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
- '@poppinss/exception@1.2.3':
+ '@img/sharp-linux-x64@0.34.5':
resolution:
{
- integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==,
+ integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==,
}
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
- '@reduxjs/toolkit@2.12.0':
+ '@img/sharp-linuxmusl-arm64@0.34.5':
resolution:
{
- integrity: sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==,
+ integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==,
}
- peerDependencies:
- react: ^16.9.0 || ^17.0.0 || ^18 || ^19
- react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0
- peerDependenciesMeta:
- react:
- optional: true
- react-redux:
- optional: true
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
- '@rolldown/binding-android-arm64@1.1.5':
+ '@img/sharp-linuxmusl-x64@0.34.5':
resolution:
{
- integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==,
+ integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [arm64]
- os: [android]
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
- '@rolldown/binding-darwin-arm64@1.1.5':
+ '@img/sharp-wasm32@0.34.5':
resolution:
{
- integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==,
+ integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [wasm32]
+
+ '@img/sharp-win32-arm64@0.34.5':
+ resolution:
+ {
+ integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==,
+ }
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
cpu: [arm64]
- os: [darwin]
+ os: [win32]
- '@rolldown/binding-darwin-x64@1.1.5':
+ '@img/sharp-win32-ia32@0.34.5':
resolution:
{
- integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==,
+ integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [x64]
- os: [darwin]
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ cpu: [ia32]
+ os: [win32]
- '@rolldown/binding-freebsd-x64@1.1.5':
+ '@img/sharp-win32-x64@0.34.5':
resolution:
{
- integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==,
+ integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
cpu: [x64]
- os: [freebsd]
+ os: [win32]
- '@rolldown/binding-linux-arm-gnueabihf@1.1.5':
+ '@inquirer/external-editor@1.0.3':
resolution:
{
- integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==,
+ integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [arm]
- os: [linux]
+ engines: { node: '>=18' }
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
- '@rolldown/binding-linux-arm64-gnu@1.1.5':
+ '@isaacs/ttlcache@1.4.1':
resolution:
{
- integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==,
+ integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
+ engines: { node: '>=12' }
- '@rolldown/binding-linux-arm64-musl@1.1.5':
+ '@jest/diff-sequences@30.0.1':
resolution:
{
- integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==,
+ integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [arm64]
- os: [linux]
- libc: [musl]
+ engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 }
- '@rolldown/binding-linux-ppc64-gnu@1.1.5':
+ '@jest/schemas@29.6.3':
resolution:
{
- integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==,
+ integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [ppc64]
- os: [linux]
- libc: [glibc]
+ engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 }
- '@rolldown/binding-linux-s390x-gnu@1.1.5':
+ '@jest/types@29.6.3':
resolution:
{
- integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==,
+ integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [s390x]
- os: [linux]
- libc: [glibc]
+ engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 }
- '@rolldown/binding-linux-x64-gnu@1.1.5':
+ '@jridgewell/gen-mapping@0.3.13':
resolution:
{
- integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==,
+ integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [x64]
- os: [linux]
- libc: [glibc]
- '@rolldown/binding-linux-x64-musl@1.1.5':
+ '@jridgewell/remapping@2.3.5':
resolution:
{
- integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==,
+ integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [x64]
- os: [linux]
- libc: [musl]
- '@rolldown/binding-openharmony-arm64@1.1.5':
+ '@jridgewell/resolve-uri@3.1.2':
resolution:
{
- integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==,
+ integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [arm64]
- os: [openharmony]
+ engines: { node: '>=6.0.0' }
- '@rolldown/binding-wasm32-wasi@1.1.5':
+ '@jridgewell/source-map@0.3.11':
resolution:
{
- integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==,
+ integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [wasm32]
- '@rolldown/binding-win32-arm64-msvc@1.1.5':
+ '@jridgewell/sourcemap-codec@1.5.5':
resolution:
{
- integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==,
+ integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [arm64]
- os: [win32]
- '@rolldown/binding-win32-x64-msvc@1.1.5':
+ '@jridgewell/trace-mapping@0.3.31':
resolution:
{
- integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==,
+ integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- cpu: [x64]
- os: [win32]
- '@rolldown/pluginutils@1.0.1':
+ '@jridgewell/trace-mapping@0.3.9':
resolution:
{
- integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==,
+ integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==,
}
- '@rollup/plugin-json@6.1.0':
+ '@kurkle/color@0.3.4':
resolution:
{
- integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==,
+ integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==,
}
- engines: { node: '>=14.0.0' }
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- '@rollup/pluginutils@5.4.0':
+ '@lit-labs/ssr-dom-shim@1.6.0':
resolution:
{
- integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==,
+ integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==,
}
- engines: { node: '>=14.0.0' }
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- '@rollup/rollup-android-arm-eabi@4.62.3':
+ '@lit/reactive-element@2.1.2':
resolution:
{
- integrity: sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==,
+ integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==,
}
- cpu: [arm]
- os: [android]
- '@rollup/rollup-android-arm64@4.62.3':
+ '@manypkg/find-root@1.1.0':
resolution:
{
- integrity: sha512-3YjElDdWN+qXAFbJ/CzPV+0wspLqh54k/I6GfdYtEJRqg7buSgc1yPM3B+93j1M4neobtkATHZTmxK2AMVGfnA==,
+ integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==,
}
- cpu: [arm64]
- os: [android]
- '@rollup/rollup-darwin-arm64@4.62.3':
+ '@manypkg/get-packages@1.1.3':
resolution:
{
- integrity: sha512-Pch2pFNOxxz1hTjypIdPyRTR6riiwRl84+VcN9djS680fw+Co1nAJINrdpqp7KV0NvyuU8ilZXZCjd7ykJl1GQ==,
+ integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==,
}
- cpu: [arm64]
- os: [darwin]
- '@rollup/rollup-darwin-x64@4.62.3':
+ '@napi-rs/nice-android-arm-eabi@1.1.1':
resolution:
{
- integrity: sha512-LEuncFUHFiF8t4yZVZvvZA1wk0pjAscRnsrn1EfTEmN4HXotBi2YtcnLRyaK6UbuczW7xZS5ES+81Rdz8Z0T6g==,
+ integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==,
}
- cpu: [x64]
- os: [darwin]
+ engines: { node: '>= 10' }
+ cpu: [arm]
+ os: [android]
- '@rollup/rollup-freebsd-arm64@4.62.3':
+ '@napi-rs/nice-android-arm64@1.1.1':
resolution:
{
- integrity: sha512-zvBUvsQUpOWALdDsk6qbS8bXf2VxmPisuudNDrY7x0p0jBdsoZl8HsHczIOgkQiZldmcacMKtBzpoGVNeIe2bQ==,
+ integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==,
}
+ engines: { node: '>= 10' }
cpu: [arm64]
- os: [freebsd]
+ os: [android]
- '@rollup/rollup-freebsd-x64@4.62.3':
+ '@napi-rs/nice-darwin-arm64@1.1.1':
resolution:
{
- integrity: sha512-C2KmNrcSem/AMg984H/dev+si0lieQGdXdR/lYGJnuumXnFb9Y7QdiI62obFdLlxRYLBv4P0eUVIDbD4c1vVvw==,
+ integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==,
}
- cpu: [x64]
- os: [freebsd]
+ engines: { node: '>= 10' }
+ cpu: [arm64]
+ os: [darwin]
- '@rollup/rollup-linux-arm-gnueabihf@4.62.3':
+ '@napi-rs/nice-darwin-x64@1.1.1':
resolution:
{
- integrity: sha512-ggXnsTAEzNQx74XpunRsiZ9aBZDsI7XIa0hm2nzR9f4WzH5/f/d73ZSDaC5ejJ8YLY4NW+V3wr0tjOaeCq8hqA==,
+ integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==,
}
- cpu: [arm]
- os: [linux]
- libc: [glibc]
+ engines: { node: '>= 10' }
+ cpu: [x64]
+ os: [darwin]
- '@rollup/rollup-linux-arm-musleabihf@4.62.3':
+ '@napi-rs/nice-freebsd-x64@1.1.1':
resolution:
{
- integrity: sha512-2vng+FlzNUhKZxtej3IUqJgbZoQk2M/dwQM20+ULV0R/E/8tr9/P6uEf2iiGIk4HL0zMKh5Jry7mUHdUOvyGgA==,
+ integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==,
}
- cpu: [arm]
- os: [linux]
- libc: [musl]
+ engines: { node: '>= 10' }
+ cpu: [x64]
+ os: [freebsd]
- '@rollup/rollup-linux-arm64-gnu@4.62.3':
+ '@napi-rs/nice-linux-arm-gnueabihf@1.1.1':
resolution:
{
- integrity: sha512-LLLFZKt4/Nraf9rxDkhiU8QVgLF4WmCkfr0L4fj0fPfIZFBib0DeiFk1hhaYKd03LFAFJcxHslhDFlNJLylf5Q==,
+ integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==,
}
- cpu: [arm64]
+ engines: { node: '>= 10' }
+ cpu: [arm]
os: [linux]
- libc: [glibc]
- '@rollup/rollup-linux-arm64-musl@4.62.3':
+ '@napi-rs/nice-linux-arm64-gnu@1.1.1':
resolution:
{
- integrity: sha512-WJkdQCvS9sWNOUBJZfQRKpZGFBztRzcowI+nndmflKgU4XY+3a420FgTOSKTsVqJbnzSxeT4vaJalpOaPo2YCQ==,
+ integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==,
}
+ engines: { node: '>= 10' }
cpu: [arm64]
os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-loong64-gnu@4.62.3':
- resolution:
- {
- integrity: sha512-PwHXCCS2n64/1Ot6rP1YEYA02MGYBcQlr8CSZZyrUG2O7NH6NklYmvr9v3Jy+5e/eDeNchc/ukmKJi9LuflMIQ==,
- }
- cpu: [loong64]
- os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-loong64-musl@4.62.3':
+ '@napi-rs/nice-linux-arm64-musl@1.1.1':
resolution:
{
- integrity: sha512-vUjxINQu3RC8NZS3ykk1gN65gIz8pAopOq2HXuZhiIxHdx7TFvDG+jgrdSgInu1Eza4/Rfi2VzZgyIgEH4WOaw==,
+ integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==,
}
- cpu: [loong64]
+ engines: { node: '>= 10' }
+ cpu: [arm64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-ppc64-gnu@4.62.3':
+ '@napi-rs/nice-linux-ppc64-gnu@1.1.1':
resolution:
{
- integrity: sha512-wzko4aJ13+0G3kGnviCg5gnXFKd40izKsrf2uOw12US4XqprkDrmwOpeW14aSNa37V8bfPcz5Fkob6LZ3BAPmA==,
+ integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==,
}
+ engines: { node: '>= 10' }
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-ppc64-musl@4.62.3':
- resolution:
- {
- integrity: sha512-8120ue0JUMSwy11stlwnfdX3pPd+WZYGCDBwEHWtIHi6pOpZmsEF5QKB7a/UN+XFdqvobxz98kv8RTqikyCEBw==,
- }
- cpu: [ppc64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-riscv64-gnu@4.62.3':
+ '@napi-rs/nice-linux-riscv64-gnu@1.1.1':
resolution:
{
- integrity: sha512-XLFHnR3tXMjbOCh2vtVJHmxt+995uJsTERQyseFDRA0xxMxyTZPLa3OIUlyFaO4mF/Lu0FjmWHCuPXJT1n/IOg==,
+ integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==,
}
+ engines: { node: '>= 10' }
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-riscv64-musl@4.62.3':
- resolution:
- {
- integrity: sha512-se6yXvNGMIl0f+RQzyh7XAmia8/9kplQx424wnG2w0C1oi6XgO6Y8otKhdXFHbHs88Ihavzmvh1NWjuovE76BQ==,
- }
- cpu: [riscv64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-s390x-gnu@4.62.3':
+ '@napi-rs/nice-linux-s390x-gnu@1.1.1':
resolution:
{
- integrity: sha512-gNoxRefktVIiGflpONuxWWXZAzIQG++z9qHO3xKwk4WdDMuQja3JHGfE1u0i3PfPDyvhypdk+WrgIJqLhGG7sg==,
+ integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==,
}
+ engines: { node: '>= 10' }
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-x64-gnu@4.62.3':
+ '@napi-rs/nice-linux-x64-gnu@1.1.1':
resolution:
{
- integrity: sha512-V4KtWtQfAFMU7+9/A/VDps/VI8CHd3cYz0L8sgJzz8qK7eY7wI4ruFD82UYIYvW9Z4DtlTfhQcsl4XyPHW5uSg==,
+ integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==,
}
+ engines: { node: '>= 10' }
cpu: [x64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-x64-musl@4.62.3':
+ '@napi-rs/nice-linux-x64-musl@1.1.1':
resolution:
{
- integrity: sha512-LBx9LYXvj2CBkMkjLdNAWLwH0MLMin7do2VcVo9kVPibGLkY0BQQut2fv7NVqkXqZ/CrAu9LqDHVV1xHCMpCPw==,
+ integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==,
}
+ engines: { node: '>= 10' }
cpu: [x64]
os: [linux]
libc: [musl]
- '@rollup/rollup-openbsd-x64@4.62.3':
- resolution:
- {
- integrity: sha512-ABVf3Q0RCu7NcyCCOZQI0pJ3GuSdfSl8EXcy88QtdceIMIoCUdfhsJChZ64L9zVM2aJHjde1Bhn5uqSRcX9ySA==,
- }
- cpu: [x64]
- os: [openbsd]
-
- '@rollup/rollup-openharmony-arm64@4.62.3':
+ '@napi-rs/nice-openharmony-arm64@1.1.1':
resolution:
{
- integrity: sha512-+2Cy/ldweGBLlPIKsQLF8U5N44a0KDdbrk1rAjHOM9M2K+kGdIVjHLmmrZIcx+9Ny3ke/1JomCsDI1ocb11+sg==,
+ integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==,
}
+ engines: { node: '>= 10' }
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.62.3':
+ '@napi-rs/nice-win32-arm64-msvc@1.1.1':
resolution:
{
- integrity: sha512-dtZvzc8BedpSaFNy75x6uiWwAGTH+aZHDtdrqP6qk+WcLJrfti6sGje1ZJ9UxyzDLF23d/mV+PaMwuC0hL7UVA==,
+ integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==,
}
+ engines: { node: '>= 10' }
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.62.3':
+ '@napi-rs/nice-win32-ia32-msvc@1.1.1':
resolution:
{
- integrity: sha512-Rj8Ra4noo+aYy7sKBggCx0407mws34kAb1ySyWuq5DAtFBQdkSwnsjCgPrhPe9cvgBKZIukpE+CVHvORCS93kQ==,
+ integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==,
}
+ engines: { node: '>= 10' }
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.62.3':
+ '@napi-rs/nice-win32-x64-msvc@1.1.1':
resolution:
{
- integrity: sha512-vp7N084ew/odXn2gi/mzm9mUkQu9l6AiN6dt4IeUM2Uvm9o+cVmP+YkqbMOteLbiGgqBBlJZjIMYVCfOOIVbVQ==,
+ integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==,
}
+ engines: { node: '>= 10' }
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.62.3':
+ '@napi-rs/nice@1.1.1':
resolution:
{
- integrity: sha512-MOG/3gTOn4Fwf574RVOaY61I5o6P90legkFADiTyn1hyjNydT+cerU2rLUwPdZkKKyJ+iT+K9p7WXK4LM1Ka6g==,
+ integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==,
}
- cpu: [x64]
- os: [win32]
+ engines: { node: '>= 10' }
- '@rollup/wasm-node@4.62.3':
+ '@napi-rs/wasm-runtime@0.2.4':
resolution:
{
- integrity: sha512-sEOQWamme1YgXeVcE1JkB1k44RwtPWcpYpGUW1Lso7bOj+Ay9lN2Pak/CcfNeC4xqIPNhYSabQNaWYkJJR7m8Q==,
+ integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==,
}
- engines: { node: '>=18.0.0', npm: '>=8.0.0' }
- hasBin: true
- '@sindresorhus/is@7.2.0':
+ '@napi-rs/wasm-runtime@1.1.6':
resolution:
{
- integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==,
+ integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==,
}
- engines: { node: '>=18' }
+ peerDependencies:
+ '@emnapi/core': ^1.7.1
+ '@emnapi/runtime': ^1.7.1
- '@speed-highlight/core@1.2.17':
+ '@noble/hashes@2.2.0':
resolution:
{
- integrity: sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==,
+ integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==,
}
+ engines: { node: '>= 20.19.0' }
- '@standard-schema/spec@1.1.0':
+ '@nodelib/fs.scandir@2.1.5':
resolution:
{
- integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==,
+ integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==,
}
+ engines: { node: '>= 8' }
- '@standard-schema/utils@0.3.0':
+ '@nodelib/fs.stat@2.0.5':
resolution:
{
- integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==,
+ integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==,
}
+ engines: { node: '>= 8' }
- '@sveltejs/acorn-typescript@1.0.11':
+ '@nodelib/fs.walk@1.2.8':
resolution:
{
- integrity: sha512-LFuZUkjJ9iF7JZye/aG5XM0SFcQ5VyL0oVX4WJ9dc0Va3R3s0OauX1BESVCb+YN/ol8TAfqGDDAQsTG627Y5kw==,
+ integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==,
}
- peerDependencies:
- acorn: ^8.9.0
+ engines: { node: '>= 8' }
- '@sveltejs/load-config@0.2.1':
+ '@nx/nx-darwin-arm64@22.7.5':
resolution:
{
- integrity: sha512-5m3B2cbqQ4TbwW6Xkh66Ntw6dD7gNc77cCxABTTesWcq9jxIzMgTk97pZx5vEtvQx8iokgi7GIphqZe+PGwcZA==,
+ integrity: sha512-eoPtwx0qZqvRUD+VVOHm150AlSYwYoPxkDHBBGqKCn5nzPspb0lLWw8q83crM/L1M928YgK0WmGf3C++7eqsTA==,
}
- engines: { node: '>= 18.0.0' }
+ cpu: [arm64]
+ os: [darwin]
- '@sveltejs/package@2.5.8':
+ '@nx/nx-darwin-x64@22.7.5':
resolution:
{
- integrity: sha512-zeBbsXYvHiBu56v4gJaGQoEHzg96w0E1j3dOMX8vo56s6vI5eQ57ZEZhudjwjnegnVitRRu5MrmhO0eNvaonIw==,
+ integrity: sha512-VLOn/ZoEn3HfjSj+yIHLCM56/el79r+9I28CkZNHaSXJQWZ3edSkcgcfYjVxCurpN2VEwDQHLBeFCH8M+lQ7wQ==,
}
- engines: { node: ^16.14 || >=18 }
- hasBin: true
- peerDependencies:
- svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1
+ cpu: [x64]
+ os: [darwin]
- '@sveltejs/vite-plugin-svelte@7.2.0':
+ '@nx/nx-freebsd-x64@22.7.5':
resolution:
{
- integrity: sha512-1SpkuMSRLfugrVX+IrKfE1RUegzo8AQzKQ6qQPfVzbcWi5IhuTPaKb5ZrLpucleFznkc4/RTeSPoRnGWFxX+EQ==,
+ integrity: sha512-LEVer/E2xfGvK9Go+imMQoEninOoq/38Z2bhV1SD3AThXrp1xaLFVkW5jQ6juebeVkAeztEoMLFlr576egS0vw==,
}
- engines: { node: ^20.19 || ^22.12 || >=24 }
- peerDependencies:
- svelte: ^5.46.4
- vite: ^8.0.0-beta.7 || ^8.0.0
+ cpu: [x64]
+ os: [freebsd]
- '@tsrx/core@0.1.48':
+ '@nx/nx-linux-arm-gnueabihf@22.7.5':
resolution:
{
- integrity: sha512-IgkkLjApPKCGvBvwcOtLT6bACFglB5RBKW9fYErYMXJC6bxk/GM1lVAnuV9FiadiZ5jXrTw9uTxbZULncycSQQ==,
+ integrity: sha512-NP27EFGpmFJM6RL1Ey/AFJ7gA2xuqtIHaw6jjSNGvfrnZRUNaway30GrVaGGeODf0DsvAty/unqoBMPy6kDHbw==,
}
+ cpu: [arm]
+ os: [linux]
- '@tybys/wasm-util@0.10.3':
+ '@nx/nx-linux-arm64-gnu@22.7.5':
resolution:
{
- integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==,
+ integrity: sha512-QLnkJl3HkHsPfpLiNiAiMfpfAeFpic0U1diAxF8RqChOkCpQ7ulvyBVgE1UrQxvhd+gFQ3ed5RNDxtCRw8nTiw==,
}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
- '@tybys/wasm-util@0.9.0':
+ '@nx/nx-linux-arm64-musl@22.7.5':
resolution:
{
- integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==,
+ integrity: sha512-cEP6KmwBgnb38+jTTaibWCjwXcHmigqhTfy0tN1be7WZr6bHxbqNLsXqKRN70PSNA3HouZcxw1cdRL8tqbPBBA==,
}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
- '@types/babel__core@7.20.5':
+ '@nx/nx-linux-x64-gnu@22.7.5':
resolution:
{
- integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==,
+ integrity: sha512-tbaX1tZCSpGifDNBfDdEZAMxVF3Yg4bhFP/bm1needc0diqb+Zflc0u5tM5/6BWDMITQDwenJVsNiQ8ZdtJURA==,
}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
- '@types/babel__generator@7.27.0':
+ '@nx/nx-linux-x64-musl@22.7.5':
resolution:
{
- integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==,
+ integrity: sha512-H0M7csOZIgPT822LqjxSXzf4MXRND15vIkAQe3F3Jlr3Si8LC3tzbL52aVcRfgb8MF/xOB5U47mSwxWt1M2bPQ==,
}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
- '@types/babel__template@7.4.4':
+ '@nx/nx-win32-arm64-msvc@22.7.5':
resolution:
{
- integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==,
+ integrity: sha512-JTcZch9YAnDL1gbhqePz3DZ4x7iYemLn1yJzrjbbXAmXju2eiiJiZvJJHbV06+SP9HKXDT8RjTKuAWTdVxnHug==,
}
+ cpu: [arm64]
+ os: [win32]
- '@types/babel__traverse@7.28.0':
+ '@nx/nx-win32-x64-msvc@22.7.5':
resolution:
{
- integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==,
+ integrity: sha512-ngcMyHdBJ9FSz2nHdbZ7gtJlFq0O2b05sPAsVMkZ18CKzdaA1qrBDJfsMO49hPCny505eiT766+CkKdaCDl5kA==,
}
+ cpu: [x64]
+ os: [win32]
- '@types/chai@5.2.3':
+ '@observablehq/plot@0.6.17':
resolution:
{
- integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==,
+ integrity: sha512-/qaXP/7mc4MUS0s4cPPFASDRjtsWp85/TbfsciqDgU1HwYixbSbbytNuInD8AcTYC3xaxACgVX06agdfQy9W+g==,
}
+ engines: { node: '>=12' }
- '@types/d3-array@3.2.2':
+ '@observablehq/sample-datasets@1.0.1':
resolution:
{
- integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==,
+ integrity: sha512-2gc2wteMytPgDalqUPdLHEFInNb8J3vI17oniIYS89B1iwuO4EPXNWgzpfryyB4CH35CpXL0BgHfVeI+qICWwA==,
}
- '@types/d3-brush@3.0.6':
+ '@oxc-project/types@0.139.0':
resolution:
{
- integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==,
+ integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==,
}
- '@types/d3-color@3.1.3':
+ '@parcel/watcher-android-arm64@2.6.0':
resolution:
{
- integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==,
+ integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [android]
- '@types/d3-contour@3.0.6':
+ '@parcel/watcher-darwin-arm64@2.6.0':
resolution:
{
- integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==,
+ integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [darwin]
- '@types/d3-delaunay@6.0.4':
+ '@parcel/watcher-darwin-x64@2.6.0':
resolution:
{
- integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==,
+ integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [darwin]
- '@types/d3-ease@3.0.2':
+ '@parcel/watcher-freebsd-x64@2.6.0':
resolution:
{
- integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==,
+ integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [freebsd]
- '@types/d3-force@3.0.10':
+ '@parcel/watcher-linux-arm-glibc@2.6.0':
resolution:
{
- integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==,
+ integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
- '@types/d3-format@3.0.4':
+ '@parcel/watcher-linux-arm-musl@2.6.0':
resolution:
{
- integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==,
+ integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
- '@types/d3-geo@3.1.0':
+ '@parcel/watcher-linux-arm64-glibc@2.6.0':
resolution:
{
- integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==,
+ integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
- '@types/d3-hexbin@0.2.5':
+ '@parcel/watcher-linux-arm64-musl@2.6.0':
resolution:
{
- integrity: sha512-EF/1szlis0vN810Q3F//NYeiOjiRZHiRlHADQzc8GMMeaJx9J662LHsxJYBqwqlsTMZuvVk1qLULyvC7p1JNAg==,
+ integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
- '@types/d3-hierarchy@3.1.7':
+ '@parcel/watcher-linux-x64-glibc@2.6.0':
resolution:
{
- integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==,
+ integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
- '@types/d3-interpolate@3.0.4':
+ '@parcel/watcher-linux-x64-musl@2.6.0':
resolution:
{
- integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==,
+ integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
- '@types/d3-path@1.0.11':
+ '@parcel/watcher-win32-arm64@2.6.0':
resolution:
{
- integrity: sha512-4pQMp8ldf7UaB/gR8Fvvy69psNHkTpD/pVw3vmEi8iZAB9EPMBruB1JvHO4BIq9QkUUd2lV1F5YXpMNj7JPBpw==,
+ integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [win32]
- '@types/d3-path@3.1.1':
+ '@parcel/watcher-win32-x64@2.6.0':
resolution:
{
- integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==,
+ integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==,
}
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [win32]
- '@types/d3-polygon@3.0.2':
+ '@parcel/watcher@2.6.0':
resolution:
{
- integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==,
+ integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==,
}
+ engines: { node: '>= 10.0.0' }
- '@types/d3-quadtree@3.0.6':
+ '@poppinss/colors@4.1.6':
resolution:
{
- integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==,
+ integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==,
}
- '@types/d3-sankey@0.12.5':
+ '@poppinss/dumper@0.6.5':
resolution:
{
- integrity: sha512-/3RZSew0cLAtzGQ+C89hq/Rp3H20QJuVRSqFy6RKLe7E0B8kd2iOS1oBsodrgds4PcNVpqWhdUEng/SHvBcJ6Q==,
+ integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==,
}
- '@types/d3-scale@4.0.9':
+ '@poppinss/exception@1.2.3':
resolution:
{
- integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==,
+ integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==,
}
- '@types/d3-selection@3.0.11':
+ '@react-native-community/cli-clean@20.1.0':
resolution:
{
- integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==,
+ integrity: sha512-77L4DifWfxAT8ByHnkypge7GBMYpbJAjBGV+toowt5FQSGaTBDcBHCX+FFqFRukD5fH6i8sZ41Gtw+nbfCTTIA==,
}
- '@types/d3-shape@1.3.12':
+ '@react-native-community/cli-config-android@20.1.0':
resolution:
{
- integrity: sha512-8oMzcd4+poSLGgV0R1Q1rOlx/xdmozS4Xab7np0eamFFUYq71AU9pOCJEFnkXW2aI/oXdVYJzw6pssbSut7Z9Q==,
+ integrity: sha512-3A01ZDyFeCALzzPcwP/fleHoP3sGNq1UX7FzxkTrOFX8RRL9ntXNXQd27E56VU4BBxGAjAJT4Utw8pcOjJceIA==,
}
- '@types/d3-shape@3.1.8':
+ '@react-native-community/cli-config-apple@20.1.0':
resolution:
{
- integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==,
+ integrity: sha512-n6JVs8Q3yxRbtZQOy05ofeb1kGtspGN3SgwPmuaqvURF9fsuS7c4/9up2Kp9C+1D2J1remPJXiZLNGOcJvfpOA==,
}
- '@types/d3-time@3.0.4':
+ '@react-native-community/cli-config@20.1.0':
resolution:
{
- integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==,
+ integrity: sha512-1x9rhLLR/dKKb92Lb5O0l0EmUG08FHf+ZVyVEf9M+tX+p5QIm52MRiy43R0UAZ2jJnFApxRk+N3sxoYK4Dtnag==,
}
- '@types/d3-timer@3.0.2':
+ '@react-native-community/cli-doctor@20.1.0':
resolution:
{
- integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==,
+ integrity: sha512-QfJF1GVjA4PBrIT3SJ0vFFIu0km1vwOmLDlOYVqfojajZJ+Dnvl0f94GN1il/jT7fITAxom///XH3/URvi7YTQ==,
}
- '@types/d3-zoom@3.0.8':
+ '@react-native-community/cli-platform-android@20.1.0':
resolution:
{
- integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==,
+ integrity: sha512-TeHPDThOwDppQRpndm9kCdRCBI8AMy3HSIQ+iy7VYQXL5BtZ5LfmGdusoj7nVN/ZGn0Lc6Gwts5qowyupXdeKg==,
}
- '@types/deep-eql@4.0.2':
+ '@react-native-community/cli-platform-apple@20.1.0':
resolution:
{
- integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==,
+ integrity: sha512-0ih1hrYezSM2cuOlVnwBEFtMwtd8YgpTLmZauDJCv50rIumtkI1cQoOgLoS4tbPCj9U/Vn2a9BFH0DLFOOIacg==,
}
- '@types/estree-jsx@1.0.5':
+ '@react-native-community/cli-platform-ios@20.1.0':
resolution:
{
- integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==,
+ integrity: sha512-XN7Da9z4WsJxtqVtEzY8q2bv22OsvzaFP5zy5+phMWNoJlU4lf7IvBSxqGYMpQ9XhYP7arDw5vmW4W34s06rnA==,
}
- '@types/estree@1.0.9':
+ '@react-native-community/cli-server-api@20.1.0':
resolution:
{
- integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==,
+ integrity: sha512-Tb415Oh8syXNT2zOzLzFkBXznzGaqKCiaichxKzGCDKg6JGHp3jSuCmcTcaPeYC7oc32n/S3Psw7798r4Q/7lA==,
}
- '@types/geojson@7946.0.16':
+ '@react-native-community/cli-tools@20.1.0':
resolution:
{
- integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==,
+ integrity: sha512-/YmzHGOkY6Bgrv4OaA1L8rFqsBlQd1EB2/ipAoKPiieV0EcB5PUamUSuNeFU3sBZZTYQCUENwX4wgOHgFUlDnQ==,
}
- '@types/jsdom@27.0.0':
+ '@react-native-community/cli-types@20.1.0':
resolution:
{
- integrity: sha512-NZyFl/PViwKzdEkQg96gtnB8wm+1ljhdDay9ahn4hgb+SfVtPCbm3TlmDUFXTA+MGN3CijicnMhG18SI5H3rFw==,
+ integrity: sha512-D0kDspcwgbVXyNjwicT7Bb1JgXjijTw1JJd+qxyF/a9+sHv7TU4IchV+gN38QegeXqVyM4Ym7YZIvXMFBmyJqA==,
}
- '@types/node@12.20.55':
+ '@react-native-community/cli@20.1.0':
resolution:
{
- integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==,
+ integrity: sha512-441WsVtRe4nGJ9OzA+QMU1+22lA6Q2hRWqqIMKD0wjEMLqcSfOZyu2UL9a/yRpL/dRpyUsU4n7AxqKfTKO/Csg==,
}
+ engines: { node: '>=20.19.4' }
+ hasBin: true
- '@types/node@25.9.5':
+ '@react-native/assets-registry@0.86.2':
resolution:
{
- integrity: sha512-OScDchr2fwuUmWdf4kZ9h7PcJiYDVInhJizG/biAq3cAvqwYktuy/TYGGdZNMtNTFUP7rnb0NU4TUdm82kt4Rg==,
+ integrity: sha512-vcX/mBjWAVnWofu7KecotquI2unZ/tITwA7OGdq/mdY/zmGXIEvYhfEYyOQij/LRqi9WAL+iizInTBWnxDhK/Q==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
- '@types/react-dom@19.2.3':
+ '@react-native/babel-plugin-codegen@0.86.2':
resolution:
{
- integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==,
+ integrity: sha512-NNDZqOlNbH5SzgPks1jFDYH3234Rpa5e/nhZymxhIiBH3NcE3uD+rGj/HWXhH7nHF2ToGK6XbUpqy7nmJPeh+g==,
}
- peerDependencies:
- '@types/react': ^19.2.0
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
- '@types/react@19.2.17':
+ '@react-native/babel-preset@0.86.2':
resolution:
{
- integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==,
+ integrity: sha512-4XKEJ6jKW9lXMB1O5o47gBoGgolde1fbX13gLW/erlcn+1ky+MHHo5UjuM3RWGdPJHIvIzekDDumSUHhB9x5iQ==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+ peerDependencies:
+ '@babel/core': '*'
- '@types/topojson-client@3.1.5':
+ '@react-native/codegen@0.86.2':
resolution:
{
- integrity: sha512-C79rySTyPxnQNNguTZNI1Ct4D7IXgvyAs3p9HPecnl6mNrJ5+UhvGNYcZfpROYV2lMHI48kJPxwR+F9C6c7nmw==,
+ integrity: sha512-xKkudsahUJ1n//55g4fXk5BStVqqmZlz8HQveL45ZxcfDnwvhuYe2GymksQANFsSN+slvrarjrfq8kIxJzbceA==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+ peerDependencies:
+ '@babel/core': '*'
- '@types/topojson-specification@1.0.5':
+ '@react-native/community-cli-plugin@0.86.2':
resolution:
{
- integrity: sha512-C7KvcQh+C2nr6Y2Ub4YfgvWvWCgP2nOQMtfhlnwsRL4pYmmwzBS7HclGiS87eQfDOU/DLQpX6GEscviaz4yLIQ==,
+ integrity: sha512-YHXNKoM6Y/HjREySZ5arET2xgiHgg67r1MdwJB//MPJAJ0Xc5g0u6UHxY9VzsHO3Y07dre6s0BinYwjt1SEWvQ==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+ peerDependencies:
+ '@react-native-community/cli': '*'
+ '@react-native/metro-config': 0.86.2
+ peerDependenciesMeta:
+ '@react-native-community/cli':
+ optional: true
+ '@react-native/metro-config':
+ optional: true
- '@types/tough-cookie@4.0.5':
+ '@react-native/debugger-frontend@0.86.2':
resolution:
{
- integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==,
+ integrity: sha512-KGS1aV5F6cIqpnoIUhLBXyVzy1oAj8jBFGau6vX4Vy0HXRJN7p+68RU7x6NuyraHvQcR14ccMGT5TkFuNjQ4gA==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
- '@types/trusted-types@2.0.7':
+ '@react-native/debugger-shell@0.86.2':
resolution:
{
- integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==,
+ integrity: sha512-/TaVJ2+gGajZPJGrFaObUQmHmlaxAlfmOPZicl6pNKDUjzSgFMpcLkdTOExvb+USYTVdGX1XwxXyvjQdUO2bvg==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
- '@types/use-sync-external-store@0.0.6':
+ '@react-native/dev-middleware@0.86.2':
resolution:
{
- integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==,
+ integrity: sha512-B7L0vKvg+IcEElT7Vpqh1xj5yJAqWUegjbP+bQRaorJMAYnv11GkliTnZV2AdTDfZQJWgOEx8i8LGkHkUg7bnA==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
- '@vitejs/plugin-react@6.0.4':
+ '@react-native/gradle-plugin@0.86.2':
resolution:
{
- integrity: sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==,
+ integrity: sha512-2F6x14NcHMpVmfTTFKfMkpV5dZedZrLiv6PE+c3vgnesV2bjleUBydr4U+NI8VkI7OwW71L0A5qQ76I9LCrfoQ==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- peerDependencies:
- '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0
- babel-plugin-react-compiler: ^1.0.0
- vite: ^8.0.0
- peerDependenciesMeta:
- '@rolldown/plugin-babel':
- optional: true
- babel-plugin-react-compiler:
- optional: true
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
- '@vitest/expect@4.1.10':
+ '@react-native/js-polyfills@0.86.2':
resolution:
{
- integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==,
+ integrity: sha512-bIwNcGBaQ74shB5z1mRkxOpjikimuwsnOCEkZSzL67Z1FTyK1ObpENfyd2QvcvVW9Cjl+tHuw9ynpBnb2jPoJQ==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
- '@vitest/mocker@4.1.10':
+ '@react-native/metro-babel-transformer@0.86.2':
resolution:
{
- integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==,
+ integrity: sha512-mX1wgLErdb2hDgXJr9zM9SWLe+ZteZTFTwRWGOQ53yEJwc9DVSnxdTlAtVdMeOj2ntycKh0R8jYdat2Am43cwQ==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
peerDependencies:
- msw: ^2.4.9
- vite: ^6.0.0 || ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- msw:
- optional: true
- vite:
- optional: true
+ '@babel/core': '*'
- '@vitest/pretty-format@4.1.10':
+ '@react-native/metro-config@0.86.2':
resolution:
{
- integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==,
+ integrity: sha512-hJno256j+MS0b3JD1aD3ouTGZVacKNVBuXL2atMQQ8BZ060vl1ptnZ83y569aDW+/rgFSOcqn6ydKeSz4uUKQQ==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
- '@vitest/runner@4.1.10':
+ '@react-native/normalize-colors@0.86.2':
resolution:
{
- integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==,
+ integrity: sha512-EzPFc9Y6lzYOWeso2almwXI7f8+qReHxWvT+algsOczb2UhWXIWXDoSvkdwoSfiwwmGt/ijJgKJoeHlzPkLwRg==,
}
- '@vitest/snapshot@4.1.10':
+ '@react-native/typescript-config@0.86.2':
resolution:
{
- integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==,
+ integrity: sha512-DcIsPc652AD10sSKWZPv2QjsEB63DEXW20XYwDzk3zdl94XbTlTSn1+VZbtx7MzHk0kkSQcaX30yTdVkNUAz8Q==,
}
- '@vitest/spy@4.1.10':
+ '@react-native/virtualized-lists@0.86.2':
resolution:
{
- integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==,
+ integrity: sha512-uO0J72gh3EvE+1/GHRk18QRyBDTRHRB0AraAfojsRjbT7VMuJwKrZYaKGshavoaEud6aw00ZB9/8mTMIKjjcAw==,
}
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+ peerDependencies:
+ '@types/react': ^19.2.0
+ react: '*'
+ react-native: 0.86.2
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
- '@vitest/utils@4.1.10':
+ '@reduxjs/toolkit@2.12.0':
resolution:
{
- integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==,
+ integrity: sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==,
}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18 || ^19
+ react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-redux:
+ optional: true
- '@vue/compiler-core@3.5.40':
+ '@rolldown/binding-android-arm64@1.1.5':
resolution:
{
- integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==,
+ integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [android]
- '@vue/compiler-dom@3.5.40':
+ '@rolldown/binding-darwin-arm64@1.1.5':
resolution:
{
- integrity: sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==,
+ integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [darwin]
- '@vue/compiler-sfc@3.5.40':
+ '@rolldown/binding-darwin-x64@1.1.5':
resolution:
{
- integrity: sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==,
+ integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [darwin]
- '@vue/compiler-ssr@3.5.40':
+ '@rolldown/binding-freebsd-x64@1.1.5':
resolution:
{
- integrity: sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==,
+ integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [freebsd]
- '@vue/reactivity@3.1.5':
+ '@rolldown/binding-linux-arm-gnueabihf@1.1.5':
resolution:
{
- integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==,
+ integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm]
+ os: [linux]
- '@vue/reactivity@3.5.40':
+ '@rolldown/binding-linux-arm64-gnu@1.1.5':
resolution:
{
- integrity: sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA==,
+ integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
- '@vue/runtime-core@3.5.40':
+ '@rolldown/binding-linux-arm64-musl@1.1.5':
resolution:
{
- integrity: sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw==,
+ integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
- '@vue/runtime-dom@3.5.40':
+ '@rolldown/binding-linux-ppc64-gnu@1.1.5':
resolution:
{
- integrity: sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ==,
+ integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
- '@vue/server-renderer@3.5.40':
+ '@rolldown/binding-linux-s390x-gnu@1.1.5':
resolution:
{
- integrity: sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw==,
+ integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
- '@vue/shared@3.1.5':
+ '@rolldown/binding-linux-x64-gnu@1.1.5':
resolution:
{
- integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==,
+ integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
- '@vue/shared@3.5.40':
+ '@rolldown/binding-linux-x64-musl@1.1.5':
resolution:
{
- integrity: sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg==,
+ integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
- '@yarnpkg/lockfile@1.1.0':
+ '@rolldown/binding-openharmony-arm64@1.1.5':
resolution:
{
- integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==,
+ integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [openharmony]
- '@zkochan/js-yaml@0.0.7':
+ '@rolldown/binding-wasm32-wasi@1.1.5':
resolution:
{
- integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==,
+ integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==,
}
- hasBin: true
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [wasm32]
- acorn@8.17.0:
+ '@rolldown/binding-win32-arm64-msvc@1.1.5':
resolution:
{
- integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==,
+ integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==,
}
- engines: { node: '>=0.4.0' }
- hasBin: true
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [win32]
- ajv@8.20.0:
+ '@rolldown/binding-win32-x64-msvc@1.1.5':
resolution:
{
- integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==,
+ integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==,
}
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [win32]
- alpinejs@3.15.12:
+ '@rolldown/pluginutils@1.0.1':
resolution:
{
- integrity: sha512-nJvPAQVNPdZZ0NrExJ/kzQco3ijR8LwvCOadQecllESiqT4NyZ/57sN9V2XyvhlBGAbmlKYgeWZvYdKq99ij/Q==,
+ integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==,
}
- ansi-colors@4.1.3:
+ '@rollup/plugin-json@6.1.0':
resolution:
{
- integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==,
+ integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==,
}
- engines: { node: '>=6' }
+ engines: { node: '>=14.0.0' }
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
- ansi-regex@5.0.1:
+ '@rollup/pluginutils@5.4.0':
resolution:
{
- integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==,
+ integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==,
}
- engines: { node: '>=8' }
+ engines: { node: '>=14.0.0' }
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
- ansi-regex@6.2.2:
+ '@rollup/rollup-android-arm-eabi@4.62.3':
resolution:
{
- integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==,
+ integrity: sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==,
}
- engines: { node: '>=12' }
+ cpu: [arm]
+ os: [android]
- ansi-styles@4.3.0:
+ '@rollup/rollup-android-arm64@4.62.3':
resolution:
{
- integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==,
+ integrity: sha512-3YjElDdWN+qXAFbJ/CzPV+0wspLqh54k/I6GfdYtEJRqg7buSgc1yPM3B+93j1M4neobtkATHZTmxK2AMVGfnA==,
}
- engines: { node: '>=8' }
+ cpu: [arm64]
+ os: [android]
- ansi-styles@6.2.3:
+ '@rollup/rollup-darwin-arm64@4.62.3':
resolution:
{
- integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==,
+ integrity: sha512-Pch2pFNOxxz1hTjypIdPyRTR6riiwRl84+VcN9djS680fw+Co1nAJINrdpqp7KV0NvyuU8ilZXZCjd7ykJl1GQ==,
}
- engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [darwin]
- argparse@1.0.10:
+ '@rollup/rollup-darwin-x64@4.62.3':
resolution:
{
- integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==,
+ integrity: sha512-LEuncFUHFiF8t4yZVZvvZA1wk0pjAscRnsrn1EfTEmN4HXotBi2YtcnLRyaK6UbuczW7xZS5ES+81Rdz8Z0T6g==,
}
+ cpu: [x64]
+ os: [darwin]
- argparse@2.0.1:
+ '@rollup/rollup-freebsd-arm64@4.62.3':
resolution:
{
- integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==,
+ integrity: sha512-zvBUvsQUpOWALdDsk6qbS8bXf2VxmPisuudNDrY7x0p0jBdsoZl8HsHczIOgkQiZldmcacMKtBzpoGVNeIe2bQ==,
}
+ cpu: [arm64]
+ os: [freebsd]
- aria-query@5.3.1:
+ '@rollup/rollup-freebsd-x64@4.62.3':
resolution:
{
- integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==,
+ integrity: sha512-C2KmNrcSem/AMg984H/dev+si0lieQGdXdR/lYGJnuumXnFb9Y7QdiI62obFdLlxRYLBv4P0eUVIDbD4c1vVvw==,
}
- engines: { node: '>= 0.4' }
+ cpu: [x64]
+ os: [freebsd]
- array-union@2.1.0:
+ '@rollup/rollup-linux-arm-gnueabihf@4.62.3':
resolution:
{
- integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==,
+ integrity: sha512-ggXnsTAEzNQx74XpunRsiZ9aBZDsI7XIa0hm2nzR9f4WzH5/f/d73ZSDaC5ejJ8YLY4NW+V3wr0tjOaeCq8hqA==,
}
- engines: { node: '>=8' }
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
- assertion-error@2.0.1:
+ '@rollup/rollup-linux-arm-musleabihf@4.62.3':
resolution:
{
- integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==,
+ integrity: sha512-2vng+FlzNUhKZxtej3IUqJgbZoQk2M/dwQM20+ULV0R/E/8tr9/P6uEf2iiGIk4HL0zMKh5Jry7mUHdUOvyGgA==,
}
- engines: { node: '>=12' }
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
- asynckit@0.4.0:
+ '@rollup/rollup-linux-arm64-gnu@4.62.3':
resolution:
{
- integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==,
+ integrity: sha512-LLLFZKt4/Nraf9rxDkhiU8QVgLF4WmCkfr0L4fj0fPfIZFBib0DeiFk1hhaYKd03LFAFJcxHslhDFlNJLylf5Q==,
}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
- axios@1.16.0:
+ '@rollup/rollup-linux-arm64-musl@4.62.3':
resolution:
{
- integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==,
+ integrity: sha512-WJkdQCvS9sWNOUBJZfQRKpZGFBztRzcowI+nndmflKgU4XY+3a420FgTOSKTsVqJbnzSxeT4vaJalpOaPo2YCQ==,
}
-
- axobject-query@4.1.0:
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-loong64-gnu@4.62.3':
resolution:
{
- integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==,
+ integrity: sha512-PwHXCCS2n64/1Ot6rP1YEYA02MGYBcQlr8CSZZyrUG2O7NH6NklYmvr9v3Jy+5e/eDeNchc/ukmKJi9LuflMIQ==,
}
- engines: { node: '>= 0.4' }
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
- babel-plugin-jsx-dom-expressions@0.40.7:
+ '@rollup/rollup-linux-loong64-musl@4.62.3':
resolution:
{
- integrity: sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ==,
+ integrity: sha512-vUjxINQu3RC8NZS3ykk1gN65gIz8pAopOq2HXuZhiIxHdx7TFvDG+jgrdSgInu1Eza4/Rfi2VzZgyIgEH4WOaw==,
}
- peerDependencies:
- '@babel/core': ^7.20.12
+ cpu: [loong64]
+ os: [linux]
+ libc: [musl]
- babel-preset-solid@1.9.12:
+ '@rollup/rollup-linux-ppc64-gnu@4.62.3':
resolution:
{
- integrity: sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg==,
+ integrity: sha512-wzko4aJ13+0G3kGnviCg5gnXFKd40izKsrf2uOw12US4XqprkDrmwOpeW14aSNa37V8bfPcz5Fkob6LZ3BAPmA==,
}
- peerDependencies:
- '@babel/core': ^7.0.0
- solid-js: ^1.9.12
- peerDependenciesMeta:
- solid-js:
- optional: true
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
- balanced-match@4.0.3:
+ '@rollup/rollup-linux-ppc64-musl@4.62.3':
resolution:
{
- integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==,
+ integrity: sha512-8120ue0JUMSwy11stlwnfdX3pPd+WZYGCDBwEHWtIHi6pOpZmsEF5QKB7a/UN+XFdqvobxz98kv8RTqikyCEBw==,
}
- engines: { node: 20 || >=22 }
+ cpu: [ppc64]
+ os: [linux]
+ libc: [musl]
- base64-js@1.5.1:
+ '@rollup/rollup-linux-riscv64-gnu@4.62.3':
resolution:
{
- integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==,
+ integrity: sha512-XLFHnR3tXMjbOCh2vtVJHmxt+995uJsTERQyseFDRA0xxMxyTZPLa3OIUlyFaO4mF/Lu0FjmWHCuPXJT1n/IOg==,
}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
- baseline-browser-mapping@2.11.5:
+ '@rollup/rollup-linux-riscv64-musl@4.62.3':
resolution:
{
- integrity: sha512-xJo6a6YZnwZfnyGmQKWMbVOcii7XRibjOskRh+WJ9UHQoX16xrQrcIgAMQOzfvs8XiLMx6ih/fsLPF73iY2D1A==,
+ integrity: sha512-se6yXvNGMIl0f+RQzyh7XAmia8/9kplQx424wnG2w0C1oi6XgO6Y8otKhdXFHbHs88Ihavzmvh1NWjuovE76BQ==,
}
- engines: { node: '>=6.0.0' }
- hasBin: true
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
- better-path-resolve@1.0.0:
+ '@rollup/rollup-linux-s390x-gnu@4.62.3':
resolution:
{
- integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==,
+ integrity: sha512-gNoxRefktVIiGflpONuxWWXZAzIQG++z9qHO3xKwk4WdDMuQja3JHGfE1u0i3PfPDyvhypdk+WrgIJqLhGG7sg==,
}
- engines: { node: '>=4' }
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
- bidi-js@1.0.3:
+ '@rollup/rollup-linux-x64-gnu@4.62.3':
resolution:
{
- integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==,
+ integrity: sha512-V4KtWtQfAFMU7+9/A/VDps/VI8CHd3cYz0L8sgJzz8qK7eY7wI4ruFD82UYIYvW9Z4DtlTfhQcsl4XyPHW5uSg==,
}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
- binary-search-bounds@2.0.5:
+ '@rollup/rollup-linux-x64-musl@4.62.3':
resolution:
{
- integrity: sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==,
+ integrity: sha512-LBx9LYXvj2CBkMkjLdNAWLwH0MLMin7do2VcVo9kVPibGLkY0BQQut2fv7NVqkXqZ/CrAu9LqDHVV1xHCMpCPw==,
}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
- bl@4.1.0:
+ '@rollup/rollup-openbsd-x64@4.62.3':
resolution:
{
- integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==,
+ integrity: sha512-ABVf3Q0RCu7NcyCCOZQI0pJ3GuSdfSl8EXcy88QtdceIMIoCUdfhsJChZ64L9zVM2aJHjde1Bhn5uqSRcX9ySA==,
}
+ cpu: [x64]
+ os: [openbsd]
- blake3-wasm@2.1.5:
+ '@rollup/rollup-openharmony-arm64@4.62.3':
resolution:
{
- integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==,
+ integrity: sha512-+2Cy/ldweGBLlPIKsQLF8U5N44a0KDdbrk1rAjHOM9M2K+kGdIVjHLmmrZIcx+9Ny3ke/1JomCsDI1ocb11+sg==,
}
+ cpu: [arm64]
+ os: [openharmony]
- brace-expansion@5.0.6:
+ '@rollup/rollup-win32-arm64-msvc@4.62.3':
resolution:
{
- integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==,
+ integrity: sha512-dtZvzc8BedpSaFNy75x6uiWwAGTH+aZHDtdrqP6qk+WcLJrfti6sGje1ZJ9UxyzDLF23d/mV+PaMwuC0hL7UVA==,
}
- engines: { node: 18 || 20 || >=22 }
+ cpu: [arm64]
+ os: [win32]
- brace-expansion@5.0.8:
+ '@rollup/rollup-win32-ia32-msvc@4.62.3':
resolution:
{
- integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==,
+ integrity: sha512-Rj8Ra4noo+aYy7sKBggCx0407mws34kAb1ySyWuq5DAtFBQdkSwnsjCgPrhPe9cvgBKZIukpE+CVHvORCS93kQ==,
}
- engines: { node: 20 || >=22 }
+ cpu: [ia32]
+ os: [win32]
- braces@3.0.3:
+ '@rollup/rollup-win32-x64-gnu@4.62.3':
resolution:
{
- integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==,
+ integrity: sha512-vp7N084ew/odXn2gi/mzm9mUkQu9l6AiN6dt4IeUM2Uvm9o+cVmP+YkqbMOteLbiGgqBBlJZjIMYVCfOOIVbVQ==,
}
- engines: { node: '>=8' }
+ cpu: [x64]
+ os: [win32]
- browserslist@4.28.7:
+ '@rollup/rollup-win32-x64-msvc@4.62.3':
resolution:
{
- integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==,
+ integrity: sha512-MOG/3gTOn4Fwf574RVOaY61I5o6P90legkFADiTyn1hyjNydT+cerU2rLUwPdZkKKyJ+iT+K9p7WXK4LM1Ka6g==,
}
- engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
- hasBin: true
+ cpu: [x64]
+ os: [win32]
- buffer@5.7.1:
+ '@rollup/wasm-node@4.62.3':
resolution:
{
- integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==,
+ integrity: sha512-sEOQWamme1YgXeVcE1JkB1k44RwtPWcpYpGUW1Lso7bOj+Ay9lN2Pak/CcfNeC4xqIPNhYSabQNaWYkJJR7m8Q==,
}
+ engines: { node: '>=18.0.0', npm: '>=8.0.0' }
+ hasBin: true
- call-bind-apply-helpers@1.0.2:
+ '@sideway/address@4.1.5':
resolution:
{
- integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==,
+ integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==,
}
- engines: { node: '>= 0.4' }
- caniuse-lite@1.0.30001806:
+ '@sideway/formula@3.0.1':
resolution:
{
- integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==,
+ integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==,
}
- chai@6.2.2:
+ '@sideway/pinpoint@2.0.0':
resolution:
{
- integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==,
+ integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==,
}
- engines: { node: '>=18' }
- chalk@4.1.2:
+ '@sinclair/typebox@0.27.12':
resolution:
{
- integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==,
+ integrity: sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g==,
}
- engines: { node: '>=10' }
- chalk@5.6.2:
+ '@sindresorhus/is@7.2.0':
resolution:
{
- integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==,
+ integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==,
}
- engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 }
+ engines: { node: '>=18' }
- chardet@2.2.0:
+ '@speed-highlight/core@1.2.17':
resolution:
{
- integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==,
+ integrity: sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==,
}
- chart.js@4.5.1:
+ '@standard-schema/spec@1.1.0':
resolution:
{
- integrity: sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==,
+ integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==,
}
- engines: { pnpm: '>=8' }
- chokidar@4.0.3:
+ '@standard-schema/utils@0.3.0':
resolution:
{
- integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==,
+ integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==,
}
- engines: { node: '>= 14.16.0' }
- chokidar@5.0.0:
+ '@sveltejs/acorn-typescript@1.0.11':
resolution:
{
- integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==,
+ integrity: sha512-LFuZUkjJ9iF7JZye/aG5XM0SFcQ5VyL0oVX4WJ9dc0Va3R3s0OauX1BESVCb+YN/ol8TAfqGDDAQsTG627Y5kw==,
}
- engines: { node: '>= 20.19.0' }
+ peerDependencies:
+ acorn: ^8.9.0
- cli-cursor@3.1.0:
+ '@sveltejs/load-config@0.2.1':
resolution:
{
- integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==,
+ integrity: sha512-5m3B2cbqQ4TbwW6Xkh66Ntw6dD7gNc77cCxABTTesWcq9jxIzMgTk97pZx5vEtvQx8iokgi7GIphqZe+PGwcZA==,
}
- engines: { node: '>=8' }
+ engines: { node: '>= 18.0.0' }
- cli-cursor@5.0.0:
+ '@sveltejs/package@2.5.8':
resolution:
{
- integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==,
+ integrity: sha512-zeBbsXYvHiBu56v4gJaGQoEHzg96w0E1j3dOMX8vo56s6vI5eQ57ZEZhudjwjnegnVitRRu5MrmhO0eNvaonIw==,
}
- engines: { node: '>=18' }
+ engines: { node: ^16.14 || >=18 }
+ hasBin: true
+ peerDependencies:
+ svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1
- cli-spinners@2.6.1:
+ '@sveltejs/vite-plugin-svelte@7.2.0':
resolution:
{
- integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==,
+ integrity: sha512-1SpkuMSRLfugrVX+IrKfE1RUegzo8AQzKQ6qQPfVzbcWi5IhuTPaKb5ZrLpucleFznkc4/RTeSPoRnGWFxX+EQ==,
}
- engines: { node: '>=6' }
+ engines: { node: ^20.19 || ^22.12 || >=24 }
+ peerDependencies:
+ svelte: ^5.46.4
+ vite: ^8.0.0-beta.7 || ^8.0.0
- cli-spinners@3.4.0:
+ '@tsrx/core@0.1.48':
resolution:
{
- integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==,
+ integrity: sha512-IgkkLjApPKCGvBvwcOtLT6bACFglB5RBKW9fYErYMXJC6bxk/GM1lVAnuV9FiadiZ5jXrTw9uTxbZULncycSQQ==,
}
- engines: { node: '>=18.20' }
- cliui@8.0.1:
+ '@tybys/wasm-util@0.10.3':
resolution:
{
- integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==,
+ integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==,
}
- engines: { node: '>=12' }
- cliui@9.0.1:
+ '@tybys/wasm-util@0.9.0':
resolution:
{
- integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==,
+ integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==,
}
- engines: { node: '>=20' }
- clone@1.0.4:
+ '@types/babel__core@7.20.5':
resolution:
{
- integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==,
+ integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==,
}
- engines: { node: '>=0.8' }
- clsx@2.1.1:
+ '@types/babel__generator@7.27.0':
resolution:
{
- integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==,
+ integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==,
}
- engines: { node: '>=6' }
- color-convert@2.0.1:
+ '@types/babel__template@7.4.4':
resolution:
{
- integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==,
+ integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==,
}
- engines: { node: '>=7.0.0' }
- color-name@1.1.4:
+ '@types/babel__traverse@7.28.0':
resolution:
{
- integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==,
+ integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==,
}
- combined-stream@1.0.8:
+ '@types/chai@5.2.3':
resolution:
{
- integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==,
+ integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==,
}
- engines: { node: '>= 0.8' }
- commander@14.0.3:
+ '@types/d3-array@3.2.2':
resolution:
{
- integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==,
+ integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==,
}
- engines: { node: '>=20' }
- commander@2.20.3:
+ '@types/d3-brush@3.0.6':
resolution:
{
- integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==,
+ integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==,
}
- commander@7.2.0:
+ '@types/d3-color@3.1.3':
resolution:
{
- integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==,
+ integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==,
}
- engines: { node: '>= 10' }
- common-path-prefix@3.0.0:
+ '@types/d3-contour@3.0.6':
resolution:
{
- integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==,
+ integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==,
}
- convert-source-map@1.9.0:
+ '@types/d3-delaunay@6.0.4':
resolution:
{
- integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==,
+ integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==,
}
- convert-source-map@2.0.0:
+ '@types/d3-ease@3.0.2':
resolution:
{
- integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==,
+ integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==,
}
- cookie@1.1.1:
+ '@types/d3-force@3.0.10':
resolution:
{
- integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==,
+ integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==,
}
- engines: { node: '>=18' }
- copy-anything@3.0.5:
+ '@types/d3-format@3.0.4':
resolution:
{
- integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==,
+ integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==,
}
- engines: { node: '>=12.13' }
- cross-spawn@7.0.6:
+ '@types/d3-geo@3.1.0':
resolution:
{
- integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==,
+ integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==,
}
- engines: { node: '>= 8' }
- css-tree@3.2.1:
+ '@types/d3-hexbin@0.2.5':
resolution:
{
- integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==,
+ integrity: sha512-EF/1szlis0vN810Q3F//NYeiOjiRZHiRlHADQzc8GMMeaJx9J662LHsxJYBqwqlsTMZuvVk1qLULyvC7p1JNAg==,
}
- engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 }
- csstype@3.2.3:
+ '@types/d3-hierarchy@3.1.7':
resolution:
{
- integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==,
+ integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==,
}
- d3-array@2.12.1:
+ '@types/d3-interpolate@3.0.4':
resolution:
{
- integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==,
+ integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==,
}
- d3-array@3.2.4:
+ '@types/d3-path@1.0.11':
resolution:
{
- integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==,
+ integrity: sha512-4pQMp8ldf7UaB/gR8Fvvy69psNHkTpD/pVw3vmEi8iZAB9EPMBruB1JvHO4BIq9QkUUd2lV1F5YXpMNj7JPBpw==,
}
- engines: { node: '>=12' }
- d3-axis@3.0.0:
+ '@types/d3-path@3.1.1':
resolution:
{
- integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==,
+ integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==,
}
- engines: { node: '>=12' }
- d3-brush@3.0.0:
+ '@types/d3-polygon@3.0.2':
resolution:
{
- integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==,
+ integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==,
}
- engines: { node: '>=12' }
- d3-chord@3.0.1:
+ '@types/d3-quadtree@3.0.6':
resolution:
{
- integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==,
+ integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==,
}
- engines: { node: '>=12' }
- d3-color@3.1.0:
+ '@types/d3-sankey@0.12.5':
resolution:
{
- integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==,
+ integrity: sha512-/3RZSew0cLAtzGQ+C89hq/Rp3H20QJuVRSqFy6RKLe7E0B8kd2iOS1oBsodrgds4PcNVpqWhdUEng/SHvBcJ6Q==,
}
- engines: { node: '>=12' }
- d3-contour@4.0.2:
+ '@types/d3-scale@4.0.9':
resolution:
{
- integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==,
+ integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==,
}
- engines: { node: '>=12' }
- d3-delaunay@6.0.4:
+ '@types/d3-selection@3.0.11':
resolution:
{
- integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==,
+ integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==,
}
- engines: { node: '>=12' }
- d3-dispatch@3.0.1:
+ '@types/d3-shape@1.3.12':
resolution:
{
- integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==,
+ integrity: sha512-8oMzcd4+poSLGgV0R1Q1rOlx/xdmozS4Xab7np0eamFFUYq71AU9pOCJEFnkXW2aI/oXdVYJzw6pssbSut7Z9Q==,
}
- engines: { node: '>=12' }
- d3-drag@3.0.0:
+ '@types/d3-shape@3.1.8':
resolution:
{
- integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==,
+ integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==,
}
- engines: { node: '>=12' }
- d3-dsv@3.0.1:
+ '@types/d3-time@3.0.4':
resolution:
{
- integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==,
+ integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==,
}
- engines: { node: '>=12' }
- hasBin: true
- d3-ease@3.0.1:
+ '@types/d3-timer@3.0.2':
resolution:
{
- integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==,
+ integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==,
}
- engines: { node: '>=12' }
- d3-fetch@3.0.1:
+ '@types/d3-zoom@3.0.8':
resolution:
{
- integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==,
+ integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==,
}
- engines: { node: '>=12' }
- d3-force@3.0.0:
+ '@types/deep-eql@4.0.2':
resolution:
{
- integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==,
+ integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==,
}
- engines: { node: '>=12' }
- d3-format@3.1.2:
+ '@types/estree-jsx@1.0.5':
resolution:
{
- integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==,
+ integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==,
}
- engines: { node: '>=12' }
- d3-geo@3.1.1:
+ '@types/estree@1.0.9':
resolution:
{
- integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==,
+ integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==,
}
- engines: { node: '>=12' }
- d3-hexbin@0.2.2:
+ '@types/geojson@7946.0.16':
resolution:
{
- integrity: sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==,
+ integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==,
}
- d3-hierarchy@3.1.2:
+ '@types/istanbul-lib-coverage@2.0.6':
resolution:
{
- integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==,
+ integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==,
}
- engines: { node: '>=12' }
- d3-interpolate@3.0.1:
+ '@types/istanbul-lib-report@3.0.3':
resolution:
{
- integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==,
+ integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==,
}
- engines: { node: '>=12' }
- d3-path@1.0.9:
+ '@types/istanbul-reports@3.0.4':
resolution:
{
- integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==,
+ integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==,
}
- d3-path@3.1.0:
+ '@types/jsdom@27.0.0':
resolution:
{
- integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==,
+ integrity: sha512-NZyFl/PViwKzdEkQg96gtnB8wm+1ljhdDay9ahn4hgb+SfVtPCbm3TlmDUFXTA+MGN3CijicnMhG18SI5H3rFw==,
}
- engines: { node: '>=12' }
- d3-polygon@3.0.1:
+ '@types/node@12.20.55':
resolution:
{
- integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==,
+ integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==,
}
- engines: { node: '>=12' }
- d3-quadtree@3.0.1:
+ '@types/node@25.9.5':
resolution:
{
- integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==,
+ integrity: sha512-OScDchr2fwuUmWdf4kZ9h7PcJiYDVInhJizG/biAq3cAvqwYktuy/TYGGdZNMtNTFUP7rnb0NU4TUdm82kt4Rg==,
}
- engines: { node: '>=12' }
- d3-random@3.0.1:
+ '@types/react-dom@19.2.3':
resolution:
{
- integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==,
+ integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==,
}
- engines: { node: '>=12' }
+ peerDependencies:
+ '@types/react': ^19.2.0
- d3-sankey@0.12.3:
+ '@types/react@19.2.17':
resolution:
{
- integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==,
+ integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==,
}
- d3-scale-chromatic@3.1.0:
+ '@types/topojson-client@3.1.5':
resolution:
{
- integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==,
+ integrity: sha512-C79rySTyPxnQNNguTZNI1Ct4D7IXgvyAs3p9HPecnl6mNrJ5+UhvGNYcZfpROYV2lMHI48kJPxwR+F9C6c7nmw==,
}
- engines: { node: '>=12' }
- d3-scale@4.0.2:
+ '@types/topojson-specification@1.0.5':
resolution:
{
- integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==,
+ integrity: sha512-C7KvcQh+C2nr6Y2Ub4YfgvWvWCgP2nOQMtfhlnwsRL4pYmmwzBS7HclGiS87eQfDOU/DLQpX6GEscviaz4yLIQ==,
}
- engines: { node: '>=12' }
- d3-selection@3.0.0:
+ '@types/tough-cookie@4.0.5':
resolution:
{
- integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==,
+ integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==,
}
- engines: { node: '>=12' }
- d3-shape@1.3.7:
+ '@types/trusted-types@2.0.7':
resolution:
{
- integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==,
+ integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==,
}
- d3-shape@3.2.0:
+ '@types/use-sync-external-store@0.0.6':
resolution:
{
- integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==,
+ integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==,
}
- engines: { node: '>=12' }
- d3-time-format@4.1.0:
+ '@types/yargs-parser@21.0.3':
resolution:
{
- integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==,
+ integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==,
}
- engines: { node: '>=12' }
- d3-time@3.1.0:
+ '@types/yargs@17.0.35':
resolution:
{
- integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==,
+ integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==,
}
- engines: { node: '>=12' }
- d3-timer@3.0.1:
+ '@ungap/structured-clone@1.3.3':
resolution:
{
- integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==,
+ integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==,
}
- engines: { node: '>=12' }
- d3-transition@3.0.1:
+ '@vitejs/plugin-react@6.0.4':
resolution:
{
- integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==,
+ integrity: sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==,
}
- engines: { node: '>=12' }
+ engines: { node: ^20.19.0 || >=22.12.0 }
peerDependencies:
- d3-selection: 2 - 3
+ '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0
+ babel-plugin-react-compiler: ^1.0.0
+ vite: ^8.0.0
+ peerDependenciesMeta:
+ '@rolldown/plugin-babel':
+ optional: true
+ babel-plugin-react-compiler:
+ optional: true
- d3-zoom@3.0.0:
+ '@vitest/expect@4.1.10':
resolution:
{
- integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==,
+ integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==,
}
- engines: { node: '>=12' }
- d3@7.9.0:
+ '@vitest/mocker@4.1.10':
resolution:
{
- integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==,
+ integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==,
}
- engines: { node: '>=12' }
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
- data-urls@7.0.0:
+ '@vitest/pretty-format@4.1.10':
resolution:
{
- integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==,
+ integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==,
}
- engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 }
- dataloader@1.4.0:
+ '@vitest/runner@4.1.10':
resolution:
{
- integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==,
+ integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==,
}
- debug@2.6.9:
+ '@vitest/snapshot@4.1.10':
resolution:
{
- integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==,
+ integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==,
}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- debug@3.2.7:
+ '@vitest/spy@4.1.10':
resolution:
{
- integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==,
+ integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==,
}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- debug@4.4.3:
+ '@vitest/utils@4.1.10':
resolution:
{
- integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==,
+ integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==,
}
- engines: { node: '>=6.0' }
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- decimal.js-light@2.5.1:
+ '@vscode/sudo-prompt@9.3.2':
resolution:
{
- integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==,
+ integrity: sha512-gcXoCN00METUNFeQOFJ+C9xUI0DKB+0EGMVg7wbVYRHBw2Eq3fKisDZOkRdOz3kqXRKOENMfShPOmypw1/8nOw==,
}
- decimal.js@10.6.0:
+ '@vue/compiler-core@3.5.40':
resolution:
{
- integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==,
+ integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==,
}
- dedent-js@1.0.1:
+ '@vue/compiler-dom@3.5.40':
resolution:
{
- integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==,
+ integrity: sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==,
}
- deepmerge@4.3.1:
+ '@vue/compiler-sfc@3.5.40':
resolution:
{
- integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==,
+ integrity: sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==,
}
- engines: { node: '>=0.10.0' }
- defaults@1.0.4:
+ '@vue/compiler-ssr@3.5.40':
resolution:
{
- integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==,
+ integrity: sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==,
}
- define-lazy-prop@2.0.0:
+ '@vue/reactivity@3.1.5':
resolution:
{
- integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==,
+ integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==,
}
- engines: { node: '>=8' }
- delaunator@5.1.0:
+ '@vue/reactivity@3.5.40':
resolution:
{
- integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==,
+ integrity: sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA==,
}
- delayed-stream@1.0.0:
+ '@vue/runtime-core@3.5.40':
resolution:
{
- integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==,
+ integrity: sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw==,
}
- engines: { node: '>=0.4.0' }
- dependency-graph@1.0.0:
+ '@vue/runtime-dom@3.5.40':
resolution:
{
- integrity: sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==,
+ integrity: sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ==,
}
- engines: { node: '>=4' }
- detect-indent@6.1.0:
+ '@vue/server-renderer@3.5.40':
resolution:
{
- integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==,
+ integrity: sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw==,
}
- engines: { node: '>=8' }
- detect-libc@2.1.2:
+ '@vue/shared@3.1.5':
resolution:
{
- integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==,
+ integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==,
}
- engines: { node: '>=8' }
- devalue@5.8.2:
+ '@vue/shared@3.5.40':
resolution:
{
- integrity: sha512-DObPPAfdtFbXjxLqK8s2Xk9ZuWz5+ZoFEhC7J76es4GU/rEiXwHTmbImoCdyoCOcBH1UF3+Cz6Z2sYD4hyl5TA==,
+ integrity: sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg==,
}
- dir-glob@3.0.1:
+ '@xmldom/xmldom@0.8.13':
resolution:
{
- integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==,
+ integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==,
}
- engines: { node: '>=8' }
+ engines: { node: '>=10.0.0' }
- dotenv-expand@12.0.3:
+ '@xmldom/xmldom@0.9.10':
resolution:
{
- integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==,
+ integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==,
}
- engines: { node: '>=12' }
+ engines: { node: '>=14.6' }
- dotenv@16.4.7:
+ '@yarnpkg/lockfile@1.1.0':
resolution:
{
- integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==,
+ integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==,
}
- engines: { node: '>=12' }
- dotenv@8.6.0:
+ '@zkochan/js-yaml@0.0.7':
resolution:
{
- integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==,
+ integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==,
}
- engines: { node: '>=10' }
+ hasBin: true
- dunder-proto@1.0.1:
+ abort-controller@3.0.0:
resolution:
{
- integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==,
+ integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: '>=6.5' }
- echarts@6.1.0:
+ accepts@1.3.8:
resolution:
{
- integrity: sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA==,
+ integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==,
}
+ engines: { node: '>= 0.6' }
- ejs@5.0.1:
+ accepts@2.0.0:
resolution:
{
- integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==,
+ integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==,
}
- engines: { node: '>=0.12.18' }
- hasBin: true
+ engines: { node: '>= 0.6' }
- electron-to-chromium@1.5.397:
+ acorn@8.17.0:
resolution:
{
- integrity: sha512-khGTy9U9x02KEtsKM8vx5A62BsRmcOsIgDpWr1ImE32Ax8GxHGPHZf+Eu9H8zOOyHJnB0jTbseyTHbq2XCT8yw==,
+ integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==,
}
+ engines: { node: '>=0.4.0' }
+ hasBin: true
- emoji-regex@10.6.0:
+ agent-base@7.1.4:
resolution:
{
- integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==,
+ integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==,
}
+ engines: { node: '>= 14' }
- emoji-regex@8.0.0:
+ agent-cli-detector@0.1.4:
resolution:
{
- integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==,
+ integrity: sha512-qPgevFvpaQoBaRJVKzr8R7h1WPvV3DtbgRIQlne4le66KBzXx5hNBwo/+NTw67LgkKBlhCzksrdautpUdlls0Q==,
}
+ engines: { node: '>=18.18' }
+ hasBin: true
- end-of-stream@1.4.5:
+ ajv@8.20.0:
resolution:
{
- integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==,
+ integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==,
}
- enquirer@2.3.6:
+ alpinejs@3.15.12:
resolution:
{
- integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==,
+ integrity: sha512-nJvPAQVNPdZZ0NrExJ/kzQco3ijR8LwvCOadQecllESiqT4NyZ/57sN9V2XyvhlBGAbmlKYgeWZvYdKq99ij/Q==,
}
- engines: { node: '>=8.6' }
- enquirer@2.4.1:
+ anser@1.4.10:
resolution:
{
- integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==,
+ integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==,
}
- engines: { node: '>=8.6' }
- entities@6.0.1:
+ ansi-colors@4.1.3:
resolution:
{
- integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==,
+ integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==,
}
- engines: { node: '>=0.12' }
+ engines: { node: '>=6' }
- entities@7.0.1:
+ ansi-escapes@4.3.2:
resolution:
{
- integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==,
+ integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==,
}
- engines: { node: '>=0.12' }
+ engines: { node: '>=8' }
- entities@8.0.0:
+ ansi-fragments@0.2.1:
resolution:
{
- integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==,
+ integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==,
}
- engines: { node: '>=20.19.0' }
- errno@0.1.8:
+ ansi-regex@4.1.1:
resolution:
{
- integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==,
+ integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==,
}
- hasBin: true
+ engines: { node: '>=6' }
- error-stack-parser-es@1.0.5:
+ ansi-regex@5.0.1:
resolution:
{
- integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==,
+ integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==,
}
+ engines: { node: '>=8' }
- es-define-property@1.0.1:
+ ansi-regex@6.2.2:
resolution:
{
- integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==,
+ integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: '>=12' }
- es-errors@1.3.0:
+ ansi-styles@3.2.1:
resolution:
{
- integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==,
+ integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: '>=4' }
- es-module-lexer@2.3.1:
+ ansi-styles@4.3.0:
resolution:
{
- integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==,
+ integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==,
}
+ engines: { node: '>=8' }
- es-object-atoms@1.1.1:
+ ansi-styles@5.2.0:
resolution:
{
- integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==,
+ integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: '>=10' }
- es-set-tostringtag@2.1.0:
+ ansi-styles@6.2.3:
resolution:
{
- integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==,
+ integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: '>=12' }
- es-toolkit@1.50.0:
+ appdirsjs@1.2.8:
resolution:
{
- integrity: sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==,
+ integrity: sha512-8zl1xlxeS4a0/36CT6LOaVioPOL8TeLT1b9OHk0j9xSbzmPBuM7lUgWMSTh6SbuF8fbwjcP1rr30OCLpd1fl+A==,
}
- esbuild@0.27.7:
+ arg@5.0.2:
resolution:
{
- integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==,
+ integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==,
}
- engines: { node: '>=18' }
- hasBin: true
- esbuild@0.28.1:
+ argparse@1.0.10:
resolution:
{
- integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==,
+ integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==,
}
- engines: { node: '>=18' }
- hasBin: true
- escalade@3.2.0:
+ argparse@2.0.1:
resolution:
{
- integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==,
+ integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==,
}
- engines: { node: '>=6' }
- escape-string-regexp@1.0.5:
+ aria-query@5.3.1:
resolution:
{
- integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==,
+ integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==,
}
- engines: { node: '>=0.8.0' }
+ engines: { node: '>= 0.4' }
- esm-env@1.2.2:
+ array-union@2.1.0:
resolution:
{
- integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==,
+ integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==,
}
+ engines: { node: '>=8' }
- esprima@4.0.1:
+ asap@2.0.6:
resolution:
{
- integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==,
+ integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==,
}
- engines: { node: '>=4' }
- hasBin: true
- esrap@2.3.0:
+ assertion-error@2.0.1:
resolution:
{
- integrity: sha512-GQ/7RN8uOtEfNpzZzBMTzW9JBcX42oaSVtPzdF+6cEL8pqIL094iUpr9jzYGn4O4P/1S60dJ6izyT8F4LYARng==,
+ integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==,
}
- peerDependencies:
- '@typescript-eslint/types': ^8.2.0
- peerDependenciesMeta:
- '@typescript-eslint/types':
- optional: true
+ engines: { node: '>=12' }
- estree-walker@2.0.2:
+ astral-regex@1.0.0:
resolution:
{
- integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==,
+ integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==,
}
+ engines: { node: '>=4' }
- estree-walker@3.0.3:
+ async-limiter@1.0.1:
resolution:
{
- integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==,
+ integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==,
}
- eventemitter3@5.0.4:
+ asynckit@0.4.0:
resolution:
{
- integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==,
+ integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==,
}
- expect-type@1.4.0:
+ axios@1.16.0:
resolution:
{
- integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==,
+ integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==,
}
- engines: { node: '>=12.0.0' }
- extendable-error@0.1.7:
+ axobject-query@4.1.0:
resolution:
{
- integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==,
+ integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==,
}
+ engines: { node: '>= 0.4' }
- fast-deep-equal@3.1.3:
+ babel-plugin-jsx-dom-expressions@0.40.7:
resolution:
{
- integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==,
+ integrity: sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ==,
}
+ peerDependencies:
+ '@babel/core': ^7.20.12
- fast-glob@3.3.3:
+ babel-plugin-polyfill-corejs2@0.4.17:
resolution:
{
- integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==,
+ integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==,
}
- engines: { node: '>=8.6.0' }
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- fast-uri@3.1.4:
+ babel-plugin-polyfill-corejs3@0.13.0:
resolution:
{
- integrity: sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==,
+ integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==,
}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- fastq@1.20.1:
+ babel-plugin-polyfill-regenerator@0.6.8:
resolution:
{
- integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==,
+ integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==,
}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- fdir@6.5.0:
+ babel-plugin-react-compiler@1.0.0:
resolution:
{
- integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==,
+ integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==,
}
- engines: { node: '>=12.0.0' }
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
- figures@3.2.0:
+ babel-plugin-react-native-web@0.21.2:
resolution:
{
- integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==,
+ integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==,
}
- engines: { node: '>=8' }
- fill-range@7.1.1:
+ babel-plugin-syntax-hermes-parser@0.36.0:
resolution:
{
- integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==,
+ integrity: sha512-LhD0xdoedDw7ansQgXbB2DADLZIK/LRXuWNBPuVzMc5S2WK5GyT89tCM+cQzxFGO0mGyLK6D5TrVOJJzAoDy8Q==,
}
- engines: { node: '>=8' }
- find-cache-directory@6.0.0:
+ babel-plugin-transform-flow-enums@0.0.2:
resolution:
{
- integrity: sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==,
+ integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==,
}
- engines: { node: '>=20' }
- find-up-simple@1.0.1:
+ babel-preset-expo@57.0.5:
resolution:
{
- integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==,
+ integrity: sha512-sz9ZBTiUAlu5P9VORVNKoeAaY2qKFQRC6eQV5Y8aMkqcorvXKEv97UeCkFMLmMBEPKA+QeWImREKkX9/H21WQA==,
}
- engines: { node: '>=18' }
+ peerDependencies:
+ '@babel/runtime': ^7.20.0
+ expo: '*'
+ expo-widgets: ^57.0.7
+ react-refresh: '>=0.14.0 <1.0.0'
+ peerDependenciesMeta:
+ '@babel/runtime':
+ optional: true
+ expo:
+ optional: true
+ expo-widgets:
+ optional: true
- find-up@4.1.0:
+ babel-preset-solid@1.9.12:
resolution:
{
- integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==,
+ integrity: sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg==,
}
- engines: { node: '>=8' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ solid-js: ^1.9.12
+ peerDependenciesMeta:
+ solid-js:
+ optional: true
- flat@5.0.2:
+ balanced-match@4.0.3:
resolution:
{
- integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==,
+ integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==,
}
- hasBin: true
+ engines: { node: 20 || >=22 }
- follow-redirects@1.16.0:
+ base64-js@1.5.1:
resolution:
{
- integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==,
+ integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==,
}
- engines: { node: '>=4.0' }
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
- form-data@4.0.5:
+ baseline-browser-mapping@2.11.5:
resolution:
{
- integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==,
+ integrity: sha512-xJo6a6YZnwZfnyGmQKWMbVOcii7XRibjOskRh+WJ9UHQoX16xrQrcIgAMQOzfvs8XiLMx6ih/fsLPF73iY2D1A==,
}
- engines: { node: '>= 6' }
+ engines: { node: '>=6.0.0' }
+ hasBin: true
- form-data@4.0.6:
+ better-path-resolve@1.0.0:
resolution:
{
- integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==,
+ integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==,
}
- engines: { node: '>= 6' }
+ engines: { node: '>=4' }
- fs-constants@1.0.0:
+ bidi-js@1.0.3:
resolution:
{
- integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==,
+ integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==,
}
- fs-extra@7.0.1:
+ big-integer@1.6.52:
resolution:
{
- integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==,
+ integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==,
}
- engines: { node: '>=6 <7 || >=8' }
+ engines: { node: '>=0.6' }
- fs-extra@8.1.0:
+ binary-search-bounds@2.0.5:
resolution:
{
- integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==,
+ integrity: sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==,
}
- engines: { node: '>=6 <7 || >=8' }
- fsevents@2.3.2:
+ bl@4.1.0:
resolution:
{
- integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==,
+ integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==,
}
- engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
- os: [darwin]
- fsevents@2.3.3:
+ blake3-wasm@2.1.5:
resolution:
{
- integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==,
+ integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==,
}
- engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
- os: [darwin]
- function-bind@1.1.2:
+ body-parser@1.20.6:
resolution:
{
- integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==,
+ integrity: sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==,
}
+ engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 }
- gensync@1.0.0-beta.2:
+ boolbase@1.0.0:
resolution:
{
- integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==,
+ integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==,
}
- engines: { node: '>=6.9.0' }
- get-caller-file@2.0.5:
+ bplist-creator@0.1.0:
resolution:
{
- integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==,
+ integrity: sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==,
}
- engines: { node: 6.* || 8.* || >= 10.* }
- get-east-asian-width@1.6.0:
+ bplist-parser@0.3.1:
resolution:
{
- integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==,
+ integrity: sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==,
}
- engines: { node: '>=18' }
+ engines: { node: '>= 5.10.0' }
- get-intrinsic@1.3.0:
+ bplist-parser@0.3.2:
resolution:
{
- integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==,
+ integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: '>= 5.10.0' }
- get-proto@1.0.1:
+ brace-expansion@5.0.6:
resolution:
{
- integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==,
+ integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: 18 || 20 || >=22 }
- glob-parent@5.1.2:
+ brace-expansion@5.0.8:
resolution:
{
- integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==,
+ integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==,
}
- engines: { node: '>= 6' }
+ engines: { node: 20 || >=22 }
- globby@11.1.0:
+ braces@3.0.3:
resolution:
{
- integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==,
+ integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==,
}
- engines: { node: '>=10' }
+ engines: { node: '>=8' }
- gopd@1.2.0:
+ browserslist@4.28.7:
resolution:
{
- integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==,
+ integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
+ hasBin: true
- graceful-fs@4.2.11:
+ bser@2.1.1:
resolution:
{
- integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==,
+ integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==,
}
- has-flag@4.0.0:
+ buffer-from@1.1.2:
resolution:
{
- integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==,
+ integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==,
}
- engines: { node: '>=8' }
- has-symbols@1.1.0:
+ buffer@5.7.1:
resolution:
{
- integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==,
+ integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==,
}
- engines: { node: '>= 0.4' }
- has-tostringtag@1.0.2:
+ bytes@3.1.2:
resolution:
{
- integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==,
+ integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==,
}
- engines: { node: '>= 0.4' }
+ engines: { node: '>= 0.8' }
- hasown@2.0.2:
+ call-bind-apply-helpers@1.0.2:
resolution:
{
- integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==,
+ integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==,
}
engines: { node: '>= 0.4' }
- hasown@2.0.4:
+ call-bound@1.0.4:
resolution:
{
- integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==,
+ integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==,
}
engines: { node: '>= 0.4' }
- html-encoding-sniffer@6.0.0:
+ callsites@3.1.0:
resolution:
{
- integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==,
+ integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==,
}
- engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 }
+ engines: { node: '>=6' }
- html-entities@2.3.3:
+ camelcase@5.3.1:
resolution:
{
- integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==,
+ integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==,
}
+ engines: { node: '>=6' }
- human-id@4.2.0:
+ camelcase@6.3.0:
resolution:
{
- integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==,
+ integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==,
}
- hasBin: true
+ engines: { node: '>=10' }
- iconv-lite@0.4.24:
+ caniuse-lite@1.0.30001806:
resolution:
{
- integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==,
+ integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==,
}
- engines: { node: '>=0.10.0' }
- iconv-lite@0.6.3:
+ chai@6.2.2:
resolution:
{
- integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==,
+ integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==,
}
- engines: { node: '>=0.10.0' }
+ engines: { node: '>=18' }
- iconv-lite@0.7.3:
+ chalk@2.4.2:
resolution:
{
- integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==,
+ integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==,
}
- engines: { node: '>=0.10.0' }
+ engines: { node: '>=4' }
- ieee754@1.2.1:
+ chalk@4.1.2:
resolution:
{
- integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==,
+ integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==,
}
+ engines: { node: '>=10' }
- ignore@5.3.2:
+ chalk@5.6.2:
resolution:
{
- integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==,
+ integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==,
}
- engines: { node: '>= 4' }
+ engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 }
- ignore@7.0.5:
+ chardet@2.2.0:
resolution:
{
- integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==,
+ integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==,
}
- engines: { node: '>= 4' }
- immer@11.1.15:
+ chart.js@4.5.1:
resolution:
{
- integrity: sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==,
+ integrity: sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==,
}
+ engines: { pnpm: '>=8' }
- immutable@5.1.9:
+ chokidar@4.0.3:
resolution:
{
- integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==,
+ integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==,
}
+ engines: { node: '>= 14.16.0' }
- inherits@2.0.4:
+ chokidar@5.0.0:
resolution:
{
- integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==,
+ integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==,
}
+ engines: { node: '>= 20.19.0' }
- injection-js@2.6.1:
+ chrome-launcher@0.15.2:
resolution:
{
- integrity: sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A==,
+ integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==,
}
+ engines: { node: '>=12.13.0' }
+ hasBin: true
- internmap@1.0.1:
+ chromium-edge-launcher@0.3.0:
resolution:
{
- integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==,
+ integrity: sha512-p03azHlGjtyRvFEee3cyvtsRYdniSkwjkzmM/KmVnqT5d7QkkwpJBhis/zCLMYdQMVJ5tt140TBNqqrZPaWeFA==,
}
- internmap@2.0.3:
+ ci-info@2.0.0:
resolution:
{
- integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==,
+ integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==,
}
- engines: { node: '>=12' }
- interval-tree-1d@1.0.4:
+ ci-info@3.9.0:
resolution:
{
- integrity: sha512-wY8QJH+6wNI0uh4pDQzMvl+478Qh7Rl4qLmqiluxALlNvl+I+o5x38Pw3/z7mDPTPS1dQalZJXsmbvxx5gclhQ==,
+ integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==,
}
+ engines: { node: '>=8' }
- is-docker@2.2.1:
+ cli-cursor@2.1.0:
resolution:
{
- integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==,
+ integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==,
}
- engines: { node: '>=8' }
- hasBin: true
+ engines: { node: '>=4' }
- is-extglob@2.1.1:
+ cli-cursor@3.1.0:
resolution:
{
- integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==,
+ integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==,
}
- engines: { node: '>=0.10.0' }
+ engines: { node: '>=8' }
- is-fullwidth-code-point@3.0.0:
+ cli-cursor@5.0.0:
resolution:
{
- integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==,
+ integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==,
}
- engines: { node: '>=8' }
+ engines: { node: '>=18' }
- is-glob@4.0.3:
+ cli-spinners@2.6.1:
resolution:
{
- integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==,
+ integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==,
}
- engines: { node: '>=0.10.0' }
+ engines: { node: '>=6' }
- is-interactive@1.0.0:
+ cli-spinners@3.4.0:
resolution:
{
- integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==,
+ integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==,
}
- engines: { node: '>=8' }
+ engines: { node: '>=18.20' }
- is-interactive@2.0.0:
+ cliui@6.0.0:
resolution:
{
- integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==,
+ integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==,
}
- engines: { node: '>=12' }
- is-number@7.0.0:
+ cliui@8.0.1:
resolution:
{
- integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==,
+ integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==,
}
- engines: { node: '>=0.12.0' }
+ engines: { node: '>=12' }
- is-potential-custom-element-name@1.0.1:
+ cliui@9.0.1:
resolution:
{
- integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==,
+ integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==,
}
+ engines: { node: '>=20' }
- is-reference@3.0.3:
+ clone@1.0.4:
resolution:
{
- integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==,
+ integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==,
}
+ engines: { node: '>=0.8' }
- is-subdir@1.2.0:
+ clsx@2.1.1:
resolution:
{
- integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==,
+ integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==,
}
- engines: { node: '>=4' }
+ engines: { node: '>=6' }
- is-unicode-supported@0.1.0:
+ color-convert@1.9.3:
resolution:
{
- integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==,
+ integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==,
}
- engines: { node: '>=10' }
- is-unicode-supported@2.1.0:
+ color-convert@2.0.1:
resolution:
{
- integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==,
+ integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==,
}
- engines: { node: '>=18' }
+ engines: { node: '>=7.0.0' }
- is-what@4.1.16:
+ color-name@1.1.3:
resolution:
{
- integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==,
+ integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==,
}
- engines: { node: '>=12.13' }
- is-windows@1.0.2:
+ color-name@1.1.4:
resolution:
{
- integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==,
+ integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==,
}
- engines: { node: '>=0.10.0' }
- is-wsl@2.2.0:
+ colorette@1.4.0:
resolution:
{
- integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==,
+ integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==,
}
- engines: { node: '>=8' }
- isexe@2.0.0:
+ combined-stream@1.0.8:
resolution:
{
- integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==,
+ integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==,
}
+ engines: { node: '>= 0.8' }
- isoformat@0.2.1:
+ command-exists@1.2.9:
resolution:
{
- integrity: sha512-tFLRAygk9NqrRPhJSnNGh7g7oaVWDwR0wKh/GM2LgmPa50Eg4UfyaCO4I8k6EqJHl1/uh2RAD6g06n5ygEnrjQ==,
+ integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==,
}
- js-tokens@4.0.0:
+ commander@12.1.0:
resolution:
{
- integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==,
+ integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==,
}
+ engines: { node: '>=18' }
- js-yaml@3.15.0:
+ commander@14.0.3:
resolution:
{
- integrity: sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==,
+ integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==,
}
- hasBin: true
+ engines: { node: '>=20' }
- js-yaml@4.3.0:
+ commander@2.20.3:
resolution:
{
- integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==,
+ integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==,
}
- hasBin: true
- jsdom@29.1.1:
+ commander@7.2.0:
resolution:
{
- integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==,
+ integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==,
}
- engines: { node: ^20.19.0 || ^22.13.0 || >=24.0.0 }
- peerDependencies:
- canvas: ^3.0.0
- peerDependenciesMeta:
- canvas:
- optional: true
+ engines: { node: '>= 10' }
- jsesc@3.1.0:
+ commander@9.5.0:
resolution:
{
- integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==,
+ integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==,
}
- engines: { node: '>=6' }
- hasBin: true
+ engines: { node: ^12.20.0 || >=14 }
- json-schema-traverse@1.0.0:
+ common-path-prefix@3.0.0:
resolution:
{
- integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==,
+ integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==,
}
- json5@2.2.3:
+ compressible@2.0.18:
resolution:
{
- integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==,
+ integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==,
}
- engines: { node: '>=6' }
- hasBin: true
+ engines: { node: '>= 0.6' }
- jsonc-parser@3.2.0:
+ compression@1.8.1:
resolution:
{
- integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==,
+ integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==,
}
+ engines: { node: '>= 0.8.0' }
- jsonc-parser@3.3.1:
+ connect@3.7.0:
resolution:
{
- integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==,
+ integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==,
}
+ engines: { node: '>= 0.10.0' }
- jsonfile@4.0.0:
+ content-type@1.0.5:
resolution:
{
- integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==,
+ integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==,
}
+ engines: { node: '>= 0.6' }
- kleur@4.1.5:
+ convert-source-map@1.9.0:
resolution:
{
- integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==,
+ integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==,
}
- engines: { node: '>=6' }
- less@4.8.1:
+ convert-source-map@2.0.0:
resolution:
{
- integrity: sha512-jQ3lRIo1aUtiWVYXZ7mk4+V4BjCGswF3IxTLJ+4RUta8ZiHh8lhkig2G8dya2eCcyR1dYUvzuV46EkJN8PSwww==,
+ integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==,
}
- engines: { node: '>=18' }
- hasBin: true
- lightningcss-android-arm64@1.33.0:
+ cookie@1.1.1:
resolution:
{
- integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==,
+ integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [arm64]
- os: [android]
+ engines: { node: '>=18' }
- lightningcss-darwin-arm64@1.33.0:
+ copy-anything@3.0.5:
resolution:
{
- integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==,
+ integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [arm64]
- os: [darwin]
+ engines: { node: '>=12.13' }
- lightningcss-darwin-x64@1.33.0:
+ core-js-compat@3.49.0:
resolution:
{
- integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==,
+ integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [x64]
- os: [darwin]
- lightningcss-freebsd-x64@1.33.0:
+ cosmiconfig@9.0.2:
resolution:
{
- integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==,
+ integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [x64]
- os: [freebsd]
+ engines: { node: '>=14' }
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
- lightningcss-linux-arm-gnueabihf@1.33.0:
+ cross-spawn@7.0.6:
resolution:
{
- integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==,
+ integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [arm]
- os: [linux]
+ engines: { node: '>= 8' }
- lightningcss-linux-arm64-gnu@1.33.0:
+ css-select@5.2.2:
resolution:
{
- integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==,
+ integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
- lightningcss-linux-arm64-musl@1.33.0:
+ css-tree@1.1.3:
resolution:
{
- integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==,
+ integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [arm64]
- os: [linux]
- libc: [musl]
+ engines: { node: '>=8.0.0' }
- lightningcss-linux-x64-gnu@1.33.0:
+ css-tree@3.2.1:
resolution:
{
- integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==,
+ integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [x64]
- os: [linux]
- libc: [glibc]
+ engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 }
- lightningcss-linux-x64-musl@1.33.0:
+ css-what@6.2.2:
resolution:
{
- integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==,
+ integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [x64]
- os: [linux]
- libc: [musl]
+ engines: { node: '>= 6' }
- lightningcss-win32-arm64-msvc@1.33.0:
+ csstype@3.2.3:
resolution:
{
- integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==,
+ integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [arm64]
- os: [win32]
- lightningcss-win32-x64-msvc@1.33.0:
+ d3-array@2.12.1:
resolution:
{
- integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==,
+ integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==,
}
- engines: { node: '>= 12.0.0' }
- cpu: [x64]
- os: [win32]
- lightningcss@1.33.0:
+ d3-array@3.2.4:
resolution:
{
- integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==,
+ integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==,
}
- engines: { node: '>= 12.0.0' }
+ engines: { node: '>=12' }
- lines-and-columns@2.0.3:
+ d3-axis@3.0.0:
resolution:
{
- integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==,
+ integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==,
}
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+ engines: { node: '>=12' }
- lit-element@4.2.2:
+ d3-brush@3.0.0:
resolution:
{
- integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==,
+ integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==,
}
+ engines: { node: '>=12' }
- lit-html@3.3.3:
+ d3-chord@3.0.1:
resolution:
{
- integrity: sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==,
+ integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==,
}
+ engines: { node: '>=12' }
- lit@3.3.3:
+ d3-color@3.1.0:
resolution:
{
- integrity: sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw==,
+ integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==,
}
+ engines: { node: '>=12' }
- locate-character@3.0.0:
+ d3-contour@4.0.2:
resolution:
{
- integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==,
+ integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==,
}
+ engines: { node: '>=12' }
- locate-path@5.0.0:
+ d3-delaunay@6.0.4:
resolution:
{
- integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==,
+ integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==,
}
- engines: { node: '>=8' }
+ engines: { node: '>=12' }
- lodash.merge@4.6.2:
+ d3-dispatch@3.0.1:
resolution:
{
- integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==,
+ integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==,
}
+ engines: { node: '>=12' }
- lodash.startcase@4.4.0:
+ d3-drag@3.0.0:
resolution:
{
- integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==,
+ integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==,
}
+ engines: { node: '>=12' }
- log-symbols@4.1.0:
+ d3-dsv@3.0.1:
resolution:
{
- integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==,
+ integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==,
}
- engines: { node: '>=10' }
+ engines: { node: '>=12' }
+ hasBin: true
- log-symbols@7.0.1:
+ d3-ease@3.0.1:
resolution:
{
- integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==,
+ integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==,
}
- engines: { node: '>=18' }
+ engines: { node: '>=12' }
- lru-cache@11.5.2:
+ d3-fetch@3.0.1:
resolution:
{
- integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==,
+ integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==,
}
- engines: { node: 20 || >=22 }
+ engines: { node: '>=12' }
- lru-cache@5.1.1:
+ d3-force@3.0.0:
resolution:
{
- integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==,
+ integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==,
}
+ engines: { node: '>=12' }
- magic-string@0.30.21:
+ d3-format@3.1.2:
resolution:
{
- integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==,
+ integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==,
}
+ engines: { node: '>=12' }
- make-dir@5.1.0:
+ d3-geo@3.1.1:
resolution:
{
- integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==,
+ integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==,
}
- engines: { node: '>=18' }
+ engines: { node: '>=12' }
- math-intrinsics@1.1.0:
+ d3-hexbin@0.2.2:
resolution:
{
- integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==,
+ integrity: sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==,
}
- engines: { node: '>= 0.4' }
- mdn-data@2.27.1:
+ d3-hierarchy@3.1.2:
resolution:
{
- integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==,
+ integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==,
}
+ engines: { node: '>=12' }
- merge-anything@5.1.7:
+ d3-interpolate@3.0.1:
resolution:
{
- integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==,
+ integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==,
}
- engines: { node: '>=12.13' }
+ engines: { node: '>=12' }
- merge2@1.4.1:
+ d3-path@1.0.9:
resolution:
{
- integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==,
+ integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==,
}
- engines: { node: '>= 8' }
- micromatch@4.0.8:
+ d3-path@3.1.0:
resolution:
{
- integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==,
+ integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==,
}
- engines: { node: '>=8.6' }
+ engines: { node: '>=12' }
- mime-db@1.52.0:
+ d3-polygon@3.0.1:
resolution:
{
- integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==,
+ integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==,
}
- engines: { node: '>= 0.6' }
+ engines: { node: '>=12' }
- mime-types@2.1.35:
+ d3-quadtree@3.0.1:
resolution:
{
- integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==,
+ integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==,
}
- engines: { node: '>= 0.6' }
-
- mime@1.6.0:
- resolution:
- {
- integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==,
- }
- engines: { node: '>=4' }
- hasBin: true
+ engines: { node: '>=12' }
- mimic-fn@2.1.0:
+ d3-random@3.0.1:
resolution:
{
- integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==,
+ integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==,
}
- engines: { node: '>=6' }
+ engines: { node: '>=12' }
- mimic-function@5.0.1:
+ d3-sankey@0.12.3:
resolution:
{
- integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==,
+ integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==,
}
- engines: { node: '>=18' }
- miniflare@4.20260617.1:
+ d3-scale-chromatic@3.1.0:
resolution:
{
- integrity: sha512-Go3/gzStm99QHptsSgU+q1S+xDfLoRgwjJNY80kaTVi0ENhTyqKq+sc4xZiWBSbM7uUcJwmzm8+QFKtcYLJ9nw==,
+ integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==,
}
- engines: { node: '>=22.0.0' }
- hasBin: true
+ engines: { node: '>=12' }
- minimatch@10.2.5:
+ d3-scale@4.0.2:
resolution:
{
- integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==,
+ integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==,
}
- engines: { node: 18 || 20 || >=22 }
+ engines: { node: '>=12' }
- minimist@1.2.8:
+ d3-selection@3.0.0:
resolution:
{
- integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==,
+ integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==,
}
+ engines: { node: '>=12' }
- mri@1.2.0:
+ d3-shape@1.3.7:
resolution:
{
- integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==,
+ integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==,
}
- engines: { node: '>=4' }
- ms@2.0.0:
+ d3-shape@3.2.0:
resolution:
{
- integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==,
+ integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==,
}
+ engines: { node: '>=12' }
- ms@2.1.3:
+ d3-time-format@4.1.0:
resolution:
{
- integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==,
+ integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==,
}
+ engines: { node: '>=12' }
- nanoid@3.3.16:
+ d3-time@3.1.0:
resolution:
{
- integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==,
+ integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==,
}
- engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
- hasBin: true
+ engines: { node: '>=12' }
- needle@2.9.1:
+ d3-timer@3.0.1:
resolution:
{
- integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==,
+ integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==,
}
- engines: { node: '>= 4.4.x' }
- hasBin: true
+ engines: { node: '>=12' }
- needle@3.5.0:
+ d3-transition@3.0.1:
resolution:
{
- integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==,
+ integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==,
}
- engines: { node: '>= 4.4.x' }
- hasBin: true
+ engines: { node: '>=12' }
+ peerDependencies:
+ d3-selection: 2 - 3
- ng-packagr@22.0.2:
+ d3-zoom@3.0.0:
resolution:
{
- integrity: sha512-8qQ+RWm0W3gK8Sch1kmo3EzIUiCTXIOP2gS7b+vtqCMBf4KBjBP0wFBikW5qRau9lGOzRTML0GPFGoARPR4+fw==,
+ integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==,
}
- engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 }
- hasBin: true
- peerDependencies:
- '@angular/compiler-cli': ^22.0.0 || ^22.1.0-next.0
- tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0
- tslib: ^2.3.0
- typescript: '>=6.0 <6.1'
- peerDependenciesMeta:
- tailwindcss:
- optional: true
+ engines: { node: '>=12' }
- node-addon-api@7.1.1:
+ d3@7.9.0:
resolution:
{
- integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==,
+ integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==,
}
+ engines: { node: '>=12' }
- node-fetch@2.7.0:
+ data-urls@7.0.0:
resolution:
{
- integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==,
+ integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==,
}
- engines: { node: 4.x || >=6.0.0 }
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
+ engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 }
- node-releases@2.0.51:
+ dataloader@1.4.0:
resolution:
{
- integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==,
+ integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==,
}
- engines: { node: '>=18' }
- npm-run-path@4.0.1:
+ dayjs@1.11.21:
resolution:
{
- integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==,
+ integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==,
}
- engines: { node: '>=8' }
- nx@22.7.5:
+ debug@2.6.9:
resolution:
{
- integrity: sha512-zoxsJabb33jl1QYnalDn0bicryrEBgSzdKp90d7VGGv/jDgzKrcLg/hw2ZxeYiOjWPIT/o8QNT9G9vTs4dv3AQ==,
+ integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==,
}
- hasBin: true
peerDependencies:
- '@swc-node/register': ^1.11.1
- '@swc/core': ^1.15.8
+ supports-color: '*'
peerDependenciesMeta:
- '@swc-node/register':
- optional: true
- '@swc/core':
+ supports-color:
optional: true
- obug@2.1.4:
- resolution:
- {
- integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==,
- }
- engines: { node: '>=12.20.0' }
-
- octane@0.1.13:
+ debug@3.2.7:
resolution:
{
- integrity: sha512-bjmuF0hjLnBPOqOLTWyOtq6U5tklKw/JKF/qbAlZ2gfAZsoL9NiK7tQSWibuIUSerXELvLfmPmpbyt0fItemsg==,
+ integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==,
}
- engines: { node: '>=22' }
peerDependencies:
- react: ^19.0.0
- react-dom: ^19.0.0
- vite: ^8.0.16
+ supports-color: '*'
peerDependenciesMeta:
- react:
- optional: true
- react-dom:
- optional: true
- vite:
+ supports-color:
optional: true
- once@1.4.0:
+ debug@4.4.3:
resolution:
{
- integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==,
+ integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==,
}
+ engines: { node: '>=6.0' }
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
- onetime@5.1.2:
+ decamelize@1.2.0:
resolution:
{
- integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==,
+ integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==,
}
- engines: { node: '>=6' }
+ engines: { node: '>=0.10.0' }
- onetime@7.0.0:
+ decimal.js-light@2.5.1:
resolution:
{
- integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==,
+ integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==,
}
- engines: { node: '>=18' }
- open@8.4.2:
+ decimal.js@10.6.0:
resolution:
{
- integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==,
+ integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==,
}
- engines: { node: '>=12' }
- ora@5.3.0:
+ dedent-js@1.0.1:
resolution:
{
- integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==,
+ integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==,
}
- engines: { node: '>=10' }
- ora@9.4.1:
+ deepmerge@4.3.1:
resolution:
{
- integrity: sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==,
+ integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==,
}
- engines: { node: '>=20' }
+ engines: { node: '>=0.10.0' }
- outdent@0.5.0:
+ defaults@1.0.4:
resolution:
{
- integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==,
+ integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==,
}
- p-filter@2.1.0:
+ define-lazy-prop@2.0.0:
resolution:
{
- integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==,
+ integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==,
}
engines: { node: '>=8' }
- p-limit@2.3.0:
+ delaunator@5.1.0:
resolution:
{
- integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==,
+ integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==,
}
- engines: { node: '>=6' }
- p-locate@4.1.0:
+ delayed-stream@1.0.0:
resolution:
{
- integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==,
+ integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==,
}
- engines: { node: '>=8' }
+ engines: { node: '>=0.4.0' }
- p-map@2.1.0:
+ depd@2.0.0:
resolution:
{
- integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==,
+ integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==,
}
- engines: { node: '>=6' }
+ engines: { node: '>= 0.8' }
- p-try@2.2.0:
+ dependency-graph@1.0.0:
resolution:
{
- integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==,
+ integrity: sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==,
}
- engines: { node: '>=6' }
+ engines: { node: '>=4' }
- package-manager-detector@0.2.11:
+ destroy@1.2.0:
resolution:
{
- integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==,
+ integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==,
}
+ engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 }
- parse-node-version@1.0.1:
+ detect-indent@6.1.0:
resolution:
{
- integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==,
+ integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==,
}
- engines: { node: '>= 0.10' }
+ engines: { node: '>=8' }
- parse5@7.3.0:
+ detect-libc@2.1.2:
resolution:
{
- integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==,
+ integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==,
}
+ engines: { node: '>=8' }
- parse5@8.0.1:
+ devalue@5.8.2:
resolution:
{
- integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==,
+ integrity: sha512-DObPPAfdtFbXjxLqK8s2Xk9ZuWz5+ZoFEhC7J76es4GU/rEiXwHTmbImoCdyoCOcBH1UF3+Cz6Z2sYD4hyl5TA==,
}
- path-exists@4.0.0:
+ dir-glob@3.0.1:
resolution:
{
- integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==,
+ integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==,
}
engines: { node: '>=8' }
- path-key@3.1.1:
+ dnssd-advertise@1.1.6:
resolution:
{
- integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==,
+ integrity: sha512-Ndrrf6BMPalkQPd/zubL+4YghH2J9NspapQ09uDXwYbvOPkP0oaqf5CkcwJ0b50kS2O3ul6yVu+jz+RY62Cejg==,
}
- engines: { node: '>=8' }
- path-to-regexp@6.3.0:
+ dom-serializer@2.0.0:
resolution:
{
- integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==,
+ integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==,
}
- path-type@4.0.0:
+ domelementtype@2.3.0:
resolution:
{
- integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==,
+ integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==,
}
- engines: { node: '>=8' }
- pathe@2.0.3:
+ domhandler@5.0.3:
resolution:
{
- integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==,
+ integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==,
}
+ engines: { node: '>= 4' }
- picocolors@1.1.1:
+ domutils@3.2.2:
resolution:
{
- integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==,
+ integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==,
}
- picomatch@2.3.2:
+ dotenv-expand@12.0.3:
resolution:
{
- integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==,
+ integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==,
}
- engines: { node: '>=8.6' }
+ engines: { node: '>=12' }
- picomatch@4.0.5:
+ dotenv@16.4.7:
resolution:
{
- integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==,
+ integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==,
}
engines: { node: '>=12' }
- pify@4.0.1:
+ dotenv@8.6.0:
resolution:
{
- integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==,
+ integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==,
}
- engines: { node: '>=6' }
+ engines: { node: '>=10' }
- piscina@5.3.0:
+ dunder-proto@1.0.1:
resolution:
{
- integrity: sha512-9D3tPBayfoal6l9l4Y8NrMn1jkV718qJoYrla6P51+hh9h0Q+9/1c8KgEnoBQqhguyfgjay4biADI8HJG3pkoA==,
+ integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==,
}
- engines: { node: '>=20.x' }
+ engines: { node: '>= 0.4' }
- pkg-dir@8.0.0:
+ echarts@6.1.0:
resolution:
{
- integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==,
+ integrity: sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA==,
}
- engines: { node: '>=18' }
- playwright-core@1.62.0:
+ ee-first@1.1.1:
resolution:
{
- integrity: sha512-nsNRyq0r2zsG8AcRHWknc9QRA5XCueC7gWMrs+Gx2tlZn9hcl8zudfh00lhJPY1DE7NmZ6bDsT9g2yey8mXljA==,
+ integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==,
}
- engines: { node: '>=20' }
- hasBin: true
- playwright@1.62.0:
+ ejs@5.0.1:
resolution:
{
- integrity: sha512-Z14dG305dgaLu6foB1TXQagFiW8JfSUIUaUuPaKQ6NtBPKF1P/qXcqfh6c6K/icPqdy37JmjbiBXf6JNg6Sylw==,
+ integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==,
}
- engines: { node: '>=20' }
+ engines: { node: '>=0.12.18' }
hasBin: true
- postcss@8.5.23:
+ electron-to-chromium@1.5.397:
resolution:
{
- integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==,
+ integrity: sha512-khGTy9U9x02KEtsKM8vx5A62BsRmcOsIgDpWr1ImE32Ax8GxHGPHZf+Eu9H8zOOyHJnB0jTbseyTHbq2XCT8yw==,
}
- engines: { node: ^10 || ^12 || >=14 }
- preact-render-to-string@6.7.0:
+ emoji-regex@10.6.0:
resolution:
{
- integrity: sha512-Z4WR8fmLMRpdYqJ9i7vrlXSsSrxVJydwrkEXHapexfARbWfGb7vGcnvNQnIzN0cXciMVOlz/XLoiMCi9gUsy9Q==,
+ integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==,
}
- peerDependencies:
- preact: '>=10 || >= 11.0.0-0'
- preact@10.29.7:
+ emoji-regex@8.0.0:
resolution:
{
- integrity: sha512-DCHYrK/B10yUD3ZjLfhZ3WIE/9Vf9VFUODcRE2dRomTYDpJk6z6L9wecSfhfE6M9ZTHUdyQkoC46arIDhEV84Q==,
+ integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==,
}
- peerDependencies:
- preact-render-to-string: '>=5'
- peerDependenciesMeta:
- preact-render-to-string:
- optional: true
- prettier@2.8.8:
+ encodeurl@1.0.2:
resolution:
{
- integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==,
+ integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==,
}
- engines: { node: '>=10.13.0' }
- hasBin: true
+ engines: { node: '>= 0.8' }
- prettier@3.9.6:
+ encodeurl@2.0.0:
resolution:
{
- integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==,
+ integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==,
}
- engines: { node: '>=14' }
- hasBin: true
+ engines: { node: '>= 0.8' }
- probe-image-size@7.3.0:
+ end-of-stream@1.4.5:
resolution:
{
- integrity: sha512-7CaDeBwiAbh6ohXsvLbAZhO7wzsZAmaevfxe39qvCwRh8LyaZfDlBGGLU1CCTgrTLtCOdwBBhjOrIHaIIimHfQ==,
+ integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==,
}
- proxy-from-env@2.1.0:
+ enquirer@2.3.6:
resolution:
{
- integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==,
+ integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==,
}
- engines: { node: '>=10' }
+ engines: { node: '>=8.6' }
- prr@1.0.1:
+ enquirer@2.4.1:
resolution:
{
- integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==,
+ integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==,
}
+ engines: { node: '>=8.6' }
- punycode@2.3.1:
+ entities@4.5.0:
resolution:
{
- integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==,
+ integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==,
}
- engines: { node: '>=6' }
+ engines: { node: '>=0.12' }
- quansync@0.2.11:
+ entities@6.0.1:
resolution:
{
- integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==,
+ integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==,
}
+ engines: { node: '>=0.12' }
- queue-microtask@1.2.3:
+ entities@7.0.1:
resolution:
{
- integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==,
+ integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==,
}
+ engines: { node: '>=0.12' }
- react-dom@19.2.3:
+ entities@8.0.0:
resolution:
{
- integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==,
+ integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==,
}
- peerDependencies:
- react: ^19.2.3
+ engines: { node: '>=20.19.0' }
- react-is@19.2.8:
+ env-paths@2.2.1:
resolution:
{
- integrity: sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==,
+ integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==,
}
+ engines: { node: '>=6' }
- react-redux@9.3.0:
+ envinfo@7.21.0:
resolution:
{
- integrity: sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==,
+ integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==,
}
- peerDependencies:
- '@types/react': ^18.2.25 || ^19
- react: ^18.0 || ^19
- redux: ^5.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- redux:
- optional: true
+ engines: { node: '>=4' }
+ hasBin: true
- react@19.2.3:
+ errno@0.1.8:
resolution:
{
- integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==,
+ integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==,
}
- engines: { node: '>=0.10.0' }
+ hasBin: true
- read-yaml-file@1.1.0:
+ error-ex@1.3.4:
resolution:
{
- integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==,
+ integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==,
}
- engines: { node: '>=6' }
- readable-stream@3.6.2:
+ error-stack-parser-es@1.0.5:
resolution:
{
- integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==,
+ integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==,
}
- engines: { node: '>= 6' }
- readdirp@4.1.2:
+ error-stack-parser@2.1.4:
resolution:
{
- integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==,
+ integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==,
}
- engines: { node: '>= 14.18.0' }
- readdirp@5.0.0:
+ errorhandler@1.5.2:
resolution:
{
- integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==,
+ integrity: sha512-kNAL7hESndBCrWwS72QyV3IVOTrVmj9D062FV5BQswNL5zEdeRmz/WJFyh6Aj/plvvSOrzddkxW57HgkZcR9Fw==,
}
- engines: { node: '>= 20.19.0' }
+ engines: { node: '>= 0.8' }
- recharts@3.10.1:
+ es-define-property@1.0.1:
resolution:
{
- integrity: sha512-QXFrvt6IVcw7eeZCoyXTwkIJAX3Dv1nyVhMicXJ47GsGDDpcN8z6o644DibE9XjpBTThtsomLKnTV6lc+cVFUA==,
+ integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==,
}
- engines: { node: '>=18' }
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react-is: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ engines: { node: '>= 0.4' }
- redux-thunk@3.1.0:
+ es-errors@1.3.0:
resolution:
{
- integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==,
+ integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==,
}
- peerDependencies:
- redux: ^5.0.0
+ engines: { node: '>= 0.4' }
- redux@5.0.1:
+ es-module-lexer@2.3.1:
resolution:
{
- integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==,
+ integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==,
}
- reflect-metadata@0.2.2:
+ es-object-atoms@1.1.1:
resolution:
{
- integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==,
+ integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==,
}
+ engines: { node: '>= 0.4' }
- require-directory@2.1.1:
+ es-set-tostringtag@2.1.0:
resolution:
{
- integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==,
+ integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==,
}
- engines: { node: '>=0.10.0' }
+ engines: { node: '>= 0.4' }
- require-from-string@2.0.2:
+ es-toolkit@1.50.0:
resolution:
{
- integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==,
+ integrity: sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==,
}
- engines: { node: '>=0.10.0' }
- reselect@5.2.0:
+ esbuild@0.27.7:
resolution:
{
- integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==,
+ integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==,
}
+ engines: { node: '>=18' }
+ hasBin: true
- resolve-from@5.0.0:
+ esbuild@0.28.1:
resolution:
{
- integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==,
+ integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==,
}
- engines: { node: '>=8' }
+ engines: { node: '>=18' }
+ hasBin: true
- resolve.exports@2.0.3:
+ escalade@3.2.0:
resolution:
{
- integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==,
+ integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==,
}
- engines: { node: '>=10' }
+ engines: { node: '>=6' }
- restore-cursor@3.1.0:
+ escape-html@1.0.3:
resolution:
{
- integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==,
+ integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==,
}
- engines: { node: '>=8' }
- restore-cursor@5.1.0:
+ escape-string-regexp@1.0.5:
resolution:
{
- integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==,
+ integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==,
}
- engines: { node: '>=18' }
+ engines: { node: '>=0.8.0' }
- reusify@1.1.0:
+ escape-string-regexp@4.0.0:
resolution:
{
- integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==,
+ integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==,
}
- engines: { iojs: '>=1.0.0', node: '>=0.10.0' }
+ engines: { node: '>=10' }
- robust-predicates@3.0.3:
+ esm-env@1.2.2:
resolution:
{
- integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==,
+ integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==,
}
- rolldown@1.1.5:
+ esprima@4.0.1:
resolution:
{
- integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==,
+ integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
+ engines: { node: '>=4' }
hasBin: true
- rollup-plugin-dts@6.4.1:
+ esrap@2.3.0:
resolution:
{
- integrity: sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==,
+ integrity: sha512-GQ/7RN8uOtEfNpzZzBMTzW9JBcX42oaSVtPzdF+6cEL8pqIL094iUpr9jzYGn4O4P/1S60dJ6izyT8F4LYARng==,
}
- engines: { node: '>=20' }
peerDependencies:
- rollup: ^3.29.4 || ^4
- typescript: ^4.5 || ^5.0 || ^6.0
+ '@typescript-eslint/types': ^8.2.0
+ peerDependenciesMeta:
+ '@typescript-eslint/types':
+ optional: true
- rollup@4.62.3:
+ estree-walker@2.0.2:
resolution:
{
- integrity: sha512-Gu0c0iH9FzgX1L1t7ByIbbS3Vmdz+6KHm/EsqmmC71gUQ82yvZRkTK6XzrFObSka91WUVdynqp6nsfilzr5k6Q==,
+ integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==,
}
- engines: { node: '>=18.0.0', npm: '>=8.0.0' }
- hasBin: true
- run-parallel@1.2.0:
+ estree-walker@3.0.3:
resolution:
{
- integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==,
+ integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==,
}
- rw@1.3.3:
+ etag@1.8.1:
resolution:
{
- integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==,
+ integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==,
}
+ engines: { node: '>= 0.6' }
- rxjs@7.8.2:
+ event-target-shim@5.0.1:
resolution:
{
- integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==,
+ integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==,
}
+ engines: { node: '>=6' }
- sade@1.8.1:
+ eventemitter3@5.0.4:
resolution:
{
- integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==,
+ integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==,
}
- engines: { node: '>=6' }
- safe-buffer@5.2.1:
+ execa@5.1.1:
resolution:
{
- integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==,
+ integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==,
}
+ engines: { node: '>=10' }
- safer-buffer@2.1.2:
+ expect-type@1.4.0:
resolution:
{
- integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==,
+ integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==,
}
+ engines: { node: '>=12.0.0' }
- sass@1.102.0:
+ expo-asset@57.0.8:
resolution:
{
- integrity: sha512-NSOyTnaQF7rTAEOtI2fwb386vL+akyiQLBZu8Na7hXCb+umJy0GAqlcMIaqACZ6Z1VgTBS4K9PG6B3IdjHGJsw==,
+ integrity: sha512-sGocG+Wd2WcZ1KjKyB2LfUZXzrBM0VHEATGcpJKF9T3HM56M/sMbH73vv+n85u5Zr0FkJjEbV1DWhGPimCR1QQ==,
}
- engines: { node: '>=20.19.0' }
- hasBin: true
+ peerDependencies:
+ expo: '*'
+ react: '*'
+ react-native: '*'
- sax@1.6.1:
+ expo-constants@57.0.8:
resolution:
{
- integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==,
+ integrity: sha512-ts+B7E5076BtkblrKGy7+Sm/R2obHfTwqhmYQVYbWRtilv3+C/xNwHZhyNEnAvzM/JjKqx7UdaITUBYaeFreZw==,
}
- engines: { node: '>=11.0.0' }
+ peerDependencies:
+ expo: '*'
+ react-native: '*'
- saxes@6.0.0:
+ expo-file-system@57.0.1:
resolution:
{
- integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==,
+ integrity: sha512-w7/ERvQFrGP2apTO9lDtZ+O6JQIhfakL7+Xqzh+rfMO9B4LB4qwrz+YvLgir8KFRVX64JHBnRuYBVLY1oQZcqw==,
}
- engines: { node: '>=v12.22.7' }
+ peerDependencies:
+ expo: '*'
+ react-native: '*'
- scheduler@0.27.0:
+ expo-font@57.0.1:
resolution:
{
- integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==,
+ integrity: sha512-QyS9L1Kh9sKJg4gfU6rdbpxpmH+DyzBX8z6jVvXMUDoqLr1GqmkO/Wu379KCXjL///kWbhpNlbi7AgBuj4VdIQ==,
}
+ peerDependencies:
+ expo: '*'
+ react: '*'
+ react-native: '*'
- scule@1.3.0:
+ expo-keep-awake@57.0.1:
resolution:
{
- integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==,
+ integrity: sha512-28lkFImeXTS+bhAjuCFV7w7tW5bXg27BJVrxv+nC/nyYa86qEa0oFeHwqol6ha5k4pdVDQgBF09GM4A1k76Ssg==,
}
+ peerDependencies:
+ expo: '*'
+ react: '*'
- semver@6.3.1:
+ expo-modules-autolinking@57.0.9:
resolution:
{
- integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==,
+ integrity: sha512-lj2nsAKMMRLXSFnGgaaQrWJ2fdSpLPc/bca6Rkiw4g8zYPn7qX4MRUJgavvzm/hBrzvMnlhXVgJtidOGuwBh+w==,
}
hasBin: true
- semver@7.7.4:
+ expo-modules-core@57.0.8:
resolution:
{
- integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==,
+ integrity: sha512-ZUU943Oso3B8jFggC+2+LOk8oa+im66IQlleYay6WP5iexbdF2fqpgC4BcYsN4xhCkDKh7KDINSt1FlcxyRRjQ==,
}
- engines: { node: '>=10' }
- hasBin: true
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+ react-native-worklets: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0
+ peerDependenciesMeta:
+ react-native-worklets:
+ optional: true
- semver@7.8.5:
+ expo-modules-jsi@57.0.4:
resolution:
{
- integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==,
+ integrity: sha512-vt7FyqUqqFXiRVnBqYD7y+GSPTgeua5Ocoy0+SYt+RSHkZEA2Fyop7If3g1TYDzQObYybPRo7TG2Rle1XLaWFw==,
}
- engines: { node: '>=10' }
- hasBin: true
+ peerDependencies:
+ react-native: '*'
- seroval-plugins@1.5.6:
+ expo-server@57.0.1:
resolution:
{
- integrity: sha512-HXuLAX2pu/UByPpaeo/TaMfvMIi+1QqIoPJYCcAtU8QkVNwgR6MPlGuCQTErV1JwraaMbYaWVIBX7mppzGLATQ==,
+ integrity: sha512-sBfVDH6dmKVHZxqUxbfkzS00PZELMZt1IpnHKxcOTMZtR/t7CtRAFrbXcisG+EyzeqHSVDacZT+1tbYfZt5D8w==,
}
- engines: { node: '>=10' }
- peerDependencies:
- seroval: ^1.0
+ engines: { node: '>=20.16.0' }
- seroval@1.5.6:
+ expo@57.0.9:
resolution:
{
- integrity: sha512-rVQVWjjSvlINzaQPZH5JFqsqEsIWdTxY3iJZCnTL/5gQbXIRooVZKI60tVCkOVfzcRPejboxO2t0P89dg5mQaA==,
+ integrity: sha512-NDEvnU+vjRdMbtOyDC25OSok9/E97al97pyx+bMphQgNRGAED0D7oF8ha7oGYsLE+7jFzpPADVM9S60dGbpHIA==,
}
- engines: { node: '>=10' }
+ hasBin: true
+ peerDependencies:
+ '@expo/dom-webview': '*'
+ '@expo/metro-runtime': '*'
+ react: '*'
+ react-dom: '*'
+ react-native: '*'
+ react-native-web: '*'
+ react-native-webview: '*'
+ peerDependenciesMeta:
+ '@expo/dom-webview':
+ optional: true
+ '@expo/metro-runtime':
+ optional: true
+ react-dom:
+ optional: true
+ react-native-web:
+ optional: true
+ react-native-webview:
+ optional: true
- sharp@0.34.5:
+ exponential-backoff@3.1.3:
resolution:
{
- integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==,
+ integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==,
}
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
- shebang-command@2.0.0:
+ extendable-error@0.1.7:
resolution:
{
- integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==,
+ integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==,
}
- engines: { node: '>=8' }
- shebang-regex@3.0.0:
+ fast-deep-equal@3.1.3:
resolution:
{
- integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==,
+ integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==,
}
- engines: { node: '>=8' }
- siginfo@2.0.0:
+ fast-glob@3.3.3:
resolution:
{
- integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==,
+ integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==,
}
+ engines: { node: '>=8.6.0' }
- signal-exit@3.0.7:
+ fast-uri@3.1.4:
resolution:
{
- integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==,
+ integrity: sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==,
}
- signal-exit@4.1.0:
+ fast-xml-parser@4.5.7:
resolution:
{
- integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==,
+ integrity: sha512-a6Qh1RMCNbSrU1+sAyAAZH3rTe+OaWJbNZIq0S+ifZciUUOQtlVxBJwoTUE2bYhysmG/RYyI5WJFIKdBahJdrQ==,
}
- engines: { node: '>=14' }
+ hasBin: true
- slash@3.0.0:
+ fastq@1.20.1:
resolution:
{
- integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==,
+ integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==,
}
- engines: { node: '>=8' }
- smol-toml@1.6.1:
+ fb-dotslash@0.5.8:
resolution:
{
- integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==,
+ integrity: sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA==,
}
- engines: { node: '>= 18' }
+ engines: { node: '>=20' }
+ hasBin: true
- solid-js@1.9.14:
+ fb-watchman@2.0.2:
resolution:
{
- integrity: sha512-sAEXC0Kk0S1EDg+8ysEWJDbYhA3RRoEjwuySUGlKIemeo0I5YZfOyumNjNs9Sv3y2nmhD+0rW66ag2HsMuQiGQ==,
+ integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==,
}
- solid-refresh@0.6.3:
+ fdir@6.5.0:
resolution:
{
- integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==,
+ integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==,
}
+ engines: { node: '>=12.0.0' }
peerDependencies:
- solid-js: ^1.3
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
- source-map-js@1.2.1:
+ fetch-nodeshim@0.4.10:
resolution:
{
- integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==,
+ integrity: sha512-m6I8ALe4L4XpdETy7MJZWs6L1IVMbjs99bwbpIKphxX+0CTns4IKDWJY0LWfr4YsFjfg+z1TjzTMU8lKl8rG0w==,
}
- engines: { node: '>=0.10.0' }
- source-map@0.6.1:
+ figures@3.2.0:
resolution:
{
- integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==,
+ integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==,
}
- engines: { node: '>=0.10.0' }
+ engines: { node: '>=8' }
- spawndamnit@3.0.1:
+ fill-range@7.1.1:
resolution:
{
- integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==,
+ integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==,
}
+ engines: { node: '>=8' }
- sprintf-js@1.0.3:
+ finalhandler@1.1.2:
resolution:
{
- integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==,
+ integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==,
}
+ engines: { node: '>= 0.8' }
- stackback@0.0.2:
+ find-cache-directory@6.0.0:
resolution:
{
- integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==,
+ integrity: sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==,
}
+ engines: { node: '>=20' }
- std-env@4.2.0:
+ find-up-simple@1.0.1:
resolution:
{
- integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==,
+ integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==,
}
+ engines: { node: '>=18' }
- stdin-discarder@0.3.2:
+ find-up@4.1.0:
resolution:
{
- integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==,
+ integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==,
}
- engines: { node: '>=18' }
+ engines: { node: '>=8' }
- stream-parser@0.3.1:
+ find-up@5.0.0:
resolution:
{
- integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==,
+ integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==,
}
+ engines: { node: '>=10' }
- string-width@4.2.3:
+ flat@5.0.2:
resolution:
{
- integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==,
+ integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==,
}
- engines: { node: '>=8' }
+ hasBin: true
- string-width@7.2.0:
+ flow-enums-runtime@0.0.6:
resolution:
{
- integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==,
+ integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==,
}
- engines: { node: '>=18' }
- string-width@8.2.2:
+ follow-redirects@1.16.0:
resolution:
{
- integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==,
+ integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==,
}
- engines: { node: '>=20' }
+ engines: { node: '>=4.0' }
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
- string_decoder@1.3.0:
+ fontfaceobserver@2.3.0:
resolution:
{
- integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==,
+ integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==,
}
- strip-ansi@6.0.1:
+ form-data@4.0.5:
resolution:
{
- integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==,
+ integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==,
}
- engines: { node: '>=8' }
+ engines: { node: '>= 6' }
- strip-ansi@7.2.0:
+ form-data@4.0.6:
resolution:
{
- integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==,
+ integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==,
}
- engines: { node: '>=12' }
+ engines: { node: '>= 6' }
- strip-bom@3.0.0:
+ fresh@0.5.2:
resolution:
{
- integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==,
+ integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==,
}
- engines: { node: '>=4' }
+ engines: { node: '>= 0.6' }
- supports-color@10.2.2:
+ fs-constants@1.0.0:
resolution:
{
- integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==,
+ integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==,
}
- engines: { node: '>=18' }
- supports-color@7.2.0:
+ fs-extra@7.0.1:
resolution:
{
- integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==,
+ integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==,
}
- engines: { node: '>=8' }
+ engines: { node: '>=6 <7 || >=8' }
- svelte-check@4.7.4:
+ fs-extra@8.1.0:
resolution:
{
- integrity: sha512-IW9ot9YqAoyv8FvyN+eb4ZTe8zgcKZrJLNYU6dzSKkGwEBsSPc4K7lmQ8bKn8W2YMXM6WDfZSSVOaGtekyUfOQ==,
+ integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==,
}
- engines: { node: '>= 18.0.0' }
- hasBin: true
- peerDependencies:
- svelte: ^4.0.0 || ^5.0.0-next.0
- typescript: ^5.0.0 || ^6.0.0
+ engines: { node: '>=6 <7 || >=8' }
- svelte2tsx@0.7.59:
+ fsevents@2.3.2:
resolution:
{
- integrity: sha512-Itj7Wz9WIiGFl/uJa58+rf43ajezaljKK/KTOHq5abUjto56xe+o5SOzLwSoeJ5hma9NZEstpZiazFW2q1nZPQ==,
+ integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==,
}
- peerDependencies:
- svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0
- typescript: ^4.9.4 || ^5.0.0 || ^6.0.0
+ engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
+ os: [darwin]
- svelte@5.56.8:
+ fsevents@2.3.3:
resolution:
{
- integrity: sha512-PY8LOw7xP6c8IOiVqdo0sbbZVYhXRSfklOQLAUyGBKqjTX0wx/z4l/9J+PmBpmlLnxzEb1NqltxQ5/wZme/Cmg==,
+ integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==,
}
- engines: { node: '>=18' }
+ engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
+ os: [darwin]
- symbol-tree@3.2.4:
+ function-bind@1.1.2:
resolution:
{
- integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==,
+ integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==,
}
- tar-stream@2.2.0:
+ gensync@1.0.0-beta.2:
resolution:
{
- integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==,
+ integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==,
}
- engines: { node: '>=6' }
+ engines: { node: '>=6.9.0' }
- term-size@2.2.1:
+ get-caller-file@2.0.5:
resolution:
{
- integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==,
+ integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==,
}
- engines: { node: '>=8' }
+ engines: { node: 6.* || 8.* || >= 10.* }
- tiny-invariant@1.3.3:
+ get-east-asian-width@1.6.0:
resolution:
{
- integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==,
+ integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==,
}
+ engines: { node: '>=18' }
- tinybench@2.9.0:
+ get-intrinsic@1.3.0:
resolution:
{
- integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==,
+ integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==,
}
+ engines: { node: '>= 0.4' }
- tinyexec@1.2.4:
+ get-proto@1.0.1:
resolution:
{
- integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==,
+ integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==,
}
- engines: { node: '>=18' }
+ engines: { node: '>= 0.4' }
- tinyglobby@0.2.17:
+ get-stream@6.0.1:
resolution:
{
- integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==,
+ integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==,
}
- engines: { node: '>=12.0.0' }
+ engines: { node: '>=10' }
- tinyrainbow@3.1.0:
+ getenv@2.0.0:
resolution:
{
- integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==,
+ integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==,
}
- engines: { node: '>=14.0.0' }
+ engines: { node: '>=6' }
- tldts-core@7.4.9:
+ glob-parent@5.1.2:
resolution:
{
- integrity: sha512-DxKfPBI52p2msTEu7MPhdpdDTBhhVQg1a/8PjQckeyAvO13eMYElX545grIp6nnTGIMZlRvFZPvFhvI/WIz2Vg==,
+ integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==,
}
+ engines: { node: '>= 6' }
- tldts@7.4.9:
+ glob@13.0.6:
resolution:
{
- integrity: sha512-3kZ8wQQ/k5DrChD4X4FVvr2D7E5uoRgAqkPyLpSCGUvqOvqu+JEdr3mwMUaVWb+vMHZaKhF5fp2PBigKsui7hA==,
+ integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==,
}
- hasBin: true
+ engines: { node: 18 || 20 || >=22 }
- tmp@0.2.6:
+ globby@11.1.0:
resolution:
{
- integrity: sha512-5sJPdPjfI5Kx+qbrDesxkglRBxW//g7hCsqspEjwkewGvBMGIKMOTKzLt1hFVJzyadba3lDUN20O9qhvbQUSTA==,
+ integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==,
}
- engines: { node: '>=14.14' }
+ engines: { node: '>=10' }
- to-regex-range@5.0.1:
+ gopd@1.2.0:
resolution:
{
- integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==,
+ integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==,
}
- engines: { node: '>=8.0' }
+ engines: { node: '>= 0.4' }
- topojson-client@3.1.0:
+ graceful-fs@4.2.11:
resolution:
{
- integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==,
+ integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==,
}
- hasBin: true
- tough-cookie@6.0.2:
+ has-flag@3.0.0:
resolution:
{
- integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==,
+ integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==,
}
- engines: { node: '>=16' }
+ engines: { node: '>=4' }
- tr46@0.0.3:
+ has-flag@4.0.0:
resolution:
{
- integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==,
+ integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==,
}
+ engines: { node: '>=8' }
- tr46@6.0.0:
+ has-symbols@1.1.0:
resolution:
{
- integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==,
+ integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==,
}
- engines: { node: '>=20' }
+ engines: { node: '>= 0.4' }
- tree-kill@1.2.2:
+ has-tostringtag@1.0.2:
resolution:
{
- integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==,
+ integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==,
}
- hasBin: true
+ engines: { node: '>= 0.4' }
- tsconfig-paths@4.2.0:
+ hasown@2.0.2:
resolution:
{
- integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==,
+ integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==,
}
- engines: { node: '>=6' }
+ engines: { node: '>= 0.4' }
- tslib@2.3.0:
+ hasown@2.0.4:
resolution:
{
- integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==,
+ integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==,
}
+ engines: { node: '>= 0.4' }
- tslib@2.8.1:
+ hermes-compiler@250829098.0.16:
resolution:
{
- integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==,
+ integrity: sha512-xsgzk+mUyvt9t1nUbF8USBlYxajTUtPJhVZ86q85s/SEoMKCF+52YZcudb0ENSnV3T3lV9mgB3s6R7+pH90zgw==,
}
- typescript@6.0.3:
+ hermes-estree@0.35.0:
resolution:
{
- integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==,
+ integrity: sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg==,
}
- engines: { node: '>=14.17' }
- hasBin: true
- undici-types@7.24.6:
+ hermes-estree@0.36.0:
resolution:
{
- integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==,
+ integrity: sha512-A1+8zn5oss2CFP7pKsOaxorQG6FNIz1WU1VDqruLPPZl3LVgeE2C5xfFg8Ow6/Ow4mSslLLtYP1J3n38eKyW9w==,
}
- undici@7.28.0:
+ hermes-parser@0.35.0:
resolution:
{
- integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==,
+ integrity: sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA==,
}
- engines: { node: '>=20.18.1' }
- undici@7.29.0:
+ hermes-parser@0.36.0:
resolution:
{
- integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==,
+ integrity: sha512-GdpwMmH5x6IpC1cijvcvYnlPB60Mh6kTSF/NFdYV/j56gYdi+0RIakYs+eqOV+bbO0SW7mgVVGSsTJxyPQfo3w==,
}
- engines: { node: '>=20.18.1' }
- unenv@2.0.0-rc.24:
+ hosted-git-info@7.0.2:
resolution:
{
- integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==,
+ integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==,
}
+ engines: { node: ^16.14.0 || >=18.0.0 }
- universalify@0.1.2:
+ html-encoding-sniffer@6.0.0:
resolution:
{
- integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==,
+ integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==,
}
- engines: { node: '>= 4.0.0' }
+ engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 }
- update-browserslist-db@1.2.3:
+ html-entities@2.3.3:
resolution:
{
- integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==,
+ integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==,
}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
- us-atlas@3.0.1:
+ http-errors@2.0.1:
resolution:
{
- integrity: sha512-wEIZCq0ImPvGblTd8gZMqNNCPkQshugMUG/8nkSWXb02+XqNFREg9atHOKP9w6prLZTpqcLhSvdBW81MkV3/0Q==,
+ integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==,
}
+ engines: { node: '>= 0.8' }
- use-sync-external-store@1.6.0:
+ https-proxy-agent@7.0.6:
resolution:
{
- integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==,
+ integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==,
}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ engines: { node: '>= 14' }
- util-deprecate@1.0.2:
+ human-id@4.2.0:
resolution:
{
- integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==,
+ integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==,
}
+ hasBin: true
- victory-vendor@37.3.6:
+ human-signals@2.1.0:
resolution:
{
- integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==,
+ integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==,
}
+ engines: { node: '>=10.17.0' }
- vite-plugin-solid@2.11.14:
+ iconv-lite@0.4.24:
resolution:
{
- integrity: sha512-7ZVBt8rpoyqmlwin2kRIUveaHoF6/kulY7gsnD+qFh4nS29V4OPAnw+ojoAspXIjObiL9o1xh9a/nTuYHm02Rw==,
+ integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==,
}
- peerDependencies:
- '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.0.0 || ^7.0.0
- solid-js: ^1.7.2
- vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
- peerDependenciesMeta:
- '@testing-library/jest-dom':
- optional: true
+ engines: { node: '>=0.10.0' }
- vite@8.1.5:
+ iconv-lite@0.6.3:
resolution:
{
- integrity: sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==,
+ integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==,
}
- engines: { node: ^20.19.0 || >=22.12.0 }
- hasBin: true
- peerDependencies:
- '@types/node': ^20.19.0 || >=22.12.0
- '@vitejs/devtools': ^0.3.0
- esbuild: ^0.27.0 || ^0.28.0
- jiti: '>=1.21.0'
- less: ^4.0.0
- sass: ^1.70.0
- sass-embedded: ^1.70.0
- stylus: '>=0.54.8'
- sugarss: ^5.0.0
- terser: ^5.16.0
- tsx: ^4.8.1
- yaml: ^2.4.2
- peerDependenciesMeta:
- '@types/node':
- optional: true
- '@vitejs/devtools':
- optional: true
- esbuild:
- optional: true
- jiti:
- optional: true
- less:
- optional: true
- sass:
- optional: true
- sass-embedded:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
- tsx:
- optional: true
- yaml:
- optional: true
+ engines: { node: '>=0.10.0' }
- vitefu@1.1.3:
+ iconv-lite@0.7.3:
resolution:
{
- integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==,
+ integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==,
}
- peerDependencies:
- vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- vite:
- optional: true
+ engines: { node: '>=0.10.0' }
- vitest@4.1.10:
+ ieee754@1.2.1:
resolution:
{
- integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==,
+ integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==,
}
- engines: { node: ^20.0.0 || ^22.0.0 || >=24.0.0 }
- hasBin: true
- peerDependencies:
- '@edge-runtime/vm': '*'
- '@opentelemetry/api': ^1.9.0
- '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
- '@vitest/browser-playwright': 4.1.10
- '@vitest/browser-preview': 4.1.10
- '@vitest/browser-webdriverio': 4.1.10
- '@vitest/coverage-istanbul': 4.1.10
- '@vitest/coverage-v8': 4.1.10
- '@vitest/ui': 4.1.10
- happy-dom: '*'
- jsdom: '*'
- vite: ^6.0.0 || ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- '@edge-runtime/vm':
- optional: true
- '@opentelemetry/api':
- optional: true
- '@types/node':
- optional: true
- '@vitest/browser-playwright':
- optional: true
- '@vitest/browser-preview':
- optional: true
- '@vitest/browser-webdriverio':
- optional: true
- '@vitest/coverage-istanbul':
- optional: true
- '@vitest/coverage-v8':
- optional: true
- '@vitest/ui':
- optional: true
- happy-dom:
- optional: true
- jsdom:
- optional: true
- vue@3.5.40:
+ ignore@5.3.2:
resolution:
{
- integrity: sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig==,
+ integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==,
}
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
+ engines: { node: '>= 4' }
- w3c-xmlserializer@5.0.0:
+ ignore@7.0.5:
resolution:
{
- integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==,
+ integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==,
}
- engines: { node: '>=18' }
+ engines: { node: '>= 4' }
- wcwidth@1.0.1:
+ image-size@1.2.1:
resolution:
{
- integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==,
+ integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==,
}
+ engines: { node: '>=16.x' }
+ hasBin: true
- webidl-conversions@3.0.1:
+ immer@11.1.15:
resolution:
{
- integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==,
+ integrity: sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==,
}
- webidl-conversions@8.0.1:
+ immutable@5.1.9:
resolution:
{
- integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==,
+ integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==,
}
- engines: { node: '>=20' }
- whatwg-mimetype@5.0.0:
+ import-fresh@3.3.1:
resolution:
{
- integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==,
+ integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==,
}
- engines: { node: '>=20' }
+ engines: { node: '>=6' }
- whatwg-url@16.0.1:
+ inherits@2.0.4:
resolution:
{
- integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==,
+ integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==,
}
- engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 }
- whatwg-url@5.0.0:
+ injection-js@2.6.1:
resolution:
{
- integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==,
+ integrity: sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A==,
}
- which@2.0.2:
+ internmap@1.0.1:
resolution:
{
- integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==,
+ integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==,
}
- engines: { node: '>= 8' }
- hasBin: true
- why-is-node-running@2.3.0:
+ internmap@2.0.3:
resolution:
{
- integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==,
+ integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==,
}
- engines: { node: '>=8' }
- hasBin: true
+ engines: { node: '>=12' }
- workerd@1.20260617.1:
+ interval-tree-1d@1.0.4:
resolution:
{
- integrity: sha512-Re5pl6pdowt3ZmWUzGlOuB7jbRIIPetgKalmo4cYmucQnVhpo7/3e4MfpekbhLi2EhZZz5EY9NWRu8zFzuEZew==,
+ integrity: sha512-wY8QJH+6wNI0uh4pDQzMvl+478Qh7Rl4qLmqiluxALlNvl+I+o5x38Pw3/z7mDPTPS1dQalZJXsmbvxx5gclhQ==,
+ }
+
+ invariant@2.2.4:
+ resolution:
+ {
+ integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==,
+ }
+
+ is-arrayish@0.2.1:
+ resolution:
+ {
+ integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==,
+ }
+
+ is-core-module@2.16.2:
+ resolution:
+ {
+ integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==,
+ }
+ engines: { node: '>= 0.4' }
+
+ is-docker@2.2.1:
+ resolution:
+ {
+ integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==,
+ }
+ engines: { node: '>=8' }
+ hasBin: true
+
+ is-extglob@2.1.1:
+ resolution:
+ {
+ integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-fullwidth-code-point@2.0.0:
+ resolution:
+ {
+ integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==,
+ }
+ engines: { node: '>=4' }
+
+ is-fullwidth-code-point@3.0.0:
+ resolution:
+ {
+ integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==,
+ }
+ engines: { node: '>=8' }
+
+ is-glob@4.0.3:
+ resolution:
+ {
+ integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-interactive@1.0.0:
+ resolution:
+ {
+ integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==,
+ }
+ engines: { node: '>=8' }
+
+ is-interactive@2.0.0:
+ resolution:
+ {
+ integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==,
+ }
+ engines: { node: '>=12' }
+
+ is-number@7.0.0:
+ resolution:
+ {
+ integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==,
+ }
+ engines: { node: '>=0.12.0' }
+
+ is-potential-custom-element-name@1.0.1:
+ resolution:
+ {
+ integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==,
+ }
+
+ is-reference@3.0.3:
+ resolution:
+ {
+ integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==,
+ }
+
+ is-stream@2.0.1:
+ resolution:
+ {
+ integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==,
+ }
+ engines: { node: '>=8' }
+
+ is-subdir@1.2.0:
+ resolution:
+ {
+ integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==,
+ }
+ engines: { node: '>=4' }
+
+ is-unicode-supported@0.1.0:
+ resolution:
+ {
+ integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==,
+ }
+ engines: { node: '>=10' }
+
+ is-unicode-supported@2.1.0:
+ resolution:
+ {
+ integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==,
+ }
+ engines: { node: '>=18' }
+
+ is-what@4.1.16:
+ resolution:
+ {
+ integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==,
+ }
+ engines: { node: '>=12.13' }
+
+ is-windows@1.0.2:
+ resolution:
+ {
+ integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-wsl@1.1.0:
+ resolution:
+ {
+ integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==,
+ }
+ engines: { node: '>=4' }
+
+ is-wsl@2.2.0:
+ resolution:
+ {
+ integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==,
+ }
+ engines: { node: '>=8' }
+
+ isexe@2.0.0:
+ resolution:
+ {
+ integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==,
+ }
+
+ isoformat@0.2.1:
+ resolution:
+ {
+ integrity: sha512-tFLRAygk9NqrRPhJSnNGh7g7oaVWDwR0wKh/GM2LgmPa50Eg4UfyaCO4I8k6EqJHl1/uh2RAD6g06n5ygEnrjQ==,
+ }
+
+ jest-get-type@29.6.3:
+ resolution:
+ {
+ integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==,
+ }
+ engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 }
+
+ jest-util@29.7.0:
+ resolution:
+ {
+ integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==,
+ }
+ engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 }
+
+ jest-validate@29.7.0:
+ resolution:
+ {
+ integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==,
+ }
+ engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 }
+
+ jest-worker@29.7.0:
+ resolution:
+ {
+ integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==,
+ }
+ engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 }
+
+ jimp-compact@0.16.1:
+ resolution:
+ {
+ integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==,
+ }
+
+ joi@17.13.4:
+ resolution:
+ {
+ integrity: sha512-1RuuER6kmt8K8I3nIWvPZKi5RQCb568ZPyY4Pwjlua+yo+63ZTmIwxLZH0heBmiKN4uxjvCiarDrjaeH84xicQ==,
+ }
+
+ js-tokens@4.0.0:
+ resolution:
+ {
+ integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==,
+ }
+
+ js-yaml@3.15.0:
+ resolution:
+ {
+ integrity: sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==,
+ }
+ hasBin: true
+
+ js-yaml@4.3.0:
+ resolution:
+ {
+ integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==,
+ }
+ hasBin: true
+
+ jsc-safe-url@0.2.4:
+ resolution:
+ {
+ integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==,
+ }
+
+ jsdom@29.1.1:
+ resolution:
+ {
+ integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==,
+ }
+ engines: { node: ^20.19.0 || ^22.13.0 || >=24.0.0 }
+ peerDependencies:
+ canvas: ^3.0.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
+ jsesc@3.1.0:
+ resolution:
+ {
+ integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==,
+ }
+ engines: { node: '>=6' }
+ hasBin: true
+
+ json-parse-even-better-errors@2.3.1:
+ resolution:
+ {
+ integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==,
+ }
+
+ json-schema-traverse@1.0.0:
+ resolution:
+ {
+ integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==,
+ }
+
+ json5@2.2.3:
+ resolution:
+ {
+ integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==,
+ }
+ engines: { node: '>=6' }
+ hasBin: true
+
+ jsonc-parser@3.2.0:
+ resolution:
+ {
+ integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==,
+ }
+
+ jsonc-parser@3.3.1:
+ resolution:
+ {
+ integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==,
+ }
+
+ jsonfile@4.0.0:
+ resolution:
+ {
+ integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==,
+ }
+
+ kleur@3.0.3:
+ resolution:
+ {
+ integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==,
+ }
+ engines: { node: '>=6' }
+
+ kleur@4.1.5:
+ resolution:
+ {
+ integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==,
+ }
+ engines: { node: '>=6' }
+
+ lan-network@0.2.1:
+ resolution:
+ {
+ integrity: sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A==,
+ }
+ hasBin: true
+
+ launch-editor@2.14.1:
+ resolution:
+ {
+ integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==,
+ }
+
+ less@4.8.1:
+ resolution:
+ {
+ integrity: sha512-jQ3lRIo1aUtiWVYXZ7mk4+V4BjCGswF3IxTLJ+4RUta8ZiHh8lhkig2G8dya2eCcyR1dYUvzuV46EkJN8PSwww==,
+ }
+ engines: { node: '>=18' }
+ hasBin: true
+
+ leven@3.1.0:
+ resolution:
+ {
+ integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==,
+ }
+ engines: { node: '>=6' }
+
+ lighthouse-logger@1.4.2:
+ resolution:
+ {
+ integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==,
+ }
+
+ lightningcss-android-arm64@1.33.0:
+ resolution:
+ {
+ integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-darwin-arm64@1.33.0:
+ resolution:
+ {
+ integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.33.0:
+ resolution:
+ {
+ integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.33.0:
+ resolution:
+ {
+ integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.33.0:
+ resolution:
+ {
+ integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.33.0:
+ resolution:
+ {
+ integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-arm64-musl@1.33.0:
+ resolution:
+ {
+ integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-linux-x64-gnu@1.33.0:
+ resolution:
+ {
+ integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-x64-musl@1.33.0:
+ resolution:
+ {
+ integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-win32-arm64-msvc@1.33.0:
+ resolution:
+ {
+ integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.33.0:
+ resolution:
+ {
+ integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==,
+ }
+ engines: { node: '>= 12.0.0' }
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.33.0:
+ resolution:
+ {
+ integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==,
+ }
+ engines: { node: '>= 12.0.0' }
+
+ lines-and-columns@1.2.4:
+ resolution:
+ {
+ integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==,
+ }
+
+ lines-and-columns@2.0.3:
+ resolution:
+ {
+ integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==,
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+
+ lit-element@4.2.2:
+ resolution:
+ {
+ integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==,
+ }
+
+ lit-html@3.3.3:
+ resolution:
+ {
+ integrity: sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==,
+ }
+
+ lit@3.3.3:
+ resolution:
+ {
+ integrity: sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw==,
+ }
+
+ locate-character@3.0.0:
+ resolution:
+ {
+ integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==,
+ }
+
+ locate-path@5.0.0:
+ resolution:
+ {
+ integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==,
+ }
+ engines: { node: '>=8' }
+
+ locate-path@6.0.0:
+ resolution:
+ {
+ integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==,
+ }
+ engines: { node: '>=10' }
+
+ lodash.debounce@4.0.8:
+ resolution:
+ {
+ integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==,
+ }
+
+ lodash.merge@4.6.2:
+ resolution:
+ {
+ integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==,
+ }
+
+ lodash.startcase@4.4.0:
+ resolution:
+ {
+ integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==,
+ }
+
+ lodash.throttle@4.1.1:
+ resolution:
+ {
+ integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==,
+ }
+
+ log-symbols@2.2.0:
+ resolution:
+ {
+ integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==,
+ }
+ engines: { node: '>=4' }
+
+ log-symbols@4.1.0:
+ resolution:
+ {
+ integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==,
+ }
+ engines: { node: '>=10' }
+
+ log-symbols@7.0.1:
+ resolution:
+ {
+ integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==,
+ }
+ engines: { node: '>=18' }
+
+ logkitty@0.7.1:
+ resolution:
+ {
+ integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==,
+ }
+ hasBin: true
+
+ loose-envify@1.4.0:
+ resolution:
+ {
+ integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==,
+ }
+ hasBin: true
+
+ lru-cache@10.4.3:
+ resolution:
+ {
+ integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==,
+ }
+
+ lru-cache@11.5.2:
+ resolution:
+ {
+ integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==,
+ }
+ engines: { node: 20 || >=22 }
+
+ lru-cache@5.1.1:
+ resolution:
+ {
+ integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==,
+ }
+
+ magic-string@0.30.21:
+ resolution:
+ {
+ integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==,
+ }
+
+ make-dir@5.1.0:
+ resolution:
+ {
+ integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==,
+ }
+ engines: { node: '>=18' }
+
+ makeerror@1.0.12:
+ resolution:
+ {
+ integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==,
+ }
+
+ marky@1.3.0:
+ resolution:
+ {
+ integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==,
+ }
+
+ math-intrinsics@1.1.0:
+ resolution:
+ {
+ integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==,
+ }
+ engines: { node: '>= 0.4' }
+
+ mdn-data@2.0.14:
+ resolution:
+ {
+ integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==,
+ }
+
+ mdn-data@2.27.1:
+ resolution:
+ {
+ integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==,
+ }
+
+ media-typer@0.3.0:
+ resolution:
+ {
+ integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==,
+ }
+ engines: { node: '>= 0.6' }
+
+ memoize-one@5.2.1:
+ resolution:
+ {
+ integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==,
+ }
+
+ merge-anything@5.1.7:
+ resolution:
+ {
+ integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==,
+ }
+ engines: { node: '>=12.13' }
+
+ merge-stream@2.0.0:
+ resolution:
+ {
+ integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==,
+ }
+
+ merge2@1.4.1:
+ resolution:
+ {
+ integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==,
+ }
+ engines: { node: '>= 8' }
+
+ metro-babel-transformer@0.84.4:
+ resolution:
+ {
+ integrity: sha512-rvCfz8snl9h20VcvpOHxZuHP1SlAkv4HXbzw7nyyVwu6Eqo5PRerbakQ9XmUCOsRy70spJ37O+G1TK8oMzo48g==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-cache-key@0.84.4:
+ resolution:
+ {
+ integrity: sha512-wVO79aGrkYImpnaVS4+d5RrRBRPX31QtvKB3wKGBuiNSznduZTQHzsrJZRroFJSwnygrzdsGUtDQPuqqFjFdvw==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-cache@0.84.4:
+ resolution:
+ {
+ integrity: sha512-gpcFQdSLUwUCk71saKoE64jLFbx2nwTfVCcPSULMNT8QYq0p1eZZE29Jvd0HtT/UlhC3ZOutLxJME5xqD2JUZg==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-config@0.84.4:
+ resolution:
+ {
+ integrity: sha512-PMotGDjXcXLWo2TMRH+VR99phFNgYTwqh4OoieIKK3yTJa1Jmkl+fZJxDO0jfBvNF+WESHciHvpNuBtXaF3B0Q==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-core@0.84.4:
+ resolution:
+ {
+ integrity: sha512-HONpWC5LGXZn3ffkd4Hu6AIrfE7j4Z0g0wMo/goV24WOB3lhuFZ40KgvaDiSw8iyQHloMYay5N/wPX+z8oN/PQ==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-file-map@0.84.4:
+ resolution:
+ {
+ integrity: sha512-KSVDi/u60hKPx++NLu3MTIvyjzNoJnFAF8PQFxaj1jiSka/wjw+Ua6sNuJ0TDHQv+7AAoFQxeMgaRAe8Yic5wQ==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-minify-terser@0.84.4:
+ resolution:
+ {
+ integrity: sha512-5qpbaVOMC7CPitIpuewzVeGw7E+C3ykbv2mqTjQLl85Z3annSVGlSCTcsZjqXZzjupfK4Ztj3dDc4kc44NZwtQ==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-resolver@0.84.4:
+ resolution:
+ {
+ integrity: sha512-1qLgbxQ5ZGhhutuPot1Yp348ofDsATL2WkrHF65TobqTT9K3P9qJXw38bomk7ncp5B7OYMfWwtyBZo1lCV792A==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-runtime@0.84.4:
+ resolution:
+ {
+ integrity: sha512-Jibypds4g7AhzdRKY+kDoj51s5EXMwgyp5ddtlreDAsWefMdOx+agWqgm0H2XSZ/ueanHHVM89fnf5OJnlxa8Q==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-source-map@0.84.4:
+ resolution:
+ {
+ integrity: sha512-jbWkPxIesVuo1IWkvezmMJld6iu8nD62GsrZiV6jP37AOdbo4OBq1FJ+qkOg8sV05wAHB//jAbziuW0SlJfW4g==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-symbolicate@0.84.4:
+ resolution:
+ {
+ integrity: sha512-OnfpacxUqGPZQ27t8qK9mFa7uqHIlVWeqRqkCbvMvreEBiamEeOn8krKtcwgP5M4cYDPwuSmCTopHMVthqG4zA==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+ hasBin: true
+
+ metro-transform-plugins@0.84.4:
+ resolution:
+ {
+ integrity: sha512-kehr6HbAecqD0/a3xLXobELdPaAmRAl8bel0qagPF4vhZtux93nS8S4eq2kgKt6J2GnQpVjSoW1PXdst04mwow==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro-transform-worker@0.84.4:
+ resolution:
+ {
+ integrity: sha512-W1IYMvvXTu4MxYr7d9h7CeG2vpIr3bmLLIavkPY4O1ilzDrvS8z/NEe6y+pC44Ff7raMXQgYSfdqDUwN/i39gg==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ metro@0.84.4:
+ resolution:
+ {
+ integrity: sha512-8ETTubqfD6ornDy2zYDvRcKnVDOXdFJsjetYDBsY4oAsb6NJkiwFR+FaMESyGppFmQUyBQA4H4sFGxzcQSGtFA==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+ hasBin: true
+
+ micromatch@4.0.8:
+ resolution:
+ {
+ integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==,
+ }
+ engines: { node: '>=8.6' }
+
+ mime-db@1.52.0:
+ resolution:
+ {
+ integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==,
+ }
+ engines: { node: '>= 0.6' }
+
+ mime-db@1.54.0:
+ resolution:
+ {
+ integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==,
+ }
+ engines: { node: '>= 0.6' }
+
+ mime-types@2.1.35:
+ resolution:
+ {
+ integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==,
+ }
+ engines: { node: '>= 0.6' }
+
+ mime-types@3.0.2:
+ resolution:
+ {
+ integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==,
+ }
+ engines: { node: '>=18' }
+
+ mime@1.6.0:
+ resolution:
+ {
+ integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==,
+ }
+ engines: { node: '>=4' }
+ hasBin: true
+
+ mime@2.6.0:
+ resolution:
+ {
+ integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==,
+ }
+ engines: { node: '>=4.0.0' }
+ hasBin: true
+
+ mimic-fn@1.2.0:
+ resolution:
+ {
+ integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==,
+ }
+ engines: { node: '>=4' }
+
+ mimic-fn@2.1.0:
+ resolution:
+ {
+ integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==,
+ }
+ engines: { node: '>=6' }
+
+ mimic-function@5.0.1:
+ resolution:
+ {
+ integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==,
+ }
+ engines: { node: '>=18' }
+
+ miniflare@4.20260617.1:
+ resolution:
+ {
+ integrity: sha512-Go3/gzStm99QHptsSgU+q1S+xDfLoRgwjJNY80kaTVi0ENhTyqKq+sc4xZiWBSbM7uUcJwmzm8+QFKtcYLJ9nw==,
+ }
+ engines: { node: '>=22.0.0' }
+ hasBin: true
+
+ minimatch@10.2.5:
+ resolution:
+ {
+ integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==,
+ }
+ engines: { node: 18 || 20 || >=22 }
+
+ minimist@1.2.8:
+ resolution:
+ {
+ integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==,
+ }
+
+ minipass@7.1.3:
+ resolution:
+ {
+ integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==,
+ }
+ engines: { node: '>=16 || 14 >=14.17' }
+
+ mkdirp@1.0.4:
+ resolution:
+ {
+ integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==,
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ mri@1.2.0:
+ resolution:
+ {
+ integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==,
+ }
+ engines: { node: '>=4' }
+
+ ms@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==,
+ }
+
+ ms@2.1.3:
+ resolution:
+ {
+ integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==,
+ }
+
+ multitars@1.0.0:
+ resolution:
+ {
+ integrity: sha512-H/J4fMLedtudftaYMOg7ajzLYgT3/rwbWVJbqr/iUgB8DQztn38ys5HOqI1CzSxx8QhXXwOOnnBvd4v3jG5+Mg==,
+ }
+
+ nanoid@3.3.16:
+ resolution:
+ {
+ integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==,
+ }
+ engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
+ hasBin: true
+
+ needle@2.9.1:
+ resolution:
+ {
+ integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==,
+ }
+ engines: { node: '>= 4.4.x' }
+ hasBin: true
+
+ needle@3.5.0:
+ resolution:
+ {
+ integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==,
+ }
+ engines: { node: '>= 4.4.x' }
+ hasBin: true
+
+ negotiator@0.6.3:
+ resolution:
+ {
+ integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==,
+ }
+ engines: { node: '>= 0.6' }
+
+ negotiator@0.6.4:
+ resolution:
+ {
+ integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==,
+ }
+ engines: { node: '>= 0.6' }
+
+ negotiator@1.0.0:
+ resolution:
+ {
+ integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==,
+ }
+ engines: { node: '>= 0.6' }
+
+ ng-packagr@22.0.2:
+ resolution:
+ {
+ integrity: sha512-8qQ+RWm0W3gK8Sch1kmo3EzIUiCTXIOP2gS7b+vtqCMBf4KBjBP0wFBikW5qRau9lGOzRTML0GPFGoARPR4+fw==,
+ }
+ engines: { node: ^22.22.3 || ^24.15.0 || >=26.0.0 }
+ hasBin: true
+ peerDependencies:
+ '@angular/compiler-cli': ^22.0.0 || ^22.1.0-next.0
+ tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0
+ tslib: ^2.3.0
+ typescript: '>=6.0 <6.1'
+ peerDependenciesMeta:
+ tailwindcss:
+ optional: true
+
+ nocache@3.0.4:
+ resolution:
+ {
+ integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==,
+ }
+ engines: { node: '>=12.0.0' }
+
+ node-addon-api@7.1.1:
+ resolution:
+ {
+ integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==,
+ }
+
+ node-fetch@2.7.0:
+ resolution:
+ {
+ integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==,
+ }
+ engines: { node: 4.x || >=6.0.0 }
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-forge@1.4.0:
+ resolution:
+ {
+ integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==,
+ }
+ engines: { node: '>= 6.13.0' }
+
+ node-int64@0.4.0:
+ resolution:
+ {
+ integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==,
+ }
+
+ node-releases@2.0.51:
+ resolution:
+ {
+ integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==,
+ }
+ engines: { node: '>=18' }
+
+ node-stream-zip@1.16.0:
+ resolution:
+ {
+ integrity: sha512-ObaRrRoR8T68wF6suxHd7R4XQNamij6ZQHrwG7Dx1D2zeHcDNLsIOBcWrIwtDm7AsCXBguaPHgXhcjxDa2szrg==,
+ }
+ engines: { node: '>=0.12.0' }
+
+ npm-package-arg@11.0.3:
+ resolution:
+ {
+ integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==,
+ }
+ engines: { node: ^16.14.0 || >=18.0.0 }
+
+ npm-run-path@4.0.1:
+ resolution:
+ {
+ integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==,
+ }
+ engines: { node: '>=8' }
+
+ nth-check@2.1.1:
+ resolution:
+ {
+ integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==,
+ }
+
+ nullthrows@1.1.1:
+ resolution:
+ {
+ integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==,
+ }
+
+ nx@22.7.5:
+ resolution:
+ {
+ integrity: sha512-zoxsJabb33jl1QYnalDn0bicryrEBgSzdKp90d7VGGv/jDgzKrcLg/hw2ZxeYiOjWPIT/o8QNT9G9vTs4dv3AQ==,
+ }
+ hasBin: true
+ peerDependencies:
+ '@swc-node/register': ^1.11.1
+ '@swc/core': ^1.15.8
+ peerDependenciesMeta:
+ '@swc-node/register':
+ optional: true
+ '@swc/core':
+ optional: true
+
+ ob1@0.84.4:
+ resolution:
+ {
+ integrity: sha512-eJXMpz4aQHXF/YBB9ddqZDIS+ooO91hObo9FoW/xBkr54/zCwYYCDqT/O54vNo8kOkWs5Ou/y28NgdrV0edQNA==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+
+ object-inspect@1.13.4:
+ resolution:
+ {
+ integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==,
+ }
+ engines: { node: '>= 0.4' }
+
+ obug@2.1.4:
+ resolution:
+ {
+ integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==,
+ }
+ engines: { node: '>=12.20.0' }
+
+ octane@0.1.13:
+ resolution:
+ {
+ integrity: sha512-bjmuF0hjLnBPOqOLTWyOtq6U5tklKw/JKF/qbAlZ2gfAZsoL9NiK7tQSWibuIUSerXELvLfmPmpbyt0fItemsg==,
+ }
+ engines: { node: '>=22' }
+ peerDependencies:
+ react: ^19.0.0
+ react-dom: ^19.0.0
+ vite: ^8.0.16
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-dom:
+ optional: true
+ vite:
+ optional: true
+
+ on-finished@2.3.0:
+ resolution:
+ {
+ integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==,
+ }
+ engines: { node: '>= 0.8' }
+
+ on-finished@2.4.1:
+ resolution:
+ {
+ integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==,
+ }
+ engines: { node: '>= 0.8' }
+
+ on-headers@1.1.0:
+ resolution:
+ {
+ integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==,
+ }
+ engines: { node: '>= 0.8' }
+
+ once@1.4.0:
+ resolution:
+ {
+ integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==,
+ }
+
+ onetime@2.0.1:
+ resolution:
+ {
+ integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==,
+ }
+ engines: { node: '>=4' }
+
+ onetime@5.1.2:
+ resolution:
+ {
+ integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==,
+ }
+ engines: { node: '>=6' }
+
+ onetime@7.0.0:
+ resolution:
+ {
+ integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==,
+ }
+ engines: { node: '>=18' }
+
+ open@6.4.0:
+ resolution:
+ {
+ integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==,
+ }
+ engines: { node: '>=8' }
+
+ open@7.4.2:
+ resolution:
+ {
+ integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==,
+ }
+ engines: { node: '>=8' }
+
+ open@8.4.2:
+ resolution:
+ {
+ integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==,
+ }
+ engines: { node: '>=12' }
+
+ ora@3.4.0:
+ resolution:
+ {
+ integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==,
+ }
+ engines: { node: '>=6' }
+
+ ora@5.3.0:
+ resolution:
+ {
+ integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==,
+ }
+ engines: { node: '>=10' }
+
+ ora@5.4.1:
+ resolution:
+ {
+ integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==,
+ }
+ engines: { node: '>=10' }
+
+ ora@9.4.1:
+ resolution:
+ {
+ integrity: sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==,
+ }
+ engines: { node: '>=20' }
+
+ outdent@0.5.0:
+ resolution:
+ {
+ integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==,
+ }
+
+ p-filter@2.1.0:
+ resolution:
+ {
+ integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==,
+ }
+ engines: { node: '>=8' }
+
+ p-limit@2.3.0:
+ resolution:
+ {
+ integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==,
+ }
+ engines: { node: '>=6' }
+
+ p-limit@3.1.0:
+ resolution:
+ {
+ integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==,
+ }
+ engines: { node: '>=10' }
+
+ p-locate@4.1.0:
+ resolution:
+ {
+ integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==,
+ }
+ engines: { node: '>=8' }
+
+ p-locate@5.0.0:
+ resolution:
+ {
+ integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==,
+ }
+ engines: { node: '>=10' }
+
+ p-map@2.1.0:
+ resolution:
+ {
+ integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==,
+ }
+ engines: { node: '>=6' }
+
+ p-try@2.2.0:
+ resolution:
+ {
+ integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==,
+ }
+ engines: { node: '>=6' }
+
+ package-manager-detector@0.2.11:
+ resolution:
+ {
+ integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==,
+ }
+
+ parent-module@1.0.1:
+ resolution:
+ {
+ integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==,
+ }
+ engines: { node: '>=6' }
+
+ parse-json@5.2.0:
+ resolution:
+ {
+ integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==,
+ }
+ engines: { node: '>=8' }
+
+ parse-node-version@1.0.1:
+ resolution:
+ {
+ integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==,
+ }
+ engines: { node: '>= 0.10' }
+
+ parse-png@2.1.0:
+ resolution:
+ {
+ integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==,
+ }
+ engines: { node: '>=10' }
+
+ parse5@7.3.0:
+ resolution:
+ {
+ integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==,
+ }
+
+ parse5@8.0.1:
+ resolution:
+ {
+ integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==,
+ }
+
+ parseurl@1.3.3:
+ resolution:
+ {
+ integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==,
+ }
+ engines: { node: '>= 0.8' }
+
+ path-exists@4.0.0:
+ resolution:
+ {
+ integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==,
+ }
+ engines: { node: '>=8' }
+
+ path-key@3.1.1:
+ resolution:
+ {
+ integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==,
+ }
+ engines: { node: '>=8' }
+
+ path-parse@1.0.7:
+ resolution:
+ {
+ integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==,
+ }
+
+ path-scurry@2.0.2:
+ resolution:
+ {
+ integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==,
+ }
+ engines: { node: 18 || 20 || >=22 }
+
+ path-to-regexp@6.3.0:
+ resolution:
+ {
+ integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==,
+ }
+
+ path-type@4.0.0:
+ resolution:
+ {
+ integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==,
+ }
+ engines: { node: '>=8' }
+
+ pathe@2.0.3:
+ resolution:
+ {
+ integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==,
+ }
+
+ picocolors@1.1.1:
+ resolution:
+ {
+ integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==,
+ }
+
+ picomatch@2.3.2:
+ resolution:
+ {
+ integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==,
+ }
+ engines: { node: '>=8.6' }
+
+ picomatch@4.0.5:
+ resolution:
+ {
+ integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==,
+ }
+ engines: { node: '>=12' }
+
+ pify@4.0.1:
+ resolution:
+ {
+ integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==,
+ }
+ engines: { node: '>=6' }
+
+ piscina@5.3.0:
+ resolution:
+ {
+ integrity: sha512-9D3tPBayfoal6l9l4Y8NrMn1jkV718qJoYrla6P51+hh9h0Q+9/1c8KgEnoBQqhguyfgjay4biADI8HJG3pkoA==,
+ }
+ engines: { node: '>=20.x' }
+
+ pkg-dir@8.0.0:
+ resolution:
+ {
+ integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==,
+ }
+ engines: { node: '>=18' }
+
+ playwright-core@1.62.0:
+ resolution:
+ {
+ integrity: sha512-nsNRyq0r2zsG8AcRHWknc9QRA5XCueC7gWMrs+Gx2tlZn9hcl8zudfh00lhJPY1DE7NmZ6bDsT9g2yey8mXljA==,
+ }
+ engines: { node: '>=20' }
+ hasBin: true
+
+ playwright@1.62.0:
+ resolution:
+ {
+ integrity: sha512-Z14dG305dgaLu6foB1TXQagFiW8JfSUIUaUuPaKQ6NtBPKF1P/qXcqfh6c6K/icPqdy37JmjbiBXf6JNg6Sylw==,
+ }
+ engines: { node: '>=20' }
+ hasBin: true
+
+ plist@3.1.1:
+ resolution:
+ {
+ integrity: sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA==,
+ }
+ engines: { node: '>=10.4.0' }
+
+ pngjs@3.4.0:
+ resolution:
+ {
+ integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==,
+ }
+ engines: { node: '>=4.0.0' }
+
+ postcss@8.5.23:
+ resolution:
+ {
+ integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==,
+ }
+ engines: { node: ^10 || ^12 || >=14 }
+
+ preact-render-to-string@6.7.0:
+ resolution:
+ {
+ integrity: sha512-Z4WR8fmLMRpdYqJ9i7vrlXSsSrxVJydwrkEXHapexfARbWfGb7vGcnvNQnIzN0cXciMVOlz/XLoiMCi9gUsy9Q==,
+ }
+ peerDependencies:
+ preact: '>=10 || >= 11.0.0-0'
+
+ preact@10.29.7:
+ resolution:
+ {
+ integrity: sha512-DCHYrK/B10yUD3ZjLfhZ3WIE/9Vf9VFUODcRE2dRomTYDpJk6z6L9wecSfhfE6M9ZTHUdyQkoC46arIDhEV84Q==,
+ }
+ peerDependencies:
+ preact-render-to-string: '>=5'
+ peerDependenciesMeta:
+ preact-render-to-string:
+ optional: true
+
+ prettier@2.8.8:
+ resolution:
+ {
+ integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==,
+ }
+ engines: { node: '>=10.13.0' }
+ hasBin: true
+
+ prettier@3.9.6:
+ resolution:
+ {
+ integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==,
+ }
+ engines: { node: '>=14' }
+ hasBin: true
+
+ pretty-format@29.7.0:
+ resolution:
+ {
+ integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==,
+ }
+ engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 }
+
+ probe-image-size@7.3.0:
+ resolution:
+ {
+ integrity: sha512-7CaDeBwiAbh6ohXsvLbAZhO7wzsZAmaevfxe39qvCwRh8LyaZfDlBGGLU1CCTgrTLtCOdwBBhjOrIHaIIimHfQ==,
+ }
+
+ proc-log@4.2.0:
+ resolution:
+ {
+ integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==,
+ }
+ engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 }
+
+ progress@2.0.3:
+ resolution:
+ {
+ integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==,
+ }
+ engines: { node: '>=0.4.0' }
+
+ promise@8.3.0:
+ resolution:
+ {
+ integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==,
+ }
+
+ prompts@2.4.2:
+ resolution:
+ {
+ integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==,
+ }
+ engines: { node: '>= 6' }
+
+ proxy-from-env@2.1.0:
+ resolution:
+ {
+ integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==,
+ }
+ engines: { node: '>=10' }
+
+ prr@1.0.1:
+ resolution:
+ {
+ integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==,
+ }
+
+ punycode@2.3.1:
+ resolution:
+ {
+ integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==,
+ }
+ engines: { node: '>=6' }
+
+ qs@6.15.3:
+ resolution:
+ {
+ integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==,
+ }
+ engines: { node: '>=0.6' }
+
+ quansync@0.2.11:
+ resolution:
+ {
+ integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==,
+ }
+
+ queue-microtask@1.2.3:
+ resolution:
+ {
+ integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==,
+ }
+
+ queue@6.0.2:
+ resolution:
+ {
+ integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==,
+ }
+
+ range-parser@1.2.1:
+ resolution:
+ {
+ integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==,
+ }
+ engines: { node: '>= 0.6' }
+
+ raw-body@2.5.3:
+ resolution:
+ {
+ integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==,
+ }
+ engines: { node: '>= 0.8' }
+
+ react-devtools-core@6.1.5:
+ resolution:
+ {
+ integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==,
+ }
+
+ react-dom@19.2.3:
+ resolution:
+ {
+ integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==,
+ }
+ peerDependencies:
+ react: ^19.2.3
+
+ react-is@18.3.1:
+ resolution:
+ {
+ integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==,
+ }
+
+ react-is@19.2.8:
+ resolution:
+ {
+ integrity: sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==,
+ }
+
+ react-native-svg@15.15.4:
+ resolution:
+ {
+ integrity: sha512-boT/vIRgj6zZKBpfTPJJiYWMbZE9duBMOwPK6kCSTgxsS947IFMOq9OgIFkpWZTB7t229H24pDRkh3W9ZK/J1A==,
+ }
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ react-native-svg@15.15.5:
+ resolution:
+ {
+ integrity: sha512-L4go5jA+GWutdJ/JucuN20cjAbMg1HmMtAP+wZ+3JLCf6Jd0bhXQHxciRP/AQm/FlrIEZwkMcHNZP+FXAiic0w==,
+ }
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ react-native@0.86.2:
+ resolution:
+ {
+ integrity: sha512-zbJXGZpwfZGA79Z9ob6Atvfx4nAQL8yJBa35s58E4Oo+khPykfQP2sTeumkKbjwajFYfVayg8pj7Il9nIfTk7A==,
+ }
+ engines: { node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0 }
+ hasBin: true
+ peerDependencies:
+ '@react-native/jest-preset': 0.86.2
+ '@types/react': ^19.1.1
+ react: ^19.2.3
+ peerDependenciesMeta:
+ '@react-native/jest-preset':
+ optional: true
+ '@types/react':
+ optional: true
+
+ react-redux@9.3.0:
+ resolution:
+ {
+ integrity: sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==,
+ }
+ peerDependencies:
+ '@types/react': ^18.2.25 || ^19
+ react: ^18.0 || ^19
+ redux: ^5.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ redux:
+ optional: true
+
+ react-refresh@0.14.2:
+ resolution:
+ {
+ integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ react@19.2.3:
+ resolution:
+ {
+ integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ read-yaml-file@1.1.0:
+ resolution:
+ {
+ integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==,
+ }
+ engines: { node: '>=6' }
+
+ readable-stream@3.6.2:
+ resolution:
+ {
+ integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==,
+ }
+ engines: { node: '>= 6' }
+
+ readdirp@4.1.2:
+ resolution:
+ {
+ integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==,
+ }
+ engines: { node: '>= 14.18.0' }
+
+ readdirp@5.0.0:
+ resolution:
+ {
+ integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==,
+ }
+ engines: { node: '>= 20.19.0' }
+
+ recharts@3.10.1:
+ resolution:
+ {
+ integrity: sha512-QXFrvt6IVcw7eeZCoyXTwkIJAX3Dv1nyVhMicXJ47GsGDDpcN8z6o644DibE9XjpBTThtsomLKnTV6lc+cVFUA==,
+ }
+ engines: { node: '>=18' }
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-is: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ redux-thunk@3.1.0:
+ resolution:
+ {
+ integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==,
+ }
+ peerDependencies:
+ redux: ^5.0.0
+
+ redux@5.0.1:
+ resolution:
+ {
+ integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==,
+ }
+
+ reflect-metadata@0.2.2:
+ resolution:
+ {
+ integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==,
+ }
+
+ regenerate-unicode-properties@10.2.2:
+ resolution:
+ {
+ integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==,
+ }
+ engines: { node: '>=4' }
+
+ regenerate@1.4.2:
+ resolution:
+ {
+ integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==,
+ }
+
+ regenerator-runtime@0.13.11:
+ resolution:
+ {
+ integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==,
+ }
+
+ regexpu-core@6.4.0:
+ resolution:
+ {
+ integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==,
+ }
+ engines: { node: '>=4' }
+
+ regjsgen@0.8.0:
+ resolution:
+ {
+ integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==,
+ }
+
+ regjsparser@0.13.2:
+ resolution:
+ {
+ integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==,
+ }
+ hasBin: true
+
+ require-directory@2.1.1:
+ resolution:
+ {
+ integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ require-from-string@2.0.2:
+ resolution:
+ {
+ integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ require-main-filename@2.0.0:
+ resolution:
+ {
+ integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==,
+ }
+
+ reselect@5.2.0:
+ resolution:
+ {
+ integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==,
+ }
+
+ resolve-from@4.0.0:
+ resolution:
+ {
+ integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==,
+ }
+ engines: { node: '>=4' }
+
+ resolve-from@5.0.0:
+ resolution:
+ {
+ integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==,
+ }
+ engines: { node: '>=8' }
+
+ resolve-workspace-root@2.0.1:
+ resolution:
+ {
+ integrity: sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==,
+ }
+
+ resolve.exports@2.0.3:
+ resolution:
+ {
+ integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==,
+ }
+ engines: { node: '>=10' }
+
+ resolve@1.22.12:
+ resolution:
+ {
+ integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==,
+ }
+ engines: { node: '>= 0.4' }
+ hasBin: true
+
+ restore-cursor@2.0.0:
+ resolution:
+ {
+ integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==,
+ }
+ engines: { node: '>=4' }
+
+ restore-cursor@3.1.0:
+ resolution:
+ {
+ integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==,
+ }
+ engines: { node: '>=8' }
+
+ restore-cursor@5.1.0:
+ resolution:
+ {
+ integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==,
+ }
+ engines: { node: '>=18' }
+
+ reusify@1.1.0:
+ resolution:
+ {
+ integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==,
+ }
+ engines: { iojs: '>=1.0.0', node: '>=0.10.0' }
+
+ robust-predicates@3.0.3:
+ resolution:
+ {
+ integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==,
+ }
+
+ rolldown@1.1.5:
+ resolution:
+ {
+ integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ hasBin: true
+
+ rollup-plugin-dts@6.4.1:
+ resolution:
+ {
+ integrity: sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==,
+ }
+ engines: { node: '>=20' }
+ peerDependencies:
+ rollup: ^3.29.4 || ^4
+ typescript: ^4.5 || ^5.0 || ^6.0
+
+ rollup@4.62.3:
+ resolution:
+ {
+ integrity: sha512-Gu0c0iH9FzgX1L1t7ByIbbS3Vmdz+6KHm/EsqmmC71gUQ82yvZRkTK6XzrFObSka91WUVdynqp6nsfilzr5k6Q==,
+ }
+ engines: { node: '>=18.0.0', npm: '>=8.0.0' }
+ hasBin: true
+
+ run-parallel@1.2.0:
+ resolution:
+ {
+ integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==,
+ }
+
+ rw@1.3.3:
+ resolution:
+ {
+ integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==,
+ }
+
+ rxjs@7.8.2:
+ resolution:
+ {
+ integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==,
+ }
+
+ sade@1.8.1:
+ resolution:
+ {
+ integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==,
+ }
+ engines: { node: '>=6' }
+
+ safe-buffer@5.2.1:
+ resolution:
+ {
+ integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==,
+ }
+
+ safer-buffer@2.1.2:
+ resolution:
+ {
+ integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==,
+ }
+
+ sass@1.102.0:
+ resolution:
+ {
+ integrity: sha512-NSOyTnaQF7rTAEOtI2fwb386vL+akyiQLBZu8Na7hXCb+umJy0GAqlcMIaqACZ6Z1VgTBS4K9PG6B3IdjHGJsw==,
+ }
+ engines: { node: '>=20.19.0' }
+ hasBin: true
+
+ sax@1.6.1:
+ resolution:
+ {
+ integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==,
+ }
+ engines: { node: '>=11.0.0' }
+
+ saxes@6.0.0:
+ resolution:
+ {
+ integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==,
+ }
+ engines: { node: '>=v12.22.7' }
+
+ scheduler@0.27.0:
+ resolution:
+ {
+ integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==,
+ }
+
+ scule@1.3.0:
+ resolution:
+ {
+ integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==,
+ }
+
+ semver@6.3.1:
+ resolution:
+ {
+ integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==,
+ }
+ hasBin: true
+
+ semver@7.7.4:
+ resolution:
+ {
+ integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==,
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ semver@7.8.5:
+ resolution:
+ {
+ integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==,
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ send@0.19.2:
+ resolution:
+ {
+ integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==,
+ }
+ engines: { node: '>= 0.8.0' }
+
+ serialize-error@2.1.0:
+ resolution:
+ {
+ integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ seroval-plugins@1.5.6:
+ resolution:
+ {
+ integrity: sha512-HXuLAX2pu/UByPpaeo/TaMfvMIi+1QqIoPJYCcAtU8QkVNwgR6MPlGuCQTErV1JwraaMbYaWVIBX7mppzGLATQ==,
+ }
+ engines: { node: '>=10' }
+ peerDependencies:
+ seroval: ^1.0
+
+ seroval@1.5.6:
+ resolution:
+ {
+ integrity: sha512-rVQVWjjSvlINzaQPZH5JFqsqEsIWdTxY3iJZCnTL/5gQbXIRooVZKI60tVCkOVfzcRPejboxO2t0P89dg5mQaA==,
+ }
+ engines: { node: '>=10' }
+
+ serve-static@1.16.3:
+ resolution:
+ {
+ integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==,
+ }
+ engines: { node: '>= 0.8.0' }
+
+ set-blocking@2.0.0:
+ resolution:
+ {
+ integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==,
+ }
+
+ setprototypeof@1.2.0:
+ resolution:
+ {
+ integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==,
+ }
+
+ sharp@0.34.5:
+ resolution:
+ {
+ integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==,
+ }
+ engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+
+ shebang-command@2.0.0:
+ resolution:
+ {
+ integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==,
+ }
+ engines: { node: '>=8' }
+
+ shebang-regex@3.0.0:
+ resolution:
+ {
+ integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==,
+ }
+ engines: { node: '>=8' }
+
+ shell-quote@1.10.0:
+ resolution:
+ {
+ integrity: sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==,
+ }
+ engines: { node: '>= 0.4' }
+
+ side-channel-list@1.0.1:
+ resolution:
+ {
+ integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==,
+ }
+ engines: { node: '>= 0.4' }
+
+ side-channel-map@1.0.1:
+ resolution:
+ {
+ integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==,
+ }
+ engines: { node: '>= 0.4' }
+
+ side-channel-weakmap@1.0.2:
+ resolution:
+ {
+ integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==,
+ }
+ engines: { node: '>= 0.4' }
+
+ side-channel@1.1.1:
+ resolution:
+ {
+ integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==,
+ }
+ engines: { node: '>= 0.4' }
+
+ siginfo@2.0.0:
+ resolution:
+ {
+ integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==,
+ }
+
+ signal-exit@3.0.7:
+ resolution:
+ {
+ integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==,
+ }
+
+ signal-exit@4.1.0:
+ resolution:
+ {
+ integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==,
+ }
+ engines: { node: '>=14' }
+
+ simple-plist@1.3.1:
+ resolution:
+ {
+ integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==,
+ }
+
+ sisteransi@1.0.5:
+ resolution:
+ {
+ integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==,
+ }
+
+ slash@3.0.0:
+ resolution:
+ {
+ integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==,
+ }
+ engines: { node: '>=8' }
+
+ slice-ansi@2.1.0:
+ resolution:
+ {
+ integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==,
+ }
+ engines: { node: '>=6' }
+
+ slugify@1.6.9:
+ resolution:
+ {
+ integrity: sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==,
+ }
+ engines: { node: '>=8.0.0' }
+
+ smol-toml@1.6.1:
+ resolution:
+ {
+ integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==,
+ }
+ engines: { node: '>= 18' }
+
+ solid-js@1.9.14:
+ resolution:
+ {
+ integrity: sha512-sAEXC0Kk0S1EDg+8ysEWJDbYhA3RRoEjwuySUGlKIemeo0I5YZfOyumNjNs9Sv3y2nmhD+0rW66ag2HsMuQiGQ==,
+ }
+
+ solid-refresh@0.6.3:
+ resolution:
+ {
+ integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==,
+ }
+ peerDependencies:
+ solid-js: ^1.3
+
+ source-map-js@1.2.1:
+ resolution:
+ {
+ integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ source-map-support@0.5.21:
+ resolution:
+ {
+ integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==,
+ }
+
+ source-map@0.5.7:
+ resolution:
+ {
+ integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ source-map@0.6.1:
+ resolution:
+ {
+ integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==,
+ }
+ engines: { node: '>=0.10.0' }
+
+ spawndamnit@3.0.1:
+ resolution:
+ {
+ integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==,
+ }
+
+ sprintf-js@1.0.3:
+ resolution:
+ {
+ integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==,
+ }
+
+ stackback@0.0.2:
+ resolution:
+ {
+ integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==,
+ }
+
+ stackframe@1.3.4:
+ resolution:
+ {
+ integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==,
+ }
+
+ stacktrace-parser@0.1.11:
+ resolution:
+ {
+ integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==,
+ }
+ engines: { node: '>=6' }
+
+ statuses@1.5.0:
+ resolution:
+ {
+ integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==,
+ }
+ engines: { node: '>= 0.6' }
+
+ statuses@2.0.2:
+ resolution:
+ {
+ integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==,
+ }
+ engines: { node: '>= 0.8' }
+
+ std-env@4.2.0:
+ resolution:
+ {
+ integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==,
+ }
+
+ stdin-discarder@0.3.2:
+ resolution:
+ {
+ integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==,
+ }
+ engines: { node: '>=18' }
+
+ stream-buffers@2.2.0:
+ resolution:
+ {
+ integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==,
+ }
+ engines: { node: '>= 0.10.0' }
+
+ stream-parser@0.3.1:
+ resolution:
+ {
+ integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==,
+ }
+
+ string-width@4.2.3:
+ resolution:
+ {
+ integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==,
+ }
+ engines: { node: '>=8' }
+
+ string-width@7.2.0:
+ resolution:
+ {
+ integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==,
+ }
+ engines: { node: '>=18' }
+
+ string-width@8.2.2:
+ resolution:
+ {
+ integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==,
+ }
+ engines: { node: '>=20' }
+
+ string_decoder@1.3.0:
+ resolution:
+ {
+ integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==,
+ }
+
+ strip-ansi@5.2.0:
+ resolution:
+ {
+ integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==,
+ }
+ engines: { node: '>=6' }
+
+ strip-ansi@6.0.1:
+ resolution:
+ {
+ integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==,
+ }
+ engines: { node: '>=8' }
+
+ strip-ansi@7.2.0:
+ resolution:
+ {
+ integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==,
+ }
+ engines: { node: '>=12' }
+
+ strip-bom@3.0.0:
+ resolution:
+ {
+ integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==,
+ }
+ engines: { node: '>=4' }
+
+ strip-final-newline@2.0.0:
+ resolution:
+ {
+ integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==,
+ }
+ engines: { node: '>=6' }
+
+ strnum@1.1.2:
+ resolution:
+ {
+ integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==,
+ }
+
+ structured-headers@0.4.1:
+ resolution:
+ {
+ integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==,
+ }
+
+ supports-color@10.2.2:
+ resolution:
+ {
+ integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==,
+ }
+ engines: { node: '>=18' }
+
+ supports-color@5.5.0:
+ resolution:
+ {
+ integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==,
+ }
+ engines: { node: '>=4' }
+
+ supports-color@7.2.0:
+ resolution:
+ {
+ integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==,
+ }
+ engines: { node: '>=8' }
+
+ supports-color@8.1.1:
+ resolution:
+ {
+ integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==,
+ }
+ engines: { node: '>=10' }
+
+ supports-hyperlinks@2.3.0:
+ resolution:
+ {
+ integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==,
+ }
+ engines: { node: '>=8' }
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution:
+ {
+ integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==,
+ }
+ engines: { node: '>= 0.4' }
+
+ svelte-check@4.7.4:
+ resolution:
+ {
+ integrity: sha512-IW9ot9YqAoyv8FvyN+eb4ZTe8zgcKZrJLNYU6dzSKkGwEBsSPc4K7lmQ8bKn8W2YMXM6WDfZSSVOaGtekyUfOQ==,
+ }
+ engines: { node: '>= 18.0.0' }
+ hasBin: true
+ peerDependencies:
+ svelte: ^4.0.0 || ^5.0.0-next.0
+ typescript: ^5.0.0 || ^6.0.0
+
+ svelte2tsx@0.7.59:
+ resolution:
+ {
+ integrity: sha512-Itj7Wz9WIiGFl/uJa58+rf43ajezaljKK/KTOHq5abUjto56xe+o5SOzLwSoeJ5hma9NZEstpZiazFW2q1nZPQ==,
+ }
+ peerDependencies:
+ svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0
+ typescript: ^4.9.4 || ^5.0.0 || ^6.0.0
+
+ svelte@5.56.8:
+ resolution:
+ {
+ integrity: sha512-PY8LOw7xP6c8IOiVqdo0sbbZVYhXRSfklOQLAUyGBKqjTX0wx/z4l/9J+PmBpmlLnxzEb1NqltxQ5/wZme/Cmg==,
+ }
+ engines: { node: '>=18' }
+
+ symbol-tree@3.2.4:
+ resolution:
+ {
+ integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==,
+ }
+
+ tar-stream@2.2.0:
+ resolution:
+ {
+ integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==,
+ }
+ engines: { node: '>=6' }
+
+ term-size@2.2.1:
+ resolution:
+ {
+ integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==,
+ }
+ engines: { node: '>=8' }
+
+ terminal-link@2.1.1:
+ resolution:
+ {
+ integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==,
+ }
+ engines: { node: '>=8' }
+
+ terser@5.49.0:
+ resolution:
+ {
+ integrity: sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==,
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ throat@5.0.0:
+ resolution:
+ {
+ integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==,
+ }
+
+ tiny-invariant@1.3.3:
+ resolution:
+ {
+ integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==,
+ }
+
+ tinybench@2.9.0:
+ resolution:
+ {
+ integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==,
+ }
+
+ tinyexec@1.2.4:
+ resolution:
+ {
+ integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==,
+ }
+ engines: { node: '>=18' }
+
+ tinyglobby@0.2.17:
+ resolution:
+ {
+ integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==,
+ }
+ engines: { node: '>=12.0.0' }
+
+ tinyrainbow@3.1.0:
+ resolution:
+ {
+ integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==,
+ }
+ engines: { node: '>=14.0.0' }
+
+ tldts-core@7.4.9:
+ resolution:
+ {
+ integrity: sha512-DxKfPBI52p2msTEu7MPhdpdDTBhhVQg1a/8PjQckeyAvO13eMYElX545grIp6nnTGIMZlRvFZPvFhvI/WIz2Vg==,
+ }
+
+ tldts@7.4.9:
+ resolution:
+ {
+ integrity: sha512-3kZ8wQQ/k5DrChD4X4FVvr2D7E5uoRgAqkPyLpSCGUvqOvqu+JEdr3mwMUaVWb+vMHZaKhF5fp2PBigKsui7hA==,
+ }
+ hasBin: true
+
+ tmp@0.2.6:
+ resolution:
+ {
+ integrity: sha512-5sJPdPjfI5Kx+qbrDesxkglRBxW//g7hCsqspEjwkewGvBMGIKMOTKzLt1hFVJzyadba3lDUN20O9qhvbQUSTA==,
+ }
+ engines: { node: '>=14.14' }
+
+ tmpl@1.0.5:
+ resolution:
+ {
+ integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==,
+ }
+
+ to-regex-range@5.0.1:
+ resolution:
+ {
+ integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==,
+ }
+ engines: { node: '>=8.0' }
+
+ toidentifier@1.0.1:
+ resolution:
+ {
+ integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==,
+ }
+ engines: { node: '>=0.6' }
+
+ topojson-client@3.1.0:
+ resolution:
+ {
+ integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==,
+ }
+ hasBin: true
+
+ toqr@0.1.1:
+ resolution:
+ {
+ integrity: sha512-FWAPzCIHZHnrE/5/w9MPk0kK25hSQSH2IKhYh9PyjS3SG/+IEMvlwIHbhz+oF7xl54I+ueZlVnMjyzdSwLmAwA==,
+ }
+
+ tough-cookie@6.0.2:
+ resolution:
+ {
+ integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==,
+ }
+ engines: { node: '>=16' }
+
+ tr46@0.0.3:
+ resolution:
+ {
+ integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==,
+ }
+
+ tr46@6.0.0:
+ resolution:
+ {
+ integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==,
+ }
+ engines: { node: '>=20' }
+
+ tree-kill@1.2.2:
+ resolution:
+ {
+ integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==,
+ }
+ hasBin: true
+
+ tsconfig-paths@4.2.0:
+ resolution:
+ {
+ integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==,
+ }
+ engines: { node: '>=6' }
+
+ tslib@2.3.0:
+ resolution:
+ {
+ integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==,
+ }
+
+ tslib@2.8.1:
+ resolution:
+ {
+ integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==,
+ }
+
+ type-fest@0.21.3:
+ resolution:
+ {
+ integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==,
+ }
+ engines: { node: '>=10' }
+
+ type-fest@0.7.1:
+ resolution:
+ {
+ integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==,
+ }
+ engines: { node: '>=8' }
+
+ type-is@1.6.18:
+ resolution:
+ {
+ integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==,
+ }
+ engines: { node: '>= 0.6' }
+
+ typescript@6.0.3:
+ resolution:
+ {
+ integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==,
+ }
+ engines: { node: '>=14.17' }
+ hasBin: true
+
+ undici-types@7.24.6:
+ resolution:
+ {
+ integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==,
+ }
+
+ undici@7.28.0:
+ resolution:
+ {
+ integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==,
+ }
+ engines: { node: '>=20.18.1' }
+
+ undici@7.29.0:
+ resolution:
+ {
+ integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==,
+ }
+ engines: { node: '>=20.18.1' }
+
+ unenv@2.0.0-rc.24:
+ resolution:
+ {
+ integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==,
+ }
+
+ unicode-canonical-property-names-ecmascript@2.0.1:
+ resolution:
+ {
+ integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==,
+ }
+ engines: { node: '>=4' }
+
+ unicode-match-property-ecmascript@2.0.0:
+ resolution:
+ {
+ integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==,
+ }
+ engines: { node: '>=4' }
+
+ unicode-match-property-value-ecmascript@2.2.1:
+ resolution:
+ {
+ integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==,
+ }
+ engines: { node: '>=4' }
+
+ unicode-property-aliases-ecmascript@2.2.0:
+ resolution:
+ {
+ integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==,
+ }
+ engines: { node: '>=4' }
+
+ universalify@0.1.2:
+ resolution:
+ {
+ integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==,
+ }
+ engines: { node: '>= 4.0.0' }
+
+ unpipe@1.0.0:
+ resolution:
+ {
+ integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==,
+ }
+ engines: { node: '>= 0.8' }
+
+ update-browserslist-db@1.2.3:
+ resolution:
+ {
+ integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==,
+ }
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ us-atlas@3.0.1:
+ resolution:
+ {
+ integrity: sha512-wEIZCq0ImPvGblTd8gZMqNNCPkQshugMUG/8nkSWXb02+XqNFREg9atHOKP9w6prLZTpqcLhSvdBW81MkV3/0Q==,
+ }
+
+ use-sync-external-store@1.6.0:
+ resolution:
+ {
+ integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==,
+ }
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ util-deprecate@1.0.2:
+ resolution:
+ {
+ integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==,
+ }
+
+ utils-merge@1.0.1:
+ resolution:
+ {
+ integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==,
+ }
+ engines: { node: '>= 0.4.0' }
+
+ uuid@7.0.3:
+ resolution:
+ {
+ integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==,
+ }
+ deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
+ hasBin: true
+
+ validate-npm-package-name@5.0.1:
+ resolution:
+ {
+ integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==,
+ }
+ engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 }
+
+ vary@1.1.2:
+ resolution:
+ {
+ integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==,
+ }
+ engines: { node: '>= 0.8' }
+
+ victory-vendor@37.3.6:
+ resolution:
+ {
+ integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==,
+ }
+
+ vite-plugin-solid@2.11.14:
+ resolution:
+ {
+ integrity: sha512-7ZVBt8rpoyqmlwin2kRIUveaHoF6/kulY7gsnD+qFh4nS29V4OPAnw+ojoAspXIjObiL9o1xh9a/nTuYHm02Rw==,
+ }
+ peerDependencies:
+ '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.0.0 || ^7.0.0
+ solid-js: ^1.7.2
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
+ peerDependenciesMeta:
+ '@testing-library/jest-dom':
+ optional: true
+
+ vite@8.1.5:
+ resolution:
+ {
+ integrity: sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ '@vitejs/devtools': ^0.3.0
+ esbuild: ^0.27.0 || ^0.28.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ '@vitejs/devtools':
+ optional: true
+ esbuild:
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ vitefu@1.1.3:
+ resolution:
+ {
+ integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==,
+ }
+ peerDependencies:
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ vite:
+ optional: true
+
+ vitest@4.1.10:
+ resolution:
+ {
+ integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==,
+ }
+ engines: { node: ^20.0.0 || ^22.0.0 || >=24.0.0 }
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@opentelemetry/api': ^1.9.0
+ '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
+ '@vitest/browser-playwright': 4.1.10
+ '@vitest/browser-preview': 4.1.10
+ '@vitest/browser-webdriverio': 4.1.10
+ '@vitest/coverage-istanbul': 4.1.10
+ '@vitest/coverage-v8': 4.1.10
+ '@vitest/ui': 4.1.10
+ happy-dom: '*'
+ jsdom: '*'
+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@opentelemetry/api':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser-playwright':
+ optional: true
+ '@vitest/browser-preview':
+ optional: true
+ '@vitest/browser-webdriverio':
+ optional: true
+ '@vitest/coverage-istanbul':
+ optional: true
+ '@vitest/coverage-v8':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+
+ vlq@1.0.1:
+ resolution:
+ {
+ integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==,
+ }
+
+ vue@3.5.40:
+ resolution:
+ {
+ integrity: sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig==,
+ }
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ w3c-xmlserializer@5.0.0:
+ resolution:
+ {
+ integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==,
+ }
+ engines: { node: '>=18' }
+
+ walker@1.0.8:
+ resolution:
+ {
+ integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==,
+ }
+
+ warn-once@0.1.1:
+ resolution:
+ {
+ integrity: sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==,
+ }
+
+ wcwidth@1.0.1:
+ resolution:
+ {
+ integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==,
+ }
+
+ webidl-conversions@3.0.1:
+ resolution:
+ {
+ integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==,
+ }
+
+ webidl-conversions@8.0.1:
+ resolution:
+ {
+ integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==,
+ }
+ engines: { node: '>=20' }
+
+ whatwg-fetch@3.6.20:
+ resolution:
+ {
+ integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==,
+ }
+
+ whatwg-mimetype@5.0.0:
+ resolution:
+ {
+ integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==,
+ }
+ engines: { node: '>=20' }
+
+ whatwg-url-minimum@0.1.2:
+ resolution:
+ {
+ integrity: sha512-XPEm0XFQWNVG292lII1PrRRJl3sItrs7CettZ4ncYxuDVpLyy+NwlGyut2hXI0JswcJUxeCH+CyOJK0ZzAXD6A==,
+ }
+
+ whatwg-url@16.0.1:
+ resolution:
+ {
+ integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==,
+ }
+ engines: { node: ^20.19.0 || ^22.12.0 || >=24.0.0 }
+
+ whatwg-url@5.0.0:
+ resolution:
+ {
+ integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==,
+ }
+
+ which-module@2.0.1:
+ resolution:
+ {
+ integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==,
+ }
+
+ which@2.0.2:
+ resolution:
+ {
+ integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==,
+ }
+ engines: { node: '>= 8' }
+ hasBin: true
+
+ why-is-node-running@2.3.0:
+ resolution:
+ {
+ integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==,
+ }
+ engines: { node: '>=8' }
+ hasBin: true
+
+ workerd@1.20260617.1:
+ resolution:
+ {
+ integrity: sha512-Re5pl6pdowt3ZmWUzGlOuB7jbRIIPetgKalmo4cYmucQnVhpo7/3e4MfpekbhLi2EhZZz5EY9NWRu8zFzuEZew==,
}
engines: { node: '>=16' }
hasBin: true
@@ -6649,6 +9712,13 @@ packages:
'@cloudflare/workers-types':
optional: true
+ wrap-ansi@6.2.0:
+ resolution:
+ {
+ integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==,
+ }
+ engines: { node: '>=8' }
+
wrap-ansi@7.0.0:
resolution:
{
@@ -6669,6 +9739,35 @@ packages:
integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==,
}
+ ws@6.2.6:
+ resolution:
+ {
+ integrity: sha512-XTrf1gv7kXoVf1hbC3PAyAiPgR8Wz1blcrYIjEsUmr08BLksT41R8KbjmS9408C2ERx7v1JDLD/BkpLEttjfKA==,
+ }
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ ws@7.5.13:
+ resolution:
+ {
+ integrity: sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA==,
+ }
+ engines: { node: '>=8.3.0' }
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
ws@8.21.0:
resolution:
{
@@ -6684,6 +9783,13 @@ packages:
utf-8-validate:
optional: true
+ xcode@3.0.1:
+ resolution:
+ {
+ integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==,
+ }
+ engines: { node: '>=10.0.0' }
+
xml-name-validator@5.0.0:
resolution:
{
@@ -6691,12 +9797,39 @@ packages:
}
engines: { node: '>=18' }
+ xml2js@0.6.0:
+ resolution:
+ {
+ integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==,
+ }
+ engines: { node: '>=4.0.0' }
+
+ xmlbuilder@11.0.1:
+ resolution:
+ {
+ integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==,
+ }
+ engines: { node: '>=4.0' }
+
+ xmlbuilder@15.1.1:
+ resolution:
+ {
+ integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==,
+ }
+ engines: { node: '>=8.0' }
+
xmlchars@2.2.0:
resolution:
{
integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==,
}
+ y18n@4.0.3:
+ resolution:
+ {
+ integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==,
+ }
+
y18n@5.0.8:
resolution:
{
@@ -6718,6 +9851,13 @@ packages:
engines: { node: '>= 14.6' }
hasBin: true
+ yargs-parser@18.1.3:
+ resolution:
+ {
+ integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==,
+ }
+ engines: { node: '>=6' }
+
yargs-parser@21.1.1:
resolution:
{
@@ -6730,7 +9870,14 @@ packages:
{
integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==,
}
- engines: { node: ^20.19.0 || ^22.12.0 || >=23 }
+ engines: { node: ^20.19.0 || ^22.12.0 || >=23 }
+
+ yargs@15.4.1:
+ resolution:
+ {
+ integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==,
+ }
+ engines: { node: '>=8' }
yargs@17.7.2:
resolution:
@@ -6746,6 +9893,13 @@ packages:
}
engines: { node: ^20.19.0 || ^22.12.0 || >=23 }
+ yocto-queue@0.1.0:
+ resolution:
+ {
+ integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==,
+ }
+ engines: { node: '>=10' }
+
yoctocolors@2.2.0:
resolution:
{
@@ -6771,6 +9925,12 @@ packages:
integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==,
}
+ zod@3.25.76:
+ resolution:
+ {
+ integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==,
+ }
+
zrender@6.1.0:
resolution:
{
@@ -6848,95 +10008,455 @@ snapshots:
'@asamuzakjp/generational-cache@1.0.1': {}
- '@asamuzakjp/nwsapi@2.3.9': {}
+ '@asamuzakjp/nwsapi@2.3.9': {}
+
+ '@babel/code-frame@7.29.7':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.29.7
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.29.7': {}
+
+ '@babel/core@7.29.7(supports-color@10.2.2)':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/helpers': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/template': 7.29.7
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@babel/types': 7.29.7
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3(supports-color@10.2.2)
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.29.7':
+ dependencies:
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ jsesc: 3.1.0
+
+ '@babel/helper-annotate-as-pure@7.29.7':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@babel/helper-compilation-targets@7.29.7':
+ dependencies:
+ '@babel/compat-data': 7.29.7
+ '@babel/helper-validator-option': 7.29.7
+ browserslist: 4.28.7
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-member-expression-to-functions': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-optimise-call-expression': 7.29.7
+ '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@10.2.2)
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-annotate-as-pure': 7.29.7
+ regexpu-core: 6.4.0
+ semver: 6.3.1
+
+ '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ debug: 4.4.3(supports-color@10.2.2)
+ lodash.debounce: 4.0.8
+ resolve: 1.22.12
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-globals@7.29.7': {}
+
+ '@babel/helper-member-expression-to-functions@7.29.7(supports-color@10.2.2)':
+ dependencies:
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-imports@7.18.6':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@babel/helper-module-imports@7.29.7(supports-color@10.2.2)':
+ dependencies:
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-validator-identifier': 7.29.7
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-optimise-call-expression@7.29.7':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@babel/helper-plugin-utils@7.29.7': {}
+
+ '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-wrap-function': 7.29.7(supports-color@10.2.2)
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-member-expression-to-functions': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-optimise-call-expression': 7.29.7
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.29.7(supports-color@10.2.2)':
+ dependencies:
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-string-parser@7.29.7': {}
+
+ '@babel/helper-validator-identifier@7.29.7': {}
+
+ '@babel/helper-validator-option@7.29.7': {}
+
+ '@babel/helper-wrap-function@7.29.7(supports-color@10.2.2)':
+ dependencies:
+ '@babel/template': 7.29.7
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helpers@7.29.7':
+ dependencies:
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.7
+
+ '@babel/parser@7.29.7':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-export-default-from@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-export-default-from@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-flow@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-async-generator-functions@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-globals': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-flow-strip-types@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-flow': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+
+ '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/code-frame@7.29.7':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
dependencies:
- '@babel/helper-validator-identifier': 7.29.7
- js-tokens: 4.0.0
- picocolors: 1.1.1
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/compat-data@7.29.7': {}
+ '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/core@7.29.7(supports-color@10.2.2)':
+ '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
dependencies:
- '@babel/code-frame': 7.29.7
- '@babel/generator': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
'@babel/helper-compilation-targets': 7.29.7
- '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
- '@babel/helpers': 7.29.7
- '@babel/parser': 7.29.7
- '@babel/template': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
'@babel/traverse': 7.29.7(supports-color@10.2.2)
- '@babel/types': 7.29.7
- '@jridgewell/remapping': 2.3.5
- convert-source-map: 2.0.0
- debug: 4.4.3(supports-color@10.2.2)
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.29.7':
+ '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
dependencies:
- '@babel/parser': 7.29.7
- '@babel/types': 7.29.7
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
- jsesc: 3.1.0
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/helper-compilation-targets@7.29.7':
+ '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
dependencies:
- '@babel/compat-data': 7.29.7
- '@babel/helper-validator-option': 7.29.7
- browserslist: 4.28.7
- lru-cache: 5.1.1
- semver: 6.3.1
-
- '@babel/helper-globals@7.29.7': {}
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-module-imports@7.18.6':
+ '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
dependencies:
- '@babel/types': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/helper-module-imports@7.29.7(supports-color@10.2.2)':
+ '@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
dependencies:
- '@babel/traverse': 7.29.7(supports-color@10.2.2)
- '@babel/types': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ '@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
dependencies:
'@babel/core': 7.29.7(supports-color@10.2.2)
- '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2)
- '@babel/helper-validator-identifier': 7.29.7
- '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
transitivePeerDependencies:
- supports-color
- '@babel/helper-plugin-utils@7.29.7': {}
+ '@babel/plugin-transform-react-display-name@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/helper-string-parser@7.29.7': {}
+ '@babel/plugin-transform-react-jsx-development@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-validator-identifier@7.29.7': {}
+ '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/helper-validator-option@7.29.7': {}
+ '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/helpers@7.29.7':
+ '@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
dependencies:
- '@babel/template': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
'@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/parser@7.29.7':
+ '@babel/plugin-transform-react-pure-annotations@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
dependencies:
- '@babel/types': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
dependencies:
'@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
'@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@10.2.2)
+ '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/preset-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-validator-option': 7.29.7
+ '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
'@babel/runtime@7.29.7': {}
@@ -7298,69 +10818,423 @@ snapshots:
'@esbuild/linux-s390x@0.28.1':
optional: true
- '@esbuild/linux-x64@0.27.7':
- optional: true
+ '@esbuild/linux-x64@0.27.7':
+ optional: true
+
+ '@esbuild/linux-x64@0.28.1':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.27.7':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.28.1':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.27.7':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.28.1':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.27.7':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.28.1':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.27.7':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.28.1':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.27.7':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.28.1':
+ optional: true
+
+ '@esbuild/sunos-x64@0.27.7':
+ optional: true
+
+ '@esbuild/sunos-x64@0.28.1':
+ optional: true
+
+ '@esbuild/win32-arm64@0.27.7':
+ optional: true
+
+ '@esbuild/win32-arm64@0.28.1':
+ optional: true
+
+ '@esbuild/win32-ia32@0.27.7':
+ optional: true
+
+ '@esbuild/win32-ia32@0.28.1':
+ optional: true
+
+ '@esbuild/win32-x64@0.27.7':
+ optional: true
+
+ '@esbuild/win32-x64@0.28.1':
+ optional: true
+
+ '@exodus/bytes@1.15.1(@noble/hashes@2.2.0)':
+ optionalDependencies:
+ '@noble/hashes': 2.2.0
+
+ '@expo/cli@57.0.11(db0d7a7e1f9ec962ef302cb8147809a2)':
+ dependencies:
+ '@expo/code-signing-certificates': 0.0.6
+ '@expo/config': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/config-plugins': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/devcert': 1.2.1(supports-color@10.2.2)
+ '@expo/env': 2.4.2(supports-color@10.2.2)
+ '@expo/image-utils': 0.11.4(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/inline-modules': 0.1.4(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/json-file': 11.0.1
+ '@expo/log-box': 57.0.2(@expo/dom-webview@57.0.1)(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ '@expo/metro': 56.0.0(supports-color@10.2.2)
+ '@expo/metro-config': 57.0.7(expo@57.0.9)(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/metro-file-map': 57.0.1(supports-color@10.2.2)
+ '@expo/osascript': 2.7.1
+ '@expo/package-manager': 1.13.1
+ '@expo/plist': 0.8.1
+ '@expo/prebuild-config': 57.0.10(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/require-utils': 57.0.4(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/router-server': 57.0.4(expo-constants@57.0.8(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(supports-color@10.2.2))(expo-font@57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3))(expo-server@57.0.1)(expo@57.0.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(supports-color@10.2.2)
+ '@expo/schema-utils': 57.0.2
+ '@expo/spawn-async': 1.8.0
+ '@expo/ws-tunnel': 2.0.0(ws@8.21.0)
+ '@expo/xcpretty': 4.4.4
+ '@react-native/dev-middleware': 0.86.2(supports-color@10.2.2)
+ accepts: 1.3.8
+ agent-cli-detector: 0.1.4
+ arg: 5.0.2
+ bplist-creator: 0.1.0
+ bplist-parser: 0.3.2
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ compression: 1.8.1(supports-color@10.2.2)
+ connect: 3.7.0(supports-color@10.2.2)
+ debug: 4.4.3(supports-color@10.2.2)
+ dnssd-advertise: 1.1.6
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ expo-server: 57.0.1
+ fetch-nodeshim: 0.4.10
+ getenv: 2.0.0
+ glob: 13.0.6
+ lan-network: 0.2.1
+ multitars: 1.0.0
+ node-forge: 1.4.0
+ npm-package-arg: 11.0.3
+ ora: 3.4.0
+ picomatch: 4.0.5
+ pretty-format: 29.7.0
+ progress: 2.0.3
+ prompts: 2.4.2
+ resolve-from: 5.0.0
+ semver: 7.8.5
+ send: 0.19.2(supports-color@10.2.2)
+ slugify: 1.6.9
+ stacktrace-parser: 0.1.11
+ structured-headers: 0.4.1
+ terminal-link: 2.1.1
+ toqr: 0.1.1
+ wrap-ansi: 7.0.0
+ ws: 8.21.0
+ zod: 3.25.76
+ optionalDependencies:
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - '@expo/dom-webview'
+ - '@expo/metro-runtime'
+ - bufferutil
+ - expo-constants
+ - expo-font
+ - react
+ - react-dom
+ - react-server-dom-webpack
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@expo/code-signing-certificates@0.0.6':
+ dependencies:
+ node-forge: 1.4.0
+
+ '@expo/config-plugins@57.0.6(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@expo/config-types': 57.0.2
+ '@expo/json-file': 11.0.1
+ '@expo/plist': 0.8.1
+ '@expo/require-utils': 57.0.4(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/sdk-runtime-versions': 1.0.0
+ chalk: 4.1.2
+ debug: 4.4.3(supports-color@10.2.2)
+ getenv: 2.0.0
+ glob: 13.0.6
+ semver: 7.8.5
+ slugify: 1.6.9
+ xcode: 3.0.1
+ xml2js: 0.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@expo/config-types@57.0.2': {}
+
+ '@expo/config@57.0.6(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@expo/config-plugins': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/config-types': 57.0.2
+ '@expo/json-file': 11.0.1
+ '@expo/require-utils': 57.0.4(supports-color@10.2.2)(typescript@6.0.3)
+ deepmerge: 4.3.1
+ getenv: 2.0.0
+ glob: 13.0.6
+ resolve-workspace-root: 2.0.1
+ semver: 7.8.5
+ slugify: 1.6.9
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@expo/devcert@1.2.1(supports-color@10.2.2)':
+ dependencies:
+ '@expo/sudo-prompt': 9.3.2
+ debug: 3.2.7(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/devtools@57.0.1(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)':
+ dependencies:
+ chalk: 4.1.2
+ optionalDependencies:
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+
+ '@expo/dom-webview@57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)':
+ dependencies:
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+
+ '@expo/env@2.4.2(supports-color@10.2.2)':
+ dependencies:
+ chalk: 4.1.2
+ debug: 4.4.3(supports-color@10.2.2)
+ getenv: 2.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/expo-modules-macros-plugin@0.6.1': {}
+
+ '@expo/fingerprint@0.20.6(supports-color@10.2.2)':
+ dependencies:
+ '@expo/env': 2.4.2(supports-color@10.2.2)
+ '@expo/spawn-async': 1.8.0
+ arg: 5.0.2
+ chalk: 4.1.2
+ debug: 4.4.3(supports-color@10.2.2)
+ getenv: 2.0.0
+ glob: 13.0.6
+ ignore: 5.3.2
+ minimatch: 10.2.5
+ resolve-from: 5.0.0
+ semver: 7.8.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/image-utils@0.11.4(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@expo/require-utils': 57.0.4(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/spawn-async': 1.8.0
+ chalk: 4.1.2
+ getenv: 2.0.0
+ jimp-compact: 0.16.1
+ parse-png: 2.1.0
+ semver: 7.8.5
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@expo/inline-modules@0.1.4(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@expo/config-plugins': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
- '@esbuild/linux-x64@0.28.1':
- optional: true
+ '@expo/json-file@11.0.1':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ json5: 2.2.3
- '@esbuild/netbsd-arm64@0.27.7':
- optional: true
+ '@expo/local-build-cache-provider@57.0.5(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@expo/config': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ chalk: 4.1.2
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
- '@esbuild/netbsd-arm64@0.28.1':
- optional: true
+ '@expo/log-box@57.0.2(@expo/dom-webview@57.0.1)(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)':
+ dependencies:
+ '@expo/dom-webview': 57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ anser: 1.4.10
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ stacktrace-parser: 0.1.11
- '@esbuild/netbsd-x64@0.27.7':
- optional: true
+ '@expo/metro-config@57.0.7(expo@57.0.9)(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/generator': 7.29.7
+ '@expo/config': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/env': 2.4.2(supports-color@10.2.2)
+ '@expo/json-file': 11.0.1
+ '@expo/metro': 56.0.0(supports-color@10.2.2)
+ '@expo/require-utils': 57.0.4(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/spawn-async': 1.8.0
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/remapping': 2.3.5
+ '@jridgewell/sourcemap-codec': 1.5.5
+ browserslist: 4.28.7
+ chalk: 4.1.2
+ debug: 4.4.3(supports-color@10.2.2)
+ getenv: 2.0.0
+ glob: 13.0.6
+ hermes-parser: 0.36.0
+ jsc-safe-url: 0.2.4
+ lightningcss: 1.33.0
+ picomatch: 4.0.5
+ postcss: 8.5.23
+ resolve-from: 5.0.0
+ optionalDependencies:
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - typescript
+ - utf-8-validate
- '@esbuild/netbsd-x64@0.28.1':
- optional: true
+ '@expo/metro-file-map@57.0.1(supports-color@10.2.2)':
+ dependencies:
+ debug: 4.4.3(supports-color@10.2.2)
+ fb-watchman: 2.0.2
+ invariant: 2.2.4
+ jest-worker: 29.7.0
+ micromatch: 4.0.8
+ walker: 1.0.8
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/openbsd-arm64@0.27.7':
- optional: true
+ '@expo/metro@56.0.0(supports-color@10.2.2)':
+ dependencies:
+ metro: 0.84.4(supports-color@10.2.2)
+ metro-babel-transformer: 0.84.4(supports-color@10.2.2)
+ metro-cache: 0.84.4(supports-color@10.2.2)
+ metro-cache-key: 0.84.4
+ metro-config: 0.84.4(supports-color@10.2.2)
+ metro-core: 0.84.4
+ metro-file-map: 0.84.4(supports-color@10.2.2)
+ metro-minify-terser: 0.84.4
+ metro-resolver: 0.84.4
+ metro-runtime: 0.84.4
+ metro-source-map: 0.84.4(supports-color@10.2.2)
+ metro-symbolicate: 0.84.4(supports-color@10.2.2)
+ metro-transform-plugins: 0.84.4(supports-color@10.2.2)
+ metro-transform-worker: 0.84.4(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
- '@esbuild/openbsd-arm64@0.28.1':
- optional: true
+ '@expo/osascript@2.7.1':
+ dependencies:
+ '@expo/spawn-async': 1.8.0
- '@esbuild/openbsd-x64@0.27.7':
- optional: true
+ '@expo/package-manager@1.13.1':
+ dependencies:
+ '@expo/json-file': 11.0.1
+ '@expo/spawn-async': 1.8.0
+ chalk: 4.1.2
+ npm-package-arg: 11.0.3
+ ora: 3.4.0
+ resolve-workspace-root: 2.0.1
- '@esbuild/openbsd-x64@0.28.1':
- optional: true
+ '@expo/plist@0.8.1':
+ dependencies:
+ '@xmldom/xmldom': 0.8.13
+ base64-js: 1.5.1
+ xmlbuilder: 15.1.1
- '@esbuild/openharmony-arm64@0.27.7':
- optional: true
+ '@expo/prebuild-config@57.0.10(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@expo/config': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/config-plugins': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/config-types': 57.0.2
+ '@expo/image-utils': 0.11.4(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/json-file': 11.0.1
+ '@react-native/normalize-colors': 0.86.2
+ debug: 4.4.3(supports-color@10.2.2)
+ expo-modules-autolinking: 57.0.9(supports-color@10.2.2)(typescript@6.0.3)
+ resolve-from: 5.0.0
+ semver: 7.8.5
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
- '@esbuild/openharmony-arm64@0.28.1':
- optional: true
+ '@expo/require-utils@57.0.4(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ optionalDependencies:
+ typescript: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/sunos-x64@0.27.7':
- optional: true
+ '@expo/router-server@57.0.4(expo-constants@57.0.8(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(supports-color@10.2.2))(expo-font@57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3))(expo-server@57.0.1)(expo@57.0.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(supports-color@10.2.2)':
+ dependencies:
+ debug: 4.4.3(supports-color@10.2.2)
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ expo-constants: 57.0.8(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(supports-color@10.2.2)
+ expo-font: 57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ expo-server: 57.0.1
+ react: 19.2.3
+ optionalDependencies:
+ react-dom: 19.2.3(react@19.2.3)
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/sunos-x64@0.28.1':
- optional: true
+ '@expo/schema-utils@57.0.2': {}
- '@esbuild/win32-arm64@0.27.7':
- optional: true
+ '@expo/sdk-runtime-versions@1.0.0': {}
- '@esbuild/win32-arm64@0.28.1':
- optional: true
+ '@expo/spawn-async@1.8.0':
+ dependencies:
+ cross-spawn: 7.0.6
- '@esbuild/win32-ia32@0.27.7':
- optional: true
+ '@expo/sudo-prompt@9.3.2': {}
- '@esbuild/win32-ia32@0.28.1':
- optional: true
+ '@expo/ws-tunnel@2.0.0(ws@8.21.0)':
+ dependencies:
+ ws: 8.21.0
- '@esbuild/win32-x64@0.27.7':
- optional: true
+ '@expo/xcpretty@4.4.4':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ chalk: 4.1.2
+ js-yaml: 4.3.0
- '@esbuild/win32-x64@0.28.1':
- optional: true
+ '@hapi/hoek@9.3.0': {}
- '@exodus/bytes@1.15.1(@noble/hashes@2.2.0)':
- optionalDependencies:
- '@noble/hashes': 2.2.0
+ '@hapi/topo@5.1.0':
+ dependencies:
+ '@hapi/hoek': 9.3.0
'@img/colour@1.1.0': {}
@@ -7465,8 +11339,23 @@ snapshots:
optionalDependencies:
'@types/node': 25.9.5
+ '@isaacs/ttlcache@1.4.1': {}
+
'@jest/diff-sequences@30.0.1': {}
+ '@jest/schemas@29.6.3':
+ dependencies:
+ '@sinclair/typebox': 0.27.12
+
+ '@jest/types@29.6.3':
+ dependencies:
+ '@jest/schemas': 29.6.3
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 25.9.5
+ '@types/yargs': 17.0.35
+ chalk: 4.1.2
+
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -7479,6 +11368,11 @@ snapshots:
'@jridgewell/resolve-uri@3.1.2': {}
+ '@jridgewell/source-map@0.3.11':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
'@jridgewell/sourcemap-codec@1.5.5': {}
'@jridgewell/trace-mapping@0.3.31':
@@ -7669,59 +11563,330 @@ snapshots:
'@parcel/watcher-linux-arm-glibc@2.6.0':
optional: true
- '@parcel/watcher-linux-arm-musl@2.6.0':
- optional: true
+ '@parcel/watcher-linux-arm-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.6.0':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.6.0':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.6.0':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.6.0':
+ optional: true
+
+ '@parcel/watcher@2.6.0':
+ dependencies:
+ detect-libc: 2.1.2
+ is-glob: 4.0.3
+ node-addon-api: 7.1.1
+ picomatch: 4.0.5
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.6.0
+ '@parcel/watcher-darwin-arm64': 2.6.0
+ '@parcel/watcher-darwin-x64': 2.6.0
+ '@parcel/watcher-freebsd-x64': 2.6.0
+ '@parcel/watcher-linux-arm-glibc': 2.6.0
+ '@parcel/watcher-linux-arm-musl': 2.6.0
+ '@parcel/watcher-linux-arm64-glibc': 2.6.0
+ '@parcel/watcher-linux-arm64-musl': 2.6.0
+ '@parcel/watcher-linux-x64-glibc': 2.6.0
+ '@parcel/watcher-linux-x64-musl': 2.6.0
+ '@parcel/watcher-win32-arm64': 2.6.0
+ '@parcel/watcher-win32-x64': 2.6.0
+ optional: true
+
+ '@poppinss/colors@4.1.6':
+ dependencies:
+ kleur: 4.1.5
+
+ '@poppinss/dumper@0.6.5':
+ dependencies:
+ '@poppinss/colors': 4.1.6
+ '@sindresorhus/is': 7.2.0
+ supports-color: 10.2.2
+
+ '@poppinss/exception@1.2.3': {}
+
+ '@react-native-community/cli-clean@20.1.0':
+ dependencies:
+ '@react-native-community/cli-tools': 20.1.0
+ execa: 5.1.1
+ fast-glob: 3.3.3
+ picocolors: 1.1.1
+
+ '@react-native-community/cli-config-android@20.1.0':
+ dependencies:
+ '@react-native-community/cli-tools': 20.1.0
+ fast-glob: 3.3.3
+ fast-xml-parser: 4.5.7
+ picocolors: 1.1.1
+
+ '@react-native-community/cli-config-apple@20.1.0':
+ dependencies:
+ '@react-native-community/cli-tools': 20.1.0
+ execa: 5.1.1
+ fast-glob: 3.3.3
+ picocolors: 1.1.1
+
+ '@react-native-community/cli-config@20.1.0(typescript@6.0.3)':
+ dependencies:
+ '@react-native-community/cli-tools': 20.1.0
+ cosmiconfig: 9.0.2(typescript@6.0.3)
+ deepmerge: 4.3.1
+ fast-glob: 3.3.3
+ joi: 17.13.4
+ picocolors: 1.1.1
+ transitivePeerDependencies:
+ - typescript
+
+ '@react-native-community/cli-doctor@20.1.0(typescript@6.0.3)':
+ dependencies:
+ '@react-native-community/cli-config': 20.1.0(typescript@6.0.3)
+ '@react-native-community/cli-platform-android': 20.1.0
+ '@react-native-community/cli-platform-apple': 20.1.0
+ '@react-native-community/cli-platform-ios': 20.1.0
+ '@react-native-community/cli-tools': 20.1.0
+ command-exists: 1.2.9
+ deepmerge: 4.3.1
+ envinfo: 7.21.0
+ execa: 5.1.1
+ node-stream-zip: 1.16.0
+ ora: 5.4.1
+ picocolors: 1.1.1
+ semver: 7.8.5
+ wcwidth: 1.0.1
+ yaml: 2.9.0
+ transitivePeerDependencies:
+ - typescript
+
+ '@react-native-community/cli-platform-android@20.1.0':
+ dependencies:
+ '@react-native-community/cli-config-android': 20.1.0
+ '@react-native-community/cli-tools': 20.1.0
+ execa: 5.1.1
+ logkitty: 0.7.1
+ picocolors: 1.1.1
+
+ '@react-native-community/cli-platform-apple@20.1.0':
+ dependencies:
+ '@react-native-community/cli-config-apple': 20.1.0
+ '@react-native-community/cli-tools': 20.1.0
+ execa: 5.1.1
+ fast-xml-parser: 4.5.7
+ picocolors: 1.1.1
+
+ '@react-native-community/cli-platform-ios@20.1.0':
+ dependencies:
+ '@react-native-community/cli-platform-apple': 20.1.0
+
+ '@react-native-community/cli-server-api@20.1.0(supports-color@10.2.2)':
+ dependencies:
+ '@react-native-community/cli-tools': 20.1.0
+ body-parser: 1.20.6(supports-color@10.2.2)
+ compression: 1.8.1(supports-color@10.2.2)
+ connect: 3.7.0(supports-color@10.2.2)
+ errorhandler: 1.5.2
+ nocache: 3.0.4
+ open: 6.4.0
+ pretty-format: 29.7.0
+ serve-static: 1.16.3(supports-color@10.2.2)
+ ws: 6.2.6
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ '@react-native-community/cli-tools@20.1.0':
+ dependencies:
+ '@vscode/sudo-prompt': 9.3.2
+ appdirsjs: 1.2.8
+ execa: 5.1.1
+ find-up: 5.0.0
+ launch-editor: 2.14.1
+ mime: 2.6.0
+ ora: 5.4.1
+ picocolors: 1.1.1
+ prompts: 2.4.2
+ semver: 7.8.5
+
+ '@react-native-community/cli-types@20.1.0':
+ dependencies:
+ joi: 17.13.4
+
+ '@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3)':
+ dependencies:
+ '@react-native-community/cli-clean': 20.1.0
+ '@react-native-community/cli-config': 20.1.0(typescript@6.0.3)
+ '@react-native-community/cli-doctor': 20.1.0(typescript@6.0.3)
+ '@react-native-community/cli-server-api': 20.1.0(supports-color@10.2.2)
+ '@react-native-community/cli-tools': 20.1.0
+ '@react-native-community/cli-types': 20.1.0
+ commander: 9.5.0
+ deepmerge: 4.3.1
+ execa: 5.1.1
+ find-up: 5.0.0
+ fs-extra: 8.1.0
+ graceful-fs: 4.2.11
+ picocolors: 1.1.1
+ prompts: 2.4.2
+ semver: 7.8.5
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@react-native/assets-registry@0.86.2': {}
+
+ '@react-native/babel-plugin-codegen@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@react-native/codegen': 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ '@react-native/babel-preset@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/plugin-proposal-export-default-from': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-syntax-export-default-from': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-async-generator-functions': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-flow-strip-types': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-react-display-name': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-runtime': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@react-native/babel-plugin-codegen': 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ babel-plugin-syntax-hermes-parser: 0.36.0
+ babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.7(supports-color@10.2.2))
+ react-refresh: 0.14.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@react-native/codegen@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))':
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/parser': 7.29.7
+ hermes-parser: 0.36.0
+ invariant: 2.2.4
+ nullthrows: 1.1.1
+ tinyglobby: 0.2.17
+ yargs: 17.7.2
- '@parcel/watcher-linux-arm64-glibc@2.6.0':
- optional: true
+ '@react-native/community-cli-plugin@0.86.2(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(supports-color@10.2.2)':
+ dependencies:
+ '@react-native/dev-middleware': 0.86.2(supports-color@10.2.2)
+ debug: 4.4.3(supports-color@10.2.2)
+ invariant: 2.2.4
+ metro: 0.84.4(supports-color@10.2.2)
+ metro-config: 0.84.4(supports-color@10.2.2)
+ metro-core: 0.84.4
+ semver: 7.8.5
+ optionalDependencies:
+ '@react-native-community/cli': 20.1.0(supports-color@10.2.2)(typescript@6.0.3)
+ '@react-native/metro-config': 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
- '@parcel/watcher-linux-arm64-musl@2.6.0':
- optional: true
+ '@react-native/debugger-frontend@0.86.2': {}
- '@parcel/watcher-linux-x64-glibc@2.6.0':
- optional: true
+ '@react-native/debugger-shell@0.86.2(supports-color@10.2.2)':
+ dependencies:
+ cross-spawn: 7.0.6
+ debug: 4.4.3(supports-color@10.2.2)
+ fb-dotslash: 0.5.8
+ transitivePeerDependencies:
+ - supports-color
- '@parcel/watcher-linux-x64-musl@2.6.0':
- optional: true
+ '@react-native/dev-middleware@0.86.2(supports-color@10.2.2)':
+ dependencies:
+ '@isaacs/ttlcache': 1.4.1
+ '@react-native/debugger-frontend': 0.86.2
+ '@react-native/debugger-shell': 0.86.2(supports-color@10.2.2)
+ chrome-launcher: 0.15.2(supports-color@10.2.2)
+ chromium-edge-launcher: 0.3.0(supports-color@10.2.2)
+ connect: 3.7.0(supports-color@10.2.2)
+ debug: 4.4.3(supports-color@10.2.2)
+ invariant: 2.2.4
+ nullthrows: 1.1.1
+ open: 7.4.2
+ serve-static: 1.16.3(supports-color@10.2.2)
+ ws: 7.5.13
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
- '@parcel/watcher-win32-arm64@2.6.0':
- optional: true
+ '@react-native/gradle-plugin@0.86.2': {}
- '@parcel/watcher-win32-x64@2.6.0':
- optional: true
+ '@react-native/js-polyfills@0.86.2': {}
- '@parcel/watcher@2.6.0':
+ '@react-native/metro-babel-transformer@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
dependencies:
- detect-libc: 2.1.2
- is-glob: 4.0.3
- node-addon-api: 7.1.1
- picomatch: 4.0.5
- optionalDependencies:
- '@parcel/watcher-android-arm64': 2.6.0
- '@parcel/watcher-darwin-arm64': 2.6.0
- '@parcel/watcher-darwin-x64': 2.6.0
- '@parcel/watcher-freebsd-x64': 2.6.0
- '@parcel/watcher-linux-arm-glibc': 2.6.0
- '@parcel/watcher-linux-arm-musl': 2.6.0
- '@parcel/watcher-linux-arm64-glibc': 2.6.0
- '@parcel/watcher-linux-arm64-musl': 2.6.0
- '@parcel/watcher-linux-x64-glibc': 2.6.0
- '@parcel/watcher-linux-x64-musl': 2.6.0
- '@parcel/watcher-win32-arm64': 2.6.0
- '@parcel/watcher-win32-x64': 2.6.0
- optional: true
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@react-native/babel-preset': 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ hermes-parser: 0.36.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
- '@poppinss/colors@4.1.6':
+ '@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)':
dependencies:
- kleur: 4.1.5
+ '@react-native/js-polyfills': 0.86.2
+ '@react-native/metro-babel-transformer': 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ metro-config: 0.84.4(supports-color@10.2.2)
+ metro-runtime: 0.84.4
+ transitivePeerDependencies:
+ - '@babel/core'
+ - bufferutil
+ - supports-color
+ - utf-8-validate
- '@poppinss/dumper@0.6.5':
- dependencies:
- '@poppinss/colors': 4.1.6
- '@sindresorhus/is': 7.2.0
- supports-color: 10.2.2
+ '@react-native/normalize-colors@0.86.2': {}
- '@poppinss/exception@1.2.3': {}
+ '@react-native/typescript-config@0.86.2': {}
+
+ '@react-native/virtualized-lists@0.86.2(@types/react@19.2.17)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)':
+ dependencies:
+ invariant: 2.2.4
+ nullthrows: 1.1.1
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ optionalDependencies:
+ '@types/react': 19.2.17
'@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.2.17)(react@19.2.3)(redux@5.0.1))(react@19.2.3)':
dependencies:
@@ -7881,6 +12046,16 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ '@sideway/address@4.1.5':
+ dependencies:
+ '@hapi/hoek': 9.3.0
+
+ '@sideway/formula@3.0.1': {}
+
+ '@sideway/pinpoint@2.0.0': {}
+
+ '@sinclair/typebox@0.27.12': {}
+
'@sindresorhus/is@7.2.0': {}
'@speed-highlight/core@1.2.17': {}
@@ -7906,23 +12081,23 @@ snapshots:
transitivePeerDependencies:
- typescript
- '@sveltejs/vite-plugin-svelte@7.2.0(svelte@5.56.8)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))':
+ '@sveltejs/vite-plugin-svelte@7.2.0(svelte@5.56.8)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))':
dependencies:
deepmerge: 4.3.1
magic-string: 0.30.21
obug: 2.1.4
svelte: 5.56.8
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
- vitefu: 1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
+ vitefu: 1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
- '@sveltejs/vite-plugin-svelte@7.2.0(svelte@5.56.8)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))':
+ '@sveltejs/vite-plugin-svelte@7.2.0(svelte@5.56.8)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))':
dependencies:
deepmerge: 4.3.1
magic-string: 0.30.21
obug: 2.1.4
svelte: 5.56.8
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
- vitefu: 1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
+ vitefu: 1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
'@tsrx/core@0.1.48':
dependencies:
@@ -8052,6 +12227,16 @@ snapshots:
'@types/geojson@7946.0.16': {}
+ '@types/istanbul-lib-coverage@2.0.6': {}
+
+ '@types/istanbul-lib-report@3.0.3':
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.6
+
+ '@types/istanbul-reports@3.0.4':
+ dependencies:
+ '@types/istanbul-lib-report': 3.0.3
+
'@types/jsdom@27.0.0':
dependencies:
'@types/node': 25.9.5
@@ -8087,10 +12272,20 @@ snapshots:
'@types/use-sync-external-store@0.0.6': {}
- '@vitejs/plugin-react@6.0.4(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))':
+ '@types/yargs-parser@21.0.3': {}
+
+ '@types/yargs@17.0.35':
+ dependencies:
+ '@types/yargs-parser': 21.0.3
+
+ '@ungap/structured-clone@1.3.3': {}
+
+ '@vitejs/plugin-react@6.0.4(babel-plugin-react-compiler@1.0.0)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))':
dependencies:
'@rolldown/pluginutils': 1.0.1
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
+ optionalDependencies:
+ babel-plugin-react-compiler: 1.0.0
'@vitest/expect@4.1.10':
dependencies:
@@ -8101,13 +12296,13 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.1.10(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.10(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
'@vitest/pretty-format@4.1.10':
dependencies:
@@ -8133,6 +12328,8 @@ snapshots:
convert-source-map: 2.0.0
tinyrainbow: 3.1.0
+ '@vscode/sudo-prompt@9.3.2': {}
+
'@vue/compiler-core@3.5.40':
dependencies:
'@babel/parser': 7.29.7
@@ -8193,14 +12390,36 @@ snapshots:
'@vue/shared@3.5.40': {}
+ '@xmldom/xmldom@0.8.13': {}
+
+ '@xmldom/xmldom@0.9.10': {}
+
'@yarnpkg/lockfile@1.1.0': {}
'@zkochan/js-yaml@0.0.7':
dependencies:
argparse: 2.0.1
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
+ accepts@1.3.8:
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
+ accepts@2.0.0:
+ dependencies:
+ mime-types: 3.0.2
+ negotiator: 1.0.0
+
acorn@8.17.0: {}
+ agent-base@7.1.4: {}
+
+ agent-cli-detector@0.1.4: {}
+
ajv@8.20.0:
dependencies:
fast-deep-equal: 3.1.3
@@ -8212,18 +12431,42 @@ snapshots:
dependencies:
'@vue/reactivity': 3.1.5
+ anser@1.4.10: {}
+
ansi-colors@4.1.3: {}
+ ansi-escapes@4.3.2:
+ dependencies:
+ type-fest: 0.21.3
+
+ ansi-fragments@0.2.1:
+ dependencies:
+ colorette: 1.4.0
+ slice-ansi: 2.1.0
+ strip-ansi: 5.2.0
+
+ ansi-regex@4.1.1: {}
+
ansi-regex@5.0.1: {}
ansi-regex@6.2.2: {}
+ ansi-styles@3.2.1:
+ dependencies:
+ color-convert: 1.9.3
+
ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1
+ ansi-styles@5.2.0: {}
+
ansi-styles@6.2.3: {}
+ appdirsjs@1.2.8: {}
+
+ arg@5.0.2: {}
+
argparse@1.0.10:
dependencies:
sprintf-js: 1.0.3
@@ -8234,8 +12477,14 @@ snapshots:
array-union@2.1.0: {}
+ asap@2.0.6: {}
+
assertion-error@2.0.1: {}
+ astral-regex@1.0.0: {}
+
+ async-limiter@1.0.1: {}
+
asynckit@0.4.0: {}
axios@1.16.0(debug@4.4.3(supports-color@10.2.2)):
@@ -8257,6 +12506,98 @@ snapshots:
html-entities: 2.3.3
parse5: 7.3.0
+ babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2):
+ dependencies:
+ '@babel/compat-data': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2):
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ core-js-compat: 3.49.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2):
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-react-compiler@1.0.0:
+ dependencies:
+ '@babel/types': 7.29.7
+
+ babel-plugin-react-native-web@0.21.2: {}
+
+ babel-plugin-syntax-hermes-parser@0.36.0:
+ dependencies:
+ hermes-parser: 0.36.0
+
+ babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.29.7(supports-color@10.2.2)):
+ dependencies:
+ '@babel/plugin-syntax-flow': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ transitivePeerDependencies:
+ - '@babel/core'
+
+ babel-preset-expo@57.0.5(@babel/core@7.29.7(supports-color@10.2.2))(@babel/runtime@7.29.7)(expo@57.0.9)(react-refresh@0.14.2)(supports-color@10.2.2):
+ dependencies:
+ '@babel/generator': 7.29.7
+ '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2)
+ '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-proposal-export-default-from': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-syntax-export-default-from': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-async-generator-functions': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-flow-strip-types': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-react-display-name': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-react-pure-annotations': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/plugin-transform-runtime': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))
+ '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ '@react-native/babel-plugin-codegen': 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
+ babel-plugin-react-compiler: 1.0.0
+ babel-plugin-react-native-web: 0.21.2
+ babel-plugin-syntax-hermes-parser: 0.36.0
+ babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.7(supports-color@10.2.2))
+ debug: 4.4.3(supports-color@10.2.2)
+ react-refresh: 0.14.2
+ optionalDependencies:
+ '@babel/runtime': 7.29.7
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
babel-preset-solid@1.9.12(@babel/core@7.29.7(supports-color@10.2.2))(solid-js@1.9.14):
dependencies:
'@babel/core': 7.29.7(supports-color@10.2.2)
@@ -8278,6 +12619,8 @@ snapshots:
dependencies:
require-from-string: 2.0.2
+ big-integer@1.6.52: {}
+
binary-search-bounds@2.0.5: {}
bl@4.1.0:
@@ -8288,6 +12631,37 @@ snapshots:
blake3-wasm@2.1.5: {}
+ body-parser@1.20.6(supports-color@10.2.2):
+ dependencies:
+ bytes: 3.1.2
+ content-type: 1.0.5
+ debug: 2.6.9(supports-color@10.2.2)
+ depd: 2.0.0
+ destroy: 1.2.0
+ http-errors: 2.0.1
+ iconv-lite: 0.4.24
+ on-finished: 2.4.1
+ qs: 6.15.3
+ raw-body: 2.5.3
+ type-is: 1.6.18
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ boolbase@1.0.0: {}
+
+ bplist-creator@0.1.0:
+ dependencies:
+ stream-buffers: 2.2.0
+
+ bplist-parser@0.3.1:
+ dependencies:
+ big-integer: 1.6.52
+
+ bplist-parser@0.3.2:
+ dependencies:
+ big-integer: 1.6.52
+
brace-expansion@5.0.6:
dependencies:
balanced-match: 4.0.3
@@ -8308,20 +12682,45 @@ snapshots:
node-releases: 2.0.51
update-browserslist-db: 1.2.3(browserslist@4.28.7)
+ bser@2.1.1:
+ dependencies:
+ node-int64: 0.4.0
+
+ buffer-from@1.1.2: {}
+
buffer@5.7.1:
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
+ bytes@3.1.2: {}
+
call-bind-apply-helpers@1.0.2:
dependencies:
es-errors: 1.3.0
function-bind: 1.1.2
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsites@3.1.0: {}
+
+ camelcase@5.3.1: {}
+
+ camelcase@6.3.0: {}
+
caniuse-lite@1.0.30001806: {}
chai@6.2.2: {}
+ chalk@2.4.2:
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
@@ -8343,6 +12742,33 @@ snapshots:
dependencies:
readdirp: 5.0.0
+ chrome-launcher@0.15.2(supports-color@10.2.2):
+ dependencies:
+ '@types/node': 25.9.5
+ escape-string-regexp: 4.0.0
+ is-wsl: 2.2.0
+ lighthouse-logger: 1.4.2(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ chromium-edge-launcher@0.3.0(supports-color@10.2.2):
+ dependencies:
+ '@types/node': 25.9.5
+ escape-string-regexp: 4.0.0
+ is-wsl: 2.2.0
+ lighthouse-logger: 1.4.2(supports-color@10.2.2)
+ mkdirp: 1.0.4
+ transitivePeerDependencies:
+ - supports-color
+
+ ci-info@2.0.0: {}
+
+ ci-info@3.9.0: {}
+
+ cli-cursor@2.1.0:
+ dependencies:
+ restore-cursor: 2.0.0
+
cli-cursor@3.1.0:
dependencies:
restore-cursor: 3.1.0
@@ -8355,6 +12781,12 @@ snapshots:
cli-spinners@3.4.0: {}
+ cliui@6.0.0:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
+
cliui@8.0.1:
dependencies:
string-width: 4.2.3
@@ -8371,24 +12803,65 @@ snapshots:
clsx@2.1.1: {}
+ color-convert@1.9.3:
+ dependencies:
+ color-name: 1.1.3
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
+ color-name@1.1.3: {}
+
color-name@1.1.4: {}
+ colorette@1.4.0: {}
+
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
+ command-exists@1.2.9: {}
+
+ commander@12.1.0: {}
+
commander@14.0.3: {}
commander@2.20.3: {}
commander@7.2.0: {}
+ commander@9.5.0: {}
+
common-path-prefix@3.0.0: {}
+ compressible@2.0.18:
+ dependencies:
+ mime-db: 1.54.0
+
+ compression@1.8.1(supports-color@10.2.2):
+ dependencies:
+ bytes: 3.1.2
+ compressible: 2.0.18
+ debug: 2.6.9(supports-color@10.2.2)
+ negotiator: 0.6.4
+ on-headers: 1.1.0
+ safe-buffer: 5.2.1
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ connect@3.7.0(supports-color@10.2.2):
+ dependencies:
+ debug: 2.6.9(supports-color@10.2.2)
+ finalhandler: 1.1.2(supports-color@10.2.2)
+ parseurl: 1.3.3
+ utils-merge: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ content-type@1.0.5: {}
+
convert-source-map@1.9.0: {}
convert-source-map@2.0.0: {}
@@ -8399,17 +12872,45 @@ snapshots:
dependencies:
is-what: 4.1.16
+ core-js-compat@3.49.0:
+ dependencies:
+ browserslist: 4.28.7
+
+ cosmiconfig@9.0.2(typescript@6.0.3):
+ dependencies:
+ env-paths: 2.2.1
+ import-fresh: 3.3.1
+ js-yaml: 4.3.0
+ parse-json: 5.2.0
+ optionalDependencies:
+ typescript: 6.0.3
+
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
+ css-select@5.2.2:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.2.2
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ nth-check: 2.1.1
+
+ css-tree@1.1.3:
+ dependencies:
+ mdn-data: 2.0.14
+ source-map: 0.6.1
+
css-tree@3.2.1:
dependencies:
mdn-data: 2.27.1
source-map-js: 1.2.1
+ css-what@6.2.2: {}
+
csstype@3.2.3: {}
d3-array@2.12.1:
@@ -8590,19 +13091,19 @@ snapshots:
dataloader@1.4.0: {}
+ dayjs@1.11.21: {}
+
debug@2.6.9(supports-color@10.2.2):
dependencies:
ms: 2.0.0
optionalDependencies:
supports-color: 10.2.2
- optional: true
debug@3.2.7(supports-color@10.2.2):
dependencies:
ms: 2.1.3
optionalDependencies:
supports-color: 10.2.2
- optional: true
debug@4.4.3(supports-color@10.2.2):
dependencies:
@@ -8610,6 +13111,8 @@ snapshots:
optionalDependencies:
supports-color: 10.2.2
+ decamelize@1.2.0: {}
+
decimal.js-light@2.5.1: {}
decimal.js@10.6.0: {}
@@ -8630,17 +13133,41 @@ snapshots:
delayed-stream@1.0.0: {}
+ depd@2.0.0: {}
+
dependency-graph@1.0.0: {}
+ destroy@1.2.0: {}
+
detect-indent@6.1.0: {}
detect-libc@2.1.2: {}
- devalue@5.8.2: {}
+ devalue@5.8.2: {}
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ dnssd-advertise@1.1.6: {}
+
+ dom-serializer@2.0.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+
+ domelementtype@2.3.0: {}
+
+ domhandler@5.0.3:
+ dependencies:
+ domelementtype: 2.3.0
- dir-glob@3.0.1:
+ domutils@3.2.2:
dependencies:
- path-type: 4.0.0
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
dotenv-expand@12.0.3:
dependencies:
@@ -8661,6 +13188,8 @@ snapshots:
tslib: 2.3.0
zrender: 6.1.0
+ ee-first@1.1.1: {}
+
ejs@5.0.1: {}
electron-to-chromium@1.5.397: {}
@@ -8669,6 +13198,10 @@ snapshots:
emoji-regex@8.0.0: {}
+ encodeurl@1.0.2: {}
+
+ encodeurl@2.0.0: {}
+
end-of-stream@1.4.5:
dependencies:
once: 1.4.0
@@ -8682,19 +13215,38 @@ snapshots:
ansi-colors: 4.1.3
strip-ansi: 6.0.1
+ entities@4.5.0: {}
+
entities@6.0.1: {}
entities@7.0.1: {}
entities@8.0.0: {}
+ env-paths@2.2.1: {}
+
+ envinfo@7.21.0: {}
+
errno@0.1.8:
dependencies:
prr: 1.0.1
optional: true
+ error-ex@1.3.4:
+ dependencies:
+ is-arrayish: 0.2.1
+
error-stack-parser-es@1.0.5: {}
+ error-stack-parser@2.1.4:
+ dependencies:
+ stackframe: 1.3.4
+
+ errorhandler@1.5.2:
+ dependencies:
+ accepts: 1.3.8
+ escape-html: 1.0.3
+
es-define-property@1.0.1: {}
es-errors@1.3.0: {}
@@ -8774,8 +13326,12 @@ snapshots:
escalade@3.2.0: {}
+ escape-html@1.0.3: {}
+
escape-string-regexp@1.0.5: {}
+ escape-string-regexp@4.0.0: {}
+
esm-env@1.2.2: {}
esprima@4.0.1: {}
@@ -8790,10 +13346,128 @@ snapshots:
dependencies:
'@types/estree': 1.0.9
+ etag@1.8.1: {}
+
+ event-target-shim@5.0.1: {}
+
eventemitter3@5.0.4: {}
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
expect-type@1.4.0: {}
+ expo-asset@57.0.8(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3):
+ dependencies:
+ '@expo/image-utils': 0.11.4(supports-color@10.2.2)(typescript@6.0.3)
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ expo-constants: 57.0.8(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(supports-color@10.2.2)
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ expo-constants@57.0.8(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(supports-color@10.2.2):
+ dependencies:
+ '@expo/env': 2.4.2(supports-color@10.2.2)
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ expo-file-system@57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)):
+ dependencies:
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+
+ expo-font@57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3):
+ dependencies:
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ fontfaceobserver: 2.3.0
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+
+ expo-keep-awake@57.0.1(expo@57.0.9)(react@19.2.3):
+ dependencies:
+ expo: 57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ react: 19.2.3
+
+ expo-modules-autolinking@57.0.9(supports-color@10.2.2)(typescript@6.0.3):
+ dependencies:
+ '@expo/require-utils': 57.0.4(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/spawn-async': 1.8.0
+ chalk: 4.1.2
+ commander: 7.2.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ expo-modules-core@57.0.8(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3):
+ dependencies:
+ '@expo/expo-modules-macros-plugin': 0.6.1
+ expo-modules-jsi: 57.0.4(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))
+ invariant: 2.2.4
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+
+ expo-modules-jsi@57.0.4(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)):
+ dependencies:
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+
+ expo-server@57.0.1: {}
+
+ expo@57.0.9(@babel/core@7.29.7(supports-color@10.2.2))(@expo/dom-webview@57.0.1)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@expo/cli': 57.0.11(db0d7a7e1f9ec962ef302cb8147809a2)
+ '@expo/config': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/config-plugins': 57.0.6(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/devtools': 57.0.1(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ '@expo/fingerprint': 0.20.6(supports-color@10.2.2)
+ '@expo/local-build-cache-provider': 57.0.5(supports-color@10.2.2)(typescript@6.0.3)
+ '@expo/log-box': 57.0.2(@expo/dom-webview@57.0.1)(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ '@expo/metro': 56.0.0(supports-color@10.2.2)
+ '@expo/metro-config': 57.0.7(expo@57.0.9)(supports-color@10.2.2)(typescript@6.0.3)
+ '@ungap/structured-clone': 1.3.3
+ babel-preset-expo: 57.0.5(@babel/core@7.29.7(supports-color@10.2.2))(@babel/runtime@7.29.7)(expo@57.0.9)(react-refresh@0.14.2)(supports-color@10.2.2)
+ expo-asset: 57.0.8(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)(supports-color@10.2.2)(typescript@6.0.3)
+ expo-constants: 57.0.8(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(supports-color@10.2.2)
+ expo-file-system: 57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))
+ expo-font: 57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ expo-keep-awake: 57.0.1(expo@57.0.9)(react@19.2.3)
+ expo-modules-autolinking: 57.0.9(supports-color@10.2.2)(typescript@6.0.3)
+ expo-modules-core: 57.0.8(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ pretty-format: 29.7.0
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ react-refresh: 0.14.2
+ whatwg-url-minimum: 0.1.2
+ optionalDependencies:
+ '@expo/dom-webview': 57.0.1(expo@57.0.9)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ react-dom: 19.2.3(react@19.2.3)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - bufferutil
+ - expo-router
+ - expo-widgets
+ - react-native-worklets
+ - react-server-dom-webpack
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ exponential-backoff@3.1.3: {}
+
extendable-error@0.1.7: {}
fast-deep-equal@3.1.3: {}
@@ -8808,14 +13482,26 @@ snapshots:
fast-uri@3.1.4: {}
+ fast-xml-parser@4.5.7:
+ dependencies:
+ strnum: 1.1.2
+
fastq@1.20.1:
dependencies:
reusify: 1.1.0
+ fb-dotslash@0.5.8: {}
+
+ fb-watchman@2.0.2:
+ dependencies:
+ bser: 2.1.1
+
fdir@6.5.0(picomatch@4.0.5):
optionalDependencies:
picomatch: 4.0.5
+ fetch-nodeshim@0.4.10: {}
+
figures@3.2.0:
dependencies:
escape-string-regexp: 1.0.5
@@ -8824,6 +13510,18 @@ snapshots:
dependencies:
to-regex-range: 5.0.1
+ finalhandler@1.1.2(supports-color@10.2.2):
+ dependencies:
+ debug: 2.6.9(supports-color@10.2.2)
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ on-finished: 2.3.0
+ parseurl: 1.3.3
+ statuses: 1.5.0
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
find-cache-directory@6.0.0:
dependencies:
common-path-prefix: 3.0.0
@@ -8836,12 +13534,21 @@ snapshots:
locate-path: 5.0.0
path-exists: 4.0.0
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
flat@5.0.2: {}
+ flow-enums-runtime@0.0.6: {}
+
follow-redirects@1.16.0(debug@4.4.3(supports-color@10.2.2)):
optionalDependencies:
debug: 4.4.3(supports-color@10.2.2)
+ fontfaceobserver@2.3.0: {}
+
form-data@4.0.5:
dependencies:
asynckit: 0.4.0
@@ -8858,6 +13565,8 @@ snapshots:
hasown: 2.0.4
mime-types: 2.1.35
+ fresh@0.5.2: {}
+
fs-constants@1.0.0: {}
fs-extra@7.0.1:
@@ -8904,10 +13613,20 @@ snapshots:
dunder-proto: 1.0.1
es-object-atoms: 1.1.1
+ get-stream@6.0.1: {}
+
+ getenv@2.0.0: {}
+
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
+ glob@13.0.6:
+ dependencies:
+ minimatch: 10.2.5
+ minipass: 7.1.3
+ path-scurry: 2.0.2
+
globby@11.1.0:
dependencies:
array-union: 2.1.0
@@ -8921,6 +13640,8 @@ snapshots:
graceful-fs@4.2.11: {}
+ has-flag@3.0.0: {}
+
has-flag@4.0.0: {}
has-symbols@1.1.0: {}
@@ -8937,6 +13658,24 @@ snapshots:
dependencies:
function-bind: 1.1.2
+ hermes-compiler@250829098.0.16: {}
+
+ hermes-estree@0.35.0: {}
+
+ hermes-estree@0.36.0: {}
+
+ hermes-parser@0.35.0:
+ dependencies:
+ hermes-estree: 0.35.0
+
+ hermes-parser@0.36.0:
+ dependencies:
+ hermes-estree: 0.36.0
+
+ hosted-git-info@7.0.2:
+ dependencies:
+ lru-cache: 10.4.3
+
html-encoding-sniffer@6.0.0(@noble/hashes@2.2.0):
dependencies:
'@exodus/bytes': 1.15.1(@noble/hashes@2.2.0)
@@ -8945,12 +13684,28 @@ snapshots:
html-entities@2.3.3: {}
+ http-errors@2.0.1:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.2
+ toidentifier: 1.0.1
+
+ https-proxy-agent@7.0.6(supports-color@10.2.2):
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.3(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
human-id@4.2.0: {}
+ human-signals@2.1.0: {}
+
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
- optional: true
iconv-lite@0.6.3:
dependencies:
@@ -8966,10 +13721,19 @@ snapshots:
ignore@7.0.5: {}
+ image-size@1.2.1:
+ dependencies:
+ queue: 6.0.2
+
immer@11.1.15: {}
immutable@5.1.9: {}
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
inherits@2.0.4: {}
injection-js@2.6.1:
@@ -8984,10 +13748,22 @@ snapshots:
dependencies:
binary-search-bounds: 2.0.5
+ invariant@2.2.4:
+ dependencies:
+ loose-envify: 1.4.0
+
+ is-arrayish@0.2.1: {}
+
+ is-core-module@2.16.2:
+ dependencies:
+ hasown: 2.0.4
+
is-docker@2.2.1: {}
is-extglob@2.1.1: {}
+ is-fullwidth-code-point@2.0.0: {}
+
is-fullwidth-code-point@3.0.0: {}
is-glob@4.0.3:
@@ -9006,6 +13782,8 @@ snapshots:
dependencies:
'@types/estree': 1.0.9
+ is-stream@2.0.1: {}
+
is-subdir@1.2.0:
dependencies:
better-path-resolve: 1.0.0
@@ -9018,6 +13796,8 @@ snapshots:
is-windows@1.0.2: {}
+ is-wsl@1.1.0: {}
+
is-wsl@2.2.0:
dependencies:
is-docker: 2.2.1
@@ -9026,6 +13806,43 @@ snapshots:
isoformat@0.2.1: {}
+ jest-get-type@29.6.3: {}
+
+ jest-util@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 25.9.5
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ graceful-fs: 4.2.11
+ picomatch: 2.3.2
+
+ jest-validate@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ camelcase: 6.3.0
+ chalk: 4.1.2
+ jest-get-type: 29.6.3
+ leven: 3.1.0
+ pretty-format: 29.7.0
+
+ jest-worker@29.7.0:
+ dependencies:
+ '@types/node': 25.9.5
+ jest-util: 29.7.0
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ jimp-compact@0.16.1: {}
+
+ joi@17.13.4:
+ dependencies:
+ '@hapi/hoek': 9.3.0
+ '@hapi/topo': 5.1.0
+ '@sideway/address': 4.1.5
+ '@sideway/formula': 3.0.1
+ '@sideway/pinpoint': 2.0.0
+
js-tokens@4.0.0: {}
js-yaml@3.15.0:
@@ -9037,6 +13854,8 @@ snapshots:
dependencies:
argparse: 2.0.1
+ jsc-safe-url@0.2.4: {}
+
jsdom@29.1.1(@noble/hashes@2.2.0):
dependencies:
'@asamuzakjp/css-color': 5.1.11
@@ -9065,6 +13884,8 @@ snapshots:
jsesc@3.1.0: {}
+ json-parse-even-better-errors@2.3.1: {}
+
json-schema-traverse@1.0.0: {}
json5@2.2.3: {}
@@ -9077,8 +13898,17 @@ snapshots:
optionalDependencies:
graceful-fs: 4.2.11
+ kleur@3.0.3: {}
+
kleur@4.1.5: {}
+ lan-network@0.2.1: {}
+
+ launch-editor@2.14.1:
+ dependencies:
+ picocolors: 1.1.1
+ shell-quote: 1.10.0
+
less@4.8.1(supports-color@10.2.2):
dependencies:
copy-anything: 3.0.5
@@ -9094,6 +13924,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ leven@3.1.0: {}
+
+ lighthouse-logger@1.4.2(supports-color@10.2.2):
+ dependencies:
+ debug: 2.6.9(supports-color@10.2.2)
+ marky: 1.3.0
+ transitivePeerDependencies:
+ - supports-color
+
lightningcss-android-arm64@1.33.0:
optional: true
@@ -9143,6 +13982,8 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.33.0
lightningcss-win32-x64-msvc: 1.33.0
+ lines-and-columns@1.2.4: {}
+
lines-and-columns@2.0.3: {}
lit-element@4.2.2:
@@ -9167,11 +14008,23 @@ snapshots:
dependencies:
p-locate: 4.1.0
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.debounce@4.0.8: {}
+
lodash.merge@4.6.2:
optional: true
lodash.startcase@4.4.0: {}
+ lodash.throttle@4.1.1: {}
+
+ log-symbols@2.2.0:
+ dependencies:
+ chalk: 2.4.2
+
log-symbols@4.1.0:
dependencies:
chalk: 4.1.2
@@ -9182,6 +14035,18 @@ snapshots:
is-unicode-supported: 2.1.0
yoctocolors: 2.2.0
+ logkitty@0.7.1:
+ dependencies:
+ ansi-fragments: 0.2.1
+ dayjs: 1.11.21
+ yargs: 15.4.1
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ lru-cache@10.4.3: {}
+
lru-cache@11.5.2: {}
lru-cache@5.1.1:
@@ -9195,16 +14060,204 @@ snapshots:
make-dir@5.1.0:
optional: true
+ makeerror@1.0.12:
+ dependencies:
+ tmpl: 1.0.5
+
+ marky@1.3.0: {}
+
math-intrinsics@1.1.0: {}
+ mdn-data@2.0.14: {}
+
mdn-data@2.27.1: {}
+ media-typer@0.3.0: {}
+
+ memoize-one@5.2.1: {}
+
merge-anything@5.1.7:
dependencies:
is-what: 4.1.16
+ merge-stream@2.0.0: {}
+
merge2@1.4.1: {}
+ metro-babel-transformer@0.84.4(supports-color@10.2.2):
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ flow-enums-runtime: 0.0.6
+ hermes-parser: 0.35.0
+ metro-cache-key: 0.84.4
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-cache-key@0.84.4:
+ dependencies:
+ flow-enums-runtime: 0.0.6
+
+ metro-cache@0.84.4(supports-color@10.2.2):
+ dependencies:
+ exponential-backoff: 3.1.3
+ flow-enums-runtime: 0.0.6
+ https-proxy-agent: 7.0.6(supports-color@10.2.2)
+ metro-core: 0.84.4
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-config@0.84.4(supports-color@10.2.2):
+ dependencies:
+ connect: 3.7.0(supports-color@10.2.2)
+ flow-enums-runtime: 0.0.6
+ jest-validate: 29.7.0
+ metro: 0.84.4(supports-color@10.2.2)
+ metro-cache: 0.84.4(supports-color@10.2.2)
+ metro-core: 0.84.4
+ metro-runtime: 0.84.4
+ yaml: 2.9.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ metro-core@0.84.4:
+ dependencies:
+ flow-enums-runtime: 0.0.6
+ lodash.throttle: 4.1.1
+ metro-resolver: 0.84.4
+
+ metro-file-map@0.84.4(supports-color@10.2.2):
+ dependencies:
+ debug: 4.4.3(supports-color@10.2.2)
+ fb-watchman: 2.0.2
+ flow-enums-runtime: 0.0.6
+ graceful-fs: 4.2.11
+ invariant: 2.2.4
+ jest-worker: 29.7.0
+ micromatch: 4.0.8
+ nullthrows: 1.1.1
+ walker: 1.0.8
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-minify-terser@0.84.4:
+ dependencies:
+ flow-enums-runtime: 0.0.6
+ terser: 5.49.0
+
+ metro-resolver@0.84.4:
+ dependencies:
+ flow-enums-runtime: 0.0.6
+
+ metro-runtime@0.84.4:
+ dependencies:
+ '@babel/runtime': 7.29.7
+ flow-enums-runtime: 0.0.6
+
+ metro-source-map@0.84.4(supports-color@10.2.2):
+ dependencies:
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@babel/types': 7.29.7
+ flow-enums-runtime: 0.0.6
+ invariant: 2.2.4
+ metro-symbolicate: 0.84.4(supports-color@10.2.2)
+ nullthrows: 1.1.1
+ ob1: 0.84.4
+ source-map: 0.5.7
+ vlq: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-symbolicate@0.84.4(supports-color@10.2.2):
+ dependencies:
+ flow-enums-runtime: 0.0.6
+ invariant: 2.2.4
+ metro-source-map: 0.84.4(supports-color@10.2.2)
+ nullthrows: 1.1.1
+ source-map: 0.5.7
+ vlq: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-transform-plugins@0.84.4(supports-color@10.2.2):
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/generator': 7.29.7
+ '@babel/template': 7.29.7
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ flow-enums-runtime: 0.0.6
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-transform-worker@0.84.4(supports-color@10.2.2):
+ dependencies:
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/generator': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+ flow-enums-runtime: 0.0.6
+ metro: 0.84.4(supports-color@10.2.2)
+ metro-babel-transformer: 0.84.4(supports-color@10.2.2)
+ metro-cache: 0.84.4(supports-color@10.2.2)
+ metro-cache-key: 0.84.4
+ metro-minify-terser: 0.84.4
+ metro-source-map: 0.84.4(supports-color@10.2.2)
+ metro-transform-plugins: 0.84.4(supports-color@10.2.2)
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ metro@0.84.4(supports-color@10.2.2):
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/core': 7.29.7(supports-color@10.2.2)
+ '@babel/generator': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/template': 7.29.7
+ '@babel/traverse': 7.29.7(supports-color@10.2.2)
+ '@babel/types': 7.29.7
+ accepts: 2.0.0
+ ci-info: 2.0.0
+ connect: 3.7.0(supports-color@10.2.2)
+ debug: 4.4.3(supports-color@10.2.2)
+ error-stack-parser: 2.1.4
+ flow-enums-runtime: 0.0.6
+ graceful-fs: 4.2.11
+ hermes-parser: 0.35.0
+ image-size: 1.2.1
+ invariant: 2.2.4
+ jest-worker: 29.7.0
+ jsc-safe-url: 0.2.4
+ lodash.throttle: 4.1.1
+ metro-babel-transformer: 0.84.4(supports-color@10.2.2)
+ metro-cache: 0.84.4(supports-color@10.2.2)
+ metro-cache-key: 0.84.4
+ metro-config: 0.84.4(supports-color@10.2.2)
+ metro-core: 0.84.4
+ metro-file-map: 0.84.4(supports-color@10.2.2)
+ metro-resolver: 0.84.4
+ metro-runtime: 0.84.4
+ metro-source-map: 0.84.4(supports-color@10.2.2)
+ metro-symbolicate: 0.84.4(supports-color@10.2.2)
+ metro-transform-plugins: 0.84.4(supports-color@10.2.2)
+ metro-transform-worker: 0.84.4(supports-color@10.2.2)
+ mime-types: 3.0.2
+ nullthrows: 1.1.1
+ serialize-error: 2.1.0
+ source-map: 0.5.7
+ throat: 5.0.0
+ ws: 7.5.13
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
micromatch@4.0.8:
dependencies:
braces: 3.0.3
@@ -9212,12 +14265,21 @@ snapshots:
mime-db@1.52.0: {}
+ mime-db@1.54.0: {}
+
mime-types@2.1.35:
dependencies:
mime-db: 1.52.0
- mime@1.6.0:
- optional: true
+ mime-types@3.0.2:
+ dependencies:
+ mime-db: 1.54.0
+
+ mime@1.6.0: {}
+
+ mime@2.6.0: {}
+
+ mimic-fn@1.2.0: {}
mimic-fn@2.1.0: {}
@@ -9241,13 +14303,18 @@ snapshots:
minimist@1.2.8: {}
+ minipass@7.1.3: {}
+
+ mkdirp@1.0.4: {}
+
mri@1.2.0: {}
- ms@2.0.0:
- optional: true
+ ms@2.0.0: {}
ms@2.1.3: {}
+ multitars@1.0.0: {}
+
nanoid@3.3.16: {}
needle@2.9.1(supports-color@10.2.2):
@@ -9265,6 +14332,12 @@ snapshots:
sax: 1.6.1
optional: true
+ negotiator@0.6.3: {}
+
+ negotiator@0.6.4: {}
+
+ negotiator@1.0.0: {}
+
ng-packagr@22.0.2(@angular/compiler-cli@22.0.8(@angular/compiler@22.0.8)(supports-color@10.2.2)(typescript@6.0.3))(supports-color@10.2.2)(tslib@2.8.1)(typescript@6.0.3):
dependencies:
'@ampproject/remapping': 2.3.0
@@ -9295,6 +14368,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ nocache@3.0.4: {}
+
node-addon-api@7.1.1:
optional: true
@@ -9302,12 +14377,31 @@ snapshots:
dependencies:
whatwg-url: 5.0.0
+ node-forge@1.4.0: {}
+
+ node-int64@0.4.0: {}
+
node-releases@2.0.51: {}
+ node-stream-zip@1.16.0: {}
+
+ npm-package-arg@11.0.3:
+ dependencies:
+ hosted-git-info: 7.0.2
+ proc-log: 4.2.0
+ semver: 7.8.5
+ validate-npm-package-name: 5.0.1
+
npm-run-path@4.0.1:
dependencies:
path-key: 3.1.1
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ nullthrows@1.1.1: {}
+
nx@22.7.5(debug@4.4.3(supports-color@10.2.2)):
dependencies:
'@emnapi/core': 1.4.5
@@ -9434,9 +14528,15 @@ snapshots:
transitivePeerDependencies:
- debug
+ ob1@0.84.4:
+ dependencies:
+ flow-enums-runtime: 0.0.6
+
+ object-inspect@1.13.4: {}
+
obug@2.1.4: {}
- octane@0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)):
+ octane@0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)):
dependencies:
'@tsrx/core': 0.1.48
'@types/react': 19.2.17
@@ -9445,11 +14545,11 @@ snapshots:
optionalDependencies:
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
transitivePeerDependencies:
- '@typescript-eslint/types'
- octane@0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)):
+ octane@0.1.13(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)):
dependencies:
'@tsrx/core': 0.1.48
'@types/react': 19.2.17
@@ -9458,14 +14558,28 @@ snapshots:
optionalDependencies:
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
transitivePeerDependencies:
- '@typescript-eslint/types'
+ on-finished@2.3.0:
+ dependencies:
+ ee-first: 1.1.1
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
+ on-headers@1.1.0: {}
+
once@1.4.0:
dependencies:
wrappy: 1.0.2
+ onetime@2.0.1:
+ dependencies:
+ mimic-fn: 1.2.0
+
onetime@5.1.2:
dependencies:
mimic-fn: 2.1.0
@@ -9474,12 +14588,30 @@ snapshots:
dependencies:
mimic-function: 5.0.1
+ open@6.4.0:
+ dependencies:
+ is-wsl: 1.1.0
+
+ open@7.4.2:
+ dependencies:
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+
open@8.4.2:
dependencies:
define-lazy-prop: 2.0.0
is-docker: 2.2.1
is-wsl: 2.2.0
+ ora@3.4.0:
+ dependencies:
+ chalk: 2.4.2
+ cli-cursor: 2.1.0
+ cli-spinners: 2.6.1
+ log-symbols: 2.2.0
+ strip-ansi: 5.2.0
+ wcwidth: 1.0.1
+
ora@5.3.0:
dependencies:
bl: 4.1.0
@@ -9491,6 +14623,18 @@ snapshots:
strip-ansi: 6.0.1
wcwidth: 1.0.1
+ ora@5.4.1:
+ dependencies:
+ bl: 4.1.0
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-spinners: 2.6.1
+ is-interactive: 1.0.0
+ is-unicode-supported: 0.1.0
+ log-symbols: 4.1.0
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+
ora@9.4.1:
dependencies:
chalk: 5.6.2
@@ -9512,10 +14656,18 @@ snapshots:
dependencies:
p-try: 2.2.0
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
p-locate@4.1.0:
dependencies:
p-limit: 2.3.0
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
p-map@2.1.0: {}
p-try@2.2.0: {}
@@ -9524,8 +14676,23 @@ snapshots:
dependencies:
quansync: 0.2.11
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ error-ex: 1.3.4
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
parse-node-version@1.0.1: {}
+ parse-png@2.1.0:
+ dependencies:
+ pngjs: 3.4.0
+
parse5@7.3.0:
dependencies:
entities: 6.0.1
@@ -9534,10 +14701,19 @@ snapshots:
dependencies:
entities: 8.0.0
+ parseurl@1.3.3: {}
+
path-exists@4.0.0: {}
path-key@3.1.1: {}
+ path-parse@1.0.7: {}
+
+ path-scurry@2.0.2:
+ dependencies:
+ lru-cache: 11.5.2
+ minipass: 7.1.3
+
path-to-regexp@6.3.0: {}
path-type@4.0.0: {}
@@ -9568,6 +14744,14 @@ snapshots:
optionalDependencies:
fsevents: 2.3.2
+ plist@3.1.1:
+ dependencies:
+ '@xmldom/xmldom': 0.9.10
+ base64-js: 1.5.1
+ xmlbuilder: 15.1.1
+
+ pngjs@3.4.0: {}
+
postcss@8.5.23:
dependencies:
nanoid: 3.3.16
@@ -9586,6 +14770,12 @@ snapshots:
prettier@3.9.6: {}
+ pretty-format@29.7.0:
+ dependencies:
+ '@jest/schemas': 29.6.3
+ ansi-styles: 5.2.0
+ react-is: 18.3.1
+
probe-image-size@7.3.0(supports-color@10.2.2):
dependencies:
lodash.merge: 4.6.2
@@ -9595,6 +14785,19 @@ snapshots:
- supports-color
optional: true
+ proc-log@4.2.0: {}
+
+ progress@2.0.3: {}
+
+ promise@8.3.0:
+ dependencies:
+ asap: 2.0.6
+
+ prompts@2.4.2:
+ dependencies:
+ kleur: 3.0.3
+ sisteransi: 1.0.5
+
proxy-from-env@2.1.0: {}
prr@1.0.1:
@@ -9602,17 +14805,105 @@ snapshots:
punycode@2.3.1: {}
+ qs@6.15.3:
+ dependencies:
+ es-define-property: 1.0.1
+ side-channel: 1.1.1
+
quansync@0.2.11: {}
queue-microtask@1.2.3: {}
+ queue@6.0.2:
+ dependencies:
+ inherits: 2.0.4
+
+ range-parser@1.2.1: {}
+
+ raw-body@2.5.3:
+ dependencies:
+ bytes: 3.1.2
+ http-errors: 2.0.1
+ iconv-lite: 0.4.24
+ unpipe: 1.0.0
+
+ react-devtools-core@6.1.5:
+ dependencies:
+ shell-quote: 1.10.0
+ ws: 7.5.13
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
react-dom@19.2.3(react@19.2.3):
dependencies:
react: 19.2.3
scheduler: 0.27.0
+ react-is@18.3.1: {}
+
react-is@19.2.8: {}
+ react-native-svg@15.15.4(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3):
+ dependencies:
+ css-select: 5.2.2
+ css-tree: 1.1.3
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+ warn-once: 0.1.1
+
+ react-native-svg@15.15.5(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3):
+ dependencies:
+ css-select: 5.2.2
+ css-tree: 1.1.3
+ react: 19.2.3
+ react-native: 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2)
+
+ react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2):
+ dependencies:
+ '@react-native/assets-registry': 0.86.2
+ '@react-native/codegen': 0.86.2(@babel/core@7.29.7(supports-color@10.2.2))
+ '@react-native/community-cli-plugin': 0.86.2(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(supports-color@10.2.2)
+ '@react-native/gradle-plugin': 0.86.2
+ '@react-native/js-polyfills': 0.86.2
+ '@react-native/normalize-colors': 0.86.2
+ '@react-native/virtualized-lists': 0.86.2(@types/react@19.2.17)(react-native@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(@react-native-community/cli@20.1.0(supports-color@10.2.2)(typescript@6.0.3))(@react-native/metro-config@0.86.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2))(@types/react@19.2.17)(react@19.2.3)(supports-color@10.2.2))(react@19.2.3)
+ abort-controller: 3.0.0
+ anser: 1.4.10
+ ansi-regex: 5.0.1
+ babel-plugin-syntax-hermes-parser: 0.36.0
+ base64-js: 1.5.1
+ commander: 12.1.0
+ flow-enums-runtime: 0.0.6
+ hermes-compiler: 250829098.0.16
+ invariant: 2.2.4
+ memoize-one: 5.2.1
+ metro-runtime: 0.84.4
+ metro-source-map: 0.84.4(supports-color@10.2.2)
+ nullthrows: 1.1.1
+ pretty-format: 29.7.0
+ promise: 8.3.0
+ react: 19.2.3
+ react-devtools-core: 6.1.5
+ react-refresh: 0.14.2
+ regenerator-runtime: 0.13.11
+ scheduler: 0.27.0
+ semver: 7.8.5
+ stacktrace-parser: 0.1.11
+ tinyglobby: 0.2.17
+ whatwg-fetch: 3.6.20
+ ws: 7.5.13
+ yargs: 17.7.2
+ optionalDependencies:
+ '@types/react': 19.2.17
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@react-native-community/cli'
+ - '@react-native/metro-config'
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
react-redux@9.3.0(@types/react@19.2.17)(react@19.2.3)(redux@5.0.1):
dependencies:
'@types/use-sync-external-store': 0.0.6
@@ -9622,6 +14913,8 @@ snapshots:
'@types/react': 19.2.17
redux: 5.0.1
+ react-refresh@0.14.2: {}
+
react@19.2.3: {}
read-yaml-file@1.1.0:
@@ -9669,16 +14962,57 @@ snapshots:
reflect-metadata@0.2.2: {}
+ regenerate-unicode-properties@10.2.2:
+ dependencies:
+ regenerate: 1.4.2
+
+ regenerate@1.4.2: {}
+
+ regenerator-runtime@0.13.11: {}
+
+ regexpu-core@6.4.0:
+ dependencies:
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.2.2
+ regjsgen: 0.8.0
+ regjsparser: 0.13.2
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.2.1
+
+ regjsgen@0.8.0: {}
+
+ regjsparser@0.13.2:
+ dependencies:
+ jsesc: 3.1.0
+
require-directory@2.1.1: {}
require-from-string@2.0.2: {}
+ require-main-filename@2.0.0: {}
+
reselect@5.2.0: {}
+ resolve-from@4.0.0: {}
+
resolve-from@5.0.0: {}
+ resolve-workspace-root@2.0.1: {}
+
resolve.exports@2.0.3: {}
+ resolve@1.22.12:
+ dependencies:
+ es-errors: 1.3.0
+ is-core-module: 2.16.2
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ restore-cursor@2.0.0:
+ dependencies:
+ onetime: 2.0.1
+ signal-exit: 3.0.7
+
restore-cursor@3.1.0:
dependencies:
onetime: 5.1.2
@@ -9782,8 +15116,7 @@ snapshots:
optionalDependencies:
'@parcel/watcher': 2.6.0
- sax@1.6.1:
- optional: true
+ sax@1.6.1: {}
saxes@6.0.0:
dependencies:
@@ -9799,12 +15132,45 @@ snapshots:
semver@7.8.5: {}
+ send@0.19.2(supports-color@10.2.2):
+ dependencies:
+ debug: 2.6.9(supports-color@10.2.2)
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.1
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ serialize-error@2.1.0: {}
+
seroval-plugins@1.5.6(seroval@1.5.6):
dependencies:
seroval: 1.5.6
seroval@1.5.6: {}
+ serve-static@1.16.3(supports-color@10.2.2):
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.19.2(supports-color@10.2.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ set-blocking@2.0.0: {}
+
+ setprototypeof@1.2.0: {}
+
sharp@0.34.5:
dependencies:
'@img/colour': 1.1.0
@@ -9842,14 +15208,60 @@ snapshots:
shebang-regex@3.0.0: {}
+ shell-quote@1.10.0: {}
+
+ side-channel-list@1.0.1:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.1
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
siginfo@2.0.0: {}
signal-exit@3.0.7: {}
signal-exit@4.1.0: {}
+ simple-plist@1.3.1:
+ dependencies:
+ bplist-creator: 0.1.0
+ bplist-parser: 0.3.1
+ plist: 3.1.1
+
+ sisteransi@1.0.5: {}
+
slash@3.0.0: {}
+ slice-ansi@2.1.0:
+ dependencies:
+ ansi-styles: 3.2.1
+ astral-regex: 1.0.0
+ is-fullwidth-code-point: 2.0.0
+
+ slugify@1.6.9: {}
+
smol-toml@1.6.1: {}
solid-js@1.9.14:
@@ -9869,8 +15281,14 @@ snapshots:
source-map-js@1.2.1: {}
- source-map@0.6.1:
- optional: true
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.5.7: {}
+
+ source-map@0.6.1: {}
spawndamnit@3.0.1:
dependencies:
@@ -9881,10 +15299,22 @@ snapshots:
stackback@0.0.2: {}
+ stackframe@1.3.4: {}
+
+ stacktrace-parser@0.1.11:
+ dependencies:
+ type-fest: 0.7.1
+
+ statuses@1.5.0: {}
+
+ statuses@2.0.2: {}
+
std-env@4.2.0: {}
stdin-discarder@0.3.2: {}
+ stream-buffers@2.2.0: {}
+
stream-parser@0.3.1(supports-color@10.2.2):
dependencies:
debug: 2.6.9(supports-color@10.2.2)
@@ -9913,6 +15343,10 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
+ strip-ansi@5.2.0:
+ dependencies:
+ ansi-regex: 4.1.1
+
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
@@ -9923,12 +15357,33 @@ snapshots:
strip-bom@3.0.0: {}
+ strip-final-newline@2.0.0: {}
+
+ strnum@1.1.2: {}
+
+ structured-headers@0.4.1: {}
+
supports-color@10.2.2: {}
+ supports-color@5.5.0:
+ dependencies:
+ has-flag: 3.0.0
+
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-hyperlinks@2.3.0:
+ dependencies:
+ has-flag: 4.0.0
+ supports-color: 7.2.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
svelte-check@4.7.4(picomatch@4.0.5)(svelte@5.56.8)(typescript@6.0.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
@@ -9982,6 +15437,20 @@ snapshots:
term-size@2.2.1: {}
+ terminal-link@2.1.1:
+ dependencies:
+ ansi-escapes: 4.3.2
+ supports-hyperlinks: 2.3.0
+
+ terser@5.49.0:
+ dependencies:
+ '@jridgewell/source-map': 0.3.11
+ acorn: 8.17.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ throat@5.0.0: {}
+
tiny-invariant@1.3.3: {}
tinybench@2.9.0: {}
@@ -10003,14 +15472,20 @@ snapshots:
tmp@0.2.6: {}
+ tmpl@1.0.5: {}
+
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
+ toidentifier@1.0.1: {}
+
topojson-client@3.1.0:
dependencies:
commander: 2.20.3
+ toqr@0.1.1: {}
+
tough-cookie@6.0.2:
dependencies:
tldts: 7.4.9
@@ -10033,6 +15508,15 @@ snapshots:
tslib@2.8.1: {}
+ type-fest@0.21.3: {}
+
+ type-fest@0.7.1: {}
+
+ type-is@1.6.18:
+ dependencies:
+ media-typer: 0.3.0
+ mime-types: 2.1.35
+
typescript@6.0.3: {}
undici-types@7.24.6: {}
@@ -10045,8 +15529,21 @@ snapshots:
dependencies:
pathe: 2.0.3
+ unicode-canonical-property-names-ecmascript@2.0.1: {}
+
+ unicode-match-property-ecmascript@2.0.0:
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.1
+ unicode-property-aliases-ecmascript: 2.2.0
+
+ unicode-match-property-value-ecmascript@2.2.1: {}
+
+ unicode-property-aliases-ecmascript@2.2.0: {}
+
universalify@0.1.2: {}
+ unpipe@1.0.0: {}
+
update-browserslist-db@1.2.3(browserslist@4.28.7):
dependencies:
browserslist: 4.28.7
@@ -10061,6 +15558,14 @@ snapshots:
util-deprecate@1.0.2: {}
+ utils-merge@1.0.1: {}
+
+ uuid@7.0.3: {}
+
+ validate-npm-package-name@5.0.1: {}
+
+ vary@1.1.2: {}
+
victory-vendor@37.3.6:
dependencies:
'@types/d3-array': 3.2.2
@@ -10078,7 +15583,7 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite-plugin-solid@2.11.14(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)):
+ vite-plugin-solid@2.11.14(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)):
dependencies:
'@babel/core': 7.29.7(supports-color@10.2.2)
'@types/babel__core': 7.20.5
@@ -10086,12 +15591,12 @@ snapshots:
merge-anything: 5.1.7
solid-js: 1.9.14
solid-refresh: 0.6.3(solid-js@1.9.14)(supports-color@10.2.2)
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
- vitefu: 1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
+ vitefu: 1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
transitivePeerDependencies:
- supports-color
- vite-plugin-solid@2.11.14(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)):
+ vite-plugin-solid@2.11.14(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)):
dependencies:
'@babel/core': 7.29.7(supports-color@10.2.2)
'@types/babel__core': 7.20.5
@@ -10099,12 +15604,12 @@ snapshots:
merge-anything: 5.1.7
solid-js: 1.9.14
solid-refresh: 0.6.3(solid-js@1.9.14)(supports-color@10.2.2)
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
- vitefu: 1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
+ vitefu: 1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
transitivePeerDependencies:
- supports-color
- vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0):
+ vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0):
dependencies:
lightningcss: 1.33.0
picomatch: 4.0.5
@@ -10117,9 +15622,10 @@ snapshots:
fsevents: 2.3.3
less: 4.8.1(supports-color@10.2.2)
sass: 1.102.0
+ terser: 5.49.0
yaml: 2.9.0
- vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0):
+ vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0):
dependencies:
lightningcss: 1.33.0
picomatch: 4.0.5
@@ -10132,20 +15638,21 @@ snapshots:
fsevents: 2.3.3
less: 4.8.1(supports-color@10.2.2)
sass: 1.102.0
+ terser: 5.49.0
yaml: 2.9.0
- vitefu@1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)):
+ vitefu@1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)):
optionalDependencies:
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
- vitefu@1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)):
+ vitefu@1.1.3(vite@8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)):
optionalDependencies:
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.28.1)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
- vitest@4.1.10(@types/node@25.9.5)(jsdom@29.1.1(@noble/hashes@2.2.0))(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)):
+ vitest@4.1.10(@types/node@25.9.5)(jsdom@29.1.1(@noble/hashes@2.2.0))(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(vite@8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
@@ -10162,7 +15669,7 @@ snapshots:
tinyexec: 1.2.4
tinyglobby: 0.2.17
tinyrainbow: 3.1.0
- vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(yaml@2.9.0)
+ vite: 8.1.5(@types/node@25.9.5)(esbuild@0.27.7)(less@4.8.1(supports-color@10.2.2))(sass@1.102.0)(terser@5.49.0)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 25.9.5
@@ -10170,6 +15677,8 @@ snapshots:
transitivePeerDependencies:
- msw
+ vlq@1.0.1: {}
+
vue@3.5.40(typescript@6.0.3):
dependencies:
'@vue/compiler-dom': 3.5.40
@@ -10184,6 +15693,12 @@ snapshots:
dependencies:
xml-name-validator: 5.0.0
+ walker@1.0.8:
+ dependencies:
+ makeerror: 1.0.12
+
+ warn-once@0.1.1: {}
+
wcwidth@1.0.1:
dependencies:
defaults: 1.0.4
@@ -10192,8 +15707,12 @@ snapshots:
webidl-conversions@8.0.1: {}
+ whatwg-fetch@3.6.20: {}
+
whatwg-mimetype@5.0.0: {}
+ whatwg-url-minimum@0.1.2: {}
+
whatwg-url@16.0.1(@noble/hashes@2.2.0):
dependencies:
'@exodus/bytes': 1.15.1(@noble/hashes@2.2.0)
@@ -10207,6 +15726,8 @@ snapshots:
tr46: 0.0.3
webidl-conversions: 3.0.1
+ which-module@2.0.1: {}
+
which@2.0.2:
dependencies:
isexe: 2.0.0
@@ -10242,6 +15763,12 @@ snapshots:
- bufferutil
- utf-8-validate
+ wrap-ansi@6.2.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
wrap-ansi@7.0.0:
dependencies:
ansi-styles: 4.3.0
@@ -10256,22 +15783,63 @@ snapshots:
wrappy@1.0.2: {}
+ ws@6.2.6:
+ dependencies:
+ async-limiter: 1.0.1
+
+ ws@7.5.13: {}
+
ws@8.21.0: {}
+ xcode@3.0.1:
+ dependencies:
+ simple-plist: 1.3.1
+ uuid: 7.0.3
+
xml-name-validator@5.0.0: {}
+ xml2js@0.6.0:
+ dependencies:
+ sax: 1.6.1
+ xmlbuilder: 11.0.1
+
+ xmlbuilder@11.0.1: {}
+
+ xmlbuilder@15.1.1: {}
+
xmlchars@2.2.0: {}
+ y18n@4.0.3: {}
+
y18n@5.0.8: {}
yallist@3.1.1: {}
yaml@2.9.0: {}
+ yargs-parser@18.1.3:
+ dependencies:
+ camelcase: 5.3.1
+ decamelize: 1.2.0
+
yargs-parser@21.1.1: {}
yargs-parser@22.0.0: {}
+ yargs@15.4.1:
+ dependencies:
+ cliui: 6.0.0
+ decamelize: 1.2.0
+ find-up: 4.1.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ require-main-filename: 2.0.0
+ set-blocking: 2.0.0
+ string-width: 4.2.3
+ which-module: 2.0.1
+ y18n: 4.0.3
+ yargs-parser: 18.1.3
+
yargs@17.7.2:
dependencies:
cliui: 8.0.1
@@ -10291,6 +15859,8 @@ snapshots:
y18n: 5.0.8
yargs-parser: 22.0.0
+ yocto-queue@0.1.0: {}
+
yoctocolors@2.2.0: {}
youch-core@0.3.3:
@@ -10308,6 +15878,8 @@ snapshots:
zimmerframe@1.1.4: {}
+ zod@3.25.76: {}
+
zrender@6.1.0:
dependencies:
tslib: 2.3.0
diff --git a/scripts/check-packed-consumers.mjs b/scripts/check-packed-consumers.mjs
index 62c084f3..7a4fc5e4 100644
--- a/scripts/check-packed-consumers.mjs
+++ b/scripts/check-packed-consumers.mjs
@@ -19,6 +19,7 @@ import { compile as compileOctane } from 'octane/compiler'
import { build, transform } from 'esbuild'
import ts from 'typescript'
import { validatePackedMarkdownLinks } from './packed-markdown-links.mjs'
+import { verifyPackedReactNativeConsumers } from './packed-react-native-consumers.mjs'
const execFileAsync = promisify(execFile)
const root = resolve(import.meta.dirname, '..')
@@ -31,12 +32,14 @@ const buildWorkspace = resolve(temporaryRoot, 'build')
const tarballDirectory = artifactDirectory ?? resolve(temporaryRoot, 'tarballs')
const fixtureDirectory = resolve(temporaryRoot, 'consumer')
-const packages = [
+const webPackages = [
packageConfig('charts-scales', 'scale'),
packageConfig('charts-core', 'core'),
packageConfig('react-charts', 'react'),
packageConfig('octane-charts', 'octane'),
]
+const nativePackage = packageConfig('react-native-charts', 'react-native')
+const packages = [...webPackages, nativePackage]
try {
await mkdir(resolve(buildWorkspace, 'packages'), { recursive: true })
@@ -72,15 +75,25 @@ try {
await verifyEsmRuntime()
await verifyDeclarations()
const bundles = await verifyProductionBundles()
+ const nativeBundles = await verifyPackedReactNativeConsumers({
+ repositoryRoot: root,
+ temporaryRoot,
+ tarballs,
+ })
console.log('Packed exports, declarations, and runtime gate passed.')
- console.log('| Consumer | Minified | Gzip |')
+ console.log('| Consumer | Bytes | Gzip |')
console.log('| --- | ---: | ---: |')
for (const bundle of bundles) {
console.log(
`| ${bundle.label} | ${formatBytes(bundle.bytes)} | ${formatBytes(bundle.gzip)} |`,
)
}
+ for (const bundle of nativeBundles) {
+ console.log(
+ `| ${bundle.label} | ${formatBytes(bundle.bytes)} | ${formatBytes(bundle.gzip)} |`,
+ )
+ }
} finally {
await rm(temporaryRoot, { recursive: true, force: true })
}
@@ -158,7 +171,7 @@ function validateManifest(packageInfo) {
published.types?.startsWith('./dist/'),
`${manifest.name} published export ${key} requires declarations`,
)
- for (const condition of ['import', 'browser', 'node']) {
+ for (const condition of ['import', 'browser', 'node', 'react-native']) {
if (published[condition] === undefined) continue
assert.ok(
published[condition].startsWith('./dist/'),
@@ -207,7 +220,10 @@ async function buildRuntime(packageInfo) {
platform: 'neutral',
target: 'es2022',
jsx: 'automatic',
- jsxImportSource: packageInfo.kind === 'react' ? 'react' : undefined,
+ jsxImportSource:
+ packageInfo.kind === 'react' || packageInfo.kind === 'react-native'
+ ? 'react'
+ : undefined,
legalComments: 'none',
logLevel: 'silent',
})
@@ -288,19 +304,23 @@ async function buildDeclarations(packageInfo) {
),
),
]
+ const isReactNative = packageInfo.kind === 'react-native'
const options = {
allowArbitraryExtensions: true,
declaration: true,
declarationMap: false,
emitDeclarationOnly: true,
jsx: ts.JsxEmit.ReactJSX,
- lib: ['lib.es2022.d.ts', 'lib.dom.d.ts', 'lib.dom.iterable.d.ts'],
+ customConditions: isReactNative ? ['react-native'] : undefined,
+ lib: isReactNative
+ ? ['lib.es2022.d.ts']
+ : ['lib.es2022.d.ts', 'lib.dom.d.ts', 'lib.dom.iterable.d.ts'],
module: ts.ModuleKind.ESNext,
moduleResolution: ts.ModuleResolutionKind.Bundler,
noEmitOnError: true,
outDir: outputRoot,
rootDir: sourceRoot,
- skipLibCheck: false,
+ skipLibCheck: isReactNative,
strict: true,
target: ts.ScriptTarget.ES2022,
verbatimModuleSyntax: true,
@@ -500,7 +520,7 @@ function publishedSpecifiers(packageInfo) {
}
async function verifyInstalledManifests() {
- for (const packageInfo of packages) {
+ for (const packageInfo of webPackages) {
const installedPath = resolve(
fixtureDirectory,
'node_modules',
@@ -530,7 +550,7 @@ async function verifyInstalledManifests() {
}
async function verifyEsmRuntime() {
- const publishedSubpaths = packages.flatMap(publishedSpecifiers)
+ const publishedSubpaths = webPackages.flatMap(publishedSpecifiers)
const source = `
import assert from 'node:assert/strict'
import { realpathSync } from 'node:fs'
@@ -669,7 +689,7 @@ async function verifyEsmRuntime() {
}
async function verifyDeclarations() {
- const namespaceImports = packages
+ const namespaceImports = webPackages
.flatMap(publishedSpecifiers)
.map(
(specifier, index) =>
diff --git a/scripts/check-react-native-types.mjs b/scripts/check-react-native-types.mjs
new file mode 100644
index 00000000..fa55feda
--- /dev/null
+++ b/scripts/check-react-native-types.mjs
@@ -0,0 +1,61 @@
+import { spawnSync } from 'node:child_process'
+import { resolve } from 'node:path'
+
+const root = resolve(import.meta.dirname, '..')
+const tsc = resolve(root, 'node_modules/typescript/bin/tsc')
+const passingConfigs = [
+ 'packages/react-native-charts/tsconfig.json',
+ 'examples/charts-react-native/tsconfig.json',
+ 'examples/charts-expo/tsconfig.json',
+]
+
+for (const config of passingConfigs) {
+ const result = runTypeScript(config)
+ if (result.status !== 0) {
+ process.stderr.write(result.output)
+ throw new Error(`TypeScript failed for ${config}`)
+ }
+}
+
+const strictConfig = 'examples/charts-react-native/tsconfig.strict.json'
+const strict = runTypeScript(strictConfig)
+if (strict.status === 0) {
+ console.log('React Native source and strict consumer typechecks passed.')
+ process.exit(0)
+}
+
+const diagnostics = strict.output
+ .split(/\r?\n/)
+ .map((line) => line.trim())
+ .filter(Boolean)
+const expected = diagnostics.every(
+ (line) =>
+ line.includes('/@types/d3-array/') &&
+ line.includes("Cannot find name 'ImageData'."),
+)
+
+if (!expected || diagnostics.length !== 2) {
+ process.stderr.write(strict.output)
+ throw new Error(
+ 'The strict React Native consumer has diagnostics beyond the known @types/d3-array ImageData boundary.',
+ )
+}
+
+console.log(
+ 'React Native source and consumer typechecks passed; strict dependency checking reached only the two known @types/d3-array ImageData diagnostics.',
+)
+
+function runTypeScript(config) {
+ const result = spawnSync(
+ process.execPath,
+ [tsc, '--noEmit', '-p', config, '--pretty', 'false'],
+ {
+ cwd: root,
+ encoding: 'utf8',
+ },
+ )
+ return {
+ status: result.status,
+ output: `${result.stdout ?? ''}${result.stderr ?? ''}`,
+ }
+}
diff --git a/scripts/docs-contract.mjs b/scripts/docs-contract.mjs
index d493bf88..0f5d1d97 100644
--- a/scripts/docs-contract.mjs
+++ b/scripts/docs-contract.mjs
@@ -43,6 +43,7 @@ const publicEntryPaths = [
'packages/charts-scales/README.md',
'packages/preact-charts/README.md',
'packages/react-charts/README.md',
+ 'packages/react-native-charts/README.md',
'packages/vue-charts/README.md',
'packages/solid-charts/README.md',
'packages/svelte-charts/README.md',
@@ -480,6 +481,7 @@ async function validateDocumentedTanStackImports(
['packages/charts-scales', '@tanstack/charts-scales'],
['packages/preact-charts', '@tanstack/preact-charts'],
['packages/react-charts', '@tanstack/react-charts'],
+ ['packages/react-native-charts', '@tanstack/react-native-charts'],
['packages/vue-charts', '@tanstack/vue-charts'],
['packages/solid-charts', '@tanstack/solid-charts'],
['packages/svelte-charts', '@tanstack/svelte-charts'],
diff --git a/scripts/measure-bundles.mjs b/scripts/measure-bundles.mjs
index aa042d31..8c9202be 100644
--- a/scripts/measure-bundles.mjs
+++ b/scripts/measure-bundles.mjs
@@ -27,6 +27,29 @@ const rendererBoundaryModules = {
'packages/charts-core/src/svg.ts',
'packages/react-charts/src/Chart.tsx',
],
+ native: [
+ 'packages/react-native-charts/src/Chart.tsx',
+ 'packages/react-native-charts/src/FocusOverlay.tsx',
+ 'packages/react-native-charts/src/SvgScene.tsx',
+ 'packages/react-native-charts/src/Tooltip.tsx',
+ ],
+ browser: [
+ 'packages/charts-core/src/adapter.ts',
+ 'packages/charts-core/src/adapter-renderer.ts',
+ 'packages/charts-core/src/canvas.ts',
+ 'packages/charts-core/src/dom.ts',
+ 'packages/charts-core/src/dom-text.ts',
+ 'packages/charts-core/src/export.ts',
+ 'packages/charts-core/src/reconcile.ts',
+ 'packages/charts-core/src/renderer.ts',
+ 'packages/charts-core/src/svg-renderer.ts',
+ 'packages/charts-core/src/svg-resources.ts',
+ 'packages/charts-core/src/svg-surface.ts',
+ 'packages/charts-core/src/svg.ts',
+ 'packages/react-charts/src/CanvasChart.tsx',
+ 'packages/react-charts/src/Chart.tsx',
+ 'packages/react-charts/src/RendererChart.tsx',
+ ],
}
const retainedInputGroups = {
compactLinear: [/(?:^|\/)packages\/charts-scales\/src\/linear\.ts$/u],
@@ -76,6 +99,10 @@ const retainedInputGroups = {
transformReduce: [
/(?:^|\/)packages\/charts-core\/src\/transform-reduce\.ts$/u,
],
+ nativeTooltip: [
+ /(?:^|\/)packages\/react-native-charts\/src\/Tooltip\.tsx$/u,
+ /(?:^|\/)packages\/react-native-charts\/src\/tooltip-entry\.ts$/u,
+ ],
d3Array: [/(?:^|\/)node_modules\/d3-array\//u],
d3Shape: [/(?:^|\/)node_modules\/d3-shape\//u],
d3ScaleRuntime: [
@@ -101,6 +128,14 @@ const granularTransformInputGroups = [
'transformStack',
'transformReduce',
]
+const nativeExternals = [
+ 'react',
+ 'react/jsx-runtime',
+ 'react-native',
+ 'react-native/*',
+ 'react-native-svg',
+ 'react-native-svg/*',
+]
const entries = [
measured('Core host', 'benchmarks/entries/core.ts', {
inputBoundary: { forbid: ['d3GeometryRuntime'] },
@@ -330,6 +365,58 @@ const entries = [
external: ['react', 'react/jsx-runtime', 'react-dom'],
inputBoundary: { forbid: ['d3GeometryRuntime'] },
}),
+ measured(
+ 'React Native SVG host',
+ 'benchmarks/entries/charts-react-native.ts',
+ {
+ external: nativeExternals,
+ rendererBoundary: 'native',
+ inputBoundary: {
+ forbid: [
+ 'nativeTooltip',
+ 'tooltipRuntime',
+ 'tooltipPortal',
+ 'd3Runtime',
+ ],
+ },
+ platform: 'neutral',
+ conditions: ['react-native', 'import'],
+ },
+ ),
+ measured(
+ 'React Native SVG host + tooltip',
+ 'benchmarks/entries/charts-react-native-tooltip.ts',
+ {
+ external: nativeExternals,
+ rendererBoundary: 'native',
+ inputBoundary: {
+ require: ['nativeTooltip'],
+ forbid: ['tooltipRuntime', 'tooltipPortal', 'd3Runtime'],
+ addedFrom: 'React Native SVG host',
+ allowAdded: ['nativeTooltip'],
+ },
+ platform: 'neutral',
+ conditions: ['react-native', 'import'],
+ },
+ ),
+ measured(
+ 'React Native line consumer',
+ 'benchmarks/entries/charts-react-native-line.ts',
+ {
+ external: nativeExternals,
+ rendererBoundary: 'native',
+ inputBoundary: {
+ forbid: [
+ 'nativeTooltip',
+ 'tooltipRuntime',
+ 'tooltipPortal',
+ 'd3GeometryRuntime',
+ ],
+ },
+ platform: 'neutral',
+ conditions: ['react-native', 'import'],
+ },
+ ),
lockedBudgeted(
'Compact-scale line scene',
'benchmarks/entries/charts-compact-linear-scene.ts',
@@ -703,6 +790,8 @@ for (const {
policy,
rendererBoundary,
inputBoundary,
+ platform,
+ conditions,
} of entries) {
const outfile = resolve(
outputDirectory,
@@ -714,13 +803,14 @@ for (const {
bundle: true,
minify: true,
treeShaking: true,
- platform: 'browser',
+ platform: platform ?? 'browser',
format: 'esm',
target: 'es2022',
legalComments: 'none',
logLevel: 'silent',
external,
alias,
+ conditions,
metafile: true,
})
const retainedInputs = collectRetainedInputs(result.metafile)
@@ -871,6 +961,8 @@ function createEntry(label, entry, policy, options) {
alias: options.alias,
rendererBoundary: options.rendererBoundary,
inputBoundary: options.inputBoundary,
+ platform: options.platform,
+ conditions: options.conditions,
}
}
@@ -879,6 +971,9 @@ function assertRendererBoundary(label, inputs, boundary) {
const paths = inputs.map((input) => input.replaceAll('\\', '/'))
const canvas = matchingModules(paths, rendererBoundaryModules.canvas)
const svg = matchingModules(paths, rendererBoundaryModules.svg)
+ const native = matchingModules(paths, rendererBoundaryModules.native)
+ const browser = matchingModules(paths, rendererBoundaryModules.browser)
+ const reactDom = paths.filter((input) => input.includes('/react-dom/'))
const failures = []
if (boundary === 'neutral') {
@@ -890,6 +985,14 @@ function assertRendererBoundary(label, inputs, boundary) {
} else if (boundary === 'svg') {
if (!svg.length) failures.push('did not include the SVG renderer')
if (canvas.length) failures.push(`included Canvas: ${canvas.join(', ')}`)
+ } else if (boundary === 'native') {
+ if (!native.length) failures.push('did not include the native SVG host')
+ if (browser.length) {
+ failures.push(`included browser modules: ${browser.join(', ')}`)
+ }
+ if (reactDom.length) {
+ failures.push(`included react-dom: ${reactDom.join(', ')}`)
+ }
} else {
failures.push(`uses unknown renderer boundary ${boundary}`)
}
diff --git a/scripts/measure-react-native-poc.mjs b/scripts/measure-react-native-poc.mjs
new file mode 100644
index 00000000..9e7bd71a
--- /dev/null
+++ b/scripts/measure-react-native-poc.mjs
@@ -0,0 +1,196 @@
+import { spawn } from 'node:child_process'
+import { mkdir, readFile, writeFile } from 'node:fs/promises'
+import { gzipSync } from 'node:zlib'
+import { resolve } from 'node:path'
+
+const root = resolve(import.meta.dirname, '..')
+const example = resolve(root, 'examples/charts-react-native')
+const output = resolve(root, '.bundle-output')
+const cli = resolve(example, 'node_modules/.bin/react-native')
+const skipBuild = process.argv.includes('--skip-build')
+const forbiddenSources = [
+ 'packages/charts-core/src/adapter.ts',
+ 'packages/charts-core/src/adapter-renderer.ts',
+ 'packages/charts-core/src/canvas.ts',
+ 'packages/charts-core/src/dom.ts',
+ 'packages/charts-core/src/dom-text.ts',
+ 'packages/charts-core/src/export.ts',
+ 'packages/charts-core/src/reconcile.ts',
+ 'packages/charts-core/src/renderer.ts',
+ 'packages/charts-core/src/svg-resources.ts',
+ 'packages/charts-core/src/svg-surface.ts',
+ 'packages/charts-core/src/tooltip-portal.ts',
+ 'packages/charts-core/src/tooltip-position.ts',
+ 'packages/charts-core/src/tooltip.ts',
+ 'packages/octane-charts/',
+ 'packages/react-charts/',
+ 'react-dom/',
+]
+const universalRetainedSources = [
+ 'packages/charts-core/src/svg-renderer.ts',
+ 'packages/charts-core/src/svg.ts',
+]
+const variants = {
+ blank: 'index.blank.js',
+ svg: 'index.svg.js',
+ core: 'index.core.js',
+ granular: 'index.granular.js',
+ chart: 'index.js',
+}
+
+await mkdir(output, { recursive: true })
+
+const bundles = []
+for (const platform of ['ios', 'android']) {
+ for (const [variant, entry] of Object.entries(variants)) {
+ const bundle = resolve(
+ output,
+ `react-native-${variant}.${platform}.jsbundle`,
+ )
+ const sourceMap = resolve(output, `react-native-${variant}.${platform}.map`)
+ if (!skipBuild) {
+ await run(cli, [
+ 'bundle',
+ '--entry-file',
+ entry,
+ '--platform',
+ platform,
+ '--dev',
+ 'false',
+ '--minify',
+ 'true',
+ '--bundle-output',
+ bundle,
+ '--sourcemap-output',
+ sourceMap,
+ '--config',
+ resolve(example, 'metro.config.cjs'),
+ ])
+ }
+ const contents = await readFile(bundle)
+ const map = JSON.parse(await readFile(sourceMap, 'utf8'))
+ const sources = map.sources.map(normalize)
+ if (variant === 'chart') assertNativeBoundary(platform, sources, true)
+ if (variant === 'granular') assertNativeBoundary(platform, sources, false)
+ bundles.push({
+ platform,
+ variant,
+ bytes: contents.byteLength,
+ gzip: gzipSync(contents).byteLength,
+ modules: sources.length,
+ })
+ }
+}
+
+const rows = [
+ '| Platform | Full chart `/universal` JS delta | RNSVG-only gzip delta | Core line gzip delta | Full chart `/universal` gzip delta | `/universal` over granular gzip |',
+]
+rows.push('| --- | ---: | ---: | ---: | ---: | ---: |')
+for (const platform of ['ios', 'android']) {
+ const blank = bundles.find(
+ (bundle) => bundle.platform === platform && bundle.variant === 'blank',
+ )
+ const chart = bundles.find(
+ (bundle) => bundle.platform === platform && bundle.variant === 'chart',
+ )
+ const granular = bundles.find(
+ (bundle) => bundle.platform === platform && bundle.variant === 'granular',
+ )
+ const svg = bundles.find(
+ (bundle) => bundle.platform === platform && bundle.variant === 'svg',
+ )
+ const core = bundles.find(
+ (bundle) => bundle.platform === platform && bundle.variant === 'core',
+ )
+ if (!blank || !chart || !granular || !svg || !core) {
+ throw new Error(`Missing ${platform} bundle result`)
+ }
+ rows.push(
+ `| ${platform} | ${format(chart.bytes - blank.bytes)} | ${format(svg.gzip - blank.gzip)} | ${format(core.gzip - blank.gzip)} | ${format(chart.gzip - blank.gzip)} | ${format(chart.gzip - granular.gzip)} |`,
+ )
+}
+
+console.log(rows.join('\n'))
+await writeFile(
+ resolve(output, 'react-native-poc.json'),
+ `${JSON.stringify(
+ {
+ schemaVersion: 1,
+ note: 'Metro production JS only. The chart and granular variants share one UI and definition factory while their application entries use @tanstack/charts/universal and granular definition imports respectively; this excludes react-native-svg native binary code.',
+ bundles,
+ },
+ null,
+ 2,
+ )}\n`,
+)
+
+function assertNativeBoundary(platform, sources, requiresUniversal) {
+ const nativeSources = sources.filter((source) =>
+ source.includes('packages/react-native-charts/src/'),
+ )
+ if (!nativeSources.length) {
+ throw new Error(`${platform} bundle did not include the native host`)
+ }
+ const includesUniversal = sources.some((source) =>
+ source.includes('packages/charts-core/src/universal.ts'),
+ )
+ if (requiresUniversal && !includesUniversal) {
+ throw new Error(`${platform} bundle did not exercise the universal entry`)
+ }
+ if (!requiresUniversal && includesUniversal) {
+ throw new Error(`${platform} granular bundle included the universal entry`)
+ }
+ const retainedUniversalSources = universalRetainedSources.filter(
+ (candidate) => sources.some((source) => source.includes(candidate)),
+ )
+ if (
+ requiresUniversal &&
+ retainedUniversalSources.length !== universalRetainedSources.length
+ ) {
+ throw new Error(
+ `${platform} universal bundle did not retain its static SVG serializer`,
+ )
+ }
+ if (!requiresUniversal && retainedUniversalSources.length) {
+ throw new Error(
+ `${platform} granular bundle retained broad universal modules:\n${retainedUniversalSources.join('\n')}`,
+ )
+ }
+ const forbidden = sources.filter((source) =>
+ forbiddenSources.some((candidate) => source.includes(candidate)),
+ )
+ if (forbidden.length) {
+ throw new Error(
+ `${platform} bundle crossed the browser boundary:\n${forbidden.join('\n')}`,
+ )
+ }
+}
+
+function run(command, args) {
+ return new Promise((resolvePromise, reject) => {
+ const child = spawn(command, args, {
+ cwd: example,
+ stdio: 'inherit',
+ })
+ child.on('error', reject)
+ child.on('exit', (code, signal) => {
+ if (code === 0) resolvePromise()
+ else {
+ reject(
+ new Error(
+ `${command} exited with ${signal ? `signal ${signal}` : `code ${code}`}`,
+ ),
+ )
+ }
+ })
+ })
+}
+
+function normalize(value) {
+ return value.replaceAll('\\', '/')
+}
+
+function format(bytes) {
+ const sign = bytes < 0 ? '-' : ''
+ return `${sign}${(Math.abs(bytes) / 1024).toFixed(2)} kB`
+}
diff --git a/scripts/packed-react-native-consumers.mjs b/scripts/packed-react-native-consumers.mjs
new file mode 100644
index 00000000..7be594ba
--- /dev/null
+++ b/scripts/packed-react-native-consumers.mjs
@@ -0,0 +1,537 @@
+import assert from 'node:assert/strict'
+import { execFile } from 'node:child_process'
+import {
+ cp,
+ mkdir,
+ readFile,
+ readdir,
+ realpath,
+ stat,
+ writeFile,
+} from 'node:fs/promises'
+import { dirname, resolve } from 'node:path'
+import { promisify } from 'node:util'
+import { gzipSync } from 'node:zlib'
+
+const execFileAsync = promisify(execFile)
+
+const forbiddenNativeSources = [
+ '/@tanstack/charts/dist/adapter.js',
+ '/@tanstack/charts/dist/adapter-renderer.js',
+ '/@tanstack/charts/dist/canvas.js',
+ '/@tanstack/charts/dist/dom.js',
+ '/@tanstack/charts/dist/dom-text.js',
+ '/@tanstack/charts/dist/export.js',
+ '/@tanstack/charts/dist/reconcile.js',
+ '/@tanstack/charts/dist/renderer.js',
+ '/@tanstack/charts/dist/svg-resources.js',
+ '/@tanstack/charts/dist/svg-surface.js',
+ '/@tanstack/charts/dist/tooltip.js',
+ '/@tanstack/charts/dist/tooltip-position.js',
+ '/@tanstack/charts/dist/tooltip-portal.js',
+ '/@tanstack/react-charts/',
+ '/react-dom/',
+]
+
+export async function verifyPackedReactNativeConsumers({
+ repositoryRoot,
+ temporaryRoot,
+ tarballs,
+}) {
+ const coreTarball = requiredTarball(tarballs, '@tanstack/charts')
+ const nativeTarball = requiredTarball(
+ tarballs,
+ '@tanstack/react-native-charts',
+ )
+ const consumersRoot = resolve(temporaryRoot, 'react-native-consumers')
+ const packageManager = JSON.parse(
+ await readFile(resolve(repositoryRoot, 'package.json'), 'utf8'),
+ ).packageManager
+ const consumerConfigs = [
+ bareConsumerConfig(repositoryRoot),
+ expoConsumerConfig(repositoryRoot),
+ ]
+ const bundles = []
+
+ for (const config of consumerConfigs) {
+ const consumerRoot = resolve(consumersRoot, config.name)
+ await deployConsumer({
+ config,
+ consumerRoot,
+ coreTarball,
+ nativeTarball,
+ packageManager,
+ repositoryRoot,
+ })
+ await installConsumer(consumerRoot, repositoryRoot)
+ await verifyInstalledPackage({ consumerRoot, repositoryRoot })
+ await verifyConsumerTypes({ config, consumerRoot, repositoryRoot })
+ bundles.push(...(await bundleConsumer({ config, consumerRoot })))
+ }
+
+ console.log(
+ 'Packed React Native exports, declarations, bare Metro, and Expo Metro gates passed.',
+ )
+ return bundles
+}
+
+function bareConsumerConfig(repositoryRoot) {
+ return {
+ name: 'bare',
+ importerPath: 'examples/charts-react-native',
+ sourceDirectory: resolve(repositoryRoot, 'examples/charts-react-native'),
+ writeConfig: async (consumerRoot) => {
+ await writeFile(
+ resolve(consumerRoot, 'metro.config.cjs'),
+ "const { getDefaultConfig } = require('@react-native/metro-config')\n\nmodule.exports = getDefaultConfig(__dirname)\n",
+ )
+ },
+ strictTypes: true,
+ bundle: bundleBareConsumer,
+ }
+}
+
+function expoConsumerConfig(repositoryRoot) {
+ return {
+ name: 'expo',
+ importerPath: 'examples/charts-expo',
+ sourceDirectory: resolve(repositoryRoot, 'examples/charts-expo'),
+ writeConfig: async () => {},
+ strictTypes: false,
+ bundle: bundleExpoConsumer,
+ }
+}
+
+async function deployConsumer({
+ config,
+ consumerRoot,
+ coreTarball,
+ nativeTarball,
+ packageManager,
+ repositoryRoot,
+}) {
+ await copyConsumerSource(config.sourceDirectory, consumerRoot)
+ await writeConsumerLock({
+ consumerRoot,
+ importerPath: config.importerPath,
+ repositoryRoot,
+ })
+ const manifest = JSON.parse(
+ await readFile(resolve(consumerRoot, 'package.json'), 'utf8'),
+ )
+ manifest.packageManager = packageManager
+ manifest.dependencies['@tanstack/charts'] = `file:${coreTarball}`
+ manifest.dependencies['@tanstack/react-native-charts'] =
+ `file:${nativeTarball}`
+ await writeFile(
+ resolve(consumerRoot, 'package.json'),
+ `${JSON.stringify(manifest, null, 2)}\n`,
+ )
+ await writeFile(
+ resolve(consumerRoot, 'pnpm-workspace.yaml'),
+ `packages:\n - '.'\n\noverrides:\n '@tanstack/charts': ${JSON.stringify(`file:${coreTarball}`)}\n\nverifyDepsBeforeRun: false\n\nallowBuilds:\n '@parcel/watcher': false\n esbuild: false\n nx: false\n sharp: false\n workerd: false\n`,
+ )
+ await config.writeConfig(consumerRoot)
+}
+
+async function copyConsumerSource(sourceDirectory, consumerRoot) {
+ await mkdir(consumerRoot, { recursive: true })
+ for (const entry of await readdir(sourceDirectory, { withFileTypes: true })) {
+ if (entry.name === 'node_modules' || entry.name.startsWith('dist')) continue
+ await cp(
+ resolve(sourceDirectory, entry.name),
+ resolve(consumerRoot, entry.name),
+ { recursive: entry.isDirectory() },
+ )
+ }
+}
+
+async function writeConsumerLock({
+ consumerRoot,
+ importerPath,
+ repositoryRoot,
+}) {
+ const lockSource = await readFile(
+ resolve(repositoryRoot, 'pnpm-lock.yaml'),
+ 'utf8',
+ )
+ const lines = lockSource.split('\n')
+ const importersIndex = lines.indexOf('importers:')
+ const packagesIndex = lines.indexOf('packages:')
+ const importerIndex = lines.indexOf(` ${importerPath}:`, importersIndex + 1)
+ assert.ok(importersIndex >= 0, 'Workspace lock has no importers section')
+ assert.ok(
+ packagesIndex > importersIndex,
+ 'Workspace lock has no packages section',
+ )
+ assert.ok(
+ importerIndex > importersIndex && importerIndex < packagesIndex,
+ `Workspace lock has no ${importerPath} importer`,
+ )
+
+ let importerEnd = importerIndex + 1
+ while (importerEnd < packagesIndex && !/^ \S.*:$/.test(lines[importerEnd])) {
+ importerEnd += 1
+ }
+ const importer = lines.slice(importerIndex, importerEnd)
+ importer[0] = ' .:'
+ const consumerLock = [
+ ...lines.slice(0, importersIndex + 1),
+ '',
+ ...importer,
+ '',
+ ...lines.slice(packagesIndex),
+ ].join('\n')
+ await writeFile(resolve(consumerRoot, 'pnpm-lock.yaml'), consumerLock)
+}
+
+async function installConsumer(consumerRoot, repositoryRoot) {
+ const modulesState = JSON.parse(
+ await readFile(
+ resolve(repositoryRoot, 'node_modules/.modules.yaml'),
+ 'utf8',
+ ),
+ )
+ assert.equal(typeof modulesState.storeDir, 'string')
+ await run(
+ 'pnpm',
+ [
+ 'install',
+ '--prefer-offline',
+ '--ignore-scripts',
+ '--frozen-lockfile=false',
+ '--store-dir',
+ resolve(modulesState.storeDir, '..'),
+ ],
+ consumerRoot,
+ { CI: 'true' },
+ )
+}
+
+async function verifyInstalledPackage({ consumerRoot, repositoryRoot }) {
+ const sourceManifest = JSON.parse(
+ await readFile(
+ resolve(repositoryRoot, 'packages/react-native-charts/package.json'),
+ 'utf8',
+ ),
+ )
+ const sourceCoreManifest = JSON.parse(
+ await readFile(
+ resolve(repositoryRoot, 'packages/charts-core/package.json'),
+ 'utf8',
+ ),
+ )
+ const packageRoot = resolve(
+ consumerRoot,
+ 'node_modules/@tanstack/react-native-charts',
+ )
+ const installedManifest = JSON.parse(
+ await readFile(resolve(packageRoot, 'package.json'), 'utf8'),
+ )
+ const corePackageRoot = resolve(consumerRoot, 'node_modules/@tanstack/charts')
+ const installedCoreManifest = JSON.parse(
+ await readFile(resolve(corePackageRoot, 'package.json'), 'utf8'),
+ )
+ assert.deepEqual(
+ installedManifest.exports,
+ sourceManifest.publishConfig.exports,
+ )
+ assert.equal(installedManifest.private, false)
+ assert.equal(installedManifest.publishConfig?.exports, undefined)
+ assert.equal(installedManifest.publishConfig?.access, 'public')
+ assert.equal(installedManifest.publishConfig?.provenance, true)
+ assert.equal(
+ installedManifest.dependencies['@tanstack/charts'],
+ sourceManifest.version,
+ )
+ assert.equal(installedCoreManifest.version, sourceCoreManifest.version)
+ assert.equal((await readdir(packageRoot)).includes('src'), false)
+ assert.equal((await readdir(corePackageRoot)).includes('src'), false)
+
+ const nativePackageRealPath = await realpath(packageRoot)
+ const directCoreRealPath = await realpath(corePackageRoot)
+ const coreResolvedFromNative = await realpath(
+ resolve(dirname(dirname(nativePackageRealPath)), '@tanstack/charts'),
+ )
+ assert.equal(
+ coreResolvedFromNative,
+ directCoreRealPath,
+ 'The native adapter did not resolve the installed core tarball',
+ )
+ for (const range of Object.values(installedManifest.dependencies ?? {})) {
+ assert.equal(range.startsWith('workspace:'), false)
+ }
+
+ const resolutionCheck = resolve(consumerRoot, 'resolve-exports.mjs')
+ await writeFile(
+ resolutionCheck,
+ `import assert from 'node:assert/strict'\nimport { realpathSync } from 'node:fs'\nimport { fileURLToPath } from 'node:url'\n\nconst expected = process.argv[2]\nfor (const [specifier, filename] of [\n ['@tanstack/react-native-charts', expected === 'native' ? 'index.native.js' : 'index.js'],\n ['@tanstack/react-native-charts/tooltip', expected === 'native' ? 'tooltip-entry.native.js' : 'tooltip-entry.js'],\n ['@tanstack/charts/universal', 'universal.js'],\n]) {\n const resolved = realpathSync(fileURLToPath(import.meta.resolve(specifier)))\n assert.ok(resolved.startsWith(realpathSync('./node_modules')), resolved)\n assert.ok(resolved.endsWith('/dist/' + filename), resolved)\n}\n`,
+ )
+ await run('node', [resolutionCheck, 'import'], consumerRoot)
+ await run(
+ 'node',
+ ['--conditions=react-native', resolutionCheck, 'native'],
+ consumerRoot,
+ )
+}
+
+async function verifyConsumerTypes({ config, consumerRoot }) {
+ const tsc = resolve(consumerRoot, 'node_modules/typescript/bin/tsc')
+ await run(
+ process.execPath,
+ [tsc, '--noEmit', '-p', 'tsconfig.json', '--pretty', 'false'],
+ consumerRoot,
+ )
+ if (!config.strictTypes) return
+
+ const strict = await runAllowFailure(
+ process.execPath,
+ [tsc, '--noEmit', '-p', 'tsconfig.strict.json', '--pretty', 'false'],
+ consumerRoot,
+ )
+ if (strict.status === 0) return
+ const diagnostics = strict.output
+ .split(/\r?\n/)
+ .map((line) => line.trim())
+ .filter((line) => line.includes('error TS'))
+ const expected = diagnostics.every(
+ (line) =>
+ line.includes('/@types/d3-array/') &&
+ line.includes("Cannot find name 'ImageData'."),
+ )
+ if (!expected || diagnostics.length !== 2) {
+ throw new Error(
+ `Packed strict React Native declarations failed beyond the known @types/d3-array boundary:\n${strict.output}`,
+ )
+ }
+}
+
+async function bundleConsumer({ config, consumerRoot }) {
+ const bundles = await config.bundle(consumerRoot)
+ for (const bundle of bundles) {
+ const sources = await readSourceMapSources(bundle.sourceMaps)
+ assertPackedNativeBoundary(bundle.label, sources, bundle.includesTooltip)
+ }
+ return bundles.map(({ label, bundle }) => ({
+ label,
+ bytes: bundle.byteLength,
+ gzip: gzipSync(bundle).byteLength,
+ }))
+}
+
+async function bundleBareConsumer(consumerRoot) {
+ const cli = resolve(consumerRoot, 'node_modules/.bin/react-native')
+ const outputRoot = resolve(consumerRoot, 'bundles')
+ await mkdir(outputRoot, { recursive: true })
+ await writeFile(
+ resolve(consumerRoot, 'packed-base-entry.js'),
+ "import { defineChart, lineY } from '@tanstack/charts/universal'\nimport { Chart } from '@tanstack/react-native-charts'\nglobalThis.__tanstackChartsPackedBase = [defineChart, lineY, Chart]\n",
+ )
+
+ const entries = [
+ {
+ entry: 'index.js',
+ name: 'bare',
+ platforms: ['ios', 'android'],
+ includesTooltip: true,
+ },
+ {
+ entry: 'packed-base-entry.js',
+ name: 'bare-base',
+ platforms: ['ios'],
+ includesTooltip: false,
+ },
+ ]
+ const bundles = []
+ for (const entry of entries) {
+ for (const platform of entry.platforms) {
+ const output = resolve(outputRoot, `${entry.name}.${platform}.jsbundle`)
+ const sourceMap = resolve(outputRoot, `${entry.name}.${platform}.map`)
+ await run(
+ cli,
+ [
+ 'bundle',
+ '--entry-file',
+ entry.entry,
+ '--platform',
+ platform,
+ '--dev',
+ 'false',
+ '--minify',
+ 'true',
+ '--bundle-output',
+ output,
+ '--sourcemap-output',
+ sourceMap,
+ '--config',
+ resolve(consumerRoot, 'metro.config.cjs'),
+ ],
+ consumerRoot,
+ )
+ bundles.push({
+ label: `Packed bare React Native ${entry.name === 'bare' ? '' : 'base '}${platform}`,
+ bundle: await readFile(output),
+ sourceMaps: [sourceMap],
+ includesTooltip: entry.includesTooltip,
+ })
+ }
+ }
+ return bundles
+}
+
+async function bundleExpoConsumer(consumerRoot) {
+ const cli = resolve(consumerRoot, 'node_modules/.bin/expo')
+ const bundles = []
+ for (const platform of ['ios', 'android']) {
+ const outputRoot = resolve(consumerRoot, `dist-${platform}`)
+ await run(
+ cli,
+ [
+ 'export',
+ '--platform',
+ platform,
+ '--output-dir',
+ outputRoot,
+ '--clear',
+ '--source-maps',
+ ],
+ consumerRoot,
+ {
+ CI: 'true',
+ EXPO_NO_TELEMETRY: '1',
+ },
+ )
+ const files = await walk(outputRoot)
+ const sourceMaps = files.filter((file) => file.endsWith('.map'))
+ assert.ok(sourceMaps.length, `Expo ${platform} emitted no source map`)
+ const bundlePath = await largestBundleFile(files)
+ bundles.push({
+ label: `Packed Expo ${platform}`,
+ bundle: await readFile(bundlePath),
+ sourceMaps,
+ includesTooltip: true,
+ })
+ }
+ return bundles
+}
+
+async function largestBundleFile(files) {
+ const candidates = files.filter((file) => /\.(?:js|hbc|bundle)$/.test(file))
+ assert.ok(candidates.length, 'Expo emitted no JavaScript or Hermes bundle')
+ const measured = await Promise.all(
+ candidates.map(async (file) => ({ file, size: (await stat(file)).size })),
+ )
+ measured.sort((left, right) => right.size - left.size)
+ return measured[0].file
+}
+
+async function readSourceMapSources(sourceMaps) {
+ const sources = []
+ for (const sourceMap of sourceMaps) {
+ const parsed = JSON.parse(await readFile(sourceMap, 'utf8'))
+ sources.push(...(parsed.sources ?? []).map(normalize))
+ }
+ return sources
+}
+
+function assertPackedNativeBoundary(label, sources, includesTooltip) {
+ const requiredSources = [
+ '/@tanstack/react-native-charts/dist/index.native.js',
+ '/@tanstack/charts/dist/universal.js',
+ ]
+ if (includesTooltip) {
+ requiredSources.push(
+ '/@tanstack/react-native-charts/dist/tooltip-entry.native.js',
+ '/@tanstack/react-native-charts/dist/Tooltip.js',
+ )
+ }
+ for (const required of requiredSources) {
+ assert.ok(
+ sources.some((source) => source.includes(required)),
+ `${label} did not include packed ${required}`,
+ )
+ }
+ if (!includesTooltip) {
+ const optionalTooltipSources = sources.filter(
+ (source) =>
+ source.includes(
+ '/@tanstack/react-native-charts/dist/tooltip-entry.native.js',
+ ) || source.includes('/@tanstack/react-native-charts/dist/Tooltip.js'),
+ )
+ assert.deepEqual(
+ optionalTooltipSources,
+ [],
+ `${label} retained the optional tooltip entry`,
+ )
+ }
+ const leakedSource = sources.filter(
+ (source) =>
+ source.includes('/packages/react-native-charts/src/') ||
+ source.includes('/packages/charts-core/src/') ||
+ source.includes('/@tanstack/react-native-charts/src/') ||
+ source.includes('/@tanstack/charts/src/'),
+ )
+ assert.deepEqual(leakedSource, [], `${label} resolved workspace source`)
+ assertSinglePackedPackage(label, sources, '@tanstack/react-native-charts')
+ assertSinglePackedPackage(label, sources, '@tanstack/charts')
+ const forbidden = sources.filter((source) =>
+ forbiddenNativeSources.some((candidate) => source.includes(candidate)),
+ )
+ assert.deepEqual(forbidden, [], `${label} crossed the browser boundary`)
+}
+
+function assertSinglePackedPackage(label, sources, packageName) {
+ const marker = `/${packageName}/`
+ const packageSources = sources.filter((source) => source.includes(marker))
+ assert.ok(packageSources.length, `${label} did not include ${packageName}`)
+ assert.ok(
+ packageSources.every((source) => source.includes(`${marker}dist/`)),
+ `${label} loaded a non-dist ${packageName} module`,
+ )
+ const roots = new Set(
+ packageSources.map((source) =>
+ source.slice(0, source.indexOf(marker) + marker.length - 1),
+ ),
+ )
+ assert.equal(roots.size, 1, `${label} loaded multiple ${packageName} copies`)
+}
+
+function requiredTarball(tarballs, packageName) {
+ const tarball = tarballs.get(packageName)
+ assert.ok(tarball, `Missing packed tarball for ${packageName}`)
+ return tarball
+}
+
+async function walk(directory) {
+ const files = []
+ for (const entry of await readdir(directory, { withFileTypes: true })) {
+ const path = resolve(directory, entry.name)
+ if (entry.isDirectory()) files.push(...(await walk(path)))
+ else files.push(path)
+ }
+ return files
+}
+
+async function run(command, args, cwd, environment = {}) {
+ return execFileAsync(command, args, {
+ cwd,
+ env: { ...process.env, ...environment },
+ maxBuffer: 20 * 1024 * 1024,
+ })
+}
+
+async function runAllowFailure(command, args, cwd) {
+ try {
+ const result = await run(command, args, cwd)
+ return { status: 0, output: `${result.stdout}${result.stderr}` }
+ } catch (error) {
+ return {
+ status: error.code ?? 1,
+ output: `${error.stdout ?? ''}${error.stderr ?? ''}`,
+ }
+ }
+}
+
+function normalize(value) {
+ return value.replaceAll('\\', '/')
+}
diff --git a/scripts/release-package-config.mjs b/scripts/release-package-config.mjs
index 7010fd0b..943f42c9 100644
--- a/scripts/release-package-config.mjs
+++ b/scripts/release-package-config.mjs
@@ -12,6 +12,7 @@ export const releasePackageConfigs = [
['charts-core', '@tanstack/charts'],
['charts-scales', '@tanstack/charts-scales'],
['react-charts', '@tanstack/react-charts'],
+ ['react-native-charts', '@tanstack/react-native-charts'],
['octane-charts', '@tanstack/octane-charts'],
['preact-charts', '@tanstack/preact-charts'],
['vue-charts', '@tanstack/vue-charts'],
diff --git a/scripts/release-workflow.test.mjs b/scripts/release-workflow.test.mjs
index b04e11a1..5540ce92 100644
--- a/scripts/release-workflow.test.mjs
+++ b/scripts/release-workflow.test.mjs
@@ -32,6 +32,7 @@ describe('release workflow contract', () => {
'@tanstack/charts',
'@tanstack/charts-scales',
'@tanstack/react-charts',
+ '@tanstack/react-native-charts',
'@tanstack/octane-charts',
'@tanstack/preact-charts',
'@tanstack/vue-charts',
diff --git a/scripts/sync-release-version.mjs b/scripts/sync-release-version.mjs
index 28fe56f9..3ff9b9d7 100644
--- a/scripts/sync-release-version.mjs
+++ b/scripts/sync-release-version.mjs
@@ -9,7 +9,7 @@ export const releaseVersionSources = [
{ path: 'MARKETING.md', references: 6 },
{ path: 'docs/overview.md', references: 1 },
{ path: 'docs/installation.md', references: 1 },
- { path: 'docs/comparison.md', references: 5 },
+ { path: 'docs/comparison.md', references: 6 },
]
export function changelogVersions(source) {