@storyous/errors 1.0.8 → 1.0.9

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.
package/dist/appError.js CHANGED
@@ -82,4 +82,4 @@ class AppError extends Error {
82
82
  }
83
83
  }
84
84
  exports.default = AppError;
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvYXBwRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFxQixRQUFTLFNBQVEsS0FBSztJQVV2QyxZQUFhLE9BQWUsRUFBRSxJQUFVO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1FBRXhDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUVuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxTQUFTLENBQUM7UUFFOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sQ0FBRSxJQUF5QjtRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUVqQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBRSxLQUFlO1FBQy9CLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBRSxPQUFnQixFQUFFLElBQTBCO1FBRXpELElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUM3QixJQUFJLE9BQU8sRUFBRTtZQUNULFVBQVUsSUFBSSxLQUFLLE9BQU8sRUFB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
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvYXBwRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFxQixRQUFTLFNBQVEsS0FBSztJQVV2QyxZQUFhLE9BQWUsRUFBRSxJQUFVO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1FBRXhDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUVuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxTQUFTLENBQUM7UUFFOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sQ0FBRSxJQUF5QjtRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUVqQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBRSxLQUFlO1FBQy9CLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBRSxPQUFnQixFQUFFLElBQTBCO1FBRXpELElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUM3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsVUFBVSxJQUFJLEtBQUssT0FB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
@@ -5,25 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = require("lodash");
7
7
  const appError_1 = __importDefault(require("./appError"));
