@frontegg/js 6.10.0 → 6.11.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.
@@ -1,4 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
6
  import { createFronteggStore } from '@frontegg/redux-store';
3
7
  import { Metadata } from '@frontegg/types';
4
8
  import { formatName } from '../utils';
@@ -7,15 +11,23 @@ import { fetch as FronteggFetch } from '@frontegg/rest-api';
7
11
  import * as FronteggRestApi from '@frontegg/rest-api';
8
12
  import * as FronteggTypes from '@frontegg/types';
9
13
  import versions from '../version';
10
- export class FronteggApp {
11
- constructor(_options, name, iframeRendering = false) {
12
- var _this$options$authOpt, _this$options$store, _this$options$authOpt2, _this$options$auditsO;
14
+ export var FronteggApp = /*#__PURE__*/function () {
15
+ function FronteggApp(_options, name) {
16
+ var _this = this,
17
+ _this$options$authOpt,
18
+ _this$options$store,
19
+ _this$options$authOpt2,
20
+ _this$options$auditsO;
21
+
22
+ var iframeRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
23
+
24
+ _classCallCheck(this, FronteggApp);
13
25
 
14
26
  this.name = void 0;
15
27
  this.iframeRendering = void 0;
16
28
  this.options = void 0;
17
29
  this.loading = true;
18
- this.cdnUrl = `https://assets.frontegg.com/admin-box/${versions.cdnVersion}`;
30
+ this.cdnUrl = "https://assets.frontegg.com/admin-box/".concat(versions.cdnVersion);
19
31
  this.customElementName = '';
20
32
  this.adminPortalEl = void 0;
21
33
  this.adminPortalRenderer = void 0;
@@ -30,51 +42,99 @@ export class FronteggApp {
30
42
  this.flags = {};
31
43
  this.loadingListeners = [];
32
44
  this.updateLocalizations = void 0;
33
-
34
- this.loadAdminBoxMetadata = async () => {
35
- const {
36
- Get
37
- } = FronteggFetch;
38
-
39
- if (!this.options.metadata) {
40
- try {
41
- var _data$rows$0$configur, _data$rows, _data$rows$;
42
-
43
- const data = await Get(`/metadata`, {
44
- entityName: 'adminBox'
45
- });
46
- this.options.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 : {};
47
- } catch (e) {
48
- console.error('failed to get admin portal metadata', e);
45
+ this.loadAdminBoxMetadata = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
46
+ var Get, _data$rows$0$configur, _data$rows, _data$rows$, data;
47
+
48
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
49
+ while (1) {
50
+ switch (_context.prev = _context.next) {
51
+ case 0:
52
+ Get = FronteggFetch.Get;
53
+
54
+ if (_this.options.metadata) {
55
+ _context.next = 12;
56
+ break;
57
+ }
58
+
59
+ _context.prev = 2;
60
+ _context.next = 5;
61
+ return Get("/metadata", {
62
+ entityName: 'adminBox'
63
+ });
64
+
65
+ case 5:
66
+ data = _context.sent;
67
+ _this.options.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 : {};
68
+ _context.next = 12;
69
+ break;
70
+
71
+ case 9:
72
+ _context.prev = 9;
73
+ _context.t0 = _context["catch"](2);
74
+ console.error('failed to get admin portal metadata', _context.t0);
75
+
76
+ case 12:
77
+ Metadata.set(_this.options.metadata, _this.name);
78
+
79
+ case 13:
80
+ case "end":
81
+ return _context.stop();
82
+ }
49
83
  }
50
- }
51
-
52
- Metadata.set(this.options.metadata, this.name);
53
- };
54
-
55
- this.requestAuthorize = async () => {
56
- if (!this.options.hostedLoginBox && !this.options.builderMode && this.options.framework !== 'nextjs') {
57
- this.store.dispatch({
58
- type: 'auth/requestAuthorize',
59
- payload: true
60
- });
61
- }
62
- };
63
-
64
- this.loadFeatureFlags = async () => {
65
- try {
66
- this.flags = await FronteggRestApi.loadFeatureFlags();
67
- } catch (e) {
68
- console.error('failed to get admin portal feature flags', e);
69
- }
70
- };
84
+ }, _callee, null, [[2, 9]]);
85
+ }));
86
+ this.requestAuthorize = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
87
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
88
+ while (1) {
89
+ switch (_context2.prev = _context2.next) {
90
+ case 0:
91
+ if (!_this.options.hostedLoginBox && !_this.options.builderMode && _this.options.framework !== 'nextjs') {
92
+ _this.store.dispatch({
93
+ type: 'auth/requestAuthorize',
94
+ payload: true
95
+ });
96
+ }
97
+
98
+ case 1:
99
+ case "end":
100
+ return _context2.stop();
101
+ }
102
+ }
103
+ }, _callee2);
104
+ }));
105
+ this.loadFeatureFlags = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
106
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
107
+ while (1) {
108
+ switch (_context3.prev = _context3.next) {
109
+ case 0:
110
+ _context3.prev = 0;
111
+ _context3.next = 3;
112
+ return FronteggRestApi.loadFeatureFlags();
113
+
114
+ case 3:
115
+ _this.flags = _context3.sent;
116
+ _context3.next = 9;
117
+ break;
118
+
119
+ case 6:
120
+ _context3.prev = 6;
121
+ _context3.t0 = _context3["catch"](0);
122
+ console.error('failed to get admin portal feature flags', _context3.t0);
123
+
124
+ case 9:
125
+ case "end":
126
+ return _context3.stop();
127
+ }
128
+ }
129
+ }, _callee3, null, [[0, 6]]);
130
+ }));
71
131
 
