npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ts-health

v0.1.16

Published

TypeScript library for health, fitness & smartwatch data. Oura Ring, WHOOP, Apple Health, Fitbit, Garmin, Polar, Suunto, Coros, Wahoo — with FIT parsing, training metrics, and more.

Readme

ts-health

Typed health, fitness, and smartwatch data for training applications. The package combines health-platform drivers with the device, FIT, export, and analysis capabilities provided by ts-watches.

Install

bun add ts-health

Health platforms

import { createAppleHealthDriver, createOuraDriver } from 'ts-health'

const apple = createAppleHealthDriver('/path/to/apple-health-export.xml')
const workouts = await apple.getWorkouts()

const oura = createOuraDriver('access-token')
const readiness = await oura.getReadiness({ startDate: '2026-08-01' })

Watches and activity files

ts-health re-exports the watch adapters and FIT parser from ts-watches:

import { createCorosDriver, FitDecoder, FitParser } from 'ts-health'

const coros = createCorosDriver()
const devices = await coros.detectDevices()

const parsed = new FitParser(await Bun.file('activity.fit').arrayBuffer()).parse()
const activity = new FitDecoder(parsed).decodeActivity()

See the repository documentation for all providers, exports, and analysis tools.

License

MIT

LARQ Bottle PureVis 2 hydration

Connect with the email and password used in the LARQ companion app. This unofficial, read-only integration uses the same Firebase account backend as OpenLARQ. It works independently of Apple Health, so an Android user can also connect. The LARQ app must sync the bottle before new intake appears in the cloud. Apple/Google social sign-in is not supported by password authentication.

import { createLarqDriver } from 'ts-health'

const bottle = createLarqDriver({
  email: process.env.LARQ_EMAIL!,
  password: process.env.LARQ_PASSWORD!,
  timezone: 'America/Los_Angeles',
})
const days = await bottle.getDailyHydration() // volumeMl, samples, day

As an alternative, enable water sharing in the LARQ app, export Apple Health's export.xml, and call createLarqDriver('/path/to/export.xml'). Only dietary-water records whose source name is LARQ are included. Upload another export to get new readings. createAppleHealthDriver(path) also supports water from all apps. Both drivers expose getHydration() and getDailyHydration() and accept an inclusive { startDate, endDate } range. Water is canonical millilitres; days preserve the export's local dates, or use the configured zone for cloud data.

Cloud events retain their Firebase identity. Deleted events, coffee, tea and invalid volumes are excluded. Unknown export units are not guessed. Authentication and permission errors are reported without credentials or provider response bodies. The unofficial API can change; real-account compatibility must be verified with the user's LARQ account. Direct Bluetooth hydration decoding is not implemented.

Protocol references: OpenLARQ, LARQ Apple Health compatibility.