@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.
- package/cli/hive.js +31 -117
- package/package.json +3 -2
- package/starter/package-lock.json +2655 -2357
- package/starter/package.json +40 -35
- package/starter/src/app-config/app.js +1 -1
- package/starter/src/app-config/assertEnv.js +3 -3
- package/starter/src/app-config/index.js +16 -25
- package/starter/src/app.js +32 -34
- package/starter/src/autoMap/addHandlers.js +6 -40
- package/starter/src/autoMap/mapSchema.js +5 -34
- package/starter/src/autoMap/schemaMappings.js +1 -1
- package/starter/src/bullMqBus.js +4 -4
- package/starter/src/{bullMq.js → bullMqWrapper.js} +3 -4
- package/starter/src/db.js +28 -36
- package/starter/src/emails/MyEmailComponent.jsx +1 -3
- package/starter/src/emails/compiled/MyEmailComponent.js +5 -4
- package/starter/src/emails/compiled/compiled/MyEmailComponent.js +18 -0
- package/starter/src/helpers/db/ifUpdated.js +2 -2
- package/starter/src/helpers/getResourceEndpoints.js +3 -3
- package/starter/src/helpers/getResources.js +4 -4
- package/starter/src/helpers/getSchemas.js +7 -8
- package/starter/src/helpers/prettierFormat.js +2 -2
- package/starter/src/ioEmitter.js +4 -5
- package/starter/src/lib/node-mongo/package-lock.json +3682 -0
- package/starter/src/lib/node-mongo/src/index.js +7 -22
- package/starter/src/lib/node-mongo/src/mongo-query-service.js +3 -4
- package/starter/src/lib/node-mongo/src/mongo-service-error.js +1 -1
- package/starter/src/lib/node-mongo/src/mongo-service.js +6 -8
- package/starter/src/logger.js +3 -3
- package/starter/src/middlewares/global/extractUserTokens.js +1 -1
- package/starter/src/middlewares/global/tryToAttachUser.js +4 -3
- package/starter/src/middlewares/isAuthorized.js +6 -4
- package/starter/src/middlewares/shouldExist.js +2 -2
- package/starter/src/middlewares/shouldNotExist.js +3 -3
- package/starter/src/middlewares/uploadFile.js +2 -2
- package/starter/src/middlewares/validate.js +24 -31
- package/starter/src/migrations/migration.js +1 -1
- package/starter/src/migrations/migration.service.js +9 -11
- package/starter/src/migrations/migrations/1.js +2 -2
- package/starter/src/migrations/migrations-log/migration-log.schema.js +14 -13
- package/starter/src/migrations/migrations-log/migration-log.service.js +3 -4
- package/starter/src/migrations/migrations.schema.js +8 -7
- package/starter/src/migrations/migrator.js +6 -8
- package/starter/src/migrator.js +4 -5
- package/starter/src/resources/_dev/endpoints/triggerSchedulerHandler.js +6 -6
- package/starter/src/resources/health/endpoints/get.js +9 -7
- package/starter/src/resources/schemaMappings/schemaMappings.schema.js +6 -6
- package/starter/src/resources/tokens/methods/generateSecureToken.js +3 -3
- package/starter/src/resources/tokens/methods/setToken.js +3 -2
- package/starter/src/resources/tokens/methods/storeToken.js +6 -5
- package/starter/src/resources/tokens/tokens.schema.js +11 -11
- package/starter/src/resources/users/endpoints/getCurrentUser.js +6 -6
- package/starter/src/resources/users/endpoints/getUserProfile.js +8 -6
- package/starter/src/resources/users/methods/ensureUserCreated.js +5 -4
- package/starter/src/resources/users/users.schema.js +13 -14
- package/starter/src/routes/index.js +34 -54
- package/starter/src/routes/middlewares/attachCustomErrors.js +2 -2
- package/starter/src/routes/middlewares/routeErrorHandler.js +3 -3
- package/starter/src/scheduler/handlers/sendDailyReport.example.js +3 -3
- package/starter/src/scheduler.js +18 -18
- package/starter/src/security.util.js +6 -6
- package/starter/src/services/emailService.js +4 -4
- package/starter/src/services/setCookie.js +5 -6
- package/starter/src/socketIo.js +9 -12
- 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
|
|
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('
|
|
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
|
-
|
|
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
|
|
27
|
-
.description('Build
|
|
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'
|
|
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
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
await
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
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
|
|
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",
|