npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

codecrypto-cli

v1.0.8

Published

CLI tool for CodeCrypto operations

Readme

CodeCrypto CLI

CLI tool for CodeCrypto operations - Deploy, manage users, configure settings, and handle database operations.

Instalación

Usando NPX (sin instalación)

npx codecrypto-cli [command]

Instalación Global

npm install -g codecrypto-cli
codecrypto [command]

Instalación Local (desarrollo)

git clone <repository>
cd cli-cc
npm install
npm run build
npm link

Comandos Disponibles

📦 Deploy

Despliega tu aplicación en diferentes entornos.

# Despliegue básico
codecrypto deploy

# Despliegue con opciones
codecrypto deploy --env prod --branch main --region us-west-2

# Despliegue sin tests
codecrypto deploy --skip-tests

# Simulación (dry-run)
codecrypto deploy --dry-run

Opciones:

  • -e, --env <environment> - Entorno (dev, staging, prod). Default: dev
  • -b, --branch <branch> - Rama de Git. Default: main
  • -r, --region <region> - Región AWS. Default: us-east-1
  • --skip-tests - Omitir tests antes del deployment
  • --dry-run - Simular sin ejecutar

Ejemplos:

# Desplegar a producción desde rama release
codecrypto deploy -e prod -b release

# Desplegar a staging sin tests
codecrypto deploy -e staging --skip-tests

# Simular despliegue a producción
codecrypto deploy -e prod --dry-run

👤 User

Gestiona usuarios en el sistema.

Crear Usuario

# Modo interactivo
codecrypto user create --interactive

# Con parámetros
codecrypto user create -u john_doe -e [email protected] -r admin

# Modo mixto (parámetros + interactivo)
codecrypto user create -u john_doe --interactive

Opciones:

  • -u, --username <username> - Nombre de usuario
  • -e, --email <email> - Correo electrónico
  • -r, --role <role> - Rol (admin, user, guest). Default: user
  • --interactive - Modo interactivo

Ejemplos:

# Crear admin
codecrypto user create -u admin_user -e [email protected] -r admin

# Crear usuario guest
codecrypto user create -u guest01 -e [email protected] -r guest

Listar Usuarios

# Listar todos
codecrypto user list

# Filtrar por rol
codecrypto user list -r admin

# Limitar resultados
codecrypto user list -l 5

Opciones:

  • -r, --role <role> - Filtrar por rol
  • -l, --limit <number> - Límite de resultados. Default: 10

Eliminar Usuario

# Con confirmación
codecrypto user delete 123

# Sin confirmación (forzar)
codecrypto user delete 123 --force

Opciones:

  • -f, --force - Omitir confirmación

⚙️ Config

Gestiona la configuración del CLI.

Set (Establecer valor)

# Configuración local
codecrypto config set api.url https://api.example.com

# Configuración global
codecrypto config set api.token my-secret-token --global

Opciones:

  • -g, --global - Configuración global

Ejemplos:

codecrypto config set default.region us-west-2
codecrypto config set api.timeout 5000 --global

Get (Obtener valor)

codecrypto config get api.url
codecrypto config get default.region

List (Listar configuración)

# Configuración local
codecrypto config list

# Configuración global
codecrypto config list --global

Opciones:

  • -g, --global - Mostrar configuración global

💾 Database (db)

Operaciones de base de datos.

Migraciones

# Ejecutar migraciones
codecrypto db migrate

# Ejecutar en producción
codecrypto db migrate -e prod

# Rollback última migración
codecrypto db migrate --rollback

# Rollback 3 migraciones
codecrypto db migrate --rollback --steps 3

Opciones:

  • -e, --env <environment> - Entorno. Default: dev
  • --rollback - Revertir migración
  • --steps <number> - Número de migraciones. Default: all

Seed (Poblar datos)

# Seed básico
codecrypto db seed

# Limpiar y seed
codecrypto db seed --clear

# Seed archivo específico
codecrypto db seed -f users.sql

# Seed en staging
codecrypto db seed -e staging

Opciones:

  • -e, --env <environment> - Entorno. Default: dev
  • -f, --file <file> - Archivo seed específico
  • --clear - Limpiar datos existentes

Backup

# Crear backup
codecrypto db backup my-backup

# Backup de producción
codecrypto db backup prod-backup -e prod

# Backup sin comprimir
codecrypto db backup test-backup --compress false

# Especificar directorio
codecrypto db backup daily-backup -o /backups/daily

Opciones:

  • -e, --env <environment> - Entorno origen. Default: prod
  • -o, --output <path> - Directorio de salida. Default: ./backups
  • --compress - Comprimir archivo. Default: true

Restore

# Restaurar en dev
codecrypto db restore backup_2024-01-15.sql.gz

# Restaurar en staging
codecrypto db restore backup.sql -e staging

# Restaurar en prod (requiere --force)
codecrypto db restore backup.sql -e prod --force

Opciones:

  • -e, --env <environment> - Entorno destino. Default: dev
  • --force - Omitir confirmación (requerido para prod)

Ayuda

# Ayuda general
codecrypto --help

# Ayuda de comando específico
codecrypto deploy --help
codecrypto user --help
codecrypto user create --help
codecrypto db --help
codecrypto db migrate --help

