smoonb 0.0.6 → 0.0.8

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.
Files changed (35) hide show
  1. package/.smoonbrc +7 -6
  2. package/.smoonbrc.example +2 -1
  3. package/README.md +164 -164
  4. package/backups/backup-2025-10-17T19-52-20-211Z/auth-config.json +7 -0
  5. package/backups/backup-2025-10-17T19-52-20-211Z/backup-manifest.json +19 -0
  6. package/backups/backup-2025-10-17T19-52-20-211Z/database-2025-10-17T19-52-20-215Z.dump +0 -0
  7. package/backups/backup-2025-10-17T19-52-20-211Z/functions/README.md +4 -0
  8. package/backups/backup-2025-10-17T19-52-20-211Z/realtime-config.json +7 -0
  9. package/backups/backup-2025-10-17T19-52-20-211Z/storage/storage-config.json +6 -0
  10. package/backups/backup-2025-10-17T20-38-13-188Z/auth-config.json +7 -0
  11. package/backups/backup-2025-10-17T20-38-13-188Z/backup-manifest.json +19 -0
  12. package/backups/backup-2025-10-17T20-38-13-188Z/database-2025-10-17T20-38-13-194Z.dump +0 -0
  13. package/backups/backup-2025-10-17T20-38-13-188Z/functions/README.md +4 -0
  14. package/backups/backup-2025-10-17T20-38-13-188Z/realtime-config.json +7 -0
  15. package/backups/backup-2025-10-17T20-38-13-188Z/storage/storage-config.json +6 -0
  16. package/bin/smoonb.js +16 -32
  17. package/package.json +1 -1
  18. package/src/commands/backup.js +140 -239
  19. package/src/commands/check.js +209 -349
  20. package/src/commands/config.js +78 -77
  21. package/src/commands/functions.js +123 -349
  22. package/src/commands/restore.js +122 -294
  23. package/src/index.js +12 -21
  24. package/src/services/introspect.js +299 -0
  25. package/src/utils/cli.js +87 -0
  26. package/src/utils/config.js +140 -0
  27. package/src/utils/fsx.js +110 -0
  28. package/src/utils/hash.js +40 -0
  29. package/src/utils/supabase.js +447 -387
  30. package/src/commands/secrets.js +0 -361
  31. /package/{backup → backups}/backup-2025-10-17T19-18-58-539Z/auth-config.json +0 -0
  32. /package/{backup → backups}/backup-2025-10-17T19-18-58-539Z/backup-manifest.json +0 -0
  33. /package/{backup → backups}/backup-2025-10-17T19-18-58-539Z/functions/README.md +0 -0
  34. /package/{backup → backups}/backup-2025-10-17T19-18-58-539Z/realtime-config.json +0 -0
  35. /package/{backup → backups}/backup-2025-10-17T19-18-58-539Z/storage/storage-config.json +0 -0
package/.smoonbrc CHANGED
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "supabase": {
3
- "projectId": "your-project-id-here",
4
- "url": "https://your-project.supabase.co",
5
- "serviceKey": "your-service-key-here",
6
- "anonKey": "your-anon-key-here",
7
- "databaseUrl": "postgresql://postgres:[password]@db.your-project.supabase.co:5432/postgres"
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "url": "https://dfgdfgdfgdfgdfgdfg.supabase.co",
5
+ "serviceKey": "sdfsdfsdfsdfsdfgyjyuiuyjyujuyjyujuyjyujuy",
6
+ "anonKey": "uyjyujyujyhmnbmbghjghjghghjghjghjghj",
7
+ "databaseUrl": "postgresql://postgres:ghjghjghjghjghjghjghj@db.sdfsdfsdfsdfsdfsdfsdfsdf.supabase.co:5432/postgres"
8
8
  },
9
9
  "backup": {
10
10
  "includeFunctions": true,
11
11
  "includeStorage": true,
12
12
  "includeAuth": true,
13
13
  "includeRealtime": true,
14
- "outputDir": "./backups"
14
+ "outputDir": "./backups",
15
+ "pgDumpPath": "C:\\Program Files\\PostgreSQL\\17\\bin\\pg_dump.exe"
15
16
  },