72
- this.updateLocalizationsSetter = localizationUpdateFn => {
73
- this.updateLocalizations = localizationUpdateFn;
132
+ this.updateLocalizationsSetter = function (localizationUpdateFn) {
133
+ _this.updateLocalizations = localizationUpdateFn;
74
134
  };
75
135
 
76
- let appName = formatName(name);
77
- let customElementName = `frontegg-app-${appName}`;
136
+ var appName = formatName(name);
137
+ var customElementName = "frontegg-app-".concat(appName);
78
138
  this.iframeRendering = iframeRendering;
79
139
  this.name = appName;
80
140
  this.options = _extends({}, _options, {
@@ -88,7 +148,7 @@ export class FronteggApp {
88
148
  }
89
149
 
90
150
  this.customElementName = customElementName;
91
- const authOptions = this.options.authOptions ? _extends({}, this.options.authOptions, {
151
+ var authOptions = this.options.authOptions ? _extends({}, this.options.authOptions, {
92
152
  hostedLoginBox: this.options.hostedLoginBox
93
153
  }) : {
94
154
  hostedLoginBox: this.options.hostedLoginBox
@@ -103,140 +163,248 @@ export class FronteggApp {
103
163
  AppHolder.setInstance(appName, this);
104
164
  }
105
165
 
106
- async initContainers(elements) {
107
- this.adminPortalEl = elements.adminPortalEl;
108
- this.loginBoxEl = elements.loginBoxEl;
109
- this.checkoutDialogEl = elements.checkoutDialogEl;
110
- this.adminPortalContainer = elements.adminPortalContainer;
111
- this.loginBoxContainer = elements.loginBoxContainer;
112
- this.checkoutDialogContainer = elements.checkoutDialogContainer;
113
-
114
- try {
115
- document.body.classList.add('frontegg-loading');
116
- } catch (e) {}
117
-
118
- await Promise.all([this.loadAdminBoxMetadata(), this.requestAuthorize(), this.loadFeatureFlags()]);
119
-
120
- if (!this.options.previewMode && !this.options.customLoginBox) {
121
- this.loadLoginBox();
122
- }
123
-
124
- this.loadScript('FronteggAdminPortal');
125
- }
126
-
127
- updateMetadata(metadata) {
128
- Metadata.set(metadata, this.name);
166
+ _createClass(FronteggApp, [{
167
+ key: "initContainers",
168
+ value: function () {
169
+ var _initContainers = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(elements) {
170
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
171
+ while (1) {
172
+ switch (_context4.prev = _context4.next) {
173
+ case 0:
174
+ this.adminPortalEl = elements.adminPortalEl;
175
+ this.loginBoxEl = elements.loginBoxEl;
176
+ this.checkoutDialogEl = elements.checkoutDialogEl;
177
+ this.adminPortalContainer = elements.adminPortalContainer;
178
+ this.loginBoxContainer = elements.loginBoxContainer;
179
+ this.checkoutDialogContainer = elements.checkoutDialogContainer;
180
+
181
+ try {
182
+ document.body.classList.add('frontegg-loading');
183
+ } catch (e) {}
184
+
185
+ _context4.next = 9;
186
+ return Promise.all([this.loadAdminBoxMetadata(), this.requestAuthorize(), this.loadFeatureFlags()]);
187
+
188
+ case 9:
189
+ if (!this.options.previewMode && !this.options.customLoginBox) {
190
+ this.loadLoginBox();
191
+ }
192
+
193
+ this.loadScript('FronteggAdminPortal');
194
+
195
+ case 11:
196
+ case "end":
197
+ return _context4.stop();
198
+ }
199
+ }
200
+ }, _callee4, this);
201
+ }));
202
+
203
+ function initContainers(_x) {
204
+ return _initContainers.apply(this, arguments);
205
+ }
129
206
 
130
- if (metadata != null && metadata.localizations) {
131
- var _this$updateLocalizat;
207
+ return initContainers;
208
+ }()
209
+ }, {
210
+ key: "updateMetadata",
211
+ value: function updateMetadata(metadata) {
212
+ Metadata.set(metadata, this.name);
132
213
 
133
- (_this$updateLocalizat = this.updateLocalizations) == null ? void 0 : _this$updateLocalizat.call(this, metadata.localizations);
134
- }
135
- }
214
+ if (metadata != null && metadata.localizations) {
215
+ var _this$updateLocalizat;
136
216
 
137
- addOnLoadedListener(listener) {
138
- if (!this.loading) {
139
- listener();
140
- return;
217
+ (_this$updateLocalizat = this.updateLocalizations) == null ? void 0 : _this$updateLocalizat.call(this, metadata.localizations);
218
+ }
141
219
  }
142
-
143
- this.loadingListeners.push(listener);
144
- }
145
-
146
- loadScript(component) {
147
- return new Promise((resolve, reject) => {
148
- // TODO: prevent this behavior if development
149
- if (window[component]) {
150
- resolve(window[component]);
220
+ }, {
221
+ key: "addOnLoadedListener",
222
+ value: function addOnLoadedListener(listener) {
223
+ if (!this.loading) {
224
+ listener();
151
225
  return;
152
226
  }
153
-
154
-
155
-
156
- const entries = {
157
- FronteggLoginBox: 'login-box/index.js',
158
- FronteggAdminPortal: 'admin-portal/index.js'
159
- };
160
- const script = document.createElement('script');
161
- script.src = `${this.cdnUrl}/${entries[component]}`;
162
- script.setAttribute('id', `${component}Script`);
163
- script.setAttribute('cdn-url', this.cdnUrl);
164
-
165
- script.onload = () => {
166
- if (window[`${component}Init`]) {
167
- resolve(window[`${component}Init`]({
168
- FronteggRestApi,
169
- FronteggTypes
170
- }));
171
- } else {
227
+
228
+ this.loadingListeners.push(listener);
229
+ }
230
+ }, {
231
+ key: "loadScript",
232
+ value: function loadScript(component) {
233
+ var _this2 = this;
234
+
235
+ return new Promise(function (resolve, reject) {
236
+ // TODO: prevent this behavior if development
237
+ if (window[component]) {
172
238
  resolve(window[component]);
239
+ return;
173
240
  }
174
- };
175
-
176
- script.onerror = e => {
177
- console.log('Profile page error', e);
178
- reject(e);
179
- };
241
+
242
+
243
+
244
+ var entries = {
245
+ FronteggLoginBox: 'login-box/index.js',
246
+ FronteggAdminPortal: 'admin-portal/index.js'
247
+ };
248
+ var script = document.createElement('script');
249
+ script.src = "".concat(_this2.cdnUrl, "/").concat(entries[component]);
250
+ script.setAttribute('id', "".concat(component, "Script"));
251
+ script.setAttribute('cdn-url', _this2.cdnUrl);
252
+
253
+ script.onload = function () {
254
+ if (window["".concat(component, "Init")]) {
255
+ resolve(window["".concat(component, "Init")]({
256
+ FronteggRestApi: FronteggRestApi,
257
+ FronteggTypes: FronteggTypes
258
+ }));
259
+ } else {
260
+ resolve(window[component]);
261
+ }
262
+ };
263
+
264
+ script.onerror = function (e) {
265
+ console.log('Profile page error', e);
266
+ reject(e);
267
+ };
268
+
269
+ document.body.append(script);
270
+ });
271
+ }
272
+ }, {
273
+ key: "loadLoginBox",
274
+ value: function () {
275
+ var _loadLoginBox = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
276
+ var FronteggLoginBox;
277
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
278
+ while (1) {
279
+ switch (_context5.prev = _context5.next) {
280
+ case 0:
281
+ _context5.next = 2;
282
+ return this.loadScript('FronteggLoginBox');
283
+
284
+ case 2:
285
+ FronteggLoginBox = _context5.sent;
286
+ FronteggLoginBox.render(this.loginBoxEl, {
287
+ injector: this,
288
+ options: this.options
289
+ });
290
+ this.loading = false;
291
+ this.loadingListeners.forEach(function (listener) {
292
+ try {
293
+ listener();
294
+ } catch (e) {}
295
+ });
296
+ this.loadingListeners = [];
297
+
298
+ case 7:
299
+ case "end":
300
+ return _context5.stop();
301
+ }
302
+ }
303
+ }, _callee5, this);
304
+ }));
305
+
306
+ function loadLoginBox() {
307
+ return _loadLoginBox.apply(this, arguments);
308
+ }
180
309
 
181
- document.body.append(script);
182
- });
183
- }
310
+ return loadLoginBox;
311
+ }()
312
+ }, {
313
+ key: "showAdminPortal",
314
+ value: function () {
315
+ var _showAdminPortal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
316
+ var FronteggAdminPortal;
317
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
318
+ while (1) {
319
+ switch (_context6.prev = _context6.next) {
320
+ case 0:
321
+ _context6.next = 2;
322
+ return this.loadScript('FronteggAdminPortal');
323
+
324
+ case 2:
325
+ FronteggAdminPortal = _context6.sent;
326
+ this.adminPortalRenderer = FronteggAdminPortal.render(this.adminPortalEl, {
327
+ injector: this,
328
+ options: this.options
329
+ });
330
+
331
+ case 4:
332
+ case "end":
333
+ return _context6.stop();
334
+ }
335
+ }
336
+ }, _callee6, this);
337
+ }));
338
+
339
+ function showAdminPortal() {
340
+ return _showAdminPortal.apply(this, arguments);
341
+ }
184
342
 
