uaxi-shared-entities 1.0.216 → 1.0.217

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,4 +1,5 @@
1
1
  import { Model } from "sequelize-typescript";
2
+ import { CreateAdminAuditLogInput } from "../types/admin-audit-log.types";
2
3
  import { User } from "./user.entity";
3
4
  export declare enum AdminAuditHttpMethod {
4
5
  POST = "POST",
@@ -37,6 +38,8 @@ export declare class AdminAuditLog extends Model<AdminAuditLogAttributes, AdminA
37
38
  entityId: string | null;
38
39
  createdAt: Date;
39
40
  performedByUser: User;
41
+ static sanitizeAuditData(data: unknown): Record<string, unknown> | null;
42
+ static persistAdminAuditLog(model: typeof AdminAuditLog, input: CreateAdminAuditLogInput): Promise<void>;
40
43
  }
41
44
  export {};
42
45
  //# sourceMappingURL=admin-audit-log.entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-audit-log.entity.d.ts","sourceRoot":"","sources":["../../src/entities/admin-audit-log.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAMN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,UAAU,0BAA0B;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,qBAMa,aAAc,SAAQ,KAAK,CACtC,uBAAuB,EACvB,0BAA0B,CAC3B;IAMS,EAAE,EAAE,MAAM,CAAC;IAQnB,iBAAiB,EAAE,MAAM,CAAC;IAM1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAM7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAMxC,QAAQ,EAAE,MAAM,CAAC;IAMjB,UAAU,EAAE,oBAAoB,CAAC;IAOjC,SAAS,EAAE,MAAM,CAAC;IAOlB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGxB,eAAe,EAAE,IAAI,CAAC;CACvB"}
1
+ {"version":3,"file":"admin-audit-log.entity.d.ts","sourceRoot":"","sources":["../../src/entities/admin-audit-log.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAMN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,UAAU,0BAA0B;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAUD,qBAMa,aAAc,SAAQ,KAAK,CACtC,uBAAuB,EACvB,0BAA0B,CAC3B;IAMS,EAAE,EAAE,MAAM,CAAC;IAQnB,iBAAiB,EAAE,MAAM,CAAC;IAM1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAM7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAMxC,QAAQ,EAAE,MAAM,CAAC;IAMjB,UAAU,EAAE,oBAAoB,CAAC;IAOjC,SAAS,EAAE,MAAM,CAAC;IAOlB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGxB,eAAe,EAAE,IAAI,CAAC;IAEtB,MAAM,CAAC,iBAAiB,CACtB,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;WAoBpB,oBAAoB,CAC/B,KAAK,EAAE,OAAO,aAAa,EAC3B,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC;CAejB"}
@@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var AdminAuditLog_1;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.AdminAuditLog = exports.AdminAuditHttpMethod = void 0;
13
14
  const sequelize_typescript_1 = require("sequelize-typescript");
@@ -19,7 +20,42 @@ var AdminAuditHttpMethod;
19
20
  AdminAuditHttpMethod["PATCH"] = "PATCH";
20
21
  AdminAuditHttpMethod["DELETE"] = "DELETE";
21
22
  })(AdminAuditHttpMethod || (exports.AdminAuditHttpMethod = AdminAuditHttpMethod = {}));
