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 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 {getErrorInterceptor} from 'axios-error-redact'
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, getErrorInterceptor())
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 object can be initiated with some defaults; in which all of the sensitive data will be redacted (request, response, query)
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 boolean values to enable or disable these
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, //redactRequestData
96
- false, //redactResponseData
97
- false, //redactQueryData
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 and object of type `HttpErrorResponse`
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().skipRequestData().skipQueryData()
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
- export interface HttpErrorResponse {
4
- message: string;
5
- fullURL: string;
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: boolean;
20
- redactResponseData: boolean;
21
- redactQueryData: boolean;
22
- constructor(redactRequestData?: boolean, redactResponseData?: boolean, redactQueryData?: boolean);
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
- export declare function getErrorInterceptor(): ((error: AxiosError | null | undefined) => Promise<HttpErrorResponse | null | undefined | Error>);
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.getErrorInterceptor = getErrorInterceptor;
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(redactRequestData = true, redactResponseData = true, redactQueryData = true) {
44
- this.redactQueryData = redactQueryData;
45
- this.redactRequestData = redactRequestData;
46
- this.redactResponseData = redactResponseData;
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
- function getErrorInterceptor() {
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0lBLGtEQU1DO0FBdElZLFFBQUEsZUFBZSxHQUFHLFlBQVksQ0FBQTtBQUUzQyxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFBO0FBQ3pDLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQTtBQUVyQyxTQUFTLE9BQU8sQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLFNBQVMsR0FBRyxFQUFFO0lBQ3pELElBQUksQ0FBQyxJQUFJO1FBQ1AsT0FBTyxHQUFHLElBQUksR0FBRyxTQUFTLEVBQUUsQ0FBQTtJQUU5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO0lBQ25FLE9BQU8sR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxTQUFTLEVBQUUsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUF5Qjs7SUFDakQsSUFBSSxDQUFDLEtBQUs7UUFDUixPQUFPLEVBQUUsQ0FBQTtJQUVYLE1BQU0sS0FBSyxHQUFHLE1BQUEsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsMENBQUUsR0FBRyxFQUFFLENBQUE7SUFDakQsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFBO0FBQ3BCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUFhO0lBQzlCLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTTtJQUNSLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBUyxFQUFFLElBQWE7SUFD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VSxFQUFFLE1BQUEsS0FBSyxDQUFDLFFBQVEsMENBQUUsTUFBTTtnQkFDbEMsYUFBYSxFQUFFLENBQUEsTUFBQSxLQUFLLENBQUMsUUFBUSwwQ0FBRSxVQUFVLEtBQUksRUFBRTtnQkFDL0MsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFBLEtBQUssQ0FBQyxRQUFRLDBDQUFFLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUM7YUFDaEU7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsT0FBTztnQkFDUCxJQUFJO2dCQUNKLE1BQU0sRUFBRSxDQUFBLE1BQUEsS0FBSyxDQUFDLE1BQU0sMENBQUUsTUFBTSxLQUFJLEVBQUU7Z0JBQ2xDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBQSxLQUFLLENBQUMsTUFBTSwwQ0FBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQzdEO1NBQ0YsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQTNERCxnREEyREM7QUFFRCxTQUFnQixtQkFBbUI7SUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFBO0lBRXpDLE9BQU8sVUFBVSxLQUFvQztRQUNuRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3BELENBQUMsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F4aW9zRXJyb3J9IGZyb20gJ2F4aW9zJ1xuXG5leHBvcnQgY29uc3QgcmVkYWN0ZWRLZXl3b3JkID0gJzxSRURBQ1RFRD4nXG5cbmNvbnN0IHF1ZXJ5UGFyYW1zUmVnZXggPSAvKD88PVxcP3wjKVxcUysvaWdcbmNvbnN0IHBhdGhQYXJhbXNSZWdleCA9IC8oXFw/fCMpXFxTKy9pZ1xuXG5mdW5jdGlvbiBqb2luVVJMKGJhc2U6IHN0cmluZywgcGF0aDogc3RyaW5nLCBxdWVyeVBhdGggPSAnJykge1xuICBpZiAoIWJhc2UpXG4gICAgcmV0dXJuIGAke3BhdGh9JHtxdWVyeVBhdGh9YFxuXG4gIGNvbnN0IGpvaW50ID0gYmFzZS5lbmRzV2l0aCgnLycpIHx8IHBhdGguc3RhcnRzV2l0aCgnLycpID8gJycgOiAnLydcbiAgcmV0dXJuIGAke2Jhc2V9JHtqb2ludH0ke3BhdGh9JHtxdWVyeVBhdGh9YFxufVxuXG5mdW5jdGlvbiBleHRyYWN0UXVlcnlQYXRoKGlucHV0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBpZiAoIWlucHV0KVxuICAgIHJldHVybiAnJ1xuXG4gIGNvbnN0IG1hdGNoID0gaW5wdXQubWF0Y2gocGF0aFBhcmFtc1JlZ2V4KT8ucG9wKClcbiAgcmV0dXJuIG1hdGNoIHx8ICcnXG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShpbnB1dDogc3RyaW5nKTogYW55IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShpbnB1dClcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVkYWN0RGF0YShkYXRhOiBhbnksIGZsYWc6IGJvb2xlYW4pOiBhbnkge1xuICBpZiAoIWRhdGEpXG4gICAgcmV0dXJuIGRhdGFcblxuXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSlcbiAgICAgIHJldHVybiBkYXRhLm1hcCh2YWx1ZSA9PiByZWRhY3REYXRhKHZhbHVlLCBmbGFnKSlcblxuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhkYXRhKS5tYXAoKFtrZXksIHZhbHVlXSk9PiBba2V5LCByZWRhY3REYXRhKHZhbHVlLCBmbGFnKV0pKVxuICB9XG5cbiAgY29uc3QgcGFyc2VkRGF0YSA9IHBhcnNlRGF0YShkYXRhKVxuXG4gIGlmIChwYXJzZWREYXRhICYmIHR5cGVvZiBwYXJzZWREYXRhID09PSAnb2JqZWN0JylcbiAgICByZXR1cm4gcmVkYWN0RGF0YShwYXJzZWREYXRhLCBmbGFnKVxuXG5cbiAgcmV0dXJuIGZsYWcgPyByZWRhY3RlZEtleXdvcmQgOiBkYXRhXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEVycm9yUmVzcG9uc2Uge1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGZ1bGxVUkw6IHN0cmluZztcbiAgcmVzcG9uc2U6IHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyO1xuICAgIHN0YXR1c01lc3NhZ2U6IHN0cmluZztcbiAgICBkYXRhOiBhbnk7XG4gIH07XG4gIHJlcXVlc3Q6IHtcbiAgICBiYXNlVVJMOiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIGRhdGE6IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEF4aW9zRXJyb3JSZWRhY3RvciB7XG4gIHJlZGFjdFJlcXVlc3REYXRhOiBib29sZWFuXG4gIHJlZGFjdFJlc3BvbnNlRGF0YTogYm9vbGVhblxuICByZWRhY3RRdWVyeURhdGE6IGJvb2xlYW5cblxuICBjb25zdHJ1Y3RvcihyZWRhY3RSZXF1ZXN0RGF0YSA9IHRydWUsIHJlZGFjdFJlc3BvbnNlRGF0YSA9IHRydWUsIHJlZGFjdFF1ZXJ5RGF0YSA9IHRydWUpIHtcbiAgICB0aGlzLnJlZGFjdFF1ZXJ5RGF0YSA9IHJlZGFjdFF1ZXJ5RGF0YVxuICAgIHRoaXMucmVkYWN0UmVxdWVzdERhdGEgPSByZWRhY3RSZXF1ZXN0RGF0YVxuICAgIHRoaXMucmVkYWN0UmVzcG9uc2VEYXRhID0gcmVkYWN0UmVzcG9uc2VEYXRhXG4gIH1cblxuICBza2lwUmVxdWVzdERhdGEoKTogQXhpb3NFcnJvclJlZGFjdG9yIHtcbiAgICB0aGlzLnJlZGFjdFJlcXVlc3REYXRhID0gZmFsc2VcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2tpcFJlc3BvbnNlRGF0YSgpOiBBeGlvc0Vycm9yUmVkYWN0b3Ige1xuICAgIHRoaXMucmVkYWN0UmVzcG9uc2VEYXRhID0gZmFsc2VcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2tpcFF1ZXJ5RGF0YSgpOiBBeGlvc0Vycm9yUmVkYWN0b3Ige1xuICAgIHRoaXMucmVkYWN0UXVlcnlEYXRhID0gZmFsc2VcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHJpdmF0ZSByZWRhY3RVcmxRdWVyeVBhcmFtcyh1cmw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgaWYgKCF1cmwpXG4gICAgICByZXR1cm4gJydcblxuICAgIHJldHVybiB0aGlzLnJlZGFjdFF1ZXJ5RGF0YSA/IHVybC5yZXBsYWNlKHF1ZXJ5UGFyYW1zUmVnZXgsIHJlZGFjdGVkS2V5d29yZCkgOiB1cmxcbiAgfVxuXG5cbiAgcmVkYWN0RXJyb3IoZXJyb3I6IEF4aW9zRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkKTogKEh0dHBFcnJvclJlc3BvbnNlIHwgbnVsbCB8IHVuZGVmaW5lZCB8IEVycm9yKSB7XG4gICAgaWYgKCFlcnJvciB8fCAhZXJyb3IuaXNBeGlvc0Vycm9yKVxuICAgICAgcmV0dXJuIGVycm9yXG5cbiAgICBjb25zdCBiYXNlVVJMID0gdGhpcy5yZWRhY3RVcmxRdWVyeVBhcmFtcyhlcnJvci5jb25maWc/LmJhc2VVUkwpXG4gICAgY29uc3QgcGF0aCA9IHRoaXMucmVkYWN0VXJsUXVlcnlQYXJhbXMoZXJyb3IuY29uZmlnPy51cmwpXG4gICAgY29uc3QgcXVlcnlQYXRoID0gZXh0cmFjdFF1ZXJ5UGF0aChwYXRoKSA/ICcnIDogZXh0cmFjdFF1ZXJ5UGF0aChlcnJvci5yZXF1ZXN0Py5wYXRoKVxuICAgIGNvbnN0IGZ1bGxVUkwgPSB0aGlzLnJlZGFjdFVybFF1ZXJ5UGFyYW1zKGpvaW5VUkwoYmFzZVVSTCwgcGF0aCwgcXVlcnlQYXRoKSlcblxuICAgIHJldHVybiB7XG4gICAgICBmdWxsVVJMLFxuICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgIHN0YXR1c0NvZGU6IGVycm9yLnJlc3BvbnNlPy5zdGF0dXMsXG4gICAgICAgIHN0YXR1c01lc3NhZ2U6IGVycm9yLnJlc3BvbnNlPy5zdGF0dXNUZXh0IHx8ICcnLFxuICAgICAgICBkYXRhOiByZWRhY3REYXRhKGVycm9yLnJlc3BvbnNlPy5kYXRhLCB0aGlzLnJlZGFjdFJlc3BvbnNlRGF0YSksXG4gICAgICB9LFxuICAgICAgcmVxdWVzdDoge1xuICAgICAgICBiYXNlVVJMLFxuICAgICAgICBwYXRoLFxuICAgICAgICBtZXRob2Q6IGVycm9yLmNvbmZpZz8ubWV0aG9kIHx8ICcnLFxuICAgICAgICBkYXRhOiByZWRhY3REYXRhKGVycm9yLmNvbmZpZz8uZGF0YSwgdGhpcy5yZWRhY3RSZXF1ZXN0RGF0YSksXG4gICAgICB9LFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JJbnRlcmNlcHRvcigpOiAoKGVycm9yOiBBeGlvc0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCk9PiBQcm9taXNlPEh0dHBFcnJvclJlc3BvbnNlIHwgbnVsbCB8IHVuZGVmaW5lZCB8IEVycm9yPikge1xuICBjb25zdCByZWRhY3RvciA9IG5ldyBBeGlvc0Vycm9yUmVkYWN0b3IoKVxuXG4gIHJldHVybiBmdW5jdGlvbiAoZXJyb3I6IEF4aW9zRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxIdHRwRXJyb3JSZXNwb25zZSB8IG51bGwgfCB1bmRlZmluZWQgfCBFcnJvcj4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZWRhY3Rvci5yZWRhY3RFcnJvcihlcnJvcikpXG4gIH1cbn0iXX0=
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.3",
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.1.410",
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
  }