16
17
  "restore": {
17
18
  "cleanRestore": false,
package/.smoonbrc.example CHANGED
@@ -11,7 +11,8 @@
11
11
  "includeStorage": true,
12
12
  "includeAuth": true,
13
13
  "includeRealtime": true,
14
- "outputDir": "./backups"
14
+ "outputDir": "./backups",
15
+ "pgDumpPath": "C:\\Program Files\\PostgreSQL\\17\\bin\\pg_dump.exe"
15
16
  },
16
17
  "restore": {
17
18
  "cleanRestore": false,
package/README.md CHANGED
@@ -1,227 +1,227 @@
1
- # smoonb 🚀
1
+ # smoonb
2
2
 
3
- > **⚠️ VERSÃO EXPERIMENTAL - NÃO TESTADA - USE POR SUA CONTA E RISCO ⚠️**
3
+ **Complete Supabase backup and migration tool**
4
4
 
5
- ## 🚨 **AVISO IMPORTANTE - LEIA ANTES DE USAR**
5
+ ## ⚠️ EXPERIMENTAL VERSION - NÃO TESTADA - USE POR SUA CONTA E RISCO
6
6
 
7
- **Este software está em desenvolvimento inicial e NUNCA foi testado em produção.**
7
+ **🚨 AVISO IMPORTANTE:**
8
+ - Este software **NUNCA** foi testado em produção
9
+ - **USE POR SUA CONTA E RISCO** - Pode causar perda irreparável de dados
10
+ - **NÃO NOS RESPONSABILIZAMOS** por qualquer perda de dados
11
+ - **NENHUM SUPORTE** é oferecido nesta fase - apenas aceitamos contribuições
8
12
 
9
- - ❌ **NÃO TESTE** este aplicativo em projetos importantes
10
- - ❌ **NÃO USE** em dados críticos ou produção
11
- - ⚠️ **RESULTADOS IMPREVISÍVEIS** - podem causar perdas irreparáveis de dados
12
- - ⚠️ **NÃO NOS RESPONSABILIZAMOS** por qualquer perda de dados
13
- - ⚠️ **USE POR SUA CONTA E RISCO** - você é o único responsável
13
+ **Desenvolvido por:** Goalmoon Tecnologia LTDA (https://goalmoon.com)
14
14
 
15
- **Desenvolvido por:** [Goalmoon Tecnologia LTDA](https://goalmoon.com)
15
+ ## 🎯 Objetivo
16
16
 
17
- ## 🎯 O Problema que Resolvemos
17
+ O **smoonb** resolve o problema das ferramentas existentes que fazem backup apenas da database PostgreSQL, ignorando componentes críticos do Supabase:
18
18
 
19
- As ferramentas existentes fazem apenas backup da database PostgreSQL, ignorando componentes críticos:
19
+ - **Database PostgreSQL** (roles, schema, data)
20
+ - ✅ **Edge Functions** (código local)
21
+ - ✅ **Auth Settings** (configurações de autenticação)
22
+ - ✅ **Storage Objects** (buckets e metadados)
23
+ - ✅ **Realtime Settings** (publicações e configurações)
24
+ - ✅ **Inventário Completo** (extensões, políticas RLS, etc.)
20
25
 
21
- - **Edge Functions** - Código serverless perdido
22
- - ❌ **Auth Settings** - Configurações de autenticação perdidas
23
- - ❌ **Storage Objects** - Arquivos e buckets perdidos
24
- - ❌ **Realtime Settings** - Configurações de tempo real perdidas
26
+ ## 🚀 Instalação
25
27
 
26
- **Resultado**: Falhas na restauração e perda de funcionalidades essenciais.
27
-
28
- ## Nossa Solução
29
-
30
- smoonb é a **primeira ferramenta** que faz backup **COMPLETO** do Supabase:
28
+ ```bash
29
+ # Instalar localmente no projeto
30
+ npm install smoonb
31
31
 
32
- - **Database PostgreSQL** - Backup completo com pg_dump
33
- - **Edge Functions** - Código e configurações
34
- - ✅ **Auth Settings** - Políticas e configurações
35
- - ✅ **Storage Objects** - Arquivos e metadados
36
- - ✅ **Realtime Settings** - Configurações de tempo real
37
- - ✅ **Metadados** - Todas as configurações do projeto
32
+ # Usar com npx
33
+ npx smoonb --help
34
+ ```
38
35
 
39
- ## 🚀 Comandos Principais
36
+ ## 📋 Pré-requisitos
40
37
 
38
+ ### 1. Supabase CLI
41
39
  ```bash
42
- # Backup completo do projeto
43
- smoonb backup
40
+ npm install -g supabase
41
+ ```
44
42
 
45
- # Restauração completa
46
- smoonb restore
43
+ ### 2. PostgreSQL (psql)
44
+ - **Windows**: https://www.postgresql.org/download/windows/
45
+ - **macOS**: `brew install postgresql`
46
+ - **Linux**: `sudo apt-get install postgresql-client`
47
47
 
48
- # Gerenciamento de secrets
49
- smoonb secrets export
50
- smoonb secrets import
48
+ ## ⚙️ Configuração
51
49
 
52
- # Deploy de Edge Functions
53
- smoonb functions push
50
+ ### 1. Inicializar configuração
51
+ ```bash
52
+ npx smoonb config --init
53
+ ```
54
54
 
55
- # Checklist pós-restore
56
- smoonb check
55
+ ### 2. Editar `.smoonbrc`
56
+ ```json
57
+ {
58
+ "supabase": {
59
+ "projectId": "seu-project-id",
60
+ "url": "https://seu-project-id.supabase.co",
61
+ "serviceKey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
62
+ "anonKey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
63
+ "databaseUrl": "postgresql://postgres:[senha]@db.seu-project-id.supabase.co:5432/postgres"
64
+ },
65
+ "backup": {
66
+ "includeFunctions": true,
67
+ "includeStorage": true,
68
+ "includeAuth": true,
69
+ "includeRealtime": true,
70
+ "outputDir": "./backups"
71
+ },
72
+ "restore": {
73
+ "cleanRestore": true,
74
+ "verifyAfterRestore": true
75
+ }
76
+ }
57
77
  ```
58
78
 
59
- ## 📊 Comparação: smoonb vs Outras Ferramentas
79
+ ### 3. Obter credenciais no Dashboard Supabase
60
80
 
61
- | Funcionalidade | smoonb | Outras Ferramentas |
62
- |---|---|---|
63
- | Database PostgreSQL | Completo | Completo |
64
- | Edge Functions | Backup + Restore | ❌ Não suportado |
65
- | Auth Settings | ✅ Backup + Restore | ❌ Não suportado |
66
- | Storage Objects | ✅ Backup + Restore | ❌ Não suportado |
67
- | Realtime Settings | ✅ Backup + Restore | ❌ Não suportado |
68
- | Metadados | ✅ Completo | ❌ Parcial |
69
- | CLI Simples | ✅ Intuitivo | ⚠️ Complexo |
70
- | Restauração Confiável | ✅ 100% | ⚠️ Parcial |
81
+ 1. **Project ID**: Settings General Reference ID
82
+ 2. **URL**: Settings → API → Project URL
83
+ 3. **Keys**: Settings API Project API keys
84
+ 4. **Database URL**: Settings Database Connection string
71
85
 
72
- ## 🛠️ Instalação
86
+ ## 🎯 Uso
73
87
 
88
+ ### Backup Completo
74
89
  ```bash
75
- # Instalação global
76
- npm install -g smoonb
77
-
78
- # Ou uso local
79
- npx smoonb --help
90
+ npx smoonb backup
80
91
  ```
81
92
 
82
- ## ⚡ Quick Start
93
+ **Resultado:**
94
+ ```
95
+ backups/backup-2024-01-15T10-30-45-123Z/
96
+ ├── backup-manifest.json
97
+ ├── roles.sql
98
+ ├── schema.sql
99
+ ├── data.sql
100
+ ├── inventory/
101
+ │ ├── extensions.json
102
+ │ ├── tables.json
103
+ │ ├── policies.json
104
+ │ ├── realtime.json
105
+ │ └── storage.json
106
+ └── functions/
107
+ └── [código das Edge Functions locais]
108
+ ```
83
109
 
110
+ ### Restauração
84
111
  ```bash
85
- # 1. Configure suas credenciais Supabase
86
- smoonb config
87
-
88
- # 2. Faça backup completo
89
- smoonb backup --project-id your-project-id
90
-
91
- # 3. Restaure em outro projeto
92
- smoonb restore --project-id target-project-id
93
-
94
- # 4. Verifique a restauração
95
- smoonb check --project-id target-project-id
112
+ npx smoonb restore --backup-dir backups/backup-2024-01-15T10-30-45-123Z
96
113
  ```
97
114
 
98
- ## 📋 Exemplos de Uso
115
+ **Processo:**
116
+ 1. Verifica se database está vazia (clean restore)
117
+ 2. Executa `roles.sql` (roles e permissões)
118
+ 3. Executa `schema.sql` (estrutura das tabelas)
119
+ 4. Executa `data.sql` (dados com COPY)
99
120
 
100
- ### Backup Completo
121
+ ### Verificação Pós-Restore
101
122
  ```bash
102
- smoonb backup \
103
- --project-id abc123def456 \
104
- --output ./backup-$(date +%Y%m%d) \
105
- --include-functions \
106
- --include-storage \
107
- --include-auth
123
+ npx smoonb check
108
124
  ```
109
125
 
110
- ### Restauração com Verificação
111
- ```bash
112
- smoonb restore \
113
- --project-id xyz789uvw012 \
114
- --backup-dir ./backup-20241201 \
115
- --verify \
116
- --clean-restore
117
- ```
126
+ **Verifica:**
127
+ - ✅ Conexão com database
128
+ - Extensões instaladas
129
+ - Tabelas criadas
130
+ - Políticas RLS
131
+ - ✅ Publicações Realtime
132
+ - ✅ Buckets de Storage
118
133
 
119
- ### Migração Entre Projetos
134
+ ### Edge Functions
120
135
  ```bash
121
- # 1. Backup do projeto origem
122
- smoonb backup --project-id source-project
123
-
124
- # 2. Export secrets (opcional)
125
- smoonb secrets export --project-id source-project
126
-
127
- # 3. Restore no projeto destino
128
- smoonb restore --project-id target-project
129
-
130
- # 4. Import secrets (opcional)
131
- smoonb secrets import --project-id target-project
136
+ # Listar functions
137
+ npx smoonb functions list
132
138
 
133
- # 5. Verificação final
134
- smoonb check --project-id target-project
139
+ # Deploy functions
140
+ npx smoonb functions push
135
141
  ```
136
142
 
137
- ## 🔧 Configuração
143
+ ## 🔧 Comandos Disponíveis
138
144
 
139
- Crie um arquivo `.smoonbrc` na raiz do seu projeto:
140
-
141
- ```json
142
- {
143
- "supabase": {
144
- "url": "https://your-project.supabase.co",
145
- "serviceKey": "your-service-key"
146
- },
147
- "backup": {
148
- "includeFunctions": true,
149
- "includeStorage": true,
150
- "includeAuth": true,
151
- "outputDir": "./backups"
152
- }
153
- }
154
- ```
145
+ | Comando | Descrição |
146
+ |---------|-----------|
147
+ | `npx smoonb backup` | Backup completo usando Supabase CLI |
148
+ | `npx smoonb restore` | Restauração usando psql |
149
+ | `npx smoonb check` | Verificação de integridade |
150
+ | `npx smoonb functions` | Gerenciar Edge Functions |
151
+ | `npx smoonb config` | Configurar credenciais |
155
152
 
156
- ## 📝 Licenciamento
153
+ ## 🏗️ Arquitetura Técnica
157
154
 
158
- ### 🆓 Versão Experimental Gratuita (Versões 0.x.x)
155
+ ### Backup Strategy
156
+ - **Database**: `supabase db dump` → `roles.sql`, `schema.sql`, `data.sql`
157
+ - **Inventário**: Queries SQL + Supabase API para metadados
158
+ - **Edge Functions**: Cópia do código local (`supabase/functions/`)
159
159
 
160
- - **Uso gratuito** para projetos pessoais e comerciais
161
- - **Sem restrições** de funcionalidades
162
- - **SEM SUPORTE** - apenas aceitamos contribuições
163
- - ⚠️ **USE POR SUA CONTA E RISCO** - software não testado
160
+ ### Restore Strategy
161
+ - **Clean Restore**: Verifica database vazia antes de restaurar
162
+ - **Ordem**: roles schema data (com transação única para dados)
163
+ - **Verificação**: Checklist automático pós-restore
164
164
 
165
- ### 💼 Licença Comercial (Versões 1.0.0+)
165
+ ### Multiplataforma
166
+ - **Windows/macOS/Linux**: Detecção automática de binários
167
+ - **Cross-platform**: Usa `fs.promises.cp`, `path.join`, `spawn`
168
+ - **Sem dependências específicas**: Funciona em qualquer SO
166
169
 
167
- **AVISO**: A partir da versão 1.0.0, o smoonb será licenciado comercialmente.
170
+ ## 📊 Fluxo Recomendado
168
171
 
169
- - 📧 **Aviso prévio**: Mudanças serão anunciadas 90 dias antes
170
- - 💰 **Desconto especial**: Usuários experimentais terão condições preferenciais
171
- - 🔄 **Migração suave**: Processo transparente e bem comunicado
172
+ ```bash
173
+ # 1. Backup do projeto origem
174
+ npx smoonb backup
172
175
 
173
- [📖 Leia a licença completa](./LICENSE.md)
176
+ # 2. Criar novo projeto Supabase
177
+ # (via Dashboard ou Supabase CLI)
174
178
 
175
- ## 🤝 Contribuição
179
+ # 3. Configurar .smoonbrc com credenciais do novo projeto
180
+ npx smoonb config --init
176
181
 
177
- **Este é um projeto experimental - contribuições são bem-vindas!**
182
+ # 4. Restaurar backup
183
+ npx smoonb restore --backup-dir backups/backup-YYYY-MM-DDTHH-MM-SS-sssZ
178
184
 
179
- 1. Fork o projeto
180
- 2. Crie uma branch (`git checkout -b feature/nova-funcionalidade`)
181
- 3. Commit suas mudanças (`git commit -m 'Adiciona nova funcionalidade'`)
182
- 4. Push para a branch (`git push origin feature/nova-funcionalidade`)
183
- 5. Abra um Pull Request
185
+ # 5. Verificar integridade
186
+ npx smoonb check
184
187
 
185
- ## 🐛 Reportar Bugs
188
+ # 6. Deploy Edge Functions (se necessário)
189
+ npx smoonb functions push
190
+ ```
186
191
 
187
- Encontrou um bug? [Abra uma issue](https://github.com/almmello/smoonb/issues) com:
192
+ ## 🐛 Troubleshooting
188
193
 
189
- - Descrição detalhada do problema
190
- - Passos para reproduzir
191
- - Logs de erro (se houver)
192
- - Versão do smoonb e Node.js
194
+ ### Supabase CLI não encontrado
195
+ ```bash
196
+ npm install -g supabase
197
+ ```
193
198
 
194
- ## 📞 Suporte e Contato
199
+ ### psql não encontrado
200
+ - **Windows**: Instalar PostgreSQL
201
+ - **macOS**: `brew install postgresql`
202
+ - **Linux**: `sudo apt-get install postgresql-client`
195
203
 
196
- - 🐛 **Bugs**: [GitHub Issues](https://github.com/almmello/smoonb/issues)
197
- - 💬 **Discussões**: [GitHub Discussions](https://github.com/almmello/smoonb/discussions)
198
- - 📧 **Licenciamento**: licensing@goalmoon.com
199
- - 🏢 **Empresa**: [Goalmoon Tecnologia LTDA](https://goalmoon.com)
204
+ ### Database URL incorreta
205
+ - Verificar senha na URL de conexão
206
+ - Usar Connection string do Dashboard Supabase
207
+ - Testar conexão: `psql "sua-database-url" -c "SELECT 1"`
200
208
 
201
- ### Apoie o Desenvolvimento
209
+ ## 📝 Licença
202
210
 
203
- Se este projeto te ajudou e você gostaria de apoiar o desenvolvimento:
211
+ **Versões 0.x.x**: Uso gratuito (experimental)
212
+ **Versões 1.0.0+**: Licença comercial (anúncio com 90 dias de antecedência)
204
213
 
205
- - **Compre um café**: [Link de pagamento](https://buy.stripe.com/aFadR99XtbTNb18egpbfO02)
206
- - ⭐ **Dê uma estrela** no GitHub
207
- - 🐛 **Reporte bugs** e contribua com melhorias
208
- - 📢 **Compartilhe** com outros desenvolvedores
214
+ ## 🤝 Contribuição
209
215
 
210
- **⚠️ IMPORTANTE**: Este software está em desenvolvimento inicial e NUNCA foi testado em produção. Não oferecemos suporte técnico neste estágio - apenas aceitamos contribuições da comunidade.
216
+ Contribuições são bem-vindas! Este é um projeto experimental e precisamos de feedback da comunidade.
211
217
 
212
- ## 📄 Changelog
218
+ ## Apoie o Projeto
213
219
 
214
- ### v0.0.1 (EXPERIMENTAL)
215
- - 🎉 Lançamento inicial da versão experimental
216
- - ⚠️ **NUNCA TESTADO EM PRODUÇÃO** - use por sua conta e risco
217
- - ✅ Backup completo de projetos Supabase (implementação inicial)
218
- - ✅ Restauração com verificação (implementação inicial)
219
- - ✅ Suporte a Edge Functions, Auth, Storage e Realtime (implementação inicial)
220
- - ✅ CLI intuitivo e documentação completa
221
- - 🏢 Desenvolvido por Goalmoon Tecnologia LTDA
220
+ Se este projeto for útil para você, considere comprar um café:
221
+ [Compre um café](https://pag.ae/7Yj8QjQjQ)
222
222
 
223
223
  ---
224
224
 
225
- **smoonb** - A ferramenta definitiva para backup e migração de projetos Supabase 🚀
226
-
227
- *Desenvolvido com ❤️ para a comunidade Supabase*
225
+ **Desenvolvido por:** Goalmoon Tecnologia LTDA
226
+ **Website:** https://goalmoon.com
227
+ **GitHub:** https://github.com/almmello/smoonb
@@ -0,0 +1,7 @@
1
+ {
2
+ "timestamp": "2025-10-17T19:52:20.446Z",
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "providers": [],
5
+ "policies": [],
6
+ "settings": {}
7
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "timestamp": "2025-10-17T19:52:20.452Z",
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "version": "0.1.0-beta",
5
+ "components": {
6
+ "database": false,
7
+ "functions": true,
8
+ "auth": true,
9
+ "storage": true,
10
+ "realtime": true
11
+ },
12
+ "files": {
13
+ "database": null,
14
+ "functions": "functions/",
15
+ "auth": "auth-config.json",
16
+ "storage": "storage/",
17
+ "realtime": "realtime-config.json"
18
+ }
19
+ }
@@ -0,0 +1,4 @@
1
+ # Edge Functions Backup
2
+
3
+ Nenhuma Edge Function local foi encontrada.
4
+ Use o Supabase CLI para fazer backup das functions remotas.
@@ -0,0 +1,7 @@
1
+ {
2
+ "timestamp": "2025-10-17T19:52:20.450Z",
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "enabled": false,
5
+ "channels": [],
6
+ "settings": {}
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "timestamp": "2025-10-17T19:52:20.449Z",
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "buckets": [],
5
+ "objects": []
6
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "timestamp": "2025-10-17T20:38:13.574Z",
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "providers": [],
5
+ "policies": [],
6
+ "settings": {}
7
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "timestamp": "2025-10-17T20:38:13.584Z",
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "version": "0.1.0-beta",
5
+ "components": {
6
+ "database": false,
7
+ "functions": true,
8
+ "auth": true,
9
+ "storage": true,
10
+ "realtime": true
11
+ },
12
+ "files": {
13
+ "database": null,
14
+ "functions": "functions/",
15
+ "auth": "auth-config.json",
16
+ "storage": "storage/",
17
+ "realtime": "realtime-config.json"
18
+ }
19
+ }
@@ -0,0 +1,4 @@
1
+ # Edge Functions Backup
2
+
3
+ Nenhuma Edge Function local foi encontrada.
4
+ Use o Supabase CLI para fazer backup das functions remotas.
@@ -0,0 +1,7 @@
1
+ {
2
+ "timestamp": "2025-10-17T20:38:13.582Z",
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "enabled": false,
5
+ "channels": [],
6
+ "settings": {}
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "timestamp": "2025-10-17T20:38:13.578Z",
3
+ "projectId": "xvfgdgdfgdfgdfgdfg",
4
+ "buckets": [],
5
+ "objects": []
6
+ }
package/bin/smoonb.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  /**
4
4
  * smoonb - Complete Supabase backup and migration tool
@@ -31,10 +31,10 @@ program
31
31
  })
32
32
  .addHelpText('after', () => {
33
33
  return chalk.cyan.bold(`
34
- 📋 CONFIGURAÇÃO AUTOMÁTICA:
35
- smoonb config --init # Cria ~/.smoonbrc com projectId, URLs, etc.
36
- # Edite o arquivo com suas credenciais Supabase
37
- smoonb backup # Funciona sem --project-id!
34
+ 📋 CONFIGURAÇÃO AUTOMÁTICA:
35
+ npx smoonb config --init # Cria .smoonbrc com projectId, URLs, etc.
36
+ # Edite o arquivo com suas credenciais Supabase
37
+ npx smoonb backup # Funciona sem --project-id!
38
38
 
39
39
  📝 EXEMPLO DE CONFIGURAÇÃO (.smoonbrc):
40
40
  {
@@ -58,53 +58,37 @@ program
58
58
  }
59
59
  }
60
60
 
61
- 🔧 COMO CONFIGURAR:
62
- 1. smoonb config --init
63
- 2. Edite ~/.smoonbrc com suas credenciais
64
- 3. smoonb backup (funciona automaticamente!)
61
+ 🔧 COMO CONFIGURAR:
62
+ 1. npx smoonb config --init
63
+ 2. Edite .smoonbrc com suas credenciais
64
+ 3. npx smoonb backup (funciona automaticamente!)
65
65
  `);
66
66
  });
67
67
 
68
68
  // Comandos principais
69
69
  program
70
70
  .command('backup')
71
- .description('Fazer backup completo do projeto Supabase')
72
- .option('-p, --project-id <id>', 'ID do projeto Supabase')
73
- .option('-o, --output <dir>', 'Diretório de saída do backup', './backup')
74
- .option('--include-functions', 'Incluir Edge Functions no backup', true)
75
- .option('--include-storage', 'Incluir Storage Objects no backup', true)
76
- .option('--include-auth', 'Incluir Auth Settings no backup', true)
77
- .option('--include-realtime', 'Incluir Realtime Settings no backup', true)
71
+ .description('Fazer backup completo do projeto Supabase usando Supabase CLI')
72
+ .option('-o, --output <dir>', 'Diretório de saída do backup')
78
73
  .action(commands.backup);
79
74
 
80
75
  program
81
76
  .command('restore')
82
- .description('Restaurar backup completo no projeto Supabase')
83
- .option('-p, --project-id <id>', 'ID do projeto Supabase destino')
77
+ .description('Restaurar backup completo usando psql')
84
78
  .option('-b, --backup-dir <dir>', 'Diretório do backup a ser restaurado')
85
- .option('--clean-restore', 'Limpar projeto antes da restauração', false)
86
- .option('--verify', 'Verificar restauração após completar', true)
79
+ .option('--db-url <url>', 'URL da database de destino (override)')
87
80
  .action(commands.restore);
88
81
 
89
- program
90
- .command('secrets')
91
- .description('Gerenciar secrets do projeto Supabase')
92
- .option('export', 'Exportar secrets (sem commitar)')
93
- .option('import', 'Importar secrets no projeto alvo')
94
- .action(commands.secrets);
95
82
 
96
83
  program
97
84
  .command('functions')
98
- .description('Gerenciar Edge Functions')
99
- .option('push', 'Deploy de Edge Functions')
100
- .option('pull', 'Baixar Edge Functions do projeto')
85
+ .description('Gerenciar Edge Functions do Supabase')
101
86
  .action(commands.functions);
102
87
 
103
88
  program
104
89
  .command('check')
105
- .description('Checklist pós-restore - verificar integridade')
106
- .option('-p, --project-id <id>', 'ID do projeto Supabase')
107
- .option('--verbose', 'Saída detalhada', false)
90
+ .description('Verificar integridade do projeto Supabase após restauração')
91
+ .option('-o, --output <file>', 'Arquivo de saída do relatório', 'check-report.json')
108
92
  .action(commands.check);
109
93
 
110
94
  program
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smoonb",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Complete Supabase backup and migration tool - EXPERIMENTAL VERSION - USE AT YOUR OWN RISK",
5
5
  "main": "index.js",
6
6
  "bin": {