@frontegg/js 7.32.0 → 7.33.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.
@@ -38,6 +38,7 @@ export declare class FronteggApp {
38
38
  */
39
39
  private setEntitlementsOptions;
40
40
  private setSessionContext;
41
+ private dispatchErrorByRequestName;
41
42
  loadAdminBoxMetadata: () => Promise<void>;
42
43
  /**
43
44
  * Loading required information on first load, mainly for refresh token and initial data.
@@ -4,7 +4,7 @@ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
4
  import _createClass from "@babel/runtime/helpers/esm/createClass";
5
5
  import _regeneratorRuntime from "@babel/runtime/regenerator";
6
6
  import * as FronteggReduxStore from '@frontegg/redux-store';
7
- import { createStore, getFeatureEntitlements as _getFeatureEntitlements, getPermissionEntitlements as _getPermissionEntitlements, isSteppedUp as _isSteppedUp, redirectByStepUpUrl } from '@frontegg/redux-store';
7
+ import { createStore, getFeatureEntitlements as _getFeatureEntitlements, getPermissionEntitlements as _getPermissionEntitlements, isSteppedUp as _isSteppedUp, redirectByStepUpUrl, retryIfNeeded, DEFAULT_RETRY_CONFIG, errorTraceId, REQUEST_NAME } from '@frontegg/redux-store';
8
8
  import * as FronteggTypes from '@frontegg/types';
9
9
  import { Metadata } from '@frontegg/types';
10
10
  import { formatName, restoreSearchParams } from '../utils';
@@ -48,34 +48,45 @@ export var FronteggApp = /*#__PURE__*/function () {
48
48
  while (1) switch (_context.prev = _context.next) {
49
49
  case 0:
50
50
  if (_this.options.metadata) {
51
- _context.next = 14;
51
+ _context.next = 21;
52
52
  break;
53
53
  }
54
54
  _context.prev = 1;
55
55
  _context.next = 4;
56
- return _this.fetchClient.get('/metadata', {
57
- entityName: 'adminBox'
58
- });
56
+ return retryIfNeeded(function () {
57
+ return _this.fetchClient.get('/metadata', {
58
+ entityName: 'adminBox'
59
+ });
60
+ }, DEFAULT_RETRY_CONFIG);
59
61
  case 4:
60
62
  data = _context.sent;
61
63
  metadata = (_data$rows$0$configur = data == null ? void 0 : (_data$rows = data.rows) == null ? void 0 : (_data$rows$ = _data$rows[0]) == null ? void 0 : _data$rows$.configuration) != null ? _data$rows$0$configur : {};
62
- _context.next = 8;
63
- return getOverriddenMetadata(metadata, _this.fetchClient);
64
- case 8:
64
+ _context.prev = 6;
65
+ _context.next = 9;
66
+ return getOverriddenMetadata(metadata, _this.fetchClient, DEFAULT_RETRY_CONFIG);
67
+ case 9:
65
68
  _this.options.metadata = _context.sent;
66
- _context.next = 14;
69
+ _context.next = 15;
67
70
  break;
68
- case 11:
69
- _context.prev = 11;
70
- _context.t0 = _context["catch"](1);
71
- console.error('failed to get admin portal metadata', _context.t0);
72
- case 14:
73
- Metadata.set(_this.options.metadata, _this.name);
71
+ case 12:
72
+ _context.prev = 12;
73
+ _context.t0 = _context["catch"](6);
74
+ console.error('failed to get admin portal overridden metadata', _context.t0);
74
75
  case 15:
76
+ _context.next = 21;
77
+ break;
78
+ case 17:
79
+ _context.prev = 17;
80
+ _context.t1 = _context["catch"](1);
81
+ console.error('failed to get admin portal metadata', _context.t1);
82
+ _this.dispatchErrorByRequestName(_context.t1, REQUEST_NAME.LOAD_ADMIN_BOX_METADATA);
83
+ case 21:
84
+ Metadata.set(_this.options.metadata, _this.name);
85
+ case 22:
75
86
  case "end":
76
87
  return _context.stop();
77
88
  }
78
- }, _callee, null, [[1, 11]]);
89
+ }, _callee, null, [[1, 17], [6, 12]]);
79
90
  }));
80
91
  this.requestAuthorize = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
81
92
  var _this$options$authOpt, _this$options$authOpt2;
@@ -118,25 +129,28 @@ export var FronteggApp = /*#__PURE__*/function () {
118
129
  break;
119
130
  }
