@alanszp/express-common-fn 10.0.1 → 10.0.3

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.
@@ -6,6 +6,9 @@ export interface AuditBody {
6
6
  succeed: boolean;
7
7
  targetRef?: string;
8
8
  metadata?: Metadata;
9
+ lid?: string;
10
+ lch?: string;
11
+ cid?: string;
9
12
  }
10
13
  export declare enum CommonMetadataKeys {
11
14
  EMPLOYEE_ID = "employee_id",
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAeA,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,iDAA2B,CAAA;IAC3B,mDAA6B,CAAA;IAC7B,yCAAmB,CAAA;IACnB,qCAAe,CAAA;AACjB,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B;AAMY,QAAA,eAAe,GAAG;IAC7B,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,SAAS;CACV,CAAC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAoBA,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,iDAA2B,CAAA;IAC3B,mDAA6B,CAAA;IAC7B,yCAAmB,CAAA;IACnB,qCAAe,CAAA;AACjB,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B;AAMY,QAAA,eAAe,GAAG;IAC7B,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,SAAS;CACV,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alanszp/audit",
3
- "version": "10.0.1",
3
+ "version": "10.0.2",
4
4
  "description": "Alan's audit util.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -25,6 +25,5 @@
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^20.11.17"
28
- },
29
- "gitHead": "43e1ad79adf9f06c314132d67495cee96dd82612"
28
+ }
30
29
  }
@@ -11,6 +11,11 @@ export interface AuditBody {
11
11
  succeed: boolean;
12
12
  targetRef?: string;
13
13
  metadata?: Metadata;
14
+
15
+ // Context
16
+ lid?: string;
17
+ lch?: string;
18
+ cid?: string;
14
19
  }
15
20
 
16
21
  export enum CommonMetadataKeys {
@@ -22,6 +22,5 @@
22
22
  "@types/node": "^20.11.17",
23
23
  "ts-node": "^10.0.0",
24
24
  "typescript": "^4.3.4"
25
- },
26
- "gitHead": "43e1ad79adf9f06c314132d67495cee96dd82612"
25
+ }
27
26
  }
