@fusionauth/angular-sdk 1.0.1 → 1.1.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.
Files changed (49) hide show
  1. package/README.md +5 -0
  2. package/esm2022/lib/SSRCookieAdapter.mjs +23 -0
  3. package/esm2022/lib/fusion-auth.module.mjs +4 -5
  4. package/esm2022/lib/fusion-auth.service.mjs +23 -3
  5. package/esm2022/lib/injectionToken.mjs +3 -0
  6. package/esm2022/lib/types.mjs +1 -1
  7. package/esm2022/sdkcore/CookieHelpers/CookieHelpers.mjs +34 -0
  8. package/esm2022/sdkcore/CookieHelpers/index.mjs +2 -0
  9. package/esm2022/sdkcore/RedirectHelper/RedirectHelper.mjs +47 -0
  10. package/esm2022/sdkcore/RedirectHelper/index.mjs +2 -0
  11. package/esm2022/sdkcore/SDKConfig/SDKConfig.mjs +2 -0
  12. package/esm2022/sdkcore/SDKConfig/index.mjs +2 -0
  13. package/esm2022/sdkcore/SDKContext/SDKContext.mjs +2 -0
  14. package/esm2022/sdkcore/SDKContext/index.mjs +2 -0
  15. package/esm2022/sdkcore/SDKCore/SDKCore.mjs +103 -0
  16. package/esm2022/sdkcore/SDKCore/index.mjs +2 -0
  17. package/esm2022/sdkcore/UrlHelper/UrlHelper.mjs +64 -0
  18. package/esm2022/sdkcore/UrlHelper/UrlHelperTypes.mjs +2 -0
  19. package/esm2022/sdkcore/UrlHelper/index.mjs +3 -0
  20. package/esm2022/sdkcore/index.mjs +5 -0
  21. package/esm2022/sdkcore/testUtils/index.mjs +3 -0
  22. package/esm2022/sdkcore/testUtils/mockLoggedIn.mjs +13 -0
  23. package/esm2022/sdkcore/testUtils/mockWindowLocation.mjs +10 -0
  24. package/fesm2022/fusionauth-angular-sdk.mjs +248 -183
  25. package/fesm2022/fusionauth-angular-sdk.mjs.map +1 -1
  26. package/lib/SSRCookieAdapter.d.ts +7 -0
  27. package/lib/fusion-auth.service.d.ts +6 -3
  28. package/lib/injectionToken.d.ts +3 -0
  29. package/lib/types.d.ts +8 -0
  30. package/package.json +3 -3
  31. package/sdkcore/CookieHelpers/CookieHelpers.d.ts +11 -0
  32. package/sdkcore/CookieHelpers/index.d.ts +1 -0
  33. package/sdkcore/RedirectHelper/RedirectHelper.d.ts +10 -0
  34. package/sdkcore/RedirectHelper/index.d.ts +1 -0
  35. package/sdkcore/SDKConfig/SDKConfig.d.ts +79 -0
  36. package/sdkcore/SDKConfig/index.d.ts +1 -0
  37. package/sdkcore/SDKContext/SDKContext.d.ts +65 -0
  38. package/sdkcore/SDKContext/index.d.ts +1 -0
  39. package/sdkcore/SDKCore/SDKCore.d.ts +23 -0
  40. package/sdkcore/SDKCore/index.d.ts +1 -0
  41. package/sdkcore/UrlHelper/UrlHelper.d.ts +22 -0
  42. package/sdkcore/UrlHelper/UrlHelperTypes.d.ts +11 -0
  43. package/sdkcore/UrlHelper/index.d.ts +2 -0
  44. package/sdkcore/index.d.ts +5 -0
  45. package/sdkcore/testUtils/index.d.ts +2 -0
  46. package/sdkcore/testUtils/mockLoggedIn.d.ts +5 -0
  47. package/sdkcore/testUtils/mockWindowLocation.d.ts +18 -0
  48. package/esm2022/lib/core.mjs +0 -241
  49. package/lib/core.d.ts +0 -57