120
131
  FronteggRestApi.FeatureFlags.set(mockFlagsList, _this.name);
121
- _context3.next = 15;
132
+ _context3.next = 16;
122
133
  break;
123
134
  case 4:
124
135
  _context3.prev = 4;
125
136
  _context3.next = 7;
126
- return _this.apiClient.featureFlags.loadFeatureFlags();
137
+ return retryIfNeeded(function () {
138
+ return _this.apiClient.featureFlags.loadFeatureFlags();
139
+ }, DEFAULT_RETRY_CONFIG);
127
140
  case 7:
128
141
  flags = _context3.sent;
129
142
  if (_this.options.overrideFeatureFlags) {
130
143
  Object.assign(flags, _this.options.overrideFeatureFlags);
131
144
  }
132
145
  FronteggRestApi.FeatureFlags.set(flags, _this.name);
133
- _context3.next = 15;
146
+ _context3.next = 16;
134
147
  break;
135
148
  case 12:
136
149
  _context3.prev = 12;
137
150
  _context3.t0 = _context3["catch"](4);
138
151
  console.error('failed to get admin portal feature flags', _context3.t0);
139
- case 15:
152
+ _this.dispatchErrorByRequestName(_context3.t0, REQUEST_NAME.LOAD_FEATURE_FLAGS);
153
+ case 16:
140
154
  case "end":
141
155
  return _context3.stop();
142
156
  }
