Skip to content

Installation ​

Every package is ESM only, has no side effects on import, and ships its own type declarations. The core has no dependencies.

sh
pnpm add @priemskiyyy/flare

Packages ​

PackageWhat it isNeeds
@priemskiyyy/flareThe runtime, plus ./mock and ./testingnothing, and vitest for ./testing
@priemskiyyy/flare-reactProvider, status hooks and an error boundaryreact 19.2 or newer
@priemskiyyy/flare-vueProvider, status composables and an error boundaryvue 3.5 or newer
@priemskiyyy/flare-solidProvider, status primitives and an error boundarysolid-js 1.9 or newer
@priemskiyyy/flare-svelteProvider, status utilities and an error boundarysvelte 5.7 or newer
@priemskiyyy/flare-devtoolsThe in-page inspector, plus wrappers under ./react, ./vue, ./solid and ./sveltenothing, or the binding of the wrapper you use. The Svelte wrapper needs svelte 5.29
@priemskiyyy/flare-consolePrints reports, for developmentnothing
@priemskiyyy/flare-httpSends reports through your own client to your backendnothing
@priemskiyyy/flare-sentrySentry, for the browser and React Native@sentry/browser 8 to 10, or @sentry/react-native 6 to 8
@priemskiyyy/flare-bugsnagBugsnag, for the browser and React Native@bugsnag/js or @bugsnag/react-native 7.20 to 8
@priemskiyyy/flare-crashlyticsFirebase Crashlytics, for React Native@react-native-firebase/crashlytics 22 to 26
@priemskiyyy/flare-posthogPostHog error tracking, in the browserposthog-js 1.434 or newer within 1.x
@priemskiyyy/flare-posthog-react-nativePostHog error tracking, on React Nativeposthog-react-native 4.75 or newer within 4.x
@priemskiyyy/flare-datadogDatadog RUM, in the browser@datadog/browser-rum 7
@priemskiyyy/flare-datadog-react-nativeDatadog RUM, on React Native@datadog/mobile-react-native 3
@priemskiyyy/flare-datadog-logsDatadog Logs, in the browser, messages included@datadog/browser-logs 7
@priemskiyyy/flare-opentelemetryOpenTelemetry log records, to any OTLP backend@opentelemetry/api-logs 0.200 or newer within 0.x
@priemskiyyy/flare-traceTurns selected Trace events into breadcrumbsnothing

Every package that builds on the core declares it as a peer dependency, so an application always has exactly one copy of it.

Provider SDKs are yours ​

An adapter never imports its provider SDK. You install the SDK your application already uses and pass it in:

ts
import { sentry } from "@priemskiyyy/flare-sentry";
import * as Sentry from "@sentry/browser";

const destination = sentry({ sdk: Sentry });

That is why the provider SDKs are optional peer dependencies, and why installing @priemskiyyy/flare-sentry in a web application can never bring in a React Native package.

Runtime requirements ​

The packages target ES2022 and use no Node-only API, so they load in browsers, in React Native with Hermes, in Node and in edge runtimes. Continuous integration runs the test suite on Node 22 and Node 24. Report ids use crypto.randomUUID where it exists and fall back to Math.random where it does not, as in Hermes: an id is an idempotency key, not a secret.

Typed schemas ​

Typing your tags, contexts and breadcrumbs needs a validator that implements Standard Schema, such as Zod, Valibot or ArkType. The core depends on none of them. See tags, contexts, breadcrumbs.

Released under the MIT License.