{"_id":"@verdaccio/registry-cli","_rev":"2-2f08b34afe897ba5e589df7ac00360c9","name":"@verdaccio/registry-cli","dist-tags":{"latest":"1.1.0"},"versions":{"1.1.0":{"name":"@verdaccio/registry-cli","version":"1.1.0","keywords":["verdaccio","cli","login","npm","registry","auth"],"author":{"name":"Juan Picado","email":"juanpicado19@gmail.com"},"license":"MIT","_id":"@verdaccio/registry-cli@1.1.0","maintainers":[{"name":"sergiohgz","email":"sergio@sergiohgz.eu"},{"name":"verdaccio.npm","email":"verdaccio.npm@gmail.com"},{"name":"jotadeveloper","email":"juanpicado19@gmail.com"}],"homepage":"https://verdaccio.org","bugs":{"url":"https://github.com/verdaccio/ctl/issues"},"bin":{"verdaccioctl":"lib/cli.js"},"dist":{"shasum":"9649987739a35ce02d748109c00b99580d65c323","tarball":"https://registry.npmjs.org/@verdaccio/registry-cli/-/registry-cli-1.1.0.tgz","fileCount":12,"integrity":"sha512-YXgHbKKQKTRH0ilt058i4IaU5rkyqzWjQXI+zrlGmtaRLbHXqMcHczq1PtkaT3pkQdIGohPelcjQX8gsUH+KDA==","signatures":[{"sig":"MEUCIBYZtGySvBKe9X7f9Kz//5ZwSWicbQVZ6aJWXFJ8J88wAiEApfwcF1LeP8vSFfOhk+DAwd4a4V0epiVEww7NdKT/ECo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17822},"main":"./lib/index.js","type":"module","_from":"file:verdaccio-registry-cli-1.1.0.tgz","types":"./lib/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"}},"funding":{"url":"https://opencollective.com/verdaccio","type":"opencollective"},"scripts":{"lint":"eslint .","test":"vitest run","build":"tsc && chmod +x lib/cli.js","clean":"rimraf ./lib","format":"prettier --write \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\"","lint:fix":"eslint . --fix","ci:publish":"changeset publish","ci:version":"pnpm ci:version:changeset && npm run ci:version:install","test:watch":"vitest","type-check":"tsc --noEmit","format:check":"prettier --check \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\"","ci:version:install":"pnpm install --frozen-lockfile=false","ci:version:changeset":"changeset version"},"_npmUser":{"name":"verdaccio.npm","email":"verdaccio.npm@gmail.com"},"_resolved":"/tmp/20be9c2bf2f3a1bda04996218284194d/verdaccio-registry-cli-1.1.0.tgz","_integrity":"sha512-YXgHbKKQKTRH0ilt058i4IaU5rkyqzWjQXI+zrlGmtaRLbHXqMcHczq1PtkaT3pkQdIGohPelcjQX8gsUH+KDA==","repository":{"url":"git+https://github.com/verdaccio/ctl.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI tool for Verdaccio registries — non-interactive login, whoami with groups, and health checks","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"8.0.1","eslint":"10.0.2","rimraf":"^5.0.0","vitest":"4.1.0","prettier":"3.8.1","cross-env":"^7.0.3","typescript":"5.9.3","@types/node":"25.5.0","@changesets/cli":"2.29.8","vite-plugin-dts":"4.5.4","typescript-eslint":"8.57.1","@verdaccio/eslint-config":"12.0.0","@changesets/changelog-github":"0.5.2","@trivago/prettier-plugin-sort-imports":"4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/registry-cli_1.1.0_1776017103600_0.7482120390061562","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-12T18:05:03.459Z","modified":"2026-05-14T15:55:47.233Z","1.1.0":"2026-04-12T18:05:03.745Z"},"bugs":{"url":"https://github.com/verdaccio/ctl/issues"},"author":{"name":"Juan Picado","email":"juanpicado19@gmail.com"},"license":"MIT","homepage":"https://verdaccio.org","keywords":["verdaccio","cli","login","npm","registry","auth"],"repository":{"url":"git+https://github.com/verdaccio/ctl.git","type":"git"},"description":"CLI tool for Verdaccio registries — non-interactive login, whoami with groups, and health checks","maintainers":[{"email":"sergio@sergiohgz.eu","name":"sergiohgz"},{"email":"verdaccio.npm@gmail.com","name":"verdaccio.npm"},{"email":"juanpicado19@gmail.com","name":"jotadeveloper"},{"email":"verdacciobot@gmail.com","name":"verdacciopack"}],"readme":"# @verdaccio/registry-cli\n\nCLI tool for [Verdaccio](https://verdaccio.org) registries — non-interactive login, user info with groups, and health checks.\n\nZero dependencies. Works with any Verdaccio auth plugin (htpasswd, LDAP, Azure AD, etc.).\n\n## Installation\n\n```bash\n# Use directly with npx\nnpx @verdaccio/registry-cli login -u admin -p secret\n\n# Or install globally\nnpm install -g @verdaccio/registry-cli\n```\n\n## Commands\n\n### `login` — Authenticate to a registry\n\nNon-interactive login — ideal for CI/CD pipelines.\n\n```bash\n# Username + password\nverdaccioctl login -u admin -p secret -r http://localhost:4873\n\n# With email\nverdaccioctl login -u admin -p secret -e admin@company.com -r http://localhost:4873\n\n# Token-based (Azure AD, OIDC, JWT)\nverdaccioctl login --token eyJhbGciOi... -r http://localhost:4873\n```\n\nThe token is written to `~/.npmrc` automatically.\n\n### `whoami` — Show current user and groups\n\n```bash\nverdaccioctl whoami -r http://localhost:4873\n# Username: admin\n# Groups:   admins, developers\n# Registry: http://localhost:4873\n```\n\n### `ping` — Check if registry is reachable\n\n```bash\nverdaccioctl ping -r http://localhost:4873\n# Registry: http://localhost:4873\n# Status:   OK\n# Time:     12ms\n```\n\nReturns exit code 1 if unreachable — useful in CI health checks.\n\n## Options\n\n| Option              | Short | Description                                        |\n| ------------------- | ----- | -------------------------------------------------- |\n| `--registry <url>`  | `-r`  | Registry URL (default: `http://localhost:4873`)    |\n| `--username <user>` | `-u`  | Username (login only)                              |\n| `--password <pass>` | `-p`  | Password (login only)                              |\n| `--email <email>`   | `-e`  | Email (login only, optional)                       |\n| `--token <token>`   | —     | Pre-existing token for login (JWT, Azure AD, etc.) |\n| `--help`            | `-h`  | Show help                                          |\n\n## CI/CD Examples\n\n### GitHub Actions\n\n```yaml\n- name: Login to Verdaccio\n  run: npx @verdaccio/registry-cli login -u ${{ secrets.NPM_USER }} -p ${{ secrets.NPM_PASS }} -r https://registry.company.com\n\n- name: Publish\n  run: npm publish --registry https://registry.company.com\n```\n\n### Azure DevOps\n\n```yaml\n- script: npx @verdaccio/registry-cli login -u $(NPM_USER) -p $(NPM_PASS) -r https://registry.company.com\n  displayName: Login to Verdaccio\n\n- script: npm publish --registry https://registry.company.com\n  displayName: Publish package\n```\n\n### GitLab CI\n\n```yaml\npublish:\n  script:\n    - npx @verdaccio/registry-cli login -u $NPM_USER -p $NPM_PASS -r https://registry.company.com\n    - npm publish --registry https://registry.company.com\n```\n\n### Docker / Shell Scripts\n\n```bash\n#!/bin/bash\n# Health check before publishing\nverdaccioctl ping -r http://registry:4873 || exit 1\n\n# Login\nverdaccioctl login -u deploy -p \"$DEPLOY_PASSWORD\" -r http://registry:4873\n\n# Verify identity\nverdaccioctl whoami -r http://registry:4873\n\n# Publish\nnpm publish --registry http://registry:4873\n```\n\n### Azure AD token login\n\n```bash\n# Get token from Azure CLI\nTOKEN=$(az account get-access-token --resource api://your-client-id --query accessToken -o tsv)\n\n# Login with token\nverdaccioctl login --token \"$TOKEN\" -r https://registry.company.com\n```\n\n## Programmatic API\n\nAll commands are also exported as functions:\n\n```typescript\nimport {login, loginWithToken, whoami, ping} from '@verdaccio/registry-cli';\n\nawait login({username: 'admin', password: 'secret', registry: 'http://localhost:4873'});\nawait loginWithToken('eyJhbG...', 'http://localhost:4873');\nconst user = await whoami('http://localhost:4873');\nconst health = await ping('http://localhost:4873');\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}