@@ -241,6 +255,17 @@ export var FronteggApp = /*#__PURE__*/function () {
241
255
  value: function setSessionContext(sessionContext) {
242
256
  ContextHolder["for"](this.name).setSessionContext(Object.assign({}, sessionContext));
243
257
  }
258
+ }, {
259
+ key: "dispatchErrorByRequestName",
260
+ value: function dispatchErrorByRequestName(error, requestName) {
261
+ this.store.dispatch({
262
+ type: 'auth/setErrorByRequestName',
263
+ payload: {
264
+ requestName: requestName,
265
+ traceId: errorTraceId(error)
266
+ }
267
+ });
268
+ }
244
269
  }, {
245
270
  key: "initContainers",
246
271
  value: function () {
@@ -1,5 +1,6 @@
1
1
  import { FronteggMetadata } from '@frontegg/types';
2
2
  import { FetchClient } from '@frontegg/rest-api';
3
+ import { RetryConfig } from '@frontegg/redux-store';
3
4
  /**
4
5
  * load gtm scripts by using metadata gtm keys
5
6
  * @param fronteggAppName
@@ -10,4 +11,4 @@ export declare const loadGTM: (fronteggAppName: string) => void;
10
11
  * this function will get metadata overrides from the metadataOverrides.url and will return a new object with override of old metadata
11
12
  * @param fetchClient
12
13
  */
13
- export declare const getOverriddenMetadata: (metadata: FronteggMetadata, fetchClient: FetchClient) => Promise<FronteggMetadata>;
14
+ export declare const getOverriddenMetadata: (metadata: FronteggMetadata, fetchClient: FetchClient, retryConfig?: RetryConfig) => Promise<FronteggMetadata>;
@@ -2,6 +2,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  import { Metadata } from '@frontegg/types';
4
4
  import deepMerge from 'deepmerge';
5
+ import { retryIfNeeded } from '@frontegg/redux-store';
5
6
 
6
7
  /**
7
8
  * To prevent XSS attack, this function check for gtm key validity
@@ -41,7 +42,7 @@ export var loadGTM = function loadGTM(fronteggAppName) {
41
42
  * @param fetchClient
42
43
  */
43
44
  export var getOverriddenMetadata = /*#__PURE__*/function () {
44
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(metadata, fetchClient) {
45
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(metadata, fetchClient, retryConfig) {
45
46
  var _metadata$metadataOve;
46
47
  var overrideUrl, overrideData, overriddenMetadata;
47
48
  return _regeneratorRuntime.wrap(function _callee$(_context) {
@@ -56,11 +57,13 @@ export var getOverriddenMetadata = /*#__PURE__*/function () {
56
57
  case 3:
57
58
  _context.prev = 3;
58
59
  _context.next = 6;
59
- return fetchClient.sendRequest({
60
- url: overrideUrl,
61
- method: 'GET',
62
- credentials: 'omit'
63
- });
60
+ return retryIfNeeded(function () {
61
+ return fetchClient.sendRequest({
62
+ url: overrideUrl,
63
+ method: 'GET',
64
+ credentials: 'omit'
65
+ });
66
+ }, retryConfig);
64
67
  case 6:
65
68
  overrideData = _context.sent;
66
69
  if (!overrideData) {
@@ -84,7 +87,7 @@ export var getOverriddenMetadata = /*#__PURE__*/function () {
84
87
  }
85
88
  }, _callee, null, [[3, 12]]);
86
89
  }));
87
- return function getOverriddenMetadata(_x, _x2) {
90
+ return function getOverriddenMetadata(_x, _x2, _x3) {
88
91
  return _ref3.apply(this, arguments);
89
92
  };
90
93
  }();
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.32.0
1
+ /** @license Frontegg v7.33.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.
@@ -55,34 +55,45 @@ var FronteggApp = /*#__PURE__*/function () {
55
55
  while (1) switch (_context.prev = _context.next) {
56
56
  case 0:
57
57
  if (_this.options.metadata) {
58
- _context.next = 14;
58
+ _context.next = 21;
59
59
  break;
60
60
  }
61
61
  _context.prev = 1;
62
62
  _context.next = 4;
63
- return _this.fetchClient.get('/metadata', {
64
- entityName: 'adminBox'
65
- });
63
+ return (0, FronteggReduxStore.retryIfNeeded)(function () {
64
+ return _this.fetchClient.get('/metadata', {
65
+ entityName: 'adminBox'
66
+ });
67
+ }, FronteggReduxStore.DEFAULT_RETRY_CONFIG);
66
68
  case 4:
67
69
  data = _context.sent;
68
70
  metadata = (_data$rows$0$configur = data == null ? void 0 : (_data$rows = data.rows) == null ? void 0 : (_data$rows$ = _data$rows[0]) == null ? void 0 : _data$rows$.configuration) != null ? _data$rows$0$configur : {};
69
- _context.next = 8;
70
- return (0, _utils2.getOverriddenMetadata)(metadata, _this.fetchClient);
71
- case 8:
71
+ _context.prev = 6;
72
+ _context.next = 9;
73
+ return (0, _utils2.getOverriddenMetadata)(metadata, _this.fetchClient, FronteggReduxStore.DEFAULT_RETRY_CONFIG);
74
+ case 9:
72
75
  _this.options.metadata = _context.sent;
73
- _context.next = 14;
76
+ _context.next = 15;
74
77
  break;
75
- case 11:
76
- _context.prev = 11;
77
- _context.t0 = _context["catch"](1);
78
- console.error('failed to get admin portal metadata', _context.t0);
79
- case 14:
80
- FronteggTypes.Metadata.set(_this.options.metadata, _this.name);
78
+ case 12:
79
+ _context.prev = 12;
80
+ _context.t0 = _context["catch"](6);
81
+ console.error('failed to get admin portal overridden metadata', _context.t0);
81
82
  case 15:
83
+ _context.next = 21;
84
+ break;
85
+ case 17:
86
+ _context.prev = 17;
87
+ _context.t1 = _context["catch"](1);
88
+ console.error('failed to get admin portal metadata', _context.t1);
89
+ _this.dispatchErrorByRequestName(_context.t1, FronteggReduxStore.REQUEST_NAME.LOAD_ADMIN_BOX_METADATA);
90
+ case 21:
91
+ FronteggTypes.Metadata.set(_this.options.metadata, _this.name);
92
+ case 22:
82
93
  case "end":
83
94
  return _context.stop();
84
95
  }
85
- }, _callee, null, [[1, 11]]);
96
+ }, _callee, null, [[1, 17], [6, 12]]);
86
97
  }));
87
98
  this.requestAuthorize = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
88
99
  var _this$options$authOpt, _this$options$authOpt2;
@@ -125,25 +136,28 @@ var FronteggApp = /*#__PURE__*/function () {
125
136
  break;
126
137
  }
127
138
  FronteggRestApi.FeatureFlags.set(_mockFlagsList.mockFlagsList, _this.name);
128
- _context3.next = 15;
139
+ _context3.next = 16;
129
140
  break;
130
141
  case 4:
131
142
  _context3.prev = 4;
132
143
  _context3.next = 7;
133
- return _this.apiClient.featureFlags.loadFeatureFlags();
144
+ return (0, FronteggReduxStore.retryIfNeeded)(function () {
145
+ return _this.apiClient.featureFlags.loadFeatureFlags();
146
+ }, FronteggReduxStore.DEFAULT_RETRY_CONFIG);
134
147
  case 7:
