{"_id":"@a_jackie_z/packages-updater","_rev":"4-8fb90b632fbbf33b6de8ee69fd632963","name":"@a_jackie_z/packages-updater","dist-tags":{"latest":"1.1.3"},"versions":{"1.1.0":{"name":"@a_jackie_z/packages-updater","version":"1.1.0","keywords":["npm","package","updater","dependencies","automation","cli","publish","monorepo"],"author":{"name":"Sang Lu","email":"connect.with.sang@gmail.com"},"license":"MIT","_id":"@a_jackie_z/packages-updater@1.1.0","maintainers":[{"name":"sanglu","email":"connect.with.sang@gmail.com"}],"homepage":"https://github.com/a-jackie-z/packages-updater#readme","bugs":{"url":"https://github.com/a-jackie-z/packages-updater/issues"},"bin":{"packages-updater":"dist/cli.js"},"dist":{"shasum":"95c0f290c6fe4f4b5bfdaa5074912b6bdffc9104","tarball":"https://registry.npmjs.org/@a_jackie_z/packages-updater/-/packages-updater-1.1.0.tgz","fileCount":6,"integrity":"sha512-MHyxdZ+pzNYuYpVWYVlGSZfwrH/xvR7QXjiW6owEH283Cx2rFWUljkgBC5usuciLS5jKPIz2JfpRxjT6MoK+Jg==","signatures":[{"sig":"MEYCIQDZhMZH46x1BLVnBZiahM55u5dQNzcO2cPPX8Vk9jjcvQIhANN0ir9oSKRwlAJ4zvFJIE+2Vk6yutWhW8j8+rHmmsPM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36597},"main":"./dist/cli.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7c08b66a8a15ae00ee00d28e0eaa7bf8c684d474","private":false,"scripts":{"dev":"tsx src/cli.ts","test":"tsx src/cli.ts process ./ --dry-run","build":"tsup"},"_npmUser":{"name":"sanglu","email":"connect.with.sang@gmail.com"},"repository":{"url":"git+https://github.com/a-jackie-z/packages-updater.git","type":"git"},"_npmVersion":"11.6.2","description":"A non-interactive CLI tool to automatically update dependencies, build, and publish npm packages","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ora":"^9.2.0","chalk":"^5.6.2","execa":"^9.6.1","commander":"^14.0.3","npm-check-updates":"^19.3.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.2.0"},"_npmOperationalInternal":{"tmp":"tmp/packages-updater_1.1.0_1770192620298_0.5888142270575314","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@a_jackie_z/packages-updater","version":"1.1.1","keywords":["npm","package","updater","dependencies","automation","cli","publish","monorepo"],"author":{"name":"Sang Lu","email":"connect.with.sang@gmail.com"},"license":"MIT","_id":"@a_jackie_z/packages-updater@1.1.1","maintainers":[{"name":"sanglu","email":"connect.with.sang@gmail.com"}],"homepage":"https://github.com/a-jackie-z/packages-updater#readme","bugs":{"url":"https://github.com/a-jackie-z/packages-updater/issues"},"bin":{"packages-updater":"dist/cli.js"},"dist":{"shasum":"f87e20ee7d36d81511ea4834fd3db6594f58586d","tarball":"https://registry.npmjs.org/@a_jackie_z/packages-updater/-/packages-updater-1.1.1.tgz","fileCount":4,"integrity":"sha512-jkKVdupvJeUUG69PlMilJSO6rY6Fl8CVzdTexRzv3e87YhNgcvtCY5j4V5e01z7s81WSzvb3oeXIsg+bLxctzA==","signatures":[{"sig":"MEQCIDG1KtjvjqU9Fcai1Bh22Bacapv3VfdCEtzfRNQzLdN8AiBCkX5v6XmTh1G7zCMMhKMCsncDO+P77ecIF4qtkiALQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30308},"main":"./dist/cli.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7c08b66a8a15ae00ee00d28e0eaa7bf8c684d474","private":false,"scripts":{"dev":"tsx src/cli.ts","test":"tsx src/cli.ts process ./ --dry-run","build":"tsup"},"_npmUser":{"name":"sanglu","email":"connect.with.sang@gmail.com"},"repository":{"url":"git+https://github.com/a-jackie-z/packages-updater.git","type":"git"},"_npmVersion":"11.6.2","description":"A non-interactive CLI tool to automatically update dependencies, build, and publish npm packages","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ora":"^9.2.0","chalk":"^5.6.2","execa":"^9.6.1","commander":"^14.0.3","npm-check-updates":"^19.3.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.2.0"},"_npmOperationalInternal":{"tmp":"tmp/packages-updater_1.1.1_1770192664599_0.14885683011276374","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@a_jackie_z/packages-updater","version":"1.1.2","keywords":["npm","package","updater","dependencies","automation","cli","publish","monorepo"],"author":{"name":"Sang Lu","email":"connect.with.sang@gmail.com"},"license":"MIT","_id":"@a_jackie_z/packages-updater@1.1.2","maintainers":[{"name":"sanglu","email":"connect.with.sang@gmail.com"}],"homepage":"https://github.com/a-jackie-z/packages-updater#readme","bugs":{"url":"https://github.com/a-jackie-z/packages-updater/issues"},"bin":{"packages-updater":"dist/cli.js"},"dist":{"shasum":"d83d143a5be6ace9d725463f9ab5fdfbca724084","tarball":"https://registry.npmjs.org/@a_jackie_z/packages-updater/-/packages-updater-1.1.2.tgz","fileCount":4,"integrity":"sha512-5wfyPeCMFIKoYWHUuFIaoGwlAmx6b2FKgSLFMHP/LacArSfvIDc6AgqjeckjlEnbndQJsBvD+GAPI4QNsVURgw==","signatures":[{"sig":"MEUCIQCcdeK7wd82Dm9pj2zC1nCKumYDqWhP88oEUbGdHKREIAIgfJxzXHk68jO+CIyjjKOaOrPG9wfvSl0BQTRCg27UmI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30308},"main":"./dist/cli.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"96d4f27dbfce19221a160a4de03a2c9f2976ac07","private":false,"scripts":{"dev":"tsx src/cli.ts","test":"tsx src/cli.ts process ./ --dry-run","build":"tsup"},"_npmUser":{"name":"sanglu","email":"connect.with.sang@gmail.com"},"repository":{"url":"git+https://github.com/a-jackie-z/packages-updater.git","type":"git"},"_npmVersion":"11.8.0","description":"A non-interactive CLI tool to automatically update dependencies, build, and publish npm packages","directories":{},"_nodeVersion":"24.13.1","dependencies":{"ora":"^9.3.0","chalk":"^5.6.2","execa":"^9.6.1","commander":"^14.0.3","npm-check-updates":"^19.5.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/packages-updater_1.1.2_1772032180117_0.593953412911185","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@a_jackie_z/packages-updater","version":"1.1.3","private":false,"description":"A non-interactive CLI tool to automatically update dependencies, build, and publish npm packages","type":"module","main":"./dist/cli.js","bin":{"packages-updater":"dist/cli.js"},"scripts":{"build":"tsup","dev":"tsx src/cli.ts","test":"tsx src/cli.ts process ./ --dry-run"},"keywords":["npm","package","updater","dependencies","automation","cli","publish","monorepo"],"author":{"name":"Sang Lu","email":"connect.with.sang@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/a-jackie-z/packages-updater.git"},"dependencies":{"chalk":"^5.6.2","commander":"^14.0.3","execa":"^9.6.1","npm-check-updates":"^19.6.5","ora":"^9.3.0"},"devDependencies":{"@types/node":"^25.5.0","tsup":"^8.5.1","tsx":"^4.21.0","typescript":"^6.0.2"},"engines":{"node":">=18.0.0"},"gitHead":"72c119019615acf2cf15d860c4fb0997304cfd5e","_id":"@a_jackie_z/packages-updater@1.1.3","bugs":{"url":"https://github.com/a-jackie-z/packages-updater/issues"},"homepage":"https://github.com/a-jackie-z/packages-updater#readme","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-1Gh2LIKYrPSt2SyOF1EUDp4qegs0jKAmblcOUZINSyftLER+5PeeSfgLr9LI2h7QqcS0mMmQB8ZWLV5xS59fCA==","shasum":"6bdf52a4afe0f3ffed872d599cb2b5feeb661c4d","tarball":"https://registry.npmjs.org/@a_jackie_z/packages-updater/-/packages-updater-1.1.3.tgz","fileCount":4,"unpackedSize":30308,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCP9DKuWV1DR1zWlD6psBI/I2PYQg6Oj2dDDwhywNGxyQIhAPsvKdHm509hfCtvtsJyYMGH96U+mvhg6znI1MYYWXF+"}]},"_npmUser":{"name":"sanglu","email":"connect.with.sang@gmail.com"},"directories":{},"maintainers":[{"name":"sanglu","email":"connect.with.sang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/packages-updater_1.1.3_1774346869839_0.5022081152219353"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-04T08:10:20.242Z","modified":"2026-03-24T10:07:50.099Z","1.1.0":"2026-02-04T08:10:20.451Z","1.1.1":"2026-02-04T08:11:04.742Z","1.1.2":"2026-02-25T15:09:40.262Z","1.1.3":"2026-03-24T10:07:49.973Z"},"bugs":{"url":"https://github.com/a-jackie-z/packages-updater/issues"},"author":{"name":"Sang Lu","email":"connect.with.sang@gmail.com"},"license":"MIT","homepage":"https://github.com/a-jackie-z/packages-updater#readme","keywords":["npm","package","updater","dependencies","automation","cli","publish","monorepo"],"repository":{"type":"git","url":"git+https://github.com/a-jackie-z/packages-updater.git"},"description":"A non-interactive CLI tool to automatically update dependencies, build, and publish npm packages","maintainers":[{"name":"sanglu","email":"connect.with.sang@gmail.com"}],"readme":"# @a_jackie_z/packages-updater\n\nA non-interactive CLI tool to automatically update dependencies to their latest versions, build, and publish npm packages. Perfect for maintaining monorepos and automating package releases.\n\n## ✨ Features\n\n- 🚀 **Non-interactive** - Fully automated, no prompts or user input required\n- 📦 **Generic** - Works with any npm package or monorepo structure\n- ⚡ **Fast** - Processes multiple packages efficiently\n- 🔄 **Smart Updates** - Always updates to the latest stable versions\n- 🏗️ **Auto Build** - Automatically builds packages if build script exists\n- 📤 **Auto Publish** - Publishes to npm registry (skips private packages)\n- 🎯 **Validation First** - Validates all paths before making any changes\n- 🔍 **Dry Run Mode** - Preview all changes without modifying anything\n- 🎨 **Beautiful Output** - Colored console output with progress indicators\n- 🤖 **CI/CD Ready** - Automatically adapts output for CI environments\n\n## 📦 Installation\n\nNo installation needed! Use directly with `npx`:\n\n```bash\nnpx @a_jackie_z/packages-updater process <paths...>\n```\n\nOr install globally:\n\n```bash\nnpm install -g @a_jackie_z/packages-updater\n```\n\n## 🚀 Quick Start\n\n### Process a Single Package\n\n```bash\n# Update dependencies, bump version, build and publish\nnpx @a_jackie_z/packages-updater process ./my-package\n```\n\n### Process Multiple Packages\n\n```bash\n# Update multiple packages at once\nnpx @a_jackie_z/packages-updater process ./packages/core ./packages/utils ./packages/cli\n```\n\n### Preview Changes (Dry Run)\n\n```bash\n# See what would be updated without making changes\nnpx @a_jackie_z/packages-updater process ./my-package --dry-run\n```\n\n## 📖 Usage Examples\n\n### Basic Usage\n\n```bash\n# Process a single package with default settings (patch bump)\nnpx @a_jackie_z/packages-updater process ./packages/my-lib\n\n# Process multiple packages\nnpx @a_jackie_z/packages-updater process ./pkg-1 ./pkg-2 ./pkg-3\n```\n\n### Version Bumping\n\n```bash\n# Bump patch version (1.0.0 -> 1.0.1) - DEFAULT\nnpx @a_jackie_z/packages-updater process ./my-package --bump patch\n\n# Bump minor version (1.0.0 -> 1.1.0)\nnpx @a_jackie_z/packages-updater process ./my-package --bump minor\n\n# Bump major version (1.0.0 -> 2.0.0)\nnpx @a_jackie_z/packages-updater process ./my-package --bump major\n```\n\n### Skip Build or Publish\n\n```bash\n# Update dependencies and bump version, but skip building\nnpx @a_jackie_z/packages-updater process ./my-package --skip-build\n\n# Update and build, but don't publish to npm\nnpx @a_jackie_z/packages-updater process ./my-package --skip-publish\n\n# Skip both build and publish (just update dependencies)\nnpx @a_jackie_z/packages-updater process ./my-package --skip-build --skip-publish\n```\n\n### Monorepo Example\n\n```bash\n# Update all packages in a monorepo with minor version bump\nnpx @a_jackie_z/packages-updater process \\\n  ./packages/config \\\n  ./packages/logger \\\n  ./packages/utils \\\n  ./packages/core \\\n  --bump minor\n\n# Or use shell glob (bash/zsh)\nnpx @a_jackie_z/packages-updater process ./packages/* --bump minor\n```\n\n### Dry Run Examples\n\n```bash\n# Preview what would be updated in a single package\nnpx @a_jackie_z/packages-updater process ./my-package --dry-run\n\n# Preview updates for all packages with minor bump\nnpx @a_jackie_z/packages-updater process ./packages/* --dry-run --bump minor\n\n# Preview without publishing\nnpx @a_jackie_z/packages-updater process ./my-package --dry-run --skip-publish\n```\n\n### CI/CD Integration\n\n```bash\n# In GitHub Actions, CircleCI, etc.\nnpx @a_jackie_z/packages-updater process ./packages/core --bump patch\n\n# Update and publish, skip if no changes\nnpx @a_jackie_z/packages-updater process ./packages/* || echo \"No updates needed\"\n```\n\n## 🔧 Command Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `<paths...>` | string[] | required | Package directory paths to process |\n| `--dry-run` | boolean | `false` | Preview changes without modifying files |\n| `--skip-build` | boolean | `false` | Skip the build step |\n| `--skip-publish` | boolean | `false` | Skip publishing to npm |\n| `--bump <type>` | string | `patch` | Version bump type: `patch`, `minor`, or `major` |\n\n## 🔄 What It Does\n\nFor each package path provided, the tool automatically:\n\n1. **✅ Validates Path** - Checks if the path exists and contains a valid `package.json`\n2. **🔍 Checks Dependencies** - Uses `npm-check-updates` to find outdated dependencies\n3. **📦 Updates Dependencies** - Automatically updates all dependencies to their latest versions\n4. **🔢 Bumps Version** - Increments the package version (patch/minor/major)\n5. **⚙️ Installs** - Runs `npm install` to update the lockfile\n6. **🏗️ Builds** - Runs `npm run build` if a build script exists\n7. **📤 Publishes** - Runs `npm publish` (automatically skips private packages and existing versions)\n\n## 📊 Output Example\n\n### With Dependency Updates\n```bash\n$ npx @a_jackie_z/packages-updater process ./packages/core ./packages/utils\n\n✓ Validated 2 package path(s)\n\nℹ Processing 2 package(s)...\n\n✓ @my-scope/core: Found updates\n  Production Dependencies:\n    • lodash\n      ^4.17.20 → ^4.17.21\n    • axios\n      ^1.5.0 → ^1.6.2\n  Dev Dependencies:\n    • typescript\n      ^5.3.0 → ^5.4.5\n\n✓ @my-scope/core: Updated 1.0.0 → 1.0.1 ✓ Published\n\n✓ @my-scope/utils: Found updates\n  Production Dependencies:\n    • date-fns\n      ^2.30.0 → ^3.3.1\n\n✓ @my-scope/utils: Updated 2.1.3 → 2.1.4 ✓ Published\n\nSummary:\nℹ Total packages: 2\n✓ Updated: 2\nℹ Total dependencies updated: 4\n\n  Breakdown by package:\n    @my-scope/core: 3 dependencies\n    @my-scope/utils: 1 dependency\n```\n\n### Without Dependency Updates (But Unpublished Version)\n```bash\n$ npx @a_jackie_z/packages-updater process ./my-package\n\n✓ Validated 1 package path(s)\nℹ Processing 1 package(s)...\n\n✓ my-package: No dependency updates, but version not published\nℹ Publishing my-package@1.2.0...\n(2FA code may be required)\n\n✓ my-package: 1.2.0 (no updates) ✓ Published\n\nSummary:\nℹ Total packages: 1\n✓ Updated: 0\n```\n\n## 🚦 Exit Codes\n\n- `0` - All packages processed successfully\n- `1` - Validation failed or one or more packages failed to process\n\n## 📋 Requirements\n\n- **Node.js** >= 18.0.0\n- **npm** (comes with Node.js)\n- **npm login** - Must be logged in to npm to publish packages\n  ```bash\n  # Check if logged in\n  npm whoami\n  \n  # Login if needed\n  npm login\n  ```\n- **2FA Support** - The tool supports npm's two-factor authentication\n  - You'll be prompted for your OTP code during publishing\n  - Make sure you have access to your authenticator app\n\n## 🎯 Use Cases\n\n### Local Development\n```bash\n# Quick update before releasing\nnpx @a_jackie_z/packages-updater process ./my-package\n```\n\n### Monorepo Maintenance\n```bash\n# Update all packages in workspace\nnpx @a_jackie_z/packages-updater process ./packages/* --bump minor\n```\n\n### CI/CD Pipeline\n```yaml\n# GitHub Actions example\n- name: Update and publish packages\n  run: npx @a_jackie_z/packages-updater process ./packages/core\n  env:\n    NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}\n```\n\n### Batch Updates\n```bash\n# Update multiple independent packages\nnpx @a_jackie_z/packages-updater process \\\n  ~/projects/lib-a \\\n  ~/projects/lib-b \\\n  ~/projects/lib-c \\\n  --bump patch\n```\n\n## 🔧 Troubleshooting\n\n### Publishing Issues\n\n**\"Not logged in to npm\"**\n```bash\n# Login to npm\nnpm login\n\n# Verify you're logged in\nnpm whoami\n```\n\n**2FA Code Not Working**\n- Make sure you're entering the current OTP code from your authenticator app\n- Wait for the next code if the current one is about to expire\n- Ensure your system time is synchronized\n\n**\"Version already published\"**\n- The tool automatically checks and skips already published versions\n- If you need to republish, manually unpublish first: `npm unpublish package@version`\n\n**CI/CD Publishing**\n```bash\n# Set npm token in CI environment\nexport NPM_TOKEN=your-token-here\n\n# Create .npmrc for CI\necho \"//registry.npmjs.org/:_authToken=\\${NPM_TOKEN}\" > ~/.npmrc\n```\n\n## 🤔 FAQ\n\n**Q: Do I need to be logged in to npm?**  \nA: Yes! Run `npm login` before using the tool. The tool will check and inform you if you're not logged in.\n\n**Q: Does it support 2FA (two-factor authentication)?**  \nA: Yes! The tool allows interactive input during publishing, so you can enter your OTP code when prompted by npm.\n\n**Q: Will it update dependencies that have breaking changes?**  \nA: Yes, it updates to the latest versions. Use `--dry-run` to review changes first.\n\n**Q: What if a package is already published?**  \nA: The tool automatically checks if the version exists and skips publishing.\n\n**Q: Does it work with private packages?**  \nA: Yes! Private packages are automatically skipped during the publish step.\n\n**Q: Can I use it in CI/CD?**  \nA: Yes, but you'll need to configure npm authentication in your CI environment using `NPM_TOKEN`.\n\n**Q: What if there are no outdated dependencies?**  \nA: The tool will skip the package and report \"No updates needed\".\n\n## 📝 License\n\nMIT\n\n## 👤 Author\n\n**Sang Lu**  \nEmail: connect.with.sang@gmail.com  \nGitHub: [@a-jackie-z](https://github.com/a-jackie-z)\n\n## 🔗 Links\n\n- [npm package](https://www.npmjs.com/package/@a_jackie_z/packages-updater)\n- [GitHub repository](https://github.com/a-jackie-z/packages-updater)\n- [Report issues](https://github.com/a-jackie-z/packages-updater/issues)\n\n---\n\nMade with ❤️ for the npm community\n","readmeFilename":"README.md"}