22
- let AdminAuditLog = class AdminAuditLog extends sequelize_typescript_1.Model {
23
+ const SENSITIVE_AUDIT_FIELDS = [
24
+ "password",
25
+ "refreshToken",
26
+ "verificationToken",
27
+ "access_token",
28
+ "accessToken",
29
+ ];
30
+ let AdminAuditLog = AdminAuditLog_1 = class AdminAuditLog extends sequelize_typescript_1.Model {
31
+ static sanitizeAuditData(data) {
32
+ if (data == null) {
33
+ return null;
34
+ }
35
+ const plain = typeof data.toJSON === "function"
36
+ ? data.toJSON()
37
+ : { ...data };
38
+ for (const field of SENSITIVE_AUDIT_FIELDS) {
39
+ delete plain[field];
40
+ }
41
+ return plain;
42
+ }
43
+ static async persistAdminAuditLog(model, input) {
44
+ try {
45
+ await model.create({
46
+ performedByUserId: input.performedByUserId,
47
+ previousData: AdminAuditLog_1.sanitizeAuditData(input.previousData),
48
+ newData: AdminAuditLog_1.sanitizeAuditData(input.newData),
49
+ endpoint: input.endpoint,
50
+ httpMethod: input.httpMethod,
51
+ tableName: input.tableName,
52
+ entityId: input.entityId ?? null,
53
+ });
54
+ }
55
+ catch (error) {
56
+ console.error("No se pudo persistir admin audit log:", error);
57
+ }
58
+ }
23
59
  };
24
60
  exports.AdminAuditLog = AdminAuditLog;
25
61
  __decorate([
@@ -91,7 +127,7 @@ __decorate([
91
127
  (0, sequelize_typescript_1.BelongsTo)(() => user_entity_1.User, "performedByUserId"),
92
128
  __metadata("design:type", user_entity_1.User)
93
129
  ], AdminAuditLog.prototype, "performedByUser", void 0);
94
- exports.AdminAuditLog = AdminAuditLog = __decorate([
130
+ exports.AdminAuditLog = AdminAuditLog = AdminAuditLog_1 = __decorate([
95
131
  (0, sequelize_typescript_1.Table)({
96
132
  tableName: "admin_audit_logs",
97
133
  timestamps: true,
@@ -1 +1 @@
1
- {"version":3,"file":"admin-audit-log.entity.js","sourceRoot":"","sources":["../../src/entities/admin-audit-log.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAS8B;AAC9B,+CAAqC;AAErC,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,mCAAW,CAAA;IACX,uCAAe,CAAA;IACf,yCAAiB,CAAA;AACnB,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B;AA8BM,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,4BAGlC;CA2DA,CAAA;AA9DY,sCAAa;AAShB;IALP,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,+BAAQ,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;;yCACiB;AAQnB;IANC,4BAAK;IACL,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,kBAAI,CAAC;IACtB,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;wDACwB;AAM1B;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,KAAK;QACpB,SAAS,EAAE,IAAI;KAChB,CAAC;;mDAC2C;AAM7C;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,KAAK;QACpB,SAAS,EAAE,IAAI;KAChB,CAAC;;8CACsC;AAMxC;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAC1B,SAAS,EAAE,KAAK;KACjB,CAAC;;+CACe;AAMjB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC3D,SAAS,EAAE,KAAK;KACjB,CAAC;;iDAC+B;AAOjC;IALC,4BAAK;IACL,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAC1B,SAAS,EAAE,KAAK;KACjB,CAAC;;gDACgB;AAOlB;IALC,4BAAK;IACL,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC;;+CACsB;AAGhB;IADP,gCAAS;8BACS,IAAI;gDAAC;AAGxB;IADC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,mBAAmB,CAAC;8BAC1B,kBAAI;sDAAC;wBA7DX,aAAa;IANzB,IAAA,4BAAK,EAAC;QACL,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;KAChB,CAAC;GACW,aAAa,CA8DzB"}
1
+ {"version":3,"file":"admin-audit-log.entity.js","sourceRoot":"","sources":["../../src/entities/admin-audit-log.entity.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,5 +2,4 @@ export * from "./entities";
2
2
  export * from "./enums";
3
3
  export * from "./config";
4
4
  export * from "./types";
5
- export * from "./utils/admin-audit-log.util";
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -25,6 +25,4 @@ __exportStar(require("./enums"), exports);
25
25
  __exportStar(require("./config"), exports);
26
26
  // Exportar tipos y interfaces
27
27
  __exportStar(require("./types"), exports);
28
- // Utilidades compartidas
29
- __exportStar(require("./utils/admin-audit-log.util"), exports);
30
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,4BAA4B;AAC5B,gDAAgD;;;;;;;;;;;;;;;;AAEhD,oDAAoD;AACpD,6CAA2B;AAE3B,uDAAuD;AACvD,0CAAwB;AAExB,2BAA2B;AAC3B,2CAAyB;AAEzB,8BAA8B;AAC9B,0CAAwB;AAExB,yBAAyB;AACzB,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,4BAA4B;AAC5B,gDAAgD;;;;;;;;;;;;;;;;AAEhD,oDAAoD;AACpD,6CAA2B;AAE3B,uDAAuD;AACvD,0CAAwB;AAExB,2BAA2B;AAC3B,2CAAyB;AAEzB,8BAA8B;AAC9B,0CAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uaxi-shared-entities",
3
- "version": "1.0.216",
3
+ "version": "1.0.217",
4
4
  "description": "Entidades compartidas para microservicios UAXI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,6 +8,7 @@ import {
8
8
  BelongsTo,
9
9
  Index,
10
10
  } from "sequelize-typescript";
11
+ import { CreateAdminAuditLogInput } from "../types/admin-audit-log.types";
11
12
  import { User } from "./user.entity";
12
13
 
13
14
  export enum AdminAuditHttpMethod {
@@ -39,6 +40,14 @@ interface AdminAuditLogCreationAttrs {
39
40
  entityId?: string | null;
40
41
  }
41
42
 
43
+ const SENSITIVE_AUDIT_FIELDS = [
44
+ "password",
45
+ "refreshToken",
46
+ "verificationToken",
47
+ "access_token",
48
+ "accessToken",
49
+ ];
50
+
42
51
  @Table({
43
52
  tableName: "admin_audit_logs",
44
53
  timestamps: true,
@@ -107,4 +116,45 @@ export class AdminAuditLog extends Model<
107
116
 
108
117
  @BelongsTo(() => User, "performedByUserId")
109
118
  performedByUser: User;
119
+
120
+ static sanitizeAuditData(
121
+ data: unknown,
122
+ ): Record<string, unknown> | null {
123
+ if (data == null) {
124
+ return null;
125
+ }
126
+
127
+ const plain =
128
+ typeof (data as { toJSON?: () => unknown }).toJSON === "function"
129
+ ? ((data as { toJSON: () => unknown }).toJSON() as Record<
130
+ string,
131
+ unknown
132
+ >)
133
+ : ({ ...(data as Record<string, unknown>) } as Record<string, unknown>);
134
+
135
+ for (const field of SENSITIVE_AUDIT_FIELDS) {
136
+ delete plain[field];
137
+ }
138
+
139
+ return plain;
140
+ }
141
+
142
+ static async persistAdminAuditLog(
143
+ model: typeof AdminAuditLog,
144
+ input: CreateAdminAuditLogInput,
145
+ ): Promise<void> {
146
+ try {
147
+ await model.create({
148
+ performedByUserId: input.performedByUserId,
149
+ previousData: AdminAuditLog.sanitizeAuditData(input.previousData),
150
+ newData: AdminAuditLog.sanitizeAuditData(input.newData),
151
+ endpoint: input.endpoint,
152
+ httpMethod: input.httpMethod,
153
+ tableName: input.tableName,
154
+ entityId: input.entityId ?? null,
155
+ });
156
+ } catch (error) {
157
+ console.error("No se pudo persistir admin audit log:", error);
158
+ }
159
+ }
110
160
  }
package/src/index.ts CHANGED
@@ -13,6 +13,3 @@ export * from "./config";
13
13
 
14
14
  // Exportar tipos y interfaces
15
15
  export * from "./types";
16
-
17
- // Utilidades compartidas
18
- export * from "./utils/admin-audit-log.util";
@@ -1,5 +0,0 @@
1
- import { AdminAuditLog } from "../entities/admin-audit-log.entity";
2
- import { CreateAdminAuditLogInput } from "../types/admin-audit-log.types";
3
- export declare function sanitizeAuditData(data: unknown): Record<string, unknown> | null;
4
- export declare function persistAdminAuditLog(model: typeof AdminAuditLog, input: CreateAdminAuditLogInput): Promise<void>;
5
- //# sourceMappingURL=admin-audit-log.util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-audit-log.util.d.ts","sourceRoot":"","sources":["../../src/utils/admin-audit-log.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAU1E,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAehC;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,OAAO,aAAa,EAC3B,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sanitizeAuditData = sanitizeAuditData;
4
- exports.persistAdminAuditLog = persistAdminAuditLog;
5
- const SENSITIVE_FIELDS = [
6
- "password",
7
- "refreshToken",
8
- "verificationToken",
9
- "access_token",
10
- "accessToken",
11
- ];
12
- function sanitizeAuditData(data) {
13
- if (data == null) {
14
- return null;
15
- }
16
- const plain = typeof data.toJSON === "function"
17
- ? data.toJSON()
18
- : { ...data };
19
- for (const field of SENSITIVE_FIELDS) {
20
- delete plain[field];
21
- }
22
- return plain;
23
- }
24
- async function persistAdminAuditLog(model, input) {
25
- try {
26
- await model.create({
27
- performedByUserId: input.performedByUserId,
28
- previousData: sanitizeAuditData(input.previousData),
29
- newData: sanitizeAuditData(input.newData),
30
- endpoint: input.endpoint,
31
- httpMethod: input.httpMethod,
32
- tableName: input.tableName,
33
- entityId: input.entityId ?? null,
34
- });
35
- }
36
- catch (error) {
37
- console.error("No se pudo persistir admin audit log:", error);
38
- }
39
- }
40
- //# sourceMappingURL=admin-audit-log.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-audit-log.util.js","sourceRoot":"","sources":["../../src/utils/admin-audit-log.util.ts"],"names":[],"mappings":";;AAWA,8CAiBC;AAED,oDAiBC;AA5CD,MAAM,gBAAgB,GAAG;IACvB,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,aAAa;CACd,CAAC;AAEF,SAAgB,iBAAiB,CAC/B,IAAa;IAEb,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GACT,OAAQ,IAAmC,CAAC,MAAM,KAAK,UAAU;QAC/D,CAAC,CAAG,IAAkC,CAAC,MAAM,EAA8B;QAC3E,CAAC,CAAE,EAAE,GAAI,IAAgC,EAA8B,CAAC;IAE5E,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,KAA2B,EAC3B,KAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC;YACjB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC;YACnD,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
@@ -1,48 +0,0 @@
1
- import { AdminAuditLog } from "../entities/admin-audit-log.entity";
2
- import { CreateAdminAuditLogInput } from "../types/admin-audit-log.types";
3
-
4
- const SENSITIVE_FIELDS = [
5
- "password",
6
- "refreshToken",
7
- "verificationToken",
8
- "access_token",
9
- "accessToken",
10
- ];
11
-
12
- export function sanitizeAuditData(
13
- data: unknown,
14
- ): Record<string, unknown> | null {
15
- if (data == null) {
16
- return null;
17
- }
18
-
19
- const plain =
20
- typeof (data as { toJSON?: () => unknown }).toJSON === "function"
21
- ? ((data as { toJSON: () => unknown }).toJSON() as Record<string, unknown>)
22
- : ({ ...(data as Record<string, unknown>) } as Record<string, unknown>);
23
-
24
- for (const field of SENSITIVE_FIELDS) {
25
- delete plain[field];
26
- }
27
-
28
- return plain;
29
- }
30
-
31
- export async function persistAdminAuditLog(
32
- model: typeof AdminAuditLog,
33
- input: CreateAdminAuditLogInput,
34
- ): Promise<void> {
35
- try {
36
- await model.create({
37
- performedByUserId: input.performedByUserId,
38
- previousData: sanitizeAuditData(input.previousData),
39
- newData: sanitizeAuditData(input.newData),
40
- endpoint: input.endpoint,
41
- httpMethod: input.httpMethod,
42
- tableName: input.tableName,
43
- entityId: input.entityId ?? null,
44
- });
45
- } catch (error) {
46
- console.error("No se pudo persistir admin audit log:", error);
47
- }
48
- }