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

@jointhedots/gear

v1.1.16

Published

This package exposes the CLI binary `jointhedots-gear` (see `package.json` `bin`).

Downloads

732

Readme

jointhedots-gear CLI

This package exposes the CLI binary jointhedots-gear (see package.json bin).

The CLI entrypoint is implemented in src/cli.ts and registers these commands:

  • init
  • make
  • serve
  • publish
  • run

If a command is invalid, the CLI fails and shows help (showHelpOnFail(true) + .help()).

Usage

jointhedots-gear <command> [options]

Commands

init

Initialize VS Code JSON schema settings.

Behavior implemented in src/commands/init.ts:

  • Reads .vscode/settings.json
  • Writes/overrides json.schemas with:
    • application.* mappings to ./node_modules/@jointhedots/gear/schemas/application.schema.json
    • component.* mappings to ./node_modules/@jointhedots/gear/schemas/component.schema.json
    • declaration.* mappings to ./node_modules/@jointhedots/gear/schemas/declaration.schema.json

declaration.* files are consumed by workspace discovery/build logic (src/model/helpers/discover-workspace.ts) and support .json, .yaml, .yml, .toml formats (src/model/helpers/config-loader.ts).

Arguments: none.

make

Build distributable artifacts (apps, libs, bundles).

Options implemented in src/commands/make.ts:

  • --apps <csv>: app names list, comma-separated (default: "")
  • --libs <csv>: library names list, comma-separated (default: "")
  • --bundles <csv>: bundle names list, comma-separated (default: "")
  • --buns <csv>: alias for --bundles
  • --watch: rebuild on changes (default: false)
  • --devmode: development mode (default: false)
  • --clean: clean output before build (default: false)
  • --pack: request tarball packaging for libraries
  • --versioned <value>: output version (default: "*")
    • when "*", version is resolved from nearest package.json with non-0.0.0 version
  • --ws <path>: workspace directory (default: ".")
  • --dist <path>: output directory root (default: "./dist")

Selection behavior:

  • --libs "*" builds all libraries in workspace
  • --bundles "*" builds all bundles in workspace
  • --apps expects explicit CSV names (no * branch implemented)

serve

Continuously build one application and optionally start an HTTP server.

Options implemented in src/commands/serve.ts:

  • --app <name>: required application name
  • --devmode: development mode (default: false)
  • --port <number>: server port (default: 3000)
  • --versioned <value>: output version (default: "*")
    • when "*", version is resolved from nearest package.json with non-0.0.0 version
  • --ws <path>: workspace directory (default: ".")
  • --dist <path>: output directory root (default: "./dist")

Server behavior (when --port is truthy):

  • serves output files
  • exposes /esbuild endpoint for build change notifications
  • sets Access-Control-Allow-* headers to *
  • logs http://localhost:<port>

publish

Build and publish an application to AWS S3.

Options implemented in src/commands/publish.ts:

  • --app <name>: required application name
  • --bucket <name>: required S3 bucket
  • --region <name>: AWS region (default: "eu-north-1")
  • --dist <path>: output directory root (default: "./dist")

Implementation notes from src/publish/publish_aws_s3.ts:

  • builds app with version marker "aws_s3"
  • uploads files with ACL: "public-read"
  • sets ContentType from detected MIME type

run

Run a Node entrypoint with file watching and restart logic.

Options implemented in src/commands/run.ts:

  • --dir <path>: required directory to watch
  • --entry <path>: required program entry path (resolved against --dir)
  • --inspect <port>: enable Node inspector on given port
  • --break: start inspector in break mode (or use Backspace key for break-mode restart)
  • -- <args...>: pass remaining arguments to the executed entry program

Runtime behavior:

  • watches --dir recursively
  • on file changes, kills and restarts the child process
  • child process is started as:
    • node --require source-map-support/register --require tsconfig-paths/register --enable-source-maps <entry> ...
  • keyboard controls:
    • Enter: restart normally when process is not running
    • Backspace: restart in break mode when process is not running
    • Ctrl+C: exit monitor

Environment variables

Only one environment variable is explicitly read in the TypeScript source relevant to CLI build flow:

  • ESBUILD_LOG_LEVEL
    • used in src/builder/esbuild-plugins.ts
    • controls esbuild logLevel
    • default is "silent" when not set

process.env.NODE_ENV is injected by build code as a compile-time define ("development" / "production") in src/builder/esbuild-plugins.ts; this value is set by CLI build mode logic, not read from shell env by this tool.