feat(package): refresh package metadata, update dependency versions, and document CLI update and install workflows

This commit is contained in:
2026-03-24 18:12:02 +00:00
parent 8507e54a56
commit 393410a4b5
8 changed files with 1261 additions and 1290 deletions

View File

@@ -1,7 +1,7 @@
{ {
"json.schemas": [ "json.schemas": [
{ {
"fileMatch": ["/npmextra.json"], "fileMatch": ["/.smartconfig.json"],
"schema": { "schema": {
"type": "object", "type": "object",
"properties": { "properties": {

View File

@@ -1,5 +1,13 @@
# Changelog # Changelog
## 2026-03-24 - 3.6.0 - feat(package)
refresh package metadata, update dependency versions, and document CLI update and install workflows
- rename npmextra.json to .smartconfig.json and update the published package file list
- replace placeholder package description with CLI-specific metadata in package.json and readme
- upgrade @git.zone/tsbuild, @git.zone/tstest, @push.rocks/smartshell, and @types/node
- rename the bundled license file reference from LICENSE to license
## 2026-02-09 - 3.5.0 - feat(install) ## 2026-02-09 - 3.5.0 - feat(install)
add interactive install command and module to detect and install missing @git.zone packages add interactive install command and module to detect and install missing @git.zone packages

View File

View File

@@ -3,7 +3,7 @@
"version": "3.5.0", "version": "3.5.0",
"private": false, "private": false,
"type": "module", "type": "module",
"description": "A CLI tool placeholder for development utilities.", "description": "A CLI utility for managing and updating @git.zone development tools across package managers.",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts", "typings": "dist_ts/index.d.ts",
"scripts": { "scripts": {
@@ -30,15 +30,15 @@
}, },
"homepage": "https://github.com/GitZoneTools/npmg#readme", "homepage": "https://github.com/GitZoneTools/npmg#readme",
"devDependencies": { "devDependencies": {
"@git.zone/tsbuild": "^4.1.2", "@git.zone/tsbuild": "^4.3.0",
"@git.zone/tstest": "^3.1.8" "@git.zone/tstest": "^3.5.1"
}, },
"dependencies": { "dependencies": {
"@git.zone/tsrun": "^2.0.1", "@git.zone/tsrun": "^2.0.1",
"@push.rocks/smartcli": "^4.0.20", "@push.rocks/smartcli": "^4.0.20",
"@push.rocks/smartinteract": "^2.0.16", "@push.rocks/smartinteract": "^2.0.16",
"@push.rocks/smartshell": "^3.3.0", "@push.rocks/smartshell": "^3.3.8",
"@types/node": "^22.0.0" "@types/node": "^25.5.0"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",
@@ -48,7 +48,7 @@
"dist_ts/**/*", "dist_ts/**/*",
"dist_ts_web/**/*", "dist_ts_web/**/*",
"cli.js", "cli.js",
"npmextra.json", ".smartconfig.json",
"readme.md" "readme.md"
], ],
"browserslist": [ "browserslist": [

2400
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

125
readme.md
View File

@@ -1,6 +1,6 @@
# @git.zone/tools 🛠️ # @git.zone/tools 🛠️
A CLI tool placeholder for development utilities. A powerful CLI utility for managing your `@git.zone` development toolchain. Scan, update, and install all official `@git.zone` packages across multiple package managers — from a single command.
## Issue Reporting and Security ## Issue Reporting and Security
@@ -8,21 +8,138 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
## Installation 📦 ## Installation 📦
Install globally with your preferred package manager:
```bash ```bash
# npm
npm install -g @git.zone/tools npm install -g @git.zone/tools
# pnpm (recommended)
pnpm add -g @git.zone/tools
# yarn
yarn global add @git.zone/tools
``` ```
This gives you the `gtools` binary.
## Usage 🚀 ## Usage 🚀
### Overview
```bash ```bash
gtools gtools # Show available commands
gtools update # Check & update installed @git.zone packages
gtools install # Interactively install missing @git.zone packages
``` ```
Currently a placeholder CLI with no commands implemented yet. ### `gtools update` — Keep Everything Fresh ♻️
Scans all available package managers (npm, pnpm, yarn) on your system, detects globally installed `@git.zone` packages, and checks them against the latest published versions.
```bash
gtools update # Interactive — prompts before updating
gtools update -y # Auto-approve all updates (great for CI)
gtools update --verbose # Show package manager detection diagnostics
```
**What it does:**
1. 🔍 Detects which package managers are available on your system
2. 📊 Shows a version table for each detected package manager
3. 🔄 Checks for a **self-update** of `gtools` itself first
4. 📋 Lists all globally installed `@git.zone` packages with current vs. latest versions
5. 🚀 Prompts you to update any outdated packages (or auto-updates with `-y`)
**Example output:**
```
Package managers:
Name Current Latest Status
──────────────────────────────────────────────
pnpm 10.28.2 10.28.2 ✓ Up to date
Installed @git.zone packages:
Package Current Latest PM Status
─────────────────────────────────────────────────────────────────────
@git.zone/cli 1.10.0 1.10.0 pnpm ✓ Up to date
@git.zone/tsbuild 4.3.0 4.3.0 pnpm ✓ Up to date
@git.zone/tstest 3.5.1 3.5.1 pnpm ✓ Up to date
All packages are up to date!
```
### `gtools install` — Bootstrap Your Toolchain 🧰
Detects which official `@git.zone` packages are **not** installed and lets you pick which ones to add.
```bash
gtools install # Interactive selection
gtools install -y # Install all missing packages automatically
gtools install --verbose # Show detection diagnostics
```
**Managed packages:**
| Package | Description |
|---------|-------------|
| `@git.zone/cli` | The main gitzone CLI (`gitzone` command) |
| `@git.zone/tsbuild` | TypeScript compiler wrapper |
| `@git.zone/tstest` | Test runner for TypeScript projects |
| `@git.zone/tsbundle` | Bundle TypeScript for browsers |
| `@git.zone/tswatch` | File watcher with live reload |
| `@git.zone/tspublish` | Publish packages to npm registries |
| `@git.zone/tsdoc` | Documentation generator |
| `@git.zone/tsdocker` | Docker integration for TS projects |
| `@git.zone/tsview` | Component viewer |
| `@git.zone/tsrust` | Rust cross-compilation support |
### Smart Package Manager Detection 🔎
`gtools` doesn't assume which package manager you use. It probes for `npm`, `pnpm`, and `yarn` using multiple detection strategies:
1. **`which` command** — checks the system PATH
2. **`--version` fallback** — directly invokes the PM if `which` fails
When installing, it recommends the package manager that already has the most `@git.zone` packages, so your toolchain stays consistent.
## Programmatic API 🔧
You can also use `@git.zone/tools` as a library:
```typescript
import { runCli } from '@git.zone/tools';
// Launch the CLI programmatically
await runCli();
```
Or use the `PackageManagerUtil` class directly for custom tooling:
```typescript
import { PackageManagerUtil } from '@git.zone/tools/dist_ts/mod_update/classes.packagemanager.js';
const pmUtil = new PackageManagerUtil();
// Check if pnpm is available
const pnpmInfo = await pmUtil.detectPackageManager('pnpm');
console.log(pnpmInfo.available); // true/false
// Get globally installed @git.zone packages
const packages = await pmUtil.getInstalledPackages('pnpm');
// Get latest version from registry (checks private registry first, then npm)
const latest = await pmUtil.getLatestVersion('@git.zone/tsbuild');
// Compare versions
pmUtil.isNewerVersion('1.0.0', '2.0.0'); // true
```
## License and Legal Information ## License and Legal Information
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [LICENSE](./LICENSE) file. This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file. **Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@git.zone/tools', name: '@git.zone/tools',
version: '3.5.0', version: '3.6.0',
description: 'A CLI tool placeholder for development utilities.' description: 'A CLI utility for managing and updating @git.zone development tools across package managers.'
} }