{"_id":"@bonapasogit-dev/partukkang","name":"@bonapasogit-dev/partukkang","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"@bonapasogit-dev/partukkang","version":"1.0.1","description":"Partukkang internal CLI to manage tools, packages, and developer configuration","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/bonapasogit-dev/bonatools.git","directory":"packages/partukkang"},"homepage":"https://github.com/bonapasogit-dev/bonatools/tree/main/packages/partukkang#readme","bin":{"partukkang":"dist/index.js"},"scripts":{"build":"npx tsc","test":"vitest run","test:watch":"vitest","prepublishOnly":"npm run build"},"keywords":["cli","partukkang","bonatools","typescript"],"author":"","license":"MIT","dependencies":{"commander":"^12.1.0","yaml":"^2.5.1"},"devDependencies":{"@types/node":"^20.11.0","typescript":"^5.3.3","vitest":"^1.2.0"},"engines":{"node":">=18.0.0"},"_id":"@bonapasogit-dev/partukkang@1.0.1","gitHead":"7fd74e8a7bc9bcbc6ee9896847ae35d3458da561","bugs":{"url":"https://github.com/bonapasogit-dev/bonatools/issues"},"_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-5Irk+91YGt0dpLPRk0buzPYJxm7ZggiJWkcZQgEZeUOEC3e/SYBSfSRH/3r9U0opNAF64CHWm6OkSfQxY8vI3g==","shasum":"e0608a2eb3eeae7a7262fc5d4cd490f8b3a91c9e","tarball":"https://registry.npmjs.org/@bonapasogit-dev/partukkang/-/partukkang-1.0.1.tgz","fileCount":74,"unpackedSize":86032,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC0yJI8NXZ5fNN4hPZtwiuTbmb99e6mfu62HJsIBcwIkwIgfP9pVNyXgLojOStHI8lWkN88S12s4iFPI2hiLFA7U5g="}]},"_npmUser":{"name":"vldcreation","email":"vicktordesrony@gmail.com"},"directories":{},"maintainers":[{"name":"vldcreation","email":"vicktordesrony@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/partukkang_1.0.1_1773819625443_0.8648979797363094"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T07:40:25.336Z","1.0.1":"2026-03-18T07:40:25.600Z","modified":"2026-03-18T07:40:25.827Z"},"maintainers":[{"name":"vldcreation","email":"vicktordesrony@gmail.com"}],"description":"Partukkang internal CLI to manage tools, packages, and developer configuration","homepage":"https://github.com/bonapasogit-dev/bonatools/tree/main/packages/partukkang#readme","keywords":["cli","partukkang","bonatools","typescript"],"repository":{"type":"git","url":"git+https://github.com/bonapasogit-dev/bonatools.git","directory":"packages/partukkang"},"bugs":{"url":"https://github.com/bonapasogit-dev/bonatools/issues"},"license":"MIT","readme":"# @bonapasogit-dev/partukkang\n\nUnified CLI for Partukkang internal developer workflows.\n\n## Why this CLI exists\n\n`partukkang` is the single interface to:\n\n- install internal packages (`jwt-manager`, `responder`, etc.)\n- pull tools/scripts from `bonatools/tools`\n- apply local developer configuration from YAML (`npm`, GitHub metadata)\n\n## Features\n\n- ✅ Intuitive commands: `list`, `install`, `configure init`, `configure apply`, `doctor`\n- ✅ Windows-friendly implementation (Node APIs + shell-safe process spawning)\n- ✅ YAML-based configuration workflow\n- ✅ Clean architecture (commands/services/utils split)\n- ✅ Test coverage for critical behavior\n\n## Installation\n\nFrom monorepo root:\n\n```bash\nnpm install\nnpm run build -- --filter=@bonapasogit-dev/partukkang\n```\n\nRun locally:\n\n```bash\nnode packages/partukkang/dist/index.js --help\n```\n\nRun from monorepo root (without global install):\n\n```bash\nnpm run build:partukkang\nnpm run partukkang -- --help\nnpm run partukkang -- configure init\n```\n\n## Command reference\n\n### Install\n\n```bash\npartukkang install <type> <thing> [options]\n```\n\n`type`:\n\n- `packages`\n- `tools`\n- `scripts`\n\nRecommended flow:\n\n```bash\npartukkang list tools\npartukkang list scripts\npartukkang list packages\n```\n\nThen install using the exact returned path/name.\n\nExamples:\n\n```bash\npartukkang install packages packages/jwt-manager\npartukkang install packages @bonapasogit-dev/responder\npartukkang install tools tools/script/scpconfig.sh --dest ./.local-tools\npartukkang install scripts scpconfig.sh --dest ./.local-tools\npartukkang install tools tools/script/clone.bat --dry-run\n```\n\nSupported options:\n\n- `--org <org>` (default: `bonapasogit-dev`)\n- `--repo <repo>` (default: `bonatools`)\n- `--ref <ref>` (default: `main`)\n- `--dest <path>` (default: current directory)\n- `--token <token>` (optional GitHub token for private repositories)\n- `--dry-run`\n\nFor private repositories, provide auth via one of:\n\n- `--token <token>`\n- `GITHUB_TOKEN` / `GH_TOKEN` environment variable\n- `github.token` in `~/.partukkang/config.yaml`\n\n### List\n\n```bash\npartukkang list <type> [options]\n```\n\n`type`:\n\n- `tools`\n- `scripts`\n- `packages`\n\nExamples:\n\n```bash\npartukkang list tools\npartukkang list scripts\npartukkang list packages --json\n```\n\n### Configure\n\nCreate YAML template:\n\n```bash\npartukkang configure init\n```\n\nApply configuration:\n\n```bash\npartukkang configure apply --file partukkang.config.yaml\n```\n\nDry run validation:\n\n```bash\npartukkang configure apply --file partukkang.config.yaml --dry-run\n```\n\n### Doctor\n\nRun environment and config diagnostics:\n\n```bash\npartukkang doctor\n```\n\nSkip network checks:\n\n```bash\npartukkang doctor --skip-network\n```\n\nMachine-readable output:\n\n```bash\npartukkang doctor --json\n```\n\nSafe auto-remediation:\n\n```bash\npartukkang doctor --fix\n```\n\n`--fix` only applies conservative changes:\n\n- ensures `~/.partukkang/config.yaml` exists with non-secret defaults\n- ensures npm registry defaults are present in `~/.npmrc`\n- never generates or injects GitHub tokens automatically\n\n## YAML schema\n\n```yaml\nnpm:\n    user: your-name\n    email: your.email@company.com\n    scope: '@bonapasogit-dev'\n    registry: 'https://registry.npmjs.org'\n    authToken: 'ghp_xxx'\n\ngithub:\n    user: your-github-user\n    token: 'ghp_xxx'\n    org: bonapasogit-dev\n    repo: bonatools\n    ref: main\n```\n\n## What `configure apply` updates\n\n- Saves merged config into `~/.partukkang/config.yaml`\n- Updates `~/.npmrc` with merged keys:\n    - `init-author-name`\n    - `init-author-email`\n    - `registry`\n    - scoped registry (`@scope:registry=...`)\n    - auth token line (`//host/:_authToken=...`) when provided\n\n## Recommendations\n\n- Prefer `partukkang configure init` + committed team template (without tokens)\n- Keep secrets in local-only config files\n- Use `--dry-run` before CI or onboarding scripts\n\n## Development\n\n```bash\nnpm run build -- --filter=@bonapasogit-dev/partukkang\nnpm run test -- --filter=@bonapasogit-dev/partukkang\n```\n\n## Windows compatibility notes\n\n- Path handling uses Node `path` + `os.homedir()` APIs\n- Command execution enables shell mode on Windows for consistent behavior\n- File writes are UTF-8 and safe for standard Windows user profiles\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-239d9b0f3c560ba83cf8509154da4c2e"}