deploy-webapp 1.0.7 → 1.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.
@@ -44,7 +44,6 @@ const _2_workflow_step_1 = require("./functions/2_workflow_step");
44
44
  const _3_client_function_1 = require("./functions/3_client_function");
45
45
  const _4_workflow_form_groups_1 = require("./functions/4_workflow_form_groups");
46
46
  const _1_workflow_1 = require("./functions/1_workflow");
47
- const logsDirectory = path.resolve(__dirname, "./utils");
48
47
  const runMigration = async () => {
49
48
  if (!constants_1.emailLoginQA || !constants_1.passwordLoginQA || !constants_1.emailLoginPROD || !constants_1.passwordLoginPROD || !constants_1.client || !constants_1.serviceKey) {
50
49
  throw new Error("Variáveis de ambiente WEBAPP_QA_EMAIL_LOGIN, WEBAPP_QA_PASSWORD_LOGIN, WEBAPP_PROD_EMAIL_LOGIN, WEBAPP_PROD_PASSWORD_LOGIN, CLIENT_ID e/ou SERVICE_KEY não definidas");
@@ -55,10 +54,19 @@ const runMigration = async () => {
55
54
  (0, console_1.log)(`${constants_1.cor.Yellow}Históricos limpos. Iniciando migração...${constants_1.cor.Reset}`);
56
55
  const access_token_qa = await (0, qa_client_1.loginQA)(constants_1.client, constants_1.serviceKey, constants_1.emailLoginQA, constants_1.passwordLoginQA);
57
56
  const access_token_prod = await (0, prod_client_1.loginPROD)(constants_1.client, constants_1.serviceKey, constants_1.emailLoginPROD, constants_1.passwordLoginPROD);
58
- const updateWorkflow = path.resolve(logsDirectory, "updateWorkflow.json");
57
+ // Procurar arquivos na raiz do projeto (process.cwd())
58
+ const projectRoot = process.cwd();
59
+ const updateWorkflow = path.resolve(projectRoot, "updateWorkflow.json");
60
+ const csvFilePath = path.resolve(projectRoot, "ids.csv");
61
+ // Verificar se os arquivos existem
62
+ if (!fs.existsSync(updateWorkflow)) {
63
+ throw new Error(`Arquivo updateWorkflow.json não encontrado em: ${projectRoot}\nCertifique-se de que o arquivo está na raiz do projeto.`);
64
+ }
65
+ if (!fs.existsSync(csvFilePath)) {
66
+ throw new Error(`Arquivo ids.csv não encontrado em: ${projectRoot}\nCertifique-se de que o arquivo está na raiz do projeto.`);
67
+ }
59
68
  const getUpdateWorkflow = fs.readFileSync(updateWorkflow, "utf8");
60
69
  const updateWorkflowData = JSON.parse(getUpdateWorkflow);
61
- const csvFilePath = path.resolve(logsDirectory, "ids.csv");
62
70
  const csv = require("csvtojson");
63
71
  const jsonArray = await csv({ delimiter: ";" }).fromFile(csvFilePath);
64
72
  const arrayIds = jsonArray.map((row) => ({
@@ -14,7 +14,16 @@ const dotenv_1 = __importDefault(require("dotenv"));
14
14
  const fs_1 = __importDefault(require("fs"));
15
15
  const path_1 = __importDefault(require("path"));
16
16
  dotenv_1.default.config();
17
- const logsDirectory = path_1.default.resolve(__dirname);
17
+ // Determinar o diretório de trabalho correto
18
+ // Se estiver em node_modules, usar process.cwd() (raiz do projeto)
19
+ // Caso contrário, usar __dirname (modo desenvolvimento)
20
+ function getWorkingDirectory() {
21
+ if (__dirname.includes('node_modules')) {
22
+ return process.cwd();
23
+ }
24
+ return __dirname;
25
+ }
26
+ const logsDirectory = getWorkingDirectory();
18
27
  exports.client = process.env.CLIENT;
19
28
  exports.serviceKey = process.env.SERVICE_KEY;
20
29
  exports.clientIdQA = process.env.CLIENT_ID_QA;
package/install.js CHANGED
@@ -65,6 +65,24 @@ runMigration()
65
65
  });
66
66
  `;
67
67
 
68
+ // Conteúdo do arquivo .env template a ser criado
69
+ const envTemplateContent = `# Configurações Gerais
70
+ CLIENT=seu_client_id
71
+ SERVICE_KEY=sua_service_key
72
+
73
+ # Ambiente QA
74
+ CLIENT_ID_QA=client_id_qa
75
+ EMAIL_LOGIN_QA=email@qa.com
76
+ PASSWORD_LOGIN_QA=senha_qa
77
+ URL_QA=https://url-qa.com
78
+
79
+ # Ambiente PROD
80
+ CLIENT_ID_PROD=client_id_prod
81
+ EMAIL_LOGIN_PROD=email@prod.com
82
+ PASSWORD_LOGIN_PROD=senha_prod
83
+ URL_PROD=https://url-prod.com
84
+ `;
85
+
68
86
  // Verificar se estamos em node_modules (instalação do pacote)
69
87
  const isInstalled = packagePath.includes('node_modules');
70
88
 
@@ -126,6 +144,20 @@ if (!fs.existsSync(migrateJsPath)) {
126
144
  console.log('ℹ️ deploy-webapp: migrate.js já existe, mantendo arquivo existente.');
127
145
  }
128
146
 
147
+ // Criar arquivo .env se não existir
148
+ const envPath = path.join(projectRoot, '.env');
149
+ if (!fs.existsSync(envPath)) {
150
+ try {
151
+ fs.writeFileSync(envPath, envTemplateContent, 'utf8');
152
+ console.log('✅ deploy-webapp: .env criado com sucesso!');
153
+ copiedCount++;
154
+ } catch (error) {
155
+ console.error('❌ deploy-webapp: Erro ao criar .env:', error.message);
156
+ }
157
+ } else {
158
+ console.log('ℹ️ deploy-webapp: .env já existe, mantendo arquivo existente.');
159
+ }
160
+
129
161
  // Atualizar package.json com scripts se necessário
130
162
  const packageJsonPath = path.join(projectRoot, 'package.json');
131
163
  if (fs.existsSync(packageJsonPath)) {
@@ -214,11 +246,11 @@ if (copiedCount > 0) {
214
246
  console.log(`\n✨ deploy-webapp: ${copiedCount} arquivo(s) criado(s) automaticamente na raiz do projeto!`);
215
247
  console.log(`\n📝 Arquivos criados em: ${projectRoot}`);
216
248
  console.log('\n📋 Próximos passos:');
217
- console.log(' 1. ✏️ Edite ids.csv com os IDs dos workflows que deseja migrar');
218
- console.log(' 2. ✏️ Edite updateWorkflow.json com suas configurações específicas');
219
- console.log(' 3. 🔐 Crie o arquivo .env na raiz com suas credenciais (veja README.md)');
249
+ console.log(' 1. 🔐 Edite .env com suas credenciais (substitua os valores de exemplo)');
250
+ console.log(' 2. ✏️ Edite ids.csv com os IDs dos workflows que deseja migrar');
251
+ console.log(' 3. ✏️ Edite updateWorkflow.json com suas configurações específicas');
220
252
  console.log(' 4. 🚀 Execute: yarn start ou npm start\n');
221
- console.log('💡 Dica: Tudo está configurado! Basta editar os arquivos e executar yarn start!\n');
253
+ console.log('💡 Dica: Tudo está configurado! Basta preencher os valores e executar yarn start!\n');
222
254
  } else {
223
255
  console.log('\nℹ️ deploy-webapp: Todos os arquivos já existem na raiz do projeto.');
224
256
  console.log(' Execute: yarn start ou npm start para iniciar a migração.\n');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deploy-webapp",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
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,2 +1,3 @@
1
1
  workflow_id;
2
- cole os ids dos workflows que deseja deployar aqui
2
+ d8e1d640-f734-4051-b296-1938cbf47e86
3
+ 53553938-df30-46a4-9554-eddd7461c6b1
@@ -1,4 +1,4 @@
1
1
  {
2
- "flow_form_id": "",
3
- "updateWorkflowProtocolFunction": ""
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"
4
4
  }