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

qcobjects-cli

v2.5.158

Published

qcobjects cli command line tool

Readme

logo

Learn more about QCObjects framework in https://qcobjects.dev

To start, use:

> su - qcobjects

and go to the path ~/projects/mynewapp

To create a new progressive web app type:

> qcobjects create mynewapp --pwa

To create an accelerated mobile page type:

> qcobjects create mynewapp --amp

The QCObjects HTTP2 Server Settings file is in:

/etc/qcobjects/config.json

To check the status of the service:

> service qcobjects status

To start|stop|prestart the service:

> service qcobjects start
> service qcobjects stop
> service qcobjects restart

Synced Semantic Versioning

Version management is handled through the VERSION file at the project root. Commands read from and write to this file, and can optionally sync changes to package.json and git.

v-patch [filename]

Bumps the patch number (e.g., 1.2.31.2.4). Default filename is VERSION.

| Option | Alias | Description | |--------|-------|-------------| | --sync-git | --git | Commit changes, tag, and push to git | | --sync-npm | --npm | Also update package.json via npm version (implies --git) | | --commit-msg [message] | -m | Custom commit message |

# Just bump the VERSION file
qcobjects v-patch

# Bump, commit, tag, and push
qcobjects v-patch --git -m "fix: resolve timeout issue"

# Bump VERSION + package.json, commit, tag, push
qcobjects v-patch --git --npm

v-minor [filename]

Bumps the minor number (e.g., 1.2.31.3.0). Supports the same options as v-patch.

qcobjects v-minor --git -m "feat: add collaboration endpoints"

v-major [filename]

Bumps the major number (e.g., 1.2.32.0.0). Supports the same options as v-patch.

qcobjects v-major --git --npm -m "breaking: migrate to new API"

v-sync [filename]

Reads the current version from git describe (latest tag), writes it to the VERSION file, updates package.json with npm version, commits, tags, and pushes.

| Option | Description | |--------|-------------| | -m, --commit-msg [message] | Commit message (default: Synced Version v<version>) |

qcobjects v-sync -m "sync after release merge"

v-changelog

Generates a changelog from annotated git tags, grouped by minor version, printed to stdout.

qcobjects v-changelog > CHANGELOG.md

Typical workflow

# 1. Bump the patch version and push everything
qcobjects v-patch --git --npm -m "your message"

# 2. CI publishes the new version to npm

# 3. Generate changelog for release notes
qcobjects v-changelog > CHANGELOG.md

CI Pipeline Considerations

When using v-patch --git --npm, the command calls npm version internally. This triggers the preversion and postversion scripts in your package.json:

  • preversion — runs before the version bump (e.g., tests)
  • postversion — runs after the bump (e.g., git push && git push --tags)

After npm version finishes, syncGit creates a second commit for the VERSION file and calls git push && git push --tags again. This means the version tag is pushed twice, which can trigger duplicate CI pipeline runs.

Recommendations by setup

| Setup | Recommendation | |-------|---------------| | GitHub Actions (tag-triggered publish) | Set postversion to only push the branch: "postversion": "git push" | | GitLab CI / other CI | Keep "postversion": "git push && git push --tags" — duplicate triggers are harmless | | Manual publish only | Use --git without --npm to skip npm version entirely (no lifecycle scripts run) |

Avoid duplicates with v-patch --git (no --npm)

Without --npm, npm version is never called. Only the VERSION file is committed, a single tag is created, and a single git push && git push --tags runs. No duplicate tag push, no duplicate CI.

Example: qcobjects-cli

This repo uses GitHub Actions and configures postversion to push the branch only:

"postversion": "git push"

The tag is still pushed once by syncGit after the VERSION file is committed.


   .d88888b.  .d8888b.  .d88888b. 888       d8b                888
  d88P" "Y88bd88P  Y88bd88P" "Y88b888       Y8P                888
  888     888888    888888     888888                          888
  888     888888       888     88888888b.  8888 .d88b.  .d8888b888888.d8888b
  888     888888       888     888888 "88b "888d8P  Y8bd88P"   888   88K
  888 Y8b 888888    888888     888888  888  88888888888888     888   "Y8888b.
  Y88b.Y8b88PY88b  d88PY88b. .d88P888 d88P  888Y8b.    Y88b.   Y88b.      X88
   "Y888888"  "Y8888P"  "Y88888P" 88888P"   888 "Y8888  "Y8888P "Y888 88888P'
         Y8b                                888
                                           d88P
                                         888P"

  Usage: qcobjects [options] [command]

  Options:
    -V, --version                output the version number
    -h, --help                   output usage information

  Commands:
    create [options] <appname>   Creates an app with <appname>
    publish [options] <appname>  Publishes an app with <appname>
    generate-sw <appname>        Generates the service worker  <appname>
    launch <appname>             Launches the application

  Use:
    $ qcobjects-cli [command] --help
    For detailed information of a command