@@ -17,6 +17,7 @@ const getIp_1 = require("../helpers/getIp");
17
17
  function auditLog(action, bodyModifier) {
18
18
  return function writeAuditLogMiddleware(req, res, next) {
19
19
  res.on("finish", function writeAuditLog() {
20
+ var _a, _b, _c;
20
21
  return __awaiter(this, void 0, void 0, function* () {
21
22
  try {
22
23
  const audit = req.context.audit;
@@ -29,7 +30,7 @@ function auditLog(action, bodyModifier) {
29
30
  }
30
31
  partialBody.ip = (0, getIp_1.getIp)(req) || "no-ip";
31
32
  audit.log(Object.assign(Object.assign({ succeed: res.statusCode === 304 ||
32
- (res.statusCode >= 200 && res.statusCode < 300) }, partialBody), { action }));
33
+ (res.statusCode >= 200 && res.statusCode < 300) }, partialBody), { lid: (_a = req.context.lifecycleId) !== null && _a !== void 0 ? _a : undefined, lch: (_b = req.context.lifecycleChain) !== null && _b !== void 0 ? _b : undefined, cid: (_c = req.context.contextId) !== null && _c !== void 0 ? _c : undefined, action }));
33
34
  }
34
35
  catch (error) {
35
36
  req.context.log.error("auditLog.writeLog.error", { action, error });
@@ -1 +1 @@
1
- {"version":3,"file":"auditLog.js","sourceRoot":"","sources":["../../src/middlewares/auditLog.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,4CAAyC;AAQzC;;GAEG;AACH,SAAgB,QAAQ,CAAC,MAAc,EAAE,YAAgC;IACvE,OAAO,SAAS,uBAAuB,CACrC,GAAmB,EACnB,GAAa,EACb,IAAkB;QAElB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAe,aAAa;;gBAC3C,IAAI;oBACF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;oBAEhC,MAAM,WAAW,GAAG,YAAY;wBAC9B,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC/C,CAAC,CAAE,EAAyB,CAAC;oBAE/B,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;wBACvB,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;wBAC/D,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;qBAC/C;oBAED,WAAW,CAAC,EAAE,GAAG,IAAA,aAAK,EAAC,GAAG,CAAC,IAAI,OAAO,CAAC;oBAEvC,KAAK,CAAC,GAAG,+BACP,OAAO,EACL,GAAG,CAAC,UAAU,KAAK,GAAG;4BACtB,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,IAC9C,WAAW,KACd,MAAM,IACN,CAAC;iBACJ;gBAAC,OAAO,KAAc,EAAE;oBACvB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;iBACrE;YACH,CAAC;SAAA,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAnCD,4BAmCC"}
1
+ {"version":3,"file":"auditLog.js","sourceRoot":"","sources":["../../src/middlewares/auditLog.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,4CAAyC;AAQzC;;GAEG;AACH,SAAgB,QAAQ,CAAC,MAAc,EAAE,YAAgC;IACvE,OAAO,SAAS,uBAAuB,CACrC,GAAmB,EACnB,GAAa,EACb,IAAkB;QAElB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAe,aAAa;;;gBAC3C,IAAI;oBACF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;oBAEhC,MAAM,WAAW,GAAG,YAAY;wBAC9B,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC/C,CAAC,CAAE,EAAyB,CAAC;oBAE/B,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;wBACvB,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;wBAC/D,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;qBAC/C;oBAED,WAAW,CAAC,EAAE,GAAG,IAAA,aAAK,EAAC,GAAG,CAAC,IAAI,OAAO,CAAC;oBAEvC,KAAK,CAAC,GAAG,+BACP,OAAO,EACL,GAAG,CAAC,UAAU,KAAK,GAAG;4BACtB,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,IAC9C,WAAW,KACd,GAAG,EAAE,MAAA,GAAG,CAAC,OAAO,CAAC,WAAW,mCAAI,SAAS,EACzC,GAAG,EAAE,MAAA,GAAG,CAAC,OAAO,CAAC,cAAc,mCAAI,SAAS,EAC5C,GAAG,EAAE,MAAA,GAAG,CAAC,OAAO,CAAC,SAAS,mCAAI,SAAS,EACvC,MAAM,IACN,CAAC;iBACJ;gBAAC,OAAO,KAAc,EAAE;oBACvB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;iBACrE;;SACF,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAtCD,4BAsCC"}
@@ -3,4 +3,4 @@ import { ILogger } from "@alanszp/logger";
3
3
  import { Audit } from "@alanszp/audit";
4
4
  import { GenericRequest } from "../types/GenericRequest";
5
5
  import { SharedContext } from "@alanszp/shared-context";
6
- export declare function createContext(sharedContext: SharedContext, baseLogger: ILogger, audit: Audit): (req: GenericRequest, _res: Response, next: NextFunction) => void;
6
+ export declare function createContext(sharedContext: SharedContext, baseLogger: ILogger, audit: Audit): (req: GenericRequest, res: Response, next: NextFunction) => void;
@@ -1,20 +1,19 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.createContext = void 0;
7
- const cuid_1 = __importDefault(require("cuid"));
4
+ const cuid2_1 = require("@paralleldrive/cuid2");
8
5
  const appIdentifier_1 = require("../helpers/appIdentifier");
9
6
  const lodash_1 = require("lodash");
10
7
  function createContext(sharedContext, baseLogger, audit) {
11
- return (req, _res, next) => {
8
+ return (req, res, next) => {
12
9
  var _a, _b, _c, _d;
13
10
  req.context = req.context || {};
14
11
  const receivedChain = req.header("x-lifecycle-chain") || ((_b = (_a = req.body) === null || _a === void 0 ? void 0 : _a.detail) === null || _b === void 0 ? void 0 : _b.lch);
15
12
  const lifecycleChain = (0, lodash_1.compact)([receivedChain, (0, appIdentifier_1.appIdentifier)()]).join(",");
16
- const lifecycleId = req.header("x-lifecycle-id") || ((_d = (_c = req.body) === null || _c === void 0 ? void 0 : _c.detail) === null || _d === void 0 ? void 0 : _d.lid) || (0, cuid_1.default)();
17
- const contextId = (0, cuid_1.default)();
13
+ const lifecycleId = req.header("x-lifecycle-id") || ((_d = (_c = req.body) === null || _c === void 0 ? void 0 : _c.detail) === null || _d === void 0 ? void 0 : _d.lid) || (0, cuid2_1.createId)();
14
+ const contextId = (0, cuid2_1.createId)();
15
+ res.setHeader("x-lifecycle-id", lifecycleId);
16
+ res.setHeader("x-context-id", contextId);
18
17
  sharedContext.run((context) => {
19
18
  req.context.authenticated = [];
20
19
  req.context.lifecycleId = context.lifecycleId;
@@ -1 +1 @@
1
- {"version":3,"file":"createContext.js","sourceRoot":"","sources":["../../src/middlewares/createContext.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAIxB,4DAAyD;AAGzD,mCAAiC;AAEjC,SAAgB,aAAa,CAC3B,aAA4B,EAC5B,UAAmB,EACnB,KAAY;IAEZ,OAAO,CAAC,GAAmB,EAAE,IAAc,EAAE,IAAkB,EAAQ,EAAE;;QACvE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAEhC,MAAM,aAAa,GACjB,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAI,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,MAAM,0CAAE,GAAG,CAAA,CAAC;QAC3D,MAAM,cAAc,GAAG,IAAA,gBAAO,EAAC,CAAC,aAAa,EAAE,IAAA,6BAAa,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3E,MAAM,WAAW,GACf,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAI,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,MAAM,0CAAE,GAAG,CAAA,IAAI,IAAA,cAAI,GAAE,CAAC;QAElE,MAAM,SAAS,GAAG,IAAA,cAAI,GAAE,CAAC;QAEzB,aAAa,CAAC,GAAG,CACf,CAAC,OAAO,EAAE,EAAE;YACV,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAC9C,GAAG,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YACpD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC1C,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YACjC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAClC,IAAI,EAAE,CAAC;QACT,CAAC,EACD;YACE,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE;YACxB,WAAW;YACX,cAAc;YACd,SAAS;SACV,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AApCD,sCAoCC"}
1
+ {"version":3,"file":"createContext.js","sourceRoot":"","sources":["../../src/middlewares/createContext.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAIhD,4DAAyD;AAGzD,mCAAiC;AAEjC,SAAgB,aAAa,CAC3B,aAA4B,EAC5B,UAAmB,EACnB,KAAY;IAEZ,OAAO,CAAC,GAAmB,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;;QACtE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAEhC,MAAM,aAAa,GACjB,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAI,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,MAAM,0CAAE,GAAG,CAAA,CAAC;QAC3D,MAAM,cAAc,GAAG,IAAA,gBAAO,EAAC,CAAC,aAAa,EAAE,IAAA,6BAAa,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3E,MAAM,WAAW,GACf,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAI,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,MAAM,0CAAE,GAAG,CAAA,IAAI,IAAA,gBAAQ,GAAE,CAAC;QAEtE,MAAM,SAAS,GAAG,IAAA,gBAAQ,GAAE,CAAC;QAE7B,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAEzC,aAAa,CAAC,GAAG,CACf,CAAC,OAAO,EAAE,EAAE;YACV,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAC9C,GAAG,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YACpD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC1C,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YACjC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAClC,IAAI,EAAE,CAAC;QACT,CAAC,EACD;YACE,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE;YACxB,WAAW;YACX,cAAc;YACd,SAAS;SACV,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAvCD,sCAuCC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alanszp/express",
3
- "version": "10.0.1",
3
+ "version": "10.0.3",
4
4
  "description": "Alan's express utils and middlewares.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -35,15 +35,15 @@
35
35
  "typescript": "^4.3.4"
36
36
  },
37
37
  "dependencies": {
38
- "@alanszp/audit": "^10.0.1",
38
+ "@alanszp/audit": "^10.0.2",
39
39
  "@alanszp/errors": "^10.0.1",
40
40
  "@alanszp/jwt": "^10.0.1",
41
41
  "@alanszp/logger": "^10.0.1",
42
- "@alanszp/shared-context": "^10.0.1",
42
+ "@alanszp/shared-context": "^10.0.2",
43
43
  "@babel/core": "^7.23.9",
44
+ "@paralleldrive/cuid2": "^2.2.2",
44
45
  "body-parser": "^1.20.2",
45
- "cuid": "^2.1.8",
46
46
  "lodash": "^4.17.21"
47
47
  },
48
- "gitHead": "43e1ad79adf9f06c314132d67495cee96dd82612"
48
+ "gitHead": "701d6cc7bd3a51a8b297903e7b2fff9c1b830da6"
49
49
  }
@@ -37,6 +37,9 @@ export function auditLog(action: string, bodyModifier?: AuditBodyModifier) {
37
37
  res.statusCode === 304 ||
38
38
  (res.statusCode >= 200 && res.statusCode < 300),
39
39
  ...partialBody,
40
+ lid: req.context.lifecycleId ?? undefined,
41
+ lch: req.context.lifecycleChain ?? undefined,
42
+ cid: req.context.contextId ?? undefined,
40
43
  action,
41
44
  });
42
45
  } catch (error: unknown) {
@@ -1,4 +1,4 @@
1
- import cuid from "cuid";
1
+ import { createId } from "@paralleldrive/cuid2";
2
2
  import { NextFunction, Response } from "express";
3
3
  import { ILogger } from "@alanszp/logger";
4
4
  import { Audit } from "@alanszp/audit";
@@ -12,7 +12,7 @@ export function createContext(
12
12
  baseLogger: ILogger,
13
13
  audit: Audit
14
14
  ) {
15
- return (req: GenericRequest, _res: Response, next: NextFunction): void => {
15
+ return (req: GenericRequest, res: Response, next: NextFunction): void => {
16
16
  req.context = req.context || {};
17
17
 
18
18
  const receivedChain =
@@ -20,9 +20,12 @@ export function createContext(
20
20
  const lifecycleChain = compact([receivedChain, appIdentifier()]).join(",");
21
21
 
22
22
  const lifecycleId =
23
- req.header("x-lifecycle-id") || req.body?.detail?.lid || cuid();
23
+ req.header("x-lifecycle-id") || req.body?.detail?.lid || createId();
24
24
 
25
- const contextId = cuid();
25
+ const contextId = createId();
26
+
27
+ res.setHeader("x-lifecycle-id", lifecycleId);
28
+ res.setHeader("x-context-id", contextId);
26
29
 
27
30
  sharedContext.run(
28
31
  (context) => {
@@ -25,6 +25,5 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "jose": "^5.2.2"
28
- },
29
- "gitHead": "43e1ad79adf9f06c314132d67495cee96dd82612"
28
+ }
30
29
  }
@@ -31,6 +31,5 @@
31
31
  "ts-node": "^10.0.0",
32
32
  "tslint": "^5.11.0",
33
33
  "typescript": "^4.3.4"
34
- },
35
- "gitHead": "43e1ad79adf9f06c314132d67495cee96dd82612"
34
+ }
36
35
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alanszp/express-common-fn",
3
- "version": "10.0.1",
3
+ "version": "10.0.3",
4
4
  "description": "Alan's express function to handle common errors and format uniformly.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@alanszp/errors": "^10.0.1",
23
- "@alanszp/express": "^10.0.1",
23
+ "@alanszp/express": "^10.0.3",
24
24
  "@alanszp/logger": "^10.0.1",
25
25
  "@alanszp/validations": "^10.0.1"
26
26
  },
@@ -34,5 +34,5 @@
34
34
  "typeorm": "^0.2.34",
35
35
  "typescript": "4.7.4"
36
36
  },
37
- "gitHead": "43e1ad79adf9f06c314132d67495cee96dd82612"
37
+ "gitHead": "701d6cc7bd3a51a8b297903e7b2fff9c1b830da6"
38
38
  }