smoonb 0.0.1

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.
@@ -0,0 +1,18 @@
1
+ {
2
+ "supabase": {
3
+ "url": "https://your-project.supabase.co",
4
+ "serviceKey": "your-service-key-here",
5
+ "anonKey": "your-anon-key-here"
6
+ },
7
+ "backup": {
8
+ "includeFunctions": true,
9
+ "includeStorage": true,
10
+ "includeAuth": true,
11
+ "includeRealtime": true,
12
+ "outputDir": "./backups"
13
+ },
14
+ "restore": {
15
+ "cleanRestore": false,
16
+ "verifyAfterRestore": true
17
+ }
18
+ }
package/LICENSE.md ADDED
@@ -0,0 +1,64 @@
1
+ # Licença Comercial smoonb
2
+
3
+ ## Versão Experimental Gratuita (Versões 0.x.x)
4
+
5
+ **IMPORTANTE**: Durante a versão experimental, todas as versões 0.x.x do smoonb são **COMPLETAMENTE GRATUITAS** para qualquer uso, incluindo uso comercial.
6
+
7
+ ### Termos da Versão Experimental
8
+
9
+ - ✅ **Uso gratuito**: Pode usar em projetos pessoais e comerciais
10
+ - ✅ **Sem restrições**: Sem limitações de funcionalidades
11
+ - ❌ **SEM SUPORTE**: Não oferecemos suporte técnico neste estágio
12
+ - ⚠️ **USE POR SUA CONTA E RISCO**: Software nunca testado em produção
13
+ - ⚠️ **NÃO NOS RESPONSABILIZAMOS**: Por qualquer perda de dados
14
+ - ✅ **Transparência total**: Mudanças de licença serão anunciadas com antecedência
15
+
16
+ ## Licença Comercial (Versões 1.0.0+)
17
+
18
+ **AVISO**: A partir da versão 1.0.0, o smoonb será licenciado comercialmente.
19
+
20
+ ### Termos da Licença Comercial
21
+
22
+ Copyright (c) 2024 Goalmoon Tecnologia LTDA. Todos os direitos reservados.
23
+
24
+ **Proibido sem licença válida:**
25
+ - Uso em produção
26
+ - Distribuição ou redistribuição
27
+ - Modificação do código-fonte
28
+ - Engenharia reversa
29
+
30
+ ### Licenças Disponíveis (a partir da v1.0.0)
31
+
32
+ 1. **Licença Individual**: Uso pessoal e projetos pequenos
33
+ 2. **Licença Empresarial**: Uso corporativo e equipes
34
+ 3. **Licença OEM**: Integração em produtos comerciais
35
+
36
+ ### Política de Transição
37
+
38
+ - **Aviso prévio**: Mudanças serão anunciadas 90 dias antes
39
+ - **Migração suave**: Usuários beta terão desconto especial
40
+ - **Transparência**: Todos os termos serão claramente comunicados
41
+
42
+ ## Disclaimer
43
+
44
+ Este software é fornecido "como está", sem garantias de qualquer tipo, expressas ou implícitas. O uso é por sua própria conta e risco.
45
+
46
+ **IMPORTANTE**: Este software está em desenvolvimento inicial e NUNCA foi testado em produção. Os resultados podem ser imprevisíveis e podem causar perdas irreparáveis de dados. Não nos responsabilizamos por qualquer perda de dados ou danos causados pelo uso deste software.
47
+
48
+ ## Empresa Desenvolvedora
49
+
50
+ **smoonb** é desenvolvido pela **Goalmoon Tecnologia LTDA**
51
+ - Website: https://goalmoon.com
52
+ - Empresa brasileira especializada em soluções tecnológicas
53
+
54
+ ## Contato
55
+
56
+ Para questões sobre licenciamento comercial:
57
+ - Email: suporte@goalmoon.com
58
+ - GitHub Issues: Para contribuições e bugs (sem suporte técnico)
59
+ - Empresa: https://goalmoon.com
60
+
61
+ ---
62
+
63
+ **Última atualização**: Dezembro 2024
64
+ **Próxima revisão**: Antes da versão 1.0.0
package/README.md ADDED
@@ -0,0 +1,227 @@
1
+ # smoonb 🚀
2
+
3
+ > **⚠️ VERSÃO EXPERIMENTAL - NÃO TESTADA - USE POR SUA CONTA E RISCO ⚠️**
4
+
5
+ ## 🚨 **AVISO IMPORTANTE - LEIA ANTES DE USAR**
6
+
7
+ **Este software está em desenvolvimento inicial e NUNCA foi testado em produção.**
8
+
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
14
+
15
+ **Desenvolvido por:** [Goalmoon Tecnologia LTDA](https://goalmoon.com)
16
+
17
+ ## 🎯 O Problema que Resolvemos
18
+
19
+ As ferramentas existentes fazem apenas backup da database PostgreSQL, ignorando componentes críticos:
20
+
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
25
+
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:
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
38
+
39
+ ## 🚀 Comandos Principais
40
+
41
+ ```bash
42
+ # Backup completo do projeto
43
+ smoonb backup
44
+
45
+ # Restauração completa
46
+ smoonb restore
47
+
48
+ # Gerenciamento de secrets
49
+ smoonb secrets export
50
+ smoonb secrets import
51
+
52
+ # Deploy de Edge Functions
53
+ smoonb functions push
54
+
55
+ # Checklist pós-restore
56
+ smoonb check
57
+ ```
58
+
59
+ ## 📊 Comparação: smoonb vs Outras Ferramentas
60
+
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 |
71
+
72
+ ## 🛠️ Instalação
73
+
74
+ ```bash
75
+ # Instalação global
76
+ npm install -g smoonb
77
+
78
+ # Ou uso local
79
+ npx smoonb --help
80
+ ```
81
+
82
+ ## ⚡ Quick Start
83
+
84
+ ```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
96
+ ```
97
+
98
+ ## 📋 Exemplos de Uso
99
+
100
+ ### Backup Completo
101
+ ```bash
102
+ smoonb backup \
103
+ --project-id abc123def456 \
104
+ --output ./backup-$(date +%Y%m%d) \
105
+ --include-functions \
106
+ --include-storage \
107
+ --include-auth
108
+ ```
109
+
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
+ ```
118
+
119
+ ### Migração Entre Projetos
120
+ ```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
132
+
133
+ # 5. Verificação final
134
+ smoonb check --project-id target-project
135
+ ```
136
+
137
+ ## 🔧 Configuração
138
+
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
+ ```
155
+
156
+ ## 📝 Licenciamento
157
+
158
+ ### 🆓 Versão Experimental Gratuita (Versões 0.x.x)
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
164
+
165
+ ### 💼 Licença Comercial (Versões 1.0.0+)
166
+
167
+ **AVISO**: A partir da versão 1.0.0, o smoonb será licenciado comercialmente.
168
+
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
+
173
+ [📖 Leia a licença completa](./LICENSE.md)
174
+
175
+ ## 🤝 Contribuição
176
+
177
+ **Este é um projeto experimental - contribuições são bem-vindas!**
178
+
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
184
+
185
+ ## 🐛 Reportar Bugs
186
+
187
+ Encontrou um bug? [Abra uma issue](https://github.com/almmello/smoonb/issues) com:
188
+
189
+ - Descrição detalhada do problema
190
+ - Passos para reproduzir
191
+ - Logs de erro (se houver)
192
+ - Versão do smoonb e Node.js
193
+
194
+ ## 📞 Suporte e Contato
195
+
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)
200
+
201
+ ### ☕ Apoie o Desenvolvimento
202
+
203
+ Se este projeto te ajudou e você gostaria de apoiar o desenvolvimento:
204
+
205
+ - ☕ **Compre um café**: [Link de pagamento](https://pag.ae/7Yj8QjQjQ)
206
+ - ⭐ **Dê uma estrela** no GitHub
207
+ - 🐛 **Reporte bugs** e contribua com melhorias
208
+ - 📢 **Compartilhe** com outros desenvolvedores
209
+
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.
211
+
212
+ ## 📄 Changelog
213
+
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
222
+
223
+ ---
224
+
225
+ **smoonb** - A ferramenta definitiva para backup e migração de projetos Supabase 🚀
226
+
227
+ *Desenvolvido com ❤️ para a comunidade Supabase*
package/bin/smoonb.js ADDED
@@ -0,0 +1,113 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * smoonb - Complete Supabase backup and migration tool
5
+ *
6
+ * CLI principal para backup e migração de projetos Supabase
7
+ * Versão: 0.0.1 (EXPERIMENTAL VERSION - USE AT YOUR OWN RISK)
8
+ *
9
+ * Desenvolvido por: Goalmoon Tecnologia LTDA
10
+ * Website: https://goalmoon.com
11
+ */
12
+
13
+ const { Command } = require('commander');
14
+ const chalk = require('chalk');
15
+ const packageJson = require('../package.json');
16
+
17
+ // Importar módulos principais
18
+ const { commands, showBetaBanner, showQuickHelp } = require('../src/index');
19
+
20
+ // Criar instância do Commander
21
+ const program = new Command();
22
+
23
+ // Configuração básica do programa
24
+ program
25
+ .name('smoonb')
26
+ .description('Complete Supabase backup and migration tool - EXPERIMENTAL VERSION - USE AT YOUR OWN RISK')
27
+ .version(packageJson.version, '-v, --version', 'display version number')
28
+ .addHelpText('before', () => {
29
+ showBetaBanner();
30
+ return '';
31
+ });
32
+
33
+ // Comandos principais
34
+ program
35
+ .command('backup')
36
+ .description('Fazer backup completo do projeto Supabase')
37
+ .option('-p, --project-id <id>', 'ID do projeto Supabase')
38
+ .option('-o, --output <dir>', 'Diretório de saída do backup', './backup')
39
+ .option('--include-functions', 'Incluir Edge Functions no backup', true)
40
+ .option('--include-storage', 'Incluir Storage Objects no backup', true)
41
+ .option('--include-auth', 'Incluir Auth Settings no backup', true)
42
+ .option('--include-realtime', 'Incluir Realtime Settings no backup', true)
43
+ .action(commands.backup);
44
+
45
+ program
46
+ .command('restore')
47
+ .description('Restaurar backup completo no projeto Supabase')
48
+ .option('-p, --project-id <id>', 'ID do projeto Supabase destino')
49
+ .option('-b, --backup-dir <dir>', 'Diretório do backup a ser restaurado')
50
+ .option('--clean-restore', 'Limpar projeto antes da restauração', false)
51
+ .option('--verify', 'Verificar restauração após completar', true)
52
+ .action(commands.restore);
53
+
54
+ program
55
+ .command('secrets')
56
+ .description('Gerenciar secrets do projeto Supabase')
57
+ .option('export', 'Exportar secrets (sem commitar)')
58
+ .option('import', 'Importar secrets no projeto alvo')
59
+ .action(commands.secrets);
60
+
61
+ program
62
+ .command('functions')
63
+ .description('Gerenciar Edge Functions')
64
+ .option('push', 'Deploy de Edge Functions')
65
+ .option('pull', 'Baixar Edge Functions do projeto')
66
+ .action(commands.functions);
67
+
68
+ program
69
+ .command('check')
70
+ .description('Checklist pós-restore - verificar integridade')
71
+ .option('-p, --project-id <id>', 'ID do projeto Supabase')
72
+ .option('--verbose', 'Saída detalhada', false)
73
+ .action(commands.check);
74
+
75
+ program
76
+ .command('config')
77
+ .description('Configurar credenciais e configurações do smoonb')
78
+ .option('--init', 'Inicializar configuração')
79
+ .option('--show', 'Mostrar configuração atual')
80
+ .action(commands.config);
81
+
82
+ // Tratamento de erros
83
+ program.on('command:*', function (operands) {
84
+ console.error(chalk.red.bold('❌ Comando não reconhecido:'), operands[0]);
85
+ console.error(chalk.yellow('💡 Use'), chalk.cyan('smoonb --help'), chalk.yellow('para ver comandos disponíveis'));
86
+ process.exit(1);
87
+ });
88
+
89
+ // Tratamento de exceções não capturadas
90
+ process.on('uncaughtException', (error) => {
91
+ console.error(chalk.red.bold('❌ Erro não tratado:'), error.message);
92
+ console.error(chalk.gray('Stack trace:'), error.stack);
93
+ process.exit(1);
94
+ });
95
+
96
+ process.on('unhandledRejection', (reason, promise) => {
97
+ console.error(chalk.red.bold('❌ Promise rejeitada não tratada:'), reason);
98
+ process.exit(1);
99
+ });
100
+
101
+ // Exibir informações do período beta quando nenhum comando é fornecido
102
+ if (process.argv.length === 2) {
103
+ showBetaBanner();
104
+ showQuickHelp();
105
+ }
106
+
107
+ // Parse dos argumentos da linha de comando
108
+ program.parse(process.argv);
109
+
110
+ // Se nenhum comando foi fornecido, mostrar ajuda
111
+ if (!process.argv.slice(2).length) {
112
+ program.outputHelp();
113
+ }
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "smoonb",
3
+ "version": "0.0.1",
4
+ "description": "Complete Supabase backup and migration tool - EXPERIMENTAL VERSION - USE AT YOUR OWN RISK",
5
+ "main": "index.js",
6
+ "bin": {
7
+ "smoonb": "./bin/smoonb.js"
8
+ },
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1",
11
+ "start": "node bin/smoonb.js"
12
+ },
13
+ "keywords": [
14
+ "supabase",
15
+ "backup",
16
+ "migration",
17
+ "postgresql",
18
+ "edge-functions",
19
+ "database",
20
+ "cli",
21
+ "tool"
22
+ ],
23
+ "author": "Goalmoon Tecnologia LTDA <https://goalmoon.com>",
24
+ "license": "SEE LICENSE IN LICENSE.md",
25
+ "engines": {
26
+ "node": ">=16.0.0"
27
+ },
28
+ "dependencies": {
29
+ "commander": "^11.1.0",
30
+ "@supabase/supabase-js": "^2.38.0",
31
+ "chalk": "^4.1.2",
32
+ "inquirer": "^8.2.6"
33
+ },
34
+ "type": "commonjs",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/almmello/smoonb.git"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/almmello/smoonb/issues"
41
+ },
42
+ "homepage": "https://github.com/almmello/smoonb#readme"
43
+ }