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

@sansavision/sansadb-sdk

v0.1.0

Published

SansaDB TypeScript SDK for PLP-backed apps

Readme

@sansavision/sansadb-sdk

This folder contains the publishable SansaDB-owned TypeScript SDK.

It is intentionally a facade package, not a second PLP implementation.

Design Goal

This package exists to provide:

  • SansaDB-first naming
  • SansaDB-first docs and examples
  • standalone/local defaults
  • service entrypoints for stream, vector, CDN, reactive, KV, and documents

It is expected to sit on top of Pulse's TypeScript PLP runtime rather than reimplementing transport mechanics here.

Status

What is here now:

  • config types
  • transport adapter boundary
  • service descriptors
  • a small SansaDbClient facade shape
  • a concrete Pulse interop layer
  • typed stream client support via StreamServiceClient
  • generated-client compatibility via binaryCall and streamCall
  • package build output via dist/
  • public publish metadata for npm publish

What is not here yet:

  • first-class local wrappers for every generated service binding
  • automatic reconnect policy
  • browser and node integration tests

Proposed Usage Shape

import {
  createPulseBackedClient,
} from "@sansavision/sansadb-sdk";

const client = await createPulseBackedClient(pulseSdk, {
  endpoint: "ws://127.0.0.1:4001",
  tenantId: "default",
  authToken: "root-token-or-jwt",
  autoReconnect: true,
});

const stream = client.stream();
const vector = client.vector();
const cdn = client.cdn();

For typed stream flows, the package exposes a local StreamServiceClient:

import { StreamServiceClient } from "@sansavision/sansadb-sdk";

const streamClient = client.generated(StreamServiceClient);

If you need both the SansaDB facade and the underlying Pulse connection state, use:

const { client, connection } = await createPulseBackedSession(pulseSdk, {
  endpoint: "ws://127.0.0.1:4001",
  autoReconnect: true,
});

Why This Package Exists In SansaDB

SansaDB should own its product-facing SDK surface:

  • documentation
  • examples
  • defaults
  • versioning
  • product-specific helpers

But it should not duplicate PLP transport internals that already exist in Pulse's TypeScript SDK.

File Layout

  • src/config.ts
    • facade config and defaults
  • src/transport.ts
    • transport adapter boundary
  • src/services.ts
    • service IDs and helper factories
  • src/client.ts
    • high-level SansaDB client
  • src/pulse.ts
    • Pulse interop helpers and Pulse-backed client factory
  • src/session.ts
    • Pulse session snapshot and event-binding helpers for browser code
  • src/stream.ts
    • local typed stream client and PSL encoders/decoders
  • src/idl-runtime.ts
    • minimal PSL encoder/decoder runtime used by local typed clients
  • src/index.ts
    • public exports

Preview Example

See examples/pulse-stream-preview.ts for the intended adapter usage shape.

For the first browser-oriented integration example, see examples/react-connection-preview.tsx.

Current Verification

The package is lightweight enough to verify independently:

cd sdk/sansadb-sdk
npm install
npm run typecheck
npm run build
npm pack --dry-run

Local Release Flow

From the repo root:

./scripts/publish-sdks.sh 0.1.0

That runs:

  • npm install
  • npm run typecheck
  • npm run build
  • npm pack --dry-run
  • the browser PLP example build against the package boundary

To actually publish:

./scripts/publish-sdks.sh 0.1.0 --publish

Installation

For the Pulse-backed browser and Node workflow, install the SansaDB package:

npm install @sansavision/sansadb-sdk

@sansavision/pulse-sdk is installed automatically as a package dependency. The SansaDB package re-exports PulseConnection and ships its own typed stream client so browser PLP applications can stay on the @sansavision/sansadb-sdk import surface.

Expected Integration Direction

The next implementation steps after this package baseline are:

  1. add first-class local wrappers for vector, CDN, and reactive clients
  2. expand browser examples to depend on the published package instead of local file paths
  3. add stronger browser and node integration tests