Ejemplos de Uso Completo

Workflow de Deployment

# 1. Configurar ambiente
codecrypto config set api.url https://api.myapp.com
codecrypto config set default.region us-east-1

# 2. Ejecutar migraciones
codecrypto db migrate -e staging

# 3. Deploy a staging
codecrypto deploy -e staging -b develop

# 4. Si todo OK, deploy a producción
codecrypto deploy -e prod -b main

Setup Inicial de DB

# 1. Crear backup de seguridad
codecrypto db backup safety-backup -e prod

# 2. Ejecutar migraciones
codecrypto db migrate -e dev

# 3. Poblar datos de prueba
codecrypto db seed --clear

Gestión de Usuarios

# Crear varios usuarios
codecrypto user create -u admin -e [email protected] -r admin
codecrypto user create -u user1 -e [email protected] -r user
codecrypto user create -u guest1 -e [email protected] -r guest

# Listar usuarios admin
codecrypto user list -r admin

# Eliminar usuario
codecrypto user delete 5 --force

Desarrollo

Estructura del Proyecto

cli-cc/
├── src/
│   ├── index.ts              # Punto de entrada
│   └── commands/
│       ├── deploy.ts         # Comando deploy
│       ├── user.ts           # Comando user
│       ├── config.ts         # Comando config
│       └── database.ts       # Comando db
├── dist/                     # Build output
├── package.json
├── tsconfig.json
└── README.md

Scripts de Desarrollo

# Instalar dependencias
npm install

# Desarrollo (ejecutar sin compilar)
npm run dev -- deploy --help

# Compilar
npm run build

# Probar compilado
npm run test

# Testear localmente con npm link
npm link
codecrypto --help

Compilar y Probar

# Build
npm run build

# Probar comando compilado
node dist/index.js --help
node dist/index.js deploy --dry-run
node dist/index.js user create --interactive

Publicación a NPM

1. Preparación

Asegúrate de tener una cuenta en npmjs.com y estar logueado:

npm login

2. Actualizar package.json

Verifica que tu package.json tenga:

  • name: Nombre único en NPM (verifica disponibilidad en npmjs.com)
  • version: Versión semántica (ej: 1.0.0)
  • description: Descripción clara
  • keywords: Para búsquedas
  • author: Tu información
  • license: Tipo de licencia
  • bin: Configurado correctamente
  • files: Archivos a incluir (opcional)
{
  "name": "codecrypto-cli",
  "version": "1.0.0",
  "files": ["dist", "README.md"],
  ...
}

3. Verificar el nombre

# Verificar si el nombre está disponible
npm search codecrypto-cli

Si está ocupado, cambia el nombre en package.json:

{
  "name": "@tu-usuario/codecrypto-cli"
}

4. Build Final

npm run build

5. Probar el paquete localmente

# Simular publicación (ver qué archivos se incluirán)
npm pack

# Esto crea un archivo .tgz que puedes inspeccionar
# Descomprímelo y verifica el contenido

6. Publicar

# Publicación pública
npm publish

# Si usas scoped package (@usuario/nombre)
npm publish --access public

7. Verificar

# Probar instalación
npx codecrypto-cli@latest --help

# O con el nombre real de tu paquete
npx tu-paquete --help

8. Actualizar Versiones

Cuando hagas cambios:

# Patch (1.0.0 -> 1.0.1) - bug fixes
npm version patch

# Minor (1.0.0 -> 1.1.0) - nuevas features
npm version minor

# Major (1.0.0 -> 2.0.0) - breaking changes
npm version major

# Publicar nueva versión
npm publish

Workflow Completo de Publicación

# 1. Asegurarte que todo funciona
npm run build
npm run test

# 2. Login a NPM
npm login

# 3. Verificar nombre disponible
npm search codecrypto-cli

# 4. Publicar
npm publish --access public

# 5. Verificar
npx codecrypto-cli --help

# 6. Para actualizaciones futuras
npm version patch
npm publish

Despublicar (si es necesario)

# Solo dentro de las primeras 72 horas
npm unpublish [email protected]

# Despublicar todas las versiones (usar con cuidado)
npm unpublish codecrypto-cli --force

Mejores Prácticas

  1. Versionado Semántico: Usa semver

    • MAJOR: Cambios incompatibles
    • MINOR: Nuevas funcionalidades compatibles
    • PATCH: Bug fixes
  2. README: Mantén documentación actualizada

  3. CHANGELOG: Documenta cambios en cada versión

  4. Testing: Prueba antes de publicar

  5. Git Tags: Crea tags para cada versión

    git tag v1.0.0
    git push --tags

Troubleshooting

Error: "command not found"

  • Verifica que bin en package.json apunte a dist/index.js
  • El archivo debe tener shebang: #!/usr/bin/env node
  • Asegúrate de compilar: npm run build

Error: "permission denied"

# Linux/Mac
chmod +x dist/index.js

Error al publicar

  • Verifica que estés logueado: npm whoami
  • El nombre no existe: Cambia el nombre en package.json
  • Necesitas acceso: Usa --access public para scoped packages

Recursos

Licencia

MIT