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

@jobmate/commute

v0.2.0

Published

Read-only lookups over precomputed road and public-transport travel times between Swiss localities.

Readme

@jobmate/commute

A small, read-only lookup package for precomputed Swiss travel times.

See CHANGELOG.md for release notes.

npm install @jobmate/commute

The package is ESM-only and requires Node.js 20 or newer. It has no runtime dependencies. Its installed size is about 34 MB, almost all of which is the two embedded travel-time matrices.

It loads one ordered locality array and two dense UInt8 matrices:

  • road, generated from OpenStreetMap with OSRM;
  • public_transport, generated from Swiss GTFS data with RAPTOR.

The package does not perform routing. Matrix values are whole minutes from 0 through 240; 255 means that the destination is unavailable within four hours.

import { loadCommuteRuntime } from '@jobmate/commute/node';

const runtime = await loadCommuteRuntime();
const zurich = runtime.resolve({ postalCode: '8001', city: 'Zürich' });
const bern = runtime.resolve({ postalCode: '3011', city: 'Bern' });

if (zurich && bern) {
  console.log(zurich.publicTransportStationName); // e.g. "Zürich, Paradeplatz"
  const roadMinutes = runtime.travelTime(zurich, bern, 'road');
  const publicTransportMinutes = runtime.travelTime(
    zurich,
    bern,
    'public_transport',
  );
}

runtime.resolve(...) also accepts a canonical locality ID. The viewer uses runtime.reachableLocalities(...) to scan one matrix row for destinations within a supplied time limit.

Locality.publicTransportStationName is the exact name of the physical station or standalone stop selected when compiling the public-transport matrix. It is available on runtime.localities and runtime.resolve(...); it does not describe road routing or individual journey platforms. The field is absent when no active station was available for selection.

Names are stored directly in data/localities.json, alongside each locality's ID and coordinates. Runtime loading reads this array and the two matrices; it does not read the provenance manifests.

The values are estimates for a dated routing scenario, not live traffic or live timetable results. Inspect the packaged manifests under data/ when the snapshot date matters.

Data sources and attribution

  • Road travel times are derived from OpenStreetMap data: © OpenStreetMap contributors, available under the Open Database License (ODbL) 1.0.
  • Public-transport travel times are based on the Swiss GTFS feed obtained from opentransportdata.swiss.
  • Locality names and coordinates come from the official directory published by Bundesamt für Landestopografie swisstopo.

See DATA_SOURCES.md for source links, applicable terms, and redistribution details. The original package software is available under the MIT License. Copies or substantial portions must retain Jobmate's copyright and license notice.