@cargolift-cdi/lib-common 0.0.72 → 0.0.73

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 (66) hide show
  1. package/README.md +265 -170
  2. package/dist/auth/api-client.decorator.d.ts +1 -0
  3. package/dist/auth/api-client.decorator.d.ts.map +1 -0
  4. package/dist/auth/auth.guard.d.ts +1 -0
  5. package/dist/auth/auth.guard.d.ts.map +1 -0
  6. package/dist/auth/auth.guard.js +16 -5
  7. package/dist/auth/auth.guard.js.map +1 -1
  8. package/dist/auth/auth.module.d.ts +1 -0
  9. package/dist/auth/auth.module.d.ts.map +1 -0
  10. package/dist/auth/jwt-verifier.service.d.ts +1 -0
  11. package/dist/auth/jwt-verifier.service.d.ts.map +1 -0
  12. package/dist/auth/jwt-verifier.service.js +6 -3
  13. package/dist/auth/jwt-verifier.service.js.map +1 -1
  14. package/dist/auth/roles.decorator.d.ts +1 -0
  15. package/dist/auth/roles.decorator.d.ts.map +1 -0
  16. package/dist/auth/token-jwt.decorator.d.ts +2 -1
  17. package/dist/auth/token-jwt.decorator.d.ts.map +1 -0
  18. package/dist/errors/base.error.d.ts +6 -5
  19. package/dist/errors/base.error.d.ts.map +1 -0
  20. package/dist/errors/base.error.js +5 -0
  21. package/dist/errors/base.error.js.map +1 -1
  22. package/dist/errors/errors.error.d.ts +1 -0
  23. package/dist/errors/errors.error.d.ts.map +1 -0
  24. package/dist/errors/errors.util.d.ts +1 -0
  25. package/dist/errors/errors.util.d.ts.map +1 -0
  26. package/dist/errors/invalid-payload-business.error.d.ts +2 -1
  27. package/dist/errors/invalid-payload-business.error.d.ts.map +1 -0
  28. package/dist/errors/invalid-payload-business.error.js +3 -1
  29. package/dist/errors/invalid-payload-business.error.js.map +1 -1
  30. package/dist/errors/not-found-business.error.d.ts +1 -0
  31. package/dist/errors/not-found-business.error.d.ts.map +1 -0
  32. package/dist/errors/payload-validation.error.d.ts +1 -0
  33. package/dist/errors/payload-validation.error.d.ts.map +1 -0
  34. package/dist/errors/payload-validation.error.js +3 -2
  35. package/dist/errors/payload-validation.error.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/logger/app-logger.module.d.ts +1 -0
  39. package/dist/logger/app-logger.module.d.ts.map +1 -0
  40. package/dist/logger/app-logger.token.d.ts +1 -0
  41. package/dist/logger/app-logger.token.d.ts.map +1 -0
  42. package/dist/logger/logger.async-context.d.ts +1 -0
  43. package/dist/logger/logger.async-context.d.ts.map +1 -0
  44. package/dist/logger/logger.module.d.ts +1 -0
  45. package/dist/logger/logger.module.d.ts.map +1 -0
  46. package/dist/logger/logger.service.d.ts +5 -1
  47. package/dist/logger/logger.service.d.ts.map +1 -0
  48. package/dist/logger/logger.service.js +58 -32
  49. package/dist/logger/logger.service.js.map +1 -1
  50. package/dist/nestjs/filters/http-exceptions.filter.d.ts +1 -0
  51. package/dist/nestjs/filters/http-exceptions.filter.d.ts.map +1 -0
  52. package/dist/nestjs/filters/http-exceptions.filter.js +2 -1
  53. package/dist/nestjs/filters/http-exceptions.filter.js.map +1 -1
  54. package/dist/nestjs/middleware/http-logger.middleware.d.ts +1 -0
  55. package/dist/nestjs/middleware/http-logger.middleware.d.ts.map +1 -0
  56. package/dist/nestjs/middleware/http-logger.middleware.js +8 -3
  57. package/dist/nestjs/middleware/http-logger.middleware.js.map +1 -1
  58. package/dist/util/payload.util.d.ts +1 -0
  59. package/dist/util/payload.util.d.ts.map +1 -0
  60. package/dist/util/payload.util.js +13 -13
  61. package/dist/util/payload.util.js.map +1 -1
  62. package/package.json +47 -41
  63. package/dist/__tests__/payload-util/payload-util.test.d.ts +0 -1
  64. package/dist/__tests__/payload-util/payload-util.test.js +0 -65
  65. package/dist/__tests__/payload-util/payload-util.test.js.map +0 -1
  66. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,4 +1,17 @@
