@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.
- package/cli/hive.js +32 -116
- package/package.json +5 -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 +2 -2
- 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,12 @@
|
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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('
|
|
68
|
-
.description('Build
|
|
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'
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
await
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
|
|
91
|
+
]);
|
|
144
92
|
|
|
145
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
"
|
|
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",
|