@hedhog/admin 0.48.3 → 0.48.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/auth/consts/body.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG,MA0BrC,CAAC"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/auth/consts/body.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,MA0BrC,CAAC"}
@@ -4,6 +4,7 @@ export declare class CoreController {
4
4
  constructor(service: CoreService);
5
5
  index(): Promise<{
6
6
  os: {
7
+ name: string;
7
8
  platform: NodeJS.Platform;
8
9
  version: string;
9
10
  architecture: string;
@@ -25,7 +26,12 @@ export declare class CoreController {
25
26
  total: number;
26
27
  admin: number;
27
28
  active: number;
28
- activities: any[];
29
+ activities: any;
30
+ };
31
+ database: {
32
+ connections: number;
33
+ size: number;
34
+ queriesPerSecond: number;
29
35
  };
30
36
  }>;
31
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core.controller.d.ts","sourceRoot":"","sources":["../../src/core/core.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBACa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAIjC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;CAGZ"}
1
+ {"version":3,"file":"core.controller.d.ts","sourceRoot":"","sources":["../../src/core/core.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBACa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAIjC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGZ"}
@@ -4,6 +4,7 @@ export declare class CoreService {
4
4
  constructor(prismaService: PrismaService);
5
5
  index(): Promise<{
6
6
  os: {
7
+ name: string;
7
8
  platform: NodeJS.Platform;
8
9
  version: string;
9
10
  architecture: string;
@@ -25,9 +26,16 @@ export declare class CoreService {
25
26
  total: number;
26
27
  admin: number;
27
28
  active: number;
28
- activities: any[];
29
+ activities: any;
30
+ };
31
+ database: {
32
+ connections: number;
33
+ size: number;
34
+ queriesPerSecond: number;
29
35
  };
30
36
  }>;
37
+ private getFriendlyOSName;
38
+ private getDatabaseInfo;
31
39
  private getUsersInfo;
32
40
  private getModulesInfo;
33
41
  private getLatestVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"core.service.d.ts","sourceRoot":"","sources":["../../src/core/core.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAO/C,qBACa,WAAW;IACV,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE1C,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;YAoBG,YAAY;YAsBZ,cAAc;YAoCd,gBAAgB;IAkB9B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,aAAa;YAOP,WAAW;IA2BzB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,iBAAiB;CAkB1B"}
1
+ {"version":3,"file":"core.service.d.ts","sourceRoot":"","sources":["../../src/core/core.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAO/C,qBACa,WAAW;IACV,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE1C,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBX,OAAO,CAAC,iBAAiB;YAqBX,eAAe;YAgCf,YAAY;YA4CZ,cAAc;YAoCd,gBAAgB;IAkB9B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,aAAa;YAOP,WAAW;IA2BzB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,iBAAiB;CAkB1B"}
@@ -59,6 +59,7 @@ let CoreService = class CoreService {
59
59
  const averageSpeed = totalSpeed / cpus.length;
60
60
  return {
61
61
  os: {
62
+ name: this.getFriendlyOSName(),
62
63
  platform: os.platform(),
63
64
  version: os.release(),
64
65
  architecture: os.arch(),
@@ -69,6 +70,57 @@ let CoreService = class CoreService {
69
70
  },
70
71
  modules: await this.getModulesInfo(),
71
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,
72
124
  };
73
125
  }
74
126
  async getUsersInfo() {
@@ -84,11 +136,32 @@ let CoreService = class CoreService {
84
136
  },
85
137
  },
86
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
+ message: true,
152
+ user: {
153
+ select: {
154
+ name: true,
155
+ id: true,
156
+ },
157
+ },
158
+ },
159
+ });
87
160
  return {
88
161
  total: users.length,
89
162
  admin: users.filter((user) => user.role_user.length > 0).length,
90
163
  active: 0,
91
- activities: [],
164
+ activities,
92
165
  };
93
166
  }
94
167
  async getModulesInfo() {
@@ -192,7 +265,7 @@ let CoreService = class CoreService {
192
265
  const parts = lines[i].trim().split(/\s+/);
193
266
  if (parts.length === 3) {
194
267
  result.push({
195
- filesystem: parts[0],
268
+ filesystem: parts[0].replace(':', ''),
196
269
  size: parseInt(parts[1], 10),
197
270
  free: parseInt(parts[2], 10),
198
271
  });
@@ -1 +1 @@
1
- {"version":3,"file":"core.service.js","sourceRoot":"","sources":["../../src/core/core.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.service.js","sourceRoot":"","sources":["../../src/core/core.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/emails/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAOpE,eAAO,MAAM,iBAAiB,cAQ7B,CAAC;AAGF,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,WAQjD,CAAC;AAGF,eAAO,MAAM,sBAAsB,cAQlC,CAAC;AAGF,eAAO,MAAM,mBAAmB,cAQ/B,CAAC;AAGF,eAAO,MAAM,qBAAqB,cAQjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,mBAAmB,WAQ3D,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/emails/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAOpE,eAAO,MAAM,iBAAiB,cAQ7B,CAAC;AAGF,eAAO,MAAM,sBAAsB,QAAS,MAAM,WAQjD,CAAC;AAGF,eAAO,MAAM,sBAAsB,cAQlC,CAAC;AAGF,eAAO,MAAM,mBAAmB,cAQ/B,CAAC;AAGF,eAAO,MAAM,qBAAqB,cAQjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,mBAAmB,WAQ3D,CAAC"}
@@ -43,8 +43,8 @@ export declare class MenuController {
43
43
  id: number;
44
44
  created_at: Date;
45
45
  updated_at: Date;
46
- menu_id: number | null;
47
46
  slug: string;
47
+ menu_id: number | null;
48
48
  url: string | null;
49
49
  order: number;
50
50
  icon: string | null;
@@ -53,8 +53,8 @@ export declare class MenuController {
53
53
  id: number;
54
54
  created_at: Date;
55
55
  updated_at: Date;
56
- menu_id: number | null;
57
56
  slug: string;
57
+ menu_id: number | null;
58
58
  url: string | null;
59
59
  order: number;
60
60
  icon: string | null;
@@ -63,8 +63,8 @@ export declare class MenuController {
63
63
  id: number;
64
64
  created_at: Date;
65
65
  updated_at: Date;
66
- menu_id: number | null;
67
66
  slug: string;
67
+ menu_id: number | null;
68
68
  url: string | null;
69
69
  order: number;
70
70
  icon: string | null;
@@ -44,8 +44,8 @@ export declare class MenuService {
44
44
  id: number;
45
45
  created_at: Date;
46
46
  updated_at: Date;
47
- menu_id: number | null;
48
47
  slug: string;
48
+ menu_id: number | null;
49
49
  url: string | null;
50
50
  order: number;
51
51
  icon: string | null;
@@ -54,8 +54,8 @@ export declare class MenuService {
54
54
  id: number;
55
55
  created_at: Date;
56
56
  updated_at: Date;
57
- menu_id: number | null;
58
57
  slug: string;
58
+ menu_id: number | null;
59
59
  url: string | null;
60
60
  order: number;
61
61
  icon: string | null;
@@ -67,8 +67,8 @@ export declare class MenuService {
67
67
  id: number;
68
68
  created_at: Date;
69
69
  updated_at: Date;
70
- menu_id: number | null;
71
70
  slug: string;
71
+ menu_id: number | null;
72
72
  url: string | null;
73
73
  order: number;
74
74
  icon: string | null;
package/package.json CHANGED
@@ -1,46 +1,48 @@
1
- {
2
- "name": "@hedhog/admin",
3
- "version": "0.48.3",
4
- "private": false,
5
- "main": "dist/index.js",
6
- "scripts": {
7
- "clean": "rimraf ./dist",
8
- "prebuild": "npm run clean",
9
- "build": "tsc --project tsconfig.production.json",
10
- "preprod": "npm run build && npm version patch",
11
- "prod": "npm run build && npm publish --access public"
12
- },
13
- "file": [
14
- "dist/**/*",
15
- "src/entities/**/*.ts",
16
- "src/migrations/**/*.ts",
17
- "frontend/**/*.ts",
18
- "emails/**/*.ts",
19
- "src/**/*.ejs",
20
- "hedhog/**/*.yaml",
21
- "hedhog.yaml"
22
- ],
23
- "keywords": [],
24
- "author": "",
25
- "license": "MIT",
26
- "description": "",
27
- "devDependencies": {
28
- "@hedhog/locale": "^0.46.2",
29
- "@hedhog/mail": "^0.48.1",
30
- "@hedhog/pagination": "^0.46.1",
31
- "@hedhog/prisma": "^0.46.1",
32
- "@hedhog/utils": "^0.0.28",
33
- "@nestjs/config": "^4.0.1",
34
- "@nestjs/jwt": "^10.2.0",
35
- "@nestjs/mapped-types": "^2.1.0",
36
- "ts-node": "^10.9.1",
37
- "typescript": "^5.1.3"
38
- },
39
- "peerDependencies": {
40
- "@hedhog/locale": "latest",
41
- "@hedhog/pagination": "latest",
42
- "@hedhog/prisma": "latest",
43
- "@hedhog/utils": "latest",
44
- "@nestjs/jwt": "^10.2.0"
45
- }
46
- }
1
+ {
2
+ "name": "@hedhog/admin",
3
+ "version": "0.48.5",
4
+ "private": false,
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "clean": "rimraf ./dist",
8
+ "prebuild": "npm run clean",
9
+ "build": "tsc --project tsconfig.production.json",
10
+ "preprod": "npm run build && npm version patch",
11
+ "prod": "npm run build && npm publish --access public"
12
+ },
13
+ "file": [
14
+ "dist/**/*",
15
+ "src/entities/**/*.ts",
16
+ "src/migrations/**/*.ts",
17
+ "frontend/**/*.ts",
18
+ "emails/**/*.ts",
19
+ "src/**/*.ejs",
20
+ "hedhog/**/*.yaml",
21
+ "hedhog.yaml"
22
+ ],
23
+ "keywords": [],
24
+ "author": "",
25
+ "license": "MIT",
26
+ "description": "",
27
+ "devDependencies": {
28
+ "@hedhog/dashboard": "^0.48.1",
29
+ "@hedhog/locale": "^0.46.2",
30
+ "@hedhog/mail": "^0.48.1",
31
+ "@hedhog/pagination": "^0.46.1",
32
+ "@hedhog/prisma": "^0.46.1",
33
+ "@hedhog/utils": "^0.0.28",
34
+ "@nestjs/config": "^4.0.1",
35
+ "@nestjs/jwt": "^10.2.0",
36
+ "@nestjs/mapped-types": "^2.1.0",
37
+ "ts-node": "^10.9.1",
38
+ "typescript": "^5.1.3"
39
+ },
40
+ "peerDependencies": {
41
+ "@hedhog/dashboard": "latest",
42
+ "@hedhog/locale": "latest",
43
+ "@hedhog/pagination": "latest",
44
+ "@hedhog/prisma": "latest",
45
+ "@hedhog/utils": "latest",
46
+ "@nestjs/jwt": "^10.2.0"
47
+ }
48
+ }
@@ -16,6 +16,7 @@ export class CoreService {
16
16
 
17
17
  return {
18
18
  os: {
19
+ name: this.getFriendlyOSName(),
19
20
  platform: os.platform(),
20
21
  version: os.release(),
21
22
  architecture: os.arch(),
@@ -26,6 +27,60 @@ export class CoreService {
26
27
  },
27
28
  modules: await this.getModulesInfo(),
28
29
  users: await this.getUsersInfo(),
30
+ database: await this.getDatabaseInfo(),
31
+ };
32
+ }
33
+
34
+ private getFriendlyOSName() {
35
+ switch (os.platform()) {
36
+ case 'aix':
37
+ return `AIX`;
38
+ case 'darwin':
39
+ return `macOS`;
40
+ case 'freebsd':
41
+ return `FreeBSD`;
42
+ case 'linux':
43
+ return `Linux`;
44
+ case 'openbsd':
45
+ return `OpenBSD`;
46
+ case 'sunos':
47
+ return `SunOS`;
48
+ case 'win32':
49
+ return `Windows`;
50
+ default:
51
+ return `Unknown`;
52
+ }
53
+ }
54
+
55
+ private async getDatabaseInfo() {
56
+ let connections, size, queriesPerSecond;
57
+
58
+ if (process.env.DATABASE_URL.includes('postgres')) {
59
+ [connections, size, queriesPerSecond] = await Promise.all([
60
+ this.prismaService.$queryRaw`SELECT COUNT(*) FROM pg_stat_activity`, // For PostgreSQL
61
+ this.prismaService
62
+ .$queryRaw`SELECT pg_database_size(current_database())`, // For PostgreSQL
63
+ this.prismaService
64
+ .$queryRaw`SELECT sum(numbackends) FROM pg_stat_database`, // For PostgreSQL
65
+ ]);
66
+ } else if (process.env.DATABASE_URL.includes('mysql')) {
67
+ [connections, size, queriesPerSecond] = await Promise.all([
68
+ this.prismaService
69
+ .$queryRaw`SHOW STATUS WHERE variable_name = 'Threads_connected'`, // For MySQL
70
+ this.prismaService
71
+ .$queryRaw`SELECT SUM(data_length + index_length) AS size FROM information_schema.tables WHERE table_schema = DATABASE()`, // For MySQL
72
+ this.prismaService
73
+ .$queryRaw`SHOW STATUS WHERE variable_name = 'Queries'`, // For MySQL
74
+ ]);
75
+ } else {
76
+ throw new Error('Unsupported database type');
77
+ }
78
+
79
+ return {
80
+ connections: +String(connections[0].count || connections[0].Value) || 0,
81
+ size: +String(size[0].pg_database_size || size[0].size) || 0,
82
+ queriesPerSecond:
83
+ +String(queriesPerSecond[0].sum || queriesPerSecond[0].Value) || 0,
29
84
  };
30
85
  }
31
86
 
@@ -43,11 +98,33 @@ export class CoreService {
43
98
  },
44
99
  });
45
100
 
101
+ const activities = await this.prismaService.user_activity.findMany({
102
+ where: {
103
+ created_at: {
104
+ gte: new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000),
105
+ },
106
+ },
107
+ take: 10,
108
+ orderBy: {
109
+ created_at: 'desc',
110
+ },
111
+ select: {
112
+ created_at: true,
113
+ message: true,
114
+ user: {
115
+ select: {
116
+ name: true,
117
+ id: true,
118
+ },
119
+ },
120
+ },
121
+ });
122
+
46
123
  return {
47
124
  total: users.length,
48
125
  admin: users.filter((user) => user.role_user.length > 0).length,
49
126
  active: 0,
50
- activities: [],
127
+ activities,
51
128
  };
52
129
  }
53
130
 
@@ -167,7 +244,7 @@ export class CoreService {
167
244
  const parts = lines[i].trim().split(/\s+/);
168
245
  if (parts.length === 3) {
169
246
  result.push({
170
- filesystem: parts[0],
247
+ filesystem: parts[0].replace(':', ''),
171
248
  size: parseInt(parts[1], 10),
172
249
  free: parseInt(parts[2], 10),
173
250
  });