oidc-spa 7.2.0-rc.2 β†’ 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 GitHub user u/garronej
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,185 @@
1
+ ![oidc-spa](https://github.com/keycloakify/oidc-spa/assets/6702424/3375294c-cc31-4fc1-9fb5-1fcfa00423ba)
2
+
3
+ <p align="center">
4
+ <br>
5
+ <a href="https://github.com/keycloakify/oidc-spa/actions">
6
+ <img src="https://github.com/keycloakify/oidc-spa/actions/workflows/ci.yaml/badge.svg?branch=main">
7
+ </a>
8
+ <a href="https://www.npmjs.com/package/oidc-spa">
9
+ <img src="https://img.shields.io/npm/dw/oidc-spa">
10
+ </a>
11
+ <a href="https://github.com/garronej/oidc-spa/blob/main/LICENSE">
12
+ <img src="https://img.shields.io/npm/l/oidc-spa">
13
+ </a>
14
+ </p>
15
+ <p align="center">
16
+ We're here to help!<br/>
17
+ <a href="https://discord.gg/mJdYJSdcm4">
18
+ <img src="https://dcbadge.limes.pink/api/server/kYFZG7fQmn"/>
19
+ </a>
20
+ </p>
21
+ <p align="center">
22
+ <a href="https://www.oidc-spa.dev">Home</a>
23
+ -
24
+ <a href="https://docs.oidc-spa.dev">Documentation</a>
25
+ </p>
26
+
27
+ > πŸ—£οΈ oidc-spa will be introduced at [KeyConf 2025](https://keyconf.dev/) on the 28 of August.
28
+
29
+ A full-featured OpenID Connect / OAuth2 client for single-page applications (SPAs).
30
+
31
+ With `oidc-spa`, you can seamlessly integrate authentication providers like [Keycloak](https://www.keycloak.org/), [Auth0](https://auth0.com/), or [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) into your application, purely on the client side,
32
+ [without involving your backend in the token exchange](https://docs.oidc-spa.dev/resources/why-no-client-secret).
33
+
34
+ In **simple terms**, `oidc-spa` is a library that makes it easy to **add authentication** to your Vite or Create-React-App project.
35
+ There are many authentication and user management platforms out there: Okta, Auth0, Entra ID...
36
+ There are also plenty of self-hosted options like Keycloak, Ory Hydra, and Dex.
37
+ What all of these have in common is that they implement the OpenID Connect/OAuth2 standard.
38
+
39
+ This library provides a **unified way** to connect with these different providers instead of having to use
40
+ their specific SDKs.
41
+
42
+ `oidc-spa` implement the [**Authorization Code Flow with PKCE**](https://docs.oidc-spa.dev/resources/why-no-client-secret), this means that **you do not need a backend and a database** to handle the authentication process.
43
+ The authentication process is handled entirely in the browser. And no need for `/login` or `/logout` routes.
44
+
45
+ ## Why `oidc-spa`?
46
+
47
+ Most OIDC providers push their own client libraries:
48
+
49
+ - **Auth0** β†’ `auth0-spa-js`
50
+ - **Microsoft Entra ID** β†’ `MSAL.js`
51
+ - **Keycloak** β†’ `keycloak-js` (no longer actively promoted, planned for deprecation)
52
+ - **... and so on.**
53
+
54
+ These libraries are **tied to a specific provider**. But what if you need to:
55
+
56
+ βœ… Switch OIDC providers without modifying your authentication logic?
57
+ βœ… Build a self-hostable solution that works with any provider (e.g., you're developing a dashboard app that you sell to enterprises and need to integrate with their existing IAM system)?
58
+ βœ… Stop re-learning authentication implementation every time you change providers?
59
+
60
+ And besides, not all SDKs are equal in terms of setup simplicity, performance, and API quality.
61
+
62
+ We wanted a **universal solution**, one that is as good or better than all existing SDKs in every aspect.
63
+
64
+ ## Features
65
+
66
+ - πŸŽ“ **No OIDC/OAuth2 expertise required**: Easy to setup and use. We're here to help [on Discord](https://discord.gg/mJdYJSdcm4)!
67
+ - πŸ› οΈ **Simple setup**: No need to define `/login` or `/logout` routes, token refreshing is automatic, it just works.
68
+ - ✨ **React integration**: Expose a framework agnostic API but also a React adapter `oidc-spa/react`.
69
+ - πŸ”₯ **No limitation**- For example, everything you could do with `keycloak-js`, you can do with `oidc-spa`.
70
+ - πŸ’¬ **Detailed debug messages**: If your OIDC server is not properly configured, it tells you precisely what’s wrong and what you need to do to fix it.
71
+ - πŸ•£ **Auto logout with countdown**: "You will be logged out in 10... 9... 8...", users see exactly when their session expires.
72
+ - πŸšͺ **Logout propagation**: Logging out in one tab logs out all others.
73
+ - πŸ“– **Comprehensive documentation**: Guides and examples for common scenarios.
74
+ - βœ… **Type safety**: Strong TypeScript support with optional [Zod](https://zod.dev/) integration validating the expected shape of the ID token.
75
+ - πŸ”’ **Security-first**: Uses [**Authorization Code Flow + PKCE**](https://docs.oidc-spa.dev/resources/why-no-client-secret#id-2.-authorization-code-flow--pkce-used-by-oidc-spa), No token persistence in `localStorage` or `sessionStorage`.
76
+ - πŸ–₯️ **Optional backend utilities**: Provides tools for token validation in JavaScript backends (Node.js, Deno, Web Workers).
77
+ - πŸͺ **No third-party cookie issues**: Third-party cookies blocked? No problem, `oidc-spa` works around it automatically with no special measures needed on your side.
78
+ - πŸ”— **Multi-instance support**: Run multiple `oidc-spa` instances in the same app without conflict.
79
+
80
+ ## Comparison with Existing Libraries
81
+
82
+ ### [oidc-client-ts](https://github.com/authts/oidc-client-ts)
83
+
84
+ While `oidc-client-ts` is a comprehensive toolkit designed for various applications, `oidc-spa` is specifically built for SPAs with an easy-to-set-up API.
85
+ But **ease of use** isn't the only difference, `oidc-spa` also provides **out-of-the-box** solutions for features that `oidc-client-ts` leaves up to you to implement, such as:
86
+
87
+ - **Login/logout propagation** across tabs
88
+ - **Graceful fallback when third-party cookies are blocked**
89
+ - **Seamless browser back/forward cache (bfcache) management**
90
+ - **Auto logout countdown** so users can be automatically logged out after a set period of inactivity.
91
+ - **Ensuring you never get an expired access token error**, even after the computer wakes up from sleep.
92
+ - **Gracefully handles scenarios where the provider does not issue a refresh token or lacks a logout endpoint** (e.g., Google OAuth)
93
+
94
+ ### [react-oidc-context](https://github.com/authts/react-oidc-context)
95
+
96
+ `react-oidc-context` is a React wrapper around `oidc-client-ts`.
97
+ `oidc-spa` also feature a carefully crafted React API that comes with [working examples that you can test locally](https://docs.oidc-spa.dev/example-setups/example-setups).
98
+
99
+ ### [keycloak-js](https://www.npmjs.com/package/keycloak-js)
100
+
101
+ The official OIDC Client for Keycloak. It only works with Keycloak and [will eventually be deprecated](https://www.keycloak.org/2023/03/adapter-deprecation-update).
102
+ Beyond that, achieving the same seamless user experience as `oidc-spa` with `keycloak-js` requires writing a lot of custom code, code that really **shouldn’t** be handled at the application level.
103
+
104
+ ### [NextAuth.js](https://next-auth.js.org/)
105
+
106
+ Since oidc-spa is built for true SPAs, Next.js applications should use NextAuth.js instead.
107
+
108
+ > _NOTE: We might create in the future a `oidc-mpa` library for Multi Page Applications that would aim at supporting Next.js projects._
109
+
110
+ ## πŸš€ Quick start
111
+
112
+ Head over to [the documentation website](https://docs.oidc-spa.dev) πŸ“˜!
113
+
114
+ ## Sponsors
115
+
116
+ Project backers, we trust and recommend their services.
117
+
118
+ <br/>
119
+
120
+ <div align="center">
121
+
122
+ ![Logo Dark](https://github.com/user-attachments/assets/d8f6b6f5-3de4-4adc-ba15-cb4074e8309b#gh-dark-mode-only)
123
+
124
+ </div>
125
+
126
+ <div align="center">
127
+
128
+ ![Logo Light](https://github.com/user-attachments/assets/20736d6f-f22d-4a9d-9dfe-93be209a8191#gh-light-mode-only)
129
+
130
+ </div>
131
+
132
+ <br/>
133
+
134
+ <p align="center">
135
+ <i><a href="https://phasetwo.io/?utm_source=keycloakify"><strong>Keycloak as a Service</strong></a> - Keycloak community contributors of popular <a href="https://github.com/p2-inc#our-extensions-?utm_source=keycloakify">extensions</a> providing free and dedicated <a href="https://phasetwo.io/hosting/?utm_source=keycloakify">Keycloak hosting</a> and enterprise <a href="https://phasetwo.io/support/?utm_source=keycloakify">Keycloak support</a> to businesses of all sizes.</i>
136
+ </p>
137
+
138
+ <br/>
139
+ <br/>
140
+ <br/>
141
+
142
+ <div align="center">
143
+
144
+ ![Logo Dark](https://github.com/user-attachments/assets/dd3925fb-a58a-4e91-b360-69c2fa1f1087#gh-dark-mode-only)
145
+
146
+ </div>
147
+
148
+ <div align="center">
149
+
150
+ ![Logo Light](https://github.com/user-attachments/assets/6c00c201-eed7-485a-a887-70891559d69b#gh-light-mode-only)
151
+
152
+ </div>
153
+
154
+ <br/>
155
+
156
+ <p align="center">
157
+ <a href="https://www.zone2.tech/services/keycloak-consulting">
158
+ <i><strong>Keycloak Consulting Services</strong> - Your partner in Keycloak deployment, configuration, and extension development for optimized identity management solutions.</i>
159
+ </a>
160
+ </p>
161
+
162
+ ## We built it because we needed it.
163
+
164
+ This library isn't a theoretical exercise or a tool for hobby projects.
165
+ We developed it to solve real-world problems we faced ourselves.
166
+ Today, it powers authentication for [Onyxia](https://onyxia.sh),
167
+ a data science platform deployed across multiple large organizations.
168
+
169
+ ### Onyxia
170
+
171
+ - [Source code](https://github.com/InseeFrLab/onyxia)
172
+ - [Public instance](https://datalab.sspcloud.fr)
173
+
174
+ <a href="https://youtu.be/FvpNfVrxBFM">
175
+ <img width="1712" alt="image" src="https://user-images.githubusercontent.com/6702424/231314534-2eeb1ab5-5460-4caa-b78d-55afd400c9fc.png">
176
+ </a>
177
+
178
+ ### The French Interministerial Base of Free Software
179
+
180
+ - [Source code](https://github.com/codegouvfr/sill-web/)
181
+ - [Deployment of the website](https://sill-preprod.lab.sspcloud.fr/)
182
+
183
+ <a href="https://youtu.be/AT3CvmY_Y7M?si=Edkf0vRNjosGLA3R">
184
+ <img width="1712" alt="image" src="https://github.com/garronej/i18nifty/assets/6702424/aa06cc30-b2bd-4c8b-b435-2f875f53175b">
185
+ </a>
@@ -63,7 +63,7 @@ const isNewBrowserSession_1 = require("./isNewBrowserSession");
63
63
  const getIsOnline_1 = require("../tools/getIsOnline");
64
64
  const isKeycloak_1 = require("../keycloak/isKeycloak");
65
65
  // NOTE: Replaced at build time
66
- const VERSION = "7.2.0-rc.2";
66
+ const VERSION = "7.2.0";
67
67
  const globalContext = {
68
68
  prOidcByConfigId: new Map(),
69
69
  hasLogoutBeenCalled: (0, tsafe_1.id)(false),
@@ -12,13 +12,10 @@ async function loginSilent(params) {
12
12
  const { oidcClientTsUserManager, stateUrlParamValue_instance, configId, transformUrlBeforeRedirect, getExtraQueryParams, getExtraTokenParams, autoLogin } = params;
13
13
  const dResult = new Deferred_1.Deferred();
14
14
  const timeoutDelayMs = (() => {
15
- if (autoLogin) {
16
- return 25000;
17
- }
18
- const downlinkAndRtt = (0, getDownlinkAndRtt_1.getDownlinkAndRtt)();
19
15
  const isDev = (0, isDev_1.getIsDev)();
16
+ const downlinkAndRtt = (0, getDownlinkAndRtt_1.getDownlinkAndRtt)();
20
17
  // Base delay is the minimum delay we should wait in any case
21
- const BASE_DELAY_MS = isDev ? 9000 : 7000;
18
+ const BASE_DELAY_MS = isDev ? 9000 : autoLogin ? 25000 : 7000;
22
19
  if (downlinkAndRtt === undefined) {
23
20
  return BASE_DELAY_MS;
24
21
  }
@@ -31,12 +28,36 @@ async function loginSilent(params) {
31
28
  const { decodeEncryptedAuth, getIsEncryptedAuthResponse, clearSessionStoragePublicKey } = await (0, iframeMessageProtection_1.initIframeMessageProtection)({
32
29
  stateUrlParamValue: stateUrlParamValue_instance
33
30
  });
34
- const timer = setTimeout(async () => {
35
- dResult.resolve({
36
- outcome: "failure",
37
- cause: "timeout"
38
- });
39
- }, timeoutDelayMs);
31
+ let clearTimeouts;
32
+ {
33
+ let hasLoggedWarningMessage = false;
34
+ const timeouts = [
35
+ setTimeout(() => {
36
+ dResult.resolve({
37
+ outcome: "failure",
38
+ cause: "timeout"
39
+ });
40
+ }, timeoutDelayMs),
41
+ setTimeout(() => {
42
+ console.warn([
43
+ "oidc-spa: Session restoration is taking longer than expected.",
44
+ "This likely indicates a misconfiguration.",
45
+ `Waiting ${Math.floor(timeoutDelayMs / 1000)} seconds before running diagnostics.`,
46
+ "Once the timeout expires, helpful debugging information will be printed to the console."
47
+ ].join(" "));
48
+ hasLoggedWarningMessage = true;
49
+ }, 2000)
50
+ ];
51
+ clearTimeouts = ({ wasSuccess }) => {
52
+ timeouts.forEach(clearTimeout);
53
+ if (wasSuccess && hasLoggedWarningMessage) {
54
+ console.log([
55
+ "oidc-spa: Never mind, the auth server was just slow to respond.",
56
+ "You can safely ignore the previous warning."
57
+ ].join(" "));
58
+ }
59
+ };
60
+ }
40
61
  const listener = async (event) => {
41
62
  if (event.origin !== window.location.origin) {
42
63
  return;
@@ -53,7 +74,7 @@ async function loginSilent(params) {
53
74
  if (stateData.configId !== configId) {
54
75
  return;
55
76
  }
56
- clearTimeout(timer);
77
+ clearTimeouts({ wasSuccess: true });
57
78
  window.removeEventListener("message", listener);
58
79
  dResult.resolve({
59
80
  outcome: "got auth response from iframe",
@@ -94,7 +115,7 @@ async function loginSilent(params) {
94
115
  })
95
116
  .then(oidcClientTsUser => {
96
117
  (0, tsafe_1.assert)(oidcClientTsUser !== null, "oidcClientTsUser is not supposed to be null here");
97
- clearTimeout(timer);
118
+ clearTimeouts({ wasSuccess: true });
98
119
  window.removeEventListener("message", listener);
99
120
  dResult.resolve({
100
121
  outcome: "token refreshed using refresh token",
@@ -107,7 +128,11 @@ async function loginSilent(params) {
107
128
  // This usually means that the server is down or that the issuerUri
108
129
  // is not pointing to a valid oidc server.
109
130
  // It could be a CORS error on the well-known endpoint but it's unlikely.
110
- clearTimeout(timer);
131
+ // NOTE: This error should happen well before we displayed
132
+ // the warning notifying that something is probably misconfigured.
133
+ // wasSuccess shouldn't really be a required parameter but we do it
134
+ // for peace of mind.
135
+ clearTimeouts({ wasSuccess: false });
111
136
  dResult.resolve({
112
137
  outcome: "failure",
113
138
  cause: "can't reach well-known oidc endpoint"
@@ -1 +1 @@
1
- {"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../../src/core/loginSilent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../../src/core/loginSilent.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ import { createGetIsNewBrowserSession } from "./isNewBrowserSession";
26
26
  import { getIsOnline } from "../tools/getIsOnline";
27
27
  import { isKeycloak } from "../keycloak/isKeycloak";
28
28
  // NOTE: Replaced at build time
29
- const VERSION = "7.2.0-rc.2";
29
+ const VERSION = "7.2.0";
30
30
  const globalContext = {
31
31
  prOidcByConfigId: new Map(),
32
32
  hasLogoutBeenCalled: id(false),
@@ -9,13 +9,10 @@ export async function loginSilent(params) {
9
9
  const { oidcClientTsUserManager, stateUrlParamValue_instance, configId, transformUrlBeforeRedirect, getExtraQueryParams, getExtraTokenParams, autoLogin } = params;
10
10
  const dResult = new Deferred();
11
11
  const timeoutDelayMs = (() => {
12
- if (autoLogin) {
13
- return 25000;
14
- }
15
- const downlinkAndRtt = getDownlinkAndRtt();
16
12
  const isDev = getIsDev();
13
+ const downlinkAndRtt = getDownlinkAndRtt();
17
14
  // Base delay is the minimum delay we should wait in any case
18
- const BASE_DELAY_MS = isDev ? 9000 : 7000;
15
+ const BASE_DELAY_MS = isDev ? 9000 : autoLogin ? 25000 : 7000;
19
16
  if (downlinkAndRtt === undefined) {
20
17
  return BASE_DELAY_MS;
21
18
  }
@@ -28,12 +25,36 @@ export async function loginSilent(params) {
28
25
  const { decodeEncryptedAuth, getIsEncryptedAuthResponse, clearSessionStoragePublicKey } = await initIframeMessageProtection({
29
26
  stateUrlParamValue: stateUrlParamValue_instance
30
27
  });
31
- const timer = setTimeout(async () => {
32
- dResult.resolve({
33
- outcome: "failure",
34
- cause: "timeout"
35
- });
36
- }, timeoutDelayMs);
28
+ let clearTimeouts;
29
+ {
30
+ let hasLoggedWarningMessage = false;
31
+ const timeouts = [
32
+ setTimeout(() => {
33
+ dResult.resolve({
34
+ outcome: "failure",
35
+ cause: "timeout"
36
+ });
37
+ }, timeoutDelayMs),
38
+ setTimeout(() => {
39
+ console.warn([
40
+ "oidc-spa: Session restoration is taking longer than expected.",
41
+ "This likely indicates a misconfiguration.",
42
+ `Waiting ${Math.floor(timeoutDelayMs / 1000)} seconds before running diagnostics.`,
43
+ "Once the timeout expires, helpful debugging information will be printed to the console."
44
+ ].join(" "));
45
+ hasLoggedWarningMessage = true;
46
+ }, 2000)
47
+ ];
48
+ clearTimeouts = ({ wasSuccess }) => {
49
+ timeouts.forEach(clearTimeout);
50
+ if (wasSuccess && hasLoggedWarningMessage) {
51
+ console.log([
52
+ "oidc-spa: Never mind, the auth server was just slow to respond.",
53
+ "You can safely ignore the previous warning."
54
+ ].join(" "));
55
+ }
56
+ };
57
+ }
37
58
  const listener = async (event) => {
38
59
  if (event.origin !== window.location.origin) {
39
60
  return;
@@ -50,7 +71,7 @@ export async function loginSilent(params) {
50
71
  if (stateData.configId !== configId) {
51
72
  return;
52
73
  }
53
- clearTimeout(timer);
74
+ clearTimeouts({ wasSuccess: true });
54
75
  window.removeEventListener("message", listener);
55
76
  dResult.resolve({
56
77
  outcome: "got auth response from iframe",
@@ -91,7 +112,7 @@ export async function loginSilent(params) {
91
112
  })
92
113
  .then(oidcClientTsUser => {
93
114
  assert(oidcClientTsUser !== null, "oidcClientTsUser is not supposed to be null here");
94
- clearTimeout(timer);
115
+ clearTimeouts({ wasSuccess: true });
95
116
  window.removeEventListener("message", listener);
96
117
  dResult.resolve({
97
118
  outcome: "token refreshed using refresh token",
@@ -104,7 +125,11 @@ export async function loginSilent(params) {
104
125
  // This usually means that the server is down or that the issuerUri
105
126
  // is not pointing to a valid oidc server.
106
127
  // It could be a CORS error on the well-known endpoint but it's unlikely.
107
- clearTimeout(timer);
128
+ // NOTE: This error should happen well before we displayed
129
+ // the warning notifying that something is probably misconfigured.
130
+ // wasSuccess shouldn't really be a required parameter but we do it
131
+ // for peace of mind.
132
+ clearTimeouts({ wasSuccess: false });
108
133
  dResult.resolve({
109
134
  outcome: "failure",
110
135
  cause: "can't reach well-known oidc endpoint"
@@ -1 +1 @@
1
- {"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../../../src/core/loginSilent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../../../src/core/loginSilent.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ export declare class Deferred<T> {
4
4
  readonly resolve: (value: T) => void;
5
5
  readonly reject: (error: any) => void;
6
6
  constructor();
7
- readonly isPending: boolean;
8
7
  }
9
8
  export declare namespace Deferred {
10
9
  type Unpack<T extends Deferred<any>> = T extends Deferred<infer U> ? U : never;
@@ -1,16 +1,12 @@
1
- import { overwriteReadonlyProp } from "../vendor/frontend/tsafe";
2
1
  export class Deferred {
3
2
  constructor() {
4
- this.isPending = true;
5
3
  let resolve;
6
4
  let reject;
7
5
  this.pr = new Promise((resolve_, reject_) => {
8
6
  resolve = value => {
9
- overwriteReadonlyProp(this, "isPending", false);
10
7
  resolve_(value);
11
8
  };
12
9
  reject = error => {
13
- overwriteReadonlyProp(this, "isPending", false);
14
10
  reject_(error);
15
11
  };
16
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../../../src/tools/Deferred.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,OAAO,QAAQ;IAOjB;QAoBgB,cAAS,GAAY,IAAI,CAAC;QAnBtC,IAAI,OAA4B,CAAC;QACjC,IAAI,MAA6B,CAAC;QAElC,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC3C,OAAO,GAAG,KAAK,CAAC,EAAE;gBACd,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBAChD,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,MAAM,GAAG,KAAK,CAAC,EAAE;gBACb,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBAChD,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CAGJ;AAMD,MAAM,OAAO,YAAa,SAAQ,QAAmB;CAEpD"}
1
+ {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../../../src/tools/Deferred.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IAOjB;QACI,IAAI,OAA4B,CAAC;QACjC,IAAI,MAA6B,CAAC;QAElC,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC3C,OAAO,GAAG,KAAK,CAAC,EAAE;gBACd,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,MAAM,GAAG,KAAK,CAAC,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAMD,MAAM,OAAO,YAAa,SAAQ,QAAmB;CAEpD"}
@@ -1,7 +1,6 @@
1
1
  export { id } from "tsafe/id";
2
2
  export { assert, is, type Equals } from "tsafe/assert";
3
3
  export { typeGuard } from "tsafe/typeGuard";
4
- export { overwriteReadonlyProp } from "tsafe/lab/overwriteReadonlyProp";
5
4
  export { noUndefined } from "tsafe/noUndefined";
6
5
  export type { Param0 } from "tsafe";
7
6
  export { isAmong } from "tsafe/isAmong";
@@ -1 +1 @@
1
- var t={d:(r,e)=>{for(var n in e)t.o(e,n)&&!t.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:e[n]})},o:(t,r)=>Object.prototype.hasOwnProperty.call(t,r)},r={};t.d(r,{vA:()=>d,id:()=>e,is:()=>w,FB:()=>j,AG:()=>O,Jc:()=>u,Ew:()=>m});var e=function(t){return t};function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function i(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?o(Object(e),!0).forEach((function(r){c(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):o(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function c(t,r,e){return(r=function(t){var r=function(t){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=n(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var u=function(t,r,e){try{t[r]=e}catch(t){}if(t[r]===e)return e;var n=void 0,o=Object.getOwnPropertyDescriptor(t,r)||{enumerable:!0,configurable:!0};if(o.get)throw new Error("Probably a wrong ides to overwrite ".concat(String(r)," getter"));try{Object.defineProperty(t,r,i(i({},o),{},{value:e}))}catch(t){n=t}if(t[r]!==e)throw n||new Error("Can't assign");return e};function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function a(t,r){if(r&&("object"==f(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function l(t){var r="function"==typeof Map?new Map:void 0;return l=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(r){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,e)}function e(){return function(t,r,e){if(s())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,r);var o=new(t.bind.apply(t,n));return e&&p(o,e.prototype),o}(t,arguments,y(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),p(e,t)},l(t)}function s(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(s=function(){return!!t})()}function p(t,r){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,r){return t.__proto__=r,t},p(t,r)}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}var b=function(){function t(r){var e,n,o,i;if(function(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,o=t,i=["Wrong assertion encountered"+(r?': "'.concat(r,'"'):"")],o=y(o),(e=a(n,s()?Reflect.construct(o,i||[],y(n).constructor):o.apply(n,i))).originalMessage=r,Object.setPrototypeOf(e,(this instanceof t?this.constructor:void 0).prototype),!e.stack)return a(e);try{u(e,"stack",e.stack.split("\n").filter((function(){for(var t=arguments.length,r=new Array(t),e=0;e<t;e++)r[e]=arguments[e];var n=r[1];return 1!==n&&2!==n})).join("\n"))}catch(t){}return e}return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&p(t,r)}(t,l(Error)),r=t,Object.defineProperty(r,"prototype",{writable:!1}),r;var r}(),v=void 0;function d(t,r){if(0===arguments.length&&(t=!0),void 0===v){if(!t)throw new b("function"==typeof r?r():r)}else v=void 0}var h="Wrong usage of the `is` function refer to https://docs.tsafe.dev/is";function w(t){var r={};if(void 0!==v)throw v=void 0,new Error(h);return v=r,Promise.resolve().then((function(){if(v===r)throw new Error(h)})),null}function m(t,r){return r}function O(t){var r={};for(var e in t)void 0!==t[e]&&(r[e]=t[e]);return r}function g(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function j(t,r){var e,n=function(t,r){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=function(t,r){if(t){if("string"==typeof t)return g(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?g(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,c=!0,u=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return c=t.done,t},e:function(t){u=!0,i=t},f:function(){try{c||null==e.return||e.return()}finally{if(u)throw i}}}}(t);try{for(n.s();!(e=n.n()).done;)if(e.value===r)return!0}catch(t){n.e(t)}finally{n.f()}return!1}var P=r.vA,S=r.id,E=r.is,A=r.FB,_=r.AG,D=r.Jc,T=r.Ew;export{P as assert,S as id,E as is,A as isAmong,_ as noUndefined,D as overwriteReadonlyProp,T as typeGuard};
1
+ var t={d:(r,e)=>{for(var n in e)t.o(e,n)&&!t.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:e[n]})},o:(t,r)=>Object.prototype.hasOwnProperty.call(t,r)},r={};t.d(r,{vA:()=>v,id:()=>e,is:()=>h,FB:()=>g,AG:()=>m,Ew:()=>w});var e=function(t){return t};function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function i(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?o(Object(e),!0).forEach((function(r){c(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):o(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function c(t,r,e){return(r=function(t){var r=function(t){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=n(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function f(t,r){if(r&&("object"==u(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function a(t){var r="function"==typeof Map?new Map:void 0;return a=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(r){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,e)}function e(){return function(t,r,e){if(l())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,r);var o=new(t.bind.apply(t,n));return e&&s(o,e.prototype),o}(t,arguments,p(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),s(e,t)},a(t)}function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}function s(t,r){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,r){return t.__proto__=r,t},s(t,r)}function p(t){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},p(t)}var y=function(){function t(r){var e,n,o,c;if(function(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,o=t,c=["Wrong assertion encountered"+(r?': "'.concat(r,'"'):"")],o=p(o),(e=f(n,l()?Reflect.construct(o,c||[],p(n).constructor):o.apply(n,c))).originalMessage=r,Object.setPrototypeOf(e,(this instanceof t?this.constructor:void 0).prototype),!e.stack)return f(e);try{!function(t,r,e){try{t[r]=e}catch(t){}if(t[r]===e)return e;var n=void 0,o=Object.getOwnPropertyDescriptor(t,r)||{enumerable:!0,configurable:!0};if(o.get)throw new Error("Probably a wrong ides to overwrite ".concat(String(r)," getter"));try{Object.defineProperty(t,r,i(i({},o),{},{value:e}))}catch(t){n=t}if(t[r]!==e)throw n||new Error("Can't assign")}(e,"stack",e.stack.split("\n").filter((function(){for(var t=arguments.length,r=new Array(t),e=0;e<t;e++)r[e]=arguments[e];var n=r[1];return 1!==n&&2!==n})).join("\n"))}catch(t){}return e}return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&s(t,r)}(t,a(Error)),r=t,Object.defineProperty(r,"prototype",{writable:!1}),r;var r}(),b=void 0;function v(t,r){if(0===arguments.length&&(t=!0),void 0===b){if(!t)throw new y("function"==typeof r?r():r)}else b=void 0}var d="Wrong usage of the `is` function refer to https://docs.tsafe.dev/is";function h(t){var r={};if(void 0!==b)throw b=void 0,new Error(d);return b=r,Promise.resolve().then((function(){if(b===r)throw new Error(d)})),null}function w(t,r){return r}function m(t){var r={};for(var e in t)void 0!==t[e]&&(r[e]=t[e]);return r}function O(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function g(t,r){var e,n=function(t,r){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=function(t,r){if(t){if("string"==typeof t)return O(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?O(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,c=!0,u=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return c=t.done,t},e:function(t){u=!0,i=t},f:function(){try{c||null==e.return||e.return()}finally{if(u)throw i}}}}(t);try{for(n.s();!(e=n.n()).done;)if(e.value===r)return!0}catch(t){n.e(t)}finally{n.f()}return!1}var j=r.vA,P=r.id,S=r.is,E=r.FB,A=r.AG,_=r.Ew;export{j as assert,P as id,S as is,E as isAmong,A as noUndefined,_ as typeGuard};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oidc-spa",
3
- "version": "7.2.0-rc.2",
3
+ "version": "7.2.0",
4
4
  "description": "Openidconnect client for Single Page Applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,6 +34,7 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
+ "sideEffects": false,
37
38
  "main": "index.js",
38
39
  "types": "index.d.ts",
39
40
  "module": "esm/index.js",
@@ -4,7 +4,6 @@ export declare class Deferred<T> {
4
4
  readonly resolve: (value: T) => void;
5
5
  readonly reject: (error: any) => void;
6
6
  constructor();
7
- readonly isPending: boolean;
8
7
  }
9
8
  export declare namespace Deferred {
10
9
  type Unpack<T extends Deferred<any>> = T extends Deferred<infer U> ? U : never;
package/tools/Deferred.js CHANGED
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VoidDeferred = exports.Deferred = void 0;
4
- const tsafe_1 = require("../vendor/frontend/tsafe");
5
4
  class Deferred {
6
5
  constructor() {
7
- this.isPending = true;
8
6
  let resolve;
9
7
  let reject;
10
8
  this.pr = new Promise((resolve_, reject_) => {
11
9
  resolve = value => {
12
- (0, tsafe_1.overwriteReadonlyProp)(this, "isPending", false);
13
10
  resolve_(value);
14
11
  };
15
12
  reject = error => {
16
- (0, tsafe_1.overwriteReadonlyProp)(this, "isPending", false);
17
13
  reject_(error);
18
14
  };
19
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../../src/tools/Deferred.ts"],"names":[],"mappings":";;;AAAA,oDAAiE;AAEjE,MAAa,QAAQ;IAOjB;QAoBgB,cAAS,GAAY,IAAI,CAAC;QAnBtC,IAAI,OAA4B,CAAC;QACjC,IAAI,MAA6B,CAAC;QAElC,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC3C,OAAO,GAAG,KAAK,CAAC,EAAE;gBACd,IAAA,6BAAqB,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBAChD,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,MAAM,GAAG,KAAK,CAAC,EAAE;gBACb,IAAA,6BAAqB,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBAChD,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CAGJ;AA5BD,4BA4BC;AAMD,MAAa,YAAa,SAAQ,QAAmB;CAEpD;AAFD,oCAEC"}
1
+ {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../../src/tools/Deferred.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAQ;IAOjB;QACI,IAAI,OAA4B,CAAC;QACjC,IAAI,MAA6B,CAAC;QAElC,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC3C,OAAO,GAAG,KAAK,CAAC,EAAE;gBACd,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,MAAM,GAAG,KAAK,CAAC,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAxBD,4BAwBC;AAMD,MAAa,YAAa,SAAQ,QAAmB;CAEpD;AAFD,oCAEC"}
@@ -1,7 +1,6 @@
1
1
  export { id } from "tsafe/id";
2
2
  export { assert, is, type Equals } from "tsafe/assert";
3
3
  export { typeGuard } from "tsafe/typeGuard";
4
- export { overwriteReadonlyProp } from "tsafe/lab/overwriteReadonlyProp";
5
4
  export { noUndefined } from "tsafe/noUndefined";
6
5
  export type { Param0 } from "tsafe";
7
6
  export { isAmong } from "tsafe/isAmong";
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var e={720:function(e,r,t){var n,o=this&&this.__extends||(n=function(e,r){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])},n(e,r)},function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function t(){this.constructor=e}n(e,r),e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)}),i=this&&this.__read||function(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,o,i=t.call(e),u=[];try{for(;(void 0===r||r-- >0)&&!(n=i.next()).done;)u.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return u};Object.defineProperty(r,"__esModule",{value:!0}),r.AssertionError=void 0,r.assert=function(e,r){if(0===arguments.length&&(e=!0),void 0===c){if(!e)throw new a("function"==typeof r?r():r)}else c=void 0},r.is=function(e){var r={};if(void 0!==c)throw c=void 0,new Error(f);return c=r,Promise.resolve().then((function(){if(c===r)throw new Error(f)})),null};var u=t(522),a=function(e){function r(r){var t=this.constructor,n=e.call(this,"Wrong assertion encountered"+(r?': "'.concat(r,'"'):""))||this;if(n.originalMessage=r,Object.setPrototypeOf(n,t.prototype),!n.stack)return n;try{(0,u.overwriteReadonlyProp)(n,"stack",n.stack.split("\n").filter((function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var t=i(e,2)[1];return 1!==t&&2!==t})).join("\n"))}catch(e){}return n}return o(r,e),r}(Error);r.AssertionError=a;var c=void 0,f="Wrong usage of the `is` function refer to https://docs.tsafe.dev/is"},135:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.id=void 0,r.id=function(e){return e}},952:function(e,r){var t=this&&this.__values||function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(r,"__esModule",{value:!0}),r.isAmong=function(e,r){var n,o;try{for(var i=t(e),u=i.next();!u.done;u=i.next())if(u.value===r)return!0}catch(e){n={error:e}}finally{try{u&&!u.done&&(o=i.return)&&o.call(i)}finally{if(n)throw n.error}}return!1}},522:function(e,r){var t=this&&this.__assign||function(){return t=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},t.apply(this,arguments)};Object.defineProperty(r,"__esModule",{value:!0}),r.overwriteReadonlyProp=void 0,r.overwriteReadonlyProp=function(e,r,n){try{e[r]=n}catch(e){}if(e[r]===n)return n;var o=void 0,i=Object.getOwnPropertyDescriptor(e,r)||{enumerable:!0,configurable:!0};if(i.get)throw new Error("Probably a wrong ides to overwrite ".concat(String(r)," getter"));try{Object.defineProperty(e,r,t(t({},i),{value:n}))}catch(e){o=e}if(e[r]!==n)throw o||new Error("Can't assign");return n}},505:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.noUndefined=function(e){var r={};for(var t in e)void 0!==e[t]&&(r[t]=e[t]);return r}},497:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.typeGuard=function(e,r){return r}}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n].call(i.exports,i,i.exports,t),i.exports}var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.isAmong=e.noUndefined=e.overwriteReadonlyProp=e.typeGuard=e.is=e.assert=e.id=void 0;var r=t(135);Object.defineProperty(e,"id",{enumerable:!0,get:function(){return r.id}});var o=t(720);Object.defineProperty(e,"assert",{enumerable:!0,get:function(){return o.assert}}),Object.defineProperty(e,"is",{enumerable:!0,get:function(){return o.is}});var i=t(497);Object.defineProperty(e,"typeGuard",{enumerable:!0,get:function(){return i.typeGuard}});var u=t(522);Object.defineProperty(e,"overwriteReadonlyProp",{enumerable:!0,get:function(){return u.overwriteReadonlyProp}});var a=t(505);Object.defineProperty(e,"noUndefined",{enumerable:!0,get:function(){return a.noUndefined}});var c=t(952);Object.defineProperty(e,"isAmong",{enumerable:!0,get:function(){return c.isAmong}})})(),module.exports=n})();
1
+ (()=>{"use strict";var e={720:function(e,r,t){var n,o=this&&this.__extends||(n=function(e,r){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])},n(e,r)},function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function t(){this.constructor=e}n(e,r),e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)}),i=this&&this.__read||function(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,o,i=t.call(e),u=[];try{for(;(void 0===r||r-- >0)&&!(n=i.next()).done;)u.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return u};Object.defineProperty(r,"__esModule",{value:!0}),r.AssertionError=void 0,r.assert=function(e,r){if(0===arguments.length&&(e=!0),void 0===c){if(!e)throw new a("function"==typeof r?r():r)}else c=void 0},r.is=function(e){var r={};if(void 0!==c)throw c=void 0,new Error(f);return c=r,Promise.resolve().then((function(){if(c===r)throw new Error(f)})),null};var u=t(522),a=function(e){function r(r){var t=this.constructor,n=e.call(this,"Wrong assertion encountered"+(r?': "'.concat(r,'"'):""))||this;if(n.originalMessage=r,Object.setPrototypeOf(n,t.prototype),!n.stack)return n;try{(0,u.overwriteReadonlyProp)(n,"stack",n.stack.split("\n").filter((function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var t=i(e,2)[1];return 1!==t&&2!==t})).join("\n"))}catch(e){}return n}return o(r,e),r}(Error);r.AssertionError=a;var c=void 0,f="Wrong usage of the `is` function refer to https://docs.tsafe.dev/is"},135:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.id=void 0,r.id=function(e){return e}},952:function(e,r){var t=this&&this.__values||function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(r,"__esModule",{value:!0}),r.isAmong=function(e,r){var n,o;try{for(var i=t(e),u=i.next();!u.done;u=i.next())if(u.value===r)return!0}catch(e){n={error:e}}finally{try{u&&!u.done&&(o=i.return)&&o.call(i)}finally{if(n)throw n.error}}return!1}},522:function(e,r){var t=this&&this.__assign||function(){return t=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},t.apply(this,arguments)};Object.defineProperty(r,"__esModule",{value:!0}),r.overwriteReadonlyProp=void 0,r.overwriteReadonlyProp=function(e,r,n){try{e[r]=n}catch(e){}if(e[r]===n)return n;var o=void 0,i=Object.getOwnPropertyDescriptor(e,r)||{enumerable:!0,configurable:!0};if(i.get)throw new Error("Probably a wrong ides to overwrite ".concat(String(r)," getter"));try{Object.defineProperty(e,r,t(t({},i),{value:n}))}catch(e){o=e}if(e[r]!==n)throw o||new Error("Can't assign");return n}},505:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.noUndefined=function(e){var r={};for(var t in e)void 0!==e[t]&&(r[t]=e[t]);return r}},497:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.typeGuard=function(e,r){return r}}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n].call(i.exports,i,i.exports,t),i.exports}var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.isAmong=e.noUndefined=e.typeGuard=e.is=e.assert=e.id=void 0;var r=t(135);Object.defineProperty(e,"id",{enumerable:!0,get:function(){return r.id}});var o=t(720);Object.defineProperty(e,"assert",{enumerable:!0,get:function(){return o.assert}}),Object.defineProperty(e,"is",{enumerable:!0,get:function(){return o.is}});var i=t(497);Object.defineProperty(e,"typeGuard",{enumerable:!0,get:function(){return i.typeGuard}});var u=t(505);Object.defineProperty(e,"noUndefined",{enumerable:!0,get:function(){return u.noUndefined}});var a=t(952);Object.defineProperty(e,"isAmong",{enumerable:!0,get:function(){return a.isAmong}})})(),module.exports=n})();
2
2
  exports.__oidcSpaBundle = true;