@paralect/hive 0.0.27 → 0.1.0

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 (65) hide show
  1. package/cli/hive.js +31 -117
  2. package/package.json +3 -2
  3. package/starter/package-lock.json +2655 -2357
  4. package/starter/package.json +40 -35
  5. package/starter/src/app-config/app.js +1 -1
  6. package/starter/src/app-config/assertEnv.js +3 -3
  7. package/starter/src/app-config/index.js +16 -25
  8. package/starter/src/app.js +32 -34
  9. package/starter/src/autoMap/addHandlers.js +6 -40
  10. package/starter/src/autoMap/mapSchema.js +5 -34
  11. package/starter/src/autoMap/schemaMappings.js +1 -1
  12. package/starter/src/bullMqBus.js +4 -4
  13. package/starter/src/{bullMq.js → bullMqWrapper.js} +3 -4
  14. package/starter/src/db.js +28 -36
  15. package/starter/src/emails/MyEmailComponent.jsx +1 -3
  16. package/starter/src/emails/compiled/MyEmailComponent.js +5 -4
  17. package/starter/src/emails/compiled/compiled/MyEmailComponent.js +18 -0
  18. package/starter/src/helpers/db/ifUpdated.js +2 -2
  19. package/starter/src/helpers/getResourceEndpoints.js +3 -3
  20. package/starter/src/helpers/getResources.js +4 -4
  21. package/starter/src/helpers/getSchemas.js +7 -8
  22. package/starter/src/helpers/prettierFormat.js +2 -2
  23. package/starter/src/ioEmitter.js +4 -5
  24. package/starter/src/lib/node-mongo/package-lock.json +3682 -0
  25. package/starter/src/lib/node-mongo/src/index.js +7 -22
  26. package/starter/src/lib/node-mongo/src/mongo-query-service.js +3 -4
  27. package/starter/src/lib/node-mongo/src/mongo-service-error.js +1 -1
  28. package/starter/src/lib/node-mongo/src/mongo-service.js +6 -8
  29. package/starter/src/logger.js +3 -3
  30. package/starter/src/middlewares/global/extractUserTokens.js +1 -1
  31. package/starter/src/middlewares/global/tryToAttachUser.js +4 -3
  32. package/starter/src/middlewares/isAuthorized.js +6 -4
  33. package/starter/src/middlewares/shouldExist.js +2 -2
  34. package/starter/src/middlewares/shouldNotExist.js +3 -3
  35. package/starter/src/middlewares/uploadFile.js +2 -2
  36. package/starter/src/middlewares/validate.js +24 -31
  37. package/starter/src/migrations/migration.js +1 -1
  38. package/starter/src/migrations/migration.service.js +9 -11
  39. package/starter/src/migrations/migrations/1.js +2 -2
  40. package/starter/src/migrations/migrations-log/migration-log.schema.js +14 -13
  41. package/starter/src/migrations/migrations-log/migration-log.service.js +3 -4
  42. package/starter/src/migrations/migrations.schema.js +8 -7
  43. package/starter/src/migrations/migrator.js +6 -8
  44. package/starter/src/migrator.js +4 -5
  45. package/starter/src/resources/_dev/endpoints/triggerSchedulerHandler.js +6 -6
  46. package/starter/src/resources/health/endpoints/get.js +9 -7
  47. package/starter/src/resources/schemaMappings/schemaMappings.schema.js +6 -6
  48. package/starter/src/resources/tokens/methods/generateSecureToken.js +3 -3
  49. package/starter/src/resources/tokens/methods/setToken.js +3 -2
  50. package/starter/src/resources/tokens/methods/storeToken.js +6 -5
  51. package/starter/src/resources/tokens/tokens.schema.js +11 -11
  52. package/starter/src/resources/users/endpoints/getCurrentUser.js +6 -6
  53. package/starter/src/resources/users/endpoints/getUserProfile.js +8 -6
  54. package/starter/src/resources/users/methods/ensureUserCreated.js +5 -4
  55. package/starter/src/resources/users/users.schema.js +13 -14
  56. package/starter/src/routes/index.js +34 -54
  57. package/starter/src/routes/middlewares/attachCustomErrors.js +2 -2
  58. package/starter/src/routes/middlewares/routeErrorHandler.js +3 -3
  59. package/starter/src/scheduler/handlers/sendDailyReport.example.js +3 -3
  60. package/starter/src/scheduler.js +18 -18
  61. package/starter/src/security.util.js +6 -6
  62. package/starter/src/services/emailService.js +4 -4
  63. package/starter/src/services/setCookie.js +5 -6
  64. package/starter/src/socketIo.js +9 -12
  65. package/starter/tsconfig.json +27 -0