185
- async loadLoginBox() {
186
- const FronteggLoginBox = await this.loadScript('FronteggLoginBox');
187
- FronteggLoginBox.render(this.loginBoxEl, {
188
- injector: this,
189
- options: this.options
190
- });
191
- this.loading = false;
192
- this.loadingListeners.forEach(listener => {
343
+ return showAdminPortal;
344
+ }()
345
+ }, {
346
+ key: "hideAdminPortal",
347
+ value: function hideAdminPortal() {
193
348
  try {
194
- listener();
195
- } catch (e) {}
196
- });
197
- this.loadingListeners = [];
198
- }
199
-
200
- async showAdminPortal() {
201
- const FronteggAdminPortal = await this.loadScript('FronteggAdminPortal');
202
- this.adminPortalRenderer = FronteggAdminPortal.render(this.adminPortalEl, {
203
- injector: this,
204
- options: this.options
205
- });
206
- }
207
-
208
- hideAdminPortal() {
209
- try {
210
- var _this$adminPortalRend;
349
+ var _this$adminPortalRend;
211
350
 
212
- (_this$adminPortalRend = this.adminPortalRenderer) == null ? void 0 : _this$adminPortalRend.unmount();
213
- } catch (e) {
214
- console.error('Failed to unmount admin portal', e);
351
+ (_this$adminPortalRend = this.adminPortalRenderer) == null ? void 0 : _this$adminPortalRend.unmount();
352
+ } catch (e) {
353
+ console.error('Failed to unmount admin portal', e);
354
+ }
215
355
  }
