@hed-hog/core 0.0.78 → 0.0.82

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 (88) hide show
  1. package/dist/auth/dto/change.dto.d.ts.map +1 -1
  2. package/dist/auth/dto/change.dto.js +4 -6
  3. package/dist/auth/dto/change.dto.js.map +1 -1
  4. package/dist/auth/dto/email.dto.d.ts.map +1 -1
  5. package/dist/auth/dto/email.dto.js +4 -3
  6. package/dist/auth/dto/email.dto.js.map +1 -1
  7. package/dist/auth/dto/forget.dto.d.ts.map +1 -1
  8. package/dist/auth/dto/forget.dto.js +3 -1
  9. package/dist/auth/dto/forget.dto.js.map +1 -1
  10. package/dist/auth/dto/login.dto.d.ts.map +1 -1
  11. package/dist/auth/dto/login.dto.js +3 -1
  12. package/dist/auth/dto/login.dto.js.map +1 -1
  13. package/dist/auth/guards/auth.guard.d.ts.map +1 -1
  14. package/dist/auth/guards/auth.guard.js +3 -1
  15. package/dist/auth/guards/auth.guard.js.map +1 -1
  16. package/dist/challenge/challenge.service.d.ts +2 -2
  17. package/dist/challenge/challenge.service.d.ts.map +1 -1
  18. package/dist/challenge/challenge.service.js.map +1 -1
  19. package/dist/install/dto/install.dto.d.ts.map +1 -1
  20. package/dist/install/dto/install.dto.js +3 -1
  21. package/dist/install/dto/install.dto.js.map +1 -1
  22. package/dist/mail/dto/test-mail.dto.d.ts.map +1 -1
  23. package/dist/mail/dto/test-mail.dto.js +4 -2
  24. package/dist/mail/dto/test-mail.dto.js.map +1 -1
  25. package/dist/profile/dto/change-email.dto.d.ts +5 -0
  26. package/dist/profile/dto/change-email.dto.d.ts.map +1 -0
  27. package/dist/profile/dto/change-email.dto.js +31 -0
  28. package/dist/profile/dto/change-email.dto.js.map +1 -0
  29. package/dist/profile/dto/change-password.dto.d.ts.map +1 -1
  30. package/dist/profile/dto/change-password.dto.js +2 -2
  31. package/dist/profile/dto/change-password.dto.js.map +1 -1
  32. package/dist/profile/dto/email-verification-confirm.dto.d.ts.map +1 -1
  33. package/dist/profile/dto/email-verification-confirm.dto.js +4 -2
  34. package/dist/profile/dto/email-verification-confirm.dto.js.map +1 -1
  35. package/dist/profile/dto/send-email-verification.dto.d.ts.map +1 -1
  36. package/dist/profile/dto/send-email-verification.dto.js +3 -3
  37. package/dist/profile/dto/send-email-verification.dto.js.map +1 -1
  38. package/dist/profile/profile.controller.d.ts +9 -0
  39. package/dist/profile/profile.controller.d.ts.map +1 -1
  40. package/dist/profile/profile.controller.js +13 -0
  41. package/dist/profile/profile.controller.js.map +1 -1
  42. package/dist/profile/profile.service.d.ts +7 -0
  43. package/dist/profile/profile.service.d.ts.map +1 -1
  44. package/dist/profile/profile.service.js +5 -0
  45. package/dist/profile/profile.service.js.map +1 -1
  46. package/dist/token/token.service.d.ts.map +1 -1
  47. package/dist/token/token.service.js +2 -1
  48. package/dist/token/token.service.js.map +1 -1
  49. package/dist/user/user.controller.d.ts +6 -24
  50. package/dist/user/user.controller.d.ts.map +1 -1
  51. package/dist/user/user.controller.js +12 -0
  52. package/dist/user/user.controller.js.map +1 -1
  53. package/dist/user/user.service.d.ts +6 -24
  54. package/dist/user/user.service.d.ts.map +1 -1
  55. package/dist/user/user.service.js +32 -1
  56. package/dist/user/user.service.js.map +1 -1
  57. package/hedhog/data/route.yaml +12 -0
  58. package/hedhog/table/user_identifier_challenge.yaml +19 -0
  59. package/package.json +8 -6
  60. package/src/auth/dto/change.dto.ts +5 -10
  61. package/src/auth/dto/email.dto.ts +5 -4
  62. package/src/auth/dto/forget.dto.ts +4 -2
  63. package/src/auth/dto/login.dto.ts +4 -2
  64. package/src/auth/guards/auth.guard.ts +7 -5
  65. package/src/challenge/challenge.service.ts +2 -0
  66. package/src/install/dto/install.dto.ts +4 -2
  67. package/src/mail/dto/test-mail.dto.ts +5 -3
  68. package/src/profile/dto/change-email.dto.ts +15 -0
  69. package/src/profile/dto/change-password.dto.ts +3 -3
  70. package/src/profile/dto/email-verification-confirm.dto.ts +5 -3
  71. package/src/profile/dto/send-email-verification.dto.ts +4 -4
  72. package/src/profile/profile.controller.ts +6 -0
  73. package/src/profile/profile.service.ts +9 -0
  74. package/src/token/token.service.ts +5 -2
  75. package/src/user/user.controller.ts +22 -13
  76. package/src/user/user.service.ts +51 -6
  77. package/dist/core/core.controller.d.ts +0 -44
  78. package/dist/core/core.controller.d.ts.map +0 -1
  79. package/dist/core/core.controller.js +0 -38
  80. package/dist/core/core.controller.js.map +0 -1
  81. package/dist/core/core.module.d.ts +0 -3
  82. package/dist/core/core.module.d.ts.map +0 -1
  83. package/dist/core/core.module.js +0 -28
  84. package/dist/core/core.module.js.map +0 -1
  85. package/dist/core/core.service.d.ts +0 -56
  86. package/dist/core/core.service.d.ts.map +0 -1
  87. package/dist/core/core.service.js +0 -320
  88. package/dist/core/core.service.js.map +0 -1
