deploy-webapp 1.0.2 → 1.0.6
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/install.js +93 -18
- package/package.json +1 -1
- package/src/utils/ids.csv +1 -2
- package/src/utils/updateWorkflow.json +2 -2
package/install.js
CHANGED
|
@@ -12,23 +12,28 @@ function findProjectRoot(startPath) {
|
|
|
12
12
|
// Encontrar o índice de node_modules e pegar o diretório pai
|
|
13
13
|
const nodeModulesIndex = startPath.indexOf('node_modules');
|
|
14
14
|
const candidateRoot = startPath.substring(0, nodeModulesIndex);
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
// Normalizar o caminho (remover barra final se houver)
|
|
17
|
+
const normalizedRoot = candidateRoot.replace(/[\/\\]$/, '');
|
|
18
|
+
|
|
16
19
|
// Verificar se existe package.json nesse diretório (raiz do projeto)
|
|
17
|
-
const packageJsonPath = path.join(
|
|
20
|
+
const packageJsonPath = path.join(normalizedRoot, 'package.json');
|
|
18
21
|
if (fs.existsSync(packageJsonPath)) {
|
|
19
22
|
// Verificar se não é o package.json do próprio pacote deploy-webapp
|
|
20
23
|
try {
|
|
21
24
|
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
22
25
|
if (packageJson.name !== 'deploy-webapp') {
|
|
23
|
-
return
|
|
26
|
+
return normalizedRoot;
|
|
24
27
|
}
|
|
25
28
|
} catch (e) {
|
|
26
29
|
// Se não conseguir ler, assumir que é a raiz
|
|
27
|
-
return
|
|
30
|
+
return normalizedRoot;
|
|
28
31
|
}
|
|
29
32
|
}
|
|
33
|
+
// Se não encontrou package.json, ainda assim usar o diretório acima de node_modules
|
|
34
|
+
return normalizedRoot;
|
|
30
35
|
}
|
|
31
|
-
|
|
36
|
+
|
|
32
37
|
// Fallback: usar process.cwd() (diretório onde o comando foi executado)
|
|
33
38
|
// Isso funciona porque quando yarn/npm instala, o cwd é a raiz do projeto
|
|
34
39
|
return process.cwd();
|
|
@@ -43,18 +48,35 @@ const filesToCopy = [
|
|
|
43
48
|
{ source: path.join(packagePath, 'README.md'), dest: 'README.md' }
|
|
44
49
|
];
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
// Conteúdo do arquivo migrate.js a ser criado
|
|
52
|
+
const migrateJsContent = `require('dotenv').config();
|
|
53
|
+
const { runMigration } = require('deploy-webapp');
|
|
54
|
+
|
|
55
|
+
console.log('🚀 Iniciando migração de workflows...\\n');
|
|
56
|
+
|
|
57
|
+
runMigration()
|
|
58
|
+
.then(() => {
|
|
59
|
+
console.log('\\n✅ Migração concluída com sucesso!');
|
|
60
|
+
process.exit(0);
|
|
61
|
+
})
|
|
62
|
+
.catch((error) => {
|
|
63
|
+
console.error('\\n❌ Erro na migração:', error);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
});
|
|
66
|
+
`;
|
|
49
67
|
|
|
50
68
|
// Verificar se estamos em node_modules (instalação do pacote)
|
|
51
69
|
const isInstalled = packagePath.includes('node_modules');
|
|
52
70
|
|
|
53
71
|
if (!isInstalled) {
|
|
54
|
-
|
|
72
|
+
// Modo desenvolvimento - não fazer nada
|
|
55
73
|
process.exit(0);
|
|
56
74
|
}
|
|
57
75
|
|
|
76
|
+
console.log('📦 deploy-webapp: Configurando arquivos de configuração...');
|
|
77
|
+
console.log(` 📍 Pacote instalado em: ${packagePath}`);
|
|
78
|
+
console.log(` 📍 Raiz do projeto: ${projectRoot}`);
|
|
79
|
+
|
|
58
80
|
// Criar função para copiar arquivo
|
|
59
81
|
function copyFileIfNotExists(sourcePath, destFile) {
|
|
60
82
|
const destPath = path.join(projectRoot, destFile);
|
|
@@ -65,9 +87,9 @@ function copyFileIfNotExists(sourcePath, destFile) {
|
|
|
65
87
|
return false;
|
|
66
88
|
}
|
|
67
89
|
|
|
68
|
-
// Se o arquivo destino já existe, não sobrescrever
|
|
90
|
+
// Se o arquivo destino já existe, não sobrescrever (protege configurações do usuário)
|
|
69
91
|
if (fs.existsSync(destPath)) {
|
|
70
|
-
console.log(`ℹ️ deploy-webapp: ${destFile} já existe, mantendo arquivo existente.`);
|
|
92
|
+
console.log(`ℹ️ deploy-webapp: ${destFile} já existe na raiz do projeto, mantendo arquivo existente.`);
|
|
71
93
|
return false;
|
|
72
94
|
}
|
|
73
95
|
|
|
@@ -90,14 +112,67 @@ filesToCopy.forEach(({ source, dest }) => {
|
|
|
90
112
|
}
|
|
91
113
|
});
|
|
92
114
|
|
|
115
|
+
// Criar arquivo migrate.js se não existir
|
|
116
|
+
const migrateJsPath = path.join(projectRoot, 'migrate.js');
|
|
117
|
+
if (!fs.existsSync(migrateJsPath)) {
|
|
118
|
+
try {
|
|
119
|
+
fs.writeFileSync(migrateJsPath, migrateJsContent, 'utf8');
|
|
120
|
+
console.log('✅ deploy-webapp: migrate.js criado com sucesso!');
|
|
121
|
+
copiedCount++;
|
|
122
|
+
} catch (error) {
|
|
123
|
+
console.error('❌ deploy-webapp: Erro ao criar migrate.js:', error.message);
|
|
124
|
+
}
|
|
125
|
+
} else {
|
|
126
|
+
console.log('ℹ️ deploy-webapp: migrate.js já existe, mantendo arquivo existente.');
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Atualizar package.json com scripts se necessário
|
|
130
|
+
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
131
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
132
|
+
try {
|
|
133
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
134
|
+
let updated = false;
|
|
135
|
+
|
|
136
|
+
// Criar scripts se não existir
|
|
137
|
+
if (!packageJson.scripts) {
|
|
138
|
+
packageJson.scripts = {};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Adicionar script start se não existir
|
|
142
|
+
if (!packageJson.scripts.start) {
|
|
143
|
+
packageJson.scripts.start = 'node migrate.js';
|
|
144
|
+
updated = true;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Adicionar script migrate se não existir
|
|
148
|
+
if (!packageJson.scripts.migrate) {
|
|
149
|
+
packageJson.scripts.migrate = 'node migrate.js';
|
|
150
|
+
updated = true;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Salvar se foi atualizado
|
|
154
|
+
if (updated) {
|
|
155
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf8');
|
|
156
|
+
console.log('✅ deploy-webapp: Scripts adicionados ao package.json!');
|
|
157
|
+
} else {
|
|
158
|
+
console.log('ℹ️ deploy-webapp: Scripts já existem no package.json.');
|
|
159
|
+
}
|
|
160
|
+
} catch (error) {
|
|
161
|
+
console.error('⚠️ deploy-webapp: Erro ao atualizar package.json:', error.message);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
93
165
|
if (copiedCount > 0) {
|
|
94
|
-
console.log(`\n✨ deploy-webapp: ${copiedCount} arquivo(s)
|
|
95
|
-
console.log(
|
|
96
|
-
console.log('
|
|
97
|
-
console.log('
|
|
98
|
-
console.log('
|
|
99
|
-
console.log('
|
|
166
|
+
console.log(`\n✨ deploy-webapp: ${copiedCount} arquivo(s) criado(s) automaticamente na raiz do projeto!`);
|
|
167
|
+
console.log(`\n📝 Arquivos criados em: ${projectRoot}`);
|
|
168
|
+
console.log('\n📋 Próximos passos:');
|
|
169
|
+
console.log(' 1. ✏️ Edite ids.csv com os IDs dos workflows que deseja migrar');
|
|
170
|
+
console.log(' 2. ✏️ Edite updateWorkflow.json com suas configurações específicas');
|
|
171
|
+
console.log(' 3. 🔐 Crie o arquivo .env na raiz com suas credenciais (veja README.md)');
|
|
172
|
+
console.log(' 4. 🚀 Execute: yarn start ou npm start\n');
|
|
173
|
+
console.log('💡 Dica: Tudo está configurado! Basta editar os arquivos e executar yarn start!\n');
|
|
100
174
|
} else {
|
|
101
|
-
console.log('\nℹ️ deploy-webapp: Todos os arquivos
|
|
175
|
+
console.log('\nℹ️ deploy-webapp: Todos os arquivos já existem na raiz do projeto.');
|
|
176
|
+
console.log(' Execute: yarn start ou npm start para iniciar a migração.\n');
|
|
102
177
|
}
|
|
103
178
|
|
package/package.json
CHANGED
package/src/utils/ids.csv
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"flow_form_id": "
|
|
3
|
-
"updateWorkflowProtocolFunction": "
|
|
2
|
+
"flow_form_id": "",
|
|
3
|
+
"updateWorkflowProtocolFunction": ""
|
|
4
4
|
}
|