axios-error-redact 0.1.410 → 1.0.0
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/README.md +43 -13
- package/lib/index.d.ts +42 -20
- package/lib/index.js +86 -7
- package/lib/types.d.ts +69 -0
- package/lib/types.js +3 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ This can be used as an response interceptor for axios instances, or can be used
|
|
|
5
5
|
|
|
6
6
|
# Compatibility
|
|
7
7
|
|
|
8
|
-
Works with
|
|
8
|
+
Works with
|
|
9
9
|
|
|
10
10
|
- `axios@^0`
|
|
11
11
|
- `axios@^1`
|
|
@@ -24,13 +24,21 @@ The redactor can simply be used in an interceptor to extract non-sensitive data
|
|
|
24
24
|
|
|
25
25
|
```javascript
|
|
26
26
|
import axios from 'axios'
|
|
27
|
-
import {
|
|
27
|
+
import {createErrorInterceptor} from 'axios-error-redact'
|
|
28
28
|
|
|
29
29
|
const instance = axios.create({baseURL: 'http://example.com'})
|
|
30
30
|
|
|
31
|
-
instance.interceptors.response.use(undefined,
|
|
31
|
+
instance.interceptors.response.use(undefined, createErrorInterceptor())
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
await instance.get()
|
|
35
|
+
} catch(error) {
|
|
36
|
+
// The isHttpErrorResponse helper can be used to ensure the thrown error is a redacted error
|
|
37
|
+
if (isHttpErrorResponse(error)) {
|
|
38
|
+
console.error(error.response.statusMessage, error.message)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
32
41
|
|
|
33
|
-
// instance.get()
|
|
34
42
|
|
|
35
43
|
```
|
|
36
44
|
|
|
@@ -77,7 +85,7 @@ const result = axios.get('http://example.com')
|
|
|
77
85
|
|
|
78
86
|
### Constructor
|
|
79
87
|
|
|
80
|
-
The redactor
|
|
88
|
+
The redactor is initialized with some defaults; in which all of the sensitive data will be redacted (request, response, query)
|
|
81
89
|
|
|
82
90
|
```javascript
|
|
83
91
|
import {AxiosErrorRedactor} from 'axios-error-redact'
|
|
@@ -86,22 +94,22 @@ const redactor = new AxiosErrorRedactor()
|
|
|
86
94
|
|
|
87
95
|
```
|
|
88
96
|
|
|
89
|
-
The constructor also accepts
|
|
97
|
+
The constructor also accepts options to enable or disable these
|
|
90
98
|
|
|
91
99
|
```javascript
|
|
92
100
|
import {AxiosErrorRedactor} from 'axios-error-redact'
|
|
93
101
|
|
|
94
|
-
const redactor = new AxiosErrorRedactor(
|
|
95
|
-
false,
|
|
96
|
-
false,
|
|
97
|
-
false,
|
|
98
|
-
|
|
102
|
+
const redactor = new AxiosErrorRedactor({
|
|
103
|
+
redactRequestDataEnabled: false,
|
|
104
|
+
redactResponseDataEnabled: false,
|
|
105
|
+
redactQueryDataEnabled: false,
|
|
106
|
+
})
|
|
99
107
|
|
|
100
108
|
```
|
|
101
109
|
|
|
102
110
|
### Main Function
|
|
103
111
|
|
|
104
|
-
The main function that can be called on the initiated object is `redactError` which accepts the error as the input and returns the redacted information in
|
|
112
|
+
The main function that can be called on the initiated object is `redactError` which accepts the error as the input and returns the redacted information in an object of type `HttpErrorResponse`
|
|
105
113
|
|
|
106
114
|
```javascript
|
|
107
115
|
import axios from 'axios'
|
|
@@ -121,7 +129,9 @@ There are three functions that can be used and chained after the initiated objec
|
|
|
121
129
|
```javascript
|
|
122
130
|
import {AxiosErrorRedactor} from 'axios-error-redact'
|
|
123
131
|
|
|
124
|
-
const redactor = new AxiosErrorRedactor()
|
|
132
|
+
const redactor = new AxiosErrorRedactor()
|
|
133
|
+
.skipRequestData()
|
|
134
|
+
.skipQueryData()
|
|
125
135
|
|
|
126
136
|
```
|
|
127
137
|
|
|
@@ -131,6 +141,7 @@ The redact library will extract information from axios error and return an objec
|
|
|
131
141
|
|
|
132
142
|
```javascript
|
|
133
143
|
HttpErrorResponse {
|
|
144
|
+
isErrorRedactedResponse: true;
|
|
134
145
|
message: string;
|
|
135
146
|
fullURL: string;
|
|
136
147
|
response: {
|
|
@@ -148,3 +159,22 @@ HttpErrorResponse {
|
|
|
148
159
|
```
|
|
149
160
|
|
|
150
161
|
If the error is not an axios error, then the same error will be returned.
|
|
162
|
+
|
|
163
|
+
### Type guard
|
|
164
|
+
|
|
165
|
+
The `isHttpErrorResponse()` function can be used as a type guard in TypeScript to narrow the error type.
|
|
166
|
+
|
|
167
|
+
This can be useful when multiple error types can be thrown from the try block.
|
|
168
|
+
|
|
169
|
+
Be sure not to use the `isAxiosError()` type guard provided by Axios since all intercepted Axios errors will be transformed into a `HttpErrorResponse`
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
try {
|
|
173
|
+
...
|
|
174
|
+
} catch(error: unknown) {
|
|
175
|
+
if (isHttpErrorResponse(error)) {
|
|
176
|
+
// error is narrowed to type HttpErrorResponse
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
package/lib/index.d.ts
CHANGED
|
@@ -1,29 +1,51 @@
|
|
|
1
1
|
import { AxiosError } from 'axios';
|
|
2
|
+
import { AxiosErrorRedactorOptions, HttpErrorResponse } from './types';
|
|
3
|
+
export * from './types';
|
|
2
4
|
export declare const redactedKeyword = "<REDACTED>";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
response: {
|
|
7
|
-
statusCode?: number;
|
|
8
|
-
statusMessage: string;
|
|
9
|
-
data: any;
|
|
10
|
-
};
|
|
11
|
-
request: {
|
|
12
|
-
baseURL: string;
|
|
13
|
-
path: string;
|
|
14
|
-
method: string;
|
|
15
|
-
data: any;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
5
|
+
/**
|
|
6
|
+
* This class is used to redact sensitive data from Axios error objects.
|
|
7
|
+
*/
|
|
18
8
|
export declare class AxiosErrorRedactor {
|
|
19
|
-
redactRequestData
|
|
20
|
-
redactResponseData
|
|
21
|
-
redactQueryData
|
|
22
|
-
constructor(
|
|
9
|
+
private redactRequestData;
|
|
10
|
+
private redactResponseData;
|
|
11
|
+
private redactQueryData;
|
|
12
|
+
constructor(options?: AxiosErrorRedactorOptions);
|
|
13
|
+
/**
|
|
14
|
+
* Disables redaction of the request data
|
|
15
|
+
* @returns the instance of the redactor
|
|
16
|
+
*/
|
|
23
17
|
skipRequestData(): AxiosErrorRedactor;
|
|
18
|
+
/**
|
|
19
|
+
* Disables redaction of the response data
|
|
20
|
+
* @returns the instance of the redactor
|
|
21
|
+
*/
|
|
24
22
|
skipResponseData(): AxiosErrorRedactor;
|
|
23
|
+
/**
|
|
24
|
+
* Disables redaction of the query data
|
|
25
|
+
* @returns the instance of the redactor
|
|
26
|
+
*/
|
|
25
27
|
skipQueryData(): AxiosErrorRedactor;
|
|
28
|
+
/**
|
|
29
|
+
* redacts query string from the url
|
|
30
|
+
* @param url raw url
|
|
31
|
+
* @returns redacted query string
|
|
32
|
+
*/
|
|
26
33
|
private redactUrlQueryParams;
|
|
34
|
+
/**
|
|
35
|
+
* Redacts sensitive data from the Axios rejection error
|
|
36
|
+
* @param error any of errors that can be thrown by axios
|
|
37
|
+
* @returns HttpErrorResponse in case of axios error, otherwise passthrough the error
|
|
38
|
+
*/
|
|
27
39
|
redactError(error: AxiosError | null | undefined): (HttpErrorResponse | null | undefined | Error);
|
|
28
40
|
}
|
|
29
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Simple factory function to create an error interceptor for axios
|
|
43
|
+
* @returns error interceptor for axios
|
|
44
|
+
*/
|
|
45
|
+
export declare function createErrorInterceptor(): ((error: AxiosError | null | undefined) => Promise<HttpErrorResponse | null | undefined | Error>);
|
|
46
|
+
/**
|
|
47
|
+
* predicate to check if the input is an HttpErrorResponse
|
|
48
|
+
* @param input any input
|
|
49
|
+
* @returns whether the input is an HttpErrorResponse
|
|
50
|
+
*/
|
|
51
|
+
export declare function isHttpErrorResponse(input: any): input is HttpErrorResponse;
|
package/lib/index.js
CHANGED
|
@@ -1,16 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
17
|
exports.AxiosErrorRedactor = exports.redactedKeyword = void 0;
|
|
4
|
-
exports.
|
|
18
|
+
exports.createErrorInterceptor = createErrorInterceptor;
|
|
19
|
+
exports.isHttpErrorResponse = isHttpErrorResponse;
|
|
20
|
+
__exportStar(require("./types"), exports);
|
|
5
21
|
exports.redactedKeyword = '<REDACTED>';
|
|
6
22
|
const queryParamsRegex = /(?<=\?|#)\S+/ig;
|
|
7
23
|
const pathParamsRegex = /(\?|#)\S+/ig;
|
|
24
|
+
/**
|
|
25
|
+
* construct the full url
|
|
26
|
+
* @param base base url
|
|
27
|
+
* @param path sub path
|
|
28
|
+
* @param queryPath query path if exists
|
|
29
|
+
* @returns full url
|
|
30
|
+
*/
|
|
8
31
|
function joinURL(base, path, queryPath = '') {
|
|
9
32
|
if (!base)
|
|
10
33
|
return `${path}${queryPath}`;
|
|
11
34
|
const joint = base.endsWith('/') || path.startsWith('/') ? '' : '/';
|
|
12
35
|
return `${base}${joint}${path}${queryPath}`;
|
|
13
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* extracts query path parameters
|
|
39
|
+
* @param input full url
|
|
40
|
+
* @returns query path parameters if found, otherwise empty string
|
|
41
|
+
*/
|
|
14
42
|
function extractQueryPath(input) {
|
|
15
43
|
var _a;
|
|
16
44
|
if (!input)
|
|
@@ -18,6 +46,11 @@ function extractQueryPath(input) {
|
|
|
18
46
|
const match = (_a = input.match(pathParamsRegex)) === null || _a === void 0 ? void 0 : _a.pop();
|
|
19
47
|
return match || '';
|
|
20
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* tries to json parse the input
|
|
51
|
+
* @param input any input
|
|
52
|
+
* @returns parsed data if possible, otherwise undefined
|
|
53
|
+
*/
|
|
21
54
|
function parseData(input) {
|
|
22
55
|
try {
|
|
23
56
|
return JSON.parse(input);
|
|
@@ -26,6 +59,12 @@ function parseData(input) {
|
|
|
26
59
|
return;
|
|
27
60
|
}
|
|
28
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* recursively redacts sensitive data from the object
|
|
64
|
+
* @param data data to redact
|
|
65
|
+
* @param flag whether to perform redaction
|
|
66
|
+
* @returns redacted data
|
|
67
|
+
*/
|
|
29
68
|
function redactData(data, flag) {
|
|
30
69
|
if (!data)
|
|
31
70
|
return data;
|
|
@@ -39,29 +78,55 @@ function redactData(data, flag) {
|
|
|
39
78
|
return redactData(parsedData, flag);
|
|
40
79
|
return flag ? exports.redactedKeyword : data;
|
|
41
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* This class is used to redact sensitive data from Axios error objects.
|
|
83
|
+
*/
|
|
42
84
|
class AxiosErrorRedactor {
|
|
43
|
-
constructor(
|
|
44
|
-
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
85
|
+
constructor(options) {
|
|
86
|
+
var _a, _b, _c;
|
|
87
|
+
this.redactQueryData = (_a = options === null || options === void 0 ? void 0 : options.redactQueryDataEnabled) !== null && _a !== void 0 ? _a : true;
|
|
88
|
+
this.redactRequestData = (_b = options === null || options === void 0 ? void 0 : options.redactRequestDataEnabled) !== null && _b !== void 0 ? _b : true;
|
|
89
|
+
this.redactResponseData = (_c = options === null || options === void 0 ? void 0 : options.redactResponseDataEnabled) !== null && _c !== void 0 ? _c : true;
|
|
47
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Disables redaction of the request data
|
|
93
|
+
* @returns the instance of the redactor
|
|
94
|
+
*/
|
|
48
95
|
skipRequestData() {
|
|
49
96
|
this.redactRequestData = false;
|
|
50
97
|
return this;
|
|
51
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Disables redaction of the response data
|
|
101
|
+
* @returns the instance of the redactor
|
|
102
|
+
*/
|
|
52
103
|
skipResponseData() {
|
|
53
104
|
this.redactResponseData = false;
|
|
54
105
|
return this;
|
|
55
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Disables redaction of the query data
|
|
109
|
+
* @returns the instance of the redactor
|
|
110
|
+
*/
|
|
56
111
|
skipQueryData() {
|
|
57
112
|
this.redactQueryData = false;
|
|
58
113
|
return this;
|
|
59
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* redacts query string from the url
|
|
117
|
+
* @param url raw url
|
|
118
|
+
* @returns redacted query string
|
|
119
|
+
*/
|
|
60
120
|
redactUrlQueryParams(url) {
|
|
61
121
|
if (!url)
|
|
62
122
|
return '';
|
|
63
123
|
return this.redactQueryData ? url.replace(queryParamsRegex, exports.redactedKeyword) : url;
|
|
64
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Redacts sensitive data from the Axios rejection error
|
|
127
|
+
* @param error any of errors that can be thrown by axios
|
|
128
|
+
* @returns HttpErrorResponse in case of axios error, otherwise passthrough the error
|
|
129
|
+
*/
|
|
65
130
|
redactError(error) {
|
|
66
131
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
67
132
|
if (!error || !error.isAxiosError)
|
|
@@ -71,6 +136,7 @@ class AxiosErrorRedactor {
|
|
|
71
136
|
const queryPath = extractQueryPath(path) ? '' : extractQueryPath((_c = error.request) === null || _c === void 0 ? void 0 : _c.path);
|
|
72
137
|
const fullURL = this.redactUrlQueryParams(joinURL(baseURL, path, queryPath));
|
|
73
138
|
return {
|
|
139
|
+
isErrorRedactedResponse: true,
|
|
74
140
|
fullURL,
|
|
75
141
|
message: error.message,
|
|
76
142
|
response: {
|
|
@@ -88,10 +154,23 @@ class AxiosErrorRedactor {
|
|
|
88
154
|
}
|
|
89
155
|
}
|
|
90
156
|
exports.AxiosErrorRedactor = AxiosErrorRedactor;
|
|
91
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Simple factory function to create an error interceptor for axios
|
|
159
|
+
* @returns error interceptor for axios
|
|
160
|
+
*/
|
|
161
|
+
function createErrorInterceptor() {
|
|
92
162
|
const redactor = new AxiosErrorRedactor();
|
|
93
163
|
return function (error) {
|
|
94
164
|
return Promise.reject(redactor.redactError(error));
|
|
95
165
|
};
|
|
96
166
|
}
|
|
97
|
-
|
|
167
|
+
/**
|
|
168
|
+
* predicate to check if the input is an HttpErrorResponse
|
|
169
|
+
* @param input any input
|
|
170
|
+
* @returns whether the input is an HttpErrorResponse
|
|
171
|
+
*/
|
|
172
|
+
function isHttpErrorResponse(input) {
|
|
173
|
+
return typeof input === 'object' &&
|
|
174
|
+
Boolean(input === null || input === void 0 ? void 0 : input.isErrorRedactedResponse);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5S0Esd0RBTUM7QUFPRCxrREFHQztBQXRMRCwwQ0FBdUI7QUFFVixRQUFBLGVBQWUsR0FBRyxZQUFZLENBQUE7QUFFM0MsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQTtBQUN6QyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUE7QUFFckM7Ozs7OztHQU1HO0FBQ0gsU0FBUyxPQUFPLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxTQUFTLEdBQUcsRUFBRTtJQUN6RCxJQUFJLENBQUMsSUFBSTtRQUNQLE9BQU8sR0FBRyxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUE7SUFFOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNuRSxPQUFPLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUE7QUFDN0MsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLEtBQXlCOztJQUNqRCxJQUFJLENBQUMsS0FBSztRQUNSLE9BQU8sRUFBRSxDQUFBO0lBRVgsTUFBTSxLQUFLLEdBQUcsTUFBQSxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQywwQ0FBRSxHQUFHLEVBQUUsQ0FBQTtJQUNqRCxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUE7QUFDcEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxLQUFjO0lBQy9CLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFlLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBQUMs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SUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxLQUFVO0lBQzVDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUTtRQUM5QixPQUFPLENBQUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLHVCQUF1QixDQUFDLENBQUE7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXhpb3NFcnJvcn0gZnJvbSAnYXhpb3MnXG5pbXBvcnQge0F4aW9zRXJyb3JSZWRhY3Rvck9wdGlvbnMsIEh0dHBFcnJvclJlc3BvbnNlfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgcmVkYWN0ZWRLZXl3b3JkID0gJzxSRURBQ1RFRD4nXG5cbmNvbnN0IHF1ZXJ5UGFyYW1zUmVnZXggPSAvKD88PVxcP3wjKVxcUysvaWdcbmNvbnN0IHBhdGhQYXJhbXNSZWdleCA9IC8oXFw/fCMpXFxTKy9pZ1xuXG4vKipcbiAqIGNvbnN0cnVjdCB0aGUgZnVsbCB1cmxcbiAqIEBwYXJhbSBiYXNlIGJhc2UgdXJsXG4gKiBAcGFyYW0gcGF0aCBzdWIgcGF0aFxuICogQHBhcmFtIHF1ZXJ5UGF0aCBxdWVyeSBwYXRoIGlmIGV4aXN0c1xuICogQHJldHVybnMgZnVsbCB1cmxcbiAqL1xuZnVuY3Rpb24gam9pblVSTChiYXNlOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgcXVlcnlQYXRoID0gJycpIHtcbiAgaWYgKCFiYXNlKVxuICAgIHJldHVybiBgJHtwYXRofSR7cXVlcnlQYXRofWBcblxuICBjb25zdCBqb2ludCA9IGJhc2UuZW5kc1dpdGgoJy8nKSB8fCBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/ICcnIDogJy8nXG4gIHJldHVybiBgJHtiYXNlfSR7am9pbnR9JHtwYXRofSR7cXVlcnlQYXRofWBcbn1cblxuLyoqXG4gKiBleHRyYWN0cyBxdWVyeSBwYXRoIHBhcmFtZXRlcnNcbiAqIEBwYXJhbSBpbnB1dCBmdWxsIHVybFxuICogQHJldHVybnMgcXVlcnkgcGF0aCBwYXJhbWV0ZXJzIGlmIGZvdW5kLCBvdGhlcndpc2UgZW1wdHkgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RRdWVyeVBhdGgoaW5wdXQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGlmICghaW5wdXQpXG4gICAgcmV0dXJuICcnXG5cbiAgY29uc3QgbWF0Y2ggPSBpbnB1dC5tYXRjaChwYXRoUGFyYW1zUmVnZXgpPy5wb3AoKVxuICByZXR1cm4gbWF0Y2ggfHwgJydcbn1cblxuLyoqXG4gKiB0cmllcyB0byBqc29uIHBhcnNlIHRoZSBpbnB1dFxuICogQHBhcmFtIGlucHV0IGFueSBpbnB1dFxuICogQHJldHVybnMgcGFyc2VkIGRhdGEgaWYgcG9zc2libGUsIG90aGVyd2lzZSB1bmRlZmluZWRcbiAqL1xuZnVuY3Rpb24gcGFyc2VEYXRhKGlucHV0OiB1bmtub3duKTogYW55IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShpbnB1dCBhcyBzdHJpbmcpXG4gIH0gY2F0Y2gge1xuICAgIHJldHVyblxuICB9XG59XG5cbi8qKlxuICogcmVjdXJzaXZlbHkgcmVkYWN0cyBzZW5zaXRpdmUgZGF0YSBmcm9tIHRoZSBvYmplY3RcbiAqIEBwYXJhbSBkYXRhIGRhdGEgdG8gcmVkYWN0XG4gKiBAcGFyYW0gZmxhZyB3aGV0aGVyIHRvIHBlcmZvcm0gcmVkYWN0aW9uXG4gKiBAcmV0dXJucyByZWRhY3RlZCBkYXRhXG4gKi9cbmZ1bmN0aW9uIHJlZGFjdERhdGEoZGF0YTogdW5rbm93biwgZmxhZzogYm9vbGVhbik6IHVua25vd24ge1xuICBpZiAoIWRhdGEpXG4gICAgcmV0dXJuIGRhdGFcblxuXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSlcbiAgICAgIHJldHVybiBkYXRhLm1hcCh2YWx1ZSA9PiByZWRhY3REYXRhKHZhbHVlLCBmbGFnKSlcblxuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhkYXRhKS5tYXAoKFtrZXksIHZhbHVlXSk9PiBba2V5LCByZWRhY3REYXRhKHZhbHVlLCBmbGFnKV0pKVxuICB9XG5cbiAgY29uc3QgcGFyc2VkRGF0YSA9IHBhcnNlRGF0YShkYXRhKVxuXG4gIGlmIChwYXJzZWREYXRhICYmIHR5cGVvZiBwYXJzZWREYXRhID09PSAnb2JqZWN0JylcbiAgICByZXR1cm4gcmVkYWN0RGF0YShwYXJzZWREYXRhLCBmbGFnKVxuXG5cbiAgcmV0dXJuIGZsYWcgPyByZWRhY3RlZEtleXdvcmQgOiBkYXRhXG59XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHJlZGFjdCBzZW5zaXRpdmUgZGF0YSBmcm9tIEF4aW9zIGVycm9yIG9iamVjdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBeGlvc0Vycm9yUmVkYWN0b3Ige1xuICBwcml2YXRlIHJlZGFjdFJlcXVlc3REYXRhOiBib29sZWFuXG4gIHByaXZhdGUgcmVkYWN0UmVzcG9uc2VEYXRhOiBib29sZWFuXG4gIHByaXZhdGUgcmVkYWN0UXVlcnlEYXRhOiBib29sZWFuXG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IEF4aW9zRXJyb3JSZWRhY3Rvck9wdGlvbnMpIHtcbiAgICB0aGlzLnJlZGFjdFF1ZXJ5RGF0YSA9IG9wdGlvbnM/LnJlZGFjdFF1ZXJ5RGF0YUVuYWJsZWQgPz8gdHJ1ZVxuICAgIHRoaXMucmVkYWN0UmVxdWVzdERhdGEgPSBvcHRpb25zPy5yZWRhY3RSZXF1ZXN0RGF0YUVuYWJsZWQgPz8gdHJ1ZVxuICAgIHRoaXMucmVkYWN0UmVzcG9uc2VEYXRhID0gb3B0aW9ucz8ucmVkYWN0UmVzcG9uc2VEYXRhRW5hYmxlZCA/PyB0cnVlXG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgcmVkYWN0aW9uIG9mIHRoZSByZXF1ZXN0IGRhdGFcbiAgICogQHJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSByZWRhY3RvclxuICAgKi9cbiAgc2tpcFJlcXVlc3REYXRhKCk6IEF4aW9zRXJyb3JSZWRhY3RvciB7XG4gICAgdGhpcy5yZWRhY3RSZXF1ZXN0RGF0YSA9IGZhbHNlXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyByZWRhY3Rpb24gb2YgdGhlIHJlc3BvbnNlIGRhdGFcbiAgICogQHJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSByZWRhY3RvclxuICAgKi9cbiAgc2tpcFJlc3BvbnNlRGF0YSgpOiBBeGlvc0Vycm9yUmVkYWN0b3Ige1xuICAgIHRoaXMucmVkYWN0UmVzcG9uc2VEYXRhID0gZmFsc2VcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIHJlZGFjdGlvbiBvZiB0aGUgcXVlcnkgZGF0YVxuICAgKiBAcmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIHJlZGFjdG9yXG4gICAqL1xuICBza2lwUXVlcnlEYXRhKCk6IEF4aW9zRXJyb3JSZWRhY3RvciB7XG4gICAgdGhpcy5yZWRhY3RRdWVyeURhdGEgPSBmYWxzZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogcmVkYWN0cyBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgdXJsXG4gICAqIEBwYXJhbSB1cmwgcmF3IHVybFxuICAgKiBAcmV0dXJucyByZWRhY3RlZCBxdWVyeSBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgcmVkYWN0VXJsUXVlcnlQYXJhbXModXJsOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghdXJsKVxuICAgICAgcmV0dXJuICcnXG5cbiAgICByZXR1cm4gdGhpcy5yZWRhY3RRdWVyeURhdGEgPyB1cmwucmVwbGFjZShxdWVyeVBhcmFtc1JlZ2V4LCByZWRhY3RlZEtleXdvcmQpIDogdXJsXG4gIH1cblxuICAvKipcbiAgICogUmVkYWN0cyBzZW5zaXRpdmUgZGF0YSBmcm9tIHRoZSBBeGlvcyByZWplY3Rpb24gZXJyb3JcbiAgICogQHBhcmFtIGVycm9yIGFueSBvZiBlcnJvcnMgdGhhdCBjYW4gYmUgdGhyb3duIGJ5IGF4aW9zXG4gICAqIEByZXR1cm5zIEh0dHBFcnJvclJlc3BvbnNlIGluIGNhc2Ugb2YgYXhpb3MgZXJyb3IsIG90aGVyd2lzZSBwYXNzdGhyb3VnaCB0aGUgZXJyb3JcbiAgICovXG4gIHJlZGFjdEVycm9yKGVycm9yOiBBeGlvc0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCk6IChIdHRwRXJyb3JSZXNwb25zZSB8IG51bGwgfCB1bmRlZmluZWQgfCBFcnJvcikge1xuICAgIGlmICghZXJyb3IgfHwgIWVycm9yLmlzQXhpb3NFcnJvcilcbiAgICAgIHJldHVybiBlcnJvclxuXG4gICAgY29uc3QgYmFzZVVSTCA9IHRoaXMucmVkYWN0VXJsUXVlcnlQYXJhbXMoZXJyb3IuY29uZmlnPy5iYXNlVVJMKVxuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJlZGFjdFVybFF1ZXJ5UGFyYW1zKGVycm9yLmNvbmZpZz8udXJsKVxuICAgIGNvbnN0IHF1ZXJ5UGF0aCA9IGV4dHJhY3RRdWVyeVBhdGgocGF0aCkgPyAnJyA6IGV4dHJhY3RRdWVyeVBhdGgoZXJyb3IucmVxdWVzdD8ucGF0aClcbiAgICBjb25zdCBmdWxsVVJMID0gdGhpcy5yZWRhY3RVcmxRdWVyeVBhcmFtcyhqb2luVVJMKGJhc2VVUkwsIHBhdGgsIHF1ZXJ5UGF0aCkpXG5cbiAgICByZXR1cm4ge1xuICAgICAgaXNFcnJvclJlZGFjdGVkUmVzcG9uc2U6IHRydWUsXG4gICAgICBmdWxsVVJMLFxuICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgIHN0YXR1c0NvZGU6IGVycm9yLnJlc3BvbnNlPy5zdGF0dXMsXG4gICAgICAgIHN0YXR1c01lc3NhZ2U6IGVycm9yLnJlc3BvbnNlPy5zdGF0dXNUZXh0IHx8ICcnLFxuICAgICAgICBkYXRhOiByZWRhY3REYXRhKGVycm9yLnJlc3BvbnNlPy5kYXRhLCB0aGlzLnJlZGFjdFJlc3BvbnNlRGF0YSksXG4gICAgICB9LFxuICAgICAgcmVxdWVzdDoge1xuICAgICAgICBiYXNlVVJMLFxuICAgICAgICBwYXRoLFxuICAgICAgICBtZXRob2Q6IGVycm9yLmNvbmZpZz8ubWV0aG9kIHx8ICcnLFxuICAgICAgICBkYXRhOiByZWRhY3REYXRhKGVycm9yLmNvbmZpZz8uZGF0YSwgdGhpcy5yZWRhY3RSZXF1ZXN0RGF0YSksXG4gICAgICB9LFxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNpbXBsZSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhbiBlcnJvciBpbnRlcmNlcHRvciBmb3IgYXhpb3NcbiAqIEByZXR1cm5zIGVycm9yIGludGVyY2VwdG9yIGZvciBheGlvc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXJyb3JJbnRlcmNlcHRvcigpOiAoKGVycm9yOiBBeGlvc0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCk9PiBQcm9taXNlPEh0dHBFcnJvclJlc3BvbnNlIHwgbnVsbCB8IHVuZGVmaW5lZCB8IEVycm9yPikge1xuICBjb25zdCByZWRhY3RvciA9IG5ldyBBeGlvc0Vycm9yUmVkYWN0b3IoKVxuXG4gIHJldHVybiBmdW5jdGlvbiAoZXJyb3I6IEF4aW9zRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxIdHRwRXJyb3JSZXNwb25zZSB8IG51bGwgfCB1bmRlZmluZWQgfCBFcnJvcj4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZWRhY3Rvci5yZWRhY3RFcnJvcihlcnJvcikpXG4gIH1cbn1cblxuLyoqXG4gKiBwcmVkaWNhdGUgdG8gY2hlY2sgaWYgdGhlIGlucHV0IGlzIGFuIEh0dHBFcnJvclJlc3BvbnNlXG4gKiBAcGFyYW0gaW5wdXQgYW55IGlucHV0XG4gKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBpbnB1dCBpcyBhbiBIdHRwRXJyb3JSZXNwb25zZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIdHRwRXJyb3JSZXNwb25zZShpbnB1dDogYW55KTogaW5wdXQgaXMgSHR0cEVycm9yUmVzcG9uc2Uge1xuICByZXR1cm4gdHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJlxuICAgIEJvb2xlYW4oaW5wdXQ/LmlzRXJyb3JSZWRhY3RlZFJlc3BvbnNlKVxufVxuIl19
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface AxiosErrorRedactorOptions {
|
|
2
|
+
/**
|
|
3
|
+
* whether to redact request data
|
|
4
|
+
* @default true
|
|
5
|
+
*/
|
|
6
|
+
readonly redactRequestDataEnabled?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* whether to redact response data
|
|
9
|
+
* @default true
|
|
10
|
+
*/
|
|
11
|
+
readonly redactResponseDataEnabled?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* whether to redact query data
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
readonly redactQueryDataEnabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Redacted response of Axios error
|
|
20
|
+
*/
|
|
21
|
+
export interface HttpErrorResponse {
|
|
22
|
+
/**
|
|
23
|
+
* whether the response is redacted
|
|
24
|
+
*/
|
|
25
|
+
readonly isErrorRedactedResponse: true;
|
|
26
|
+
/**
|
|
27
|
+
* error message
|
|
28
|
+
*/
|
|
29
|
+
readonly message: string;
|
|
30
|
+
/**
|
|
31
|
+
* full url of the request
|
|
32
|
+
*/
|
|
33
|
+
readonly fullURL: string;
|
|
34
|
+
/**
|
|
35
|
+
* response details
|
|
36
|
+
*/
|
|
37
|
+
readonly response: {
|
|
38
|
+
/**
|
|
39
|
+
* status code of the response
|
|
40
|
+
*/
|
|
41
|
+
readonly statusCode?: number;
|
|
42
|
+
/**
|
|
43
|
+
* status message of the response
|
|
44
|
+
*/
|
|
45
|
+
readonly statusMessage: string;
|
|
46
|
+
/**
|
|
47
|
+
* response data, redacted if set to true
|
|
48
|
+
*/
|
|
49
|
+
readonly data: unknown;
|
|
50
|
+
};
|
|
51
|
+
readonly request: {
|
|
52
|
+
/**
|
|
53
|
+
* base url of the request
|
|
54
|
+
*/
|
|
55
|
+
readonly baseURL: string;
|
|
56
|
+
/**
|
|
57
|
+
* path of the request
|
|
58
|
+
*/
|
|
59
|
+
readonly path: string;
|
|
60
|
+
/**
|
|
61
|
+
* method of the request
|
|
62
|
+
*/
|
|
63
|
+
readonly method: string;
|
|
64
|
+
/**
|
|
65
|
+
* request data, redacted if set to true
|
|
66
|
+
*/
|
|
67
|
+
readonly data: unknown;
|
|
68
|
+
};
|
|
69
|
+
}
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQXhpb3NFcnJvclJlZGFjdG9yT3B0aW9ucyB7XG4gIC8qKlxuICAgKiB3aGV0aGVyIHRvIHJlZGFjdCByZXF1ZXN0IGRhdGFcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVkYWN0UmVxdWVzdERhdGFFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogd2hldGhlciB0byByZWRhY3QgcmVzcG9uc2UgZGF0YVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZWRhY3RSZXNwb25zZURhdGFFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogd2hldGhlciB0byByZWRhY3QgcXVlcnkgZGF0YVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZWRhY3RRdWVyeURhdGFFbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZWRhY3RlZCByZXNwb25zZSBvZiBBeGlvcyBlcnJvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBFcnJvclJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIHdoZXRoZXIgdGhlIHJlc3BvbnNlIGlzIHJlZGFjdGVkXG4gICAqL1xuICByZWFkb25seSBpc0Vycm9yUmVkYWN0ZWRSZXNwb25zZTogdHJ1ZTtcblxuICAvKipcbiAgICogZXJyb3IgbWVzc2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBmdWxsIHVybCBvZiB0aGUgcmVxdWVzdFxuICAgKi9cbiAgcmVhZG9ubHkgZnVsbFVSTDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiByZXNwb25zZSBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSByZXNwb25zZToge1xuXG4gICAgLyoqXG4gICAgICogc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3RhdHVzQ29kZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIHN0YXR1cyBtZXNzYWdlIG9mIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0YXR1c01lc3NhZ2U6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIHJlc3BvbnNlIGRhdGEsIHJlZGFjdGVkIGlmIHNldCB0byB0cnVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGF0YTogdW5rbm93bjtcbiAgfTtcbiAgcmVhZG9ubHkgcmVxdWVzdDoge1xuICAgIC8qKlxuICAgICAqIGJhc2UgdXJsIG9mIHRoZSByZXF1ZXN0XG4gICAgICovXG4gICAgcmVhZG9ubHkgYmFzZVVSTDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogcGF0aCBvZiB0aGUgcmVxdWVzdFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBvZiB0aGUgcmVxdWVzdFxuICAgICAqL1xuICAgIHJlYWRvbmx5IG1ldGhvZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogcmVxdWVzdCBkYXRhLCByZWRhY3RlZCBpZiBzZXQgdG8gdHJ1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRhdGE6IHVua25vd247XG4gIH07XG59Il19
|
package/package.json
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"eslint-import-resolver-typescript": "^3.6.3",
|
|
47
47
|
"eslint-plugin-import": "^2.30.0",
|
|
48
48
|
"mocha": "^10.7.3",
|
|
49
|
-
"projen": "^0.87.
|
|
49
|
+
"projen": "^0.87.4",
|
|
50
50
|
"ts-eager": "^2.0.2",
|
|
51
51
|
"ts-node": "^10.9.2",
|
|
52
52
|
"typedoc": "^0.26.7",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"version": "0.
|
|
75
|
+
"version": "1.0.0",
|
|
76
76
|
"types": "lib/index.d.ts",
|
|
77
77
|
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
78
78
|
}
|