216
- }
217
-
218
- async showCheckoutDialog(opts) {
219
- const FronteggAdminPortal = await this.loadScript('FronteggAdminPortal');
220
- this.checkoutDialogRenderer = FronteggAdminPortal.renderCheckoutDialog(this.checkoutDialogEl, _extends({
221
- injector: this
222
- }, opts, {
223
- options: this.options
224
- }));
225
- }
356
+ }, {
357
+ key: "showCheckoutDialog",
358
+ value: function () {
359
+ var _showCheckoutDialog = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(opts) {
360
+ var FronteggAdminPortal;
361
+ return _regeneratorRuntime.wrap(function _callee7$(_context7) {
362
+ while (1) {
363
+ switch (_context7.prev = _context7.next) {
364
+ case 0:
365
+ _context7.next = 2;
366
+ return this.loadScript('FronteggAdminPortal');
367
+
368
+ case 2:
369
+ FronteggAdminPortal = _context7.sent;
370
+ this.checkoutDialogRenderer = FronteggAdminPortal.renderCheckoutDialog(this.checkoutDialogEl, _extends({
371
+ injector: this
372
+ }, opts, {
373
+ options: this.options
374
+ }));
375
+
376
+ case 4:
377
+ case "end":
378
+ return _context7.stop();
379
+ }
380
+ }
381
+ }, _callee7, this);
382
+ }));
383
+
384
+ function showCheckoutDialog(_x2) {
385
+ return _showCheckoutDialog.apply(this, arguments);
386
+ }
226
387
 
