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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@flowhash/pass

v0.1.0

Published

Unified Wallet-Pass SDK for Real-World Credentials

Readme

🎟️ Flowhash Pass

Unified Wallet-Pass SDK for Real-World Credentials

Flowhash Pass is a TypeScript SDK for generating, signing, and managing verifiable passes on Apple Wallet and Google Wallet. Built on @flowhash/core, it bridges cryptographic truth and real-world credentials — enabling secure, interoperable workflows for logistics, healthcare, and beyond.

✨ Overview

Flowhash Pass provides a unified abstraction layer for issuing and updating wallet passes across multiple ecosystems. It standardizes claim flows (like PES → TO) and status pipelines (ISSUED → PRESENCE → OPS → EXITED) while maintaining verifiable hashes, signatures, and anchor integrity via Flowhash Core.

🚀 Quickstart

npm install @flowhash/pass @flowhash/core

import { createParentSchedule, createChildTicket, getPkpassBuffer } from '@flowhash/pass'

// 1️⃣ Create a parent PES schedule
const pes = await createParentSchedule({
  profile: 'logistics',
  programName: 'Morning Yard Veracruz',
  site: 'Patio Gate 3'
})

// 2️⃣ Claim a child Transport Order
const to = await createChildTicket({
  parentId: pes.id,
  plate: 'ABC123A',
  carrier: 'Transportes Golfo'
})

// 3️⃣ Generate Apple Wallet pass
const buf = await getPkpassBuffer('child', to)
await fs.promises.writeFile('ticket.pkpass', buf)

🧠 Architecture

flowhash/pass
├── adapters/      # Apple + Google Wallet adapters
├── api/           # Unified issuance/update API
├── profiles/      # Domain-specific field maps
├── templates/     # JSON templates for passes
└── types.ts       # Shared types and validation

Key Components

Module	Description
adapters/apple.ts	Builds and signs .pkpass files using passkit-generator.
adapters/google.ts	Creates Google Wallet class/object JSON payloads.
api/unified.ts	Unified functions: createParentSchedule, createChildTicket, updatePassStatus.
profiles/	Domain-specific mappings (logistics, healthcare, etc.).
templates/	JSON templates for field mapping and layout.

🧩 Profiles

Logistics (default)

Entity Description Example Parent (PES) Program Entry Schedule Gate window, site, available slots Child (TO) Transport Order Plate, carrier, client, status Statuses ISSUED → PRESENCE → SCALE → OPS → EXITED

Healthcare (reference)

Entity Description Example Parent Appointment Batch Doctor, location, date Child Patient Visit Ticket Patient, procedure, status Statuses SCHEDULED → CHECKIN → PROCEDURE → DISCHARGED

Switch profiles dynamically:

await createChildTicket({ profile: 'healthcare', ... })

🔐 Integration with Flowhash Core

Flowhash Pass automatically uses: • hashEvent() for deterministic hashes • signCredential() for ECDSA signatures • dailyMerkle() for anchoring batches

This ensures every pass is cryptographically verifiable and compatible with Flowhash’s event audit trail.

🧪 Testing

npm run test

Tests include: • Apple .pkpass field mapping • Google Wallet JSON validity • Cross-profile field validation • Core integration (hash + sign + verify)

⚙️ Environment Variables (Apple Wallet)

APPLE_TEAM_ID=ABCD1234
APPLE_PASS_TYPE_ID=pass.com.flowhash.logistics
APPLE_CERT_PATH=./certs/pass.p12
APPLE_CERT_PASSWORD=yourpassword
APPLE_WWDR_PATH=./certs/wwdr.pem

For Google Wallet, include:

GOOGLE_ISSUER_ID=issuer-id
GOOGLE_SA_JSON=./google/credentials.json

🧾 License

Apache License 2.0 © 2025 Flowhash — open and extensible.

🤝 Contributing

1.	Fork the repo
2.	Run npm install
3.	Add or improve a profile under src/profiles/
4.	Write tests in tests/
5.	Submit a PR using conventional commits

🧭 Part of the Flowhash Ecosystem

Repo Purpose

flowhash/core	Verifiable event SDK — hashing, signing, Merkle trees
flowhash/pass	Wallet-pass abstraction over Core (this repo)
flowhash/wallet	Reference logistics PWA & API
flowhash/id	Hosted identity & orchestration layer (SaaS)

“Flowhash Pass connects cryptographic truth with human experience — turning every credential into a verifiable story.”

Reflection: evidence ✓ logic consistent brevity optimized