deploy-webapp 1.0.4 → 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 CHANGED
@@ -12,10 +12,10 @@ 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
16
  // Normalizar o caminho (remover barra final se houver)
17
17
  const normalizedRoot = candidateRoot.replace(/[\/\\]$/, '');
18
-
18
+
19
19
  // Verificar se existe package.json nesse diretório (raiz do projeto)
20
20
  const packageJsonPath = path.join(normalizedRoot, 'package.json');
21
21
  if (fs.existsSync(packageJsonPath)) {
@@ -33,7 +33,7 @@ function findProjectRoot(startPath) {
33
33
  // Se não encontrou package.json, ainda assim usar o diretório acima de node_modules
34
34
  return normalizedRoot;
35
35
  }
36
-
36
+
37
37
  // Fallback: usar process.cwd() (diretório onde o comando foi executado)
38
38
  // Isso funciona porque quando yarn/npm instala, o cwd é a raiz do projeto
39
39
  return process.cwd();
@@ -48,6 +48,23 @@ const filesToCopy = [
48
48
  { source: path.join(packagePath, 'README.md'), dest: 'README.md' }
49
49
  ];
50
50
 
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
+ `;
67
+
51
68
  // Verificar se estamos em node_modules (instalação do pacote)
52
69
  const isInstalled = packagePath.includes('node_modules');
53
70
 
@@ -95,17 +112,67 @@ filesToCopy.forEach(({ source, dest }) => {
95
112
  }
96
113
  });
97
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
+
98
165
  if (copiedCount > 0) {
99
- console.log(`\n✨ deploy-webapp: ${copiedCount} arquivo(s) de configuração criado(s) automaticamente na raiz do projeto!`);
166
+ console.log(`\n✨ deploy-webapp: ${copiedCount} arquivo(s) criado(s) automaticamente na raiz do projeto!`);
100
167
  console.log(`\n📝 Arquivos criados em: ${projectRoot}`);
101
168
  console.log('\n📋 Próximos passos:');
102
169
  console.log(' 1. ✏️ Edite ids.csv com os IDs dos workflows que deseja migrar');
103
170
  console.log(' 2. ✏️ Edite updateWorkflow.json com suas configurações específicas');
104
171
  console.log(' 3. 🔐 Crie o arquivo .env na raiz com suas credenciais (veja README.md)');
105
- console.log(' 4. 🚀 Crie um arquivo migrate.js e execute: node migrate.js\n');
106
- console.log('💡 Dica: Os arquivos estão prontos para edição na raiz do seu projeto!\n');
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');
107
174
  } else {
108
- console.log('\nℹ️ deploy-webapp: Todos os arquivos de configuração já existem na raiz do projeto.');
109
- console.log(' Se precisar recriar, delete os arquivos e reinstale o pacote.\n');
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');
110
177
  }
111
178
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deploy-webapp",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Script para deploy de esteiras no WebApp.",
5
5
  "main": "dist/0_index.js",
6
6
  "bin": {
package/src/utils/ids.csv CHANGED
@@ -1,3 +1,2 @@
1
1
  workflow_id;
2
- d8e1d640-f734-4051-b296-1938cbf47e86
3
- 53553938-df30-46a4-9554-eddd7461c6b1
2
+ cole os ids dos workflows que deseja deployar aqui
@@ -1,4 +1,4 @@
1
1
  {
2
- "flow_form_id": "6c1d5b15-c4f7-4fd8-97fa-aa8522d0a20a",
3
- "updateWorkflowProtocolFunction": "const tabChatListAreaReclamante = [\r\n \"5b2c64ba-4ca6-4a42-a5de-8f3f069fd0c2\", // Pendencia com reclamante 1 PROD RC\r\n \"48b76281-fea0-434e-b3e4-047a8e38a7d6\", // Pendencia com reclamante 2 PROD RC\r\n \"ba79e84a-70d3-4d86-b18a-d0649b1d368f\", // Pendencia com reclamante 3 PROD RC\r\n];\r\n\r\nconst tabChatListArea = [\r\n \"607b907a-7eb2-4ef2-b902-9513841de41f\", // Pendencia 1 PROD RC\r\n \"1bc17b34-50c8-4f2a-8049-1c5cabda8478\", // Pendencia 2 PROD RC\r\n \"f3682a6b-1f9c-40cb-ab37-efda6953e66a\", // Pendencia 3 PROD RC\r\n \"4d004afb-0ce8-4559-b95b-a9b450f71355\", // Pendenciar Área [Complemento] PROD RC\r\n \"d1eca09d-929e-40c5-9d7f-46ee9abf37dc\", // Pendenciar Área [Resposta Pendente] PROD RC\r\n];\r\n\r\nconst tabChatListReclamante = [\r\n \"75e43640-02b2-4d3a-a1ee-e7158c8c36ca\", // Pendenciar Reclamante PROD RC\r\n];\r\n\r\nconst tabChatListFechado = [\r\n \"8acf65df-6341-4448-ac88-ebac5e7524ba\", // Captura no cartão recusada PROD RC\r\n \"e609ad49-0d58-48fb-8521-932a3b39b450\", // Consulta CPF - LGPD PROD RC\r\n \"89d1b74a-23e1-4357-bb43-cbcce413ef00\", // Erro AWP Reembolso PROD RC\r\n \"6893fa78-6988-4d42-bbe8-56115ad6dafb\", // Perda Parcial PROD RC\r\n \"994b638d-b77c-4382-93d7-8a3c4a68a335\", // Prazo curto PROD RC\r\n \"7cfd92cd-d13a-4aa2-b4bc-1572d827d30f\", // Reativação ou Não reabilitar PROD RC\r\n \"bf053a72-3cca-46c2-adce-efef7249398f\", // Prêmio devido PROD RC\r\n \"0660628b-95db-4b5a-8b61-537711d73e8e\", // Proposta recusada auto PROD RC\r\n \"36987e66-cd0b-41cd-ba09-cb1f4f62ebc0\", // Sinistro 3o sem responsabilidade PROD RC\r\n \"1137350c-dad4-457c-bbf0-1de44bfb4d1c\", // Sinistro atender PROD RC\r\n \"4c1d0f3b-9c8e-41a4-aad0-c402688835a5\", // Sinistro DNC PROD RC\r\n \"356f351e-5f3f-4902-b145-d0e2aa38f5e4\", // Sinistro Datas / Peças PROD RC\r\n \"7301d8f7-5454-4063-aefe-7a6d73dfa90c\", // Sinistro Negativa PROD RC\r\n \"e3999399-d44d-4b02-adb8-a6215a293395\", // Sinistro pagamento PROD RC\r\n \"34e901e9-834b-4c91-82ee-99dc93b44608\", // Sinistro vendaval PROD RC\r\n \"161d59a0-3ead-4f3e-b355-658be1a01759\", // Template padrão PROD RC\r\n \"47507dd8-29c0-4450-8360-c1137cab8a06\", // Vidro homologado PROD RC\r\n \"183bab26-e4a4-4015-822b-2c97ae6304c6\", // Vidro logomarca PROD RC\r\n \"73e90d69-6f4e-4373-9130-446b5e93a1df\", // Vistoria de qualidade PROD RC\r\n]\r\n\r\nconst tabChatListRejeitado = [\r\n \"11ef7acb-44a6-4a69-aa83-ebd496a454fd\", // Rejeitada PROD RC\r\n]\r\n\r\nconst lastTabulation = protocol?.journey[0];\r\n\r\nconst tabChatAreaReclamante =\r\n lastTabulation && tabChatListAreaReclamante.includes(lastTabulation.tab_id);\r\n\r\nconst tabChatArea =\r\n lastTabulation && tabChatListArea.includes(lastTabulation.tab_id);\r\n\r\nconst tabChatReclamante =\r\n lastTabulation && tabChatListReclamante.includes(lastTabulation.tab_id);\r\n\r\nconst tabChatFechado =\r\n lastTabulation && tabChatListFechado.includes(lastTabulation.tab_id);\r\n\r\nconst tabChatRejeitado =\r\n lastTabulation && tabChatListRejeitado.includes(lastTabulation.tab_id);\r\n\r\nlet updatedWorkflowProtocol;\r\n\r\nif (tabChatAreaReclamante) {\r\n return {\r\n user_requested_already_viewed_protocol: true,\r\n // workflow_protocol_solicitation_status_id: \"\",\r\n optional_config: {\r\n ...workflowProtocol.optional_config,\r\n pendency_button: {\r\n clerk: false,\r\n broker: false,\r\n broker_frotas: false,\r\n tech: false,\r\n advisor: false,\r\n seller: false,\r\n backoffice: false,\r\n provider: false,\r\n commercial: false,\r\n frotas: false,\r\n area: true,\r\n reclamante: true,\r\n company: true,\r\n person: true,\r\n },\r\n },\r\n }\r\n} else if (tabChatArea) {\r\n return {\r\n user_requested_already_viewed_protocol: true,\r\n // workflow_protocol_solicitation_status_id: \"\",\r\n optional_config: {\r\n ...workflowProtocol.optional_config,\r\n pendency_button: {\r\n clerk: false,\r\n broker: false,\r\n broker_frotas: false,\r\n tech: false,\r\n advisor: false,\r\n seller: false,\r\n backoffice: false,\r\n provider: false,\r\n commercial: false,\r\n frotas: false,\r\n area: true,\r\n reclamante: false,\r\n company: false,\r\n person: false,\r\n },\r\n },\r\n }\r\n} else if (tabChatReclamante) {\r\n return {\r\n user_requested_already_viewed_protocol: true,\r\n // workflow_protocol_solicitation_status_id: \"\",\r\n optional_config: {\r\n ...workflowProtocol.optional_config,\r\n pendency_button: {\r\n clerk: false,\r\n broker: false,\r\n broker_frotas: false,\r\n tech: false,\r\n advisor: false,\r\n seller: false,\r\n backoffice: false,\r\n provider: false,\r\n commercial: false,\r\n frotas: false,\r\n area: false,\r\n reclamante: true,\r\n company: false,\r\n person: false,\r\n },\r\n },\r\n };\r\n} else if (tabChatFechado) {\r\n return {\r\n user_requested_already_viewed_protocol: true,\r\n // workflow_protocol_solicitation_status_id: \"\",\r\n optional_config: {\r\n ...workflowProtocol.optional_config,\r\n pendency_button: {\r\n clerk: false,\r\n broker: false,\r\n broker_frotas: false,\r\n tech: false,\r\n advisor: false,\r\n seller: false,\r\n backoffice: false,\r\n provider: false,\r\n commercial: false,\r\n frotas: false,\r\n area: false,\r\n reclamante: false,\r\n company: false,\r\n person: false,\r\n },\r\n },\r\n };\r\n} else if (tabChatRejeitado) {\r\n return {\r\n user_requested_already_viewed_protocol: true,\r\n // workflow_protocol_solicitation_status_id: \"\",\r\n optional_config: {\r\n ...workflowProtocol.optional_config,\r\n pendency_button: {\r\n clerk: false,\r\n broker: false,\r\n broker_frotas: false,\r\n tech: false,\r\n advisor: false,\r\n seller: false,\r\n backoffice: false,\r\n provider: false,\r\n commercial: false,\r\n frotas: false,\r\n area: false,\r\n reclamante: false,\r\n company: false,\r\n person: false,\r\n },\r\n },\r\n };\r\n} else {\r\n return {\r\n user_requested_already_viewed_protocol: true,\r\n // workflow_protocol_solicitation_status_id: \"\",\r\n optional_config: {\r\n ...workflowProtocol.optional_config,\r\n pendency_button: {\r\n clerk: false,\r\n broker: false,\r\n broker_frotas: false,\r\n tech: false,\r\n advisor: false,\r\n seller: false,\r\n backoffice: false,\r\n provider: false,\r\n commercial: false,\r\n frotas: false,\r\n area: false,\r\n reclamante: false,\r\n company: false,\r\n person: false,\r\n },\r\n },\r\n };\r\n}\r\n"
2
+ "flow_form_id": "",
3
+ "updateWorkflowProtocolFunction": ""
4
4
  }