8
- /**
9
- * recursively mask the 'Authorization' field in the meta object
10
- */
11
- const maskAuthorizationField = (obj) => {
12
- try {
13
- // Stringify the object
14
- const jsonString = JSON.stringify(obj);
15
- const maskedString = jsonString
16
- .replaceAll(/("Authorization":\s?")[^"]*(")/g, '$1***$2')
17
- .replaceAll(/(\\"Authorization\\":\s?\\"(?:Bearer\s?)?)[^"]*(\\")/ig, '$1***$2');
18
- // Parse back into the object
19
- return JSON.parse(maskedString);
20
- }
21
- catch (error) {
22
- // eslint-disable-next-line no-console
23
- console.error('Error stringifying or parsing object:', error);
24
- return obj; // Fallback to original object in case of error
25
- }
26
- };
27
8
  const initErrHandler = (log) => async function (ctx, next) {
28
9
  try {
29
10
  await next();
@@ -69,25 +50,41 @@ const initErrHandler = (log) => async function (ctx, next) {
69
50
  metaData.meta = err.meta;
70
51
  }
71
52
  err.setMeta(metaData);
53
+ const maskAuthorizationField = (obj) => {
54
+ try {
55
+ const jsonString = JSON.stringify(obj);
56
+ const maskedString = jsonString
57
+ .replace(/("Authorization":\s?")[^"]*(")/g, '$1***$2')
58
+ .replace(/(\\"Authorization\\":\s?\\"(?:Bearer\s?)?)[^"]*(\\")/ig, '$1***$2');
59
+ return JSON.parse(maskedString);
60
+ }
61
+ catch (error) {
62
+ log.error('Error stringifying or parsing object:', error);
63
+ return obj; // Fallback to original object in case of error
64
+ }
65
+ };
72
66
  const maskBearerToken = (error) => {
73
67
  try {
74
- const clonedError = (0, lodash_1.cloneDeep)(error);
75
- if (clonedError.meta) {
76
- // Recursively mask authorization fields within meta
77
- clonedError.meta = maskAuthorizationField(clonedError.meta);
68
+ const loggable = {
69
+ ...error,
70
+ name: error.name,
71
+ message: error.message,
72
+ stack: error.stack,
73
+ };
74
+ if (loggable.meta) {
75
+ loggable.meta = maskAuthorizationField((0, lodash_1.cloneDeep)(loggable.meta));
78
76
  }
79
- return clonedError;
77
+ return loggable;
80
78
  }
81
79
  catch (parseError) {
82
- // eslint-disable-next-line no-console
83
80
  log.warn('Failed to sanitize authorization fields', parseError);
84
81
  return error;
85
82
  }
86
83
  };
87
- if ([404, 401, 429].includes(err.httpStatus)) {
84
+ if (err.httpStatus === 404 || err.httpStatus === 401 || err.httpStatus === 429) {
88
85
  log.warn(maskBearerToken(err));
89
86
  }
90
- else if ([500, 408].includes(err.httpStatus)) {
87
+ else if (err.httpStatus === 500 || err.httpStatus === 408) {
91
88
  log.error(maskBearerToken(err));
92
89
  }
93
90
  else {
@@ -102,4 +99,4 @@ const initErrHandler = (log) => async function (ctx, next) {
102
99
  }
103
100
  };
104
101
  exports.default = initErrHandler;
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2Vycm9ySGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUVnQjtBQUVoQiwwREFBa0M7QUFFbEM7O0lBRUk7QUFDSixNQUFNLHNCQUFzQixHQUFHLENBQUMsR0FBUSxFQUFFLEVBQUU7SUFDeEMsSUFBSTtRQUNBLHVCQUF1QjtRQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sWUFBWSxHQUFHLFVBQVU7YUFDMUIsVUFBVSxDQUFDLGlDQUFpQyxFQUFFLFNBQVMsQ0FBQzthQUN4RCxVQUFVLENBQUMsd0RBQXdELEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFckYsNkJBQTZCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNuQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ1osc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsT0FBTyxHQUFHLENBQUMsQ0FBQywrQ0FBK0M7S0FDOUQ7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxXQUFXLEdBQVEsRUFBRSxJQUFjO0lBQzVFLElBQUk7UUFDQSxNQUFNLElBQUksRUFBRSxDQUFDO0tBQ2hCO0lBQUMsT0FBTyxhQUFpQixFQUFFO1FBRXhCLElBQUksR0FBRyxHQUFRLGFBQWEsQ0FBQztRQUU3QixJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksa0JBQVEsQ0FBQyxFQUFFO1lBRTVCLElBQUksR0FBRyxZQUFZLEtBQUssRUFBRTtnQkFDdEIsYUFBYTtnQkFDYixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztnQkFDdEMs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
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2Vycm9ySGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUVnQjtBQUVoQiwwREFBa0M7QUFFbEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEtBQUssV0FBVyxHQUFRLEVBQUUsSUFBYztJQUM1RSxJQUFJLENBQUM7UUFDRCxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFBQyxPQUFPLGFBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLEdBQUcsR0FBUSxhQUFhLENBQUM7UUFFN0IsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLGtCQUFRLENBQUMsRUFBRSxDQUFDO1lBRTdCLElBQUksR0FBRyxZQUFZLEtBQUssRUFBRSxDQUFDO2dCQUN2QixhQUFhO2dCQUNiLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO2dCQUN0QyxHQUFHLEdBQUcsSUFBSSxrQkFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDbEQsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFFNUIsQ0FBQztpQkFBTSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxHQUFHLEdBQUcsSUFBSSxrQkFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTVCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixHQUFHLEdBQUcsSUFBSSxrQkFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFFRCxHQUFHLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDcEMsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFRO1lBQ2xCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUc7WUFD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
@@ -4,27 +4,6 @@ import {
4
4
  import { Logger } from 'winston';
5
5
  import AppError from './appError';
6
6
 
7
- /**
8
- * recursively mask the 'Authorization' field in the meta object
9
- */
10
- const maskAuthorizationField = (obj: any) => {
11
- try {
12
- // Stringify the object
13
- const jsonString = JSON.stringify(obj);
14
-
15
- const maskedString = jsonString
16
- .replaceAll(/("Authorization":\s?")[^"]*(")/g, '$1***$2')
17
- .replaceAll(/(\\"Authorization\\":\s?\\"(?:Bearer\s?)?)[^"]*(\\")/ig, '$1***$2');
18
-
19
- // Parse back into the object
20
- return JSON.parse(maskedString);
21
- } catch (error) {
22
- // eslint-disable-next-line no-console
23
- console.error('Error stringifying or parsing object:', error);
24
- return obj; // Fallback to original object in case of error
25
- }
26
- };
27
-
28
7
  const initErrHandler = (log: Logger) => async function (ctx: any, next: Function) {
29
8
  try {
30
9
  await next();
@@ -82,37 +61,45 @@ const initErrHandler = (log: Logger) => async function (ctx: any, next: Function
82
61
 
83
62
  err.setMeta(metaData);
84
63
 
85
- interface ErrorMeta {
86
- request?: {
87
- body?: any;
88
- };
89
- }
64
+ const maskAuthorizationField = (obj: any) => {
65
+ try {
66
+ const jsonString = JSON.stringify(obj);
90
67
 
91
- interface ErrorObject extends AppError {
92
- meta?: ErrorMeta;
93
- }
68
+ const maskedString = jsonString
69
+ .replace(/("Authorization":\s?")[^"]*(")/g, '$1***$2')
70
+ .replace(/(\\"Authorization\\":\s?\\"(?:Bearer\s?)?)[^"]*(\\")/ig, '$1***$2');
94
71
 
95
- const maskBearerToken = (error: ErrorObject): ErrorObject => {
96
- try {
97
- const clonedError: ErrorObject = cloneDeep(error);
72
+ return JSON.parse(maskedString);
73
+ } catch (error) {
74
+ log.error('Error stringifying or parsing object:', error as any);
75
+ return obj; // Fallback to original object in case of error
76
+ }
77
+ };
98
78
 
99
- if (clonedError.meta) {
100
- // Recursively mask authorization fields within meta
101
- clonedError.meta = maskAuthorizationField(clonedError.meta);
79
+ const maskBearerToken = (error: AppError): Record<string, any> => {
80
+ try {
81
+ const loggable: Record<string, any> = {
82
+ ...error,
83
+ name: error.name,
84
+ message: error.message,
85
+ stack: error.stack,
86
+ };
87
+
88
+ if (loggable.meta) {
89
+ loggable.meta = maskAuthorizationField(cloneDeep(loggable.meta));
102
90
  }
103
91
 
104
- return clonedError;
92
+ return loggable;
105
93
  } catch (parseError) {
106
- // eslint-disable-next-line no-console
107
- log.warn('Failed to sanitize authorization fields', parseError);
94
+ log.warn('Failed to sanitize authorization fields', parseError as any);
108
95
  return error;
109
96
  }
110
97
  };
111
98
 
112
- if ([404, 401, 429].includes(err.httpStatus)) {
99
+ if (err.httpStatus === 404 || err.httpStatus === 401 || err.httpStatus === 429) {
113
100
  log.warn(maskBearerToken(err));
114
101
 
115
- } else if ([500, 408].includes(err.httpStatus)) {
102
+ } else if (err.httpStatus === 500 || err.httpStatus === 408) {
116
103
  log.error(maskBearerToken(err));
117
104
 
118
105
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storyous/errors",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/Storyous/mono-utils#readme",
6
6
  "license": "ISC",
@@ -41,5 +41,5 @@
41
41
  "devDependencies": {
42
42
  "@storyous/test-utils": "^2.0.1"
43
43
  },
44
- "gitHead": "be4c1cf7f6ec0a60ef04fe16cc4f75abc6644a2c"
44
+ "gitHead": "220b77fcfaca6a768e0db7c628575237a513ae6d"
45
45
  }