dhpgemrdhs92004 0.0.1-security → 1.250609.10947

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.

Potentially problematic release.


This version of dhpgemrdhs92004 might be problematic. Click here for more details.

@@ -0,0 +1,15 @@
1
+ {
2
+ "keep": {
3
+ "days": true,
4
+ "amount": 14
5
+ },
6
+ "auditLog": "e:\\CLOUDCODE\\dh-hos-code\\dh-javascript-sources\\dist\\EMR-DHS-PG\\deploy-dist-pg-services-dhpgemrdhs92004\\logs\\.42554d144e33d2f46965cfee9f24adb109f8681b-audit.json",
7
+ "files": [
8
+ {
9
+ "date": 1749435934741,
10
+ "name": "e:\\CLOUDCODE\\dh-hos-code\\dh-javascript-sources\\dist\\EMR-DHS-PG\\deploy-dist-pg-services-dhpgemrdhs92004\\logs\\2025-06-09-index.js-info.log",
11
+ "hash": "b88686b1de0d706eed1d8e0bff499fb207892021f4f6829c8623413ffad43d16"
12
+ }
13
+ ],
14
+ "hashType": "sha256"
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "keep": {
3
+ "days": true,
4
+ "amount": 14
5
+ },
6
+ "auditLog": "e:\\CLOUDCODE\\dh-hos-code\\dh-javascript-sources\\dist\\EMR-DHS-PG\\deploy-dist-pg-services-dhpgemrdhs92004\\logs\\.586c4e94d6f44de9a4e8423e5528ab75661e70b5-audit.json",
7
+ "files": [
8
+ {
9
+ "date": 1749435934745,
10
+ "name": "e:\\CLOUDCODE\\dh-hos-code\\dh-javascript-sources\\dist\\EMR-DHS-PG\\deploy-dist-pg-services-dhpgemrdhs92004\\logs\\2025-06-09-index.js-warn.log",
11
+ "hash": "a1598361c3cb7222ae5a29324eeb3d4310e80cbc3e61214a34703662a294e16c"
12
+ }
13
+ ],
14
+ "hashType": "sha256"
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "keep": {
3
+ "days": true,
4
+ "amount": 14
5
+ },
6
+ "auditLog": "e:\\CLOUDCODE\\dh-hos-code\\dh-javascript-sources\\dist\\EMR-DHS-PG\\deploy-dist-pg-services-dhpgemrdhs92004\\logs\\.9e4527af6695427dfe30553553e7747d38099785-audit.json",
7
+ "files": [
8
+ {
9
+ "date": 1749435934748,
10
+ "name": "e:\\CLOUDCODE\\dh-hos-code\\dh-javascript-sources\\dist\\EMR-DHS-PG\\deploy-dist-pg-services-dhpgemrdhs92004\\logs\\2025-06-09-index.js-error.log",
11
+ "hash": "8f883e27ea724b169de15541f3ec756158ff566b11cf6d9746a8e11e15f9fafc"
12
+ }
13
+ ],
14
+ "hashType": "sha256"
15
+ }
File without changes
@@ -0,0 +1,426 @@
1
+ 2025-06-09 09:29:06 [INFO]: {
2
+ "apiResult": {
3
+ "Data": "success",
4
+ "Message": null,
5
+ "Result": 0,
6
+ "ErrorCode": 0
7
+ },
8
+ "data": [
9
+ {
10
+ "ParentDepartmentCode": null,
11
+ "DepartmentCode": "28",
12
+ "DepartmentName": "KHOA CHẨN ĐOÁN HÌNH ẢNH",
13
+ "DepartmentShortName": "CDHA-TH",
14
+ "Description": "",
15
+ "Note": "",
16
+ "DepartmentType": "PACL",
17
+ "MHDepartmentCode": "",
18
+ "MHSpecialCode": "K39",
19
+ "Active": true
20
+ }
21
+ ],
22
+ "msg": {
23
+ "length": 174,
24
+ "processId": 22676,
25
+ "channel": "badt_dhs",
26
+ "payload": "{\"madv\": \"28\", \"channel\": \"current.dmdonvi\", \"operation\": \"UPDATE\", \"changed_fields\": {\"vietngan\": {\"new\": \"CDHA-TH\", \"old\": \"CDHA\"}}, \"notification_id\": 1}",
27
+ "name": "notification"
28
+ }
29
+ }
30
+ ======
31
+
32
+ 2025-06-09 09:30:44 [INFO]: {
33
+ "apiResult": {
34
+ "Data": "success",
35
+ "Message": null,
36
+ "Result": 0,
37
+ "ErrorCode": 0
38
+ },
39
+ "data": [
40
+ {
41
+ "ParentDepartmentCode": null,
42
+ "DepartmentCode": "28",
43
+ "DepartmentName": "KHOA CHẨN ĐOÁN HÌNH ẢNH - CHINH TỪ DANH MỤC",
44
+ "DepartmentShortName": "CDHA-TH",
45
+ "Description": "",
46
+ "Note": "",
47
+ "DepartmentType": "PACL",
48
+ "MHDepartmentCode": "",
49
+ "MHSpecialCode": "K39",
50
+ "Active": true
51
+ }
52
+ ],
53
+ "msg": {
54
+ "length": 244,
55
+ "processId": 26540,
56
+ "channel": "badt_dhs",
57
+ "payload": "{\"madv\": \"28\", \"channel\": \"current.dmdonvi\", \"operation\": \"UPDATE\", \"changed_fields\": {\"tendv\": {\"new\": \"KHOA CHẨN ĐOÁN HÌNH ẢNH - CHINH TỪ DANH MỤC\", \"old\": \"KHOA CHẨN ĐOÁN HÌNH ẢNH\"}}, \"notification_id\": 2}",
58
+ "name": "notification"
59
+ }
60
+ }
61
+ ======
62
+
63
+ 2025-06-09 09:32:59 [INFO]:
64
+ === getAccessToken ===
65
+ {
66
+ "access_token": "",
67
+ "exp": 0
68
+ }
69
+ ======
70
+
71
+ 2025-06-09 09:32:59 [INFO]: {
72
+ "apiResult": {
73
+ "Data": "success",
74
+ "Message": null,
75
+ "Result": 0,
76
+ "ErrorCode": 0
77
+ },
78
+ "data": [
79
+ {
80
+ "ParentDepartmentCode": null,
81
+ "DepartmentCode": "28",
82
+ "DepartmentName": "KHOA CHẨN ĐOÁN HÌNH ẢNH",
83
+ "DepartmentShortName": "CDHA-TH",
84
+ "Description": "",
85
+ "Note": "",
86
+ "DepartmentType": "PACL",
87
+ "MHDepartmentCode": "",
88
+ "MHSpecialCode": "K39",
89
+ "Active": true
90
+ }
91
+ ],
92
+ "msg": {
93
+ "length": 244,
94
+ "processId": 26564,
95
+ "channel": "badt_dhs",
96
+ "payload": "{\"madv\": \"28\", \"channel\": \"current.dmdonvi\", \"operation\": \"UPDATE\", \"changed_fields\": {\"tendv\": {\"new\": \"KHOA CHẨN ĐOÁN HÌNH ẢNH\", \"old\": \"KHOA CHẨN ĐOÁN HÌNH ẢNH - CHINH TỪ DANH MỤC\"}}, \"notification_id\": 3}",
97
+ "name": "notification"
98
+ }
99
+ }
100
+ ======
101
+
102
+ 2025-06-09 09:33:09 [INFO]:
103
+ === getAccessToken ===
104
+ {
105
+ "exp": null
106
+ }
107
+ ======
108
+
109
+ 2025-06-09 09:33:09 [INFO]: {
110
+ "apiResult": {
111
+ "Data": "success",
112
+ "Message": null,
113
+ "Result": 0,
114
+ "ErrorCode": 0
115
+ },
116
+ "data": [
117
+ {
118
+ "ParentDepartmentCode": null,
119
+ "DepartmentCode": "28",
120
+ "DepartmentName": "KHOA CHẨN ĐOÁN HÌNH ẢNH",
121
+ "DepartmentShortName": "CDHA",
122
+ "Description": "",
123
+ "Note": "",
124
+ "DepartmentType": "PACL",
125
+ "MHDepartmentCode": "",
126
+ "MHSpecialCode": "K39",
127
+ "Active": true
128
+ }
129
+ ],
130
+ "msg": {
131
+ "length": 174,
132
+ "processId": 19348,
133
+ "channel": "badt_dhs",
134
+ "payload": "{\"madv\": \"28\", \"channel\": \"current.dmdonvi\", \"operation\": \"UPDATE\", \"changed_fields\": {\"vietngan\": {\"new\": \"CDHA\", \"old\": \"CDHA-TH\"}}, \"notification_id\": 4}",
135
+ "name": "notification"
136
+ }
137
+ }
138
+ ======
139
+
140
+ 2025-06-09 09:34:06 [INFO]:
141
+ === getAccessToken ===
142
+ {
143
+ "exp": null
144
+ }
145
+ ======
146
+
147
+ 2025-06-09 09:34:06 [INFO]: {
148
+ "apiResult": {
149
+ "Data": "success",
150
+ "Message": null,
151
+ "Result": 0,
152
+ "ErrorCode": 0
153
+ },
154
+ "data": [
155
+ {
156
+ "ParentDepartmentCode": null,
157
+ "DepartmentCode": "28",
158
+ "DepartmentName": "KHOA CHẨN ĐOÁN HÌNH ẢNH",
159
+ "DepartmentShortName": "CDHA4",
160
+ "Description": "",
161
+ "Note": "",
162
+ "DepartmentType": "PACL",
163
+ "MHDepartmentCode": "",
164
+ "MHSpecialCode": "K39",
165
+ "Active": true
166
+ }
167
+ ],
168
+ "msg": {
169
+ "length": 172,
170
+ "processId": 16884,
171
+ "channel": "badt_dhs",
172
+ "payload": "{\"madv\": \"28\", \"channel\": \"current.dmdonvi\", \"operation\": \"UPDATE\", \"changed_fields\": {\"vietngan\": {\"new\": \"CDHA4\", \"old\": \"CDHA\"}}, \"notification_id\": 5}",
173
+ "name": "notification"
174
+ }
175
+ }
176
+ ======
177
+
178
+ 2025-06-09 09:44:04 [INFO]: pg-services-emr-dhs, version: 1.25.0609.0943
179
+ 2025-06-09 09:44:04 [INFO]:
180
+ === Thông tin kết nối PostgreSQL: ===
181
+ {
182
+ "PGDATA_HOST": "192.168.50.79",
183
+ "PGDATA_DATABASE": "emr_dktpct",
184
+ "PGDATA_PORT": "5434"
185
+ }
186
+ ======
187
+
188
+ 2025-06-09 09:44:15 [INFO]:
189
+ === getAccessToken ===
190
+ {
191
+ "access_token": "",
192
+ "exp": 0
193
+ }
194
+ ======
195
+
196
+ 2025-06-09 09:44:16 [INFO]: {
197
+ "apiResult": {
198
+ "Data": "success",
199
+ "Message": null,
200
+ "Result": 0,
201
+ "ErrorCode": 0
202
+ },
203
+ "data": [
204
+ {
205
+ "ParentDepartmentCode": null,
206
+ "DepartmentCode": "28",
207
+ "DepartmentName": "KHOA CHẨN ĐOÁN HÌNH ẢNH",
208
+ "DepartmentShortName": "CDHA",
209
+ "Description": "",
210
+ "Note": "",
211
+ "DepartmentType": "PACL",
212
+ "MHDepartmentCode": "",
213
+ "MHSpecialCode": "K39",
214
+ "Active": true
215
+ }
216
+ ],
217
+ "msg": {
218
+ "length": 172,
219
+ "processId": 26096,
220
+ "channel": "badt_dhs",
221
+ "payload": "{\"madv\": \"28\", \"channel\": \"current.dmdonvi\", \"operation\": \"UPDATE\", \"changed_fields\": {\"vietngan\": {\"new\": \"CDHA\", \"old\": \"CDHA4\"}}, \"notification_id\": 6}",
222
+ "name": "notification"
223
+ }
224
+ }
225
+ ======
226
+
227
+ 2025-06-09 09:44:23 [INFO]:
228
+ === getAccessToken ===
229
+ {
230
+ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0",
231
+ "exp": 1749523456000
232
+ }
233
+ ======
234
+
235
+ 2025-06-09 09:44:23 [INFO]: Sử dụng CACHED_TOKEN.access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0
236
+ 2025-06-09 09:44:23 [INFO]: {
237
+ "apiResult": {
238
+ "Data": "success",
239
+ "Message": null,
240
+ "Result": 0,
241
+ "ErrorCode": 0
242
+ },
243
+ "data": [
244
+ {
245
+ "ParentDepartmentCode": null,
246
+ "DepartmentCode": "28",
247
+ "DepartmentName": "KHOA CHẨN ĐOÁN HÌNH ẢNH",
248
+ "DepartmentShortName": "CDHA1",
249
+ "Description": "",
250
+ "Note": "",
251
+ "DepartmentType": "PACL",
252
+ "MHDepartmentCode": "",
253
+ "MHSpecialCode": "K39",
254
+ "Active": true
255
+ }
256
+ ],
257
+ "msg": {
258
+ "length": 172,
259
+ "processId": 22336,
260
+ "channel": "badt_dhs",
261
+ "payload": "{\"madv\": \"28\", \"channel\": \"current.dmdonvi\", \"operation\": \"UPDATE\", \"changed_fields\": {\"vietngan\": {\"new\": \"CDHA1\", \"old\": \"CDHA\"}}, \"notification_id\": 7}",
262
+ "name": "notification"
263
+ }
264
+ }
265
+ ======
266
+
267
+ 2025-06-09 09:44:40 [INFO]:
268
+ === getAccessToken ===
269
+ {
270
+ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0",
271
+ "exp": 1749523456000
272
+ }
273
+ ======
274
+
275
+ 2025-06-09 09:44:40 [INFO]: Sử dụng CACHED_TOKEN.access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0
276
+ 2025-06-09 09:44:40 [INFO]: {
277
+ "apiResult": {
278
+ "Data": "success",
279
+ "Message": null,
280
+ "Result": 0,
281
+ "ErrorCode": 0
282
+ },
283
+ "data": [
284
+ {
285
+ "ParentDepartmentCode": null,
286
+ "DepartmentCode": "28",
287
+ "DepartmentName": "KHOA CHẨN ĐOÁN HÌNH ẢNH",
288
+ "DepartmentShortName": "CDHA41",
289
+ "Description": "",
290
+ "Note": "",
291
+ "DepartmentType": "PACL",
292
+ "MHDepartmentCode": "",
293
+ "MHSpecialCode": "K39",
294
+ "Active": true
295
+ }
296
+ ],
297
+ "msg": {
298
+ "length": 174,
299
+ "processId": 24608,
300
+ "channel": "badt_dhs",
301
+ "payload": "{\"madv\": \"28\", \"channel\": \"current.dmdonvi\", \"operation\": \"UPDATE\", \"changed_fields\": {\"vietngan\": {\"new\": \"CDHA41\", \"old\": \"CDHA1\"}}, \"notification_id\": 8}",
302
+ "name": "notification"
303
+ }
304
+ }
305
+ ======
306
+
307
+ 2025-06-09 09:45:08 [INFO]:
308
+ === getAccessToken ===
309
+ {
310
+ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0",
311
+ "exp": 1749523456000
312
+ }
313
+ ======
314
+
315
+ 2025-06-09 09:45:08 [INFO]: Sử dụng CACHED_TOKEN.access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0
316
+ 2025-06-09 09:45:08 [INFO]: {
317
+ "apiResult": {
318
+ "Data": "success",
319
+ "Message": null,
320
+ "Result": 0,
321
+ "ErrorCode": 0
322
+ },
323
+ "data": [
324
+ {
325
+ "EmployeeCode": "002",
326
+ "EmployeeName": "BSCKII. Lê Văn Đạt",
327
+ "AcademicCode": "03",
328
+ "BirthDate": null,
329
+ "Sex": 2,
330
+ "MobileNo": "0913974093",
331
+ "TelNo": null,
332
+ "Email": null,
333
+ "DepartmentCode": "01",
334
+ "Active": true
335
+ }
336
+ ],
337
+ "msg": {
338
+ "length": 191,
339
+ "processId": 26340,
340
+ "channel": "badt_dhs",
341
+ "payload": "{\"manv\": \"002\", \"channel\": \"current.dmnhanvien\", \"taikhoan\": \"lvdat\", \"operation\": \"UPDATE\", \"changed_fields\": {\"trangthai\": {\"new\": \"1\", \"old\": \"0\"}}, \"notification_id\": 9}",
342
+ "name": "notification"
343
+ }
344
+ }
345
+ ======
346
+
347
+ 2025-06-09 09:45:18 [INFO]:
348
+ === getAccessToken ===
349
+ {
350
+ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0",
351
+ "exp": 1749523456000
352
+ }
353
+ ======
354
+
355
+ 2025-06-09 09:45:18 [INFO]: Sử dụng CACHED_TOKEN.access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0
356
+ 2025-06-09 09:45:18 [INFO]: {
357
+ "apiResult": {
358
+ "Data": "success",
359
+ "Message": null,
360
+ "Result": 0,
361
+ "ErrorCode": 0
362
+ },
363
+ "data": [
364
+ {
365
+ "EmployeeCode": "002",
366
+ "EmployeeName": "BSCKII. Lê Văn Đạt",
367
+ "AcademicCode": "03",
368
+ "BirthDate": null,
369
+ "Sex": 2,
370
+ "MobileNo": "0913974093",
371
+ "TelNo": null,
372
+ "Email": null,
373
+ "DepartmentCode": "01",
374
+ "Active": false
375
+ }
376
+ ],
377
+ "msg": {
378
+ "length": 192,
379
+ "processId": 26340,
380
+ "channel": "badt_dhs",
381
+ "payload": "{\"manv\": \"002\", \"channel\": \"current.dmnhanvien\", \"taikhoan\": \"lvdat\", \"operation\": \"UPDATE\", \"changed_fields\": {\"trangthai\": {\"new\": \"0\", \"old\": \"1\"}}, \"notification_id\": 10}",
382
+ "name": "notification"
383
+ }
384
+ }
385
+ ======
386
+
387
+ 2025-06-09 09:45:25 [INFO]:
388
+ === getAccessToken ===
389
+ {
390
+ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0",
391
+ "exp": 1749523456000
392
+ }
393
+ ======
394
+
395
+ 2025-06-09 09:45:25 [INFO]: Sử dụng CACHED_TOKEN.access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SUQiOiIzNDY2IiwiVXNlck5hbWUiOiJka2N0IiwiRW1wbG95ZWVJRCI6IjAiLCJFbXBsb3llZUNvZGUiOiIiLCJEaXZpc2lvbklEIjoiREtDVCIsIkRlcGFydG1lbnRJRCI6IiIsIkRlcGFydG1lbnROYW1lIjoiIiwiUm9sZSI6IiIsIm5iZiI6MTc0OTQzNzA1NiwiZXhwIjoxNzQ5NTIzNDU2LCJpYXQiOjE3NDk0MzcwNTYsImlzcyI6IkRIUyIsImF1ZCI6IkRIUyJ9.UZsplX55NGIuucQ7ukqZlk7lgfVAhAeGQP-cpWqtrN0
396
+ 2025-06-09 09:45:25 [INFO]: {
397
+ "apiResult": {
398
+ "Data": "success",
399
+ "Message": null,
400
+ "Result": 0,
401
+ "ErrorCode": 0
402
+ },
403
+ "data": [
404
+ {
405
+ "EmployeeCode": "002",
406
+ "EmployeeName": "BSCKII. Lê Văn Đạt",
407
+ "AcademicCode": "03",
408
+ "BirthDate": null,
409
+ "Sex": 2,
410
+ "MobileNo": "0913974093",
411
+ "TelNo": null,
412
+ "Email": null,
413
+ "DepartmentCode": "11",
414
+ "Active": false
415
+ }
416
+ ],
417
+ "msg": {
418
+ "length": 189,
419
+ "processId": 26340,
420
+ "channel": "badt_dhs",
421
+ "payload": "{\"manv\": \"002\", \"channel\": \"current.dmnhanvien\", \"taikhoan\": \"lvdat\", \"operation\": \"UPDATE\", \"changed_fields\": {\"madv\": {\"new\": \"11\", \"old\": \"01\"}}, \"notification_id\": 11}",
422
+ "name": "notification"
423
+ }
424
+ }
425
+ ======
426
+
File without changes
package/package.json CHANGED
@@ -1,6 +1,27 @@
1
1
  {
2
2
  "name": "dhpgemrdhs92004",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
6
- }
3
+ "version": "1.250609.10947",
4
+ "description": "dh-services-dhpgemrdhs92004",
5
+ "main": "index.js",
6
+ "bin": {
7
+ "dhpgemrdhs92004": "pm2.js"
8
+ },
9
+ "scripts": {
10
+ "start": "node index.js"
11
+ },
12
+ "pm2StartOption": {
13
+ "watch": false,
14
+ "autorestart": true
15
+ },
16
+ "pm2Updater": {
17
+ "MINUTE_CHECK_UPDATE": 2,
18
+ "USE_NPM_URL": true
19
+ },
20
+ "author": "ONG TRIEU HAU",
21
+ "license": "MIT",
22
+ "dependencies": {
23
+ "pm2": "^6.0.5",
24
+ "tar": "^7.4.3",
25
+ "dotenv": "^16.4.5"
26
+ }
27
+ }
package/pm2.js ADDED
@@ -0,0 +1,109 @@
1
+ #!/usr/bin/env node
2
+ const pm2 = require("pm2");
3
+ const path = require("path");
4
+ const fs = require("fs");
5
+ const npmHelper = (() => {
6
+ const getPackagePath = () => {
7
+ const cliDir = path.dirname(process.argv[1]);
8
+ const packagePath = path.join(cliDir, "package.json");
9
+ return packagePath;
10
+ };
11
+ const getPackageDir = () => {
12
+ return path.dirname(getPackagePath());
13
+ };
14
+ const getPackageJson = () => {
15
+ try {
16
+ return JSON.parse(fs.readFileSync(getPackagePath(), "utf8"));
17
+ } catch (error) {
18
+ throw error;
19
+ }
20
+ };
21
+ return {
22
+ getPackageJson,
23
+ getPackagePath,
24
+ getPackageDir,
25
+ };
26
+ })();
27
+
28
+ // Hàm kết nối PM2 và xử lý lỗi
29
+ const connectPM2 = (callback) => {
30
+ pm2.connect((err) => {
31
+ if (err) {
32
+ console.error(`pm2.connect: ${err.message}`);
33
+ console.error(err);
34
+ process.exit(2);
35
+ }
36
+ callback();
37
+ });
38
+ };
39
+
40
+ // Hàm tạo cấu hình pm2 từ package.json
41
+ const createPM2Config = () => {
42
+ let package = npmHelper.getPackageJson();
43
+ let cliDir = npmHelper.getPackageDir();
44
+
45
+ if (!("pm2StartOption" in package)) {
46
+ package.pm2StartOption = {};
47
+ }
48
+
49
+ if (!("name" in package.pm2StartOption)) {
50
+ package.pm2StartOption.name = package.name;
51
+ }
52
+
53
+ if (!("script" in package.pm2StartOption) && "main" in package) {
54
+ package.pm2StartOption.script = path.join(cliDir, package.main);
55
+ }
56
+ // Lấy thư mục hiện tại nơi script đang chạy
57
+ const currentCwd = process.cwd();
58
+ package.pm2StartOption.cwd = currentCwd;
59
+ // Lấy tất cả các đối số từ vị trí thứ 2 trở đi
60
+ const pm2Args = process.argv.slice(2).join(" ");
61
+ // Nếu không có đối số nào, args sẽ là một mảng rỗng
62
+ package.pm2StartOption.args = pm2Args;
63
+ package.pm2StartOption = [package.pm2StartOption];
64
+ package.pm2StartOption.push({
65
+ name: `${package.name}-updater`,
66
+ script: path.join(cliDir, `pm2.updater.js`),
67
+ cwd: currentCwd,
68
+ args: pm2Args,
69
+ });
70
+
71
+ return package.pm2StartOption;
72
+ };
73
+
74
+ // Hàm khởi động ứng dụng PM2
75
+ const startPM2App = (pm2StartOption) => {
76
+ pm2.start(pm2StartOption, (err, apps) => {
77
+ if (err) {
78
+ console.error(`pm2.start: ${err.message}`);
79
+ console.error(err);
80
+ pm2.disconnect(); // Đảm bảo gọi disconnect nếu có lỗi
81
+ process.exit(2);
82
+ }
83
+ console.log(`Đã khởi động ứng dụng: ${npmHelper.getPackageJson().name}@${npmHelper.getPackageJson().version}`);
84
+ pm2.disconnect();
85
+ });
86
+ };
87
+
88
+ // Hàm chính để xử lý toàn bộ logic
89
+ const mainPM2 = async () => {
90
+ try {
91
+ connectPM2(() => {
92
+ try {
93
+ const pm2StartOption = createPM2Config();
94
+ startPM2App(pm2StartOption);
95
+ } catch (error) {
96
+ console.error(error.message);
97
+ console.error(error);
98
+ pm2.disconnect();
99
+ process.exit(2);
100
+ }
101
+ });
102
+ } catch (error) {
103
+ console.error(`Lỗi ngoài ý muốn: ${error.message}`);
104
+ console.error(error);
105
+ process.exit(2);
106
+ }
107
+ };
108
+
109
+ mainPM2();