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

@reflow-works/checkout

v0.1.0-beta.1

Published

Typed Reflow Works shopper checkout client for JavaScript, TypeScript and Node.

Readme

@reflow-works/checkout

Reflow Works shopper SDK for TypeScript, JavaScript, Node and browser integrations. Beta: provider sandbox only. Live custom Shopify purchases remain gated. This package does not bypass merchant account enablement or Shopify approval.

npm install @reflow-works/checkout@beta
import { ReflowCheckout, ReflowIdentity } from "@reflow-works/checkout";

const identity = new ReflowIdentity("YOUR_PUBLIC_STORE_KEY");
const providers = await identity.discover();
// Render the configured provider's CAPTCHA / Firebase verification first.
const challenge = await identity.startOtp(
  "merchant-otp",
  "+919000000000",
  captchaToken,
);
const session = await identity.verifyOtp({ ...challenge, code: enteredCode });
const checkout = new ReflowCheckout({
  storeId: session.context.storeId,
  environment: session.context.environment,
  getAccessToken: () => session.accessToken,
});
const cart = await checkout.create({
  items: [{ variantId: "merchant-variant-id", quantity: 1 }],
  idempotencyKey: crypto.randomUUID(),
});
const methods = await checkout.methods(cart.id);
// Show enabled methods, with no payment-gateway selector.
const paymentKey = crypto.randomUUID(); // Retain this key if the outcome is uncertain.
await checkout.pay(cart.id, {
  method: "upi",
  details: { upiFlow: "qr" },
  idempotencyKey: paymentKey,
});
const result = await checkout.waitForPayment(cart.id);
// Only result.session.status === 'completed' means a completed order.

The token must be a Reflow shopper access token, obtained after verification. Merchant keys, Firebase ID tokens and gateway credentials are not checkout bearer tokens. startExternal / verifyExternal exchanges a merchant-configured Firebase or Google proof for a shopper session. The merchant must configure permitted origins and enable SDK access in its plan.

Use one client per authenticated shopper request in a Hydrogen server loader/action. Never place a merchant key in a browser bundle or share a mutable client between users. Browser integrations need an operator-approved CORS origin or a merchant-owned same-origin backend. The SDK does not persist tokens; use short-lived memory or platform secure storage. Clear user state on logout.

All operations have bounded network timeouts. Mutations are never automatically retried; retain and reuse the same idempotency key after a lost response. Monitoring is bounded and abortable. PAYMENT_UNRESOLVED, order_pending, QR expiry or an app return are not permission for a second charge. Resume payment() / waitForPayment() instead.

configuration() returns the API/checkout version, merchant feature grants and theme configuration. Sandbox/live is explicit and checked against the authenticated store. New SDK checkout creation requires its feature grant; existing payment recovery remains accessible if access is later removed.

No card-number or CVV contract is exposed. Render secure provider fields using supported merchant integrations, or use the Reflow checkout interface. Never collect card details in ordinary merchant inputs or send them through this client.

Validation: typed compilation, protocol/uncertain-payment tests and clean tarball consumer installation. Actual gateway accounts, Shopify canonical purchases and physical device UAT are separate launch gates. Support: [email protected].