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

stream-connect-sdk

v0.8.1

Published

A JavaScript SDK implementing TPAStream's Connect Platform

Readme

'Tpastream Logo'

Stream Connect JavaScript SDK

Version

0.8.1

Handle expired connectAccessToken cleanly. Long-lived pages no longer surface the misleading 422 when the ~60-minute server-side TTL elapses; integrations opt into transparent refresh via a new server-side endpoint hook, or a clean expiry callback as a fallback. See the Refreshing an expired token integration guide.

0.8.0

Polished default appearance, React 19 + TypeScript, real-time credential-validation streaming, and a substantial dependency cleanup. The init() contract is backward-compatible: every option supported in 0.7.7 keeps working, including the custom render props (renderChoosePayer, renderPayerForm, renderEndWidget).

Philosophy

This SDK embeds the EasyEnrollment platform into the host application's own pages. From 0.8.0 onward, the SDK ships with a polished default appearance so it looks good out of the box on any host page, with no required CSS work. Branding is configurable via theme.primaryColor, and the existing custom render props remain available for integrators who want full control over a particular step.

Change Log

Latest highlights below. The full per-version changelog lives in CHANGELOG.md.

0.8.1 highlights

  • Handle expired connectAccessToken (the ~60-minute server-side TTL) without the misleading 422. Opt in to transparent recovery by wiring connectAccessTokenRefreshFn against a server-side refresh endpoint (Flask + Express snippets in docs), or use the onConnectAccessTokenExpired callback (and tpastream-connect-token-expired window event) to render a "session expired" UI as a fallback. Parallel-request stampede guarded; notifications coalesced to one per expiry cycle. Integrations that wire nothing see a cleaner error message but still need a page reload to recover.

0.8.0 highlights

  • Polished default appearance; no host-page CSS required.
  • theme.primaryColor init option recolors buttons, links, focus rings, and progress bars.
  • React 19, full TypeScript port; substantial dependency cleanup (Bootstrap, jQuery, FontAwesome, react-jsonschema-form, react-popup, react-select, query-string and others removed).
  • Non-blocking credential validation: SSE-driven progress in a hero element + corner panel, parallel validations, inline 2FA, no modal/full-screen takeover.
  • enableInterop -> enablePatientAccessAPI rename (legacy alias kept indefinitely).
  • realtimeTimeout and maxRetries accepted but @deprecated no-ops (knobs for the deleted polling loop).
  • fixCredentials accepted but @deprecated and ignored; member-portal mode is derived from connectAccessToken presence.
  • Backward-compatible with 0.7.7 at the init() call site. See docs/migration-0.7-to-0.8.md for the upgrade story.

Example Page

Here!

Package

Here!

Additional Documentation

Start with docs/ for a full table of contents. Common entry points:

The separate React Native hook package ([email protected]) is soft-deprecated in favor of embedding the main SDK in a WebView. The published 0.6.2 tarball on npm keeps working for existing integrations; we're not republishing because the hook's source imports from assets/shared/ which the 0.8 rewrite deleted, and the right path for new integrations is the WebView pattern anyway. See sdk-hook/docs/README.md for the deprecation notice and recommended pattern; Quickstart > Mobile has end-to-end examples.

Development Commands

npm install                # install dependencies
npm run build              # build sdk.js (production bundle)
npm run format             # biome check --write across assets/
npm test                   # lint + typecheck (runs both below)
npm run test:lint          # biome check assets/
npm run test:types         # tsc --noEmit

Bump the version in package.json with each release and update CHANGELOG.md.

Local sandbox

A dev-only /sdk-test route is wired into the stream webapp for iterating on the SDK against a real backend. It mints a fresh connect access token server-side per request and embeds the SDK with a known-good fixture. See stream/views.py::sdk_test in the stream repo for the implementation, and stream/static/js/sdk-test.js for the bundled SDK artifact it serves.