pushapp-cli 1.4.1

Ultra fast dependencies updater for Node.js
# 🚀 Pushapp CLI 🏋🏻‍♂️

⚡ Ultra fast dependencies updater for Node.js written in Rust! ⚡

[![Latest Version]][crates.io] ![Crates.io Downloads](https://img.shields.io/crates/d/pushapp-cli) ![GitHub Repo stars](https://img.shields.io/github/stars/flaviodelgrosso/pushapp?style=flat)

[Latest Version]: https://img.shields.io/crates/v/pushapp-cli.svg
[crates.io]: https://crates.io/crates/pushapp-cli

![image](pushapp-cli.gif)

## Features

- [x] Ultra fast
- [x] Support for npm, pnpm, yarn and bun
- [x] Interactive mode
- [x] Autocomplete
- [x] Colored updatable packages based on semver diff
- [x] CLI utility flags
- [x] Check global packages

## Roadmap

- [ ] Monorepo support ⚠️
- [ ] Single packages update with filters ⚠️
- [ ] Non-interactive mode with different display formatting and infos (publish time, semver grouping ) ⚠️
- [ ] Tarball and git url dependencies support ⚠️
- [ ] Private packages support ⚠️

## Installation

```bash
cargo install pushapp-cli
```

## Usage

Run the following command in your Node.js project directory:

```bash
pushapp
```

## Flag options

| Option                              | Description                                                                                        |
|-------------------------------------|----------------------------------------------------------------------------------------------------|
| `-t`, `--target`                    | Determines the version to upgrade to                                                               |
| `-g`, `--global`                    | Check global packages                                                                              |
| `-D`, `--development`               | Check only `devDependencies`                                                                       |
| `-P`, `--production`                | Check only `dependencies and optionalDependencies`                                                 |
| `-h`, `--help`                      | Display help information                                                                           |
| `-V`, `--version`                   | Display version information                                                                        |

## How dependencies updates are determined

- Direct dependencies are updated to the latest stable version:
  - `1.0.0``1.2.0`
- Prerelease versions are ignored by default.
  - Use `--target pre` to include the highest pre-release versions (e.g. `alpha`, `beta`, `rc`)
- Choose what level to upgrade to:
  - With `--target semver`, update according to your specified [semver]https://semver.org/ version ranges:
    - `^1.1.0``^1.9.99`
  - With `--target major`, strictly update the major version:
    - `1.0.0``2.0.0`
  - With `--target minor`, strictly update the patch and minor versions (including major version zero):
    - `0.1.0``0.2.1`
  - With `--target patch`, strictly update the patch version (including major version zero):
    - `0.1.0``0.1.2`
  - With `--target [tag]`, update to the version published on the specified tag:
    - Example: `0.1.0` -> `0.1.1-canary.1`
    - The available target tags are `next`, `canary`, `rc`, `beta`, `alpha`. The default is `latest`.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Author

Flavio Delgrosso