eitri-cli 1.1.7-alpha.3 → 1.2.0-beta.2

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 (66) hide show
  1. package/.husky/commit-msg +4 -0
  2. package/.releaserc.json +0 -4
  3. package/.vscode/settings.json +3 -1
  4. package/README.md +8 -9
  5. package/bitbucket-pipelines.yml +16 -4
  6. package/commitlint.config.js +6 -0
  7. package/config/dev.js +4 -4
  8. package/config/k8s-eitri.js +2 -2
  9. package/config/loc-eitri.js +2 -2
  10. package/config/prod-eitri.js +13 -11
  11. package/developer-folder/README.md +1 -0
  12. package/index-eitri.js +3 -0
  13. package/index.js +14 -63
  14. package/install-dev.sh +1 -1
  15. package/package.json +9 -6
  16. package/src/cmd/clean.js +18 -7
  17. package/src/cmd/create.js +41 -24
  18. package/src/cmd/credentials.js +1 -1
  19. package/src/cmd/invite.js +4 -4
  20. package/src/cmd/login.js +9 -8
  21. package/src/cmd/manage-env.js +4 -4
  22. package/src/cmd/push-version.js +29 -18
  23. package/src/cmd/signup.js +8 -6
  24. package/src/cmd/start.js +20 -32
  25. package/src/cmd/tail-logs.js +3 -3
  26. package/src/model/Payload.js +1 -1
  27. package/src/modules/vegvisir/VegvisirService.js +4 -4
  28. package/src/modules/vegvisir/cmd/list.js +2 -1
  29. package/src/modules/vegvisir/cmd/use.js +1 -1
  30. package/src/service/AuthConfig.js +9 -12
  31. package/src/service/BlindGuardian.js +16 -19
  32. package/src/service/CliLogin.js +7 -5
  33. package/src/service/ConfigService.js +0 -7
  34. package/src/service/CredentialsService.js +2 -2
  35. package/src/service/EitriAppManager.js +2 -2
  36. package/src/service/Http.js +3 -3
  37. package/src/service/InviteService.js +2 -2
  38. package/src/service/MiniLog.js +1 -1
  39. package/src/service/QRCodeFactory.js +2 -2
  40. package/src/service/Server.js +9 -9
  41. package/src/service/TargetService.js +2 -2
  42. package/src/service/TrackingEitriAnalytics.js +11 -21
  43. package/src/service/Workspace.js +10 -6
  44. package/src/service/WorkspaceManager.js +4 -4
  45. package/src/service/factories/DoubtsStarterFactory.js +2 -2
  46. package/src/util/AboutTemplate.jsx +1 -1
  47. package/src/util/UserLocalCredential.js +10 -4
  48. package/src/util/error-messages/invite/invite-error-messages.js +1 -1
  49. package/src/util/template-utils.js +2 -2
  50. package/test/Executor.js +46 -0
  51. package/test/Helper.js +13 -0
  52. package/test/_fixtures/factory.js +1 -1
  53. package/test/_fixtures/src/views/AboutTemplate.jsx +1 -1
  54. package/test/cmd/clean.test.js +3 -3
  55. package/test/cmd/create.test.js +8 -8
  56. package/test/e2e/cli.test.js +68 -0
  57. package/test/service/Workspace.test.js +17 -17
  58. package/CHANGELOG.md +0 -57
  59. package/publisher.js +0 -59
  60. package/targetMobileStickyness.md +0 -47
  61. package/targetWebStickyness.md +0 -40
  62. package/test/cmd/credentials.test.js +0 -159
  63. package/test/cmd/signup.test.js +0 -20
  64. package/test/cmd/start.test.js +0 -5
  65. package/thinQrCode.md +0 -58
  66. package/v1.5.0.md +0 -3
package/src/cmd/create.js CHANGED
@@ -1,7 +1,7 @@
1
1
  const Watcher = require("../service/Watcher");
2
2
  const inquirer = require("inquirer");
3
3
  const slugify = require("slugify");
4
- const config = require("config");
4
+ const configService = require("../service/ConfigService");
5
5
  const { Workspace } = require("../service/Workspace");
6
6
  const BlindGuardian = require("../service/BlindGuardian");
7
7
  const HashFolder = require("../service/HashFolder");
