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

@freighttech/shipment-tracking

v0.7.2

Published

Carrier shipment tracking for the Open Mercato platform — DCSA carrier adapters (Maersk, MSC, CMA CGM, Hapag-Lloyd, ZIM, COSCO, Evergreen), a ShipsGo aggregator fallback, a Journey Timeline, and an optional live vessel/POI map.

Readme

@freighttech/shipment-tracking

Carrier shipment tracking for the Open Mercato platform — DCSA carrier adapters (Maersk, MSC, CMA CGM, Hapag-Lloyd, ZIM, COSCO, Evergreen), a ShipsGo aggregator fallback, a Journey Timeline, and an optional live vessel/POI map.

Most integration credentials are configured in the UI (Backend → Śledzenie przesyłek → Autoryzacja śledzenia): per-carrier auth, the ShipsGo token, and the BIC facility API. The settings below are deployment/environment config, supplied as environment variables.

Environment variables

Vessel map (ships map / vessel trace / POI overlay)

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | NEXT_PUBLIC_VESSEL_API_URL | For the vessel map only | none | Base URL of the vessel-tracking API that powers fetchVessel / fetchVesselTrace / fetchPois (the ships-map widget, vessel trace, and POI overlay). It is a NEXT_PUBLIC_* value inlined into the client bundle at build time. When unset, those map features throw "Vessel API is not configured" and are effectively disabled; the rest of the module works normally. |

POI proximity events (optional AIS → Journey Timeline crossings)

Consumed by the separate long-running worker mercato shipment_tracking poi:worker, which subscribes to an AIS proximity event stream over NATS JetStream. If you don't run that worker, none of these are needed. Changes take effect when the worker (re)starts.

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | POI_NATS_URL | To enable POI ingestion | none | NATS server URL (e.g. nats://localhost:4222). POI ingestion is enabled only when this is set — unset means the worker skips POI subscription. | | POI_NATS_STREAM | No | AIS_STREAM | JetStream stream name to consume from. | | POI_NATS_SUBJECT | No | ais.ship.proximity.events | Subject filter for POI proximity events. | | POI_NATS_INSTANCE_ID | No | derived from JWT_SECRET (else random) | Unique per-installation id. The durable consumer is shipment-tracking-poi-{instanceId}, so multiple self-hosted instances each receive all messages independently. | | JWT_SECRET | No (platform var) | none | Reused only to derive a stable POI_NATS_INSTANCE_ID when that isn't set explicitly. Without either, a random (non-stable) instance id is used and a warning is logged. |

Run the worker with:

POI_NATS_URL=nats://localhost:4222 yarn mercato shipment_tracking poi:worker

ShipsGo (aggregator fallback)

The ShipsGo token and base URL are normally configured in the UI. As a fallback, SHIPSGO_API_TOKEN and SHIPSGO_BASE_URL (default https://api.shipsgo.com/v2) are read from the environment when no UI config is present.

License

MIT. See LICENSE.