Skip to main content

Packages

SunGlasses is distributed as a TypeScript monorepo. Install only the packages you need for your platform and output destination.

Package matrix​

PackagePlatformDescription
@drakkar.software/sunglasses-coreAnyPlatform-agnostic event engine + all interfaces
@drakkar.software/sunglasses-reactWebReact context provider + hooks
@drakkar.software/sunglasses-react-nativeRN / ExpoReact Native provider + screen tracking hooks
@drakkar.software/sunglasses-storage-localstorageWeblocalStorage persistence adapter
@drakkar.software/sunglasses-storage-async-storageReact NativeAsyncStorage persistence adapter
@drakkar.software/sunglasses-storage-httpAnyBatched HTTP push output adapter
@drakkar.software/sunglasses-adapter-starfishAnyPush events to a Starfish events collection (Parquet server-side)

Common install recipes​

Web — local persistence + HTTP push​

pnpm add @drakkar.software/sunglasses-core \
@drakkar.software/sunglasses-react \
@drakkar.software/sunglasses-storage-localstorage \
@drakkar.software/sunglasses-storage-http

React Native / Expo — local persistence + HTTP push​

pnpm add @drakkar.software/sunglasses-core \
@drakkar.software/sunglasses-react-native \
@drakkar.software/sunglasses-storage-async-storage \
@drakkar.software/sunglasses-storage-http \
@react-native-async-storage/async-storage \
react-native-get-random-values

Starfish output​

pnpm add @drakkar.software/sunglasses-core \
@drakkar.software/sunglasses-adapter-starfish

You also need @drakkar.software/starfish-client in your app to construct the push client. See Starfish adapter.

Development only (console logging)​

No extra packages — use an inline adapter. See Development adapter.

Dependency graph​

@drakkar.software/sunglasses-core (no runtime deps)
↑
├── sunglasses-react
├── sunglasses-react-native
├── sunglasses-storage-localstorage
├── sunglasses-storage-async-storage
├── sunglasses-storage-http
└── sunglasses-adapter-starfish

All framework and adapter packages depend on sunglasses-core. You always need sunglasses-core plus one storage adapter and at least one output adapter (or an inline dev adapter).