package/README.md CHANGED
@@ -9,6 +9,7 @@ An SDK for using FusionAuth in Angular applications.
9
9
  - [FusionAuthService](#fusionauthservice)
10
10
  - [Pre-built buttons](#pre-built-buttons)
11
11
  - [State Parameter](#state-parameter)
12
+ - [SSR](#ssr)
12
13
  - [Known issues](#known-issues)
13
14
  - [Quickstart](#quickstart)
14
15
  - [Documentation](#documentation)
@@ -174,6 +175,10 @@ pass any value you would like for the state parameter, it is often used to indic
174
175
  which page the user was on before redirecting to login or registration, so that the
175
176
  user can be returned to that location after a successful authentication.
176
177
 
178
+ #### SSR
179
+
180
+ The SDK supports Angular applications using SSR. No additional configuration is needed.
181
+
177
182
  ### Known Issues
178
183
 
179
184
  None.
@@ -0,0 +1,23 @@
1
+ /** An adapter class that supports accessing cookies with SSR */
2
+ export class SSRCookieAdapter {
3
+ constructor(isBrowser) {
4
+ this.isBrowser = isBrowser;
5
+ }
6
+ at_exp(cookieName = 'app.at_exp') {
7
+ if (!this.isBrowser) {
8
+ return;
9
+ }
10
+ try {
11
+ const expCookie = document.cookie
12
+ .split('; ')
13
+ .map(c => c.split('='))
14
+ .find(([name]) => name === cookieName);
15
+ return expCookie?.[1];
16
+ }
17
+ catch (error) {
18
+ console.error('Error within the SSRCookieAdapter: ', error);
19
+ return -1;
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1NSQ29va2llQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9TU1JDb29raWVBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGdFQUFnRTtBQUNoRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQW9CLFNBQWtCO1FBQWxCLGNBQVMsR0FBVCxTQUFTLENBQVM7SUFBRyxDQUFDO0lBRTFDLE1BQU0sQ0FBQyxhQUFxQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTTtpQkFDOUIsS0FBSyxDQUFDLElBQUksQ0FBQztpQkFDWCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN0QixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7WUFDekMsT0FBTyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUQsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb29raWVBZGFwdGVyIH0gZnJvbSAnLi4vc2RrY29yZSc7XG5cbi8qKiBBbiBhZGFwdGVyIGNsYXNzIHRoYXQgc3VwcG9ydHMgYWNjZXNzaW5nIGNvb2tpZXMgd2l0aCBTU1IgKi9cbmV4cG9ydCBjbGFzcyBTU1JDb29raWVBZGFwdGVyIGltcGxlbWVudHMgQ29va2llQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaXNCcm93c2VyOiBib29sZWFuKSB7fVxuXG4gIGF0X2V4cChjb29raWVOYW1lOiBzdHJpbmcgPSAnYXBwLmF0X2V4cCcpIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGV4cENvb2tpZSA9IGRvY3VtZW50LmNvb2tpZVxuICAgICAgICAuc3BsaXQoJzsgJylcbiAgICAgICAgLm1hcChjID0+IGMuc3BsaXQoJz0nKSlcbiAgICAgICAgLmZpbmQoKFtuYW1lXSkgPT4gbmFtZSA9PT0gY29va2llTmFtZSk7XG4gICAgICByZXR1cm4gZXhwQ29va2llPy5bMV07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdpdGhpbiB0aGUgU1NSQ29va2llQWRhcHRlcjogJywgZXJyb3IpO1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { FusionAuthService } from './fusion-auth.service';
3
+ import { FUSIONAUTH_SERVICE_CONFIG } from './injectionToken';
3
4
  import { FusionAuthLoginButtonComponent } from './components/fusionauth-login.button/fusion-auth-login-button.component';
4
5
  import { FusionAuthLogoutButtonComponent } from './components/fusionauth-logout.button/fusion-auth-logout-button.component';
5
6
  import { FusionAuthRegisterButtonComponent } from './components/fusionauth-register.button/fusion-auth-register-button.component';
@@ -9,10 +10,8 @@ export class FusionAuthModule {
9
10
  return {
10
11
  ngModule: FusionAuthModule,
11
12
  providers: [
12
- {
13
- provide: FusionAuthService,
14
- useValue: new FusionAuthService(fusionAuthConfig),
15
- },
13
+ { provide: FUSIONAUTH_SERVICE_CONFIG, useValue: fusionAuthConfig },
14
+ FusionAuthService,
16
15
  ],
17
16
  };
18
17
  }
@@ -40,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
40
39
  ],
41
40
  }]
42
41
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGgubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvbGliL2Z1c2lvbi1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQzs7QUFlbEksTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixNQUFNLENBQUMsT0FBTyxDQUNaLGdCQUFrQztRQUVsQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsUUFBUSxFQUFFLElBQUksaUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7aUJBQ2xEO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0FiVSxnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFYekIsOEJBQThCO1lBQzlCLCtCQUErQjtZQUMvQixpQ0FBaUMsYUFJakMsOEJBQThCO1lBQzlCLCtCQUErQjtZQUMvQixpQ0FBaUM7K0dBR3hCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFiNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osOEJBQThCO3dCQUM5QiwrQkFBK0I7d0JBQy9CLGlDQUFpQztxQkFDbEM7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFO3dCQUNQLDhCQUE4Qjt3QkFDOUIsK0JBQStCO3dCQUMvQixpQ0FBaUM7cUJBQ2xDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9mdXNpb24tYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhMb2dpbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mdXNpb25hdXRoLWxvZ2luLmJ1dHRvbi9mdXNpb24tYXV0aC1sb2dpbi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZ1c2lvbkF1dGhMb2dvdXRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZnVzaW9uYXV0aC1sb2dvdXQuYnV0dG9uL2Z1c2lvbi1hdXRoLWxvZ291dC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZ1c2lvbkF1dGhSZWdpc3RlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mdXNpb25hdXRoLXJlZ2lzdGVyLmJ1dHRvbi9mdXNpb24tYXV0aC1yZWdpc3Rlci1idXR0b24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnVzaW9uQXV0aExvZ2luQnV0dG9uQ29tcG9uZW50LFxuICAgIEZ1c2lvbkF1dGhMb2dvdXRCdXR0b25Db21wb25lbnQsXG4gICAgRnVzaW9uQXV0aFJlZ2lzdGVyQnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW1xuICAgIEZ1c2lvbkF1dGhMb2dpbkJ1dHRvbkNvbXBvbmVudCxcbiAgICBGdXNpb25BdXRoTG9nb3V0QnV0dG9uQ29tcG9uZW50LFxuICAgIEZ1c2lvbkF1dGhSZWdpc3RlckJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnVzaW9uQXV0aE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIGZ1c2lvbkF1dGhDb25maWc6IEZ1c2lvbkF1dGhDb25maWcsXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RnVzaW9uQXV0aE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRnVzaW9uQXV0aE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRnVzaW9uQXV0aFNlcnZpY2UsXG4gICAgICAgICAgdXNlVmFsdWU6IG5ldyBGdXNpb25BdXRoU2VydmljZShmdXNpb25BdXRoQ29uZmlnKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGgubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvbGliL2Z1c2lvbi1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQzs7QUFlbEksTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixNQUFNLENBQUMsT0FBTyxDQUNaLGdCQUFrQztRQUVsQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFO2dCQUNsRSxpQkFBaUI7YUFDbEI7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0FYVSxnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFYekIsOEJBQThCO1lBQzlCLCtCQUErQjtZQUMvQixpQ0FBaUMsYUFJakMsOEJBQThCO1lBQzlCLCtCQUErQjtZQUMvQixpQ0FBaUM7K0dBR3hCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFiNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osOEJBQThCO3dCQUM5QiwrQkFBK0I7d0JBQy9CLGlDQUFpQztxQkFDbEM7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFO3dCQUNQLDhCQUE4Qjt3QkFDOUIsK0JBQStCO3dCQUMvQixpQ0FBaUM7cUJBQ2xDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9mdXNpb24tYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEZVU0lPTkFVVEhfU0VSVklDRV9DT05GSUcgfSBmcm9tICcuL2luamVjdGlvblRva2VuJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhMb2dpbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mdXNpb25hdXRoLWxvZ2luLmJ1dHRvbi9mdXNpb24tYXV0aC1sb2dpbi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZ1c2lvbkF1dGhMb2dvdXRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZnVzaW9uYXV0aC1sb2dvdXQuYnV0dG9uL2Z1c2lvbi1hdXRoLWxvZ291dC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZ1c2lvbkF1dGhSZWdpc3RlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mdXNpb25hdXRoLXJlZ2lzdGVyLmJ1dHRvbi9mdXNpb24tYXV0aC1yZWdpc3Rlci1idXR0b24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnVzaW9uQXV0aExvZ2luQnV0dG9uQ29tcG9uZW50LFxuICAgIEZ1c2lvbkF1dGhMb2dvdXRCdXR0b25Db21wb25lbnQsXG4gICAgRnVzaW9uQXV0aFJlZ2lzdGVyQnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW1xuICAgIEZ1c2lvbkF1dGhMb2dpbkJ1dHRvbkNvbXBvbmVudCxcbiAgICBGdXNpb25BdXRoTG9nb3V0QnV0dG9uQ29tcG9uZW50LFxuICAgIEZ1c2lvbkF1dGhSZWdpc3RlckJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnVzaW9uQXV0aE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIGZ1c2lvbkF1dGhDb25maWc6IEZ1c2lvbkF1dGhDb25maWcsXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RnVzaW9uQXV0aE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRnVzaW9uQXV0aE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEZVU0lPTkFVVEhfU0VSVklDRV9DT05GSUcsIHVzZVZhbHVlOiBmdXNpb25BdXRoQ29uZmlnIH0sXG4gICAgICAgIEZ1c2lvbkF1dGhTZXJ2aWNlLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,15 +1,21 @@
1
- import { SDKCore } from './core';
1
+ import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
2
3
  import { Observable, catchError, BehaviorSubject } from 'rxjs';
4
+ import { SDKCore } from '../sdkcore';
5
+ import { SSRCookieAdapter } from './SSRCookieAdapter';
6
+ import { FUSIONAUTH_SERVICE_CONFIG } from './injectionToken';
7
+ import * as i0 from "@angular/core";
3
8
  /**
4
9
  * Service class to use with FusionAuth backend endpoints.
5
10
  */
6
11
  export class FusionAuthService {
7
- constructor(config) {
12
+ constructor(config, platformId) {
8
13
  this.core = new SDKCore({
9
14
  ...config,
10
15
  onTokenExpiration: () => {
11
16
  this.isLoggedInSubject.next(false);
12
17
  },
18
+ cookieAdapter: new SSRCookieAdapter(isPlatformBrowser(platformId)),
13
19
  });
14
20
  this.isLoggedInSubject = new BehaviorSubject(this.core.isLoggedIn);
15
21
  this.isLoggedIn$ = this.isLoggedInSubject.asObservable();
@@ -87,5 +93,19 @@ export class FusionAuthService {
87
93
  logout() {
88
94
  this.core.startLogout();
89
95
  }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FusionAuthService, deps: [{ token: FUSIONAUTH_SERVICE_CONFIG }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
97
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FusionAuthService, providedIn: 'root' }); }
90
98
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9mdXNpb24tYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUFZLE1BQXdCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDdEIsR0FBRyxNQUFNO1lBQ1QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO2dCQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUtELG9HQUFvRztJQUNwRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsU0FHckI7UUFDQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksVUFBVSxDQUFXLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJO2lCQUNOLGFBQWEsRUFBRTtpQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNiLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO2lCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ0wsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTREtDb3JlIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhDb25maWcsIFVzZXJJbmZvIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTZXJ2aWNlIGNsYXNzIHRvIHVzZSB3aXRoIEZ1c2lvbkF1dGggYmFja2VuZCBlbmRwb2ludHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBGdXNpb25BdXRoU2VydmljZSB7XG4gIHByaXZhdGUgY29yZTogU0RLQ29yZTtcbiAgcHJpdmF0ZSBhdXRvUmVmcmVzaFRpbWVyPzogTm9kZUpTLlRpbWVvdXQ7XG4gIHByaXZhdGUgaXNMb2dnZWRJblN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEZ1c2lvbkF1dGhDb25maWcpIHtcbiAgICB0aGlzLmNvcmUgPSBuZXcgU0RLQ29yZSh7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBvblRva2VuRXhwaXJhdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9nZ2VkSW5TdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuaXNMb2dnZWRJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuY29yZS5pc0xvZ2dlZEluKTtcbiAgICB0aGlzLmlzTG9nZ2VkSW4kID0gdGhpcy5pc0xvZ2dlZEluU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMuY29yZS5oYW5kbGVQb3N0UmVkaXJlY3QoY29uZmlnLm9uUmVkaXJlY3QpO1xuXG4gICAgaWYgKGNvbmZpZy5zaG91bGRBdXRvUmVmcmVzaCAmJiB0aGlzLmNvcmUuaXNMb2dnZWRJbikge1xuICAgICAgdGhpcy5pbml0QXV0b1JlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICAvKiogQW4gb2JzZXJ2YWJsZSByZXByZXNlbnRpbmcgd2hldGhlciB0aGUgdXNlciBpcyBsb2dnZWQgaW4uICovXG4gIGlzTG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB3aGV0aGVyIHRoZSB1c2VyIGlzIGxvZ2dlZCBpbi4gVGhpcyByZXR1cm5lZCB2YWx1ZSBpcyBub24tb2JzZXJ2YWJsZS4gKi9cbiAgaXNMb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmlzTG9nZ2VkSW47XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBhY2Nlc3MgdG9rZW4gYSBzaW5nbGUgdGltZS5cbiAgICogQXV0b21hdGljIHRva2VuIHJlZnJlc2hpbmcgY2FuIGJlIGVuYWJsZWQgaWYgdGhlIFNESyBpcyBjb25maWd1cmVkIHdpdGggYHNob3VsZEF1dG9SZWZyZXNoYC5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb3JlLnJlZnJlc2hUb2tlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGF1dG9tYXRpYyBhY2Nlc3MgdG9rZW4gcmVmcmVzaGluZy5cbiAgICogVGhpcyBpcyBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgaWYgdGhlIFNESyBpcyBjb25maWd1cmVkIHdpdGggYHNob3VsZEF1dG9SZWZyZXNoYC5cbiAgICovXG4gIGluaXRBdXRvUmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvUmVmcmVzaFRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvUmVmcmVzaFRpbWVyKTtcbiAgICB9XG5cbiAgICB0aGlzLmF1dG9SZWZyZXNoVGltZXIgPSB0aGlzLmNvcmUuaW5pdEF1dG9SZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHJlcXVlc3QgdGhhdCBmZXRjaGVzIHVzZXJJbmZvLCBhbmQgY2F0Y2hlcyBlcnJvci5cbiAgICovXG4gIGdldFVzZXJJbmZvT2JzZXJ2YWJsZShjYWxsYmFja3M/OiB7XG4gICAgb25CZWdpbj86ICgpID0+IHZvaWQ7XG4gICAgb25Eb25lPzogKCkgPT4gdm9pZDtcbiAgfSk6IE9ic2VydmFibGU8VXNlckluZm8+IHtcbiAgICBjYWxsYmFja3M/Lm9uQmVnaW4/LigpO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxVc2VySW5mbz4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy5jb3JlXG4gICAgICAgIC5mZXRjaFVzZXJJbmZvKClcbiAgICAgICAgLnRoZW4odXNlckluZm8gPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQodXNlckluZm8pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIGNhbGxiYWNrcz8ub25Eb25lPy4oKTtcbiAgICAgICAgfSk7XG4gICAgfSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB1c2VySW5mbyBmcm9tIHRoZSAnbWUnIGVuZHBvaW50LlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBpZiBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZy5cbiAgICovXG4gIGFzeW5jIGdldFVzZXJJbmZvKCk6IFByb21pc2U8VXNlckluZm8+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb3JlLmZldGNoVXNlckluZm8oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgbG9naW4gZmxvdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzdGF0ZV0gLSBPcHRpb25hbCB2YWx1ZSB0byBiZSBlY2hvZWQgYmFjayB0byB0aGUgU0RLIHVwb24gcmVkaXJlY3QuXG4gICAqL1xuICBzdGFydExvZ2luKHN0YXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb3JlLnN0YXJ0TG9naW4oc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyByZWdpc3RlciBmbG93LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0YXRlXSAtIE9wdGlvbmFsIHZhbHVlIHRvIGJlIGVjaG9lZCBiYWNrIHRvIHRoZSBTREsgdXBvbiByZWRpcmVjdC5cbiAgICovXG4gIHN0YXJ0UmVnaXN0cmF0aW9uKHN0YXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb3JlLnN0YXJ0UmVnaXN0ZXIoc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBsb2dvdXQgZmxvdy5cbiAgICovXG4gIGxvZ291dCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvcmUuc3RhcnRMb2dvdXQoKTtcbiAgfVxufVxuIl19
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FusionAuthService, decorators: [{
100
+ type: Injectable,
101
+ args: [{
102
+ providedIn: 'root',
103
+ }]
104
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
105
+ type: Inject,
106
+ args: [FUSIONAUTH_SERVICE_CONFIG]
107
+ }] }, { type: Object, decorators: [{
108
+ type: Inject,
109
+ args: [PLATFORM_ID]
110
+ }] }] });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9mdXNpb24tYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFN0Q7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBSzVCLFlBQ3FDLE1BQXdCLEVBQ3RDLFVBQWtCO1FBRXZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDdEIsR0FBRyxNQUFNO1lBQ1QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO2dCQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxhQUFhLEVBQUUsSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUtELG9HQUFvRztJQUNwRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsU0FHckI7UUFDQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksVUFBVSxDQUFXLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJO2lCQUNOLGFBQWEsRUFBRTtpQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNiLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO2lCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ0wsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQS9HVSxpQkFBaUIsa0JBTWxCLHlCQUF5QixhQUN6QixXQUFXO2tIQVBWLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLHlCQUF5Qjs7MEJBQ2hDLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTREtDb3JlIH0gZnJvbSAnLi4vc2RrY29yZSc7XG5pbXBvcnQgeyBTU1JDb29raWVBZGFwdGVyIH0gZnJvbSAnLi9TU1JDb29raWVBZGFwdGVyJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhDb25maWcsIFVzZXJJbmZvIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGVVNJT05BVVRIX1NFUlZJQ0VfQ09ORklHIH0gZnJvbSAnLi9pbmplY3Rpb25Ub2tlbic7XG5cbi8qKlxuICogU2VydmljZSBjbGFzcyB0byB1c2Ugd2l0aCBGdXNpb25BdXRoIGJhY2tlbmQgZW5kcG9pbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRnVzaW9uQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIGNvcmU6IFNES0NvcmU7XG4gIHByaXZhdGUgYXV0b1JlZnJlc2hUaW1lcj86IE5vZGVKUy5UaW1lb3V0O1xuICBwcml2YXRlIGlzTG9nZ2VkSW5TdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGVVNJT05BVVRIX1NFUlZJQ0VfQ09ORklHKSBjb25maWc6IEZ1c2lvbkF1dGhDb25maWcsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0LFxuICApIHtcbiAgICB0aGlzLmNvcmUgPSBuZXcgU0RLQ29yZSh7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBvblRva2VuRXhwaXJhdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9nZ2VkSW5TdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIGNvb2tpZUFkYXB0ZXI6IG5ldyBTU1JDb29raWVBZGFwdGVyKGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSxcbiAgICB9KTtcblxuICAgIHRoaXMuaXNMb2dnZWRJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuY29yZS5pc0xvZ2dlZEluKTtcbiAgICB0aGlzLmlzTG9nZ2VkSW4kID0gdGhpcy5pc0xvZ2dlZEluU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMuY29yZS5oYW5kbGVQb3N0UmVkaXJlY3QoY29uZmlnLm9uUmVkaXJlY3QpO1xuXG4gICAgaWYgKGNvbmZpZy5zaG91bGRBdXRvUmVmcmVzaCAmJiB0aGlzLmNvcmUuaXNMb2dnZWRJbikge1xuICAgICAgdGhpcy5pbml0QXV0b1JlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICAvKiogQW4gb2JzZXJ2YWJsZSByZXByZXNlbnRpbmcgd2hldGhlciB0aGUgdXNlciBpcyBsb2dnZWQgaW4uICovXG4gIGlzTG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB3aGV0aGVyIHRoZSB1c2VyIGlzIGxvZ2dlZCBpbi4gVGhpcyByZXR1cm5lZCB2YWx1ZSBpcyBub24tb2JzZXJ2YWJsZS4gKi9cbiAgaXNMb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmlzTG9nZ2VkSW47XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBhY2Nlc3MgdG9rZW4gYSBzaW5nbGUgdGltZS5cbiAgICogQXV0b21hdGljIHRva2VuIHJlZnJlc2hpbmcgY2FuIGJlIGVuYWJsZWQgaWYgdGhlIFNESyBpcyBjb25maWd1cmVkIHdpdGggYHNob3VsZEF1dG9SZWZyZXNoYC5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29yZS5yZWZyZXNoVG9rZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhdXRvbWF0aWMgYWNjZXNzIHRva2VuIHJlZnJlc2hpbmcuXG4gICAqIFRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvUmVmcmVzaGAuXG4gICAqL1xuICBpbml0QXV0b1JlZnJlc2goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b1JlZnJlc2hUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b1JlZnJlc2hUaW1lcik7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvUmVmcmVzaFRpbWVyID0gdGhpcy5jb3JlLmluaXRBdXRvUmVmcmVzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSByZXF1ZXN0IHRoYXQgZmV0Y2hlcyB1c2VySW5mbywgYW5kIGNhdGNoZXMgZXJyb3IuXG4gICAqL1xuICBnZXRVc2VySW5mb09ic2VydmFibGUoY2FsbGJhY2tzPzoge1xuICAgIG9uQmVnaW4/OiAoKSA9PiB2b2lkO1xuICAgIG9uRG9uZT86ICgpID0+IHZvaWQ7XG4gIH0pOiBPYnNlcnZhYmxlPFVzZXJJbmZvPiB7XG4gICAgY2FsbGJhY2tzPy5vbkJlZ2luPy4oKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VXNlckluZm8+KG9ic2VydmVyID0+IHtcbiAgICAgIHRoaXMuY29yZVxuICAgICAgICAuZmV0Y2hVc2VySW5mbygpXG4gICAgICAgIC50aGVuKHVzZXJJbmZvID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHVzZXJJbmZvKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICBjYWxsYmFja3M/Lm9uRG9uZT8uKCk7XG4gICAgICAgIH0pO1xuICAgIH0pLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdXNlckluZm8gZnJvbSB0aGUgJ21lJyBlbmRwb2ludC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gaWYgYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcuXG4gICAqL1xuICBhc3luYyBnZXRVc2VySW5mbygpOiBQcm9taXNlPFVzZXJJbmZvPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29yZS5mZXRjaFVzZXJJbmZvKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGxvZ2luIGZsb3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RhdGVdIC0gT3B0aW9uYWwgdmFsdWUgdG8gYmUgZWNob2VkIGJhY2sgdG8gdGhlIFNESyB1cG9uIHJlZGlyZWN0LlxuICAgKi9cbiAgc3RhcnRMb2dpbihzdGF0ZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29yZS5zdGFydExvZ2luKHN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgcmVnaXN0ZXIgZmxvdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzdGF0ZV0gLSBPcHRpb25hbCB2YWx1ZSB0byBiZSBlY2hvZWQgYmFjayB0byB0aGUgU0RLIHVwb24gcmVkaXJlY3QuXG4gICAqL1xuICBzdGFydFJlZ2lzdHJhdGlvbihzdGF0ZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29yZS5zdGFydFJlZ2lzdGVyKHN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgbG9nb3V0IGZsb3cuXG4gICAqL1xuICBsb2dvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb3JlLnN0YXJ0TG9nb3V0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const FUSIONAUTH_SERVICE_CONFIG = new InjectionToken('FUSIONAUTH_SERVICE_CONFIG');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvaW5qZWN0aW9uVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FDekQsMkJBQTJCLENBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRnVzaW9uQXV0aENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgRlVTSU9OQVVUSF9TRVJWSUNFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGdXNpb25BdXRoQ29uZmlnPihcbiAgJ0ZVU0lPTkFVVEhfU0VSVklDRV9DT05GSUcnLFxuKTtcbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlnIGZvciBGdXNpb25BdXRoIEFuZ3VsYXIgU0RLXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVzaW9uQXV0aENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBzZXJ2ZXIgdGhhdCBwZXJmb3JtcyB0aGUgdG9rZW4gZXhjaGFuZ2UuXG4gICAqL1xuICBzZXJ2ZXJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBpZCBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBjbGllbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgVVJJIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHJlZGlyZWN0VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCBVUkkgZm9yIHBvc3QtbG9nb3V0LiBEZWZhdWx0cyB0aGUgcHJvdmlkZWQgYHJlZGlyZWN0VXJpYC5cbiAgICovXG4gIHBvc3RMb2dvdXRSZWRpcmVjdFVyaT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9BdXRoMiBzY29wZSBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoZSBgL29hdXRoMi9hdXRob3JpemVgIGVuZHBvaW50LiBJZiBub3Qgc3BlY2lmaWVkIGZ1c2lvbmF1dGggd2lsbCBkZWZhdWx0IHRoaXMgdG8gYG9wZW5pZCBvZmZsaW5lX2FjY2Vzc2AuXG4gICAqL1xuICBzY29wZT86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlcyBhdXRvbWF0aWMgdG9rZW4gcmVmcmVzaGluZy4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqL1xuICBzaG91bGRBdXRvUmVmcmVzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgdGhlIGFjY2VzcyB0b2tlbiBleHBpcnkgd2hlbiB0aGUgYXV0byByZWZyZXNoIGZ1bmN0aW9uYWxpdHkga2lja3MgaW4gaWYgZW5hYmxlZC4gRGVmYXVsdCBpcyAxMC5cbiAgICovXG4gIGF1dG9SZWZyZXNoU2Vjb25kc0JlZm9yZUV4cGlyeT86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCB3aXRoIHRoZSBgc3RhdGVgIHZhbHVlIHVwb24gcmVkaXJlY3QgZnJvbSBsb2dpbiBvciByZWdpc3Rlci5cbiAgICovXG4gIG9uUmVkaXJlY3Q/OiAoc3RhdGU/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGJlIGludm9rZWQgaWYgYSByZXF1ZXN0IHRvIHJlZnJlc2ggdGhlIGFjY2VzcyB0b2tlbiBmYWlscyBkdXJpbmcgYXV0b3JlZnJlc2guXG4gICAqL1xuICBvbkF1dG9SZWZyZXNoRmFpbHVyZT86IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBsb2dpbiBlbmRwb2ludC5cbiAgICovXG4gIGxvZ2luUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIHJlZ2lzdGVyIGVuZHBvaW50LlxuICAgKi9cbiAgcmVnaXN0ZXJQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbG9nb3V0IGVuZHBvaW50LlxuICAgKi9cbiAgbG9nb3V0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIHRva2VuIHJlZnJlc2ggZW5kcG9pbnQuXG4gICAqL1xuICB0b2tlblJlZnJlc2hQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbWUgZW5kcG9pbnQuXG4gICAqL1xuICBtZVBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckluZm8ge1xuICBhcHBsaWNhdGlvbklkPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgZW1haWxfdmVyaWZpZWQ/OiBib29sZWFuO1xuICBmYW1pbHlfbmFtZT86IHN0cmluZztcbiAgZ2l2ZW5fbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgcm9sZXM/OiBhbnlbXTtcbiAgc2lkPzogc3RyaW5nO1xuICBzdWI/OiBzdHJpbmc7XG4gIHRpZD86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Gets the `app.at_exp` cookie and converts it to milliseconds since epoch.
3
+ * Returns -1 if the cookie is not present.
4
+ * @param cookieName - defaults to `app.at_exp`.
5
+ * @param adapter - SSR frameworks like Nuxt, Next, and angular/ssr will pass in an adapter.
6
+ */
7
+ export function getAccessTokenExpirationMoment(cookieName = 'app.at_exp', adapter) {
8
+ if (adapter) {
9
+ return toMilliseconds(adapter.at_exp(cookieName));
10
+ }
11
+ let cookie;
12
+ try {
13
+ // `document` throws a ReferenceError if this runs in a
14
+ // non-browser environment such as an SSR framework like Nuxt or Next.
15
+ cookie = document.cookie;
16
+ }
17
+ catch {
18
+ console.error('Error accessing cookies in fusionauth. If you are using SSR you must configure the SDK with a cookie adapter');
19
+ return -1;
20
+ }
21
+ const expCookie = cookie
22
+ .split('; ')
23
+ .map(c => c.split('='))
24
+ .find(([name]) => name === cookieName);
25
+ const cookieValue = expCookie?.[1];
26
+ return toMilliseconds(cookieValue);
27
+ }
28
+ function toMilliseconds(seconds) {
29
+ if (!seconds)
30
+ return -1;
31
+ else
32
+ return Number(seconds) * 1000;
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29va2llSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL3Nka2NvcmUvQ29va2llSGVscGVycy9Db29raWVIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxhQUFxQixZQUFZLEVBQ2pDLE9BQXVCO0lBRXZCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDO0lBRVgsSUFBSSxDQUFDO1FBQ0gsdURBQXVEO1FBQ3ZELHNFQUFzRTtRQUN0RSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxDQUFDLEtBQUssQ0FDWCw4R0FBOEcsQ0FDL0csQ0FBQztRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTTtTQUNyQixLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN0QixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFbkMsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQU9ELFNBQVMsY0FBYyxDQUFDLE9BQXlCO0lBQy9DLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzs7UUFDbkIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldHMgdGhlIGBhcHAuYXRfZXhwYCBjb29raWUgYW5kIGNvbnZlcnRzIGl0IHRvIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaC5cbiAqIFJldHVybnMgLTEgaWYgdGhlIGNvb2tpZSBpcyBub3QgcHJlc2VudC5cbiAqIEBwYXJhbSBjb29raWVOYW1lIC0gZGVmYXVsdHMgdG8gYGFwcC5hdF9leHBgLlxuICogQHBhcmFtIGFkYXB0ZXIgLSBTU1IgZnJhbWV3b3JrcyBsaWtlIE51eHQsIE5leHQsIGFuZCBhbmd1bGFyL3NzciB3aWxsIHBhc3MgaW4gYW4gYWRhcHRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbk1vbWVudChcbiAgY29va2llTmFtZTogc3RyaW5nID0gJ2FwcC5hdF9leHAnLFxuICBhZGFwdGVyPzogQ29va2llQWRhcHRlcixcbik6IG51bWJlciB8IC0xIHtcbiAgaWYgKGFkYXB0ZXIpIHtcbiAgICByZXR1cm4gdG9NaWxsaXNlY29uZHMoYWRhcHRlci5hdF9leHAoY29va2llTmFtZSkpO1xuICB9XG5cbiAgbGV0IGNvb2tpZTtcblxuICB0cnkge1xuICAgIC8vIGBkb2N1bWVudGAgdGhyb3dzIGEgUmVmZXJlbmNlRXJyb3IgaWYgdGhpcyBydW5zIGluIGFcbiAgICAvLyBub24tYnJvd3NlciBlbnZpcm9ubWVudCBzdWNoIGFzIGFuIFNTUiBmcmFtZXdvcmsgbGlrZSBOdXh0IG9yIE5leHQuXG4gICAgY29va2llID0gZG9jdW1lbnQuY29va2llO1xuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgJ0Vycm9yIGFjY2Vzc2luZyBjb29raWVzIGluIGZ1c2lvbmF1dGguIElmIHlvdSBhcmUgdXNpbmcgU1NSIHlvdSBtdXN0IGNvbmZpZ3VyZSB0aGUgU0RLIHdpdGggYSBjb29raWUgYWRhcHRlcicsXG4gICAgKTtcbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBjb25zdCBleHBDb29raWUgPSBjb29raWVcbiAgICAuc3BsaXQoJzsgJylcbiAgICAubWFwKGMgPT4gYy5zcGxpdCgnPScpKVxuICAgIC5maW5kKChbbmFtZV0pID0+IG5hbWUgPT09IGNvb2tpZU5hbWUpO1xuICBjb25zdCBjb29raWVWYWx1ZSA9IGV4cENvb2tpZT8uWzFdO1xuXG4gIHJldHVybiB0b01pbGxpc2Vjb25kcyhjb29raWVWYWx1ZSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29va2llQWRhcHRlciB7XG4gIC8qKiByZXR1cm5zIHRoZSBgYXBwLmF0X2V4cGAgY29va2llIHdpdGhvdXQgbWFuaXB1bGF0aW5nIHRoZSB2YWx1ZS4gKi9cbiAgYXRfZXhwOiAoY29va2llTmFtZT86IHN0cmluZykgPT4gbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiB0b01pbGxpc2Vjb25kcyhzZWNvbmRzPzogbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyIHtcbiAgaWYgKCFzZWNvbmRzKSByZXR1cm4gLTE7XG4gIGVsc2UgcmV0dXJuIE51bWJlcihzZWNvbmRzKSAqIDEwMDA7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './CookieHelpers';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL0Nvb2tpZUhlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQ29va2llSGVscGVycyc7XG4iXX0=
@@ -0,0 +1,47 @@
1
+ /** A class responsible for storing a redirect value in localStorage and cleanup afterward. */
2
+ export class RedirectHelper {
3
+ constructor() {
4
+ this.REDIRECT_VALUE = 'fa-sdk-redirect-value';
5
+ }
6
+ get storage() {
7
+ try {
8
+ return localStorage;
9
+ }
10
+ catch {
11
+ // fallback for non-browser environments where localStorage is not defined.
12
+ return {
13
+ /* eslint-disable */
14
+ setItem(_key, _value) { },
15
+ getItem(_key) { },
16
+ removeItem(_key) { },
17
+ /* eslint-enable */
18
+ };
19
+ }
20
+ }
21
+ handlePreRedirect(state) {
22
+ const valueForStorage = `${this.generateRandomString()}:${state ?? ''}`;
23
+ this.storage.setItem(this.REDIRECT_VALUE, valueForStorage);
24
+ }
25
+ handlePostRedirect(callback) {
26
+ const stateValue = this.stateValue ?? undefined;
27
+ callback?.(stateValue);
28
+ this.storage.removeItem(this.REDIRECT_VALUE);
29
+ }
30
+ get didRedirect() {
31
+ return Boolean(this.storage.getItem(this.REDIRECT_VALUE));
32
+ }
33
+ get stateValue() {
34
+ const redirectValue = this.storage.getItem(this.REDIRECT_VALUE);
35
+ if (!redirectValue) {
36
+ return null;
37
+ }
38
+ const [, ...stateValue] = redirectValue.split(':');
39
+ return stateValue.join(':');
40
+ }
41
+ generateRandomString() {
42
+ const array = new Uint32Array(56 / 2);
43
+ window.crypto.getRandomValues(array);
44
+ return Array.from(array, (n) => ('0' + n.toString(16)).substring(-2)).join('');
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkaXJlY3RIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL1JlZGlyZWN0SGVscGVyL1JlZGlyZWN0SGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhGQUE4RjtBQUM5RixNQUFNLE9BQU8sY0FBYztJQUEzQjtRQUNtQixtQkFBYyxHQUFHLHVCQUF1QixDQUFDO0lBaUQ1RCxDQUFDO0lBaERDLElBQVksT0FBTztRQUNqQixJQUFJLENBQUM7WUFDSCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsMkVBQTJFO1lBQzNFLE9BQU87Z0JBQ0wsb0JBQW9CO2dCQUNwQixPQUFPLENBQUMsSUFBWSxFQUFFLE1BQWMsSUFBRyxDQUFDO2dCQUN4QyxPQUFPLENBQUMsSUFBWSxJQUFHLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQyxJQUFZLElBQUcsQ0FBQztnQkFDM0IsbUJBQW1CO2FBQ1QsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYztRQUM5QixNQUFNLGVBQWUsR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxRQUFtQztRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQztRQUNoRCxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFZLFVBQVU7UUFDcEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUNyQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3JDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEEgY2xhc3MgcmVzcG9uc2libGUgZm9yIHN0b3JpbmcgYSByZWRpcmVjdCB2YWx1ZSBpbiBsb2NhbFN0b3JhZ2UgYW5kIGNsZWFudXAgYWZ0ZXJ3YXJkLiAqL1xuZXhwb3J0IGNsYXNzIFJlZGlyZWN0SGVscGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBSRURJUkVDVF9WQUxVRSA9ICdmYS1zZGstcmVkaXJlY3QtdmFsdWUnO1xuICBwcml2YXRlIGdldCBzdG9yYWdlKCk6IFN0b3JhZ2Uge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gZmFsbGJhY2sgZm9yIG5vbi1icm93c2VyIGVudmlyb25tZW50cyB3aGVyZSBsb2NhbFN0b3JhZ2UgaXMgbm90IGRlZmluZWQuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICBzZXRJdGVtKF9rZXk6IHN0cmluZywgX3ZhbHVlOiBzdHJpbmcpIHt9LFxuICAgICAgICBnZXRJdGVtKF9rZXk6IHN0cmluZykge30sXG4gICAgICAgIHJlbW92ZUl0ZW0oX2tleTogc3RyaW5nKSB7fSxcbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICAgICAgfSBhcyBTdG9yYWdlO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVByZVJlZGlyZWN0KHN0YXRlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgdmFsdWVGb3JTdG9yYWdlID0gYCR7dGhpcy5nZW5lcmF0ZVJhbmRvbVN0cmluZygpfToke3N0YXRlID8/ICcnfWA7XG4gICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0odGhpcy5SRURJUkVDVF9WQUxVRSwgdmFsdWVGb3JTdG9yYWdlKTtcbiAgfVxuXG4gIGhhbmRsZVBvc3RSZWRpcmVjdChjYWxsYmFjaz86IChzdGF0ZT86IHN0cmluZykgPT4gdm9pZCkge1xuICAgIGNvbnN0IHN0YXRlVmFsdWUgPSB0aGlzLnN0YXRlVmFsdWUgPz8gdW5kZWZpbmVkO1xuICAgIGNhbGxiYWNrPy4oc3RhdGVWYWx1ZSk7XG4gICAgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5SRURJUkVDVF9WQUxVRSk7XG4gIH1cblxuICBnZXQgZGlkUmVkaXJlY3QoKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5SRURJUkVDVF9WQUxVRSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgc3RhdGVWYWx1ZSgpIHtcbiAgICBjb25zdCByZWRpcmVjdFZhbHVlID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5SRURJUkVDVF9WQUxVRSk7XG5cbiAgICBpZiAoIXJlZGlyZWN0VmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IFssIC4uLnN0YXRlVmFsdWVdID0gcmVkaXJlY3RWYWx1ZS5zcGxpdCgnOicpO1xuICAgIHJldHVybiBzdGF0ZVZhbHVlLmpvaW4oJzonKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVSYW5kb21TdHJpbmcoKSB7XG4gICAgY29uc3QgYXJyYXkgPSBuZXcgVWludDMyQXJyYXkoNTYgLyAyKTtcbiAgICB3aW5kb3cuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhcnJheSk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oYXJyYXksIChuOiBudW1iZXIpID0+XG4gICAgICAoJzAnICsgbi50b1N0cmluZygxNikpLnN1YnN0cmluZygtMiksXG4gICAgKS5qb2luKCcnKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './RedirectHelper';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL1JlZGlyZWN0SGVscGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL1JlZGlyZWN0SGVscGVyJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0RLQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvc2RrY29yZS9TREtDb25maWcvU0RLQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb29raWVBZGFwdGVyIH0gZnJvbSAnLi4nO1xuXG4vKipcbiAqIENvbmZpZyBmb3IgRnVzaW9uQXV0aCBXZWIgU0RLc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNES0NvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBzZXJ2ZXIgdGhhdCBwZXJmb3JtcyB0aGUgdG9rZW4gZXhjaGFuZ2UuXG4gICAqL1xuICBzZXJ2ZXJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBpZCBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBjbGllbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgVVJJIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHJlZGlyZWN0VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBPQXV0aDIgc2NvcGUgcGFyYW1ldGVyIHBhc3NlZCB0byB0aGUgYC9vYXV0aDIvYXV0aG9yaXplYCBlbmRwb2ludC4gSWYgbm90IHNwZWNpZmllZCBmdXNpb25hdXRoIHdpbGwgZGVmYXVsdCB0aGlzIHRvIGBvcGVuaWQgb2ZmbGluZV9hY2Nlc3NgLlxuICAgKi9cbiAgc2NvcGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCBVUkkgZm9yIHBvc3QtbG9nb3V0LiBEZWZhdWx0cyB0aGUgcHJvdmlkZWQgYHJlZGlyZWN0VXJpYC5cbiAgICovXG4gIHBvc3RMb2dvdXRSZWRpcmVjdFVyaT86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlcyBhdXRvbWF0aWMgdG9rZW4gcmVmcmVzaGluZy4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqL1xuICBzaG91bGRBdXRvUmVmcmVzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIFNESyB0byBhdXRvbWF0aWNhbGx5IGhhbmRsZSBmZXRjaGluZyB1c2VyIGluZm8gd2hlbiBsb2dnZWQgaW4uIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgc2hvdWxkQXV0b0ZldGNoVXNlckluZm8/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIHRoZSBhY2Nlc3MgdG9rZW4gZXhwaXJ5IHdoZW4gdGhlIGF1dG8gcmVmcmVzaCBmdW5jdGlvbmFsaXR5IGtpY2tzIGluIGlmIGVuYWJsZWQuIERlZmF1bHQgaXMgMzAuXG4gICAqL1xuICBhdXRvUmVmcmVzaFNlY29uZHNCZWZvcmVFeHBpcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2l0aCB0aGUgYHN0YXRlYCB2YWx1ZSB1cG9uIHJlZGlyZWN0IGZyb20gbG9naW4gb3IgcmVnaXN0ZXIuXG4gICAqL1xuICBvblJlZGlyZWN0PzogKHN0YXRlPzogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbG9naW4gZW5kcG9pbnQuXG4gICAqL1xuICBsb2dpblBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSByZWdpc3RlciBlbmRwb2ludC5cbiAgICovXG4gIHJlZ2lzdGVyUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGxvZ291dCBlbmRwb2ludC5cbiAgICovXG4gIGxvZ291dFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSB0b2tlbiByZWZyZXNoIGVuZHBvaW50LlxuICAgKi9cbiAgdG9rZW5SZWZyZXNoUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIG1lIGVuZHBvaW50LlxuICAgKi9cbiAgbWVQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYWNjZXNzIHRva2VuIGV4cGlyYXRpb24gbW9tZW50IGNvb2tpZS5cbiAgICogT25seSBzZXQgdGhpcyBpZiB5b3UgYXJlIGhvc3Rpbmcgc2VydmVyIHRoYXQgdXNlcyBhIGN1c3RvbSBuYW1lIGZvciB0aGUgJ2FwcC5hdF9leHAnIGNvb2tpZS5cbiAgICovXG4gIGFjY2Vzc1Rva2VuRXhwaXJlQ29va2llTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gYmUgaW52b2tlZCBpZiBhIHJlcXVlc3QgdG8gcmVmcmVzaCB0aGUgYWNjZXNzIHRva2VuIGZhaWxzIGR1cmluZyBhdXRvcmVmcmVzaC5cbiAgICovXG4gIG9uQXV0b1JlZnJlc2hGYWlsdXJlPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcblxuICAvKipcbiAgICogQWRhcHRlciBwYXR0ZXJuIGZvciBTU1IgZnJhbWV3b3JrcyBzdWNoIGFzIG5leHQgb3IgbnV4dFxuICAgKi9cbiAgY29va2llQWRhcHRlcj86IENvb2tpZUFkYXB0ZXI7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGJlIGludm9rZWQgYXQgdGhlIG1vbWVudCBvZiBhY2Nlc3MgdG9rZW4gZXhwaXJhdGlvblxuICAgKi9cbiAgb25Ub2tlbkV4cGlyYXRpb246ICgpID0+IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './SDKConfig';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL1NES0NvbmZpZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vU0RLQ29uZmlnJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0RLQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL3Nka2NvcmUvU0RLQ29udGV4dC9TREtDb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIGNvbnRleHQgcHJvdmlkZWQgYnkgRnVzaW9uQXV0aCBXZWIgU0RLcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTREtDb250ZXh0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgaXMgbG9nZ2VkIGluLlxuICAgKi9cbiAgaXNMb2dnZWRJbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGF0YSBmZXRjaGVkIGZyb20gdGhlIGNvbmZpZ3VyZWQgJ21lJyBlbmRwb2ludC5cbiAgICovXG4gIHVzZXJJbmZvOiBVc2VySW5mbyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdXNlciBpbmZvIGZyb20gdGhlICdtZScgZW5kcG9pbnQuXG4gICAqIFRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvRmV0Y2hVc2VySW5mb2AuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFVzZXJJbmZvPn1cbiAgICovXG4gIGZldGNoVXNlckluZm86ICgpID0+IFByb21pc2U8VXNlckluZm8gfCB1bmRlZmluZWQ+O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZmV0Y2hVc2VySW5mbyBjYWxsIGlzIHVucmVzb2x2ZWQuXG4gICAqL1xuICBpc0ZldGNoaW5nVXNlckluZm86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIHVzZXJJbmZvLlxuICAgKi9cbiAgZXJyb3I6IEVycm9yIHwgbnVsbDtcblxuICAvKipcbiAgICogSW5pdGlhdGVzIGxvZ2luIGZsb3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RhdGVdIC0gT3B0aW9uYWwgdmFsdWUgdG8gYmUgZWNob2VkIGJhY2sgdG8gdGhlIFNESyB1cG9uIHJlZGlyZWN0LlxuICAgKi9cbiAgc3RhcnRMb2dpbjogKHN0YXRlPzogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgcmVnaXN0ZXIgZmxvdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzdGF0ZV0gLSBPcHRpb25hbCB2YWx1ZSB0byBiZSBlY2hvZWQgYmFjayB0byB0aGUgU0RLIHVwb24gcmVkaXJlY3QuXG4gICAqL1xuICBzdGFydFJlZ2lzdGVyOiAoc3RhdGU/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBsb2dvdXQgZmxvdy5cbiAgICovXG4gIHN0YXJ0TG9nb3V0OiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIGFjY2VzcyB0b2tlbiBhIHNpbmdsZSB0aW1lLlxuICAgKiBUaGlzIGlzIGhhbmRsZWQgYXV0b21hdGljYWxseSBpZiB0aGUgU0RLIGlzIGNvbmZpZ3VyZWQgd2l0aCBgc2hvdWxkQXV0b1JlZnJlc2hgLlxuICAgKi9cbiAgcmVmcmVzaFRva2VuOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhdXRvbWF0aWMgYWNjZXNzIHRva2VuIHJlZnJlc2hpbmcuXG4gICAqIFRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvUmVmcmVzaGAuXG4gICAqL1xuICBpbml0QXV0b1JlZnJlc2g6ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogVXNlciBpbmZvcm1hdGlvbiByZXR1cm5lZCBmcm9tIEZ1c2lvbkF1dGguXG4gKi9cbmV4cG9ydCB0eXBlIFVzZXJJbmZvID0ge1xuICBhcHBsaWNhdGlvbklkPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgZW1haWxfdmVyaWZpZWQ/OiBib29sZWFuO1xuICBmYW1pbHlfbmFtZT86IHN0cmluZztcbiAgZ2l2ZW5fbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgcm9sZXM/OiBhbnlbXTtcbiAgc2lkPzogc3RyaW5nO1xuICBzdWI/OiBzdHJpbmc7XG4gIHRpZD86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './SDKContext';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL1NES0NvbnRleHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL1NES0NvbnRleHQnO1xuIl19
@@ -0,0 +1,103 @@
1
+ import { UrlHelper } from '../UrlHelper';
2
+ import { RedirectHelper } from '../RedirectHelper';
3
+ import { getAccessTokenExpirationMoment } from '../CookieHelpers';
4
+ /** A class containing framework-agnostic SDK methods */
5
+ export class SDKCore {
6
+ constructor(config) {
7
+ this.redirectHelper = new RedirectHelper();
8
+ this.config = config;
9
+ this.urlHelper = new UrlHelper({
10
+ serverUrl: config.serverUrl,
11
+ clientId: config.clientId,
12
+ redirectUri: config.redirectUri,
13
+ scope: config.scope,
14
+ mePath: config.mePath,
15
+ loginPath: config.loginPath,
16
+ registerPath: config.registerPath,
17
+ logoutPath: config.logoutPath,
18
+ tokenRefreshPath: config.tokenRefreshPath,
19
+ postLogoutRedirectUri: config.postLogoutRedirectUri,
20
+ });
21
+ this.scheduleTokenExpiration();
22
+ }
23
+ startLogin(state) {
24
+ this.redirectHelper.handlePreRedirect(state);
25
+ window.location.assign(this.urlHelper.getLoginUrl(state));
26
+ }
27
+ startRegister(state) {
28
+ this.redirectHelper.handlePreRedirect(state);
29
+ window.location.assign(this.urlHelper.getRegisterUrl(state));
30
+ }
31
+ startLogout() {
32
+ window.location.assign(this.urlHelper.getLogoutUrl());
33
+ }
34
+ async fetchUserInfo() {
35
+ const userInfoResponse = await fetch(this.urlHelper.getMeUrl(), {
36
+ credentials: 'include',
37
+ });
38
+ if (!userInfoResponse.ok) {
39
+ throw new Error(`Unable to fetch userInfo in fusionauth. Request failed with status code ${userInfoResponse?.status}`);
40
+ }
41
+ const userInfo = await userInfoResponse.json();
42
+ return userInfo;
43
+ }
44
+ async refreshToken() {
45
+ const response = await fetch(this.urlHelper.getTokenRefreshUrl(), {
46
+ method: 'POST',
47
+ credentials: 'include',
48
+ headers: {
49
+ 'Content-Type': 'text/plain',
50
+ },
51
+ });
52
+ if (!(response.status >= 200 && response.status < 300)) {
53
+ const message = (await response?.text()) ||
54
+ 'Error refreshing access token in fusionauth';
55
+ throw new Error(message);
56
+ }
57
+ // a successful request means that app_exp was bumped into the future.
58
+ // reschedule the access token expiration event.
59
+ this.scheduleTokenExpiration();
60
+ return response;
61
+ }
62
+ initAutoRefresh() {
63
+ if (!this.isLoggedIn) {
64
+ return;
65
+ }
66
+ const secondsBeforeRefresh = this.config.autoRefreshSecondsBeforeExpiry ?? 10;
67
+ const millisecondsBeforeRefresh = secondsBeforeRefresh * 1000;
68
+ const now = new Date().getTime();
69
+ const refreshTime = this.at_exp - millisecondsBeforeRefresh;
70
+ const timeTillRefresh = Math.max(refreshTime - now, 0);
71
+ return setTimeout(async () => {
72
+ try {
73
+ await this.refreshToken();
74
+ this.initAutoRefresh();
75
+ }
76
+ catch (error) {
77
+ this.config.onAutoRefreshFailure?.(error);
78
+ }
79
+ }, timeTillRefresh);
80
+ }
81
+ handlePostRedirect(callback) {
82
+ if (this.isLoggedIn && this.redirectHelper.didRedirect) {
83
+ this.redirectHelper.handlePostRedirect(callback);
84
+ }
85
+ }
86
+ get isLoggedIn() {
87
+ return this.at_exp > new Date().getTime();
88
+ }
89
+ /** The moment of access token expiration in milliseconds since epoch. */
90
+ get at_exp() {
91
+ return getAccessTokenExpirationMoment(this.config.accessTokenExpireCookieName, this.config.cookieAdapter);
92
+ }
93
+ /** Schedules `onTokenExpiration` at moment of access token expiration. */
94
+ scheduleTokenExpiration() {
95
+ clearTimeout(this.tokenExpirationTimeout);
96
+ const now = new Date().getTime();
97
+ const millisecondsTillExpiration = this.at_exp - now;
98
+ if (millisecondsTillExpiration > 0) {
99
+ this.tokenExpirationTimeout = setTimeout(this.config.onTokenExpiration, millisecondsTillExpiration);
100
+ }
101
+ }
102
+ }
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0RLQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL3Nka2NvcmUvU0RLQ29yZS9TREtDb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxFLHdEQUF3RDtBQUN4RCxNQUFNLE9BQU8sT0FBTztJQU1sQixZQUFZLE1BQWlCO1FBSHJCLG1CQUFjLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUM7UUFJNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUM3QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7WUFDakMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDekMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLHFCQUFxQjtTQUNwRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM5RCxXQUFXLEVBQUUsU0FBUztTQUN2QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FDYiwyRUFBMkUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQ3RHLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQWEsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO1lBQ2hFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsV0FBVyxFQUFFLFNBQVM7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxZQUFZO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sT0FBTyxHQUNYLENBQUMsTUFBTSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLDZDQUE2QyxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELHNFQUFzRTtRQUN0RSxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFFL0IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxvQkFBb0IsR0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsSUFBSSxFQUFFLENBQUM7UUFFbkQsTUFBTSx5QkFBeUIsR0FBRyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFOUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLHlCQUF5QixDQUFDO1FBQzVELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV2RCxPQUFPLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUMzQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsS0FBYyxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBbUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCx5RUFBeUU7SUFDekUsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sOEJBQThCLENBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELDBFQUEwRTtJQUNsRSx1QkFBdUI7UUFDN0IsWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUVyRCxJQUFJLDBCQUEwQixHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQzdCLDBCQUEwQixDQUMzQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVybEhlbHBlciB9IGZyb20gJy4uL1VybEhlbHBlcic7XG5pbXBvcnQgeyBTREtDb25maWcgfSBmcm9tICcuLi9TREtDb25maWcnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi9TREtDb250ZXh0JztcbmltcG9ydCB7IFJlZGlyZWN0SGVscGVyIH0gZnJvbSAnLi4vUmVkaXJlY3RIZWxwZXInO1xuaW1wb3J0IHsgZ2V0QWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50IH0gZnJvbSAnLi4vQ29va2llSGVscGVycyc7XG5cbi8qKiBBIGNsYXNzIGNvbnRhaW5pbmcgZnJhbWV3b3JrLWFnbm9zdGljIFNESyBtZXRob2RzICovXG5leHBvcnQgY2xhc3MgU0RLQ29yZSB7XG4gIHByaXZhdGUgY29uZmlnOiBTREtDb25maWc7XG4gIHByaXZhdGUgdXJsSGVscGVyOiBVcmxIZWxwZXI7XG4gIHByaXZhdGUgcmVkaXJlY3RIZWxwZXI6IFJlZGlyZWN0SGVscGVyID0gbmV3IFJlZGlyZWN0SGVscGVyKCk7XG4gIHByaXZhdGUgdG9rZW5FeHBpcmF0aW9uVGltZW91dD86IE5vZGVKUy5UaW1lb3V0O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU0RLQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy51cmxIZWxwZXIgPSBuZXcgVXJsSGVscGVyKHtcbiAgICAgIHNlcnZlclVybDogY29uZmlnLnNlcnZlclVybCxcbiAgICAgIGNsaWVudElkOiBjb25maWcuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdFVyaTogY29uZmlnLnJlZGlyZWN0VXJpLFxuICAgICAgc2NvcGU6IGNvbmZpZy5zY29wZSxcbiAgICAgIG1lUGF0aDogY29uZmlnLm1lUGF0aCxcbiAgICAgIGxvZ2luUGF0aDogY29uZmlnLmxvZ2luUGF0aCxcbiAgICAgIHJlZ2lzdGVyUGF0aDogY29uZmlnLnJlZ2lzdGVyUGF0aCxcbiAgICAgIGxvZ291dFBhdGg6IGNvbmZpZy5sb2dvdXRQYXRoLFxuICAgICAgdG9rZW5SZWZyZXNoUGF0aDogY29uZmlnLnRva2VuUmVmcmVzaFBhdGgsXG4gICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGNvbmZpZy5wb3N0TG9nb3V0UmVkaXJlY3RVcmksXG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZVRva2VuRXhwaXJhdGlvbigpO1xuICB9XG5cbiAgc3RhcnRMb2dpbihzdGF0ZT86IHN0cmluZykge1xuICAgIHRoaXMucmVkaXJlY3RIZWxwZXIuaGFuZGxlUHJlUmVkaXJlY3Qoc3RhdGUpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odGhpcy51cmxIZWxwZXIuZ2V0TG9naW5Vcmwoc3RhdGUpKTtcbiAgfVxuXG4gIHN0YXJ0UmVnaXN0ZXIoc3RhdGU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlZGlyZWN0SGVscGVyLmhhbmRsZVByZVJlZGlyZWN0KHN0YXRlKTtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMudXJsSGVscGVyLmdldFJlZ2lzdGVyVXJsKHN0YXRlKSk7XG4gIH1cblxuICBzdGFydExvZ291dCgpIHtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMudXJsSGVscGVyLmdldExvZ291dFVybCgpKTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoVXNlckluZm8oKSB7XG4gICAgY29uc3QgdXNlckluZm9SZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMudXJsSGVscGVyLmdldE1lVXJsKCksIHtcbiAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgfSk7XG5cbiAgICBpZiAoIXVzZXJJbmZvUmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFVuYWJsZSB0byBmZXRjaCB1c2VySW5mbyBpbiBmdXNpb25hdXRoLiBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICR7dXNlckluZm9SZXNwb25zZT8uc3RhdHVzfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJJbmZvOiBVc2VySW5mbyA9IGF3YWl0IHVzZXJJbmZvUmVzcG9uc2UuanNvbigpO1xuICAgIHJldHVybiB1c2VySW5mbztcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLnVybEhlbHBlci5nZXRUb2tlblJlZnJlc2hVcmwoKSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmICghKHJlc3BvbnNlLnN0YXR1cyA+PSAyMDAgJiYgcmVzcG9uc2Uuc3RhdHVzIDwgMzAwKSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgIChhd2FpdCByZXNwb25zZT8udGV4dCgpKSB8fFxuICAgICAgICAnRXJyb3IgcmVmcmVzaGluZyBhY2Nlc3MgdG9rZW4gaW4gZnVzaW9uYXV0aCc7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgLy8gYSBzdWNjZXNzZnVsIHJlcXVlc3QgbWVhbnMgdGhhdCBhcHBfZXhwIHdhcyBidW1wZWQgaW50byB0aGUgZnV0dXJlLlxuICAgIC8vIHJlc2NoZWR1bGUgdGhlIGFjY2VzcyB0b2tlbiBleHBpcmF0aW9uIGV2ZW50LlxuICAgIHRoaXMuc2NoZWR1bGVUb2tlbkV4cGlyYXRpb24oKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIGluaXRBdXRvUmVmcmVzaCgpOiBOb2RlSlMuVGltZW91dCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmlzTG9nZ2VkSW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWNvbmRzQmVmb3JlUmVmcmVzaCA9XG4gICAgICB0aGlzLmNvbmZpZy5hdXRvUmVmcmVzaFNlY29uZHNCZWZvcmVFeHBpcnkgPz8gMTA7XG5cbiAgICBjb25zdCBtaWxsaXNlY29uZHNCZWZvcmVSZWZyZXNoID0gc2Vjb25kc0JlZm9yZVJlZnJlc2ggKiAxMDAwO1xuXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgY29uc3QgcmVmcmVzaFRpbWUgPSB0aGlzLmF0X2V4cCAtIG1pbGxpc2Vjb25kc0JlZm9yZVJlZnJlc2g7XG4gICAgY29uc3QgdGltZVRpbGxSZWZyZXNoID0gTWF0aC5tYXgocmVmcmVzaFRpbWUgLSBub3csIDApO1xuXG4gICAgcmV0dXJuIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgdGhpcy5pbml0QXV0b1JlZnJlc2goKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLm9uQXV0b1JlZnJlc2hGYWlsdXJlPy4oZXJyb3IgYXMgRXJyb3IpO1xuICAgICAgfVxuICAgIH0sIHRpbWVUaWxsUmVmcmVzaCk7XG4gIH1cblxuICBoYW5kbGVQb3N0UmVkaXJlY3QoY2FsbGJhY2s/OiAoc3RhdGU/OiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICBpZiAodGhpcy5pc0xvZ2dlZEluICYmIHRoaXMucmVkaXJlY3RIZWxwZXIuZGlkUmVkaXJlY3QpIHtcbiAgICAgIHRoaXMucmVkaXJlY3RIZWxwZXIuaGFuZGxlUG9zdFJlZGlyZWN0KGNhbGxiYWNrKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNMb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5hdF9leHAgPiBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgfVxuXG4gIC8qKiBUaGUgbW9tZW50IG9mIGFjY2VzcyB0b2tlbiBleHBpcmF0aW9uIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaC4gKi9cbiAgcHJpdmF0ZSBnZXQgYXRfZXhwKCk6IG51bWJlciB8IC0xIHtcbiAgICByZXR1cm4gZ2V0QWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50KFxuICAgICAgdGhpcy5jb25maWcuYWNjZXNzVG9rZW5FeHBpcmVDb29raWVOYW1lLFxuICAgICAgdGhpcy5jb25maWcuY29va2llQWRhcHRlcixcbiAgICApO1xuICB9XG5cbiAgLyoqIFNjaGVkdWxlcyBgb25Ub2tlbkV4cGlyYXRpb25gIGF0IG1vbWVudCBvZiBhY2Nlc3MgdG9rZW4gZXhwaXJhdGlvbi4gKi9cbiAgcHJpdmF0ZSBzY2hlZHVsZVRva2VuRXhwaXJhdGlvbigpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50b2tlbkV4cGlyYXRpb25UaW1lb3V0KTtcblxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kc1RpbGxFeHBpcmF0aW9uID0gdGhpcy5hdF9leHAgLSBub3c7XG5cbiAgICBpZiAobWlsbGlzZWNvbmRzVGlsbEV4cGlyYXRpb24gPiAwKSB7XG4gICAgICB0aGlzLnRva2VuRXhwaXJhdGlvblRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgICB0aGlzLmNvbmZpZy5vblRva2VuRXhwaXJhdGlvbixcbiAgICAgICAgbWlsbGlzZWNvbmRzVGlsbEV4cGlyYXRpb24sXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './SDKCore';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL1NES0NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL1NES0NvcmUnO1xuIl19
@@ -0,0 +1,64 @@
1
+ /** A class responsible for generating URLs that FusionAuth SDKs interact with. */
2
+ export class UrlHelper {
3
+ constructor(config) {
4
+ this.serverUrl = config.serverUrl;
5
+ this.clientId = config.clientId;
6
+ this.redirectUri = config.redirectUri;
7
+ this.scope = config.scope;
8
+ this.postLogoutRedirectUri = config.postLogoutRedirectUri;
9
+ this.mePath = config.mePath ?? '/app/me';
10
+ this.loginPath = config.loginPath ?? '/app/login';
11
+ this.registerPath = config.registerPath ?? '/app/register';
12
+ this.logoutPath = config.logoutPath ?? '/app/logout';
13
+ this.tokenRefreshPath = config.tokenRefreshPath ?? '/app/refresh';
14
+ }
15
+ getMeUrl() {
16
+ return this.generateUrl(this.mePath);
17
+ }
18
+ getLoginUrl(state) {
19
+ return this.generateUrl(this.loginPath, {
20
+ client_id: this.clientId,
21
+ redirect_uri: this.redirectUri,
22
+ scope: this.scope,
23
+ state,
24
+ });
25
+ }
26
+ getRegisterUrl(state) {
27
+ return this.generateUrl(this.registerPath, {
28
+ client_id: this.clientId,
29
+ redirect_uri: this.redirectUri,
30
+ scope: this.scope,
31
+ state,
32
+ });
33
+ }
34
+ getLogoutUrl() {
35
+ return this.generateUrl(this.logoutPath, {
36
+ client_id: this.clientId,
37
+ post_logout_redirect_uri: this.postLogoutRedirectUri || this.redirectUri,
38
+ });
39
+ }
40
+ getTokenRefreshUrl() {
41
+ return this.generateUrl(this.tokenRefreshPath, {
42
+ client_id: this.clientId,
43
+ });
44
+ }
45
+ generateUrl(path, params) {
46
+ const url = new URL(this.serverUrl);
47
+ url.pathname = path;
48
+ if (params) {
49
+ const urlSearchParams = this.generateURLSearchParams(params);
50
+ url.search = urlSearchParams.toString();
51
+ }
52
+ return url;
53
+ }
54
+ generateURLSearchParams(params) {
55
+ const urlSearchParams = new URLSearchParams();
56
+ Object.entries(params).forEach(([key, value]) => {
57
+ if (value) {
58
+ urlSearchParams.append(key, value);
59
+ }
60
+ });
61
+ return urlSearchParams;
62
+ }
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXJsSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvc2RrY29yZS9VcmxIZWxwZXIvVXJsSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGtGQUFrRjtBQUNsRixNQUFNLE9BQU8sU0FBUztJQWFwQixZQUFZLE1BQXVCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1FBRTFELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksZUFBZSxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxhQUFhLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxjQUFjLENBQUM7SUFDcEUsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYztRQUN4QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN0QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDeEIsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzlCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFjO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3pDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLFdBQVc7U0FDekUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzdDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLElBQVksRUFBRSxNQUE2QjtRQUM3RCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3RCxHQUFHLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE1BQTRCO1FBRTVCLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFFOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQzlDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXJsSGVscGVyQ29uZmlnLCBVcmxIZWxwZXJRdWVyeVBhcmFtcyB9IGZyb20gJy4vVXJsSGVscGVyVHlwZXMnO1xuXG4vKiogQSBjbGFzcyByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyBVUkxzIHRoYXQgRnVzaW9uQXV0aCBTREtzIGludGVyYWN0IHdpdGguICovXG5leHBvcnQgY2xhc3MgVXJsSGVscGVyIHtcbiAgc2VydmVyVXJsOiBzdHJpbmc7XG4gIGNsaWVudElkOiBzdHJpbmc7XG4gIHJlZGlyZWN0VXJpOiBzdHJpbmc7XG4gIHNjb3BlPzogc3RyaW5nO1xuXG4gIG1lUGF0aDogc3RyaW5nO1xuICBsb2dpblBhdGg6IHN0cmluZztcbiAgcmVnaXN0ZXJQYXRoOiBzdHJpbmc7XG4gIGxvZ291dFBhdGg6IHN0cmluZztcbiAgdG9rZW5SZWZyZXNoUGF0aDogc3RyaW5nO1xuICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBVcmxIZWxwZXJDb25maWcpIHtcbiAgICB0aGlzLnNlcnZlclVybCA9IGNvbmZpZy5zZXJ2ZXJVcmw7XG4gICAgdGhpcy5jbGllbnRJZCA9IGNvbmZpZy5jbGllbnRJZDtcbiAgICB0aGlzLnJlZGlyZWN0VXJpID0gY29uZmlnLnJlZGlyZWN0VXJpO1xuICAgIHRoaXMuc2NvcGUgPSBjb25maWcuc2NvcGU7XG4gICAgdGhpcy5wb3N0TG9nb3V0UmVkaXJlY3RVcmkgPSBjb25maWcucG9zdExvZ291dFJlZGlyZWN0VXJpO1xuXG4gICAgdGhpcy5tZVBhdGggPSBjb25maWcubWVQYXRoID8/ICcvYXBwL21lJztcbiAgICB0aGlzLmxvZ2luUGF0aCA9IGNvbmZpZy5sb2dpblBhdGggPz8gJy9hcHAvbG9naW4nO1xuICAgIHRoaXMucmVnaXN0ZXJQYXRoID0gY29uZmlnLnJlZ2lzdGVyUGF0aCA/PyAnL2FwcC9yZWdpc3Rlcic7XG4gICAgdGhpcy5sb2dvdXRQYXRoID0gY29uZmlnLmxvZ291dFBhdGggPz8gJy9hcHAvbG9nb3V0JztcbiAgICB0aGlzLnRva2VuUmVmcmVzaFBhdGggPSBjb25maWcudG9rZW5SZWZyZXNoUGF0aCA/PyAnL2FwcC9yZWZyZXNoJztcbiAgfVxuXG4gIGdldE1lVXJsKCk6IFVSTCB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVVcmwodGhpcy5tZVBhdGgpO1xuICB9XG5cbiAgZ2V0TG9naW5Vcmwoc3RhdGU/OiBzdHJpbmcpOiBVUkwge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlVXJsKHRoaXMubG9naW5QYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVcmksXG4gICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgIHN0YXRlLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVnaXN0ZXJVcmwoc3RhdGU/OiBzdHJpbmcpOiBVUkwge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlVXJsKHRoaXMucmVnaXN0ZXJQYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVcmksXG4gICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgIHN0YXRlLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TG9nb3V0VXJsKCk6IFVSTCB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVVcmwodGhpcy5sb2dvdXRQYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IHRoaXMucG9zdExvZ291dFJlZGlyZWN0VXJpIHx8IHRoaXMucmVkaXJlY3RVcmksXG4gICAgfSk7XG4gIH1cblxuICBnZXRUb2tlblJlZnJlc2hVcmwoKTogVVJMIHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZVVybCh0aGlzLnRva2VuUmVmcmVzaFBhdGgsIHtcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jbGllbnRJZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVVcmwocGF0aDogc3RyaW5nLCBwYXJhbXM/OiBVcmxIZWxwZXJRdWVyeVBhcmFtcyk6IFVSTCB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnNlcnZlclVybCk7XG4gICAgdXJsLnBhdGhuYW1lID0gcGF0aDtcblxuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIGNvbnN0IHVybFNlYXJjaFBhcmFtcyA9IHRoaXMuZ2VuZXJhdGVVUkxTZWFyY2hQYXJhbXMocGFyYW1zKTtcbiAgICAgIHVybC5zZWFyY2ggPSB1cmxTZWFyY2hQYXJhbXMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVVSTFNlYXJjaFBhcmFtcyhcbiAgICBwYXJhbXM6IFVybEhlbHBlclF1ZXJ5UGFyYW1zLFxuICApOiBVUkxTZWFyY2hQYXJhbXMge1xuICAgIGNvbnN0IHVybFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcblxuICAgIE9iamVjdC5lbnRyaWVzKHBhcmFtcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdXJsU2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB1cmxTZWFyY2hQYXJhbXM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXJsSGVscGVyVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL1VybEhlbHBlci9VcmxIZWxwZXJUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0RLQ29uZmlnIH0gZnJvbSAnLi4vU0RLQ29uZmlnJztcblxuLyoqIEEgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBVcmxIZWxwZXIgY2xhc3MuICovXG5leHBvcnQgdHlwZSBVcmxIZWxwZXJDb25maWcgPSBQaWNrPFxuICBTREtDb25maWcsXG4gIHwgJ3NlcnZlclVybCdcbiAgfCAnY2xpZW50SWQnXG4gIHwgJ3JlZGlyZWN0VXJpJ1xuICB8ICdtZVBhdGgnXG4gIHwgJ2xvZ2luUGF0aCdcbiAgfCAncmVnaXN0ZXJQYXRoJ1xuICB8ICdsb2dvdXRQYXRoJ1xuICB8ICd0b2tlblJlZnJlc2hQYXRoJ1xuICB8ICdzY29wZSdcbiAgfCAncG9zdExvZ291dFJlZGlyZWN0VXJpJ1xuPjtcblxuLyoqIFRoZSBxdWVyeSBwYXJhbXMgYXNzb2NpYXRlZCB3aXRoIFVSTHMgZ2VuZXJhdGVkIGJ5IHRoZSBVcmxIZWxwZXIgY2xhc3MuICovXG5leHBvcnQgdHlwZSBVcmxIZWxwZXJRdWVyeVBhcmFtcyA9IHtcbiAgY2xpZW50X2lkOiBzdHJpbmc7XG4gIHJlZGlyZWN0X3VyaT86IHN0cmluZztcbiAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbiAgc3RhdGU/OiBzdHJpbmc7XG59O1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './UrlHelper';
2
+ export * from './UrlHelperTypes';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL1VybEhlbHBlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9VcmxIZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9VcmxIZWxwZXJUeXBlcyc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './SDKCore';
2
+ export * from './SDKConfig';
3
+ export * from './SDKContext';
4
+ export * from './testUtils';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9TREtDb3JlJztcbmV4cG9ydCAqIGZyb20gJy4vU0RLQ29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vU0RLQ29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL3Rlc3RVdGlscyc7XG5leHBvcnQgeyB0eXBlIENvb2tpZUFkYXB0ZXIgfSBmcm9tICcuL0Nvb2tpZUhlbHBlcnMnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './mockLoggedIn';
2
+ export * from './mockWindowLocation';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL3Rlc3RVdGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vY2tMb2dnZWRJbic7XG5leHBvcnQgKiBmcm9tICcuL21vY2tXaW5kb3dMb2NhdGlvbic7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ /** Sets `app.at_exp` moment cookie so the user will be logged in for 1 hour. */
2
+ function mockIsLoggedIn() {
3
+ const expirationMoment = new Date();
4
+ expirationMoment.setHours(expirationMoment.getHours() + 1);
5
+ const oneHourInTheFutureInMilliseconds = expirationMoment.getTime() / 1000;
6
+ document.cookie = `app.at_exp=${oneHourInTheFutureInMilliseconds}`;
7
+ }
8
+ /** Removes the `app.at_exp` cookie. */
9
+ function removeAt_expCookie() {
10
+ document.cookie = 'app.at_exp' + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
11
+ }
12
+ export { mockIsLoggedIn, removeAt_expCookie };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja0xvZ2dlZEluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvc2RrY29yZS90ZXN0VXRpbHMvbW9ja0xvZ2dlZEluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRixTQUFTLGNBQWM7SUFDckIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3BDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxNQUFNLGdDQUFnQyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztJQUMzRSxRQUFRLENBQUMsTUFBTSxHQUFHLGNBQWMsZ0NBQWdDLEVBQUUsQ0FBQztBQUNyRSxDQUFDO0FBRUQsdUNBQXVDO0FBQ3ZDLFNBQVMsa0JBQWtCO0lBQ3pCLFFBQVEsQ0FBQyxNQUFNLEdBQUcsWUFBWSxHQUFHLHlDQUF5QyxDQUFDO0FBQzdFLENBQUM7QUFFRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU2V0cyBgYXBwLmF0X2V4cGAgbW9tZW50IGNvb2tpZSBzbyB0aGUgdXNlciB3aWxsIGJlIGxvZ2dlZCBpbiBmb3IgMSBob3VyLiAqL1xuZnVuY3Rpb24gbW9ja0lzTG9nZ2VkSW4oKSB7XG4gIGNvbnN0IGV4cGlyYXRpb25Nb21lbnQgPSBuZXcgRGF0ZSgpO1xuICBleHBpcmF0aW9uTW9tZW50LnNldEhvdXJzKGV4cGlyYXRpb25Nb21lbnQuZ2V0SG91cnMoKSArIDEpO1xuICBjb25zdCBvbmVIb3VySW5UaGVGdXR1cmVJbk1pbGxpc2Vjb25kcyA9IGV4cGlyYXRpb25Nb21lbnQuZ2V0VGltZSgpIC8gMTAwMDtcbiAgZG9jdW1lbnQuY29va2llID0gYGFwcC5hdF9leHA9JHtvbmVIb3VySW5UaGVGdXR1cmVJbk1pbGxpc2Vjb25kc31gO1xufVxuXG4vKiogUmVtb3ZlcyB0aGUgYGFwcC5hdF9leHBgIGNvb2tpZS4gKi9cbmZ1bmN0aW9uIHJlbW92ZUF0X2V4cENvb2tpZSgpIHtcbiAgZG9jdW1lbnQuY29va2llID0gJ2FwcC5hdF9leHAnICsgJz07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCc7XG59XG5cbmV4cG9ydCB7IG1vY2tJc0xvZ2dlZEluLCByZW1vdmVBdF9leHBDb29raWUgfTtcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ function mockWindowLocation(vi) {
2
+ const mockedLocation = {
3
+ ...window.location,
4
+ assign: vi.fn(),
5
+ };
6
+ vi.spyOn(window, 'location', 'get').mockReturnValue(mockedLocation);
7
+ return mockedLocation;
8
+ }
9
+ export { mockWindowLocation };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1dpbmRvd0xvY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvc2RrY29yZS90ZXN0VXRpbHMvbW9ja1dpbmRvd0xvY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQVMsa0JBQWtCLENBQUMsRUFBZTtJQUN6QyxNQUFNLGNBQWMsR0FBRztRQUNyQixHQUFHLE1BQU0sQ0FBQyxRQUFRO1FBQ2xCLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0tBQ2hCLENBQUM7SUFDRixFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpdGVzdFV0aWxzIH0gZnJvbSAndml0ZXN0JztcblxuZnVuY3Rpb24gbW9ja1dpbmRvd0xvY2F0aW9uKHZpOiBWaXRlc3RVdGlscykge1xuICBjb25zdCBtb2NrZWRMb2NhdGlvbiA9IHtcbiAgICAuLi53aW5kb3cubG9jYXRpb24sXG4gICAgYXNzaWduOiB2aS5mbigpLFxuICB9O1xuICB2aS5zcHlPbih3aW5kb3csICdsb2NhdGlvbicsICdnZXQnKS5tb2NrUmV0dXJuVmFsdWUobW9ja2VkTG9jYXRpb24pO1xuICByZXR1cm4gbW9ja2VkTG9jYXRpb247XG59XG5cbmV4cG9ydCB7IG1vY2tXaW5kb3dMb2NhdGlvbiB9O1xuIl19