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

@hydroserver/client

v1.0.1

Published

HydroServer TypeScript client

Readme

HydroServer TypeScript Client

Typed browser client for HydroServer's authentication, data-management, orchestration, file-attachment, and quality-control APIs.

Install

npm install @hydroserver/client

The client requires Node.js 20 or newer for development and packaging.

Initialize

Initialize the shared client once before using its services:

import hs, { createHydroServer } from "@hydroserver/client";

await createHydroServer({ host: "https://playground.hydroserver.org" });

const response = await hs.things.list({ page: 1, page_size: 50 });
if (response.ok) {
  console.log(response.data);
} else {
  console.error(response.message);
}

Use host: "" for same-origin requests. Applications that prefer dependency injection can instead call HydroServer.initialize({ host }) and pass the returned instance explicitly.

Services

  • Account: session, user
  • Data management: workspaces, things, datastreams, sensors, units, processingLevels, observedProperties, resultQualifiers
  • Orchestration: dataConnections, tasks, monitoringTasks, dataProductTasks, ratingCurves
  • Files and QC: thingFileAttachments, qualityControlHistories, qualityControlSessions, qualityControlOperations

QC resources are nested. For example:

const histories = await hs.qualityControlHistories.listAllItems({
  managed_datastream_id: [managedDatastreamId],
});

const sessions = await hs.qualityControlSessions.listAllItems(historyId, {
  status: "committed",
  include_ancestors: true,
});

const operations = await hs.qualityControlOperations.listAllItems(
  historyId,
  sessionId
);

See the TypeScript client how-to guide for CRUD, observations, orchestration, attachments, and complete QC history examples. The first app tutorial covers a minimal Vite setup.

Generated API contracts

This package is published from the HydroServer monorepo. Its OpenAPI types and contracts are generated from the Django API schemas; do not edit files under src/generated manually.

npm run gen exports the current backend OpenAPI schemas from django, regenerates the TypeScript types, and rebuilds the generated contract files.

npm run check:contract is the CI guard that fails when the committed client artifacts drift from the latest backend API contract.

The build bundles the public API declarations using rollup-plugin-dts. Schema types referenced by the public API are included inside the bundles; the raw generated OpenAPI declaration files are not published separately. The package exports select index.d.ts for ESM and index.d.cts for CommonJS, including TypeScript's node16, nodenext, and bundler resolution modes. Import public types from @hydroserver/client, for example:

import type { ThingContract } from '@hydroserver/client'

type ThingResponse = ThingContract.DetailResponse

npm pack and npm publish automatically build the client through prepack. Run npm test -- --run and npm run test:package before publishing client changes. The package check builds and packs the client, extracts it into an isolated consumer directory, and type-checks its declarations with library checking enabled across supported module resolution modes.