1
1
  export class PayloadUtil {
2
+ static sensitiveKeys = [
3
+ "authorization",
4
+ "proxy-authorization",
5
+ "cookie",
6
+ "set-cookie",
7
+ "x-api-key",
8
+ "secret",
9
+ "password",
10
+ "token",
11
+ "access_token",
12
+ "refresh_token",
13
+ "api_key",
14
+ ];
2
15
  static normalize(payload) {
3
16
  if (payload === null || payload === undefined) {
4
17
  return undefined;
@@ -57,17 +70,4 @@ export class PayloadUtil {
57
70
  return { envelope, payload };
58
71
  }
59
72
  }
60
- PayloadUtil.sensitiveKeys = [
61
- "authorization",
62
- "proxy-authorization",
63
- "cookie",
64
- "set-cookie",
65
- "x-api-key",
66
- "secret",
67
- "password",
68
- "token",
69
- "access_token",
70
- "refresh_token",
71
- "api_key",
72
- ];
73
73
  //# sourceMappingURL=payload.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payload.util.js","sourceRoot":"","sources":["../../src/util/payload.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload.util.js","sourceRoot":"","sources":["../../src/util/payload.util.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IACtB,MAAM,CAAU,aAAa,GAAG;QAC9B,eAAe;QACf,qBAAqB;QACrB,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,UAAU;QACV,OAAO;QACP,cAAc;QACd,eAAe;QACf,SAAS;KACV,CAAC;IAQK,MAAM,CAAC,SAAS,CAAC,OAAgB;QACtC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAA0C,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IASM,MAAM,CAAC,QAAQ,CACpB,OAA6D;QAE7D,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAE5C,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAEpF,MAAM,aAAa,GAAG,CAAC,KAAU,EAAO,EAAE;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,SAAS,GAAQ,EAAE,CAAC;gBAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrB,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;oBAChC,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBAEP,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAQM,MAAM,CAAC,OAAO,CAAC,UAAwC;QAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3G,MAAM,QAAQ,GAAG,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAExG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC"}
package/package.json CHANGED
@@ -1,41 +1,47 @@
1
- {
2
- "name": "@cargolift-cdi/lib-common",
3
- "version": "0.0.72",
4
- "description": "Utilitários comuns para projetos do middleware Cargolift",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "type": "module",
8
- "files": [
9
- "dist"
10
- ],
11
- "scripts": {
12
- "build": "tsc -p tsconfig.json",
13
- "test": "vitest run --reporter=dot",
14
- "prepublishOnly": "npm run build && npm test && npm version patch --no-git-tag-version",
15
- "updatelibs": "npm update @cargolift-cdi/types"
16
- },
17
- "author": "Cargolift CDI",
18
- "license": "MIT",
19
- "peerDependencies": {
20
- "@nestjs/common": "^11.1.6"
21
- },
22
- "devDependencies": {
23
- "@cargolift-cdi/types": "latest",
24
- "@types/node": "^24.3.0",
25
- "typescript": "^5.9.2",
26
- "vitest": "^4.0.16"
27
- },
28
- "repository": {
29
- "type": "git",
30
- "url": "https://github.com/cargolift-cdi/lib-common.git"
31
- },
32
- "publishConfig": {
33
- "registry": "https://registry.npmjs.org/"
34
- },
35
- "dependencies": {
36
- "@nestjs/core": "^11.1.6",
37
- "pino": "^9.11.0",
38
- "pino-pretty": "^13.1.1",
39
- "uuid": "^13.0.0"
40
- }
41
- }
1
+ {
2
+ "name": "@cargolift-cdi/lib-common",
3
+ "version": "0.0.73",
4
+ "description": "Utilitários comuns para projetos do middleware Cargolift",
5
+ "author": "Cargolift CDI",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js"
10
+ }
11
+ },
12
+ "files": [
13
+ "dist/**/*",
14
+ "README.md",
15
+ "LICENSE"
16
+ ],
17
+ "type": "module",
18
+ "license": "MIT",
19
+ "peerDependencies": {
20
+ "@nestjs/common": "^11.1.6"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "^24.3.0",
24
+ "typescript": "^5.9.2",
25
+ "vitest": "^4.0.16",
26
+ "@cargolift-cdi/types": "0.1.167"
27
+ },
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "https://github.com/cargolift-cdi/lib-common.git"
31
+ },
32
+ "publishConfig": {
33
+ "registry": "https://registry.npmjs.org/"
34
+ },
35
+ "dependencies": {
36
+ "@nestjs/core": "^11.1.6",
37
+ "pino": "^9.11.0",
38
+ "pino-pretty": "^13.1.1",
39
+ "uuid": "^13.0.0"
40
+ },
41
+ "scripts": {
42
+ "dev": "tsc -w -p tsconfig.json",
43
+ "build": "tsc -p tsconfig.json",
44
+ "test": "vitest run --reporter=dot",
45
+ "updatelibs": "npm update @cargolift-cdi/types"
46
+ }
47
+ }
@@ -1 +0,0 @@
1
- export {};
@@ -1,65 +0,0 @@
1
- import { PayloadUtil } from "../../util/payload.util.js";
2
- import { describe, test, expect } from "vitest";
3
- describe("Payload Util", () => {
4
- test("Valida sanitização", async () => {
5
- const payload = `{
6
- "agent": "agent",
7
- "entity": "demo",
8
- "action": "put",
9
- "extraData": {
10
- "demoField": "demoValue"
11
- },
12
- "correlation_id": "5e13be2b-6e50-4e40-a0c4-a7e6b1ba525c",
13
- "routingKey": "integration.agent.demo.put",
14
- "source": {
15
- "ip": "10.18.15.51",
16
- "user_agent": "PostmanRuntime/7.51.0",
17
- "user_id": "23be1cf6-b401-4f3c-bc81-fa79e24abab7",
18
- "user_name": "service-account-sistema_teste",
19
- "application": "sistema_teste"
20
- },
21
- "timestamp": "2026-01-08T17:35:35.575Z",
22
- "sourceHeaders": {
23
- "content-type": "application/json",
24
- "authorization": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJDNzdYRGN3Y1BvZzdmQ044aHp5a2xJUndoT25RUEtmUUdfNm5GYUlOQ01NIn0.eyJleHAiOjE3Njc5MDgxMTksImlhdCI6MTc2Nzg5MzcxOSwianRpIjoiOWRhYzU0ZTUtNWI2MC00MDIxLWI0MjUtNDM3MmIyNDkyZjBjIiwiaXNzIjoiaHR0cDovLzEwLjEwMC4wLjE0NDo4MDgwL3JlYWxtcy9taWRkbGV3YXJlIiwiYXVkIjpbImFwaS51dGlsIiwiYXBpIl0sInN1YiI6IjIzYmUxY2Y2LWI0MDEtNGYzYy1iYzgxLWZhNzllMjRhYmFiNyIsInR5cCI6IkJlYXJlciIsImF6cCI6InNpc3RlbWFfdGVzdGUiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIi8qIl0sInJlc291cmNlX2FjY2VzcyI6eyJhcGkudXRpbCI6eyJyb2xlcyI6WyJlbWFpbDpzZW5kIl19LCJhcGkiOnsicm9sZXMiOlsiYXBpOmRlbW8iLCJhcGk6ZGlhZ25vc3RpY3MiXX19LCJzY29wZSI6InByb2ZpbGUiLCJjbGllbnRIb3N0IjoiMTAuMTguMTUuNTEiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzZXJ2aWNlLWFjY291bnQtc2lzdGVtYV90ZXN0ZSIsImNsaWVudEFkZHJlc3MiOiIxMC4xOC4xNS41MSIsImNsaWVudF9pZCI6InNpc3RlbWFfdGVzdGUifQ.aySmIvsfb6LztCUMFAy_jM5lby0px6_DKiLk0ND51j8073SstzAG7brOGImdcCCnq2ara3sqf75bz3yTTAc4kZWGA0nG9ZHMsaLv3eOk9Nf182rQnNxSR6nPG06nM77W_9e1_dvX4E9Mlu8FWGAV4eiuXDIQ_JrZsO7LgrKq3YSASvtE-Wz0fEKqssf0lA0sRpz6SmYgIBKxFI8N6FmpxRsy3I6JOk9EKm8hmp4A74ohskN9AZJhpBQb_euR3k4_KUayjUNoXDtXahoEWrR-3cKKRbOEMlqF9UPRayrYwZFn2nuQLav043SIGhijwNk20ud4v1HYqUI8_oTtOrd7EA",
25
- "user-agent": "PostmanRuntime/7.51.0",
26
- "accept": "*/*",
27
- "postman-token": "b2dbb13f-bb9c-4a0d-9687-ebab4ba49337",
28
- "host": "localhost:3002",
29
- "accept-encoding": "gzip, deflate, br",
30
- "connection": "keep-alive",
31
- "content-length": "92"
32
- }
33
- }
34
- `;
35
- const res = PayloadUtil.sanitize(payload);
36
- expect(typeof res).toBe("string");
37
- const sanitized = JSON.parse(res);
38
- expect(sanitized.sourceHeaders.authorization).toBe("[REDACTED]");
39
- expect(sanitized.agent).toBe("agent");
40
- expect(sanitized.sourceHeaders["content-type"]).toBe("application/json");
41
- });
42
- test("Valida extração de envelope", async () => {
43
- const payloadWithEnvelope = {
44
- envelope: {
45
- method: "POST",
46
- timestamp: "2026-01-08T17:35:35.575Z",
47
- },
48
- payload: {
49
- data: "some data",
50
- },
51
- };
52
- const { envelope, payload } = PayloadUtil.extract(payloadWithEnvelope);
53
- expect(envelope).toEqual(payloadWithEnvelope.envelope);
54
- expect(payload).toEqual(payloadWithEnvelope.payload);
55
- });
56
- test("Valida extração de payload sem envelope", async () => {
57
- const payloadWithoutEnvelope = {
58
- data: "some data",
59
- };
60
- const { envelope, payload } = PayloadUtil.extract(payloadWithoutEnvelope);
61
- expect(envelope).toEqual({});
62
- expect(payload).toEqual(payloadWithoutEnvelope);
63
- });
64
- });
65
- //# sourceMappingURL=payload-util.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"payload-util.test.js","sourceRoot":"","sources":["../../../src/__tests__/payload-util/payload-util.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BnB,CAAC;QAEE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAa,CAAC,CAAC;QAE5C,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,mBAAmB,GAAG;YAC1B,QAAQ,EAAE;gBACR,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,0BAA0B;aACtC;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;aAClB;SACF,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,sBAAsB,GAAG;YAC7B,IAAI,EAAE,WAAW;SAClB,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}