@@ -16,6 +16,7 @@ const Target = require("../model/Target");
16
16
  const EitriAppManager = require("../service/EitriAppManager");
17
17
  const WoodCoffee = require("../service/factories/WoodCoffeeFactory");
18
18
  const TrackingEitriAnalytics = require("../service/TrackingEitriAnalytics");
19
+ const UserLocalCredential = require("../util/UserLocalCredential");
19
20
 
20
21
  const blindGuardian = new BlindGuardian();
21
22
  const hashFolder = new HashFolder();
@@ -27,14 +28,6 @@ const watcher = new Watcher(workspace, hashFolder, trackingService);
27
28
  const ITEM_DOUBT = "DOUBTS";
28
29
  const eitriAppManager = new EitriAppManager(blindGuardian);
29
30
 
30
- const notBlank = (inpt) => {
31
- if (!inpt || !inpt.trim()) {
32
- return "Não pode ficar em branco";
33
- } else {
34
- return true;
35
- }
36
- };
37
-
38
31
  const nameOrTitle = (inpt) => {
39
32
  if (!NAME_TITLE_REGEX.test(inpt)) {
40
33
  return "Não use caracteres especiais";
@@ -51,14 +44,23 @@ const slug = (inpt) => {
51
44
 
52
45
  // eslint-disable-next-line no-unused-vars
53
46
  module.exports = async function create(projectName, cmdObj) {
47
+
48
+ try {
49
+ UserLocalCredential.checkForCredentials()
50
+ } catch (error) {
51
+ const errorMessage = cmdObj?.verbose ? error : error?.message
52
+ console.error("\n", errorMessage, "\n")
53
+ return
54
+ }
55
+
54
56
  console.log(
55
- "\x1b[34mVamos criar o seu eitri-app. Para isso basta responder algumas perguntas:\x1b[0m"
57
+ "\x1b[34mVamos criar o seu Eitri-App. Para isso basta responder algumas perguntas:\x1b[0m"
56
58
  );
57
59
 
58
60
  try {
59
- const url = config.get("workspace").url;
61
+ const url = configService.get("workspace").url;
60
62
  workspace.setServerUrl(url);
61
- const clientApplication = await askClientApplication();
63
+ const clientApplication = await askClientApplication(cmdObj.application);
62
64
  if (clientApplication.name === ITEM_DOUBT) {
63
65
  handleStartServer(
64
66
  cmdObj,
@@ -69,18 +71,25 @@ module.exports = async function create(projectName, cmdObj) {
69
71
  );
70
72
  return;
71
73
  }
72
- return await askProjMetadata(clientApplication, cmdObj, projectName);
74
+ const responseAskProjMetadata = await askProjMetadata(clientApplication, cmdObj, projectName);
75
+ TrackingEitriAnalytics.sendEvent({
76
+ eventName: "create",
77
+ userId: workspace?.userEmail,
78
+ });
79
+ return responseAskProjMetadata
73
80
  } catch (e) {
74
- await TrackingEitriAnalytics.sendEvent({
75
- command: "create",
76
- success: false,
77
- errorMessage: e?.message,
81
+ TrackingEitriAnalytics.sendEvent({
82
+ eventName: "create.error",
83
+ userId: workspace?.userEmail,
84
+ data: {
85
+ errorMessage: e?.message,
86
+ }
78
87
  });
79
88
  console.error(e?.message);
80
89
  }
81
90
  };
82
91
 
83
- async function askClientApplication() {
92
+ async function askClientApplication(applicationName) {
84
93
  const availableApplications = await eitriAppManager.findAllApplications();
85
94
  if (availableApplications.length <= 0) {
86
95
  console.log(
@@ -88,6 +97,14 @@ async function askClientApplication() {
88
97
  );
89
98
  process.exit(0);
90
99
  }
100
+ if (applicationName) {
101
+ const clientApplication = availableApplications.find(application => application.name === applicationName)
102
+ if (clientApplication) {
103
+ return clientApplication
104
+ } else {
105
+ throw new Error(`Application not found by name ${applicationName}`)
106
+ }
107
+ }
91
108
  const cliOptions = [
92
109
  ...availableApplications,
93
110
  { name: ITEM_DOUBT, label: "Dúvidas? Veja documentação no browser" },
@@ -102,7 +119,7 @@ async function askClientApplication() {
102
119
  name: "accepted",
103
120
  type: "rawlist",
104
121
  message:
105
- "Selecione a aplicação para qual destina-se seu eitri-app:",
122
+ "Selecione a aplicação para qual destina-se seu Eitri-App:",
106
123
  choices: cliOptions.map(createLabel),
107
124
  },
108
125
  ]);
@@ -186,7 +203,7 @@ async function askProjMetadata(clientApplication, cmdObj, projectName) {
186
203
  } catch (err) {
187
204
  if (cmdObj.verbose) {
188
205
  console.error(
189
- "Houve uma falha durante a criação do eitri-app",
206
+ "Houve uma falha durante a criação do Eitri-App",
190
207
  err
191
208
  );
192
209
  }
@@ -220,7 +237,7 @@ function createQuestions(projectName) {
220
237
  {
221
238
  type: "input",
222
239
  name: "name",
223
- message: "Digite um nome legível para seu eitri-app",
240
+ message: "Digite um nome legível para seu Eitri-App",
224
241
  validate: nameOrTitle,
225
242
  default: () => {
226
243
  return projectName;
@@ -239,7 +256,7 @@ function createQuestions(projectName) {
239
256
  type: "input",
240
257
  name: "slug",
241
258
  message:
242
- "Digite um nome único para seu eitri-app. Não pode conter espaços",
259
+ "Digite um nome único para seu Eitri-App. Não pode conter espaços",
243
260
  default: (currentAnswers) => {
244
261
  return slugify(currentAnswers.name).toLowerCase();
245
262
  },
@@ -253,7 +270,7 @@ async function askSlug(projectName) {
253
270
  {
254
271
  type: "input",
255
272
  name: "slug",
256
- message: "Outro nome único para o eitri-app:",
273
+ message: "Outro nome único para o Eitri-App:",
257
274
  validate: slug,
258
275
  default: () => {
259
276
  return slugify(projectName).toLowerCase();
@@ -268,7 +285,7 @@ async function askName(projectName) {
268
285
  {
269
286
  type: "input",
270
287
  name: "name",
271
- message: "Outro nome para o eitri-app:",
288
+ message: "Outro nome para o Eitri-App:",
272
289
  validate: nameOrTitle,
273
290
  default: () => {
274
291
  return projectName;
@@ -11,7 +11,7 @@ const workspace = new Workspace(blindGuardian, new HashFolder())
11
11
  const credentialService = new CredentialsService(workspace)
12
12
  const trackingService = new TrackingService(blindGuardian, { ignoreCredentialError: true })
13
13
 
14
- const config = require('config')
14
+ const config = require('../service/ConfigService')
15
15
 
16
16
  const credentialStrategies = {
17
17
  [credentialService.upsert.name]: credentialService.upsert,
package/src/cmd/invite.js CHANGED
@@ -18,11 +18,11 @@ module.exports = async function invite(email, cmdObj) {
18
18
  let invites = await inviteService.findAllBySlug(slug)
19
19
  let invite = invites.find(i => i.email === email)
20
20
  if (!invite) {
21
- console.log(`Convite inexistente para ${email} do miniapp ${slug}.`)
21
+ console.log(`Convite inexistente para ${email} do Eitri-App ${slug}.`)
22
22
  process.exit(1)
23
23
  }
24
24
  await inviteService.remove(invite)
25
- console.log(`${email} removido com sucesso do miniapp ${slug}.`)
25
+ console.log(`${email} removido com sucesso do Eitri-App ${slug}.`)
26
26
  } else if (cmdObj.list) {
27
27
  let slug = workspace.getMiniConf().slug
28
28
  let invites = await inviteService.findAllBySlug(slug)
@@ -37,7 +37,7 @@ module.exports = async function invite(email, cmdObj) {
37
37
  }
38
38
  console.log(`${invites.length} convites`)
39
39
  const createLabel = (inv) => {
40
- return `aceitar convite do miniapp "${inv.slug}" enviado por ${inv.inviterEmail || 'desconhecido'}`
40
+ return `aceitar convite do Eitri-App "${inv.slug}" enviado por ${inv.inviterEmail || 'desconhecido'}`
41
41
  }
42
42
  let res = await inquirer.prompt([
43
43
  {
@@ -49,7 +49,7 @@ module.exports = async function invite(email, cmdObj) {
49
49
  ])
50
50
  let inviteToAccept = invites.find(inv => createLabel(inv) === res.accepted)
51
51
  if (inviteToAccept) {
52
- console.log(`Aceitando participar do miniapp ${inviteToAccept.slug}...`)
52
+ console.log(`Aceitando participar do Eitri-App ${inviteToAccept.slug}...`)
53
53
  await inviteService.accept(inviteToAccept)
54
54
  console.log(`Convite aceito! ${emoji.lib.clinking_glasses.char}`)
55
55
  }
package/src/cmd/login.js CHANGED
@@ -1,5 +1,5 @@
1
1
  const inquirer = require('inquirer')
2
- const config = require('config')
2
+ const configService = require('../service/ConfigService')
3
3
  const open = require('open')
4
4
  const TrackingEitriAnalytics = require('../service/TrackingEitriAnalytics')
5
5
  const Server = require('../service/Server')
@@ -18,7 +18,7 @@ module.exports = async function login(args) {
18
18
 
19
19
  const res = Server.startCliLogin()
20
20
 
21
- const urlAdminManagerCredential = `${config.get("managerFront").url}`
21
+ const urlAdminManagerCredential = `${configService.get("managerFront").url}`
22
22
  const urlAdminManagerCredentialWithParams = `${urlAdminManagerCredential}?loginType=EITRI_CLI&port=${res?.port}`
23
23
 
24
24
  let portalOpenMessage = ""
@@ -29,19 +29,20 @@ module.exports = async function login(args) {
29
29
  open(urlAdminManagerCredentialWithParams)
30
30
  portalOpenMessage = "Aberto em seu navegador padrão"
31
31
  } catch (error) {
32
- portalOpenMessage = "Não foi possível abrir automaticamente. Copie o link e cole em seu navegador para fazer o login na Eitri CLI. " + urlAdminManagerCredentialWithParams
32
+ portalOpenMessage = "Não foi possível abrir automaticamente. Copie o link e cole em seu navegador para fazer o login na Eitri-CLI. " + urlAdminManagerCredentialWithParams
33
33
  }
34
34
  } else {
35
- portalOpenMessage = "Copie o link e cole em seu navegador para fazer o login na Eitri CLI. " + urlAdminManagerCredentialWithParams
35
+ portalOpenMessage = "Copie o link e cole em seu navegador para fazer o login na Eitri-CLI. " + urlAdminManagerCredentialWithParams
36
36
  }
37
37
 
38
38
  console.log("\n", portalOpenMessage)
39
39
  console.log("\n\n Aguardando autenticação...")
40
40
  } catch (error) {
41
- await TrackingEitriAnalytics.sendEvent({
42
- command: "login",
43
- success: false,
44
- errorMessage: error?.message
41
+ TrackingEitriAnalytics.sendEvent({
42
+ eventName: "login.error",
43
+ data: {
44
+ errorMessage: error?.message ?? ""
45
+ }
45
46
  })
46
47
 
47
48
  console.log('Erro inesperado, tente novamente mais tarde.', error?.message)
@@ -1,5 +1,5 @@
1
1
  const path = require('path')
2
- const config = require('config')
2
+ const configService = require('../service/ConfigService')
3
3
 
4
4
  const { workspace } = require('../service/Workspace')
5
5
  const MiniLog = require('../service/MiniLog')
@@ -15,7 +15,7 @@ const ManageEnvService = require('../service/ManageEnvService')
15
15
  const manageEnvService = new ManageEnvService()
16
16
 
17
17
  const blindGuardian = workspace.blindGuardian
18
- const CONFIG_WORKSPACE = config.get('workspace')
18
+ const CONFIG_WORKSPACE = configService.get('workspace')
19
19
 
20
20
  module.exports = async function manageEnv(envList, cmd) {
21
21
  try {
@@ -31,7 +31,7 @@ module.exports = async function manageEnv(envList, cmd) {
31
31
  }
32
32
 
33
33
  const getEnv = async (cmd) => {
34
- const miniLog = new MiniLog(config.get('miniLog'))
34
+ const miniLog = new MiniLog(configService.get('miniLog'))
35
35
  const folder2watch = path.join(process.cwd(), 'src')
36
36
 
37
37
  workspace.setFolder2Watch(folder2watch)
@@ -72,7 +72,7 @@ const setEnv = async (envList, cmd) => {
72
72
  try {
73
73
  panicCheckEnvList(envList)
74
74
  const environmentVariables = environmentVariable(envList)
75
- const miniLog = new MiniLog(config.get('miniLog'))
75
+ const miniLog = new MiniLog(configService.get('miniLog'))
76
76
  const folder2watch = path.join(process.cwd(), 'src')
77
77
 
78
78
  workspace.setFolder2Watch(folder2watch)
@@ -10,6 +10,7 @@ const inquirer = require('inquirer')
10
10
  const TrackingEitriAnalytics = require('../service/TrackingEitriAnalytics')
11
11
  const VegvisirService = require('../modules/vegvisir/VegvisirService')
12
12
  const getWorkspace = require('../util/getWorkspace')
13
+ const UserLocalCredential = require('../util/UserLocalCredential')
13
14
 
14
15
  const blindGuardian = workspace.blindGuardian
15
16
  const trackingService = new TrackingService(blindGuardian)
@@ -17,6 +18,14 @@ const targetService = new TargetService(workspace)
17
18
  const vegvisirService = new VegvisirService()
18
19
 
19
20
  module.exports = async function pushVersion(cmdObj) {
21
+ try {
22
+ UserLocalCredential.checkForCredentials()
23
+ } catch (error) {
24
+ const errorMessage = cmdObj?.verbose ? error : error?.message
25
+ console.error("\n", errorMessage, "\n")
26
+ return
27
+ }
28
+
20
29
  try {
21
30
  await validator.assertPushVersionMessage(cmdObj.message)
22
31
  await validator.assertCommandNotRunning('push-version')
@@ -45,19 +54,19 @@ module.exports = {
45
54
  "name": "Minha Empresa"
46
55
  },
47
56
 
48
- // Nome do seu mini app
49
- "name": "Meu Mini App",
57
+ // Nome do seu Eitri-App
58
+ "name": "Meu Eitri-App",
50
59
 
51
- // Titulo do mini app, que vai em baixo do botao na pagina de transacoes
52
- "title": "Meu super mini app",
60
+ // Titulo do Eitri-App
61
+ "title": "Meu super Eitri-App",
53
62
 
54
63
  // Chave para gerar a ordem/qrcode de pagamento (opcional)
55
64
  "public-key": "",
56
65
 
57
- // Identificador amigavel para colocar em uma url
66
+ // Identificador amigável para colocar em uma url
58
67
  "slug": "com.eitri.loja",
59
68
 
60
- // Versao do mini app
69
+ // Versão do Eitri-App
61
70
  "version": "1.0.0",
62
71
 
63
72
  ${await targetService.getAppConfExampleSnippet()}
@@ -85,14 +94,14 @@ ${await targetService.getAppConfExampleSnippet()}
85
94
  // await logPermissionsAndOpenPrompt(addedPermissions, removedPermissions, cmdObj)
86
95
  // console.log(separator)
87
96
 
88
- console.log('Preparando os arquivos do seu eitri-app')
97
+ console.log('Preparando os arquivos do seu Eitri-App')
89
98
 
90
99
  await workspace.uploadAll()
91
100
  const webhooks = workspace.getWebhooks()
92
101
  printAvailableWebhooks(webhooks)
93
102
  console.log('')
94
103
  console.log(separator)
95
- console.log('Gerando eitri-app')
104
+ console.log('Gerando Eitri-App')
96
105
 
97
106
  const start = Date.now()
98
107
  let pushVersionPromise = miniLog.awaitForPushVersion()
@@ -100,17 +109,17 @@ ${await targetService.getAppConfExampleSnippet()}
100
109
  await pushVersionPromise
101
110
  console.log(separator)
102
111
  console.log('\x1b[1m\x1b[32mSucesso!!\x1b[0m');
103
- console.log(`\x1b[1mA versão [${miniConf.version}] do seu eitri-app foi gerada e está\x1b[0m`);
104
- console.log('\x1b[1mdisponível no Eitri Console para aprovação\x1b[0m');
112
+ console.log(`\x1b[1mA versão [${miniConf.version}] do seu Eitri-App foi enviada e está\x1b[0m`);
113
+ console.log('\x1b[1mdisponível no Eitri Console\x1b[0m');
105
114
  console.log(separator)
106
115
 
107
116
  const organization = miniConf?.organization ? Object.keys(miniConf?.organization).length !== 0 ? miniConf?.organization : "-" : {
108
117
  id: miniConf?.organizationId
109
118
  }
110
119
 
111
- await TrackingEitriAnalytics.sendEvent({
112
- command: "push-version",
113
- success: true,
120
+ TrackingEitriAnalytics.sendEvent({
121
+ eventName: "push-version",
122
+ userId: workspace?.userEmail,
114
123
  data: {
115
124
  eitriApp: {
116
125
  ...miniConf,
@@ -132,10 +141,12 @@ ${await targetService.getAppConfExampleSnippet()}
132
141
  console.log(`\x1b[1m\x1b[31mNão será possível continuar por enquanto. Ocorreu um erro.\x1b[0m`);
133
142
  }
134
143
 
135
- await TrackingEitriAnalytics.sendEvent({
136
- command: "push-version",
137
- success: false,
138
- errorMessage: e?.message
144
+ TrackingEitriAnalytics.sendEvent({
145
+ eventName: "push-version.error",
146
+ userId: workspace?.userEmail,
147
+ data: {
148
+ errorMessage: e?.message ?? ""
149
+ }
139
150
  })
140
151
  process.exit(1)
141
152
  }
@@ -143,7 +154,7 @@ ${await targetService.getAppConfExampleSnippet()}
143
154
 
144
155
  function printAvailableWebhooks(webhooks) {
145
156
  if(!webhooks || webhooks.length === 0) return
146
- console.log('\nWebhooks do MiniApp.')
157
+ console.log('\nWebhooks do Eitri-App.')
147
158
  console.table(webhooks)
148
159
  }
149
160
 
package/src/cmd/signup.js CHANGED
@@ -35,17 +35,19 @@ module.exports = async function signup(args) {
35
35
  new UserLocalCredential().saveContent(conf)
36
36
 
37
37
  TrackingEitriAnalytics.sendEvent({
38
- command: "signup",
39
- success: true,
38
+ eventName: "signup",
39
+ userId: email,
40
40
  data: {
41
41
  args
42
42
  }
43
43
  })
44
44
  } catch (e) {
45
- await TrackingEitriAnalytics.sendEvent({
46
- command: "signup",
47
- success: false,
48
- errorMessage: e?.message
45
+ TrackingEitriAnalytics.sendEvent({
46
+ eventName: "signup.error",
47
+ userId: email,
48
+ data: {
49
+ errorMessage: e?.message ?? ""
50
+ }
49
51
  })
50
52
 
51
53
  if (args.verbose) console.error(e)
package/src/cmd/start.js CHANGED
@@ -13,6 +13,7 @@ const inquirer = require('inquirer')
13
13
  const TrackingEitriAnalytics = require('../service/TrackingEitriAnalytics')
14
14
  const VegvisirService = require('../modules/vegvisir/VegvisirService')
15
15
  const getWorkspace = require('../util/getWorkspace')
16
+ const UserLocalCredential = require('../util/UserLocalCredential')
16
17
 
17
18
  const blindGuardian = workspace.blindGuardian
18
19
  const hashFolder = workspace.hashFolder
@@ -21,6 +22,14 @@ const watcher = new Watcher(workspace, hashFolder, trackingService)
21
22
  const vegvisirService = new VegvisirService()
22
23
 
23
24
  module.exports = async function start(args) {
25
+ try {
26
+ UserLocalCredential.checkForCredentials()
27
+ } catch (error) {
28
+ const errorMessage = args?.verbose ? error : error?.message
29
+ console.error("\n", errorMessage, "\n")
30
+ return
31
+ }
32
+
24
33
  try {
25
34
  if (!args.force) {
26
35
  await validator.assertCommandNotRunning('start')
@@ -85,43 +94,22 @@ module.exports = async function start(args) {
85
94
  await handleStartServer(args, trackingService, watcher, workspace, target, targetConfig, platform)
86
95
 
87
96
  TrackingEitriAnalytics.sendEvent({
88
- command: "start",
89
- success: true,
97
+ eventName:"start",
98
+ userId: workspace?.userEmail,
90
99
  data: {
91
- args,
92
- platform,
93
- workspace: {
94
- id: workspace?.target?.id,
95
- name: workspace?.target?.name,
96
- superAppClientLibName: workspace?.target?.superAppClientLibName,
97
- componentsLibName: workspace?.target?.componentsLibName,
98
- description: workspace?.target?.description,
99
- status: workspace?.target?.status,
100
- platform: workspace?.target?.platform,
101
- organization: {...workspace?.target?.organization},
102
- userEmail: workspace?.userEmail,
103
- },
104
- eitriApp: {
105
- name: workspace?._miniConf?.name,
106
- title: workspace?._miniConf?.title,
107
- slug: workspace?._miniConf?.slug,
108
- version: workspace?._miniConf?.version,
109
- organization: workspace?._miniConf?.organization,
110
- "eitri-app-components": workspace?._miniConf?.["eitri-app-components"],
111
- "eitri-app-client": workspace?._miniConf?.["eitri-app-client"],
112
- "eitri-commons": workspace?._miniConf?.["eitri-commons"],
113
- publickey: workspace?._miniConf?.["public-key"]
114
- }
100
+ workspace,
101
+ userWorkspace,
102
+ miniConf,
103
+ args
115
104
  }
116
105
  })
117
106
  } catch (e) {
118
107
  TrackingEitriAnalytics.sendEvent({
119
- command: "start",
120
- success: false,
108
+ eventName: "start.error",
109
+ userId: workspace?.userEmail,
121
110
  data: {
122
- args,
123
- },
124
- errorMessage: e?.message || ""
111
+ errorMessage: e?.message || "start.error"
112
+ }
125
113
  })
126
114
 
127
115
  if (args.verbose) console.error(e)
@@ -174,5 +162,5 @@ async function listTargetConfigs(target) {
174
162
  ]).then(input => input)
175
163
 
176
164
  const config = availableConfigs.find(cfg => cfg.id === res.accepted)
177
- console.log(`Utilize o comando --target-config ${config.id} para iniciar o miniapp com a configuração desejada`)
165
+ console.log(`Utilize o comando --target-config ${config.id} para iniciar o Eitri-App com a configuração desejada`)
178
166
  }
@@ -9,14 +9,14 @@ const hashFolder = new HashFolder()
9
9
  const workspace = new Workspace(blindGuardian, hashFolder)
10
10
 
11
11
  module.exports = async function tailLogs(clientEmail) {
12
- const config = require('config')
13
- const miniLog = new MiniLog(config.get('miniLog'))
12
+ const configService = require('../service/ConfigService')
13
+ const miniLog = new MiniLog(configService.get('miniLog'))
14
14
  version()
15
15
  const folder2watch = path.join(process.cwd(), 'src')
16
16
  workspace.setFolder2Watch(folder2watch)
17
17
  blindGuardian.readConf()
18
18
 
19
- const url = config.get('workspace').url
19
+ const url = configService.get('workspace').url
20
20
  workspace.setServerUrl(url)
21
21
  await workspace.init()
22
22
  await miniLog.connect(workspace.userEmail)
@@ -1,6 +1,6 @@
1
1
  class Payload {
2
2
  /**
3
- * Create a miniapp payload.
3
+ * Create a Eitri-App payload.
4
4
  * @param {string} workspaceUrl
5
5
  * @param {string} shareId
6
6
  * @param {string} shareEnvironment
@@ -1,7 +1,7 @@
1
1
  const { default: axios } = require("../../../node_modules/axios/index");
2
2
  const BlindGuardian = require("../../service/BlindGuardian");
3
3
  const Http = require("../../service/Http");
4
- const config = require("config");
4
+ const configService = require("../../service/ConfigService");
5
5
  const getWorkspace = require("../../util/getWorkspace");
6
6
  const writeGlobalWorkspaceConfig = require("./utils/writeGlobalWorkspaceConfig");
7
7
 
@@ -9,7 +9,7 @@ module.exports = class VegvisirService {
9
9
  constructor() {
10
10
  const blindGuardian = new BlindGuardian();
11
11
  this.http = new Http(blindGuardian);
12
- this.config = config.get("vegvisir");
12
+ this.config = configService.get("vegvisir");
13
13
  }
14
14
 
15
15
  async listMyWorkspaces() {
@@ -31,7 +31,7 @@ module.exports = class VegvisirService {
31
31
 
32
32
  }
33
33
  } else {
34
- console.error("Houve um erro inesperado ao listar workspaces");
34
+ console.error("Houve um erro inesperado ao listar workspaces: \n", error?.message);
35
35
  }
36
36
  }
37
37
  }
@@ -70,7 +70,7 @@ module.exports = class VegvisirService {
70
70
  );
71
71
  return process.exit(0)
72
72
  }
73
- console.error("Houve um erro inesperado ao listar workspaces");
73
+ console.error("Ocorreu um erro inesperado ao listar workspaces", error?.message);
74
74
  return process.exit(0)
75
75
  }
76
76
  console.error(error.message)
@@ -8,6 +8,7 @@ module.exports = async function list(cmdObj) {
8
8
  console.log("\tWorkspaces Disponíveis");
9
9
  console.log("=======================================\n");
10
10
  for (const workspace of workspaces) {
11
- console.log("Workspace: ", workspace.name);
11
+ console.log(`Workspace: ${workspace.name}`);
12
+ console.log(` Id: ${workspace.id}`);
12
13
  }
13
14
  };
@@ -37,7 +37,7 @@ async function writeLocalWorkspaceConfig(selectedWorkspace) {
37
37
 
38
38
  if (!existsSync(oldConfPath) && !existsSync(eitriAppConfPath)) {
39
39
  console.error(
40
- "Você só pode selecionar um workspace como local dentro de um projeto de eitri-app"
40
+ "Você só pode selecionar um workspace como local dentro de um projeto de Eitri-App"
41
41
  );
42
42
  return;
43
43
  }
@@ -1,8 +1,5 @@
1
- const fs = require('fs')
2
- const os = require('os')
3
- const path = require('path')
4
1
  const axios = require('axios')
5
- const config = require('config')
2
+ const configService = require('../service/ConfigService')
6
3
  const { exit } = require('process')
7
4
 
8
5
  const DEFAULT_ENV = 'hml'
@@ -10,7 +7,7 @@ const DEFAULT_ENV = 'hml'
10
7
  class AuthConfig { // abastract
11
8
 
12
9
  constructor() {
13
- this.blindGuardianUrl = config.get('blindGuardian').url
10
+ this.blindGuardianUrl = configService.get('blindGuardian').url
14
11
  }
15
12
 
16
13
  getConfPath() {}
@@ -18,12 +15,12 @@ class AuthConfig { // abastract
18
15
  readConf() {}
19
16
 
20
17
  readClientCredentials() {
21
- const credencialConfig = this.readConf()
18
+ const credentialConfig = this.readConf()
22
19
  let data
23
- if (this._isOldProfileVersion(credencialConfig)) {
20
+ if (this._isOldProfileVersion(credentialConfig)) {
24
21
  data = {
25
- client_id: credencialConfig.devUser,
26
- client_secret: credencialConfig.devKey,
22
+ client_id: credentialConfig.devUser,
23
+ client_secret: credentialConfig.devKey,
27
24
  grant_type: 'client_credentials'
28
25
  }
29
26
  }
@@ -31,8 +28,8 @@ class AuthConfig { // abastract
31
28
  const env = process.env.NODE_ENV || DEFAULT_ENV
32
29
  try {
33
30
  data = {
34
- client_id: credencialConfig[env].devUser,
35
- client_secret: credencialConfig[env].devKey,
31
+ client_id: credentialConfig[env].devUser,
32
+ client_secret: credentialConfig[env].devKey,
36
33
  grant_type: 'client_credentials'
37
34
  }
38
35
  }
@@ -61,7 +58,7 @@ class AuthConfig { // abastract
61
58
  const url = `${this.blindGuardianUrl}/v1/o/auth`
62
59
  const options = {
63
60
  headers : {
64
- 'User-Agent': config.get('userAgent')
61
+ 'User-Agent': configService.get('userAgent')
65
62
  }
66
63
  }
67
64
  const auth = await axios.post(url, clientCredentials, options)