@frontegg/rest-api 7.39.0 → 7.40.0-alpha.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/FetchClient.js CHANGED
@@ -118,11 +118,13 @@ export class FetchClient {
118
118
  return new Promise(() => {});
119
119
  }
120
120
  if (!response.ok) {
121
- var _context$logLevel, _context$logLevel2;
121
+ var _errorMessage, _errorMessage2, _context$logLevel, _context$logLevel2;
122
122
  if (response.status === 413) {
123
- throw new FronteggApiError('Error request is too large', response.status, this.getResponseTraceId(response));
123
+ throw new FronteggApiError('Error request is too large', response.status, this.getResponseTraceId(response), undefined);
124
124
  }
125
125
  let errorMessage;
126
+ let errorCode;
127
+ let errorContext;
126
128
  let isJsonResponse = true;
127
129
  try {
128
130
  errorMessage = await response.text();
@@ -130,13 +132,19 @@ export class FetchClient {
130
132
  } catch (e) {
131
133
  isJsonResponse = false;
132
134
  }
135
+ if ((_errorMessage = errorMessage) != null && _errorMessage.errorCode) {
136
+ errorCode = errorMessage.errorCode;
137
+ }
138
+ if ((_errorMessage2 = errorMessage) != null && _errorMessage2.errorContext && typeof errorMessage.errorContext === 'object') {
139
+ errorContext = errorMessage.errorContext;
140
+ }
133
141
  if (errorMessage.errors) {
134
142
  errorMessage = errorMessage.errors.join(', ');
135
143
  } else if (typeof errorMessage !== 'string') {
136
144
  errorMessage = `Error ${response.status} - ${response.statusText}`;
137
145
  }
138
146
  if (response.status >= 400 && response.status < 500 && ['warn'].includes((_context$logLevel = context.logLevel) != null ? _context$logLevel : '')) console.warn(errorMessage);else if (response.status === 500 && ['warn', 'error'].includes((_context$logLevel2 = context.logLevel) != null ? _context$logLevel2 : '')) console.error(errorMessage);
139
- throw new FronteggApiError(isJsonResponse ? errorMessage : GENERIC_ERROR_MESSAGE, response.status, this.getResponseTraceId(response));
147
+ throw new FronteggApiError(isJsonResponse ? errorMessage : GENERIC_ERROR_MESSAGE, response.status, this.getResponseTraceId(response), errorCode, errorContext);
140
148
  }
141
149
  if (opts.responseType === 'stream') {
142
150
  return response.body;
package/error.d.ts CHANGED
@@ -1,7 +1,13 @@
1
+ export type FronteggErrorCode = string;
2
+ export type FronteggErrorContext = Record<string, unknown>;
1
3
  export declare class FronteggApiError extends Error {
2
4
  private readonly _statusCode;
3
5
  private readonly _traceId;
4
- constructor(message: string, statusCode: number, traceId: string | null);
6
+ private readonly _errorCode;
7
+ private readonly _errorContext;
8
+ constructor(message: string, statusCode: number, traceId: string | null, errorCode?: FronteggErrorCode, errorContext?: FronteggErrorContext);
5
9
  get statusCode(): number;
6
10
  get traceId(): string | null;
11
+ get errorCode(): FronteggErrorCode | undefined;
12
+ get errorContext(): FronteggErrorContext | undefined;
7
13
  }
package/error.js CHANGED
@@ -1,10 +1,14 @@
1
1
  export class FronteggApiError extends Error {
2
- constructor(message, statusCode, traceId) {
2
+ constructor(message, statusCode, traceId, errorCode, errorContext) {
3
3
  super(message);
4
4
  this._statusCode = void 0;
5
5
  this._traceId = void 0;
6
+ this._errorCode = void 0;
7
+ this._errorContext = void 0;
6
8
  this._statusCode = statusCode;
7
9
  this._traceId = traceId;
10
+ this._errorCode = errorCode;
11
+ this._errorContext = errorContext;
8
12
  }
9
13
  get statusCode() {
10
14
  return this._statusCode;
@@ -12,4 +16,10 @@ export class FronteggApiError extends Error {
12
16
  get traceId() {
13
17
  return this._traceId;
14
18
  }
19
+ get errorCode() {
20
+ return this._errorCode;
21
+ }
22
+ get errorContext() {
23
+ return this._errorContext;
24
+ }
15
25
  }
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.39.0
1
+ /** @license Frontegg v7.40.0-alpha.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -124,11 +124,13 @@ class FetchClient {
124
124
  return new Promise(() => {});
125
125
  }
126
126
  if (!response.ok) {
127
- var _context$logLevel, _context$logLevel2;
127
+ var _errorMessage, _errorMessage2, _context$logLevel, _context$logLevel2;
128
128
  if (response.status === 413) {
129
- throw new _error.FronteggApiError('Error request is too large', response.status, this.getResponseTraceId(response));
129
+ throw new _error.FronteggApiError('Error request is too large', response.status, this.getResponseTraceId(response), undefined);
130
130
  }
131
131
  let errorMessage;
132
+ let errorCode;
133
+ let errorContext;
132
134
  let isJsonResponse = true;
133
135
  try {
134
136
  errorMessage = await response.text();
@@ -136,13 +138,19 @@ class FetchClient {
136
138
  } catch (e) {
137
139
  isJsonResponse = false;
138
140
  }
141
+ if ((_errorMessage = errorMessage) != null && _errorMessage.errorCode) {
142
+ errorCode = errorMessage.errorCode;
143
+ }
144
+ if ((_errorMessage2 = errorMessage) != null && _errorMessage2.errorContext && typeof errorMessage.errorContext === 'object') {
145
+ errorContext = errorMessage.errorContext;
146
+ }
139
147
  if (errorMessage.errors) {
140
148
  errorMessage = errorMessage.errors.join(', ');
141
149
  } else if (typeof errorMessage !== 'string') {
142
150
  errorMessage = `Error ${response.status} - ${response.statusText}`;
143
151
  }
144
152
  if (response.status >= 400 && response.status < 500 && ['warn'].includes((_context$logLevel = context.logLevel) != null ? _context$logLevel : '')) console.warn(errorMessage);else if (response.status === 500 && ['warn', 'error'].includes((_context$logLevel2 = context.logLevel) != null ? _context$logLevel2 : '')) console.error(errorMessage);
145
- throw new _error.FronteggApiError(isJsonResponse ? errorMessage : _constants.GENERIC_ERROR_MESSAGE, response.status, this.getResponseTraceId(response));
153
+ throw new _error.FronteggApiError(isJsonResponse ? errorMessage : _constants.GENERIC_ERROR_MESSAGE, response.status, this.getResponseTraceId(response), errorCode, errorContext);
146
154
  }
147
155
  if (opts.responseType === 'stream') {
148
156
  return response.body;
package/node/error.js CHANGED
@@ -5,12 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.FronteggApiError = void 0;
7
7
  class FronteggApiError extends Error {
8
- constructor(message, statusCode, traceId) {
8
+ constructor(message, statusCode, traceId, errorCode, errorContext) {
9
9
  super(message);
10
10
  this._statusCode = void 0;
11
11
  this._traceId = void 0;
12
+ this._errorCode = void 0;
13
+ this._errorContext = void 0;
12
14
  this._statusCode = statusCode;
13
15
  this._traceId = traceId;
16
+ this._errorCode = errorCode;
17
+ this._errorContext = errorContext;
14
18
  }
15
19
  get statusCode() {
16
20
  return this._statusCode;
@@ -18,5 +22,11 @@ class FronteggApiError extends Error {
18
22
  get traceId() {
19
23
  return this._traceId;
20
24
  }
25
+ get errorCode() {
26
+ return this._errorCode;
27
+ }
28
+ get errorContext() {
29
+ return this._errorContext;
30
+ }
21
31
  }
22
32
  exports.FronteggApiError = FronteggApiError;
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.39.0
1
+ /** @license Frontegg v7.40.0-alpha.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontegg/rest-api",
3
- "version": "7.39.0",
3
+ "version": "7.40.0-alpha.0",
4
4
  "main": "./node/index.js",
5
5
  "license": "MIT",
6
6
  "author": "Frontegg LTD",
@@ -1,3 +1,4 @@
1
+ import { FronteggApiError } from '../error';
1
2
  import { IFronteggRecord } from '../interfaces';
2
3
  export interface ReportSchedule {
3
4
  interval: 'daily' | 'weekly' | 'monthly' | 'custom';
@@ -33,7 +34,7 @@ export interface DataFilterText extends DataFilterBase {
33
34
  placeholder?: string;
34
35
  defaultValue?: string;
35
36
  validation?: 'email' | 'url' | 'phone' | string;
36
- validationError?: string;
37
+ validationError?: FronteggApiError;
37
38
  }
38
39
  export interface DataFilterNumber extends DataFilterBase {
39
40
  type: 'number';