package/cli/hive.js CHANGED
@@ -3,12 +3,11 @@
3
3
  const { program } = require('commander');
4
4
 
5
5
  const path = require('path');
6
- const isAuthorized = require('./helpers/isAuthorized');
6
+ const inquirer = require('inquirer');
7
7
  const mergeDirs = require('./helpers/mergeDirs');
8
8
  const execCommand = require('./helpers/execCommand');
9
9
  const downloadDirectory = require('./helpers/downloadDirectory');
10
- const axios = require('./helpers/axiosAuth');
11
- const isProjectInit = require('./helpers/isProjectInit.js');
10
+ const axios = require('axios');
12
11
 
13
12
  program
14
13
  .command('run [dirPath]')
@@ -16,56 +15,16 @@ program
16
15
  .action(async (dirPath = '.') => {
17
16
  try {
18
17
  process.env.HIVE_SRC = path.resolve(process.cwd(), dirPath);
19
- require('./../starter/src/app.js');
18
+ execCommand(`npm run dev --prefix ${path.resolve(__dirname, '../starter')}`);
19
+ // require('./../starter/src/app.js');
20
20
  } catch (error) {
21
21
  console.error('An error occurred:', error.message);
22
22
  }
23
23
  });
24
24
 
25
25
  program
26
- .command('deploy [imageTag]')
27
- .description('Build and deploy Hive project from local machine docker + helm')
28
- .action(async (imageTag) => {
29
- process.env.HIVE_SRC = path.resolve(process.cwd());
30
-
31
- if (!imageTag) {
32
- const { stdout: branch } = await execCommand(
33
- "git rev-parse --abbrev-ref HEAD",
34
- { stdio: "pipe" }
35
- );
36
- const { stdout: commitSHA } = await execCommand("git rev-parse HEAD", {
37
- stdio: "pipe",
38
- });
39
-
40
- imageTag = `${branch}.${commitSHA}`;
41
- }
42
-
43
- console.log("Deploying Image Tag ", imageTag);
44
-
45
- try {
46
- await isAuthorized();
47
- const { projectId } = await isProjectInit();
48
- console.log('project id', projectId)
49
- const { isOk } = (
50
- await axios({
51
- // url: `http://localhost:3001/projects/${projectId}/deploy`,
52
- url: `projects/${projectId}/deploy`,
53
- method: 'post',
54
- data: {
55
- imageTag
56
- }
57
- })
58
- ).data;
59
-
60
- console.log('Deployed');
61
- } catch (error) {
62
- console.error('An error occurred:', error.message);
63
- }
64
- });
65
-
66
- program
67
- .command('build-local')
68
- .description('Build Hive project from local machine with docker')
26
+ .command('deploy')
27
+ .description('Build hive project')
69
28
  .action(async () => {
70
29
  try {
71
30
  let outDir = path.resolve(process.cwd(), './dist');
@@ -74,7 +33,6 @@ program
74
33
  console.log('outDir', path.resolve(outDir, `./deploy/script`))
75
34
  await execCommand(`npm install --prefix ${path.resolve(outDir, `./deploy/script`)}`);
76
35
 
77
- // process.env.SKIP_KUBERNETES = true;
78
36
  await execCommand('node ./index.js', {
79
37
  cwd: path.resolve(outDir, `./deploy/script/src`)
80
38
  });
@@ -96,95 +54,51 @@ program
96
54
  }
97
55
  });
98
56
 
57
+
99
58
  program
100
59
  .command('login')
101
60
  .description('Login into Hive Cloud')