135
148
  flags = _context3.sent;
136
149
  if (_this.options.overrideFeatureFlags) {
137
150
  Object.assign(flags, _this.options.overrideFeatureFlags);
138
151
  }
139
152
  FronteggRestApi.FeatureFlags.set(flags, _this.name);
140
- _context3.next = 15;
153
+ _context3.next = 16;
141
154
  break;
142
155
  case 12:
143
156
  _context3.prev = 12;
144
157
  _context3.t0 = _context3["catch"](4);
145
158
  console.error('failed to get admin portal feature flags', _context3.t0);
146
- case 15:
159
+ _this.dispatchErrorByRequestName(_context3.t0, FronteggReduxStore.REQUEST_NAME.LOAD_FEATURE_FLAGS);
160
+ case 16:
147
161
  case "end":
148
162
  return _context3.stop();
149
163
  }
@@ -248,6 +262,17 @@ var FronteggApp = /*#__PURE__*/function () {
248
262
  value: function setSessionContext(sessionContext) {
249
263
  FronteggRestApi.ContextHolder["for"](this.name).setSessionContext(Object.assign({}, sessionContext));
250
264
  }
265
+ }, {
266
+ key: "dispatchErrorByRequestName",
267
+ value: function dispatchErrorByRequestName(error, requestName) {
268
+ this.store.dispatch({
269
+ type: 'auth/setErrorByRequestName',
270
+ payload: {
271
+ requestName: requestName,
272
+ traceId: (0, FronteggReduxStore.errorTraceId)(error)
273
+ }
274
+ });
275
+ }
251
276
  }, {
252
277
  key: "initContainers",
253
278
  value: function () {
@@ -9,6 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _types = require("@frontegg/types");
11
11
  var _deepmerge = _interopRequireDefault(require("deepmerge"));
12
+ var _reduxStore = require("@frontegg/redux-store");
12
13
  /**
13
14
  * To prevent XSS attack, this function check for gtm key validity
14
15
  * XSS attack may happen if values are injected by postman because we don't have validity check in the BE
@@ -48,7 +49,7 @@ var loadGTM = function loadGTM(fronteggAppName) {
48
49
  */
49
50
  exports.loadGTM = loadGTM;
50
51
  var getOverriddenMetadata = /*#__PURE__*/function () {
51
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(metadata, fetchClient) {
52
+ var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(metadata, fetchClient, retryConfig) {
52
53
  var _metadata$metadataOve;
53
54
  var overrideUrl, overrideData, overriddenMetadata;
54
55
  return _regenerator["default"].wrap(function _callee$(_context) {
@@ -63,11 +64,13 @@ var getOverriddenMetadata = /*#__PURE__*/function () {
63
64
  case 3:
64
65
  _context.prev = 3;
65
66
  _context.next = 6;
66
- return fetchClient.sendRequest({
67
- url: overrideUrl,
68
- method: 'GET',
69
- credentials: 'omit'
70
- });
67
+ return (0, _reduxStore.retryIfNeeded)(function () {
68
+ return fetchClient.sendRequest({
69
+ url: overrideUrl,
70
+ method: 'GET',
71
+ credentials: 'omit'
72
+ });
73
+ }, retryConfig);
71
74
  case 6:
72
75
  overrideData = _context.sent;
73
76
  if (!overrideData) {
@@ -91,7 +94,7 @@ var getOverriddenMetadata = /*#__PURE__*/function () {
91
94
  }
92
95
  }, _callee, null, [[3, 12]]);
93
96
  }));
94
- return function getOverriddenMetadata(_x, _x2) {
97
+ return function getOverriddenMetadata(_x, _x2, _x3) {
95
98
  return _ref3.apply(this, arguments);
96
99
  };
97
100
  }();
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.32.0
1
+ /** @license Frontegg v7.33.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/node/version.js CHANGED
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
  var _default = {
8
- cdnVersion: '7.32.0'
8
+ cdnVersion: '7.33.0'
9
9
  };
10
10
  exports["default"] = _default;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@frontegg/js",
3
- "version": "7.32.0",
3
+ "version": "7.33.0",
4
4
  "main": "./node/index.js",
5
5
  "license": "MIT",
6
6
  "author": "Frontegg LTD",
7
7
  "dependencies": {
8
8
  "@babel/runtime": "^7.18.6",
9
- "@frontegg/types": "7.32.0"
9
+ "@frontegg/types": "7.33.0"
10
10
  },
11
11
  "browserslist": {
12
12
  "production": [