@nimbuslab/cli 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION-ROADMAP.md +201 -0
- package/README.md +77 -64
- package/dist/index.js +614 -20
- package/docs/analyze.md +148 -0
- package/docs/create.md +219 -0
- package/docs/migrate.md +177 -0
- package/docs/package.md +229 -0
- package/docs/upgrade.md +152 -0
- package/package.json +1 -1
- package/src/commands/analyze.ts +210 -0
- package/src/commands/lola.ts +201 -0
- package/src/commands/upgrade.ts +251 -0
- package/src/index.ts +29 -3
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# Roadmap - Sistema de Migracao nimbuslab
|
|
2
|
+
|
|
3
|
+
> Lola Migration Assistant - Facilitar migracoes de projetos para o ecossistema nimbuslab
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Visao Geral
|
|
8
|
+
|
|
9
|
+
O sistema de migracao permite:
|
|
10
|
+
1. **Analisar** projetos existentes (detectar stack)
|
|
11
|
+
2. **Planejar** caminho de migracao
|
|
12
|
+
3. **Executar** transformacoes automaticas (codemods)
|
|
13
|
+
4. **Verificar** resultado final
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Fase 1: Fundacao (v0.9.0)
|
|
18
|
+
|
|
19
|
+
### M80: Estrutura base do sistema de migracao
|
|
20
|
+
- [ ] Criar `src/commands/migrate.ts`
|
|
21
|
+
- [ ] Criar `src/commands/analyze.ts`
|
|
22
|
+
- [ ] Criar `src/commands/upgrade.ts`
|
|
23
|
+
- [ ] Estrutura de pastas para codemods
|
|
24
|
+
|
|
25
|
+
### M81: Comando `nimbus analyze`
|
|
26
|
+
- [ ] Detectar package.json (name, version, dependencies)
|
|
27
|
+
- [ ] Detectar framework (Next.js, React, Angular, Vue, etc)
|
|
28
|
+
- [ ] Detectar styling (Tailwind, CSS Modules, styled-components)
|
|
29
|
+
- [ ] Detectar package manager (bun, pnpm, npm, yarn)
|
|
30
|
+
- [ ] Detectar monorepo (Turborepo, Nx, Lerna)
|
|
31
|
+
- [ ] Detectar auth (Better Auth, NextAuth, Clerk, etc)
|
|
32
|
+
- [ ] Detectar DB (Drizzle, Prisma, TypeORM, etc)
|
|
33
|
+
- [ ] Output: JSON com analise completa
|
|
34
|
+
|
|
35
|
+
### M82: Comando `nimbus upgrade --plan`
|
|
36
|
+
- [ ] Comparar versoes atuais com recomendadas
|
|
37
|
+
- [ ] Listar breaking changes conhecidos
|
|
38
|
+
- [ ] Gerar plano de upgrade
|
|
39
|
+
- [ ] Estimar complexidade (low/medium/high)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Fase 2: Codemods (v0.10.0)
|
|
44
|
+
|
|
45
|
+
### M83: Infraestrutura de codemods
|
|
46
|
+
- [ ] Criar `src/codemods/` estrutura
|
|
47
|
+
- [ ] Runner de codemods (jscodeshift ou ts-morph)
|
|
48
|
+
- [ ] Sistema de dry-run (preview)
|
|
49
|
+
- [ ] Rollback automatico em caso de erro
|
|
50
|
+
|
|
51
|
+
### M84: Codemod Tailwind 3 -> 4
|
|
52
|
+
- [ ] Migrar classes depreciadas
|
|
53
|
+
- [ ] Atualizar config (tailwind.config.js -> CSS)
|
|
54
|
+
- [ ] Converter @apply para novo formato
|
|
55
|
+
- [ ] Atualizar imports
|
|
56
|
+
|
|
57
|
+
### M85: Codemod React 18 -> 19
|
|
58
|
+
- [ ] Remover forwardRef (nao mais necessario)
|
|
59
|
+
- [ ] Atualizar tipos (ref como prop)
|
|
60
|
+
- [ ] Ajustar Suspense boundaries
|
|
61
|
+
- [ ] Atualizar async components
|
|
62
|
+
|
|
63
|
+
### M86: Codemod pnpm -> bun
|
|
64
|
+
- [ ] Converter pnpm-lock.yaml para bun.lockb
|
|
65
|
+
- [ ] Atualizar scripts no package.json
|
|
66
|
+
- [ ] Remover .npmrc especifico pnpm
|
|
67
|
+
- [ ] Atualizar CI/CD configs
|
|
68
|
+
|
|
69
|
+
### M87: Codemod Prisma -> Drizzle
|
|
70
|
+
- [ ] Converter schema.prisma para drizzle schema
|
|
71
|
+
- [ ] Gerar migrations Drizzle
|
|
72
|
+
- [ ] Atualizar queries (findMany -> select, etc)
|
|
73
|
+
- [ ] Atualizar auth config
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Fase 3: Templates Modulares (v0.11.0)
|
|
78
|
+
|
|
79
|
+
### M88: Refatorar templates em camadas
|
|
80
|
+
- [ ] Extrair `layers/base` (tsconfig, eslint, prettier)
|
|
81
|
+
- [ ] Extrair `layers/nextjs` (next.config, app structure)
|
|
82
|
+
- [ ] Extrair `layers/tailwind` (tailwind config, globals.css)
|
|
83
|
+
- [ ] Extrair `layers/shadcn` (components.json, ui/)
|
|
84
|
+
- [ ] Extrair `layers/auth` (Better Auth setup)
|
|
85
|
+
- [ ] Extrair `layers/db` (Drizzle setup)
|
|
86
|
+
- [ ] Extrair `layers/monorepo` (Turborepo config)
|
|
87
|
+
|
|
88
|
+
### M89: Comando `nimbus add <layer>`
|
|
89
|
+
- [ ] `nimbus add auth` - Adiciona Better Auth
|
|
90
|
+
- [ ] `nimbus add db` - Adiciona Drizzle
|
|
91
|
+
- [ ] `nimbus add shadcn` - Adiciona shadcn/ui
|
|
92
|
+
- [ ] `nimbus add monorepo` - Converte para Turborepo
|
|
93
|
+
- [ ] Detectar conflitos antes de aplicar
|
|
94
|
+
- [ ] Merge inteligente de configs
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Fase 4: Migracao Assistida (v0.12.0)
|
|
99
|
+
|
|
100
|
+
### M90: Lola Migration Assistant
|
|
101
|
+
- [ ] Criar `.claude/agents/lola-migrate.md`
|
|
102
|
+
- [ ] Criar `.gemini/lola-migrate.md`
|
|
103
|
+
- [ ] Prompts especializados para migracao
|
|
104
|
+
- [ ] Checklist interativo
|
|
105
|
+
- [ ] Documentacao de decisoes
|
|
106
|
+
|
|
107
|
+
### M91: Comando `nimbus migrate`
|
|
108
|
+
- [ ] `nimbus migrate --from=angular` - Plano Angular -> Next.js
|
|
109
|
+
- [ ] `nimbus migrate --from=php` - Plano PHP -> Next.js
|
|
110
|
+
- [ ] `nimbus migrate --from=vue` - Plano Vue -> React
|
|
111
|
+
- [ ] Gerar plano detalhado (markdown)
|
|
112
|
+
- [ ] Estimar esforco (horas/dias)
|
|
113
|
+
|
|
114
|
+
### M92: Migration Guides
|
|
115
|
+
- [ ] `knowledge/migrations/nextjs-15-to-16.md`
|
|
116
|
+
- [ ] `knowledge/migrations/tailwind-3-to-4.md`
|
|
117
|
+
- [ ] `knowledge/migrations/prisma-to-drizzle.md`
|
|
118
|
+
- [ ] `knowledge/migrations/pnpm-to-bun.md`
|
|
119
|
+
- [ ] `knowledge/migrations/angular-to-nextjs.md`
|
|
120
|
+
- [ ] `knowledge/migrations/php-laravel-to-nextjs.md`
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Fase 5: Automacao Completa (v1.0.0)
|
|
125
|
+
|
|
126
|
+
### M93: Pipeline de migracao
|
|
127
|
+
- [ ] `nimbus migrate --execute` (aplica codemods)
|
|
128
|
+
- [ ] `nimbus migrate --verify` (roda build + lint + tests)
|
|
129
|
+
- [ ] Relatorio de migracao (o que mudou, o que revisar)
|
|
130
|
+
- [ ] Integracao com CI/CD
|
|
131
|
+
|
|
132
|
+
### M94: Atualizacao automatica
|
|
133
|
+
- [ ] `nimbus upgrade` detecta atualizacoes disponiveis
|
|
134
|
+
- [ ] `nimbus upgrade --all` aplica todas seguras
|
|
135
|
+
- [ ] Notificacao de breaking changes
|
|
136
|
+
- [ ] Changelog automatico
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Prioridade de Implementacao
|
|
141
|
+
|
|
142
|
+
| Milestone | Prioridade | Dependencia |
|
|
143
|
+
|-----------|------------|-------------|
|
|
144
|
+
| M80 | Alta | - |
|
|
145
|
+
| M81 | Alta | M80 |
|
|
146
|
+
| M82 | Alta | M81 |
|
|
147
|
+
| M83 | Alta | M80 |
|
|
148
|
+
| M84 | Media | M83 |
|
|
149
|
+
| M85 | Media | M83 |
|
|
150
|
+
| M86 | Media | M83 |
|
|
151
|
+
| M87 | Media | M83 |
|
|
152
|
+
| M88 | Media | M80 |
|
|
153
|
+
| M89 | Media | M88 |
|
|
154
|
+
| M90 | Alta | M80 |
|
|
155
|
+
| M91 | Media | M81, M83 |
|
|
156
|
+
| M92 | Media | - |
|
|
157
|
+
| M93 | Baixa | M91 |
|
|
158
|
+
| M94 | Baixa | M93 |
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Stack dos Codemods
|
|
163
|
+
|
|
164
|
+
- **Parser:** ts-morph (TypeScript AST)
|
|
165
|
+
- **Runner:** Custom (baseado em jscodeshift patterns)
|
|
166
|
+
- **Configs:** JSON transforms
|
|
167
|
+
- **CSS:** PostCSS para Tailwind
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Exemplo de Uso Final
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Analisar projeto
|
|
175
|
+
nimbus analyze ./meu-projeto
|
|
176
|
+
# Output: Next.js 15, React 18, Tailwind 3, pnpm, Prisma
|
|
177
|
+
|
|
178
|
+
# Ver plano de upgrade
|
|
179
|
+
nimbus upgrade --plan
|
|
180
|
+
# Output: Recomendado: Next 16, React 19, Tailwind 4, bun, Drizzle
|
|
181
|
+
|
|
182
|
+
# Upgrade especifico
|
|
183
|
+
nimbus upgrade tailwind
|
|
184
|
+
# Executa codemod Tailwind 3 -> 4
|
|
185
|
+
|
|
186
|
+
# Adicionar camada
|
|
187
|
+
nimbus add auth
|
|
188
|
+
# Adiciona Better Auth ao projeto
|
|
189
|
+
|
|
190
|
+
# Migracao completa
|
|
191
|
+
nimbus migrate --from=angular --plan
|
|
192
|
+
# Gera plano de migracao Angular -> Next.js
|
|
193
|
+
|
|
194
|
+
# Usar Lola para assistir
|
|
195
|
+
claude --agent lola-migrate
|
|
196
|
+
# Lola especializada em migracoes
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
*Ultima atualizacao: Janeiro 2026*
|
package/README.md
CHANGED
|
@@ -1,105 +1,118 @@
|
|
|
1
1
|
# @nimbuslab/cli
|
|
2
2
|
|
|
3
|
-
CLI
|
|
4
|
-
|
|
5
|
-
## Instalacao
|
|
3
|
+
CLI oficial da nimbuslab para criar, analisar e migrar projetos.
|
|
6
4
|
|
|
7
5
|
```bash
|
|
8
|
-
# Via bun (recomendado)
|
|
9
6
|
bun add -g @nimbuslab/cli
|
|
10
|
-
|
|
11
|
-
# Via npm
|
|
12
|
-
npm install -g @nimbuslab/cli
|
|
13
7
|
```
|
|
14
8
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# Criar novo projeto (interativo)
|
|
19
|
-
nimbus create
|
|
9
|
+
---
|
|
20
10
|
|
|
21
|
-
|
|
22
|
-
nimbus create meu-projeto
|
|
11
|
+
## Comandos
|
|
23
12
|
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
| Comando | Descricao | Docs |
|
|
14
|
+
|---------|-----------|------|
|
|
15
|
+
| `nimbus create` | Criar novo projeto | [docs/create.md](./docs/create.md) |
|
|
16
|
+
| `nimbus analyze` | Analisar stack existente | [docs/analyze.md](./docs/analyze.md) |
|
|
17
|
+
| `nimbus upgrade` | Planejar upgrades | [docs/upgrade.md](./docs/upgrade.md) |
|
|
18
|
+
| `nimbus migrate` | Migrar de outras tecnologias | [docs/migrate.md](./docs/migrate.md) |
|
|
26
19
|
|
|
27
|
-
|
|
28
|
-
nimbus help
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Templates
|
|
20
|
+
---
|
|
32
21
|
|
|
33
|
-
|
|
34
|
-
|----------|-----------|-------|
|
|
35
|
-
| Landing Page | Site institucional | Next.js 16 + Tailwind 4 + shadcn/ui |
|
|
36
|
-
| Web App | Aplicacao com auth | Landing + Better Auth + Prisma |
|
|
37
|
-
| Monorepo | Multiplos apps | Turborepo + apps/packages |
|
|
22
|
+
## Quick Start
|
|
38
23
|
|
|
39
|
-
###
|
|
24
|
+
### Criar landing page
|
|
40
25
|
|
|
41
26
|
```bash
|
|
42
|
-
# Landing page
|
|
43
27
|
nimbus create meu-site --landing
|
|
28
|
+
cd meu-site
|
|
29
|
+
bun dev
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Criar web app
|
|
44
33
|
|
|
45
|
-
|
|
34
|
+
```bash
|
|
46
35
|
nimbus create meu-app --app
|
|
36
|
+
cd meu-app
|
|
37
|
+
bun setup
|
|
38
|
+
bun dev
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Analisar projeto existente
|
|
47
42
|
|
|
48
|
-
|
|
49
|
-
nimbus
|
|
43
|
+
```bash
|
|
44
|
+
nimbus analyze
|
|
45
|
+
nimbus upgrade --plan
|
|
50
46
|
```
|
|
51
47
|
|
|
52
|
-
|
|
48
|
+
---
|
|
53
49
|
|
|
54
|
-
|
|
55
|
-
|------|-----------|
|
|
56
|
-
| `-y, --yes` | Aceitar defaults |
|
|
57
|
-
| `--no-git` | Nao inicializar Git |
|
|
58
|
-
| `--no-install` | Nao instalar dependencias |
|
|
59
|
-
| `--template <url>` | Usar template customizado |
|
|
50
|
+
## Templates
|
|
60
51
|
|
|
61
|
-
|
|
52
|
+
| Template | Descricao | Docs |
|
|
53
|
+
|----------|-----------|------|
|
|
54
|
+
| `--landing` | Next.js 16 + Tailwind 4 + shadcn/ui | [docs/create.md#landing](./docs/create.md#landing-page---landing) |
|
|
55
|
+
| `--app` | Landing + Better Auth + Drizzle | [docs/create.md#app](./docs/create.md#web-app---app) |
|
|
56
|
+
| `--turborepo` | Monorepo com apps e packages | [docs/create.md#turborepo](./docs/create.md#turborepo---turborepo) |
|
|
57
|
+
| `--package` | Pacote npm com tsup + CI/CD | [docs/package.md](./docs/package.md) |
|
|
62
58
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
**Repos Open Source:**
|
|
60
|
+
- [create-next-landing](https://github.com/nimbuslab/create-next-landing)
|
|
61
|
+
- [create-next-app](https://github.com/nimbuslab/create-next-app)
|
|
62
|
+
- [create-turborepo](https://github.com/nimbuslab/create-turborepo)
|
|
66
63
|
|
|
67
|
-
|
|
68
|
-
nimbus create meu-app --app --no-install
|
|
64
|
+
---
|
|
69
65
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
66
|
+
## Stack Alvo
|
|
67
|
+
|
|
68
|
+
| Categoria | Tecnologia |
|
|
69
|
+
|-----------|------------|
|
|
70
|
+
| Framework | Next.js 16+ |
|
|
71
|
+
| Runtime | React 19+ |
|
|
72
|
+
| Styling | Tailwind CSS 4+ |
|
|
73
|
+
| Components | shadcn/ui |
|
|
74
|
+
| Package Manager | Bun |
|
|
75
|
+
| Auth | Better Auth |
|
|
76
|
+
| Database | Drizzle ORM |
|
|
77
|
+
| Monorepo | Turborepo |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Documentacao
|
|
82
|
+
|
|
83
|
+
| Arquivo | Conteudo |
|
|
84
|
+
|---------|----------|
|
|
85
|
+
| [docs/create.md](./docs/create.md) | Templates, opcoes, fluxo interativo |
|
|
86
|
+
| [docs/package.md](./docs/package.md) | Criar pacotes npm |
|
|
87
|
+
| [docs/analyze.md](./docs/analyze.md) | Deteccao de stack, recomendacoes |
|
|
88
|
+
| [docs/upgrade.md](./docs/upgrade.md) | Breaking changes, codemods |
|
|
89
|
+
| [docs/migrate.md](./docs/migrate.md) | Strangler Fig, estrategias |
|
|
90
|
+
| [MIGRATION-ROADMAP.md](./MIGRATION-ROADMAP.md) | Roadmap de migracao |
|
|
91
|
+
|
|
92
|
+
---
|
|
73
93
|
|
|
74
94
|
## Requisitos
|
|
75
95
|
|
|
76
96
|
- [Bun](https://bun.sh) - Runtime e package manager
|
|
77
97
|
- [Git](https://git-scm.com) - Controle de versao
|
|
78
98
|
|
|
79
|
-
### Instalando Bun
|
|
80
|
-
|
|
81
99
|
```bash
|
|
82
|
-
# Linux/Mac
|
|
83
100
|
curl -fsSL https://bun.sh/install | bash
|
|
84
|
-
|
|
85
|
-
# Windows (PowerShell)
|
|
86
|
-
powershell -c "irm bun.sh/install.ps1 | iex"
|
|
87
101
|
```
|
|
88
102
|
|
|
89
|
-
|
|
103
|
+
---
|
|
90
104
|
|
|
91
|
-
|
|
105
|
+
## Desenvolvimento
|
|
92
106
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
107
|
+
```bash
|
|
108
|
+
gh repo clone nimbuslab/cli
|
|
109
|
+
cd cli
|
|
110
|
+
bun install
|
|
111
|
+
bun run dev
|
|
112
|
+
```
|
|
98
113
|
|
|
99
|
-
|
|
100
|
-
- **Prompts:** @clack/prompts
|
|
101
|
-
- **Cores:** picocolors
|
|
114
|
+
---
|
|
102
115
|
|
|
103
116
|
## Licenca
|
|
104
117
|
|
|
105
|
-
|
|
118
|
+
UNLICENSED - [nimbuslab](https://nimbuslab.com.br) 2026
|