227
- hideCheckoutDialog() {
228
- try {
229
- var _this$checkoutDialogR;
388
+ return showCheckoutDialog;
389
+ }()
390
+ }, {
391
+ key: "hideCheckoutDialog",
392
+ value: function hideCheckoutDialog() {
393
+ try {
394
+ var _this$checkoutDialogR;
230
395
 
231
- (_this$checkoutDialogR = this.checkoutDialogRenderer) == null ? void 0 : _this$checkoutDialogR.unmount();
232
- } catch (e) {
233
- console.error('Failed to unmount checkout dialog', e);
396
+ (_this$checkoutDialogR = this.checkoutDialogRenderer) == null ? void 0 : _this$checkoutDialogR.unmount();
397
+ } catch (e) {
398
+ console.error('Failed to unmount checkout dialog', e);
399
+ }
234
400
  }
235
- }
236
-
237
- close() {
238
- this.hideAdminPortal();
239
- this.hideCheckoutDialog();
240
- }
401
+ }, {
402
+ key: "close",
403
+ value: function close() {
404
+ this.hideAdminPortal();
405
+ this.hideCheckoutDialog();
406
+ }
407
+ }]);
241
408
 
242
- }
409
+ return FronteggApp;
410
+ }();
@@ -1,31 +1,42 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
2
4
  import { authActions } from '@frontegg/redux-store';
3
5
  import { AppHolder } from '../AppHolder';
4
6
  import { ContextHolder } from '@frontegg/rest-api';
5
- export class HostedLogin {
6
- static setAuthentication(isAuthenticated, accessToken, user, appName = 'default') {
7
- const app = AppHolder.getInstance(appName);
7
+ export var HostedLogin = /*#__PURE__*/function () {
8
+ function HostedLogin() {
9
+ _classCallCheck(this, HostedLogin);
10
+ }
11
+
12
+ _createClass(HostedLogin, null, [{
13
+ key: "setAuthentication",
14
+ value: function setAuthentication(isAuthenticated, accessToken, user) {
15
+ var appName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'default';
16
+ var app = AppHolder.getInstance(appName);
8
17
 
9
- if (isAuthenticated && accessToken) {
10
- ContextHolder.setAccessToken(accessToken);
11
- ContextHolder.setUser(_extends({}, user, {
12
- accessToken
13
- }));
14
- app.store.dispatch(authActions.setState({
15
- isLoading: false,
16
- isAuthenticated,
17
- user
18
- }));
19
- app.store.dispatch(authActions.loadTenants());
20
- } else {
21
- ContextHolder.setAccessToken(null);
22
- ContextHolder.setUser(null);
23
- app.store.dispatch(authActions.setState({
24
- isLoading: false,
25
- isAuthenticated: false,
26
- user: null
27
- }));
18
+ if (isAuthenticated && accessToken) {
19
+ ContextHolder.setAccessToken(accessToken);
20
+ ContextHolder.setUser(_extends({}, user, {
21
+ accessToken: accessToken
22
+ }));
23
+ app.store.dispatch(authActions.setState({
24
+ isLoading: false,
25
+ isAuthenticated: isAuthenticated,
26
+ user: user
27
+ }));
28
+ app.store.dispatch(authActions.loadTenants());
29
+ } else {
30
+ ContextHolder.setAccessToken(null);
31
+ ContextHolder.setUser(null);
32
+ app.store.dispatch(authActions.setState({
33
+ isLoading: false,
34
+ isAuthenticated: false,
35
+ user: null
36
+ }));
37
+ }
28
38
  }
29
- }
39
+ }]);
30
40
 
31
- }
41
+ return HostedLogin;
42
+ }();