@paralect/hive 0.0.28 → 0.1.1

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 +32 -116
  2. package/package.json +5 -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 +2 -2
  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,12 @@
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');
11
+ const tsx = require('tsx/cjs/api')
12
12
 
13
13
  program
14
14
  .command('run [dirPath]')
@@ -16,56 +16,17 @@ program
16
16
  .action(async (dirPath = '.') => {
17
17
  try {
18
18
  process.env.HIVE_SRC = path.resolve(process.cwd(), dirPath);
19
- require('./../starter/src/app.js');
20
- } catch (error) {
21
- console.error('An error occurred:', error.message);
22
- }
23
- });
24
-
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);
19
+ execCommand(`npm run dev --prefix ${path.resolve(__dirname, '../starter')}`);
44
20
 
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');
21
+ tsx.require('./../starter/src/app.js', __filename);
61
22
  } catch (error) {
62
23
  console.error('An error occurred:', error.message);
63
24
  }
64
25
  });
65
26
 
66
27
  program
67
- .command('build-local')
68
- .description('Build Hive project from local machine with docker')
28
+ .command('deploy')
29
+ .description('Build hive project')
69
30
  .action(async () => {
70
31
  try {
71
32
  let outDir = path.resolve(process.cwd(), './dist');
@@ -74,7 +35,6 @@ program
74
35
  console.log('outDir', path.resolve(outDir, `./deploy/script`))
75
36
  await execCommand(`npm install --prefix ${path.resolve(outDir, `./deploy/script`)}`);
76
37
 
77
- // process.env.SKIP_KUBERNETES = true;
78
38
  await execCommand('node ./index.js', {
79
39
  cwd: path.resolve(outDir, `./deploy/script/src`)
80
40
  });
@@ -96,95 +56,51 @@ program
96
56
  }
97
57
  });
98
58
 
59
+
99
60
  program
100
61
  .command('login')
101
62
  .description('Login into Hive Cloud')
102
63
  .action(async () => {
103
64
  if (process.env.HIVE_TOKEN) {
104
- const user = (await axios({ url: `users/me`, method: 'get' })).data;
65
+ const user = (await axios({ url: `https://hive-api-test.paralect.co/users/me`, method: 'get', headers: {
66
+ 'Authorization': `Bearer ${process.env.HIVE_TOKEN}`
67
+ } })).data;
105
68
 
106
69
  console.log(`Already logged in!`, user);
107
70
 
108
71
  return;
109
72
  }
110
-
111
- });
112
73
 
113
- program
114
- .command('init')
115
- .description('Init Hive Project')
116
- .action(async () => {
117
- try {
118
- process.env.HIVE_SRC = path.resolve(process.cwd());
74
+ const { email } = await inquirer.prompt([
75
+ {
76
+ type: 'input',
77
+ name: 'email',
78
+ message: 'Please enter your email:'
79
+ }
80
+ ]);
119
81
 
120
- await isAuthorized();
121
- await isProjectInit();
122
- } catch (error) {
123
- console.error('An error occurred:', error.message);
124
- }
125
- });
126
-
127
- program
128
- .command('env-get <envName>')
129
- .description('Get env variable')
130
- .action(async (envName) => {
131
82
  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
83
+ await axios({ url: `https://hive-api-test.paralect.co/auth/login-code`, method: 'post', data: { email } });
84
+
85
+ const { code } = await inquirer.prompt([
86
+ {
87
+ type: 'input',
88
+ name: 'code',
89
+ message: `One time code (sent to ${email})`,
142
90
  }
143
- })).data;
91
+ ]);
144
92
 
145
- console.log(`${envName} value is ${value || '<empty>'}`)
146
- } catch (error) {
147
- console.error('An error occurred:', error.message);
148
- }
149
- });
93
+ const { token, user } = (await axios({ url: `https://hive-api-test.paralect.co/auth/verify-login`, method: 'post', data: { email, code } })).data;
150
94
 
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());
95
+ console.log(`
96
+ You're now logged into Hive! Welcome 🐝
97
+
98
+ Important: to save access add HIVE_TOKEN to your env variables and your ~/.zshrc file
157
99
 
158
- await isAuthorized();
159
- const { projectId } = await isProjectInit();
160
-
161
- const { value } = (await axios({
162
- method: 'post',
163
- url: `projects/${projectId}/env`,
164
- data: {
165
- name: envName,
166
- value: envValue,
167
- }
168
- })).data;
169
-
170
- console.log(`Updated ${envName}`)
100
+ export HIVE_TOKEN=${token}`)
171
101
  } catch (error) {
172
102
  console.error('An error occurred:', error.message);
173
103
  }
174
104
  });
175
105
 
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
106
  program.parse(process.argv);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paralect/hive",
3
- "version": "0.0.28",
3
+ "version": "0.1.1",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -55,7 +55,10 @@
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
+ "tsx": "^4.16.2",
59
+ "typescript": "^5.5.4",
60
+ "winston": "3.6.0",
61
+ "zod": "^3.23.8"
59
62
  },
60
63
  "devDependencies": {
61
64
  "eslint": "8.9.0",