102
61
  .action(async () => {
103
62
  if (process.env.HIVE_TOKEN) {
104
- const user = (await axios({ url: `users/me`, method: 'get' })).data;
63
+ const user = (await axios({ url: `https://hive-api-test.paralect.co/users/me`, method: 'get', headers: {
64
+ 'Authorization': `Bearer ${process.env.HIVE_TOKEN}`
65
+ } })).data;
105
66
 
106
67
  console.log(`Already logged in!`, user);
107
68
 
108
69
  return;
109
70
  }
110
-
111
- });
112
-
113
- program
114
- .command('init')
115
- .description('Init Hive Project')
116
- .action(async () => {
117
- try {
118
- process.env.HIVE_SRC = path.resolve(process.cwd());
119
71
 
120
- await isAuthorized();
121
- await isProjectInit();
122
- } catch (error) {
123
- console.error('An error occurred:', error.message);
124
- }
125
- });
72
+ const { email } = await inquirer.prompt([
73
+ {
74
+ type: 'input',
75
+ name: 'email',
76
+ message: 'Please enter your email:'
77
+ }
78
+ ]);
126
79
 
127
- program
128
- .command('env-get <envName>')
129
- .description('Get env variable')
130
- .action(async (envName) => {
131
80
  try {
132
- process.env.HIVE_SRC = path.resolve(process.cwd());
133
-
134
- await isAuthorized();
135
- const { projectId } = await isProjectInit();
136
-
137
- const { value } = (await axios({
138
- method: 'post',
139
- url: `projects/${projectId}/get-env`,
140
- data: {
141
- name: envName
81
+ await axios({ url: `https://hive-api-test.paralect.co/auth/login-code`, method: 'post', data: { email } });
82
+
83
+ const { code } = await inquirer.prompt([
84
+ {
85
+ type: 'input',
86
+ name: 'code',
87
+ message: `One time code (sent to ${email})`,
142
88
  }
143
- })).data;
144
-
145
- console.log(`${envName} value is ${value || '<empty>'}`)
146
- } catch (error) {
147
- console.error('An error occurred:', error.message);
148
- }
149
- });
150
-
151
- program
152
- .command('env-set <envName> <envValue>')
153
- .description('Set env variable')
154
- .action(async (envName, envValue) => {
155
- try {
156
- process.env.HIVE_SRC = path.resolve(process.cwd());
89
+ ]);
157
90
 
158
- await isAuthorized();
159
- const { projectId } = await isProjectInit();
91
+ const { token, user } = (await axios({ url: `https://hive-api-test.paralect.co/auth/verify-login`, method: 'post', data: { email, code } })).data;
160
92
 
161
- const { value } = (await axios({
162
- method: 'post',
163
- url: `projects/${projectId}/env`,
164
- data: {
165
- name: envName,
166
- value: envValue,
167
- }
168
- })).data;
93
+ console.log(`
94
+ You're now logged into Hive! Welcome 🐝
95
+
96
+ Important: to save access add HIVE_TOKEN to your env variables and your ~/.zshrc file
169
97
 
170
- console.log(`Updated ${envName}`)
98
+ export HIVE_TOKEN=${token}`)
171
99
  } catch (error) {
172
100
  console.error('An error occurred:', error.message);
173
101
  }
174
102
  });
175
103
 
176
-
177
- // program
178
- // .command('init [name]')
179
- // .description('Installs Hive plugin')
180
- // .action(async (plugin) => {
181
- // try {
182
- // const destDir = process.cwd();
183
-
184
- // await downloadDirectory(plugin);
185
- // } catch (error) {
186
- // console.error('An error occurred:', error.message);
187
- // }
188
- // });
189
-
190
104
  program.parse(process.argv);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paralect/hive",
3
- "version": "0.0.27",
3
+ "version": "0.1.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -55,7 +55,8 @@
55
55
  "socket.io": "4.4.1",
56
56
  "socket.io-emitter": "3.2.0",
57
57
  "tail": "2.2.4",
58
- "winston": "3.6.0"
58
+ "winston": "3.6.0",
59
+ "zod": "^3.23.8"
59
60
  },
60
61
  "devDependencies": {
61
62
  "eslint": "8.9.0",