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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bethecozmo/modula

v1.0.14

Published

CLI para gerenciar módulos programáticos no sistema Modula

Downloads

11

Readme

Modula CLI

Uma interface de linha de comando (CLI) poderosa para gerenciar módulos programáticos no sistema Modula. Com a modula, você pode registrar, fazer login, listar, visualizar, baixar, enviar e excluir módulos em um servidor centralizado, otimizando o reaproveitamento de código em projetos Angular, NestJS e outras tecnologias.

Funcionalidades

  • Autenticação: Registre-se e faça login com um token seguro armazenado localmente.
  • Gerenciamento de Módulos:
    • Liste todos os módulos registrados.
    • Visualize detalhes de um módulo específico.
    • Baixe módulos e reconstrua a estrutura de arquivos localmente.
    • Envie módulos a partir de diretórios locais.
    • Exclua módulos do servidor com confirmação.
  • Configuração Flexível: Defina a URL do servidor via variável de ambiente (MODULA_API_URL).
  • Interatividade: Prompts intuitivos com suporte a máscaras para senhas.

Pré-requisitos

  • Node.js: Versão 18.x ou superior (testado com v22.18.0).
  • npm: Incluído com o Node.js.
  • Servidor Modula: Um servidor Modula rodando (padrão: http://10.8.0.2:3031).

Instalação

Instale o Modula CLI globalmente via npm:

npm install -g @bethecozmo/modula

Isso registra o comando modula para uso em qualquer diretório.

Configuração

A CLI se conecta ao servidor Modula. Por padrão, usa http://10.8.0.2:3031. Para configurar uma URL diferente:

  • Usando variável de ambiente (Linux/Mac):

    export MODULA_API_URL=https://api.modula.com

    Para tornar permanente, adicione ao ~/.bashrc ou ~/.zshrc:

    echo 'export MODULA_API_URL=https://api.modula.com' >> ~/.bashrc
    source ~/.bashrc
  • Windows (CMD):

    set MODULA_API_URL=https://api.modula.com

    Para persistência:

    setx MODULA_API_URL https://api.modula.com
  • Usando .env (opcional):

    1. Instale o dotenv:
      npm install dotenv
    2. Crie um arquivo .env no diretório onde você executa os comandos:
      MODULA_API_URL=https://api.modula.com
    3. Adicione no início do modula.js (se você tiver acesso ao código-fonte):
      require('dotenv').config();

Comandos

modula [comando]

| Comando | Descrição | |--------------------------|---------------------------------------------------------------------------| | modula register | Registra um novo usuário (nome, nickname, email, senha). | | modula login | Faz login e armazena o token em ~/.modula/config.json. | | modula logout | Remove o token armazenado. | | modula list | Lista todos os módulos registrados no servidor. | | modula view <id> | Exibe detalhes de um módulo específico pelo ID. | | modula download <id> | Baixa o conteúdo de um módulo e o reconstrói localmente (padrão: diretório atual). | | modula upload <localPath> | Envia um diretório local como novo módulo, com nome, descrição e ferramenta. | | modula delete <id> | Exclui um módulo do servidor (com confirmação). |

Use modula help ou modula [comando] --help para mais detalhes.

Exemplos

  1. Registrar um usuário:

    modula register
    • Digite nome, nickname, email e senha quando solicitado.
  2. Fazer login:

    modula login
    • Insira email e senha. O token será salvo em ~/.modula/config.json.
  3. Listar módulos:

    modula list
    • Exibe IDs, nomes, descrições e ferramentas dos módulos.
  4. Visualizar um módulo:

    modula view 68ba9832f3b5029aed2ea274
  5. Baixar um módulo:

    modula download 68ba9832f3b5029aed2ea274
    • Reconstrói a estrutura do módulo no diretório atual com o nome registrado do módulo.
  6. Enviar um módulo:

    modula upload ./src/app/test-module
    • Captura a estrutura de diretórios em ./src/app/test-module e solicita nome, descrição e ferramenta (ex.: angular, nestjs).
  7. Excluir um módulo:

    modula delete 68ba9832f3b5029aed2ea274
    • Confirma antes de excluir.

Estrutura do Módulo

Os módulos enviados ou baixados seguem o formato:

{
  "name": "Test Module",
  "description": "This is a description for Test Module",
  "path": "src/app/test-module",
  "tool": "angular",
  "nodes": [
    {
      "type": "file",
      "name": "main.txt",
      "content": "Hello, world!"
    },
    {
      "type": "directory",
      "name": "segredos",
      "children": [
        {
          "type": "file",
          "name": "elogios.txt",
          "content": "você é muito cheiroso(a)"
        }
      ]
    }
  ]
}

Notas (Desconsidere se não fará manutenção)

  • Autenticação: Todos os comandos, exceto register e login, requerem um token válido (obtido via login).
  • Servidor: Certifique-se de que o servidor Modula está rodando e acessível na URL configurada.
  • Erro na rota DELETE: O comando delete usa DELETE /module/:id. Confirme com o backend se a rota está correta.
  • Token: O login assume que a rota /auth/login retorna { access_token: '...' }. Ajuste o código se o formato for diferente.

Solução de Problemas

  • Erro: "command not found: modula":
    • Verifique se instalou globalmente com npm install -g @bethecozmo/modula.
    • Confirme que o npm global está no PATH: npm bin -g.
  • Erro: "Você precisa logar primeiro":
    • Execute modula login antes de usar outros comandos.
  • Erro de conexão com o servidor:
    • Verifique se o servidor está rodando e se MODULA_API_URL está correto.

Publicação no npm (para mantenedores)

  1. Crie uma conta no npmjs.com.
  2. No diretório do projeto, faça login:
    npm login
  3. Publique o pacote:
    npm publish --access public
    • Nota: O nome modula no package.json deve ser único. Se já estiver em uso, escolha outro nome ou use um escopo (ex.: @seu-nome/modula).

Contribuindo

Sinta-se à vontade para abrir issues ou pull requests no repositório oficial (se disponível). Para feedback, entre em contato com a equipe de desenvolvimento.

Licença

MIT License. Veja LICENSE para detalhes.