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

@ibernoh/arkanjs

v0.2.6

Published

Backend API generator with RBAC, CLI scaffolding, and built-in structure. Just install and run.

Readme

ArkanJS — Modular APIs Generator com RBAC markdown

⚡ ArkanJS · Modular API Generator com RBAC, CLI e Desenvolvimento Vertical

ArkanJS é uma ferramenta de linha de comando (CLI) voltada para desenvolvedores que desejam construir backends expressivos e seguros com rapidez. Oferece suporte completo para autenticação com JWT, controle de acesso via papéis e permissões (RBAC), geração automatizada de recursos e documentação interativa.


🔐 Autenticação com RBAC

O sistema de autenticação do ArkanJS utiliza JWT combinado com RBAC (Role-Based Access Control), permitindo que usuários possuam múltiplos cargos e que cada cargo tenha permissões específicas atribuídas.

Estrutura relacional

  • users — usuários com campos como email, senha, is_active
  • roles — cargos: admin, editor, viewer...
  • permissions — ações como create_user, edit_task, etc.
  • role_users — ponte entre usuários e cargos (N:N)
  • role_permissions — ponte entre cargos e permissões (N:N)

Middlewares disponíveis

  • authMiddleware — valida token JWT
  • requireRole("admin") — exige cargo específico
  • requirePermission("edit_user") — exige permissão específica

📦 Instalação

npm install @ibernoh/arkanjs

🚀 Uso

Após a instalação, você pode usar o ArkanJS CLI para gerar a estrutura inicial do seu projeto.

Inicialização

Para iniciar um novo projeto, execute os seguintes comandos:

npx arkanjs generate:env
npx arkanjs generate:auth

O comando generate:env cria o arquivo .env com as variáveis de ambiente necessárias, e o generate:auth cria toda a estrutura de autenticação e RBAC.

Geradores disponíveis

🔒 generate:auth

Cria automaticamente:

  • Models: User, Role, Permission, role_users, role_permissions
  • Middlewares: autenticação e proteção RBAC
  • Rota pública: POST /auth/login
  • Usuário inicial: [email protected] com cargo admin e permissão manage_users

generate:resource-auth

npx arkanjs generate:resource-auth tarefa --fields titulo:string,feito:boolean

Gera estrutura completa para recurso protegido por RBAC:

  • CRUD vertical com controller, model e rota
  • Proteção por cargo "admin" e permissões automáticas (create_tarefa, read_tarefa, etc.)

🧱 Banco e Migrations

Para rodar as migrations e seeds, utilize os comandos:

npx arkanjs migrate
npx arkanjs seed

O seed inicial garante que o sistema tenha:

  • Um usuário ativo
  • A role "admin" pré-criada
  • Permissões básicas
  • Relacionamentos configurados

🗂️ Estrutura de diretórios src/ models/ auth/ → estrutura de autenticação + RBAC tarefa/ → exemplo de recurso protegido controllers/ middlewares/ routes/ 🔑 Uso básico da API Login http POST /auth/login Body: { "email": "[email protected]", "password": "secret123" } Rota protegida http GET /tarefa/ Headers: Authorization: Bearer → Protegida por cargo "admin" e permissão "read_tarefa" 📝 Documentação interativa bash http://localhost:3000/doc Serve o conteúdo Markdown do arquivo Doc.md renderizado em HTML para consulta via navegador.

💙 Filosofia do ArkanJS "Mais que gerar código, o ArkanJS cria estrutura, segurança e significado."

Com base modular, fluxo vertical e RBAC embutido, o ArkanJS nasceu pra escalar — seja pra criar um MVP rápido ou um painel administrativo completo.

🔧 Tecnologias Camada Tecnologia Servidor Express.js ORM Sequelize Autenticação JWT + Bcrypt CLI Generator Commander Templates EJS Ambiente dotenv Documentação marked 📝 Licença MIT © 2025 — Iberno Hoffmann ArkanJS nasceu da ideia de que backends merecem elegância. Construído com 💙, música clássica e arquitetura digital.

⚙️ Referência de Comandos CLI

arkanjs new <name>

📦 Cria um novo projeto ArkanJS.

Opções:

  • --no-docs: Pula a criação do arquivo Doc.md e da rota /doc.

Exemplo:

arkanjs new my-new-project --no-docs

arkanjs make:resource <name>

📄 Gera um recurso público (model, controller e rota).

Opções:

  • --fields <fields>: Define os campos do modelo no formato nome:tipo,outroNome:outroTipo.

Exemplo:

arkanjs make:resource product --fields name:string,price:float,inStock:boolean

arkanjs make:resource-auth <name>

🔐 Gera um recurso protegido por JWT e controle de acesso baseado em papéis (RBAC).

Opções:

  • --fields <fields>: Define os campos do modelo no formato titulo:string,feito:boolean.

Exemplo:

arkanjs make:resource-auth task --fields title:string,completed:boolean

arkanjs make:auth

🛡️ Gera um sistema completo de autenticação JWT com RBAC.

Exemplo:

arkanjs make:auth

arkanjs clean:auth

🧨 Remove todos os arquivos e pastas relacionados ao sistema de autenticação.

Exemplo:

arkanjs clean:auth

arkanjs clean:resource-auth <name>

🧼 Remove os arquivos e pastas de um recurso protegido.

Exemplo:

arkanjs clean:resource-auth task

arkanjs make:migration <name>

📦 Cria um novo arquivo de migração para o banco de dados.

Exemplo:

arkanjs make:migration add_users_table

arkanjs make:seed <name>

🌱 Cria um novo arquivo de seed para o banco de dados.

Exemplo:

arkanjs make:seed initial_admin_user

arkanjs migrate

🧱 Executa todas as migrações pendentes no banco de dados.

Exemplo:

arkanjs migrate

arkanjs seed

🌿 Executa todos os arquivos de seed no banco de dados.

Exemplo:

arkanjs seed

arkanjs reverse

📥 Realiza engenharia reversa de modelos a partir de um banco de dados existente.

Exemplo:

arkanjs reverse

arkanjs list

📂 Lista todos os recursos gerados no projeto.

Exemplo:

arkanjs list