@fusionauth/angular-sdk 1.0.1 → 1.0.2

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.
@@ -58,77 +58,20 @@ class g {
58
58
  generateUrl(e, t) {
59
59
  const s = new URL(this.serverUrl);
60
60
  if (((s.pathname = e), t)) {
61
- const n = this.generateURLSearchParams(t);
62
- s.search = n.toString();
61
+ const o = this.generateURLSearchParams(t);
62
+ s.search = o.toString();
63
63
  }
64
64
  return s;
65
65
  }
66
66
  generateURLSearchParams(e) {
67
67
  const t = new URLSearchParams();
68
- return (Object.entries(e).forEach(([s, n]) => {
69
- n && t.append(s, n);
68
+ return (Object.entries(e).forEach(([s, o]) => {
69
+ o && t.append(s, o);
70
70
  }),
71
71
  t);
72
72
  }
73
73
  }
74
- class o {
75
- /**
76
- * Parses document.cookie for the access token expiration cookie value.
77
- * @returns {(number | null)} The moment of expiration in milliseconds since epoch.
78
- */
79
- static getAccessTokenExpirationMoment(e = 'app.at_exp') {
80
- const t = document.cookie
81
- .split('; ')
82
- .map(n => n.split('='))
83
- .find(([n]) => n === e), s = t == null ? void 0 : t[1];
84
- return s ? parseInt(s) * 1e3 : null;
85
- }
86
- }
87
74
  class p {
88
- constructor(e) {
89
- i(this, 'url');
90
- this.url = e;
91
- }
92
- /** Refresh token a single time */
93
- async refreshToken() {
94
- const e = await fetch(this.url.href, {
95
- method: 'POST',
96
- credentials: 'include',
97
- headers: {
98
- 'Content-Type': 'text/plain',
99
- },
100
- });
101
- if (!(e.status >= 200 && e.status < 300))
102
- throw new Error('error refreshing access token in fusionauth');
103
- }
104
- /** Initializes continuous automatic token refresh. */
105
- initAutoRefresh(e = 10, t) {
106
- const s = o.getAccessTokenExpirationMoment(t);
107
- if (!s)
108
- return;
109
- const n = e * 1e3, a = /* @__PURE__ */ new Date().getTime(), h = s - n, c = Math.max(h - a, 0);
110
- return setTimeout(async () => {
111
- try {
112
- await this.refreshToken(), this.initAutoRefresh(e);
113
- }
114
- catch (l) {
115
- console.error(l);
116
- }
117
- }, c);
118
- }
119
- }
120
- class m {
121
- /**
122
- * Schedules a callback to be invoked at the given moment.
123
- * @param expirationMoment - the access token expiration moment in milliseconds since the epoch.
124
- * @param onExpiration - the callback to be invoked at the `expirationMoment`.
125
- */
126
- static scheduleTokenExpirationCallback(e, t) {
127
- const s = /* @__PURE__ */ new Date().getTime(), n = e - s;
128
- n > 0 && setTimeout(t, n);
129
- }
130
- }
131
- class R {
132
75
  constructor() {
133
76
  i(this, 'REDIRECT_VALUE', 'fa-sdk-redirect-value');
134
77
  }
@@ -156,12 +99,19 @@ class R {
156
99
  Array.from(e, t => ('0' + t.toString(16)).substring(-2)).join(''));
157
100
  }
158
101
  }
159
- class T {
102
+ function m(r = 'app.at_exp') {
103
+ const e = document.cookie
104
+ .split('; ')
105
+ .map(s => s.split('='))
106
+ .find(([s]) => s === r), t = e == null ? void 0 : e[1];
107
+ return t ? parseInt(t) * 1e3 : null;
108
+ }
109
+ class U {
160
110
  constructor(e) {
161
111
  i(this, 'config');
162
112
  i(this, 'urlHelper');
163
- i(this, 'tokenRefresher');
164
- i(this, 'redirectHelper', new R());
113
+ i(this, 'redirectHelper', new p());
114
+ i(this, 'tokenExpirationTimeout');
165
115
  (this.config = e),
166
116
  (this.urlHelper = new g({
167
117
  serverUrl: e.serverUrl,
@@ -174,8 +124,7 @@ class T {
174
124
  logoutPath: e.logoutPath,
175
125
  tokenRefreshPath: e.tokenRefreshPath,
176
126
  })),
177
- (this.tokenRefresher = new p(this.urlHelper.getTokenRefreshUrl())),
178
- this.scheduleTokenExpirationEvent();
127
+ this.scheduleTokenExpiration();
179
128
  }
180
129
  startLogin(e) {
181
130
  this.redirectHelper.handlePreRedirect(e),
@@ -197,10 +146,34 @@ class T {
197
146
  return await e.json();
198
147
  }
199
148
  async refreshToken() {
200
- return await this.tokenRefresher.refreshToken();
149
+ const e = await fetch(this.urlHelper.getTokenRefreshUrl(), {
150
+ method: 'POST',
151
+ credentials: 'include',
152
+ headers: {
153
+ 'Content-Type': 'text/plain',
154
+ },
155
+ });
156
+ if (!(e.status >= 200 && e.status < 300)) {
157
+ const t = (await (e == null ? void 0 : e.text())) ||
158
+ 'Error refreshing access token in fusionauth';
159
+ throw new Error(t);
160
+ }
161
+ return this.scheduleTokenExpiration(), e;
201
162
  }
202
163
  initAutoRefresh() {
203
- return this.tokenRefresher.initAutoRefresh(this.config.autoRefreshSecondsBeforeExpiry, this.config.accessTokenExpireCookieName);
164
+ const e = this.at_exp, t = this.config.autoRefreshSecondsBeforeExpiry ?? 10;
165
+ if (!e)
166
+ return;
167
+ const s = t * 1e3, o = /* @__PURE__ */ new Date().getTime(), h = e - s, l = Math.max(h - o, 0);
168
+ return setTimeout(async () => {
169
+ let n, a;
170
+ try {
171
+ await this.refreshToken(), this.initAutoRefresh();
172
+ }
173
+ catch (c) {
174
+ (a = (n = this.config).onAutoRefreshFailure) == null || a.call(n, c);
175
+ }
176
+ }, l);
204
177
  }
205
178
  handlePostRedirect(e) {
206
179
  this.isLoggedIn &&
@@ -208,34 +181,37 @@ class T {
208
181
  this.redirectHelper.handlePostRedirect(e);
209
182
  }
210
183
  get isLoggedIn() {
211
- return this.accessTokenExpirationMoment
212
- ? this.accessTokenExpirationMoment > /* @__PURE__ */ new Date().getTime()
184
+ return this.at_exp
185
+ ? this.at_exp > /* @__PURE__ */ new Date().getTime()
213
186
  : !1;
214
187
  }
215
- get accessTokenExpirationMoment() {
216
- return o.getAccessTokenExpirationMoment(this.config.accessTokenExpireCookieName);
188
+ /** The moment of access token expiration in milliseconds since epoch. */
189
+ get at_exp() {
190
+ return m(this.config.accessTokenExpireCookieName);
217
191
  }
218
- scheduleTokenExpirationEvent() {
219
- this.accessTokenExpirationMoment &&
220
- this.config.onTokenExpiration &&
221
- m.scheduleTokenExpirationCallback(this.accessTokenExpirationMoment, this.config.onTokenExpiration);
192
+ /** Schedules `onTokenExpiration` at moment of access token expiration. */
193
+ scheduleTokenExpiration() {
194
+ clearTimeout(this.tokenExpirationTimeout);
195
+ const e = this.at_exp ?? -1, t = /* @__PURE__ */ new Date().getTime(), s = e - t;
196
+ s > 0 &&
197
+ (this.tokenExpirationTimeout = setTimeout(this.config.onTokenExpiration, s));
222
198
  }
223
199
  }
224
- function U() {
200
+ function P() {
225
201
  const r = /* @__PURE__ */ new Date();
226
202
  r.setHours(r.getHours() + 1);
227
203
  const e = r.getTime() / 1e3;
228
204
  document.cookie = `app.at_exp=${e}`;
229
205
  }
230
- function P() {
206
+ function f() {
231
207
  document.cookie = 'app.at_exp=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
232
208
  }
233
- function E(r) {
209
+ function w(r) {
234
210
  const e = {
235
211
  ...window.location,
236
212
  assign: r.fn(),
237
213
  };
238
214
  return r.spyOn(window, 'location', 'get').mockReturnValue(e), e;
239
215
  }
240
- export { o as CookieHelpers, T as SDKCore, p as TokenRefresher, g as UrlHelper, U as mockIsLoggedIn, E as mockWindowLocation, P as removeAt_expCookie, };
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNwQixDQUFDLElBQUksQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN2RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQztJQUNMLFlBQVksQ0FBQztRQUNYLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLElBQUksRUFB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QVMsQ0FBQztJQUNSLE1BQU0sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDNUIsUUFBUSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFDRCxTQUFTLENBQUM7SUFDUixRQUFRLENBQUMsTUFBTSxHQUFHLG1EQUFtRCxDQUFDO0FBQ3hFLENBQUM7QUFDRCxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ1YsTUFBTSxDQUFDLEdBQUc7UUFDUixHQUFHLE1BQU0sQ0FBQyxRQUFRO1FBQ2xCLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO0tBQ2YsQ0FBQztJQUNGLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUNELE9BQU8sRUFDTCxDQUFDLElBQUksYUFBYSxFQUNsQixDQUFDLElBQUksT0FBTyxFQUNaLENBQUMsSUFBSSxjQUFjLEVBQ25CLENBQUMsSUFBSSxTQUFTLEVBQ2QsQ0FBQyxJQUFJLGNBQWMsRUFDbkIsQ0FBQyxJQUFJLGtCQUFrQixFQUN2QixDQUFDLElBQUksa0JBQWtCLEdBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtbm9jaGVja1xuY29uc3QgdSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbmNvbnN0IGQgPSAociwgZSwgdCkgPT5cbiAgZSBpbiByXG4gICAgPyB1KHIsIGUsIHsgZW51bWVyYWJsZTogITAsIGNvbmZpZ3VyYWJsZTogITAsIHdyaXRhYmxlOiAhMCwgdmFsdWU6IHQgfSlcbiAgICA6IChyW2VdID0gdCk7XG5jb25zdCBpID0gKHIsIGUsIHQpID0+IChkKHIsIHR5cGVvZiBlICE9ICdzeW1ib2wnID8gZSArICcnIDogZSwgdCksIHQpO1xuY2xhc3MgZyB7XG4gIGNvbnN0cnVjdG9yKGUpIHtcbiAgICBpKHRoaXMsICdzZXJ2ZXJVcmwnKTtcbiAgICBpKHRoaXMsICdjbGllbnRJZCcpO1xuICAgIGkodGhpcywgJ3JlZGlyZWN0VXJpJyk7XG4gICAgaSh0aGlzLCAnc2NvcGUnKTtcbiAgICBpKHRoaXMsICdtZVBhdGgnKTtcbiAgICBpKHRoaXMsICdsb2dpblBhdGgnKTtcbiAgICBpKHRoaXMsICdyZWdpc3RlclBhdGgnKTtcbiAgICBpKHRoaXMsICdsb2dvdXRQYXRoJyk7XG4gICAgaSh0aGlzLCAndG9rZW5SZWZyZXNoUGF0aCcpO1xuICAgICh0aGlzLnNlcnZlclVybCA9IGUuc2VydmVyVXJsKSxcbiAgICAgICh0aGlzLmNsaWVudElkID0gZS5jbGllbnRJZCksXG4gICAgICAodGhpcy5yZWRpcmVjdFVyaSA9IGUucmVkaXJlY3RVcmkpLFxuICAgICAgKHRoaXMuc2NvcGUgPSBlLnNjb3BlKSxcbiAgICAgICh0aGlzLm1lUGF0aCA9IGUubWVQYXRoID8/ICcvYXBwL21lJyksXG4gICAgICAodGhpcy5sb2dpblBhdGggPSBlLmxvZ2luUGF0aCA/PyAnL2FwcC9sb2dpbicpLFxuICAgICAgKHRoaXMucmVnaXN0ZXJQYXRoID0gZS5yZWdpc3RlclBhdGggPz8gJy9hcHAvcmVnaXN0ZXInKSxcbiAgICAgICh0aGlzLmxvZ291dFBhdGggPSBlLmxvZ291dFBhdGggPz8gJy9hcHAvbG9nb3V0JyksXG4gICAgICAodGhpcy50b2tlblJlZnJlc2hQYXRoID0gZS50b2tlblJlZnJlc2hQYXRoID8/ICcvYXBwL3JlZnJlc2gnKTtcbiAgfVxuICBnZXRNZVVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZVVybCh0aGlzLm1lUGF0aCk7XG4gIH1cbiAgZ2V0TG9naW5VcmwoZSkge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlVXJsKHRoaXMubG9naW5QYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVcmksXG4gICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgIHN0YXRlOiBlLFxuICAgIH0pO1xuICB9XG4gIGdldFJlZ2lzdGVyVXJsKGUpIHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZVVybCh0aGlzLnJlZ2lzdGVyUGF0aCwge1xuICAgICAgY2xpZW50X2lkOiB0aGlzLmNsaWVudElkLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLnJlZGlyZWN0VXJpLFxuICAgICAgc2NvcGU6IHRoaXMuc2NvcGUsXG4gICAgICBzdGF0ZTogZSxcbiAgICB9KTtcbiAgfVxuICBnZXRMb2dvdXRVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVVcmwodGhpcy5sb2dvdXRQYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVcmksXG4gICAgfSk7XG4gIH1cbiAgZ2V0VG9rZW5SZWZyZXNoVXJsKCkge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlVXJsKHRoaXMudG9rZW5SZWZyZXNoUGF0aCwge1xuICAgICAgY2xpZW50X2lkOiB0aGlzLmNsaWVudElkLFxuICAgIH0pO1xuICB9XG4gIGdlbmVyYXRlVXJsKGUsIHQpIHtcbiAgICBjb25zdCBzID0gbmV3IFVSTCh0aGlzLnNlcnZlclVybCk7XG4gICAgaWYgKCgocy5wYXRobmFtZSA9IGUpLCB0KSkge1xuICAgICAgY29uc3QgbiA9IHRoaXMuZ2VuZXJhdGVVUkxTZWFyY2hQYXJhbXModCk7XG4gICAgICBzLnNlYXJjaCA9IG4udG9TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIHM7XG4gIH1cbiAgZ2VuZXJhdGVVUkxTZWFyY2hQYXJhbXMoZSkge1xuICAgIGNvbnN0IHQgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtzLCBuXSkgPT4ge1xuICAgICAgICBuICYmIHQuYXBwZW5kKHMsIG4pO1xuICAgICAgfSksXG4gICAgICB0XG4gICAgKTtcbiAgfVxufVxuY2xhc3MgbyB7XG4gIC8qKlxuICAgKiBQYXJzZXMgZG9jdW1lbnQuY29va2llIGZvciB0aGUgYWNjZXNzIHRva2VuIGV4cGlyYXRpb24gY29va2llIHZhbHVlLlxuICAgKiBAcmV0dXJucyB7KG51bWJlciB8IG51bGwpfSBUaGUgbW9tZW50IG9mIGV4cGlyYXRpb24gaW4gbWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoLlxuICAgKi9cbiAgc3RhdGljIGdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbk1vbWVudChlID0gJ2FwcC5hdF9leHAnKSB7XG4gICAgY29uc3QgdCA9IGRvY3VtZW50LmNvb2tpZVxuICAgICAgICAuc3BsaXQoJzsgJylcbiAgICAgICAgLm1hcChuID0+IG4uc3BsaXQoJz0nKSlcbiAgICAgICAgLmZpbmQoKFtuXSkgPT4gbiA9PT0gZSksXG4gICAgICBzID0gdCA9PSBudWxsID8gdm9pZCAwIDogdFsxXTtcbiAgICByZXR1cm4gcyA/IHBhcnNlSW50KHMpICogMWUzIDogbnVsbDtcbiAgfVxufVxuY2xhc3MgcCB7XG4gIGNvbnN0cnVjdG9yKGUpIHtcbiAgICBpKHRoaXMsICd1cmwnKTtcbiAgICB0aGlzLnVybCA9IGU7XG4gIH1cbiAgLyoqIFJlZnJlc2ggdG9rZW4gYSBzaW5nbGUgdGltZSAqL1xuICBhc3luYyByZWZyZXNoVG9rZW4oKSB7XG4gICAgY29uc3QgZSA9IGF3YWl0IGZldGNoKHRoaXMudXJsLmhyZWYsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKCEoZS5zdGF0dXMgPj0gMjAwICYmIGUuc3RhdHVzIDwgMzAwKSlcbiAgICAgIHRocm93IG5ldyBFcnJvcignZXJyb3IgcmVmcmVzaGluZyBhY2Nlc3MgdG9rZW4gaW4gZnVzaW9uYXV0aCcpO1xuICB9XG4gIC8qKiBJbml0aWFsaXplcyBjb250aW51b3VzIGF1dG9tYXRpYyB0b2tlbiByZWZyZXNoLiAqL1xuICBpbml0QXV0b1JlZnJlc2goZSA9IDEwLCB0KSB7XG4gICAgY29uc3QgcyA9IG8uZ2V0QWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50KHQpO1xuICAgIGlmICghcykgcmV0dXJuO1xuICAgIGNvbnN0IG4gPSBlICogMWUzLFxuICAgICAgYSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcbiAgICAgIGggPSBzIC0gbixcbiAgICAgIGMgPSBNYXRoLm1heChoIC0gYSwgMCk7XG4gICAgcmV0dXJuIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKSwgdGhpcy5pbml0QXV0b1JlZnJlc2goZSk7XG4gICAgICB9IGNhdGNoIChsKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IobCk7XG4gICAgICB9XG4gICAgfSwgYyk7XG4gIH1cbn1cbmNsYXNzIG0ge1xuICAvKipcbiAgICogU2NoZWR1bGVzIGEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCBhdCB0aGUgZ2l2ZW4gbW9tZW50LlxuICAgKiBAcGFyYW0gZXhwaXJhdGlvbk1vbWVudCAtIHRoZSBhY2Nlc3MgdG9rZW4gZXhwaXJhdGlvbiBtb21lbnQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaC5cbiAgICogQHBhcmFtIG9uRXhwaXJhdGlvbiAtIHRoZSBjYWxsYmFjayB0byBiZSBpbnZva2VkIGF0IHRoZSBgZXhwaXJhdGlvbk1vbWVudGAuXG4gICAqL1xuICBzdGF0aWMgc2NoZWR1bGVUb2tlbkV4cGlyYXRpb25DYWxsYmFjayhlLCB0KSB7XG4gICAgY29uc3QgcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcbiAgICAgIG4gPSBlIC0gcztcbiAgICBuID4gMCAmJiBzZXRUaW1lb3V0KHQsIG4pO1xuICB9XG59XG5jbGFzcyBSIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaSh0aGlzLCAnUkVESVJFQ1RfVkFMVUUnLCAnZmEtc2RrLXJlZGlyZWN0LXZhbHVlJyk7XG4gIH1cbiAgaGFuZGxlUHJlUmVkaXJlY3QoZSkge1xuICAgIGNvbnN0IHQgPSBgJHt0aGlzLmdlbmVyYXRlUmFuZG9tU3RyaW5nKCl9OiR7ZSA/PyAnJ31gO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuUkVESVJFQ1RfVkFMVUUsIHQpO1xuICB9XG4gIGhhbmRsZVBvc3RSZWRpcmVjdChlKSB7XG4gICAgY29uc3QgdCA9IHRoaXMuc3RhdGVWYWx1ZSA/PyB2b2lkIDA7XG4gICAgZSA9PSBudWxsIHx8IGUodCksIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuUkVESVJFQ1RfVkFMVUUpO1xuICB9XG4gIGdldCBkaWRSZWRpcmVjdCgpIHtcbiAgICByZXR1cm4gISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlJFRElSRUNUX1ZBTFVFKTtcbiAgfVxuICBnZXQgc3RhdGVWYWx1ZSgpIHtcbiAgICBjb25zdCBlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5SRURJUkVDVF9WQUxVRSk7XG4gICAgaWYgKCFlKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbLCAuLi50XSA9IGUuc3BsaXQoJzonKTtcbiAgICByZXR1cm4gdC5qb2luKCc6Jyk7XG4gIH1cbiAgZ2VuZXJhdGVSYW5kb21TdHJpbmcoKSB7XG4gICAgY29uc3QgZSA9IG5ldyBVaW50MzJBcnJheSgyOCk7XG4gICAgcmV0dXJuIChcbiAgICAgIHdpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGUpLFxuICAgICAgQXJyYXkuZnJvbShlLCB0ID0+ICgnMCcgKyB0LnRvU3RyaW5nKDE2KSkuc3Vic3RyaW5nKC0yKSkuam9pbignJylcbiAgICApO1xuICB9XG59XG5jbGFzcyBUIHtcbiAgY29uc3RydWN0b3IoZSkge1xuICAgIGkodGhpcywgJ2NvbmZpZycpO1xuICAgIGkodGhpcywgJ3VybEhlbHBlcicpO1xuICAgIGkodGhpcywgJ3Rva2VuUmVmcmVzaGVyJyk7XG4gICAgaSh0aGlzLCAncmVkaXJlY3RIZWxwZXInLCBuZXcgUigpKTtcbiAgICAodGhpcy5jb25maWcgPSBlKSxcbiAgICAgICh0aGlzLnVybEhlbHBlciA9IG5ldyBnKHtcbiAgICAgICAgc2VydmVyVXJsOiBlLnNlcnZlclVybCxcbiAgICAgICAgY2xpZW50SWQ6IGUuY2xpZW50SWQsXG4gICAgICAgIHJlZGlyZWN0VXJpOiBlLnJlZGlyZWN0VXJpLFxuICAgICAgICBzY29wZTogZS5zY29wZSxcbiAgICAgICAgbWVQYXRoOiBlLm1lUGF0aCxcbiAgICAgICAgbG9naW5QYXRoOiBlLmxvZ2luUGF0aCxcbiAgICAgICAgcmVnaXN0ZXJQYXRoOiBlLnJlZ2lzdGVyUGF0aCxcbiAgICAgICAgbG9nb3V0UGF0aDogZS5sb2dvdXRQYXRoLFxuICAgICAgICB0b2tlblJlZnJlc2hQYXRoOiBlLnRva2VuUmVmcmVzaFBhdGgsXG4gICAgICB9KSksXG4gICAgICAodGhpcy50b2tlblJlZnJlc2hlciA9IG5ldyBwKHRoaXMudXJsSGVscGVyLmdldFRva2VuUmVmcmVzaFVybCgpKSksXG4gICAgICB0aGlzLnNjaGVkdWxlVG9rZW5FeHBpcmF0aW9uRXZlbnQoKTtcbiAgfVxuICBzdGFydExvZ2luKGUpIHtcbiAgICB0aGlzLnJlZGlyZWN0SGVscGVyLmhhbmRsZVByZVJlZGlyZWN0KGUpLFxuICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbih0aGlzLnVybEhlbHBlci5nZXRMb2dpblVybChlKSk7XG4gIH1cbiAgc3RhcnRSZWdpc3RlcihlKSB7XG4gICAgdGhpcy5yZWRpcmVjdEhlbHBlci5oYW5kbGVQcmVSZWRpcmVjdChlKSxcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odGhpcy51cmxIZWxwZXIuZ2V0UmVnaXN0ZXJVcmwoZSkpO1xuICB9XG4gIHN0YXJ0TG9nb3V0KCkge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odGhpcy51cmxIZWxwZXIuZ2V0TG9nb3V0VXJsKCkpO1xuICB9XG4gIGFzeW5jIGZldGNoVXNlckluZm8oKSB7XG4gICAgY29uc3QgZSA9IGF3YWl0IGZldGNoKHRoaXMudXJsSGVscGVyLmdldE1lVXJsKCksIHtcbiAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgfSk7XG4gICAgaWYgKCFlLm9rKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIGZldGNoIHVzZXJJbmZvIGluIGZ1c2lvbmF1dGguIFJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtlID09IG51bGwgPyB2b2lkIDAgOiBlLnN0YXR1c31gLFxuICAgICAgKTtcbiAgICByZXR1cm4gYXdhaXQgZS5qc29uKCk7XG4gIH1cbiAgYXN5bmMgcmVmcmVzaFRva2VuKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnRva2VuUmVmcmVzaGVyLnJlZnJlc2hUb2tlbigpO1xuICB9XG4gIGluaXRBdXRvUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlblJlZnJlc2hlci5pbml0QXV0b1JlZnJlc2goXG4gICAgICB0aGlzLmNvbmZpZy5hdXRvUmVmcmVzaFNlY29uZHNCZWZvcmVFeHBpcnksXG4gICAgICB0aGlzLmNvbmZpZy5hY2Nlc3NUb2tlbkV4cGlyZUNvb2tpZU5hbWUsXG4gICAgKTtcbiAgfVxuICBoYW5kbGVQb3N0UmVkaXJlY3QoZSkge1xuICAgIHRoaXMuaXNMb2dnZWRJbiAmJlxuICAgICAgdGhpcy5yZWRpcmVjdEhlbHBlci5kaWRSZWRpcmVjdCAmJlxuICAgICAgdGhpcy5yZWRpcmVjdEhlbHBlci5oYW5kbGVQb3N0UmVkaXJlY3QoZSk7XG4gIH1cbiAgZ2V0IGlzTG9nZ2VkSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50XG4gICAgICA/IHRoaXMuYWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50ID4gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCkuZ2V0VGltZSgpXG4gICAgICA6ICExO1xuICB9XG4gIGdldCBhY2Nlc3NUb2tlbkV4cGlyYXRpb25Nb21lbnQoKSB7XG4gICAgcmV0dXJuIG8uZ2V0QWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50KFxuICAgICAgdGhpcy5jb25maWcuYWNjZXNzVG9rZW5FeHBpcmVDb29raWVOYW1lLFxuICAgICk7XG4gIH1cbiAgc2NoZWR1bGVUb2tlbkV4cGlyYXRpb25FdmVudCgpIHtcbiAgICB0aGlzLmFjY2Vzc1Rva2VuRXhwaXJhdGlvbk1vbWVudCAmJlxuICAgICAgdGhpcy5jb25maWcub25Ub2tlbkV4cGlyYXRpb24gJiZcbiAgICAgIG0uc2NoZWR1bGVUb2tlbkV4cGlyYXRpb25DYWxsYmFjayhcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbkV4cGlyYXRpb25Nb21lbnQsXG4gICAgICAgIHRoaXMuY29uZmlnLm9uVG9rZW5FeHBpcmF0aW9uLFxuICAgICAgKTtcbiAgfVxufVxuZnVuY3Rpb24gVSgpIHtcbiAgY29uc3QgciA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpO1xuICByLnNldEhvdXJzKHIuZ2V0SG91cnMoKSArIDEpO1xuICBjb25zdCBlID0gci5nZXRUaW1lKCkgLyAxZTM7XG4gIGRvY3VtZW50LmNvb2tpZSA9IGBhcHAuYXRfZXhwPSR7ZX1gO1xufVxuZnVuY3Rpb24gUCgpIHtcbiAgZG9jdW1lbnQuY29va2llID0gJ2FwcC5hdF9leHA9O2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQnO1xufVxuZnVuY3Rpb24gRShyKSB7XG4gIGNvbnN0IGUgPSB7XG4gICAgLi4ud2luZG93LmxvY2F0aW9uLFxuICAgIGFzc2lnbjogci5mbigpLFxuICB9O1xuICByZXR1cm4gci5zcHlPbih3aW5kb3csICdsb2NhdGlvbicsICdnZXQnKS5tb2NrUmV0dXJuVmFsdWUoZSksIGU7XG59XG5leHBvcnQge1xuICBvIGFzIENvb2tpZUhlbHBlcnMsXG4gIFQgYXMgU0RLQ29yZSxcbiAgcCBhcyBUb2tlblJlZnJlc2hlcixcbiAgZyBhcyBVcmxIZWxwZXIsXG4gIFUgYXMgbW9ja0lzTG9nZ2VkSW4sXG4gIEUgYXMgbW9ja1dpbmRvd0xvY2F0aW9uLFxuICBQIGFzIHJlbW92ZUF0X2V4cENvb2tpZSxcbn07XG4iXX0=
216
+ export { U as SDKCore, P as mockIsLoggedIn, w as mockWindowLocation, f as removeAt_expCookie, };
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNwQixDQUFDLElBQUksQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN2RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQztJQUNMLFlBQVksQ0FBQztRQUNYLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLElBQUksRUFB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QUNELFNBQVMsQ0FBQztJQUNSLFFBQVEsQ0FBQyxNQUFNLEdBQUcsbURBQW1ELENBQUM7QUFDeEUsQ0FBQztBQUNELFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDVixNQUFNLENBQUMsR0FBRztRQUNSLEdBQUcsTUFBTSxDQUFDLFFBQVE7UUFDbEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7S0FDZixDQUFDO0lBQ0YsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBQ0QsT0FBTyxFQUNMLENBQUMsSUFBSSxPQUFPLEVBQ1osQ0FBQyxJQUFJLGNBQWMsRUFDbkIsQ0FBQyxJQUFJLGtCQUFrQixFQUN2QixDQUFDLElBQUksa0JBQWtCLEdBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtbm9jaGVja1xuY29uc3QgdSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbmNvbnN0IGQgPSAociwgZSwgdCkgPT5cbiAgZSBpbiByXG4gICAgPyB1KHIsIGUsIHsgZW51bWVyYWJsZTogITAsIGNvbmZpZ3VyYWJsZTogITAsIHdyaXRhYmxlOiAhMCwgdmFsdWU6IHQgfSlcbiAgICA6IChyW2VdID0gdCk7XG5jb25zdCBpID0gKHIsIGUsIHQpID0+IChkKHIsIHR5cGVvZiBlICE9ICdzeW1ib2wnID8gZSArICcnIDogZSwgdCksIHQpO1xuY2xhc3MgZyB7XG4gIGNvbnN0cnVjdG9yKGUpIHtcbiAgICBpKHRoaXMsICdzZXJ2ZXJVcmwnKTtcbiAgICBpKHRoaXMsICdjbGllbnRJZCcpO1xuICAgIGkodGhpcywgJ3JlZGlyZWN0VXJpJyk7XG4gICAgaSh0aGlzLCAnc2NvcGUnKTtcbiAgICBpKHRoaXMsICdtZVBhdGgnKTtcbiAgICBpKHRoaXMsICdsb2dpblBhdGgnKTtcbiAgICBpKHRoaXMsICdyZWdpc3RlclBhdGgnKTtcbiAgICBpKHRoaXMsICdsb2dvdXRQYXRoJyk7XG4gICAgaSh0aGlzLCAndG9rZW5SZWZyZXNoUGF0aCcpO1xuICAgICh0aGlzLnNlcnZlclVybCA9IGUuc2VydmVyVXJsKSxcbiAgICAgICh0aGlzLmNsaWVudElkID0gZS5jbGllbnRJZCksXG4gICAgICAodGhpcy5yZWRpcmVjdFVyaSA9IGUucmVkaXJlY3RVcmkpLFxuICAgICAgKHRoaXMuc2NvcGUgPSBlLnNjb3BlKSxcbiAgICAgICh0aGlzLm1lUGF0aCA9IGUubWVQYXRoID8/ICcvYXBwL21lJyksXG4gICAgICAodGhpcy5sb2dpblBhdGggPSBlLmxvZ2luUGF0aCA/PyAnL2FwcC9sb2dpbicpLFxuICAgICAgKHRoaXMucmVnaXN0ZXJQYXRoID0gZS5yZWdpc3RlclBhdGggPz8gJy9hcHAvcmVnaXN0ZXInKSxcbiAgICAgICh0aGlzLmxvZ291dFBhdGggPSBlLmxvZ291dFBhdGggPz8gJy9hcHAvbG9nb3V0JyksXG4gICAgICAodGhpcy50b2tlblJlZnJlc2hQYXRoID0gZS50b2tlblJlZnJlc2hQYXRoID8/ICcvYXBwL3JlZnJlc2gnKTtcbiAgfVxuICBnZXRNZVVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZVVybCh0aGlzLm1lUGF0aCk7XG4gIH1cbiAgZ2V0TG9naW5VcmwoZSkge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlVXJsKHRoaXMubG9naW5QYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVcmksXG4gICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgIHN0YXRlOiBlLFxuICAgIH0pO1xuICB9XG4gIGdldFJlZ2lzdGVyVXJsKGUpIHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZVVybCh0aGlzLnJlZ2lzdGVyUGF0aCwge1xuICAgICAgY2xpZW50X2lkOiB0aGlzLmNsaWVudElkLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLnJlZGlyZWN0VXJpLFxuICAgICAgc2NvcGU6IHRoaXMuc2NvcGUsXG4gICAgICBzdGF0ZTogZSxcbiAgICB9KTtcbiAgfVxuICBnZXRMb2dvdXRVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVVcmwodGhpcy5sb2dvdXRQYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVcmksXG4gICAgfSk7XG4gIH1cbiAgZ2V0VG9rZW5SZWZyZXNoVXJsKCkge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlVXJsKHRoaXMudG9rZW5SZWZyZXNoUGF0aCwge1xuICAgICAgY2xpZW50X2lkOiB0aGlzLmNsaWVudElkLFxuICAgIH0pO1xuICB9XG4gIGdlbmVyYXRlVXJsKGUsIHQpIHtcbiAgICBjb25zdCBzID0gbmV3IFVSTCh0aGlzLnNlcnZlclVybCk7XG4gICAgaWYgKCgocy5wYXRobmFtZSA9IGUpLCB0KSkge1xuICAgICAgY29uc3QgbyA9IHRoaXMuZ2VuZXJhdGVVUkxTZWFyY2hQYXJhbXModCk7XG4gICAgICBzLnNlYXJjaCA9IG8udG9TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIHM7XG4gIH1cbiAgZ2VuZXJhdGVVUkxTZWFyY2hQYXJhbXMoZSkge1xuICAgIGNvbnN0IHQgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtzLCBvXSkgPT4ge1xuICAgICAgICBvICYmIHQuYXBwZW5kKHMsIG8pO1xuICAgICAgfSksXG4gICAgICB0XG4gICAgKTtcbiAgfVxufVxuY2xhc3MgcCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGkodGhpcywgJ1JFRElSRUNUX1ZBTFVFJywgJ2ZhLXNkay1yZWRpcmVjdC12YWx1ZScpO1xuICB9XG4gIGhhbmRsZVByZVJlZGlyZWN0KGUpIHtcbiAgICBjb25zdCB0ID0gYCR7dGhpcy5nZW5lcmF0ZVJhbmRvbVN0cmluZygpfToke2UgPz8gJyd9YDtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlJFRElSRUNUX1ZBTFVFLCB0KTtcbiAgfVxuICBoYW5kbGVQb3N0UmVkaXJlY3QoZSkge1xuICAgIGNvbnN0IHQgPSB0aGlzLnN0YXRlVmFsdWUgPz8gdm9pZCAwO1xuICAgIGUgPT0gbnVsbCB8fCBlKHQpLCBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLlJFRElSRUNUX1ZBTFVFKTtcbiAgfVxuICBnZXQgZGlkUmVkaXJlY3QoKSB7XG4gICAgcmV0dXJuICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5SRURJUkVDVF9WQUxVRSk7XG4gIH1cbiAgZ2V0IHN0YXRlVmFsdWUoKSB7XG4gICAgY29uc3QgZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuUkVESVJFQ1RfVkFMVUUpO1xuICAgIGlmICghZSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgWywgLi4udF0gPSBlLnNwbGl0KCc6Jyk7XG4gICAgcmV0dXJuIHQuam9pbignOicpO1xuICB9XG4gIGdlbmVyYXRlUmFuZG9tU3RyaW5nKCkge1xuICAgIGNvbnN0IGUgPSBuZXcgVWludDMyQXJyYXkoMjgpO1xuICAgIHJldHVybiAoXG4gICAgICB3aW5kb3cuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhlKSxcbiAgICAgIEFycmF5LmZyb20oZSwgdCA9PiAoJzAnICsgdC50b1N0cmluZygxNikpLnN1YnN0cmluZygtMikpLmpvaW4oJycpXG4gICAgKTtcbiAgfVxufVxuZnVuY3Rpb24gbShyID0gJ2FwcC5hdF9leHAnKSB7XG4gIGNvbnN0IGUgPSBkb2N1bWVudC5jb29raWVcbiAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgLm1hcChzID0+IHMuc3BsaXQoJz0nKSlcbiAgICAgIC5maW5kKChbc10pID0+IHMgPT09IHIpLFxuICAgIHQgPSBlID09IG51bGwgPyB2b2lkIDAgOiBlWzFdO1xuICByZXR1cm4gdCA/IHBhcnNlSW50KHQpICogMWUzIDogbnVsbDtcbn1cbmNsYXNzIFUge1xuICBjb25zdHJ1Y3RvcihlKSB7XG4gICAgaSh0aGlzLCAnY29uZmlnJyk7XG4gICAgaSh0aGlzLCAndXJsSGVscGVyJyk7XG4gICAgaSh0aGlzLCAncmVkaXJlY3RIZWxwZXInLCBuZXcgcCgpKTtcbiAgICBpKHRoaXMsICd0b2tlbkV4cGlyYXRpb25UaW1lb3V0Jyk7XG4gICAgKHRoaXMuY29uZmlnID0gZSksXG4gICAgICAodGhpcy51cmxIZWxwZXIgPSBuZXcgZyh7XG4gICAgICAgIHNlcnZlclVybDogZS5zZXJ2ZXJVcmwsXG4gICAgICAgIGNsaWVudElkOiBlLmNsaWVudElkLFxuICAgICAgICByZWRpcmVjdFVyaTogZS5yZWRpcmVjdFVyaSxcbiAgICAgICAgc2NvcGU6IGUuc2NvcGUsXG4gICAgICAgIG1lUGF0aDogZS5tZVBhdGgsXG4gICAgICAgIGxvZ2luUGF0aDogZS5sb2dpblBhdGgsXG4gICAgICAgIHJlZ2lzdGVyUGF0aDogZS5yZWdpc3RlclBhdGgsXG4gICAgICAgIGxvZ291dFBhdGg6IGUubG9nb3V0UGF0aCxcbiAgICAgICAgdG9rZW5SZWZyZXNoUGF0aDogZS50b2tlblJlZnJlc2hQYXRoLFxuICAgICAgfSkpLFxuICAgICAgdGhpcy5zY2hlZHVsZVRva2VuRXhwaXJhdGlvbigpO1xuICB9XG4gIHN0YXJ0TG9naW4oZSkge1xuICAgIHRoaXMucmVkaXJlY3RIZWxwZXIuaGFuZGxlUHJlUmVkaXJlY3QoZSksXG4gICAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMudXJsSGVscGVyLmdldExvZ2luVXJsKGUpKTtcbiAgfVxuICBzdGFydFJlZ2lzdGVyKGUpIHtcbiAgICB0aGlzLnJlZGlyZWN0SGVscGVyLmhhbmRsZVByZVJlZGlyZWN0KGUpLFxuICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbih0aGlzLnVybEhlbHBlci5nZXRSZWdpc3RlclVybChlKSk7XG4gIH1cbiAgc3RhcnRMb2dvdXQoKSB7XG4gICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbih0aGlzLnVybEhlbHBlci5nZXRMb2dvdXRVcmwoKSk7XG4gIH1cbiAgYXN5bmMgZmV0Y2hVc2VySW5mbygpIHtcbiAgICBjb25zdCBlID0gYXdhaXQgZmV0Y2godGhpcy51cmxIZWxwZXIuZ2V0TWVVcmwoKSwge1xuICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICB9KTtcbiAgICBpZiAoIWUub2spXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmFibGUgdG8gZmV0Y2ggdXNlckluZm8gaW4gZnVzaW9uYXV0aC4gUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAke2UgPT0gbnVsbCA/IHZvaWQgMCA6IGUuc3RhdHVzfWAsXG4gICAgICApO1xuICAgIHJldHVybiBhd2FpdCBlLmpzb24oKTtcbiAgfVxuICBhc3luYyByZWZyZXNoVG9rZW4oKSB7XG4gICAgY29uc3QgZSA9IGF3YWl0IGZldGNoKHRoaXMudXJsSGVscGVyLmdldFRva2VuUmVmcmVzaFVybCgpLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbicsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmICghKGUuc3RhdHVzID49IDIwMCAmJiBlLnN0YXR1cyA8IDMwMCkpIHtcbiAgICAgIGNvbnN0IHQgPVxuICAgICAgICAoYXdhaXQgKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUudGV4dCgpKSkgfHxcbiAgICAgICAgJ0Vycm9yIHJlZnJlc2hpbmcgYWNjZXNzIHRva2VuIGluIGZ1c2lvbmF1dGgnO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVRva2VuRXhwaXJhdGlvbigpLCBlO1xuICB9XG4gIGluaXRBdXRvUmVmcmVzaCgpIHtcbiAgICBjb25zdCBlID0gdGhpcy5hdF9leHAsXG4gICAgICB0ID0gdGhpcy5jb25maWcuYXV0b1JlZnJlc2hTZWNvbmRzQmVmb3JlRXhwaXJ5ID8/IDEwO1xuICAgIGlmICghZSkgcmV0dXJuO1xuICAgIGNvbnN0IHMgPSB0ICogMWUzLFxuICAgICAgbyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcbiAgICAgIGggPSBlIC0gcyxcbiAgICAgIGwgPSBNYXRoLm1heChoIC0gbywgMCk7XG4gICAgcmV0dXJuIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IG4sIGE7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbigpLCB0aGlzLmluaXRBdXRvUmVmcmVzaCgpO1xuICAgICAgfSBjYXRjaCAoYykge1xuICAgICAgICAoYSA9IChuID0gdGhpcy5jb25maWcpLm9uQXV0b1JlZnJlc2hGYWlsdXJlKSA9PSBudWxsIHx8IGEuY2FsbChuLCBjKTtcbiAgICAgIH1cbiAgICB9LCBsKTtcbiAgfVxuICBoYW5kbGVQb3N0UmVkaXJlY3QoZSkge1xuICAgIHRoaXMuaXNMb2dnZWRJbiAmJlxuICAgICAgdGhpcy5yZWRpcmVjdEhlbHBlci5kaWRSZWRpcmVjdCAmJlxuICAgICAgdGhpcy5yZWRpcmVjdEhlbHBlci5oYW5kbGVQb3N0UmVkaXJlY3QoZSk7XG4gIH1cbiAgZ2V0IGlzTG9nZ2VkSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXRfZXhwXG4gICAgICA/IHRoaXMuYXRfZXhwID4gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCkuZ2V0VGltZSgpXG4gICAgICA6ICExO1xuICB9XG4gIC8qKiBUaGUgbW9tZW50IG9mIGFjY2VzcyB0b2tlbiBleHBpcmF0aW9uIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaC4gKi9cbiAgZ2V0IGF0X2V4cCgpIHtcbiAgICByZXR1cm4gbSh0aGlzLmNvbmZpZy5hY2Nlc3NUb2tlbkV4cGlyZUNvb2tpZU5hbWUpO1xuICB9XG4gIC8qKiBTY2hlZHVsZXMgYG9uVG9rZW5FeHBpcmF0aW9uYCBhdCBtb21lbnQgb2YgYWNjZXNzIHRva2VuIGV4cGlyYXRpb24uICovXG4gIHNjaGVkdWxlVG9rZW5FeHBpcmF0aW9uKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRva2VuRXhwaXJhdGlvblRpbWVvdXQpO1xuICAgIGNvbnN0IGUgPSB0aGlzLmF0X2V4cCA/PyAtMSxcbiAgICAgIHQgPSAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKS5nZXRUaW1lKCksXG4gICAgICBzID0gZSAtIHQ7XG4gICAgcyA+IDAgJiZcbiAgICAgICh0aGlzLnRva2VuRXhwaXJhdGlvblRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgICB0aGlzLmNvbmZpZy5vblRva2VuRXhwaXJhdGlvbixcbiAgICAgICAgcyxcbiAgICAgICkpO1xuICB9XG59XG5mdW5jdGlvbiBQKCkge1xuICBjb25zdCByID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7XG4gIHIuc2V0SG91cnMoci5nZXRIb3VycygpICsgMSk7XG4gIGNvbnN0IGUgPSByLmdldFRpbWUoKSAvIDFlMztcbiAgZG9jdW1lbnQuY29va2llID0gYGFwcC5hdF9leHA9JHtlfWA7XG59XG5mdW5jdGlvbiBmKCkge1xuICBkb2N1bWVudC5jb29raWUgPSAnYXBwLmF0X2V4cD07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCc7XG59XG5mdW5jdGlvbiB3KHIpIHtcbiAgY29uc3QgZSA9IHtcbiAgICAuLi53aW5kb3cubG9jYXRpb24sXG4gICAgYXNzaWduOiByLmZuKCksXG4gIH07XG4gIHJldHVybiByLnNweU9uKHdpbmRvdywgJ2xvY2F0aW9uJywgJ2dldCcpLm1vY2tSZXR1cm5WYWx1ZShlKSwgZTtcbn1cbmV4cG9ydCB7XG4gIFUgYXMgU0RLQ29yZSxcbiAgUCBhcyBtb2NrSXNMb2dnZWRJbixcbiAgdyBhcyBtb2NrV2luZG93TG9jYXRpb24sXG4gIGYgYXMgcmVtb3ZlQXRfZXhwQ29va2llLFxufTtcbiJdfQ==
@@ -88,4 +88,4 @@ export class FusionAuthService {
88
88
  this.core.startLogout();
89
89
  }
90
90
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9mdXNpb24tYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUFZLE1BQXdCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDdEIsR0FBRyxNQUFNO1lBQ1QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO2dCQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUtELG9HQUFvRztJQUNwRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsU0FHckI7UUFDQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksVUFBVSxDQUFXLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJO2lCQUNOLGFBQWEsRUFBRTtpQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNiLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO2lCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ0wsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTREtDb3JlIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhDb25maWcsIFVzZXJJbmZvIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTZXJ2aWNlIGNsYXNzIHRvIHVzZSB3aXRoIEZ1c2lvbkF1dGggYmFja2VuZCBlbmRwb2ludHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBGdXNpb25BdXRoU2VydmljZSB7XG4gIHByaXZhdGUgY29yZTogU0RLQ29yZTtcbiAgcHJpdmF0ZSBhdXRvUmVmcmVzaFRpbWVyPzogTm9kZUpTLlRpbWVvdXQ7XG4gIHByaXZhdGUgaXNMb2dnZWRJblN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEZ1c2lvbkF1dGhDb25maWcpIHtcbiAgICB0aGlzLmNvcmUgPSBuZXcgU0RLQ29yZSh7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBvblRva2VuRXhwaXJhdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9nZ2VkSW5TdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuaXNMb2dnZWRJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuY29yZS5pc0xvZ2dlZEluKTtcbiAgICB0aGlzLmlzTG9nZ2VkSW4kID0gdGhpcy5pc0xvZ2dlZEluU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMuY29yZS5oYW5kbGVQb3N0UmVkaXJlY3QoY29uZmlnLm9uUmVkaXJlY3QpO1xuXG4gICAgaWYgKGNvbmZpZy5zaG91bGRBdXRvUmVmcmVzaCAmJiB0aGlzLmNvcmUuaXNMb2dnZWRJbikge1xuICAgICAgdGhpcy5pbml0QXV0b1JlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICAvKiogQW4gb2JzZXJ2YWJsZSByZXByZXNlbnRpbmcgd2hldGhlciB0aGUgdXNlciBpcyBsb2dnZWQgaW4uICovXG4gIGlzTG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB3aGV0aGVyIHRoZSB1c2VyIGlzIGxvZ2dlZCBpbi4gVGhpcyByZXR1cm5lZCB2YWx1ZSBpcyBub24tb2JzZXJ2YWJsZS4gKi9cbiAgaXNMb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmlzTG9nZ2VkSW47XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBhY2Nlc3MgdG9rZW4gYSBzaW5nbGUgdGltZS5cbiAgICogQXV0b21hdGljIHRva2VuIHJlZnJlc2hpbmcgY2FuIGJlIGVuYWJsZWQgaWYgdGhlIFNESyBpcyBjb25maWd1cmVkIHdpdGggYHNob3VsZEF1dG9SZWZyZXNoYC5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb3JlLnJlZnJlc2hUb2tlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGF1dG9tYXRpYyBhY2Nlc3MgdG9rZW4gcmVmcmVzaGluZy5cbiAgICogVGhpcyBpcyBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgaWYgdGhlIFNESyBpcyBjb25maWd1cmVkIHdpdGggYHNob3VsZEF1dG9SZWZyZXNoYC5cbiAgICovXG4gIGluaXRBdXRvUmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvUmVmcmVzaFRpbWVyKTtcbiAgICB9XG5cbiAgICB0aGlzLmF1dG9SZWZyZXNoVGltZXIgPSB0aGlzLmNvcmUuaW5pdEF1dG9SZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHJlcXVlc3QgdGhhdCBmZXRjaGVzIHVzZXJJbmZvLCBhbmQgY2F0Y2hlcyBlcnJvci5cbiAgICovXG4gIGdldFVzZXJJbmZvT2JzZXJ2YWJsZShjYWxsYmFja3M/OiB7XG4gICAgb25CZWdpbj86ICgpID0+IHZvaWQ7XG4gICAgb25Eb25lPzogKCkgPT4gdm9pZDtcbiAgfSk6IE9ic2VydmFibGU8VXNlckluZm8+IHtcbiAgICBjYWxsYmFja3M/Lm9uQmVnaW4/LigpO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxVc2VySW5mbz4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy5jb3JlXG4gICAgICAgIC5mZXRjaFVzZXJJbmZvKClcbiAgICAgICAgLnRoZW4odXNlckluZm8gPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQodXNlckluZm8pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIGNhbGxiYWNrcz8ub25Eb25lPy4oKTtcbiAgICAgICAgfSk7XG4gICAgfSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB1c2VySW5mbyBmcm9tIHRoZSAnbWUnIGVuZHBvaW50LlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBpZiBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZy5cbiAgICovXG4gIGFzeW5jIGdldFVzZXJJbmZvKCk6IFByb21pc2U8VXNlckluZm8+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb3JlLmZldGNoVXNlckluZm8oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgbG9naW4gZmxvdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzdGF0ZV0gLSBPcHRpb25hbCB2YWx1ZSB0byBiZSBlY2hvZWQgYmFjayB0byB0aGUgU0RLIHVwb24gcmVkaXJlY3QuXG4gICAqL1xuICBzdGFydExvZ2luKHN0YXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb3JlLnN0YXJ0TG9naW4oc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyByZWdpc3RlciBmbG93LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0YXRlXSAtIE9wdGlvbmFsIHZhbHVlIHRvIGJlIGVjaG9lZCBiYWNrIHRvIHRoZSBTREsgdXBvbiByZWRpcmVjdC5cbiAgICovXG4gIHN0YXJ0UmVnaXN0cmF0aW9uKHN0YXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb3JlLnN0YXJ0UmVnaXN0ZXIoc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBsb2dvdXQgZmxvdy5cbiAgICovXG4gIGxvZ291dCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvcmUuc3RhcnRMb2dvdXQoKTtcbiAgfVxufVxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9mdXNpb24tYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUFZLE1BQXdCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDdEIsR0FBRyxNQUFNO1lBQ1QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO2dCQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUtELG9HQUFvRztJQUNwRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsU0FHckI7UUFDQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksVUFBVSxDQUFXLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJO2lCQUNOLGFBQWEsRUFBRTtpQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNiLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO2lCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ0wsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTREtDb3JlIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhDb25maWcsIFVzZXJJbmZvIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTZXJ2aWNlIGNsYXNzIHRvIHVzZSB3aXRoIEZ1c2lvbkF1dGggYmFja2VuZCBlbmRwb2ludHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBGdXNpb25BdXRoU2VydmljZSB7XG4gIHByaXZhdGUgY29yZTogU0RLQ29yZTtcbiAgcHJpdmF0ZSBhdXRvUmVmcmVzaFRpbWVyPzogTm9kZUpTLlRpbWVvdXQ7XG4gIHByaXZhdGUgaXNMb2dnZWRJblN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEZ1c2lvbkF1dGhDb25maWcpIHtcbiAgICB0aGlzLmNvcmUgPSBuZXcgU0RLQ29yZSh7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBvblRva2VuRXhwaXJhdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9nZ2VkSW5TdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuaXNMb2dnZWRJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuY29yZS5pc0xvZ2dlZEluKTtcbiAgICB0aGlzLmlzTG9nZ2VkSW4kID0gdGhpcy5pc0xvZ2dlZEluU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMuY29yZS5oYW5kbGVQb3N0UmVkaXJlY3QoY29uZmlnLm9uUmVkaXJlY3QpO1xuXG4gICAgaWYgKGNvbmZpZy5zaG91bGRBdXRvUmVmcmVzaCAmJiB0aGlzLmNvcmUuaXNMb2dnZWRJbikge1xuICAgICAgdGhpcy5pbml0QXV0b1JlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICAvKiogQW4gb2JzZXJ2YWJsZSByZXByZXNlbnRpbmcgd2hldGhlciB0aGUgdXNlciBpcyBsb2dnZWQgaW4uICovXG4gIGlzTG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB3aGV0aGVyIHRoZSB1c2VyIGlzIGxvZ2dlZCBpbi4gVGhpcyByZXR1cm5lZCB2YWx1ZSBpcyBub24tb2JzZXJ2YWJsZS4gKi9cbiAgaXNMb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmlzTG9nZ2VkSW47XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBhY2Nlc3MgdG9rZW4gYSBzaW5nbGUgdGltZS5cbiAgICogQXV0b21hdGljIHRva2VuIHJlZnJlc2hpbmcgY2FuIGJlIGVuYWJsZWQgaWYgdGhlIFNESyBpcyBjb25maWd1cmVkIHdpdGggYHNob3VsZEF1dG9SZWZyZXNoYC5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29yZS5yZWZyZXNoVG9rZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhdXRvbWF0aWMgYWNjZXNzIHRva2VuIHJlZnJlc2hpbmcuXG4gICAqIFRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvUmVmcmVzaGAuXG4gICAqL1xuICBpbml0QXV0b1JlZnJlc2goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b1JlZnJlc2hUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b1JlZnJlc2hUaW1lcik7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvUmVmcmVzaFRpbWVyID0gdGhpcy5jb3JlLmluaXRBdXRvUmVmcmVzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSByZXF1ZXN0IHRoYXQgZmV0Y2hlcyB1c2VySW5mbywgYW5kIGNhdGNoZXMgZXJyb3IuXG4gICAqL1xuICBnZXRVc2VySW5mb09ic2VydmFibGUoY2FsbGJhY2tzPzoge1xuICAgIG9uQmVnaW4/OiAoKSA9PiB2b2lkO1xuICAgIG9uRG9uZT86ICgpID0+IHZvaWQ7XG4gIH0pOiBPYnNlcnZhYmxlPFVzZXJJbmZvPiB7XG4gICAgY2FsbGJhY2tzPy5vbkJlZ2luPy4oKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VXNlckluZm8+KG9ic2VydmVyID0+IHtcbiAgICAgIHRoaXMuY29yZVxuICAgICAgICAuZmV0Y2hVc2VySW5mbygpXG4gICAgICAgIC50aGVuKHVzZXJJbmZvID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHVzZXJJbmZvKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICBjYWxsYmFja3M/Lm9uRG9uZT8uKCk7XG4gICAgICAgIH0pO1xuICAgIH0pLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdXNlckluZm8gZnJvbSB0aGUgJ21lJyBlbmRwb2ludC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gaWYgYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcuXG4gICAqL1xuICBhc3luYyBnZXRVc2VySW5mbygpOiBQcm9taXNlPFVzZXJJbmZvPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29yZS5mZXRjaFVzZXJJbmZvKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGxvZ2luIGZsb3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RhdGVdIC0gT3B0aW9uYWwgdmFsdWUgdG8gYmUgZWNob2VkIGJhY2sgdG8gdGhlIFNESyB1cG9uIHJlZGlyZWN0LlxuICAgKi9cbiAgc3RhcnRMb2dpbihzdGF0ZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29yZS5zdGFydExvZ2luKHN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgcmVnaXN0ZXIgZmxvdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzdGF0ZV0gLSBPcHRpb25hbCB2YWx1ZSB0byBiZSBlY2hvZWQgYmFjayB0byB0aGUgU0RLIHVwb24gcmVkaXJlY3QuXG4gICAqL1xuICBzdGFydFJlZ2lzdHJhdGlvbihzdGF0ZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29yZS5zdGFydFJlZ2lzdGVyKHN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgbG9nb3V0IGZsb3cuXG4gICAqL1xuICBsb2dvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb3JlLnN0YXJ0TG9nb3V0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlnIGZvciBGdXNpb25BdXRoIEFuZ3VsYXIgU0RLXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVzaW9uQXV0aENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBzZXJ2ZXIgdGhhdCBwZXJmb3JtcyB0aGUgdG9rZW4gZXhjaGFuZ2UuXG4gICAqL1xuICBzZXJ2ZXJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBpZCBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBjbGllbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgVVJJIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHJlZGlyZWN0VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBPQXV0aDIgc2NvcGUgcGFyYW1ldGVyIHBhc3NlZCB0byB0aGUgYC9vYXV0aDIvYXV0aG9yaXplYCBlbmRwb2ludC4gSWYgbm90IHNwZWNpZmllZCBmdXNpb25hdXRoIHdpbGwgZGVmYXVsdCB0aGlzIHRvIGBvcGVuaWQgb2ZmbGluZV9hY2Nlc3NgLlxuICAgKi9cbiAgc2NvcGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYXV0b21hdGljIHRva2VuIHJlZnJlc2hpbmcuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgc2hvdWxkQXV0b1JlZnJlc2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIHRoZSBhY2Nlc3MgdG9rZW4gZXhwaXJ5IHdoZW4gdGhlIGF1dG8gcmVmcmVzaCBmdW5jdGlvbmFsaXR5IGtpY2tzIGluIGlmIGVuYWJsZWQuIERlZmF1bHQgaXMgMTAuXG4gICAqL1xuICBhdXRvUmVmcmVzaFNlY29uZHNCZWZvcmVFeHBpcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2l0aCB0aGUgYHN0YXRlYCB2YWx1ZSB1cG9uIHJlZGlyZWN0IGZyb20gbG9naW4gb3IgcmVnaXN0ZXIuXG4gICAqL1xuICBvblJlZGlyZWN0PzogKHN0YXRlPzogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbG9naW4gZW5kcG9pbnQuXG4gICAqL1xuICBsb2dpblBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSByZWdpc3RlciBlbmRwb2ludC5cbiAgICovXG4gIHJlZ2lzdGVyUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGxvZ291dCBlbmRwb2ludC5cbiAgICovXG4gIGxvZ291dFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSB0b2tlbiByZWZyZXNoIGVuZHBvaW50LlxuICAgKi9cbiAgdG9rZW5SZWZyZXNoUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIG1lIGVuZHBvaW50LlxuICAgKi9cbiAgbWVQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbmZvIHtcbiAgYXBwbGljYXRpb25JZD86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGVtYWlsX3ZlcmlmaWVkPzogYm9vbGVhbjtcbiAgZmFtaWx5X25hbWU/OiBzdHJpbmc7XG4gIGdpdmVuX25hbWU/OiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIHJvbGVzPzogYW55W107XG4gIHNpZD86IHN0cmluZztcbiAgc3ViPzogc3RyaW5nO1xuICB0aWQ/OiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlnIGZvciBGdXNpb25BdXRoIEFuZ3VsYXIgU0RLXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVzaW9uQXV0aENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBzZXJ2ZXIgdGhhdCBwZXJmb3JtcyB0aGUgdG9rZW4gZXhjaGFuZ2UuXG4gICAqL1xuICBzZXJ2ZXJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBpZCBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBjbGllbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgVVJJIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHJlZGlyZWN0VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBPQXV0aDIgc2NvcGUgcGFyYW1ldGVyIHBhc3NlZCB0byB0aGUgYC9vYXV0aDIvYXV0aG9yaXplYCBlbmRwb2ludC4gSWYgbm90IHNwZWNpZmllZCBmdXNpb25hdXRoIHdpbGwgZGVmYXVsdCB0aGlzIHRvIGBvcGVuaWQgb2ZmbGluZV9hY2Nlc3NgLlxuICAgKi9cbiAgc2NvcGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYXV0b21hdGljIHRva2VuIHJlZnJlc2hpbmcuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgc2hvdWxkQXV0b1JlZnJlc2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIHRoZSBhY2Nlc3MgdG9rZW4gZXhwaXJ5IHdoZW4gdGhlIGF1dG8gcmVmcmVzaCBmdW5jdGlvbmFsaXR5IGtpY2tzIGluIGlmIGVuYWJsZWQuIERlZmF1bHQgaXMgMTAuXG4gICAqL1xuICBhdXRvUmVmcmVzaFNlY29uZHNCZWZvcmVFeHBpcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2l0aCB0aGUgYHN0YXRlYCB2YWx1ZSB1cG9uIHJlZGlyZWN0IGZyb20gbG9naW4gb3IgcmVnaXN0ZXIuXG4gICAqL1xuICBvblJlZGlyZWN0PzogKHN0YXRlPzogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBiZSBpbnZva2VkIGlmIGEgcmVxdWVzdCB0byByZWZyZXNoIHRoZSBhY2Nlc3MgdG9rZW4gZmFpbHMgZHVyaW5nIGF1dG9yZWZyZXNoLlxuICAgKi9cbiAgb25BdXRvUmVmcmVzaEZhaWx1cmU/OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbG9naW4gZW5kcG9pbnQuXG4gICAqL1xuICBsb2dpblBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSByZWdpc3RlciBlbmRwb2ludC5cbiAgICovXG4gIHJlZ2lzdGVyUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGxvZ291dCBlbmRwb2ludC5cbiAgICovXG4gIGxvZ291dFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSB0b2tlbiByZWZyZXNoIGVuZHBvaW50LlxuICAgKi9cbiAgdG9rZW5SZWZyZXNoUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIG1lIGVuZHBvaW50LlxuICAgKi9cbiAgbWVQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbmZvIHtcbiAgYXBwbGljYXRpb25JZD86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGVtYWlsX3ZlcmlmaWVkPzogYm9vbGVhbjtcbiAgZmFtaWx5X25hbWU/OiBzdHJpbmc7XG4gIGdpdmVuX25hbWU/OiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIHJvbGVzPzogYW55W107XG4gIHNpZD86IHN0cmluZztcbiAgc3ViPzogc3RyaW5nO1xuICB0aWQ/OiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cbiJdfQ==
@@ -62,77 +62,20 @@ class g {
62
62
  generateUrl(e, t) {
63
63
  const s = new URL(this.serverUrl);
64
64
  if (((s.pathname = e), t)) {
65
- const n = this.generateURLSearchParams(t);
66
- s.search = n.toString();
65
+ const o = this.generateURLSearchParams(t);
66
+ s.search = o.toString();
67
67
  }
68
68
  return s;
69
69
  }
70
70
  generateURLSearchParams(e) {
71
71
  const t = new URLSearchParams();
72
- return (Object.entries(e).forEach(([s, n]) => {
73
- n && t.append(s, n);
72
+ return (Object.entries(e).forEach(([s, o]) => {
73
+ o && t.append(s, o);
74
74
  }),
75
75
  t);
76
76
  }
77
77
  }
78
- class o {
79
- /**
80
- * Parses document.cookie for the access token expiration cookie value.
81
- * @returns {(number | null)} The moment of expiration in milliseconds since epoch.
82
- */
83
- static getAccessTokenExpirationMoment(e = 'app.at_exp') {
84
- const t = document.cookie
85
- .split('; ')
86
- .map(n => n.split('='))
87
- .find(([n]) => n === e), s = t == null ? void 0 : t[1];
88
- return s ? parseInt(s) * 1e3 : null;
89
- }
90
- }
91
78
  class p {
92
- constructor(e) {
93
- i(this, 'url');
94
- this.url = e;
95
- }
96
- /** Refresh token a single time */
97
- async refreshToken() {
98
- const e = await fetch(this.url.href, {
99
- method: 'POST',
100
- credentials: 'include',
101
- headers: {
102
- 'Content-Type': 'text/plain',
103
- },
104
- });
105
- if (!(e.status >= 200 && e.status < 300))
106
- throw new Error('error refreshing access token in fusionauth');
107
- }
108
- /** Initializes continuous automatic token refresh. */
109
- initAutoRefresh(e = 10, t) {
110
- const s = o.getAccessTokenExpirationMoment(t);
111
- if (!s)
112
- return;
113
- const n = e * 1e3, a = /* @__PURE__ */ new Date().getTime(), h = s - n, c = Math.max(h - a, 0);
114
- return setTimeout(async () => {
115
- try {
116
- await this.refreshToken(), this.initAutoRefresh(e);
117
- }
118
- catch (l) {
119
- console.error(l);
120
- }
121
- }, c);
122
- }
123
- }
124
- class m {
125
- /**
126
- * Schedules a callback to be invoked at the given moment.
127
- * @param expirationMoment - the access token expiration moment in milliseconds since the epoch.
128
- * @param onExpiration - the callback to be invoked at the `expirationMoment`.
129
- */
130
- static scheduleTokenExpirationCallback(e, t) {
131
- const s = /* @__PURE__ */ new Date().getTime(), n = e - s;
132
- n > 0 && setTimeout(t, n);
133
- }
134
- }
135
- class R {
136
79
  constructor() {
137
80
  i(this, 'REDIRECT_VALUE', 'fa-sdk-redirect-value');
138
81
  }
@@ -160,12 +103,19 @@ class R {
160
103
  Array.from(e, t => ('0' + t.toString(16)).substring(-2)).join(''));
161
104
  }
162
105
  }
163
- class T {
106
+ function m(r = 'app.at_exp') {
107
+ const e = document.cookie
108
+ .split('; ')
109
+ .map(s => s.split('='))
110
+ .find(([s]) => s === r), t = e == null ? void 0 : e[1];
111
+ return t ? parseInt(t) * 1e3 : null;
112
+ }
113
+ class U {
164
114
  constructor(e) {
165
115
  i(this, 'config');
166
116
  i(this, 'urlHelper');
167
- i(this, 'tokenRefresher');
168
- i(this, 'redirectHelper', new R());
117
+ i(this, 'redirectHelper', new p());
118
+ i(this, 'tokenExpirationTimeout');
169
119
  (this.config = e),
170
120
  (this.urlHelper = new g({
171
121
  serverUrl: e.serverUrl,
@@ -178,8 +128,7 @@ class T {
178
128
  logoutPath: e.logoutPath,
179
129
  tokenRefreshPath: e.tokenRefreshPath,
180
130
  })),
181
- (this.tokenRefresher = new p(this.urlHelper.getTokenRefreshUrl())),
182
- this.scheduleTokenExpirationEvent();
131
+ this.scheduleTokenExpiration();
183
132
  }
184
133
  startLogin(e) {
185
134
  this.redirectHelper.handlePreRedirect(e),
@@ -201,10 +150,34 @@ class T {
201
150
  return await e.json();
202
151
  }
203
152
  async refreshToken() {
204
- return await this.tokenRefresher.refreshToken();
153
+ const e = await fetch(this.urlHelper.getTokenRefreshUrl(), {
154
+ method: 'POST',
155
+ credentials: 'include',
156
+ headers: {
157
+ 'Content-Type': 'text/plain',
158
+ },
159
+ });
160
+ if (!(e.status >= 200 && e.status < 300)) {
161
+ const t = (await (e == null ? void 0 : e.text())) ||
162
+ 'Error refreshing access token in fusionauth';
163
+ throw new Error(t);
164
+ }
165
+ return this.scheduleTokenExpiration(), e;
205
166
  }
206
167
  initAutoRefresh() {
207
- return this.tokenRefresher.initAutoRefresh(this.config.autoRefreshSecondsBeforeExpiry, this.config.accessTokenExpireCookieName);
168
+ const e = this.at_exp, t = this.config.autoRefreshSecondsBeforeExpiry ?? 10;
169
+ if (!e)
170
+ return;
171
+ const s = t * 1e3, o = /* @__PURE__ */ new Date().getTime(), h = e - s, l = Math.max(h - o, 0);
172
+ return setTimeout(async () => {
173
+ let n, a;
174
+ try {
175
+ await this.refreshToken(), this.initAutoRefresh();
176
+ }
177
+ catch (c) {
178
+ (a = (n = this.config).onAutoRefreshFailure) == null || a.call(n, c);
179
+ }
180
+ }, l);
208
181
  }
209
182
  handlePostRedirect(e) {
210
183
  this.isLoggedIn &&
@@ -212,29 +185,32 @@ class T {
212
185
  this.redirectHelper.handlePostRedirect(e);
213
186
  }
214
187
  get isLoggedIn() {
215
- return this.accessTokenExpirationMoment
216
- ? this.accessTokenExpirationMoment > /* @__PURE__ */ new Date().getTime()
188
+ return this.at_exp
189
+ ? this.at_exp > /* @__PURE__ */ new Date().getTime()
217
190
  : !1;
218
191
  }
219
- get accessTokenExpirationMoment() {
220
- return o.getAccessTokenExpirationMoment(this.config.accessTokenExpireCookieName);
192
+ /** The moment of access token expiration in milliseconds since epoch. */
193
+ get at_exp() {
194
+ return m(this.config.accessTokenExpireCookieName);
221
195
  }
222
- scheduleTokenExpirationEvent() {
223
- this.accessTokenExpirationMoment &&
224
- this.config.onTokenExpiration &&
225
- m.scheduleTokenExpirationCallback(this.accessTokenExpirationMoment, this.config.onTokenExpiration);
196
+ /** Schedules `onTokenExpiration` at moment of access token expiration. */
197
+ scheduleTokenExpiration() {
198
+ clearTimeout(this.tokenExpirationTimeout);
199
+ const e = this.at_exp ?? -1, t = /* @__PURE__ */ new Date().getTime(), s = e - t;
200
+ s > 0 &&
201
+ (this.tokenExpirationTimeout = setTimeout(this.config.onTokenExpiration, s));
226
202
  }
227
203
  }
228
- function U() {
204
+ function P() {
229
205
  const r = /* @__PURE__ */ new Date();
230
206
  r.setHours(r.getHours() + 1);
231
207
  const e = r.getTime() / 1e3;
232
208
  document.cookie = `app.at_exp=${e}`;
233
209
  }
234
- function P() {
210
+ function f() {
235
211
  document.cookie = 'app.at_exp=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
236
212
  }
237
- function E(r) {
213
+ function w(r) {
238
214
  const e = {
239
215
  ...window.location,
240
216
  assign: r.fn(),
@@ -247,7 +223,7 @@ function E(r) {
247
223
  */
248
224
  class FusionAuthService {
249
225
  constructor(config) {
250
- this.core = new T({
226
+ this.core = new U({
251
227
  ...config,
252
228
  onTokenExpiration: () => {
253
229
  this.isLoggedInSubject.next(false);
@@ -1 +1 @@
1
- {"version":3,"file":"fusionauth-angular-sdk.mjs","sources":["../../../projects/fusionauth-angular-sdk/src/lib/core.ts","../../../projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/fusion-auth.module.ts","../../../projects/fusionauth-angular-sdk/src/public-api.ts","../../../projects/fusionauth-angular-sdk/src/fusionauth-angular-sdk.ts"],"sourcesContent":["// @ts-nocheck\nconst u = Object.defineProperty;\nconst d = (r, e, t) =>\n e in r\n ? u(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t })\n : (r[e] = t);\nconst i = (r, e, t) => (d(r, typeof e != 'symbol' ? e + '' : e, t), t);\nclass g {\n constructor(e) {\n i(this, 'serverUrl');\n i(this, 'clientId');\n i(this, 'redirectUri');\n i(this, 'scope');\n i(this, 'mePath');\n i(this, 'loginPath');\n i(this, 'registerPath');\n i(this, 'logoutPath');\n i(this, 'tokenRefreshPath');\n (this.serverUrl = e.serverUrl),\n (this.clientId = e.clientId),\n (this.redirectUri = e.redirectUri),\n (this.scope = e.scope),\n (this.mePath = e.mePath ?? '/app/me'),\n (this.loginPath = e.loginPath ?? '/app/login'),\n (this.registerPath = e.registerPath ?? '/app/register'),\n (this.logoutPath = e.logoutPath ?? '/app/logout'),\n (this.tokenRefreshPath = e.tokenRefreshPath ?? '/app/refresh');\n }\n getMeUrl() {\n return this.generateUrl(this.mePath);\n }\n getLoginUrl(e) {\n return this.generateUrl(this.loginPath, {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n scope: this.scope,\n state: e,\n });\n }\n getRegisterUrl(e) {\n return this.generateUrl(this.registerPath, {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n scope: this.scope,\n state: e,\n });\n }\n getLogoutUrl() {\n return this.generateUrl(this.logoutPath, {\n client_id: this.clientId,\n post_logout_redirect_uri: this.redirectUri,\n });\n }\n getTokenRefreshUrl() {\n return this.generateUrl(this.tokenRefreshPath, {\n client_id: this.clientId,\n });\n }\n generateUrl(e, t) {\n const s = new URL(this.serverUrl);\n if (((s.pathname = e), t)) {\n const n = this.generateURLSearchParams(t);\n s.search = n.toString();\n }\n return s;\n }\n generateURLSearchParams(e) {\n const t = new URLSearchParams();\n return (\n Object.entries(e).forEach(([s, n]) => {\n n && t.append(s, n);\n }),\n t\n );\n }\n}\nclass o {\n /**\n * Parses document.cookie for the access token expiration cookie value.\n * @returns {(number | null)} The moment of expiration in milliseconds since epoch.\n */\n static getAccessTokenExpirationMoment(e = 'app.at_exp') {\n const t = document.cookie\n .split('; ')\n .map(n => n.split('='))\n .find(([n]) => n === e),\n s = t == null ? void 0 : t[1];\n return s ? parseInt(s) * 1e3 : null;\n }\n}\nclass p {\n constructor(e) {\n i(this, 'url');\n this.url = e;\n }\n /** Refresh token a single time */\n async refreshToken() {\n const e = await fetch(this.url.href, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'text/plain',\n },\n });\n if (!(e.status >= 200 && e.status < 300))\n throw new Error('error refreshing access token in fusionauth');\n }\n /** Initializes continuous automatic token refresh. */\n initAutoRefresh(e = 10, t) {\n const s = o.getAccessTokenExpirationMoment(t);\n if (!s) return;\n const n = e * 1e3,\n a = /* @__PURE__ */ new Date().getTime(),\n h = s - n,\n c = Math.max(h - a, 0);\n return setTimeout(async () => {\n try {\n await this.refreshToken(), this.initAutoRefresh(e);\n } catch (l) {\n console.error(l);\n }\n }, c);\n }\n}\nclass m {\n /**\n * Schedules a callback to be invoked at the given moment.\n * @param expirationMoment - the access token expiration moment in milliseconds since the epoch.\n * @param onExpiration - the callback to be invoked at the `expirationMoment`.\n */\n static scheduleTokenExpirationCallback(e, t) {\n const s = /* @__PURE__ */ new Date().getTime(),\n n = e - s;\n n > 0 && setTimeout(t, n);\n }\n}\nclass R {\n constructor() {\n i(this, 'REDIRECT_VALUE', 'fa-sdk-redirect-value');\n }\n handlePreRedirect(e) {\n const t = `${this.generateRandomString()}:${e ?? ''}`;\n localStorage.setItem(this.REDIRECT_VALUE, t);\n }\n handlePostRedirect(e) {\n const t = this.stateValue ?? void 0;\n e == null || e(t), localStorage.removeItem(this.REDIRECT_VALUE);\n }\n get didRedirect() {\n return !!localStorage.getItem(this.REDIRECT_VALUE);\n }\n get stateValue() {\n const e = localStorage.getItem(this.REDIRECT_VALUE);\n if (!e) return null;\n const [, ...t] = e.split(':');\n return t.join(':');\n }\n generateRandomString() {\n const e = new Uint32Array(28);\n return (\n window.crypto.getRandomValues(e),\n Array.from(e, t => ('0' + t.toString(16)).substring(-2)).join('')\n );\n }\n}\nclass T {\n constructor(e) {\n i(this, 'config');\n i(this, 'urlHelper');\n i(this, 'tokenRefresher');\n i(this, 'redirectHelper', new R());\n (this.config = e),\n (this.urlHelper = new g({\n serverUrl: e.serverUrl,\n clientId: e.clientId,\n redirectUri: e.redirectUri,\n scope: e.scope,\n mePath: e.mePath,\n loginPath: e.loginPath,\n registerPath: e.registerPath,\n logoutPath: e.logoutPath,\n tokenRefreshPath: e.tokenRefreshPath,\n })),\n (this.tokenRefresher = new p(this.urlHelper.getTokenRefreshUrl())),\n this.scheduleTokenExpirationEvent();\n }\n startLogin(e) {\n this.redirectHelper.handlePreRedirect(e),\n window.location.assign(this.urlHelper.getLoginUrl(e));\n }\n startRegister(e) {\n this.redirectHelper.handlePreRedirect(e),\n window.location.assign(this.urlHelper.getRegisterUrl(e));\n }\n startLogout() {\n window.location.assign(this.urlHelper.getLogoutUrl());\n }\n async fetchUserInfo() {\n const e = await fetch(this.urlHelper.getMeUrl(), {\n credentials: 'include',\n });\n if (!e.ok)\n throw new Error(\n `Unable to fetch userInfo in fusionauth. Request failed with status code ${e == null ? void 0 : e.status}`,\n );\n return await e.json();\n }\n async refreshToken() {\n return await this.tokenRefresher.refreshToken();\n }\n initAutoRefresh() {\n return this.tokenRefresher.initAutoRefresh(\n this.config.autoRefreshSecondsBeforeExpiry,\n this.config.accessTokenExpireCookieName,\n );\n }\n handlePostRedirect(e) {\n this.isLoggedIn &&\n this.redirectHelper.didRedirect &&\n this.redirectHelper.handlePostRedirect(e);\n }\n get isLoggedIn() {\n return this.accessTokenExpirationMoment\n ? this.accessTokenExpirationMoment > /* @__PURE__ */ new Date().getTime()\n : !1;\n }\n get accessTokenExpirationMoment() {\n return o.getAccessTokenExpirationMoment(\n this.config.accessTokenExpireCookieName,\n );\n }\n scheduleTokenExpirationEvent() {\n this.accessTokenExpirationMoment &&\n this.config.onTokenExpiration &&\n m.scheduleTokenExpirationCallback(\n this.accessTokenExpirationMoment,\n this.config.onTokenExpiration,\n );\n }\n}\nfunction U() {\n const r = /* @__PURE__ */ new Date();\n r.setHours(r.getHours() + 1);\n const e = r.getTime() / 1e3;\n document.cookie = `app.at_exp=${e}`;\n}\nfunction P() {\n document.cookie = 'app.at_exp=;expires=Thu, 01 Jan 1970 00:00:00 GMT';\n}\nfunction E(r) {\n const e = {\n ...window.location,\n assign: r.fn(),\n };\n return r.spyOn(window, 'location', 'get').mockReturnValue(e), e;\n}\nexport {\n o as CookieHelpers,\n T as SDKCore,\n p as TokenRefresher,\n g as UrlHelper,\n U as mockIsLoggedIn,\n E as mockWindowLocation,\n P as removeAt_expCookie,\n};\n","import { SDKCore } from './core';\nimport { FusionAuthConfig, UserInfo } from './types';\nimport { Observable, catchError, BehaviorSubject } from 'rxjs';\n\n/**\n * Service class to use with FusionAuth backend endpoints.\n */\nexport class FusionAuthService {\n private core: SDKCore;\n private autoRefreshTimer?: NodeJS.Timeout;\n private isLoggedInSubject: BehaviorSubject<boolean>;\n\n constructor(config: FusionAuthConfig) {\n this.core = new SDKCore({\n ...config,\n onTokenExpiration: () => {\n this.isLoggedInSubject.next(false);\n },\n });\n\n this.isLoggedInSubject = new BehaviorSubject(this.core.isLoggedIn);\n this.isLoggedIn$ = this.isLoggedInSubject.asObservable();\n\n this.core.handlePostRedirect(config.onRedirect);\n\n if (config.shouldAutoRefresh && this.core.isLoggedIn) {\n this.initAutoRefresh();\n }\n }\n\n /** An observable representing whether the user is logged in. */\n isLoggedIn$: Observable<boolean>;\n\n /** A function that returns whether the user is logged in. This returned value is non-observable. */\n isLoggedIn() {\n return this.core.isLoggedIn;\n }\n\n /**\n * Refreshes the access token a single time.\n * Automatic token refreshing can be enabled if the SDK is configured with `shouldAutoRefresh`.\n */\n async refreshToken(): Promise<void> {\n return await this.core.refreshToken();\n }\n\n /**\n * Initializes automatic access token refreshing.\n * This is handled automatically if the SDK is configured with `shouldAutoRefresh`.\n */\n initAutoRefresh(): void {\n if (this.autoRefreshTimer) {\n clearTimeout(this.autoRefreshTimer);\n }\n\n this.autoRefreshTimer = this.core.initAutoRefresh();\n }\n\n /**\n * Returns an observable request that fetches userInfo, and catches error.\n */\n getUserInfoObservable(callbacks?: {\n onBegin?: () => void;\n onDone?: () => void;\n }): Observable<UserInfo> {\n callbacks?.onBegin?.();\n return new Observable<UserInfo>(observer => {\n this.core\n .fetchUserInfo()\n .then(userInfo => {\n observer.next(userInfo);\n })\n .catch(error => {\n observer.error(error);\n })\n .finally(() => {\n callbacks?.onDone?.();\n });\n }).pipe(\n catchError(error => {\n throw error;\n }),\n );\n }\n\n /**\n * Fetches userInfo from the 'me' endpoint.\n * @throws {Error} - if an error occurred while fetching.\n */\n async getUserInfo(): Promise<UserInfo> {\n return await this.core.fetchUserInfo();\n }\n\n /**\n * Initiates login flow.\n * @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.\n */\n startLogin(state?: string): void {\n this.core.startLogin(state);\n }\n\n /**\n * Initiates register flow.\n * @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.\n */\n startRegistration(state?: string): void {\n this.core.startRegister(state);\n }\n\n /**\n * Initiates logout flow.\n */\n logout(): void {\n this.core.startLogout();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-login',\n templateUrl: './fusion-auth-login-button.component.html',\n styleUrls: ['./fusion-auth-login-button.component.scss'],\n})\nexport class FusionAuthLoginButtonComponent {\n @Input() state: string | undefined;\n\n constructor(private fusionAuth: FusionAuthService) {}\n\n login() {\n this.fusionAuth.startLogin(this.state);\n }\n}\n","<button class=\"fa-button\" (click)=\"login()\">\n <span>Login</span>\n</button>\n","import { Component } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-logout',\n templateUrl: './fusion-auth-logout-button.component.html',\n styleUrls: ['./fusion-auth-logout-button.component.scss'],\n})\nexport class FusionAuthLogoutButtonComponent {\n constructor(private fusionAuth: FusionAuthService) {}\n\n logout() {\n this.fusionAuth.logout();\n }\n}\n","<button class=\"fa-logout-button\" (click)=\"logout()\">\n <span>logout</span>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-register',\n templateUrl: './fusion-auth-register-button.component.html',\n styleUrls: ['./fusion-auth-register-button.component.scss'],\n})\nexport class FusionAuthRegisterButtonComponent {\n @Input() state: string | undefined;\n\n constructor(private fusionAuth: FusionAuthService) {}\n\n register() {\n this.fusionAuth.startRegistration(this.state);\n }\n}\n","<button class=\"fa-button\" (click)=\"register()\">\n <span>Register Now</span>\n</button>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FusionAuthConfig } from './types';\nimport { FusionAuthService } from './fusion-auth.service';\nimport { FusionAuthLoginButtonComponent } from './components/fusionauth-login.button/fusion-auth-login-button.component';\nimport { FusionAuthLogoutButtonComponent } from './components/fusionauth-logout.button/fusion-auth-logout-button.component';\nimport { FusionAuthRegisterButtonComponent } from './components/fusionauth-register.button/fusion-auth-register-button.component';\n\n@NgModule({\n declarations: [\n FusionAuthLoginButtonComponent,\n FusionAuthLogoutButtonComponent,\n FusionAuthRegisterButtonComponent,\n ],\n imports: [],\n exports: [\n FusionAuthLoginButtonComponent,\n FusionAuthLogoutButtonComponent,\n FusionAuthRegisterButtonComponent,\n ],\n})\nexport class FusionAuthModule {\n static forRoot(\n fusionAuthConfig: FusionAuthConfig,\n ): ModuleWithProviders<FusionAuthModule> {\n return {\n ngModule: FusionAuthModule,\n providers: [\n {\n provide: FusionAuthService,\n useValue: new FusionAuthService(fusionAuthConfig),\n },\n ],\n };\n }\n}\n","/*\n * Public API Surface of fusionauth-angular-sdk\n */\n\nexport * from './lib/fusion-auth.service';\nexport * from './lib/components/fusionauth-login.button/fusion-auth-login-button.component';\nexport * from './lib/components/fusionauth-logout.button/fusion-auth-logout-button.component';\nexport * from './lib/components/fusionauth-register.button/fusion-auth-register-button.component';\nexport * from './lib/fusion-auth.module';\nexport * from './lib/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["SDKCore","i1.FusionAuthService"],"mappings":"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"}
1
+ {"version":3,"file":"fusionauth-angular-sdk.mjs","sources":["../../../projects/fusionauth-angular-sdk/src/lib/core.ts","../../../projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/fusion-auth.module.ts","../../../projects/fusionauth-angular-sdk/src/public-api.ts","../../../projects/fusionauth-angular-sdk/src/fusionauth-angular-sdk.ts"],"sourcesContent":["// @ts-nocheck\nconst u = Object.defineProperty;\nconst d = (r, e, t) =>\n e in r\n ? u(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t })\n : (r[e] = t);\nconst i = (r, e, t) => (d(r, typeof e != 'symbol' ? e + '' : e, t), t);\nclass g {\n constructor(e) {\n i(this, 'serverUrl');\n i(this, 'clientId');\n i(this, 'redirectUri');\n i(this, 'scope');\n i(this, 'mePath');\n i(this, 'loginPath');\n i(this, 'registerPath');\n i(this, 'logoutPath');\n i(this, 'tokenRefreshPath');\n (this.serverUrl = e.serverUrl),\n (this.clientId = e.clientId),\n (this.redirectUri = e.redirectUri),\n (this.scope = e.scope),\n (this.mePath = e.mePath ?? '/app/me'),\n (this.loginPath = e.loginPath ?? '/app/login'),\n (this.registerPath = e.registerPath ?? '/app/register'),\n (this.logoutPath = e.logoutPath ?? '/app/logout'),\n (this.tokenRefreshPath = e.tokenRefreshPath ?? '/app/refresh');\n }\n getMeUrl() {\n return this.generateUrl(this.mePath);\n }\n getLoginUrl(e) {\n return this.generateUrl(this.loginPath, {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n scope: this.scope,\n state: e,\n });\n }\n getRegisterUrl(e) {\n return this.generateUrl(this.registerPath, {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n scope: this.scope,\n state: e,\n });\n }\n getLogoutUrl() {\n return this.generateUrl(this.logoutPath, {\n client_id: this.clientId,\n post_logout_redirect_uri: this.redirectUri,\n });\n }\n getTokenRefreshUrl() {\n return this.generateUrl(this.tokenRefreshPath, {\n client_id: this.clientId,\n });\n }\n generateUrl(e, t) {\n const s = new URL(this.serverUrl);\n if (((s.pathname = e), t)) {\n const o = this.generateURLSearchParams(t);\n s.search = o.toString();\n }\n return s;\n }\n generateURLSearchParams(e) {\n const t = new URLSearchParams();\n return (\n Object.entries(e).forEach(([s, o]) => {\n o && t.append(s, o);\n }),\n t\n );\n }\n}\nclass p {\n constructor() {\n i(this, 'REDIRECT_VALUE', 'fa-sdk-redirect-value');\n }\n handlePreRedirect(e) {\n const t = `${this.generateRandomString()}:${e ?? ''}`;\n localStorage.setItem(this.REDIRECT_VALUE, t);\n }\n handlePostRedirect(e) {\n const t = this.stateValue ?? void 0;\n e == null || e(t), localStorage.removeItem(this.REDIRECT_VALUE);\n }\n get didRedirect() {\n return !!localStorage.getItem(this.REDIRECT_VALUE);\n }\n get stateValue() {\n const e = localStorage.getItem(this.REDIRECT_VALUE);\n if (!e) return null;\n const [, ...t] = e.split(':');\n return t.join(':');\n }\n generateRandomString() {\n const e = new Uint32Array(28);\n return (\n window.crypto.getRandomValues(e),\n Array.from(e, t => ('0' + t.toString(16)).substring(-2)).join('')\n );\n }\n}\nfunction m(r = 'app.at_exp') {\n const e = document.cookie\n .split('; ')\n .map(s => s.split('='))\n .find(([s]) => s === r),\n t = e == null ? void 0 : e[1];\n return t ? parseInt(t) * 1e3 : null;\n}\nclass U {\n constructor(e) {\n i(this, 'config');\n i(this, 'urlHelper');\n i(this, 'redirectHelper', new p());\n i(this, 'tokenExpirationTimeout');\n (this.config = e),\n (this.urlHelper = new g({\n serverUrl: e.serverUrl,\n clientId: e.clientId,\n redirectUri: e.redirectUri,\n scope: e.scope,\n mePath: e.mePath,\n loginPath: e.loginPath,\n registerPath: e.registerPath,\n logoutPath: e.logoutPath,\n tokenRefreshPath: e.tokenRefreshPath,\n })),\n this.scheduleTokenExpiration();\n }\n startLogin(e) {\n this.redirectHelper.handlePreRedirect(e),\n window.location.assign(this.urlHelper.getLoginUrl(e));\n }\n startRegister(e) {\n this.redirectHelper.handlePreRedirect(e),\n window.location.assign(this.urlHelper.getRegisterUrl(e));\n }\n startLogout() {\n window.location.assign(this.urlHelper.getLogoutUrl());\n }\n async fetchUserInfo() {\n const e = await fetch(this.urlHelper.getMeUrl(), {\n credentials: 'include',\n });\n if (!e.ok)\n throw new Error(\n `Unable to fetch userInfo in fusionauth. Request failed with status code ${e == null ? void 0 : e.status}`,\n );\n return await e.json();\n }\n async refreshToken() {\n const e = await fetch(this.urlHelper.getTokenRefreshUrl(), {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'text/plain',\n },\n });\n if (!(e.status >= 200 && e.status < 300)) {\n const t =\n (await (e == null ? void 0 : e.text())) ||\n 'Error refreshing access token in fusionauth';\n throw new Error(t);\n }\n return this.scheduleTokenExpiration(), e;\n }\n initAutoRefresh() {\n const e = this.at_exp,\n t = this.config.autoRefreshSecondsBeforeExpiry ?? 10;\n if (!e) return;\n const s = t * 1e3,\n o = /* @__PURE__ */ new Date().getTime(),\n h = e - s,\n l = Math.max(h - o, 0);\n return setTimeout(async () => {\n let n, a;\n try {\n await this.refreshToken(), this.initAutoRefresh();\n } catch (c) {\n (a = (n = this.config).onAutoRefreshFailure) == null || a.call(n, c);\n }\n }, l);\n }\n handlePostRedirect(e) {\n this.isLoggedIn &&\n this.redirectHelper.didRedirect &&\n this.redirectHelper.handlePostRedirect(e);\n }\n get isLoggedIn() {\n return this.at_exp\n ? this.at_exp > /* @__PURE__ */ new Date().getTime()\n : !1;\n }\n /** The moment of access token expiration in milliseconds since epoch. */\n get at_exp() {\n return m(this.config.accessTokenExpireCookieName);\n }\n /** Schedules `onTokenExpiration` at moment of access token expiration. */\n scheduleTokenExpiration() {\n clearTimeout(this.tokenExpirationTimeout);\n const e = this.at_exp ?? -1,\n t = /* @__PURE__ */ new Date().getTime(),\n s = e - t;\n s > 0 &&\n (this.tokenExpirationTimeout = setTimeout(\n this.config.onTokenExpiration,\n s,\n ));\n }\n}\nfunction P() {\n const r = /* @__PURE__ */ new Date();\n r.setHours(r.getHours() + 1);\n const e = r.getTime() / 1e3;\n document.cookie = `app.at_exp=${e}`;\n}\nfunction f() {\n document.cookie = 'app.at_exp=;expires=Thu, 01 Jan 1970 00:00:00 GMT';\n}\nfunction w(r) {\n const e = {\n ...window.location,\n assign: r.fn(),\n };\n return r.spyOn(window, 'location', 'get').mockReturnValue(e), e;\n}\nexport {\n U as SDKCore,\n P as mockIsLoggedIn,\n w as mockWindowLocation,\n f as removeAt_expCookie,\n};\n","import { SDKCore } from './core';\nimport { FusionAuthConfig, UserInfo } from './types';\nimport { Observable, catchError, BehaviorSubject } from 'rxjs';\n\n/**\n * Service class to use with FusionAuth backend endpoints.\n */\nexport class FusionAuthService {\n private core: SDKCore;\n private autoRefreshTimer?: NodeJS.Timeout;\n private isLoggedInSubject: BehaviorSubject<boolean>;\n\n constructor(config: FusionAuthConfig) {\n this.core = new SDKCore({\n ...config,\n onTokenExpiration: () => {\n this.isLoggedInSubject.next(false);\n },\n });\n\n this.isLoggedInSubject = new BehaviorSubject(this.core.isLoggedIn);\n this.isLoggedIn$ = this.isLoggedInSubject.asObservable();\n\n this.core.handlePostRedirect(config.onRedirect);\n\n if (config.shouldAutoRefresh && this.core.isLoggedIn) {\n this.initAutoRefresh();\n }\n }\n\n /** An observable representing whether the user is logged in. */\n isLoggedIn$: Observable<boolean>;\n\n /** A function that returns whether the user is logged in. This returned value is non-observable. */\n isLoggedIn() {\n return this.core.isLoggedIn;\n }\n\n /**\n * Refreshes the access token a single time.\n * Automatic token refreshing can be enabled if the SDK is configured with `shouldAutoRefresh`.\n */\n async refreshToken(): Promise<Response> {\n return await this.core.refreshToken();\n }\n\n /**\n * Initializes automatic access token refreshing.\n * This is handled automatically if the SDK is configured with `shouldAutoRefresh`.\n */\n initAutoRefresh(): void {\n if (this.autoRefreshTimer) {\n clearTimeout(this.autoRefreshTimer);\n }\n\n this.autoRefreshTimer = this.core.initAutoRefresh();\n }\n\n /**\n * Returns an observable request that fetches userInfo, and catches error.\n */\n getUserInfoObservable(callbacks?: {\n onBegin?: () => void;\n onDone?: () => void;\n }): Observable<UserInfo> {\n callbacks?.onBegin?.();\n return new Observable<UserInfo>(observer => {\n this.core\n .fetchUserInfo()\n .then(userInfo => {\n observer.next(userInfo);\n })\n .catch(error => {\n observer.error(error);\n })\n .finally(() => {\n callbacks?.onDone?.();\n });\n }).pipe(\n catchError(error => {\n throw error;\n }),\n );\n }\n\n /**\n * Fetches userInfo from the 'me' endpoint.\n * @throws {Error} - if an error occurred while fetching.\n */\n async getUserInfo(): Promise<UserInfo> {\n return await this.core.fetchUserInfo();\n }\n\n /**\n * Initiates login flow.\n * @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.\n */\n startLogin(state?: string): void {\n this.core.startLogin(state);\n }\n\n /**\n * Initiates register flow.\n * @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.\n */\n startRegistration(state?: string): void {\n this.core.startRegister(state);\n }\n\n /**\n * Initiates logout flow.\n */\n logout(): void {\n this.core.startLogout();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-login',\n templateUrl: './fusion-auth-login-button.component.html',\n styleUrls: ['./fusion-auth-login-button.component.scss'],\n})\nexport class FusionAuthLoginButtonComponent {\n @Input() state: string | undefined;\n\n constructor(private fusionAuth: FusionAuthService) {}\n\n login() {\n this.fusionAuth.startLogin(this.state);\n }\n}\n","<button class=\"fa-button\" (click)=\"login()\">\n <span>Login</span>\n</button>\n","import { Component } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-logout',\n templateUrl: './fusion-auth-logout-button.component.html',\n styleUrls: ['./fusion-auth-logout-button.component.scss'],\n})\nexport class FusionAuthLogoutButtonComponent {\n constructor(private fusionAuth: FusionAuthService) {}\n\n logout() {\n this.fusionAuth.logout();\n }\n}\n","<button class=\"fa-logout-button\" (click)=\"logout()\">\n <span>logout</span>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-register',\n templateUrl: './fusion-auth-register-button.component.html',\n styleUrls: ['./fusion-auth-register-button.component.scss'],\n})\nexport class FusionAuthRegisterButtonComponent {\n @Input() state: string | undefined;\n\n constructor(private fusionAuth: FusionAuthService) {}\n\n register() {\n this.fusionAuth.startRegistration(this.state);\n }\n}\n","<button class=\"fa-button\" (click)=\"register()\">\n <span>Register Now</span>\n</button>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FusionAuthConfig } from './types';\nimport { FusionAuthService } from './fusion-auth.service';\nimport { FusionAuthLoginButtonComponent } from './components/fusionauth-login.button/fusion-auth-login-button.component';\nimport { FusionAuthLogoutButtonComponent } from './components/fusionauth-logout.button/fusion-auth-logout-button.component';\nimport { FusionAuthRegisterButtonComponent } from './components/fusionauth-register.button/fusion-auth-register-button.component';\n\n@NgModule({\n declarations: [\n FusionAuthLoginButtonComponent,\n FusionAuthLogoutButtonComponent,\n FusionAuthRegisterButtonComponent,\n ],\n imports: [],\n exports: [\n FusionAuthLoginButtonComponent,\n FusionAuthLogoutButtonComponent,\n FusionAuthRegisterButtonComponent,\n ],\n})\nexport class FusionAuthModule {\n static forRoot(\n fusionAuthConfig: FusionAuthConfig,\n ): ModuleWithProviders<FusionAuthModule> {\n return {\n ngModule: FusionAuthModule,\n providers: [\n {\n provide: FusionAuthService,\n useValue: new FusionAuthService(fusionAuthConfig),\n },\n ],\n };\n }\n}\n","/*\n * Public API Surface of fusionauth-angular-sdk\n */\n\nexport * from './lib/fusion-auth.service';\nexport * from './lib/components/fusionauth-login.button/fusion-auth-login-button.component';\nexport * from './lib/components/fusionauth-logout.button/fusion-auth-logout-button.component';\nexport * from './lib/components/fusionauth-register.button/fusion-auth-register-button.component';\nexport * from './lib/fusion-auth.module';\nexport * from './lib/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["SDKCore","i1.FusionAuthService"],"mappings":"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"}
package/lib/core.d.ts CHANGED
@@ -1,44 +1,22 @@
1
1
  /// <reference types="node" />
2
- declare class g {
3
- constructor(e: any);
4
- getMeUrl(): URL;
5
- getLoginUrl(e: any): URL;
6
- getRegisterUrl(e: any): URL;
7
- getLogoutUrl(): URL;
8
- getTokenRefreshUrl(): URL;
9
- generateUrl(e: any, t: any): URL;
10
- generateURLSearchParams(e: any): URLSearchParams;
11
- }
12
- declare class o {
13
- /**
14
- * Parses document.cookie for the access token expiration cookie value.
15
- * @returns {(number | null)} The moment of expiration in milliseconds since epoch.
16
- */
17
- static getAccessTokenExpirationMoment(e?: string): number | null;
18
- }
19
- declare class p {
20
- constructor(e: any);
21
- /** Refresh token a single time */
22
- refreshToken(): Promise<void>;
23
- /** Initializes continuous automatic token refresh. */
24
- initAutoRefresh(e: number | undefined, t: any): NodeJS.Timeout | undefined;
25
- }
26
- declare class T {
2
+ declare class U {
27
3
  constructor(e: any);
28
4
  startLogin(e: any): void;
29
5
  startRegister(e: any): void;
30
6
  startLogout(): void;
31
7
  fetchUserInfo(): Promise<any>;
32
- refreshToken(): Promise<any>;
33
- initAutoRefresh(): any;
8
+ refreshToken(): Promise<Response>;
9
+ initAutoRefresh(): NodeJS.Timeout | undefined;
34
10
  handlePostRedirect(e: any): void;
35
11
  get isLoggedIn(): boolean;
36
- get accessTokenExpirationMoment(): number | null;
37
- scheduleTokenExpirationEvent(): void;
12
+ /** The moment of access token expiration in milliseconds since epoch. */
13
+ get at_exp(): number | null;
14
+ /** Schedules `onTokenExpiration` at moment of access token expiration. */
15
+ scheduleTokenExpiration(): void;
38
16
  }
39
- declare function U(): void;
40
17
  declare function P(): void;
41
- declare function E(r: any): {
18
+ declare function f(): void;
19
+ declare function w(r: any): {
42
20
  assign: any;
43
21
  ancestorOrigins: DOMStringList;
44
22
  hash: string;
@@ -54,4 +32,4 @@ declare function E(r: any): {
54
32
  reload(): void;
55
33
  replace(url: string | URL): void;
56
34
  };
57
- export { o as CookieHelpers, T as SDKCore, p as TokenRefresher, g as UrlHelper, U as mockIsLoggedIn, E as mockWindowLocation, P as removeAt_expCookie, };
35
+ export { U as SDKCore, P as mockIsLoggedIn, w as mockWindowLocation, f as removeAt_expCookie, };
@@ -16,7 +16,7 @@ export declare class FusionAuthService {
16
16
  * Refreshes the access token a single time.
17
17
  * Automatic token refreshing can be enabled if the SDK is configured with `shouldAutoRefresh`.
18
18
  */
19
- refreshToken(): Promise<void>;
19
+ refreshToken(): Promise<Response>;
20
20
  /**
21
21
  * Initializes automatic access token refreshing.
22
22
  * This is handled automatically if the SDK is configured with `shouldAutoRefresh`.
package/lib/types.d.ts CHANGED
@@ -30,6 +30,10 @@ export interface FusionAuthConfig {
30
30
  * Callback function to be invoked with the `state` value upon redirect from login or register.
31
31
  */
32
32
  onRedirect?: (state?: string) => void;
33
+ /**
34
+ * Callback to be invoked if a request to refresh the access token fails during autorefresh.
35
+ */
36
+ onAutoRefreshFailure?: (error: Error) => void;
33
37
  /**
34
38
  * The path to the login endpoint.
35
39
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusionauth/angular-sdk",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.2.0",
6
6
  "@angular/core": "^17.2.0"