@@ -1,320 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- var __metadata = (this && this.__metadata) || function (k, v) {
42
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
- };
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.CoreService = void 0;
46
- const api_prisma_1 = require("@hed-hog/api-prisma");
47
- const common_1 = require("@nestjs/common");
48
- const child_process_1 = require("child_process");
49
- const fs = __importStar(require("fs"));
50
- const os = __importStar(require("os"));
51
- const path = __importStar(require("path"));
52
- let CoreService = class CoreService {
53
- constructor(prismaService) {
54
- this.prismaService = prismaService;
55
- }
56
- async index() {
57
- const cpus = os.cpus();
58
- const totalSpeed = cpus.reduce((acc, cpu) => acc + cpu.speed, 0);
59
- const averageSpeed = totalSpeed / cpus.length;
60
- return {
61
- os: {
62
- name: this.getFriendlyOSName(),
63
- platform: os.platform(),
64
- version: os.release(),
65
- architecture: os.arch(),
66
- uptime: os.uptime(),
67
- cpu: this.getCpuInfo(cpus, averageSpeed),
68
- memory: this.getMemoryInfo(),
69
- disk: await this.getDiskInfo(),
70
- },
71
- modules: await this.getModulesInfo(),
72
- users: await this.getUsersInfo(),
73
- database: await this.getDatabaseInfo(),
74
- };
75
- }
76
- getFriendlyOSName() {
77
- switch (os.platform()) {
78
- case 'aix':
79
- return `AIX`;
80
- case 'darwin':
81
- return `macOS`;
82
- case 'freebsd':
83
- return `FreeBSD`;
84
- case 'linux':
85
- return `Linux`;
86
- case 'openbsd':
87
- return `OpenBSD`;
88
- case 'sunos':
89
- return `SunOS`;
90
- case 'win32':
91
- return `Windows`;
92
- default:
93
- return `Unknown`;
94
- }
95
- }
96
- async getDatabaseInfo() {
97
- let connections, size, queriesPerSecond;
98
- if (process.env.DATABASE_URL.includes('postgres')) {
99
- [connections, size, queriesPerSecond] = await Promise.all([
100
- this.prismaService.$queryRaw `SELECT COUNT(*) FROM pg_stat_activity`, // For PostgreSQL
101
- this.prismaService
102
- .$queryRaw `SELECT pg_database_size(current_database())`, // For PostgreSQL
103
- this.prismaService
104
- .$queryRaw `SELECT sum(numbackends) FROM pg_stat_database`, // For PostgreSQL
105
- ]);
106
- }
107
- else if (process.env.DATABASE_URL.includes('mysql')) {
108
- [connections, size, queriesPerSecond] = await Promise.all([
109
- this.prismaService
110
- .$queryRaw `SHOW STATUS WHERE variable_name = 'Threads_connected'`, // For MySQL
111
- this.prismaService
112
- .$queryRaw `SELECT SUM(data_length + index_length) AS size FROM information_schema.tables WHERE table_schema = DATABASE()`, // For MySQL
113
- this.prismaService
114
- .$queryRaw `SHOW STATUS WHERE variable_name = 'Queries'`, // For MySQL
115
- ]);
116
- }
117
- else {
118
- throw new Error('Unsupported database type');
119
- }
120
- return {
121
- connections: +String(connections[0].count || connections[0].Value) || 0,
122
- size: +String(size[0].pg_database_size || size[0].size) || 0,
123
- queriesPerSecond: +String(queriesPerSecond[0].sum || queriesPerSecond[0].Value) || 0,
124
- };
125
- }
126
- async getUsersInfo() {
127
- const users = await this.prismaService.user.findMany({
128
- include: {
129
- role_user: {
130
- where: {
131
- role_id: 1,
132
- },
133
- select: {
134
- role_id: true,
135
- },
136
- },
137
- },
138
- });
139
- const activities = await this.prismaService.user_activity.findMany({
140
- where: {
141
- created_at: {
142
- gte: new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000),
143
- },
144
- },
145
- take: 10,
146
- orderBy: {
147
- created_at: 'desc',
148
- },
149
- select: {
150
- created_at: true,
151
- user: {
152
- select: {
153
- name: true,
154
- id: true,
155
- },
156
- },
157
- },
158
- });
159
- return {
160
- total: users.length,
161
- admin: users.filter((user) => user.role_user.length > 0).length,
162
- active: 0,
163
- activities,
164
- };
165
- }
166
- async getModulesInfo() {
167
- const packageJsonPath = path.resolve(process.cwd(), 'package.json');
168
- return new Promise((resolve, reject) => {
169
- fs.readFile(packageJsonPath, 'utf8', async (err, data) => {
170
- if (err) {
171
- reject(`Error reading package.json: ${err.message}`);
172
- return;
173
- }
174
- try {
175
- const packageJson = JSON.parse(data);
176
- const dependencies = packageJson.dependencies || {};
177
- const hedgehogModules = await Promise.all(Object.keys(dependencies)
178
- .filter((key) => key.startsWith('@hedhog'))
179
- .map(async (key) => {
180
- const currentVersion = dependencies[key].replace(/^[\^~]/, '');
181
- const latestVersion = await this.getLatestVersion(key);
182
- return {
183
- name: key,
184
- version: dependencies[key],
185
- latestVersion,
186
- upToDate: currentVersion === latestVersion,
187
- };
188
- }));
189
- resolve(hedgehogModules);
190
- }
191
- catch (parseError) {
192
- reject(`Error parsing package.json: ${parseError === null || parseError === void 0 ? void 0 : parseError.message}`);
193
- }
194
- });
195
- });
196
- }
197
- async getLatestVersion(moduleName) {
198
- return new Promise((resolve, reject) => {
199
- (0, child_process_1.exec)(`npm show ${moduleName} version`, (error, stdout, stderr) => {
200
- if (error) {
201
- reject(`Error fetching latest version for ${moduleName}: ${error.message}`);
202
- return;
203
- }
204
- if (stderr) {
205
- reject(`stderr: ${stderr}`);
206
- return;
207
- }
208
- resolve(stdout.trim());
209
- });
210
- });
211
- }
212
- getCpuInfo(cpus, averageSpeed) {
213
- return {
214
- model: cpus[0].model,
215
- speed: averageSpeed,
216
- physicalCores: cpus.length / 2, // Assuming hyper-threading, this gives physical cores
217
- virtualCores: cpus.length,
218
- };
219
- }
220
- getMemoryInfo() {
221
- return {
222
- total: os.totalmem(),
223
- free: os.freemem(),
224
- };
225
- }
226
- async getDiskInfo() {
227
- return new Promise((resolve, reject) => {
228
- const command = this.getDiskCommand();
229
- if (!command) {
230
- reject('Unsupported OS');
231
- return;
232
- }
233
- (0, child_process_1.exec)(command, (error, stdout, stderr) => {
234
- if (error) {
235
- reject(`error: ${error.message}`);
236
- return;
237
- }
238
- if (stderr) {
239
- reject(`stderr: ${stderr}`);
240
- return;
241
- }
242
- const diskInfo = os.platform() === 'win32'
243
- ? this.parseWindowsDiskInfo(stdout)
244
- : this.parseUnixDiskInfo(stdout);
245
- resolve(diskInfo.filter((disk) => disk.filesystem !== undefined));
246
- });
247
- });
248
- }
249
- getDiskCommand() {
250
- switch (os.platform()) {
251
- case 'win32':
252
- if (fs.existsSync('C:\\Windows\\System32\\wbem\\wmic.exe')) {
253
- return 'wmic logicaldisk get size,freespace,caption';
254
- }
255
- else {
256
- return 'powershell -Command "Get-PSDrive -PSProvider FileSystem | Select-Object Name,Used,Free"';
257
- }
258
- case 'darwin':
259
- case 'linux':
260
- return 'df -h';
261
- default:
262
- return null;
263
- }
264
- }
265
- parseWindowsDiskInfo(output) {
266
- const lines = output.trim().split('\n');
267
- const result = [];
268
- for (let i = 1; i < lines.length; i++) {
269
- const parts = lines[i].trim().split(/\s+/);
270
- if (parts.length === 3) {
271
- result.push({
272
- filesystem: parts[0].replace(':', ''),
273
- size: parseInt(parts[1], 10),
274
- free: parseInt(parts[2], 10),
275
- });
276
- }
277
- }
278
- return result;
279
- }
280
- parsedSizeFormated(size) {
281
- const unit = size.slice(-1).toUpperCase();
282
- const value = parseFloat(size.slice(0, -1));
283
- switch (unit) {
284
- case 'T':
285
- return value * 1024 ** 4;
286
- case 'G':
287
- return value * 1024 ** 3;
288
- case 'M':
289
- return value * 1024 ** 2;
290
- case 'K':
291
- return value * 1024;
292
- default:
293
- return value; // Assume bytes if no unit is provided
294
- }
295
- }
296
- parseUnixDiskInfo(output) {
297
- const lines = output.trim().split('\n');
298
- const result = [];
299
- for (let i = 1; i < lines.length; i++) {
300
- const parts = lines[i].split(/\s+/);
301
- if (parts.length >= 6) {
302
- const size = this.parsedSizeFormated(parts[1]);
303
- const free = this.parsedSizeFormated(parts[3]);
304
- result.push({
305
- filesystem: parts[0],
306
- free,
307
- size,
308
- mountpoint: parts[5],
309
- });
310
- }
311
- }
312
- return result;
313
- }
314
- };
315
- exports.CoreService = CoreService;
316
- exports.CoreService = CoreService = __decorate([
317
- (0, common_1.Injectable)(),
318
- __metadata("design:paramtypes", [api_prisma_1.PrismaService])
319
- ], CoreService);
320
- //# sourceMappingURL=core.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.service.js","sourceRoot":"","sources":["../../src/core/core.service.ts"],"names":[],"mappings":"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"}