@apicurio/common-ui-components 2.0.5 → 2.0.6
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/dist/main.js +618 -772
- package/dist/table/index.d.ts +0 -1
- package/package.json +9 -9
- package/dist/table/ChipFilter/ChipFilter.d.ts +0 -10
- package/dist/table/ChipFilter/components/FilterCheckbox.d.ts +0 -5
- package/dist/table/ChipFilter/components/FilterSearch.d.ts +0 -6
- package/dist/table/ChipFilter/components/FilterSelector.d.ts +0 -6
- package/dist/table/ChipFilter/components/index.d.ts +0 -3
- package/dist/table/ChipFilter/index.d.ts +0 -5
- package/dist/table/ChipFilter/types.d.ts +0 -20
package/dist/main.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { jsx as a, jsxs as
|
|
3
|
-
import { EmptyState as
|
|
4
|
-
import { EllipsisVIcon as
|
|
5
|
-
import { DateTime as
|
|
6
|
-
import { Tr as
|
|
7
|
-
import
|
|
8
|
-
const
|
|
1
|
+
import $, { createContext as gt, useContext as ut, useState as k, useEffect as Ce, memo as Pe, forwardRef as re, useCallback as Ne, useMemo as qe } from "react";
|
|
2
|
+
import { jsx as a, jsxs as v, Fragment as Re } from "react/jsx-runtime";
|
|
3
|
+
import { Tooltip as _t, EmptyState as ne, EmptyStateVariant as pt, EmptyStateHeader as oe, EmptyStateBody as me, Spinner as ee, Alert as ft, Dropdown as mt, MenuToggle as Je, DropdownList as wt, Divider as Ke, DropdownItem as vt, Select as St, SelectOption as yt, TextInput as ae, Button as ce, TextArea as bt, AboutModal as kt, TextContent as Tt, Text as De, TextVariants as Le, TextList as je, TextListItem as b, Modal as Ue, Form as Be, FormGroup as He, Progress as It, EmptyStateIcon as ze, ChipGroup as Et, Chip as Ct, InputGroup as Pt, ButtonVariant as Rt, Pagination as Ut, PaginationVariant as xt, Skeleton as At } from "@patternfly/react-core";
|
|
4
|
+
import { EllipsisVIcon as Ot, ChevronDownIcon as Nt, ChevronRightIcon as qt, ErrorCircleOIcon as Dt, SearchIcon as Lt } from "@patternfly/react-icons";
|
|
5
|
+
import { DateTime as se } from "luxon";
|
|
6
|
+
import { Tr as le, Td as xe, Th as jt, Table as Ht, Thead as $t, Tbody as Mt, ActionsColumn as Ft } from "@patternfly/react-table";
|
|
7
|
+
import Wt from "use-resize-observer";
|
|
8
|
+
const Jt = gt({
|
|
9
9
|
type: "none"
|
|
10
10
|
});
|
|
11
11
|
class Y extends Error {
|
|
12
12
|
}
|
|
13
13
|
Y.prototype.name = "InvalidTokenError";
|
|
14
|
-
function
|
|
14
|
+
function Kt(e) {
|
|
15
15
|
return decodeURIComponent(atob(e).replace(/(.)/g, (t, s) => {
|
|
16
16
|
let i = s.charCodeAt(0).toString(16).toUpperCase();
|
|
17
17
|
return i.length < 2 && (i = "0" + i), "%" + i;
|
|
18
18
|
}));
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function Bt(e) {
|
|
21
21
|
let t = e.replace(/-/g, "+").replace(/_/g, "/");
|
|
22
22
|
switch (t.length % 4) {
|
|
23
23
|
case 0:
|
|
@@ -32,12 +32,12 @@ function Zt(e) {
|
|
|
32
32
|
throw new Error("base64 string is not of the correct length");
|
|
33
33
|
}
|
|
34
34
|
try {
|
|
35
|
-
return
|
|
35
|
+
return Kt(t);
|
|
36
36
|
} catch {
|
|
37
37
|
return atob(t);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function zt(e, t) {
|
|
41
41
|
if (typeof e != "string")
|
|
42
42
|
throw new Y("Invalid token specified: must be a string");
|
|
43
43
|
t || (t = {});
|
|
@@ -46,17 +46,17 @@ function es(e, t) {
|
|
|
46
46
|
throw new Y(`Invalid token specified: missing part #${s + 1}`);
|
|
47
47
|
let r;
|
|
48
48
|
try {
|
|
49
|
-
r =
|
|
50
|
-
} catch (
|
|
51
|
-
throw new Y(`Invalid token specified: invalid base64 for part #${s + 1} (${
|
|
49
|
+
r = Bt(i);
|
|
50
|
+
} catch (n) {
|
|
51
|
+
throw new Y(`Invalid token specified: invalid base64 for part #${s + 1} (${n.message})`);
|
|
52
52
|
}
|
|
53
53
|
try {
|
|
54
54
|
return JSON.parse(r);
|
|
55
|
-
} catch (
|
|
56
|
-
throw new Y(`Invalid token specified: invalid json for part #${s + 1} (${
|
|
55
|
+
} catch (n) {
|
|
56
|
+
throw new Y(`Invalid token specified: invalid json for part #${s + 1} (${n.message})`);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
var
|
|
59
|
+
var Vt = {
|
|
60
60
|
debug: () => {
|
|
61
61
|
},
|
|
62
62
|
info: () => {
|
|
@@ -65,39 +65,39 @@ var ts = {
|
|
|
65
65
|
},
|
|
66
66
|
error: () => {
|
|
67
67
|
}
|
|
68
|
-
},
|
|
68
|
+
}, j, H, de = /* @__PURE__ */ ((e) => (e[e.NONE = 0] = "NONE", e[e.ERROR = 1] = "ERROR", e[e.WARN = 2] = "WARN", e[e.INFO = 3] = "INFO", e[e.DEBUG = 4] = "DEBUG", e))(de || {});
|
|
69
69
|
((e) => {
|
|
70
70
|
function t() {
|
|
71
|
-
|
|
71
|
+
j = 3, H = Vt;
|
|
72
72
|
}
|
|
73
73
|
e.reset = t;
|
|
74
74
|
function s(r) {
|
|
75
75
|
if (!(0 <= r && r <= 4))
|
|
76
76
|
throw new Error("Invalid log level");
|
|
77
|
-
|
|
77
|
+
j = r;
|
|
78
78
|
}
|
|
79
79
|
e.setLevel = s;
|
|
80
80
|
function i(r) {
|
|
81
|
-
|
|
81
|
+
H = r;
|
|
82
82
|
}
|
|
83
83
|
e.setLogger = i;
|
|
84
|
-
})(
|
|
84
|
+
})(de || (de = {}));
|
|
85
85
|
var u = class D {
|
|
86
86
|
constructor(t) {
|
|
87
87
|
this._name = t;
|
|
88
88
|
}
|
|
89
89
|
/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */
|
|
90
90
|
debug(...t) {
|
|
91
|
-
|
|
91
|
+
j >= 4 && H.debug(D._format(this._name, this._method), ...t);
|
|
92
92
|
}
|
|
93
93
|
info(...t) {
|
|
94
|
-
|
|
94
|
+
j >= 3 && H.info(D._format(this._name, this._method), ...t);
|
|
95
95
|
}
|
|
96
96
|
warn(...t) {
|
|
97
|
-
|
|
97
|
+
j >= 2 && H.warn(D._format(this._name, this._method), ...t);
|
|
98
98
|
}
|
|
99
99
|
error(...t) {
|
|
100
|
-
|
|
100
|
+
j >= 1 && H.error(D._format(this._name, this._method), ...t);
|
|
101
101
|
}
|
|
102
102
|
/* eslint-enable @typescript-eslint/no-unsafe-enum-comparison */
|
|
103
103
|
throw(t) {
|
|
@@ -118,41 +118,41 @@ var u = class D {
|
|
|
118
118
|
/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */
|
|
119
119
|
// helpers for static class methods
|
|
120
120
|
static debug(t, ...s) {
|
|
121
|
-
|
|
121
|
+
j >= 4 && H.debug(D._format(t), ...s);
|
|
122
122
|
}
|
|
123
123
|
static info(t, ...s) {
|
|
124
|
-
|
|
124
|
+
j >= 3 && H.info(D._format(t), ...s);
|
|
125
125
|
}
|
|
126
126
|
static warn(t, ...s) {
|
|
127
|
-
|
|
127
|
+
j >= 2 && H.warn(D._format(t), ...s);
|
|
128
128
|
}
|
|
129
129
|
static error(t, ...s) {
|
|
130
|
-
|
|
130
|
+
j >= 1 && H.error(D._format(t), ...s);
|
|
131
131
|
}
|
|
132
132
|
/* eslint-enable @typescript-eslint/no-unsafe-enum-comparison */
|
|
133
133
|
};
|
|
134
|
-
|
|
135
|
-
var
|
|
134
|
+
de.reset();
|
|
135
|
+
var he = class {
|
|
136
136
|
// IMPORTANT: doesn't validate the token
|
|
137
137
|
static decode(e) {
|
|
138
138
|
try {
|
|
139
|
-
return
|
|
139
|
+
return zt(e);
|
|
140
140
|
} catch (t) {
|
|
141
141
|
throw u.error("JwtUtils.decode", t), t;
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
static async generateSignedJwt(e, t, s) {
|
|
145
|
-
const i = C.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e))), r = C.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t))),
|
|
145
|
+
const i = C.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e))), r = C.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t))), n = `${i}.${r}`, o = await window.crypto.subtle.sign(
|
|
146
146
|
{
|
|
147
147
|
name: "ECDSA",
|
|
148
148
|
hash: { name: "SHA-256" }
|
|
149
149
|
},
|
|
150
150
|
s,
|
|
151
|
-
new TextEncoder().encode(
|
|
152
|
-
), c = C.encodeBase64Url(new Uint8Array(
|
|
153
|
-
return `${
|
|
151
|
+
new TextEncoder().encode(n)
|
|
152
|
+
), c = C.encodeBase64Url(new Uint8Array(o));
|
|
153
|
+
return `${n}.${c}`;
|
|
154
154
|
}
|
|
155
|
-
},
|
|
155
|
+
}, Gt = "10000000-1000-4000-8000-100000000000", we = (e) => btoa([...new Uint8Array(e)].map((t) => String.fromCharCode(t)).join("")), Ve = class L {
|
|
156
156
|
static _randomWord() {
|
|
157
157
|
const t = new Uint32Array(1);
|
|
158
158
|
return crypto.getRandomValues(t), t[0];
|
|
@@ -161,16 +161,16 @@ var de = class {
|
|
|
161
161
|
* Generates RFC4122 version 4 guid
|
|
162
162
|
*/
|
|
163
163
|
static generateUUIDv4() {
|
|
164
|
-
return
|
|
164
|
+
return Gt.replace(
|
|
165
165
|
/[018]/g,
|
|
166
|
-
(s) => (+s ^
|
|
166
|
+
(s) => (+s ^ L._randomWord() & 15 >> +s / 4).toString(16)
|
|
167
167
|
).replace(/-/g, "");
|
|
168
168
|
}
|
|
169
169
|
/**
|
|
170
170
|
* PKCE: Generate a code verifier
|
|
171
171
|
*/
|
|
172
172
|
static generateCodeVerifier() {
|
|
173
|
-
return
|
|
173
|
+
return L.generateUUIDv4() + L.generateUUIDv4() + L.generateUUIDv4();
|
|
174
174
|
}
|
|
175
175
|
/**
|
|
176
176
|
* PKCE: Generate a code challenge
|
|
@@ -180,7 +180,7 @@ var de = class {
|
|
|
180
180
|
throw new Error("Crypto.subtle is available only in secure contexts (HTTPS).");
|
|
181
181
|
try {
|
|
182
182
|
const i = new TextEncoder().encode(t), r = await crypto.subtle.digest("SHA-256", i);
|
|
183
|
-
return
|
|
183
|
+
return we(r).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
184
184
|
} catch (s) {
|
|
185
185
|
throw u.error("CryptoUtils.generateCodeChallenge", s), s;
|
|
186
186
|
}
|
|
@@ -190,7 +190,7 @@ var de = class {
|
|
|
190
190
|
*/
|
|
191
191
|
static generateBasicAuth(t, s) {
|
|
192
192
|
const r = new TextEncoder().encode([t, s].join(":"));
|
|
193
|
-
return
|
|
193
|
+
return we(r);
|
|
194
194
|
}
|
|
195
195
|
/**
|
|
196
196
|
* Generates a hash of a string using a given algorithm
|
|
@@ -239,24 +239,24 @@ var de = class {
|
|
|
239
239
|
default:
|
|
240
240
|
throw new Error("Unknown jwk type");
|
|
241
241
|
}
|
|
242
|
-
const i = await
|
|
243
|
-
return
|
|
242
|
+
const i = await L.hash("SHA-256", JSON.stringify(s));
|
|
243
|
+
return L.encodeBase64Url(i);
|
|
244
244
|
}
|
|
245
245
|
static async generateDPoPProof({
|
|
246
246
|
url: t,
|
|
247
247
|
accessToken: s,
|
|
248
248
|
httpMethod: i,
|
|
249
249
|
keyPair: r,
|
|
250
|
-
nonce:
|
|
250
|
+
nonce: n
|
|
251
251
|
}) {
|
|
252
|
-
let
|
|
252
|
+
let o, c;
|
|
253
253
|
const l = {
|
|
254
254
|
jti: window.crypto.randomUUID(),
|
|
255
255
|
htm: i ?? "GET",
|
|
256
256
|
htu: t,
|
|
257
257
|
iat: Math.floor(Date.now() / 1e3)
|
|
258
258
|
};
|
|
259
|
-
s && (
|
|
259
|
+
s && (o = await L.hash("SHA-256", s), c = L.encodeBase64Url(o), l.ath = c), n && (l.nonce = n);
|
|
260
260
|
try {
|
|
261
261
|
const d = await crypto.subtle.exportKey("jwk", r.publicKey), h = {
|
|
262
262
|
alg: "ES256",
|
|
@@ -268,7 +268,7 @@ var de = class {
|
|
|
268
268
|
y: d.y
|
|
269
269
|
}
|
|
270
270
|
};
|
|
271
|
-
return await
|
|
271
|
+
return await he.generateSignedJwt(h, l, r.privateKey);
|
|
272
272
|
} catch (d) {
|
|
273
273
|
throw d instanceof TypeError ? new Error(`Error exporting dpop public key: ${d.message}`) : d;
|
|
274
274
|
}
|
|
@@ -276,7 +276,7 @@ var de = class {
|
|
|
276
276
|
static async generateDPoPJkt(t) {
|
|
277
277
|
try {
|
|
278
278
|
const s = await crypto.subtle.exportKey("jwk", t.publicKey);
|
|
279
|
-
return await
|
|
279
|
+
return await L.customCalculateJwkThumbprint(s);
|
|
280
280
|
} catch (s) {
|
|
281
281
|
throw s instanceof TypeError ? new Error(`Could not retrieve dpop keys from storage: ${s.message}`) : s;
|
|
282
282
|
}
|
|
@@ -292,8 +292,8 @@ var de = class {
|
|
|
292
292
|
);
|
|
293
293
|
}
|
|
294
294
|
};
|
|
295
|
-
|
|
296
|
-
var C =
|
|
295
|
+
Ve.encodeBase64Url = (e) => we(e).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
296
|
+
var C = Ve, W = class {
|
|
297
297
|
constructor(e) {
|
|
298
298
|
this._name = e, this._callbacks = [], this._logger = new u(`Event('${this._name}')`);
|
|
299
299
|
}
|
|
@@ -309,7 +309,7 @@ var C = Ze, W = class {
|
|
|
309
309
|
for (const t of this._callbacks)
|
|
310
310
|
await t(...e);
|
|
311
311
|
}
|
|
312
|
-
},
|
|
312
|
+
}, $e = class {
|
|
313
313
|
/**
|
|
314
314
|
* Populates a map of window features with a placement centered in front of
|
|
315
315
|
* the current window. If no explicit width is given, a default value is
|
|
@@ -322,11 +322,11 @@ var C = Ze, W = class {
|
|
|
322
322
|
static serialize(e) {
|
|
323
323
|
return Object.entries(e).filter(([, t]) => t != null).map(([t, s]) => `${t}=${typeof s != "boolean" ? s : s ? "yes" : "no"}`).join(",");
|
|
324
324
|
}
|
|
325
|
-
},
|
|
325
|
+
}, F = class ie extends W {
|
|
326
326
|
constructor() {
|
|
327
327
|
super(...arguments), this._logger = new u(`Timer('${this._name}')`), this._timerHandle = null, this._expiration = 0, this._callback = () => {
|
|
328
|
-
const t = this._expiration -
|
|
329
|
-
this._logger.debug("timer completes in", t), this._expiration <=
|
|
328
|
+
const t = this._expiration - ie.getEpochTime();
|
|
329
|
+
this._logger.debug("timer completes in", t), this._expiration <= ie.getEpochTime() && (this.cancel(), super.raise());
|
|
330
330
|
};
|
|
331
331
|
}
|
|
332
332
|
// get the time
|
|
@@ -336,7 +336,7 @@ var C = Ze, W = class {
|
|
|
336
336
|
init(t) {
|
|
337
337
|
const s = this._logger.create("init");
|
|
338
338
|
t = Math.max(Math.floor(t), 1);
|
|
339
|
-
const i =
|
|
339
|
+
const i = ie.getEpochTime() + t;
|
|
340
340
|
if (this.expiration === i && this._timerHandle) {
|
|
341
341
|
s.debug("skipping since already initialized for expiration at", this.expiration);
|
|
342
342
|
return;
|
|
@@ -351,26 +351,26 @@ var C = Ze, W = class {
|
|
|
351
351
|
cancel() {
|
|
352
352
|
this._logger.create("cancel"), this._timerHandle && (clearInterval(this._timerHandle), this._timerHandle = null);
|
|
353
353
|
}
|
|
354
|
-
},
|
|
354
|
+
}, ve = class {
|
|
355
355
|
static readParams(e, t = "query") {
|
|
356
356
|
if (!e) throw new TypeError("Invalid URL");
|
|
357
357
|
const i = new URL(e, "http://127.0.0.1")[t === "fragment" ? "hash" : "search"];
|
|
358
358
|
return new URLSearchParams(i.slice(1));
|
|
359
359
|
}
|
|
360
|
-
},
|
|
360
|
+
}, Se = ";", B = class extends Error {
|
|
361
361
|
constructor(e, t) {
|
|
362
362
|
var s, i, r;
|
|
363
363
|
if (super(e.error_description || e.error || ""), this.form = t, this.name = "ErrorResponse", !e.error)
|
|
364
364
|
throw u.error("ErrorResponse", "No error passed"), new Error("No error passed");
|
|
365
365
|
this.error = e.error, this.error_description = (s = e.error_description) != null ? s : null, this.error_uri = (i = e.error_uri) != null ? i : null, this.state = e.userState, this.session_state = (r = e.session_state) != null ? r : null, this.url_state = e.url_state;
|
|
366
366
|
}
|
|
367
|
-
},
|
|
367
|
+
}, Ae = class extends Error {
|
|
368
368
|
constructor(e) {
|
|
369
369
|
super(e), this.name = "ErrorTimeout";
|
|
370
370
|
}
|
|
371
|
-
},
|
|
371
|
+
}, Qt = class {
|
|
372
372
|
constructor(e) {
|
|
373
|
-
this._logger = new u("AccessTokenEvents"), this._expiringTimer = new
|
|
373
|
+
this._logger = new u("AccessTokenEvents"), this._expiringTimer = new F("Access token expiring"), this._expiredTimer = new F("Access token expired"), this._expiringNotificationTimeInSeconds = e.expiringNotificationTimeInSeconds;
|
|
374
374
|
}
|
|
375
375
|
load(e) {
|
|
376
376
|
const t = this._logger.create("load");
|
|
@@ -413,13 +413,13 @@ var C = Ze, W = class {
|
|
|
413
413
|
removeAccessTokenExpired(e) {
|
|
414
414
|
this._expiredTimer.removeHandler(e);
|
|
415
415
|
}
|
|
416
|
-
},
|
|
416
|
+
}, Xt = class {
|
|
417
417
|
constructor(e, t, s, i, r) {
|
|
418
|
-
this._callback = e, this._client_id = t, this._intervalInSeconds = i, this._stopOnError = r, this._logger = new u("CheckSessionIFrame"), this._timer = null, this._session_state = null, this._message = (
|
|
419
|
-
|
|
418
|
+
this._callback = e, this._client_id = t, this._intervalInSeconds = i, this._stopOnError = r, this._logger = new u("CheckSessionIFrame"), this._timer = null, this._session_state = null, this._message = (o) => {
|
|
419
|
+
o.origin === this._frame_origin && o.source === this._frame.contentWindow && (o.data === "error" ? (this._logger.error("error message from check session op iframe"), this._stopOnError && this.stop()) : o.data === "changed" ? (this._logger.debug("changed message from check session op iframe"), this.stop(), this._callback()) : this._logger.debug(o.data + " message from check session op iframe"));
|
|
420
420
|
};
|
|
421
|
-
const
|
|
422
|
-
this._frame_origin =
|
|
421
|
+
const n = new URL(s);
|
|
422
|
+
this._frame_origin = n.origin, this._frame = window.document.createElement("iframe"), this._frame.style.visibility = "hidden", this._frame.style.position = "fixed", this._frame.style.left = "-1000px", this._frame.style.top = "0", this._frame.width = "0", this._frame.height = "0", this._frame.src = n.href;
|
|
423
423
|
}
|
|
424
424
|
load() {
|
|
425
425
|
return new Promise((e) => {
|
|
@@ -440,7 +440,7 @@ var C = Ze, W = class {
|
|
|
440
440
|
stop() {
|
|
441
441
|
this._logger.create("stop"), this._session_state = null, this._timer && (clearInterval(this._timer), this._timer = null);
|
|
442
442
|
}
|
|
443
|
-
},
|
|
443
|
+
}, Ge = class {
|
|
444
444
|
constructor() {
|
|
445
445
|
this._logger = new u("InMemoryWebStorage"), this._data = {};
|
|
446
446
|
}
|
|
@@ -462,11 +462,11 @@ var C = Ze, W = class {
|
|
|
462
462
|
key(e) {
|
|
463
463
|
return Object.getOwnPropertyNames(this._data)[e];
|
|
464
464
|
}
|
|
465
|
-
},
|
|
465
|
+
}, ye = class extends Error {
|
|
466
466
|
constructor(e, t) {
|
|
467
467
|
super(t), this.name = "ErrorDPoPNonce", this.nonce = e;
|
|
468
468
|
}
|
|
469
|
-
},
|
|
469
|
+
}, Oe = class {
|
|
470
470
|
constructor(e = [], t = null, s = {}) {
|
|
471
471
|
this._jwtHandler = t, this._extraHeaders = s, this._logger = new u("JsonService"), this._contentTypes = [], this._contentTypes.push(...e, "application/json"), t && this._contentTypes.push("application/jwt");
|
|
472
472
|
}
|
|
@@ -474,16 +474,16 @@ var C = Ze, W = class {
|
|
|
474
474
|
const { timeoutInSeconds: s, ...i } = t;
|
|
475
475
|
if (!s)
|
|
476
476
|
return await fetch(e, i);
|
|
477
|
-
const r = new AbortController(),
|
|
477
|
+
const r = new AbortController(), n = setTimeout(() => r.abort(), s * 1e3);
|
|
478
478
|
try {
|
|
479
479
|
return await fetch(e, {
|
|
480
480
|
...t,
|
|
481
481
|
signal: r.signal
|
|
482
482
|
});
|
|
483
|
-
} catch (
|
|
484
|
-
throw
|
|
483
|
+
} catch (o) {
|
|
484
|
+
throw o instanceof DOMException && o.name === "AbortError" ? new Ae("Network timed out") : o;
|
|
485
485
|
} finally {
|
|
486
|
-
clearTimeout(
|
|
486
|
+
clearTimeout(n);
|
|
487
487
|
}
|
|
488
488
|
}
|
|
489
489
|
async getJson(e, {
|
|
@@ -491,28 +491,28 @@ var C = Ze, W = class {
|
|
|
491
491
|
credentials: s,
|
|
492
492
|
timeoutInSeconds: i
|
|
493
493
|
} = {}) {
|
|
494
|
-
const r = this._logger.create("getJson"),
|
|
494
|
+
const r = this._logger.create("getJson"), n = {
|
|
495
495
|
Accept: this._contentTypes.join(", ")
|
|
496
496
|
};
|
|
497
|
-
t && (r.debug("token passed, setting Authorization header"),
|
|
498
|
-
let
|
|
497
|
+
t && (r.debug("token passed, setting Authorization header"), n.Authorization = "Bearer " + t), this.appendExtraHeaders(n);
|
|
498
|
+
let o;
|
|
499
499
|
try {
|
|
500
|
-
r.debug("url:", e),
|
|
500
|
+
r.debug("url:", e), o = await this.fetchWithTimeout(e, { method: "GET", headers: n, timeoutInSeconds: i, credentials: s });
|
|
501
501
|
} catch (d) {
|
|
502
502
|
throw r.error("Network Error"), d;
|
|
503
503
|
}
|
|
504
|
-
r.debug("HTTP response received, status",
|
|
505
|
-
const c =
|
|
506
|
-
if (c && !this._contentTypes.find((d) => c.startsWith(d)) && r.throw(new Error(`Invalid response Content-Type: ${c ?? "undefined"}, from URL: ${e}`)),
|
|
507
|
-
return await this._jwtHandler(await
|
|
504
|
+
r.debug("HTTP response received, status", o.status);
|
|
505
|
+
const c = o.headers.get("Content-Type");
|
|
506
|
+
if (c && !this._contentTypes.find((d) => c.startsWith(d)) && r.throw(new Error(`Invalid response Content-Type: ${c ?? "undefined"}, from URL: ${e}`)), o.ok && this._jwtHandler && (c != null && c.startsWith("application/jwt")))
|
|
507
|
+
return await this._jwtHandler(await o.text());
|
|
508
508
|
let l;
|
|
509
509
|
try {
|
|
510
|
-
l = await
|
|
510
|
+
l = await o.json();
|
|
511
511
|
} catch (d) {
|
|
512
|
-
throw r.error("Error parsing JSON response", d),
|
|
512
|
+
throw r.error("Error parsing JSON response", d), o.ok ? d : new Error(`${o.statusText} (${o.status})`);
|
|
513
513
|
}
|
|
514
|
-
if (!
|
|
515
|
-
throw r.error("Error from server:", l), l.error ? new B(l) : new Error(`${
|
|
514
|
+
if (!o.ok)
|
|
515
|
+
throw r.error("Error from server:", l), l.error ? new B(l) : new Error(`${o.statusText} (${o.status}): ${JSON.stringify(l)}`);
|
|
516
516
|
return l;
|
|
517
517
|
}
|
|
518
518
|
async postForm(e, {
|
|
@@ -520,21 +520,21 @@ var C = Ze, W = class {
|
|
|
520
520
|
basicAuth: s,
|
|
521
521
|
timeoutInSeconds: i,
|
|
522
522
|
initCredentials: r,
|
|
523
|
-
extraHeaders:
|
|
523
|
+
extraHeaders: n
|
|
524
524
|
}) {
|
|
525
|
-
const
|
|
525
|
+
const o = this._logger.create("postForm"), c = {
|
|
526
526
|
Accept: this._contentTypes.join(", "),
|
|
527
527
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
528
|
-
...
|
|
528
|
+
...n
|
|
529
529
|
};
|
|
530
530
|
s !== void 0 && (c.Authorization = "Basic " + s), this.appendExtraHeaders(c);
|
|
531
531
|
let l;
|
|
532
532
|
try {
|
|
533
|
-
|
|
533
|
+
o.debug("url:", e), l = await this.fetchWithTimeout(e, { method: "POST", headers: c, body: t, timeoutInSeconds: i, credentials: r });
|
|
534
534
|
} catch (_) {
|
|
535
|
-
throw
|
|
535
|
+
throw o.error("Network error"), _;
|
|
536
536
|
}
|
|
537
|
-
|
|
537
|
+
o.debug("HTTP response received, status", l.status);
|
|
538
538
|
const d = l.headers.get("Content-Type");
|
|
539
539
|
if (d && !this._contentTypes.find((_) => d.startsWith(_)))
|
|
540
540
|
throw new Error(`Invalid response Content-Type: ${d ?? "undefined"}, from URL: ${e}`);
|
|
@@ -544,12 +544,12 @@ var C = Ze, W = class {
|
|
|
544
544
|
try {
|
|
545
545
|
g = JSON.parse(h);
|
|
546
546
|
} catch (_) {
|
|
547
|
-
throw
|
|
547
|
+
throw o.error("Error parsing JSON response", _), l.ok ? _ : new Error(`${l.statusText} (${l.status})`);
|
|
548
548
|
}
|
|
549
549
|
if (!l.ok) {
|
|
550
|
-
if (
|
|
550
|
+
if (o.error("Error from server:", g), l.headers.has("dpop-nonce")) {
|
|
551
551
|
const _ = l.headers.get("dpop-nonce");
|
|
552
|
-
throw new
|
|
552
|
+
throw new ye(_, `${JSON.stringify(g)}`);
|
|
553
553
|
}
|
|
554
554
|
throw g.error ? new B(g, t) : new Error(`${l.statusText} (${l.status}): ${JSON.stringify(g)}`);
|
|
555
555
|
}
|
|
@@ -566,13 +566,13 @@ var C = Ze, W = class {
|
|
|
566
566
|
t.warn("Protected header could not be overridden", r, i);
|
|
567
567
|
return;
|
|
568
568
|
}
|
|
569
|
-
const
|
|
570
|
-
|
|
569
|
+
const n = typeof this._extraHeaders[r] == "function" ? this._extraHeaders[r]() : this._extraHeaders[r];
|
|
570
|
+
n && n !== "" && (e[r] = n);
|
|
571
571
|
});
|
|
572
572
|
}
|
|
573
|
-
},
|
|
573
|
+
}, Yt = class {
|
|
574
574
|
constructor(e) {
|
|
575
|
-
this._settings = e, this._logger = new u("MetadataService"), this._signingKeys = null, this._metadata = null, this._metadataUrl = this._settings.metadataUrl, this._jsonService = new
|
|
575
|
+
this._settings = e, this._logger = new u("MetadataService"), this._signingKeys = null, this._metadata = null, this._metadataUrl = this._settings.metadataUrl, this._jsonService = new Oe(
|
|
576
576
|
["application/jwk-set+json"],
|
|
577
577
|
null,
|
|
578
578
|
this._settings.extraHeaders
|
|
@@ -637,7 +637,7 @@ var C = Ze, W = class {
|
|
|
637
637
|
throw e.throw(new Error("Missing keys on keyset")), null;
|
|
638
638
|
return this._signingKeys = s.keys, this._signingKeys;
|
|
639
639
|
}
|
|
640
|
-
},
|
|
640
|
+
}, Qe = class {
|
|
641
641
|
constructor({
|
|
642
642
|
prefix: e = "oidc.",
|
|
643
643
|
store: t = localStorage
|
|
@@ -664,7 +664,7 @@ var C = Ze, W = class {
|
|
|
664
664
|
}
|
|
665
665
|
return t;
|
|
666
666
|
}
|
|
667
|
-
},
|
|
667
|
+
}, Zt = "code", es = "openid", ts = "client_secret_post", ss = 60 * 15, be = class {
|
|
668
668
|
constructor({
|
|
669
669
|
// metadata related
|
|
670
670
|
authority: e,
|
|
@@ -673,13 +673,13 @@ var C = Ze, W = class {
|
|
|
673
673
|
signingKeys: i,
|
|
674
674
|
metadataSeed: r,
|
|
675
675
|
// client related
|
|
676
|
-
client_id:
|
|
677
|
-
client_secret:
|
|
678
|
-
response_type: c =
|
|
679
|
-
scope: l =
|
|
676
|
+
client_id: n,
|
|
677
|
+
client_secret: o,
|
|
678
|
+
response_type: c = Zt,
|
|
679
|
+
scope: l = es,
|
|
680
680
|
redirect_uri: d,
|
|
681
681
|
post_logout_redirect_uri: h,
|
|
682
|
-
client_authentication: g =
|
|
682
|
+
client_authentication: g = ts,
|
|
683
683
|
// optional protocol
|
|
684
684
|
prompt: _,
|
|
685
685
|
display: S,
|
|
@@ -690,44 +690,44 @@ var C = Ze, W = class {
|
|
|
690
690
|
response_mode: N,
|
|
691
691
|
// behavior flags
|
|
692
692
|
filterProtocolClaims: P = !0,
|
|
693
|
-
loadUserInfo:
|
|
693
|
+
loadUserInfo: M = !1,
|
|
694
694
|
requestTimeoutInSeconds: R,
|
|
695
|
-
staleStateAgeInSeconds:
|
|
695
|
+
staleStateAgeInSeconds: m = ss,
|
|
696
696
|
mergeClaimsStrategy: E = { array: "replace" },
|
|
697
697
|
disablePKCE: U = !1,
|
|
698
698
|
// other behavior
|
|
699
|
-
stateStore:
|
|
699
|
+
stateStore: y,
|
|
700
700
|
revokeTokenAdditionalContentTypes: z,
|
|
701
701
|
fetchRequestCredentials: f,
|
|
702
|
-
refreshTokenAllowedScope:
|
|
702
|
+
refreshTokenAllowedScope: w,
|
|
703
703
|
// extra
|
|
704
704
|
extraQueryParams: q = {},
|
|
705
705
|
extraTokenParams: J = {},
|
|
706
706
|
extraHeaders: K = {},
|
|
707
707
|
dpop: Q,
|
|
708
|
-
omitScopeWhenRequesting:
|
|
708
|
+
omitScopeWhenRequesting: _e = !1
|
|
709
709
|
}) {
|
|
710
710
|
var X;
|
|
711
|
-
if (this.authority = e, t ? this.metadataUrl = t : (this.metadataUrl = e, e && (this.metadataUrl.endsWith("/") || (this.metadataUrl += "/"), this.metadataUrl += ".well-known/openid-configuration")), this.metadata = s, this.metadataSeed = r, this.signingKeys = i, this.client_id =
|
|
712
|
-
this.stateStore =
|
|
711
|
+
if (this.authority = e, t ? this.metadataUrl = t : (this.metadataUrl = e, e && (this.metadataUrl.endsWith("/") || (this.metadataUrl += "/"), this.metadataUrl += ".well-known/openid-configuration")), this.metadata = s, this.metadataSeed = r, this.signingKeys = i, this.client_id = n, this.client_secret = o, this.response_type = c, this.scope = l, this.redirect_uri = d, this.post_logout_redirect_uri = h, this.client_authentication = g, this.prompt = _, this.display = S, this.max_age = x, this.ui_locales = T, this.acr_values = A, this.resource = I, this.response_mode = N, this.filterProtocolClaims = P ?? !0, this.loadUserInfo = !!M, this.staleStateAgeInSeconds = m, this.mergeClaimsStrategy = E, this.omitScopeWhenRequesting = _e, this.disablePKCE = !!U, this.revokeTokenAdditionalContentTypes = z, this.fetchRequestCredentials = f || "same-origin", this.requestTimeoutInSeconds = R, y)
|
|
712
|
+
this.stateStore = y;
|
|
713
713
|
else {
|
|
714
|
-
const te = typeof window < "u" ? window.localStorage : new
|
|
715
|
-
this.stateStore = new
|
|
714
|
+
const te = typeof window < "u" ? window.localStorage : new Ge();
|
|
715
|
+
this.stateStore = new Qe({ store: te });
|
|
716
716
|
}
|
|
717
|
-
if (this.refreshTokenAllowedScope =
|
|
717
|
+
if (this.refreshTokenAllowedScope = w, this.extraQueryParams = q, this.extraTokenParams = J, this.extraHeaders = K, this.dpop = Q, this.dpop && !((X = this.dpop) != null && X.store))
|
|
718
718
|
throw new Error("A DPoPStore is required when dpop is enabled");
|
|
719
719
|
}
|
|
720
|
-
},
|
|
720
|
+
}, is = class {
|
|
721
721
|
constructor(e, t) {
|
|
722
722
|
this._settings = e, this._metadataService = t, this._logger = new u("UserInfoService"), this._getClaimsFromJwt = async (s) => {
|
|
723
723
|
const i = this._logger.create("_getClaimsFromJwt");
|
|
724
724
|
try {
|
|
725
|
-
const r =
|
|
725
|
+
const r = he.decode(s);
|
|
726
726
|
return i.debug("JWT decoding successful"), r;
|
|
727
727
|
} catch (r) {
|
|
728
728
|
throw i.error("Error parsing JWT response"), r;
|
|
729
729
|
}
|
|
730
|
-
}, this._jsonService = new
|
|
730
|
+
}, this._jsonService = new Oe(
|
|
731
731
|
void 0,
|
|
732
732
|
this._getClaimsFromJwt,
|
|
733
733
|
this._settings.extraHeaders
|
|
@@ -745,9 +745,9 @@ var C = Ze, W = class {
|
|
|
745
745
|
});
|
|
746
746
|
return t.debug("got claims", i), i;
|
|
747
747
|
}
|
|
748
|
-
},
|
|
748
|
+
}, Xe = class {
|
|
749
749
|
constructor(e, t) {
|
|
750
|
-
this._settings = e, this._metadataService = t, this._logger = new u("TokenClient"), this._jsonService = new
|
|
750
|
+
this._settings = e, this._metadataService = t, this._logger = new u("TokenClient"), this._jsonService = new Oe(
|
|
751
751
|
this._settings.revokeTokenAdditionalContentTypes,
|
|
752
752
|
null,
|
|
753
753
|
this._settings.extraHeaders
|
|
@@ -764,18 +764,18 @@ var C = Ze, W = class {
|
|
|
764
764
|
client_id: s = this._settings.client_id,
|
|
765
765
|
client_secret: i = this._settings.client_secret,
|
|
766
766
|
extraHeaders: r,
|
|
767
|
-
...
|
|
767
|
+
...n
|
|
768
768
|
}) {
|
|
769
|
-
const
|
|
770
|
-
s ||
|
|
769
|
+
const o = this._logger.create("exchangeCode");
|
|
770
|
+
s || o.throw(new Error("A client_id is required")), t || o.throw(new Error("A redirect_uri is required")), n.code || o.throw(new Error("A code is required"));
|
|
771
771
|
const c = new URLSearchParams({ grant_type: e, redirect_uri: t });
|
|
772
|
-
for (const [g, _] of Object.entries(
|
|
772
|
+
for (const [g, _] of Object.entries(n))
|
|
773
773
|
_ != null && c.set(g, _);
|
|
774
774
|
let l;
|
|
775
775
|
switch (this._settings.client_authentication) {
|
|
776
776
|
case "client_secret_basic":
|
|
777
777
|
if (!i)
|
|
778
|
-
throw
|
|
778
|
+
throw o.throw(new Error("A client_secret is required")), null;
|
|
779
779
|
l = C.generateBasicAuth(s, i);
|
|
780
780
|
break;
|
|
781
781
|
case "client_secret_post":
|
|
@@ -783,7 +783,7 @@ var C = Ze, W = class {
|
|
|
783
783
|
break;
|
|
784
784
|
}
|
|
785
785
|
const d = await this._metadataService.getTokenEndpoint(!1);
|
|
786
|
-
|
|
786
|
+
o.debug("got token endpoint");
|
|
787
787
|
const h = await this._jsonService.postForm(d, {
|
|
788
788
|
body: c,
|
|
789
789
|
basicAuth: l,
|
|
@@ -791,7 +791,7 @@ var C = Ze, W = class {
|
|
|
791
791
|
initCredentials: this._settings.fetchRequestCredentials,
|
|
792
792
|
extraHeaders: r
|
|
793
793
|
});
|
|
794
|
-
return
|
|
794
|
+
return o.debug("got response"), h;
|
|
795
795
|
}
|
|
796
796
|
/**
|
|
797
797
|
* Exchange credentials.
|
|
@@ -805,27 +805,27 @@ var C = Ze, W = class {
|
|
|
805
805
|
scope: i = this._settings.scope,
|
|
806
806
|
...r
|
|
807
807
|
}) {
|
|
808
|
-
const
|
|
809
|
-
t ||
|
|
810
|
-
const
|
|
811
|
-
this._settings.omitScopeWhenRequesting ||
|
|
808
|
+
const n = this._logger.create("exchangeCredentials");
|
|
809
|
+
t || n.throw(new Error("A client_id is required"));
|
|
810
|
+
const o = new URLSearchParams({ grant_type: e });
|
|
811
|
+
this._settings.omitScopeWhenRequesting || o.set("scope", i);
|
|
812
812
|
for (const [h, g] of Object.entries(r))
|
|
813
|
-
g != null &&
|
|
813
|
+
g != null && o.set(h, g);
|
|
814
814
|
let c;
|
|
815
815
|
switch (this._settings.client_authentication) {
|
|
816
816
|
case "client_secret_basic":
|
|
817
817
|
if (!s)
|
|
818
|
-
throw
|
|
818
|
+
throw n.throw(new Error("A client_secret is required")), null;
|
|
819
819
|
c = C.generateBasicAuth(t, s);
|
|
820
820
|
break;
|
|
821
821
|
case "client_secret_post":
|
|
822
|
-
|
|
822
|
+
o.append("client_id", t), s && o.append("client_secret", s);
|
|
823
823
|
break;
|
|
824
824
|
}
|
|
825
825
|
const l = await this._metadataService.getTokenEndpoint(!1);
|
|
826
|
-
|
|
827
|
-
const d = await this._jsonService.postForm(l, { body:
|
|
828
|
-
return
|
|
826
|
+
n.debug("got token endpoint");
|
|
827
|
+
const d = await this._jsonService.postForm(l, { body: o, basicAuth: c, timeoutInSeconds: this._settings.requestTimeoutInSeconds, initCredentials: this._settings.fetchRequestCredentials });
|
|
828
|
+
return n.debug("got response"), d;
|
|
829
829
|
}
|
|
830
830
|
/**
|
|
831
831
|
* Exchange a refresh token.
|
|
@@ -838,18 +838,18 @@ var C = Ze, W = class {
|
|
|
838
838
|
client_secret: s = this._settings.client_secret,
|
|
839
839
|
timeoutInSeconds: i,
|
|
840
840
|
extraHeaders: r,
|
|
841
|
-
...
|
|
841
|
+
...n
|
|
842
842
|
}) {
|
|
843
|
-
const
|
|
844
|
-
t ||
|
|
843
|
+
const o = this._logger.create("exchangeRefreshToken");
|
|
844
|
+
t || o.throw(new Error("A client_id is required")), n.refresh_token || o.throw(new Error("A refresh_token is required"));
|
|
845
845
|
const c = new URLSearchParams({ grant_type: e });
|
|
846
|
-
for (const [g, _] of Object.entries(
|
|
846
|
+
for (const [g, _] of Object.entries(n))
|
|
847
847
|
Array.isArray(_) ? _.forEach((S) => c.append(g, S)) : _ != null && c.set(g, _);
|
|
848
848
|
let l;
|
|
849
849
|
switch (this._settings.client_authentication) {
|
|
850
850
|
case "client_secret_basic":
|
|
851
851
|
if (!s)
|
|
852
|
-
throw
|
|
852
|
+
throw o.throw(new Error("A client_secret is required")), null;
|
|
853
853
|
l = C.generateBasicAuth(t, s);
|
|
854
854
|
break;
|
|
855
855
|
case "client_secret_post":
|
|
@@ -857,9 +857,9 @@ var C = Ze, W = class {
|
|
|
857
857
|
break;
|
|
858
858
|
}
|
|
859
859
|
const d = await this._metadataService.getTokenEndpoint(!1);
|
|
860
|
-
|
|
860
|
+
o.debug("got token endpoint");
|
|
861
861
|
const h = await this._jsonService.postForm(d, { body: c, basicAuth: l, timeoutInSeconds: i, initCredentials: this._settings.fetchRequestCredentials, extraHeaders: r });
|
|
862
|
-
return
|
|
862
|
+
return o.debug("got response"), h;
|
|
863
863
|
}
|
|
864
864
|
/**
|
|
865
865
|
* Revoke an access or refresh token.
|
|
@@ -873,13 +873,13 @@ var C = Ze, W = class {
|
|
|
873
873
|
const i = await this._metadataService.getRevocationEndpoint(!1);
|
|
874
874
|
s.debug(`got revocation endpoint, revoking ${(t = e.token_type_hint) != null ? t : "default token type"}`);
|
|
875
875
|
const r = new URLSearchParams();
|
|
876
|
-
for (const [
|
|
877
|
-
|
|
876
|
+
for (const [n, o] of Object.entries(e))
|
|
877
|
+
o != null && r.set(n, o);
|
|
878
878
|
r.set("client_id", this._settings.client_id), this._settings.client_secret && r.set("client_secret", this._settings.client_secret), await this._jsonService.postForm(i, { body: r, timeoutInSeconds: this._settings.requestTimeoutInSeconds }), s.debug("got response");
|
|
879
879
|
}
|
|
880
|
-
},
|
|
880
|
+
}, rs = class {
|
|
881
881
|
constructor(e, t, s) {
|
|
882
|
-
this._settings = e, this._metadataService = t, this._claimsService = s, this._logger = new u("ResponseValidator"), this._userInfoService = new
|
|
882
|
+
this._settings = e, this._metadataService = t, this._claimsService = s, this._logger = new u("ResponseValidator"), this._userInfoService = new is(this._settings, this._metadataService), this._tokenClient = new Xe(this._settings, this._metadataService);
|
|
883
883
|
}
|
|
884
884
|
async validateSigninResponse(e, t, s) {
|
|
885
885
|
const i = this._logger.create("validateSigninResponse");
|
|
@@ -893,8 +893,8 @@ var C = Ze, W = class {
|
|
|
893
893
|
var s, i;
|
|
894
894
|
const r = this._logger.create("validateRefreshResponse");
|
|
895
895
|
e.userState = t.data, (s = e.session_state) != null || (e.session_state = t.session_state), (i = e.scope) != null || (e.scope = t.scope), e.isOpenId && e.id_token && (this._validateIdTokenAttributes(e, t.id_token), r.debug("ID Token validated")), e.id_token || (e.id_token = t.id_token, e.profile = t.profile);
|
|
896
|
-
const
|
|
897
|
-
await this._processClaims(e, !1,
|
|
896
|
+
const n = e.isOpenId && !!e.id_token;
|
|
897
|
+
await this._processClaims(e, !1, n), r.debug("claims processed");
|
|
898
898
|
}
|
|
899
899
|
validateSignoutResponse(e, t) {
|
|
900
900
|
const s = this._logger.create("validateSignoutResponse");
|
|
@@ -939,16 +939,16 @@ var C = Ze, W = class {
|
|
|
939
939
|
var s;
|
|
940
940
|
const i = this._logger.create("_validateIdTokenAttributes");
|
|
941
941
|
i.debug("decoding ID Token JWT");
|
|
942
|
-
const r =
|
|
942
|
+
const r = he.decode((s = e.id_token) != null ? s : "");
|
|
943
943
|
if (r.sub || i.throw(new Error("ID Token is missing a subject claim")), t) {
|
|
944
|
-
const
|
|
945
|
-
r.sub !==
|
|
944
|
+
const n = he.decode(t);
|
|
945
|
+
r.sub !== n.sub && i.throw(new Error("sub in id_token does not match current sub")), r.auth_time && r.auth_time !== n.auth_time && i.throw(new Error("auth_time in id_token does not match original auth_time")), r.azp && r.azp !== n.azp && i.throw(new Error("azp in id_token does not match original azp")), !r.azp && n.azp && i.throw(new Error("azp not in id_token, but present in original id_token"));
|
|
946
946
|
}
|
|
947
947
|
e.profile = r;
|
|
948
948
|
}
|
|
949
|
-
},
|
|
949
|
+
}, ge = class ke {
|
|
950
950
|
constructor(t) {
|
|
951
|
-
this.id = t.id || C.generateUUIDv4(), this.data = t.data, t.created && t.created > 0 ? this.created = t.created : this.created =
|
|
951
|
+
this.id = t.id || C.generateUUIDv4(), this.data = t.data, t.created && t.created > 0 ? this.created = t.created : this.created = F.getEpochTime(), this.request_type = t.request_type, this.url_state = t.url_state;
|
|
952
952
|
}
|
|
953
953
|
toStorageString() {
|
|
954
954
|
return new u("State").create("toStorageString"), JSON.stringify({
|
|
@@ -960,17 +960,17 @@ var C = Ze, W = class {
|
|
|
960
960
|
});
|
|
961
961
|
}
|
|
962
962
|
static fromStorageString(t) {
|
|
963
|
-
return u.createStatic("State", "fromStorageString"), Promise.resolve(new
|
|
963
|
+
return u.createStatic("State", "fromStorageString"), Promise.resolve(new ke(JSON.parse(t)));
|
|
964
964
|
}
|
|
965
965
|
static async clearStaleState(t, s) {
|
|
966
|
-
const i = u.createStatic("State", "clearStaleState"), r =
|
|
967
|
-
i.debug("got keys",
|
|
968
|
-
for (let
|
|
969
|
-
const c = o
|
|
966
|
+
const i = u.createStatic("State", "clearStaleState"), r = F.getEpochTime() - s, n = await t.getAllKeys();
|
|
967
|
+
i.debug("got keys", n);
|
|
968
|
+
for (let o = 0; o < n.length; o++) {
|
|
969
|
+
const c = n[o], l = await t.get(c);
|
|
970
970
|
let d = !1;
|
|
971
971
|
if (l)
|
|
972
972
|
try {
|
|
973
|
-
const h = await
|
|
973
|
+
const h = await ke.fromStorageString(l);
|
|
974
974
|
i.debug("got item from key:", c, h.created), h.created <= r && (d = !0);
|
|
975
975
|
} catch (h) {
|
|
976
976
|
i.error("Error parsing state for key:", c, h), d = !0;
|
|
@@ -980,13 +980,13 @@ var C = Ze, W = class {
|
|
|
980
980
|
d && (i.debug("removed item for key:", c), t.remove(c));
|
|
981
981
|
}
|
|
982
982
|
}
|
|
983
|
-
},
|
|
983
|
+
}, Ye = class Te extends ge {
|
|
984
984
|
constructor(t) {
|
|
985
985
|
super(t), this.code_verifier = t.code_verifier, this.code_challenge = t.code_challenge, this.authority = t.authority, this.client_id = t.client_id, this.redirect_uri = t.redirect_uri, this.scope = t.scope, this.client_secret = t.client_secret, this.extraTokenParams = t.extraTokenParams, this.response_mode = t.response_mode, this.skipUserInfo = t.skipUserInfo;
|
|
986
986
|
}
|
|
987
987
|
static async create(t) {
|
|
988
988
|
const s = t.code_verifier === !0 ? C.generateCodeVerifier() : t.code_verifier || void 0, i = s ? await C.generateCodeChallenge(s) : void 0;
|
|
989
|
-
return new
|
|
989
|
+
return new Te({
|
|
990
990
|
...t,
|
|
991
991
|
code_verifier: s,
|
|
992
992
|
code_challenge: i
|
|
@@ -1013,9 +1013,9 @@ var C = Ze, W = class {
|
|
|
1013
1013
|
static fromStorageString(t) {
|
|
1014
1014
|
u.createStatic("SigninState", "fromStorageString");
|
|
1015
1015
|
const s = JSON.parse(t);
|
|
1016
|
-
return
|
|
1016
|
+
return Te.create(s);
|
|
1017
1017
|
}
|
|
1018
|
-
},
|
|
1018
|
+
}, Ze = class et {
|
|
1019
1019
|
constructor(t) {
|
|
1020
1020
|
this.url = t.url, this.state = t.state;
|
|
1021
1021
|
}
|
|
@@ -1025,8 +1025,8 @@ var C = Ze, W = class {
|
|
|
1025
1025
|
authority: s,
|
|
1026
1026
|
client_id: i,
|
|
1027
1027
|
redirect_uri: r,
|
|
1028
|
-
response_type:
|
|
1029
|
-
scope:
|
|
1028
|
+
response_type: n,
|
|
1029
|
+
scope: o,
|
|
1030
1030
|
// optional
|
|
1031
1031
|
state_data: c,
|
|
1032
1032
|
response_mode: l,
|
|
@@ -1041,7 +1041,7 @@ var C = Ze, W = class {
|
|
|
1041
1041
|
disablePKCE: I,
|
|
1042
1042
|
dpopJkt: N,
|
|
1043
1043
|
omitScopeWhenRequesting: P,
|
|
1044
|
-
...
|
|
1044
|
+
...M
|
|
1045
1045
|
}) {
|
|
1046
1046
|
if (!t)
|
|
1047
1047
|
throw this._logger.error("create: No url passed"), new Error("url");
|
|
@@ -1049,13 +1049,13 @@ var C = Ze, W = class {
|
|
|
1049
1049
|
throw this._logger.error("create: No client_id passed"), new Error("client_id");
|
|
1050
1050
|
if (!r)
|
|
1051
1051
|
throw this._logger.error("create: No redirect_uri passed"), new Error("redirect_uri");
|
|
1052
|
-
if (!o)
|
|
1053
|
-
throw this._logger.error("create: No response_type passed"), new Error("response_type");
|
|
1054
1052
|
if (!n)
|
|
1053
|
+
throw this._logger.error("create: No response_type passed"), new Error("response_type");
|
|
1054
|
+
if (!o)
|
|
1055
1055
|
throw this._logger.error("create: No scope passed"), new Error("scope");
|
|
1056
1056
|
if (!s)
|
|
1057
1057
|
throw this._logger.error("create: No authority passed"), new Error("authority");
|
|
1058
|
-
const R = await
|
|
1058
|
+
const R = await Ye.create({
|
|
1059
1059
|
data: c,
|
|
1060
1060
|
request_type: d,
|
|
1061
1061
|
url_state: _,
|
|
@@ -1065,64 +1065,64 @@ var C = Ze, W = class {
|
|
|
1065
1065
|
redirect_uri: r,
|
|
1066
1066
|
response_mode: l,
|
|
1067
1067
|
client_secret: h,
|
|
1068
|
-
scope:
|
|
1068
|
+
scope: o,
|
|
1069
1069
|
extraTokenParams: A,
|
|
1070
1070
|
skipUserInfo: x
|
|
1071
|
-
}),
|
|
1072
|
-
|
|
1071
|
+
}), m = new URL(t);
|
|
1072
|
+
m.searchParams.append("client_id", i), m.searchParams.append("redirect_uri", r), m.searchParams.append("response_type", n), P || m.searchParams.append("scope", o), g && m.searchParams.append("nonce", g), N && m.searchParams.append("dpop_jkt", N);
|
|
1073
1073
|
let E = R.id;
|
|
1074
|
-
_ && (E = `${E}${
|
|
1075
|
-
for (const [U,
|
|
1076
|
-
|
|
1077
|
-
return new
|
|
1078
|
-
url:
|
|
1074
|
+
_ && (E = `${E}${Se}${_}`), m.searchParams.append("state", E), R.code_challenge && (m.searchParams.append("code_challenge", R.code_challenge), m.searchParams.append("code_challenge_method", "S256")), S && (Array.isArray(S) ? S : [S]).forEach((y) => m.searchParams.append("resource", y));
|
|
1075
|
+
for (const [U, y] of Object.entries({ response_mode: l, ...M, ...T }))
|
|
1076
|
+
y != null && m.searchParams.append(U, y.toString());
|
|
1077
|
+
return new et({
|
|
1078
|
+
url: m.href,
|
|
1079
1079
|
state: R
|
|
1080
1080
|
});
|
|
1081
1081
|
}
|
|
1082
1082
|
};
|
|
1083
|
-
|
|
1084
|
-
var
|
|
1083
|
+
Ze._logger = new u("SigninRequest");
|
|
1084
|
+
var ns = Ze, os = "openid", pe = class {
|
|
1085
1085
|
constructor(e) {
|
|
1086
1086
|
if (this.access_token = "", this.token_type = "", this.profile = {}, this.state = e.get("state"), this.session_state = e.get("session_state"), this.state) {
|
|
1087
|
-
const t = decodeURIComponent(this.state).split(
|
|
1088
|
-
this.state = t[0], t.length > 1 && (this.url_state = t.slice(1).join(
|
|
1087
|
+
const t = decodeURIComponent(this.state).split(Se);
|
|
1088
|
+
this.state = t[0], t.length > 1 && (this.url_state = t.slice(1).join(Se));
|
|
1089
1089
|
}
|
|
1090
1090
|
this.error = e.get("error"), this.error_description = e.get("error_description"), this.error_uri = e.get("error_uri"), this.code = e.get("code");
|
|
1091
1091
|
}
|
|
1092
1092
|
get expires_in() {
|
|
1093
1093
|
if (this.expires_at !== void 0)
|
|
1094
|
-
return this.expires_at -
|
|
1094
|
+
return this.expires_at - F.getEpochTime();
|
|
1095
1095
|
}
|
|
1096
1096
|
set expires_in(e) {
|
|
1097
|
-
typeof e == "string" && (e = Number(e)), e !== void 0 && e >= 0 && (this.expires_at = Math.floor(e) +
|
|
1097
|
+
typeof e == "string" && (e = Number(e)), e !== void 0 && e >= 0 && (this.expires_at = Math.floor(e) + F.getEpochTime());
|
|
1098
1098
|
}
|
|
1099
1099
|
get isOpenId() {
|
|
1100
1100
|
var e;
|
|
1101
|
-
return ((e = this.scope) == null ? void 0 : e.split(" ").includes(
|
|
1101
|
+
return ((e = this.scope) == null ? void 0 : e.split(" ").includes(os)) || !!this.id_token;
|
|
1102
1102
|
}
|
|
1103
|
-
},
|
|
1103
|
+
}, as = class {
|
|
1104
1104
|
constructor({
|
|
1105
1105
|
url: e,
|
|
1106
1106
|
state_data: t,
|
|
1107
1107
|
id_token_hint: s,
|
|
1108
1108
|
post_logout_redirect_uri: i,
|
|
1109
1109
|
extraQueryParams: r,
|
|
1110
|
-
request_type:
|
|
1111
|
-
client_id:
|
|
1110
|
+
request_type: n,
|
|
1111
|
+
client_id: o
|
|
1112
1112
|
}) {
|
|
1113
1113
|
if (this._logger = new u("SignoutRequest"), !e)
|
|
1114
1114
|
throw this._logger.error("ctor: No url passed"), new Error("url");
|
|
1115
1115
|
const c = new URL(e);
|
|
1116
|
-
s && c.searchParams.append("id_token_hint", s),
|
|
1116
|
+
s && c.searchParams.append("id_token_hint", s), o && c.searchParams.append("client_id", o), i && (c.searchParams.append("post_logout_redirect_uri", i), t && (this.state = new ge({ data: t, request_type: n }), c.searchParams.append("state", this.state.id)));
|
|
1117
1117
|
for (const [l, d] of Object.entries({ ...r }))
|
|
1118
1118
|
d != null && c.searchParams.append(l, d.toString());
|
|
1119
1119
|
this.url = c.href;
|
|
1120
1120
|
}
|
|
1121
|
-
},
|
|
1121
|
+
}, cs = class {
|
|
1122
1122
|
constructor(e) {
|
|
1123
1123
|
this.state = e.get("state"), this.error = e.get("error"), this.error_description = e.get("error_description"), this.error_uri = e.get("error_uri");
|
|
1124
1124
|
}
|
|
1125
|
-
},
|
|
1125
|
+
}, ls = [
|
|
1126
1126
|
"nbf",
|
|
1127
1127
|
"jti",
|
|
1128
1128
|
"auth_time",
|
|
@@ -1132,7 +1132,7 @@ var gs = rt, us = "openid", me = class {
|
|
|
1132
1132
|
"azp",
|
|
1133
1133
|
"at_hash"
|
|
1134
1134
|
// https://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken
|
|
1135
|
-
],
|
|
1135
|
+
], ds = ["sub", "iss", "aud", "exp", "iat"], hs = class {
|
|
1136
1136
|
constructor(e) {
|
|
1137
1137
|
this._settings = e, this._logger = new u("ClaimsService");
|
|
1138
1138
|
}
|
|
@@ -1140,9 +1140,9 @@ var gs = rt, us = "openid", me = class {
|
|
|
1140
1140
|
const t = { ...e };
|
|
1141
1141
|
if (this._settings.filterProtocolClaims) {
|
|
1142
1142
|
let s;
|
|
1143
|
-
Array.isArray(this._settings.filterProtocolClaims) ? s = this._settings.filterProtocolClaims : s =
|
|
1143
|
+
Array.isArray(this._settings.filterProtocolClaims) ? s = this._settings.filterProtocolClaims : s = ls;
|
|
1144
1144
|
for (const i of s)
|
|
1145
|
-
|
|
1145
|
+
ds.includes(i) || delete t[i];
|
|
1146
1146
|
}
|
|
1147
1147
|
return t;
|
|
1148
1148
|
}
|
|
@@ -1154,21 +1154,21 @@ var gs = rt, us = "openid", me = class {
|
|
|
1154
1154
|
if (this._settings.mergeClaimsStrategy.array == "replace")
|
|
1155
1155
|
s[i] = r;
|
|
1156
1156
|
else {
|
|
1157
|
-
const
|
|
1158
|
-
for (const
|
|
1159
|
-
|
|
1160
|
-
s[i] =
|
|
1157
|
+
const n = Array.isArray(s[i]) ? s[i] : [s[i]];
|
|
1158
|
+
for (const o of Array.isArray(r) ? r : [r])
|
|
1159
|
+
n.includes(o) || n.push(o);
|
|
1160
|
+
s[i] = n;
|
|
1161
1161
|
}
|
|
1162
1162
|
else typeof s[i] == "object" && typeof r == "object" ? s[i] = this.mergeClaims(s[i], r) : s[i] = r;
|
|
1163
1163
|
return s;
|
|
1164
1164
|
}
|
|
1165
|
-
},
|
|
1165
|
+
}, tt = class {
|
|
1166
1166
|
constructor(e, t) {
|
|
1167
1167
|
this.keys = e, this.nonce = t;
|
|
1168
1168
|
}
|
|
1169
|
-
},
|
|
1169
|
+
}, gs = class {
|
|
1170
1170
|
constructor(e, t) {
|
|
1171
|
-
this._logger = new u("OidcClient"), this.settings = e instanceof
|
|
1171
|
+
this._logger = new u("OidcClient"), this.settings = e instanceof be ? e : new be(e), this.metadataService = t ?? new Yt(this.settings), this._claimsService = new hs(this.settings), this._validator = new rs(this.settings, this.metadataService, this._claimsService), this._tokenClient = new Xe(this.settings, this.metadataService);
|
|
1172
1172
|
}
|
|
1173
1173
|
async createSigninRequest({
|
|
1174
1174
|
state: e,
|
|
@@ -1176,8 +1176,8 @@ var gs = rt, us = "openid", me = class {
|
|
|
1176
1176
|
request_uri: s,
|
|
1177
1177
|
request_type: i,
|
|
1178
1178
|
id_token_hint: r,
|
|
1179
|
-
login_hint:
|
|
1180
|
-
skipUserInfo:
|
|
1179
|
+
login_hint: n,
|
|
1180
|
+
skipUserInfo: o,
|
|
1181
1181
|
nonce: c,
|
|
1182
1182
|
url_state: l,
|
|
1183
1183
|
response_type: d = this.settings.response_type,
|
|
@@ -1191,16 +1191,16 @@ var gs = rt, us = "openid", me = class {
|
|
|
1191
1191
|
resource: I = this.settings.resource,
|
|
1192
1192
|
response_mode: N = this.settings.response_mode,
|
|
1193
1193
|
extraQueryParams: P = this.settings.extraQueryParams,
|
|
1194
|
-
extraTokenParams:
|
|
1194
|
+
extraTokenParams: M = this.settings.extraTokenParams,
|
|
1195
1195
|
dpopJkt: R,
|
|
1196
|
-
omitScopeWhenRequesting:
|
|
1196
|
+
omitScopeWhenRequesting: m = this.settings.omitScopeWhenRequesting
|
|
1197
1197
|
}) {
|
|
1198
1198
|
const E = this._logger.create("createSigninRequest");
|
|
1199
1199
|
if (d !== "code")
|
|
1200
1200
|
throw new Error("Only the Authorization Code flow (with PKCE) is supported");
|
|
1201
1201
|
const U = await this.metadataService.getAuthorizationEndpoint();
|
|
1202
1202
|
E.debug("Received authorization endpoint", U);
|
|
1203
|
-
const
|
|
1203
|
+
const y = await ns.create({
|
|
1204
1204
|
url: U,
|
|
1205
1205
|
authority: this.settings.authority,
|
|
1206
1206
|
client_id: this.settings.client_id,
|
|
@@ -1214,55 +1214,55 @@ var gs = rt, us = "openid", me = class {
|
|
|
1214
1214
|
max_age: x,
|
|
1215
1215
|
ui_locales: T,
|
|
1216
1216
|
id_token_hint: r,
|
|
1217
|
-
login_hint:
|
|
1217
|
+
login_hint: n,
|
|
1218
1218
|
acr_values: A,
|
|
1219
1219
|
dpopJkt: R,
|
|
1220
1220
|
resource: I,
|
|
1221
1221
|
request: t,
|
|
1222
1222
|
request_uri: s,
|
|
1223
1223
|
extraQueryParams: P,
|
|
1224
|
-
extraTokenParams:
|
|
1224
|
+
extraTokenParams: M,
|
|
1225
1225
|
request_type: i,
|
|
1226
1226
|
response_mode: N,
|
|
1227
1227
|
client_secret: this.settings.client_secret,
|
|
1228
|
-
skipUserInfo:
|
|
1228
|
+
skipUserInfo: o,
|
|
1229
1229
|
nonce: c,
|
|
1230
1230
|
disablePKCE: this.settings.disablePKCE,
|
|
1231
|
-
omitScopeWhenRequesting:
|
|
1231
|
+
omitScopeWhenRequesting: m
|
|
1232
1232
|
});
|
|
1233
1233
|
await this.clearStaleState();
|
|
1234
|
-
const z =
|
|
1235
|
-
return await this.settings.stateStore.set(z.id, z.toStorageString()),
|
|
1234
|
+
const z = y.state;
|
|
1235
|
+
return await this.settings.stateStore.set(z.id, z.toStorageString()), y;
|
|
1236
1236
|
}
|
|
1237
1237
|
async readSigninResponseState(e, t = !1) {
|
|
1238
|
-
const s = this._logger.create("readSigninResponseState"), i = new
|
|
1238
|
+
const s = this._logger.create("readSigninResponseState"), i = new pe(ve.readParams(e, this.settings.response_mode));
|
|
1239
1239
|
if (!i.state)
|
|
1240
1240
|
throw s.throw(new Error("No state in response")), null;
|
|
1241
1241
|
const r = await this.settings.stateStore[t ? "remove" : "get"](i.state);
|
|
1242
1242
|
if (!r)
|
|
1243
1243
|
throw s.throw(new Error("No matching state found in storage")), null;
|
|
1244
|
-
return { state: await
|
|
1244
|
+
return { state: await Ye.fromStorageString(r), response: i };
|
|
1245
1245
|
}
|
|
1246
1246
|
async processSigninResponse(e, t) {
|
|
1247
1247
|
const s = this._logger.create("processSigninResponse"), { state: i, response: r } = await this.readSigninResponseState(e, !0);
|
|
1248
1248
|
if (s.debug("received state from storage; validating response"), this.settings.dpop && this.settings.dpop.store) {
|
|
1249
|
-
const
|
|
1250
|
-
t = { ...t, DPoP:
|
|
1249
|
+
const n = await this.getDpopProof(this.settings.dpop.store);
|
|
1250
|
+
t = { ...t, DPoP: n };
|
|
1251
1251
|
}
|
|
1252
1252
|
try {
|
|
1253
1253
|
await this._validator.validateSigninResponse(r, i, t);
|
|
1254
|
-
} catch (
|
|
1255
|
-
if (
|
|
1256
|
-
const
|
|
1257
|
-
t.DPoP =
|
|
1254
|
+
} catch (n) {
|
|
1255
|
+
if (n instanceof ye && this.settings.dpop) {
|
|
1256
|
+
const o = await this.getDpopProof(this.settings.dpop.store, n.nonce);
|
|
1257
|
+
t.DPoP = o, await this._validator.validateSigninResponse(r, i, t);
|
|
1258
1258
|
} else
|
|
1259
|
-
throw
|
|
1259
|
+
throw n;
|
|
1260
1260
|
}
|
|
1261
1261
|
return r;
|
|
1262
1262
|
}
|
|
1263
1263
|
async getDpopProof(e, t) {
|
|
1264
1264
|
let s, i;
|
|
1265
|
-
return (await e.getAllKeys()).includes(this.settings.client_id) ? (i = await e.get(this.settings.client_id), i.nonce !== t && t && (i.nonce = t, await e.set(this.settings.client_id, i))) : (s = await C.generateDPoPKeys(), i = new
|
|
1265
|
+
return (await e.getAllKeys()).includes(this.settings.client_id) ? (i = await e.get(this.settings.client_id), i.nonce !== t && t && (i.nonce = t, await e.set(this.settings.client_id, i))) : (s = await C.generateDPoPKeys(), i = new tt(s, t), await e.set(this.settings.client_id, i)), await C.generateDPoPProof({
|
|
1266
1266
|
url: await this.metadataService.getTokenEndpoint(!1),
|
|
1267
1267
|
httpMethod: "POST",
|
|
1268
1268
|
keyPair: i.keys,
|
|
@@ -1275,8 +1275,8 @@ var gs = rt, us = "openid", me = class {
|
|
|
1275
1275
|
skipUserInfo: s = !1,
|
|
1276
1276
|
extraTokenParams: i = {}
|
|
1277
1277
|
}) {
|
|
1278
|
-
const r = await this._tokenClient.exchangeCredentials({ username: e, password: t, ...i }),
|
|
1279
|
-
return Object.assign(
|
|
1278
|
+
const r = await this._tokenClient.exchangeCredentials({ username: e, password: t, ...i }), n = new pe(new URLSearchParams());
|
|
1279
|
+
return Object.assign(n, r), await this._validator.validateCredentialsResponse(n, s), n;
|
|
1280
1280
|
}
|
|
1281
1281
|
async useRefreshToken({
|
|
1282
1282
|
state: e,
|
|
@@ -1284,16 +1284,16 @@ var gs = rt, us = "openid", me = class {
|
|
|
1284
1284
|
resource: s,
|
|
1285
1285
|
timeoutInSeconds: i,
|
|
1286
1286
|
extraHeaders: r,
|
|
1287
|
-
extraTokenParams:
|
|
1287
|
+
extraTokenParams: n
|
|
1288
1288
|
}) {
|
|
1289
|
-
var
|
|
1289
|
+
var o;
|
|
1290
1290
|
const c = this._logger.create("useRefreshToken");
|
|
1291
1291
|
let l;
|
|
1292
1292
|
if (this.settings.refreshTokenAllowedScope === void 0)
|
|
1293
1293
|
l = e.scope;
|
|
1294
1294
|
else {
|
|
1295
1295
|
const g = this.settings.refreshTokenAllowedScope.split(" ");
|
|
1296
|
-
l = (((
|
|
1296
|
+
l = (((o = e.scope) == null ? void 0 : o.split(" ")) || []).filter((S) => g.includes(S)).join(" ");
|
|
1297
1297
|
}
|
|
1298
1298
|
if (this.settings.dpop && this.settings.dpop.store) {
|
|
1299
1299
|
const g = await this.getDpopProof(this.settings.dpop.store);
|
|
@@ -1309,10 +1309,10 @@ var gs = rt, us = "openid", me = class {
|
|
|
1309
1309
|
resource: s,
|
|
1310
1310
|
timeoutInSeconds: i,
|
|
1311
1311
|
extraHeaders: r,
|
|
1312
|
-
...
|
|
1312
|
+
...n
|
|
1313
1313
|
});
|
|
1314
1314
|
} catch (g) {
|
|
1315
|
-
if (g instanceof
|
|
1315
|
+
if (g instanceof ye && this.settings.dpop)
|
|
1316
1316
|
r.DPoP = await this.getDpopProof(this.settings.dpop.store, g.nonce), d = await this._tokenClient.exchangeRefreshToken({
|
|
1317
1317
|
refresh_token: e.refresh_token,
|
|
1318
1318
|
// provide the (possible filtered) scope list
|
|
@@ -1321,12 +1321,12 @@ var gs = rt, us = "openid", me = class {
|
|
|
1321
1321
|
resource: s,
|
|
1322
1322
|
timeoutInSeconds: i,
|
|
1323
1323
|
extraHeaders: r,
|
|
1324
|
-
...
|
|
1324
|
+
...n
|
|
1325
1325
|
});
|
|
1326
1326
|
else
|
|
1327
1327
|
throw g;
|
|
1328
1328
|
}
|
|
1329
|
-
const h = new
|
|
1329
|
+
const h = new pe(new URLSearchParams());
|
|
1330
1330
|
return Object.assign(h, d), c.debug("validating response", h), await this._validator.validateRefreshResponse(h, {
|
|
1331
1331
|
...e,
|
|
1332
1332
|
// override the scope in the state handed over to the validator
|
|
@@ -1340,27 +1340,27 @@ var gs = rt, us = "openid", me = class {
|
|
|
1340
1340
|
client_id: s,
|
|
1341
1341
|
request_type: i,
|
|
1342
1342
|
post_logout_redirect_uri: r = this.settings.post_logout_redirect_uri,
|
|
1343
|
-
extraQueryParams:
|
|
1343
|
+
extraQueryParams: n = this.settings.extraQueryParams
|
|
1344
1344
|
} = {}) {
|
|
1345
|
-
const
|
|
1345
|
+
const o = this._logger.create("createSignoutRequest"), c = await this.metadataService.getEndSessionEndpoint();
|
|
1346
1346
|
if (!c)
|
|
1347
|
-
throw
|
|
1348
|
-
|
|
1349
|
-
const l = new
|
|
1347
|
+
throw o.throw(new Error("No end session endpoint")), null;
|
|
1348
|
+
o.debug("Received end session endpoint", c), !s && r && !t && (s = this.settings.client_id);
|
|
1349
|
+
const l = new as({
|
|
1350
1350
|
url: c,
|
|
1351
1351
|
id_token_hint: t,
|
|
1352
1352
|
client_id: s,
|
|
1353
1353
|
post_logout_redirect_uri: r,
|
|
1354
1354
|
state_data: e,
|
|
1355
|
-
extraQueryParams:
|
|
1355
|
+
extraQueryParams: n,
|
|
1356
1356
|
request_type: i
|
|
1357
1357
|
});
|
|
1358
1358
|
await this.clearStaleState();
|
|
1359
1359
|
const d = l.state;
|
|
1360
|
-
return d && (
|
|
1360
|
+
return d && (o.debug("Signout request has state to persist"), await this.settings.stateStore.set(d.id, d.toStorageString())), l;
|
|
1361
1361
|
}
|
|
1362
1362
|
async readSignoutResponseState(e, t = !1) {
|
|
1363
|
-
const s = this._logger.create("readSignoutResponseState"), i = new
|
|
1363
|
+
const s = this._logger.create("readSignoutResponseState"), i = new cs(ve.readParams(e, this.settings.response_mode));
|
|
1364
1364
|
if (!i.state) {
|
|
1365
1365
|
if (s.debug("No state in response"), i.error)
|
|
1366
1366
|
throw s.warn("Response was error:", i.error), new B(i);
|
|
@@ -1369,14 +1369,14 @@ var gs = rt, us = "openid", me = class {
|
|
|
1369
1369
|
const r = await this.settings.stateStore[t ? "remove" : "get"](i.state);
|
|
1370
1370
|
if (!r)
|
|
1371
1371
|
throw s.throw(new Error("No matching state found in storage")), null;
|
|
1372
|
-
return { state: await
|
|
1372
|
+
return { state: await ge.fromStorageString(r), response: i };
|
|
1373
1373
|
}
|
|
1374
1374
|
async processSignoutResponse(e) {
|
|
1375
1375
|
const t = this._logger.create("processSignoutResponse"), { state: s, response: i } = await this.readSignoutResponseState(e, !0);
|
|
1376
1376
|
return s ? (t.debug("Received state from storage; validating response"), this._validator.validateSignoutResponse(i, s)) : t.debug("No state from storage; skipping response validation"), i;
|
|
1377
1377
|
}
|
|
1378
1378
|
clearStaleState() {
|
|
1379
|
-
return this._logger.create("clearStaleState"),
|
|
1379
|
+
return this._logger.create("clearStaleState"), ge.clearStaleState(this.settings.stateStore, this.settings.staleStateAgeInSeconds);
|
|
1380
1380
|
}
|
|
1381
1381
|
async revokeToken(e, t) {
|
|
1382
1382
|
return this._logger.create("revokeToken"), await this._tokenClient.revoke({
|
|
@@ -1384,7 +1384,7 @@ var gs = rt, us = "openid", me = class {
|
|
|
1384
1384
|
token_type_hint: t
|
|
1385
1385
|
});
|
|
1386
1386
|
}
|
|
1387
|
-
},
|
|
1387
|
+
}, us = class {
|
|
1388
1388
|
constructor(e) {
|
|
1389
1389
|
this._userManager = e, this._logger = new u("SessionMonitor"), this._start = async (t) => {
|
|
1390
1390
|
const s = t.session_state;
|
|
@@ -1399,7 +1399,7 @@ var gs = rt, us = "openid", me = class {
|
|
|
1399
1399
|
const r = await this._userManager.metadataService.getCheckSessionIframe();
|
|
1400
1400
|
if (r) {
|
|
1401
1401
|
i.debug("initializing check session iframe");
|
|
1402
|
-
const
|
|
1402
|
+
const n = this._userManager.settings.client_id, o = this._userManager.settings.checkSessionIntervalInSeconds, c = this._userManager.settings.stopCheckSessionOnError, l = new Xt(this._callback, n, r, o, c);
|
|
1403
1403
|
await l.load(), this._checkSessionIFrame = l, l.start(s);
|
|
1404
1404
|
} else
|
|
1405
1405
|
i.warn("no check session iframe found in the metadata");
|
|
@@ -1458,7 +1458,7 @@ var gs = rt, us = "openid", me = class {
|
|
|
1458
1458
|
}
|
|
1459
1459
|
}
|
|
1460
1460
|
}
|
|
1461
|
-
},
|
|
1461
|
+
}, fe = class st {
|
|
1462
1462
|
constructor(t) {
|
|
1463
1463
|
var s;
|
|
1464
1464
|
this.id_token = t.id_token, this.session_state = (s = t.session_state) != null ? s : null, this.access_token = t.access_token, this.refresh_token = t.refresh_token, this.token_type = t.token_type, this.scope = t.scope, this.profile = t.profile, this.expires_at = t.expires_at, this.state = t.userState, this.url_state = t.url_state;
|
|
@@ -1466,10 +1466,10 @@ var gs = rt, us = "openid", me = class {
|
|
|
1466
1466
|
/** Computed number of seconds the access token has remaining. */
|
|
1467
1467
|
get expires_in() {
|
|
1468
1468
|
if (this.expires_at !== void 0)
|
|
1469
|
-
return this.expires_at -
|
|
1469
|
+
return this.expires_at - F.getEpochTime();
|
|
1470
1470
|
}
|
|
1471
1471
|
set expires_in(t) {
|
|
1472
|
-
t !== void 0 && (this.expires_at = Math.floor(t) +
|
|
1472
|
+
t !== void 0 && (this.expires_at = Math.floor(t) + F.getEpochTime());
|
|
1473
1473
|
}
|
|
1474
1474
|
/** Computed value indicating if the access token is expired. */
|
|
1475
1475
|
get expired() {
|
|
@@ -1495,9 +1495,9 @@ var gs = rt, us = "openid", me = class {
|
|
|
1495
1495
|
});
|
|
1496
1496
|
}
|
|
1497
1497
|
static fromStorageString(t) {
|
|
1498
|
-
return u.createStatic("User", "fromStorageString"), new
|
|
1498
|
+
return u.createStatic("User", "fromStorageString"), new st(JSON.parse(t));
|
|
1499
1499
|
}
|
|
1500
|
-
},
|
|
1500
|
+
}, Me = "oidc-client", it = class {
|
|
1501
1501
|
constructor() {
|
|
1502
1502
|
this._abort = new W("Window navigation aborted"), this._disposeHandlers = /* @__PURE__ */ new Set(), this._window = null;
|
|
1503
1503
|
}
|
|
@@ -1506,23 +1506,23 @@ var gs = rt, us = "openid", me = class {
|
|
|
1506
1506
|
if (!this._window)
|
|
1507
1507
|
throw new Error("Attempted to navigate on a disposed window");
|
|
1508
1508
|
t.debug("setting URL in window"), this._window.location.replace(e.url);
|
|
1509
|
-
const { url: s, keepOpen: i } = await new Promise((r,
|
|
1510
|
-
const
|
|
1509
|
+
const { url: s, keepOpen: i } = await new Promise((r, n) => {
|
|
1510
|
+
const o = (c) => {
|
|
1511
1511
|
var l;
|
|
1512
1512
|
const d = c.data, h = (l = e.scriptOrigin) != null ? l : window.location.origin;
|
|
1513
|
-
if (!(c.origin !== h || (d == null ? void 0 : d.source) !==
|
|
1513
|
+
if (!(c.origin !== h || (d == null ? void 0 : d.source) !== Me)) {
|
|
1514
1514
|
try {
|
|
1515
|
-
const g =
|
|
1515
|
+
const g = ve.readParams(d.url, e.response_mode).get("state");
|
|
1516
1516
|
if (g || t.warn("no state found in response url"), c.source !== this._window && g !== e.state)
|
|
1517
1517
|
return;
|
|
1518
1518
|
} catch {
|
|
1519
|
-
this._dispose(),
|
|
1519
|
+
this._dispose(), n(new Error("Invalid response from window"));
|
|
1520
1520
|
}
|
|
1521
1521
|
r(d);
|
|
1522
1522
|
}
|
|
1523
1523
|
};
|
|
1524
|
-
window.addEventListener("message",
|
|
1525
|
-
this._dispose(),
|
|
1524
|
+
window.addEventListener("message", o, !1), this._disposeHandlers.add(() => window.removeEventListener("message", o, !1)), this._disposeHandlers.add(this._abort.addHandler((c) => {
|
|
1525
|
+
this._dispose(), n(c);
|
|
1526
1526
|
}));
|
|
1527
1527
|
});
|
|
1528
1528
|
return t.debug("got response from window"), this._dispose(), i || this.close(), { url: s };
|
|
@@ -1535,25 +1535,25 @@ var gs = rt, us = "openid", me = class {
|
|
|
1535
1535
|
}
|
|
1536
1536
|
static _notifyParent(e, t, s = !1, i = window.location.origin) {
|
|
1537
1537
|
e.postMessage({
|
|
1538
|
-
source:
|
|
1538
|
+
source: Me,
|
|
1539
1539
|
url: t,
|
|
1540
1540
|
keepOpen: s
|
|
1541
1541
|
}, i);
|
|
1542
1542
|
}
|
|
1543
|
-
},
|
|
1543
|
+
}, rt = {
|
|
1544
1544
|
location: !1,
|
|
1545
1545
|
toolbar: !1,
|
|
1546
1546
|
height: 640,
|
|
1547
1547
|
closePopupWindowAfterInSeconds: -1
|
|
1548
|
-
},
|
|
1548
|
+
}, nt = "_blank", _s = 60, ps = 2, ot = 10, fs = class extends be {
|
|
1549
1549
|
constructor(e) {
|
|
1550
1550
|
const {
|
|
1551
1551
|
popup_redirect_uri: t = e.redirect_uri,
|
|
1552
1552
|
popup_post_logout_redirect_uri: s = e.post_logout_redirect_uri,
|
|
1553
|
-
popupWindowFeatures: i =
|
|
1554
|
-
popupWindowTarget: r =
|
|
1555
|
-
redirectMethod:
|
|
1556
|
-
redirectTarget:
|
|
1553
|
+
popupWindowFeatures: i = rt,
|
|
1554
|
+
popupWindowTarget: r = nt,
|
|
1555
|
+
redirectMethod: n = "assign",
|
|
1556
|
+
redirectTarget: o = "self",
|
|
1557
1557
|
iframeNotifyParentOrigin: c = e.iframeNotifyParentOrigin,
|
|
1558
1558
|
iframeScriptOrigin: l = e.iframeScriptOrigin,
|
|
1559
1559
|
requestTimeoutInSeconds: d,
|
|
@@ -1564,27 +1564,27 @@ var gs = rt, us = "openid", me = class {
|
|
|
1564
1564
|
includeIdTokenInSilentRenew: x = !1,
|
|
1565
1565
|
monitorSession: T = !1,
|
|
1566
1566
|
monitorAnonymousSession: A = !1,
|
|
1567
|
-
checkSessionIntervalInSeconds: I =
|
|
1567
|
+
checkSessionIntervalInSeconds: I = ps,
|
|
1568
1568
|
query_status_response_type: N = "code",
|
|
1569
1569
|
stopCheckSessionOnError: P = !0,
|
|
1570
|
-
revokeTokenTypes:
|
|
1570
|
+
revokeTokenTypes: M = ["access_token", "refresh_token"],
|
|
1571
1571
|
revokeTokensOnSignout: R = !1,
|
|
1572
|
-
includeIdTokenInSilentSignout:
|
|
1573
|
-
accessTokenExpiringNotificationTimeInSeconds: E =
|
|
1572
|
+
includeIdTokenInSilentSignout: m = !1,
|
|
1573
|
+
accessTokenExpiringNotificationTimeInSeconds: E = _s,
|
|
1574
1574
|
userStore: U
|
|
1575
1575
|
} = e;
|
|
1576
|
-
if (super(e), this.popup_redirect_uri = t, this.popup_post_logout_redirect_uri = s, this.popupWindowFeatures = i, this.popupWindowTarget = r, this.redirectMethod =
|
|
1576
|
+
if (super(e), this.popup_redirect_uri = t, this.popup_post_logout_redirect_uri = s, this.popupWindowFeatures = i, this.popupWindowTarget = r, this.redirectMethod = n, this.redirectTarget = o, this.iframeNotifyParentOrigin = c, this.iframeScriptOrigin = l, this.silent_redirect_uri = h, this.silentRequestTimeoutInSeconds = g || d || ot, this.automaticSilentRenew = _, this.validateSubOnSilentRenew = S, this.includeIdTokenInSilentRenew = x, this.monitorSession = T, this.monitorAnonymousSession = A, this.checkSessionIntervalInSeconds = I, this.stopCheckSessionOnError = P, this.query_status_response_type = N, this.revokeTokenTypes = M, this.revokeTokensOnSignout = R, this.includeIdTokenInSilentSignout = m, this.accessTokenExpiringNotificationTimeInSeconds = E, U)
|
|
1577
1577
|
this.userStore = U;
|
|
1578
1578
|
else {
|
|
1579
|
-
const
|
|
1580
|
-
this.userStore = new
|
|
1579
|
+
const y = typeof window < "u" ? window.sessionStorage : new Ge();
|
|
1580
|
+
this.userStore = new Qe({ store: y });
|
|
1581
1581
|
}
|
|
1582
1582
|
}
|
|
1583
|
-
},
|
|
1583
|
+
}, Fe = class at extends it {
|
|
1584
1584
|
constructor({
|
|
1585
|
-
silentRequestTimeoutInSeconds: t =
|
|
1585
|
+
silentRequestTimeoutInSeconds: t = ot
|
|
1586
1586
|
}) {
|
|
1587
|
-
super(), this._logger = new u("IFrameWindow"), this._timeoutInSeconds = t, this._frame =
|
|
1587
|
+
super(), this._logger = new u("IFrameWindow"), this._timeoutInSeconds = t, this._frame = at.createHiddenIframe(), this._window = this._frame.contentWindow;
|
|
1588
1588
|
}
|
|
1589
1589
|
static createHiddenIframe() {
|
|
1590
1590
|
const t = window.document.createElement("iframe");
|
|
@@ -1592,7 +1592,7 @@ var gs = rt, us = "openid", me = class {
|
|
|
1592
1592
|
}
|
|
1593
1593
|
async navigate(t) {
|
|
1594
1594
|
this._logger.debug("navigate: Using timeout of:", this._timeoutInSeconds);
|
|
1595
|
-
const s = setTimeout(() => void this._abort.raise(new
|
|
1595
|
+
const s = setTimeout(() => void this._abort.raise(new Ae("IFrame timed out without a response")), this._timeoutInSeconds * 1e3);
|
|
1596
1596
|
return this._disposeHandlers.add(() => clearTimeout(s)), await super.navigate(t);
|
|
1597
1597
|
}
|
|
1598
1598
|
close() {
|
|
@@ -1606,27 +1606,27 @@ var gs = rt, us = "openid", me = class {
|
|
|
1606
1606
|
static notifyParent(t, s) {
|
|
1607
1607
|
return super._notifyParent(window.parent, t, !1, s);
|
|
1608
1608
|
}
|
|
1609
|
-
},
|
|
1609
|
+
}, ms = class {
|
|
1610
1610
|
constructor(e) {
|
|
1611
1611
|
this._settings = e, this._logger = new u("IFrameNavigator");
|
|
1612
1612
|
}
|
|
1613
1613
|
async prepare({
|
|
1614
1614
|
silentRequestTimeoutInSeconds: e = this._settings.silentRequestTimeoutInSeconds
|
|
1615
1615
|
}) {
|
|
1616
|
-
return new
|
|
1616
|
+
return new Fe({ silentRequestTimeoutInSeconds: e });
|
|
1617
1617
|
}
|
|
1618
1618
|
async callback(e) {
|
|
1619
|
-
this._logger.create("callback"),
|
|
1619
|
+
this._logger.create("callback"), Fe.notifyParent(e, this._settings.iframeNotifyParentOrigin);
|
|
1620
1620
|
}
|
|
1621
|
-
},
|
|
1621
|
+
}, ws = 500, vs = 1e3, We = class extends it {
|
|
1622
1622
|
constructor({
|
|
1623
|
-
popupWindowTarget: e =
|
|
1623
|
+
popupWindowTarget: e = nt,
|
|
1624
1624
|
popupWindowFeatures: t = {},
|
|
1625
1625
|
popupSignal: s
|
|
1626
1626
|
}) {
|
|
1627
1627
|
super(), this._logger = new u("PopupWindow");
|
|
1628
|
-
const i =
|
|
1629
|
-
this._window = window.open(void 0, e,
|
|
1628
|
+
const i = $e.center({ ...rt, ...t });
|
|
1629
|
+
this._window = window.open(void 0, e, $e.serialize(i)), s && s.addEventListener("abort", () => {
|
|
1630
1630
|
var r;
|
|
1631
1631
|
this._abort.raise(new Error((r = s.reason) != null ? r : "Popup aborted"));
|
|
1632
1632
|
}), t.closePopupWindowAfterInSeconds && t.closePopupWindowAfterInSeconds > 0 && setTimeout(() => {
|
|
@@ -1635,14 +1635,14 @@ var gs = rt, us = "openid", me = class {
|
|
|
1635
1635
|
return;
|
|
1636
1636
|
}
|
|
1637
1637
|
this.close();
|
|
1638
|
-
}, t.closePopupWindowAfterInSeconds *
|
|
1638
|
+
}, t.closePopupWindowAfterInSeconds * vs);
|
|
1639
1639
|
}
|
|
1640
1640
|
async navigate(e) {
|
|
1641
1641
|
var t;
|
|
1642
1642
|
(t = this._window) == null || t.focus();
|
|
1643
1643
|
const s = setInterval(() => {
|
|
1644
1644
|
(!this._window || this._window.closed) && this._abort.raise(new Error("Popup closed by user"));
|
|
1645
|
-
},
|
|
1645
|
+
}, ws);
|
|
1646
1646
|
return this._disposeHandlers.add(() => clearInterval(s)), await super.navigate(e);
|
|
1647
1647
|
}
|
|
1648
1648
|
close() {
|
|
@@ -1653,7 +1653,7 @@ var gs = rt, us = "openid", me = class {
|
|
|
1653
1653
|
throw new Error("No window.opener. Can't complete notification.");
|
|
1654
1654
|
return super._notifyParent(window.opener, e, t);
|
|
1655
1655
|
}
|
|
1656
|
-
},
|
|
1656
|
+
}, Ss = class {
|
|
1657
1657
|
constructor(e) {
|
|
1658
1658
|
this._settings = e, this._logger = new u("PopupNavigator");
|
|
1659
1659
|
}
|
|
@@ -1662,12 +1662,12 @@ var gs = rt, us = "openid", me = class {
|
|
|
1662
1662
|
popupWindowTarget: t = this._settings.popupWindowTarget,
|
|
1663
1663
|
popupSignal: s
|
|
1664
1664
|
}) {
|
|
1665
|
-
return new
|
|
1665
|
+
return new We({ popupWindowFeatures: e, popupWindowTarget: t, popupSignal: s });
|
|
1666
1666
|
}
|
|
1667
1667
|
async callback(e, { keepOpen: t = !1 }) {
|
|
1668
|
-
this._logger.create("callback"),
|
|
1668
|
+
this._logger.create("callback"), We.notifyOpener(e, t);
|
|
1669
1669
|
}
|
|
1670
|
-
},
|
|
1670
|
+
}, ys = class {
|
|
1671
1671
|
constructor(e) {
|
|
1672
1672
|
this._settings = e, this._logger = new u("RedirectNavigator");
|
|
1673
1673
|
}
|
|
@@ -1680,23 +1680,23 @@ var gs = rt, us = "openid", me = class {
|
|
|
1680
1680
|
let i = window.self;
|
|
1681
1681
|
t === "top" && (i = (s = window.top) != null ? s : window.self);
|
|
1682
1682
|
const r = i.location[e].bind(i.location);
|
|
1683
|
-
let
|
|
1683
|
+
let n;
|
|
1684
1684
|
return {
|
|
1685
|
-
navigate: async (
|
|
1685
|
+
navigate: async (o) => {
|
|
1686
1686
|
this._logger.create("navigate");
|
|
1687
1687
|
const c = new Promise((l, d) => {
|
|
1688
|
-
|
|
1688
|
+
n = d;
|
|
1689
1689
|
});
|
|
1690
|
-
return r(
|
|
1690
|
+
return r(o.url), await c;
|
|
1691
1691
|
},
|
|
1692
1692
|
close: () => {
|
|
1693
|
-
this._logger.create("close"),
|
|
1693
|
+
this._logger.create("close"), n == null || n(new Error("Redirect aborted")), i.stop();
|
|
1694
1694
|
}
|
|
1695
1695
|
};
|
|
1696
1696
|
}
|
|
1697
1697
|
async callback() {
|
|
1698
1698
|
}
|
|
1699
|
-
},
|
|
1699
|
+
}, bs = class extends Qt {
|
|
1700
1700
|
constructor(e) {
|
|
1701
1701
|
super({ expiringNotificationTimeInSeconds: e.accessTokenExpiringNotificationTimeInSeconds }), this._logger = new u("UserManagerEvents"), this._userLoaded = new W("User loaded"), this._userUnloaded = new W("User unloaded"), this._silentRenewError = new W("Silent renew error"), this._userSignedIn = new W("User signed in"), this._userSignedOut = new W("User signed out"), this._userSessionChanged = new W("User session changed");
|
|
1702
1702
|
}
|
|
@@ -1805,14 +1805,14 @@ var gs = rt, us = "openid", me = class {
|
|
|
1805
1805
|
async _raiseUserSessionChanged() {
|
|
1806
1806
|
await this._userSessionChanged.raise();
|
|
1807
1807
|
}
|
|
1808
|
-
},
|
|
1808
|
+
}, ks = class {
|
|
1809
1809
|
constructor(e) {
|
|
1810
|
-
this._userManager = e, this._logger = new u("SilentRenewService"), this._isStarted = !1, this._retryTimer = new
|
|
1810
|
+
this._userManager = e, this._logger = new u("SilentRenewService"), this._isStarted = !1, this._retryTimer = new F("Retry Silent Renew"), this._tokenExpiring = async () => {
|
|
1811
1811
|
const t = this._logger.create("_tokenExpiring");
|
|
1812
1812
|
try {
|
|
1813
1813
|
await this._userManager.signinSilent(), t.debug("silent token renewal successful");
|
|
1814
1814
|
} catch (s) {
|
|
1815
|
-
if (s instanceof
|
|
1815
|
+
if (s instanceof Ae) {
|
|
1816
1816
|
t.warn("ErrorTimeout from signinSilent:", s, "retry in 5s"), this._retryTimer.init(5);
|
|
1817
1817
|
return;
|
|
1818
1818
|
}
|
|
@@ -1834,13 +1834,13 @@ var gs = rt, us = "openid", me = class {
|
|
|
1834
1834
|
stop() {
|
|
1835
1835
|
this._isStarted && (this._retryTimer.cancel(), this._retryTimer.removeHandler(this._tokenExpiring), this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring), this._isStarted = !1);
|
|
1836
1836
|
}
|
|
1837
|
-
},
|
|
1837
|
+
}, Ts = class {
|
|
1838
1838
|
constructor(e) {
|
|
1839
1839
|
this.refresh_token = e.refresh_token, this.id_token = e.id_token, this.session_state = e.session_state, this.scope = e.scope, this.profile = e.profile, this.data = e.state;
|
|
1840
1840
|
}
|
|
1841
|
-
},
|
|
1841
|
+
}, Is = class {
|
|
1842
1842
|
constructor(e, t, s, i) {
|
|
1843
|
-
this._logger = new u("UserManager"), this.settings = new
|
|
1843
|
+
this._logger = new u("UserManager"), this.settings = new fs(e), this._client = new gs(e), this._redirectNavigator = t ?? new ys(this.settings), this._popupNavigator = s ?? new Ss(this.settings), this._iframeNavigator = i ?? new ms(this.settings), this._events = new bs(this.settings), this._silentRenewService = new ks(this), this.settings.automaticSilentRenew && this.startSilentRenew(), this._sessionMonitor = null, this.settings.monitorSession && (this._sessionMonitor = new us(this));
|
|
1844
1844
|
}
|
|
1845
1845
|
/**
|
|
1846
1846
|
* Get object used to register for events raised by the `UserManager`.
|
|
@@ -1888,12 +1888,12 @@ var gs = rt, us = "openid", me = class {
|
|
|
1888
1888
|
} = e;
|
|
1889
1889
|
let r;
|
|
1890
1890
|
(t = this.settings.dpop) != null && t.bind_authorization_code && (r = await this.generateDPoPJkt(this.settings.dpop));
|
|
1891
|
-
const
|
|
1891
|
+
const n = await this._redirectNavigator.prepare({ redirectMethod: s });
|
|
1892
1892
|
await this._signinStart({
|
|
1893
1893
|
request_type: "si:r",
|
|
1894
1894
|
dpopJkt: r,
|
|
1895
1895
|
...i
|
|
1896
|
-
},
|
|
1896
|
+
}, n);
|
|
1897
1897
|
}
|
|
1898
1898
|
/**
|
|
1899
1899
|
* Process the response (callback) from the authorization endpoint.
|
|
@@ -1925,8 +1925,8 @@ var gs = rt, us = "openid", me = class {
|
|
|
1925
1925
|
extraTokenParams: this.settings.extraTokenParams
|
|
1926
1926
|
});
|
|
1927
1927
|
i.debug("got signin response");
|
|
1928
|
-
const
|
|
1929
|
-
return
|
|
1928
|
+
const n = await this._buildUser(r);
|
|
1929
|
+
return n.profile && n.profile.sub ? i.info("success, signed in subject", n.profile.sub) : i.info("no subject"), n;
|
|
1930
1930
|
}
|
|
1931
1931
|
/**
|
|
1932
1932
|
* Trigger a request (via a popup window) to the authorization endpoint.
|
|
@@ -1941,12 +1941,12 @@ var gs = rt, us = "openid", me = class {
|
|
|
1941
1941
|
(t = this.settings.dpop) != null && t.bind_authorization_code && (i = await this.generateDPoPJkt(this.settings.dpop));
|
|
1942
1942
|
const {
|
|
1943
1943
|
popupWindowFeatures: r,
|
|
1944
|
-
popupWindowTarget:
|
|
1945
|
-
popupSignal:
|
|
1944
|
+
popupWindowTarget: n,
|
|
1945
|
+
popupSignal: o,
|
|
1946
1946
|
...c
|
|
1947
1947
|
} = e, l = this.settings.popup_redirect_uri;
|
|
1948
1948
|
l || s.throw(new Error("No popup_redirect_uri configured"));
|
|
1949
|
-
const d = await this._popupNavigator.prepare({ popupWindowFeatures: r, popupWindowTarget:
|
|
1949
|
+
const d = await this._popupNavigator.prepare({ popupWindowFeatures: r, popupWindowTarget: n, popupSignal: o }), h = await this._signin({
|
|
1950
1950
|
request_type: "si:p",
|
|
1951
1951
|
redirect_uri: l,
|
|
1952
1952
|
display: "popup",
|
|
@@ -1976,17 +1976,17 @@ var gs = rt, us = "openid", me = class {
|
|
|
1976
1976
|
var t, s;
|
|
1977
1977
|
const i = this._logger.create("signinSilent"), {
|
|
1978
1978
|
silentRequestTimeoutInSeconds: r,
|
|
1979
|
-
...
|
|
1979
|
+
...n
|
|
1980
1980
|
} = e;
|
|
1981
|
-
let
|
|
1982
|
-
if (
|
|
1981
|
+
let o = await this._loadUser();
|
|
1982
|
+
if (o != null && o.refresh_token) {
|
|
1983
1983
|
i.debug("using refresh token");
|
|
1984
|
-
const g = new
|
|
1984
|
+
const g = new Ts(o);
|
|
1985
1985
|
return await this._useRefreshToken({
|
|
1986
1986
|
state: g,
|
|
1987
|
-
redirect_uri:
|
|
1988
|
-
resource:
|
|
1989
|
-
extraTokenParams:
|
|
1987
|
+
redirect_uri: n.redirect_uri,
|
|
1988
|
+
resource: n.resource,
|
|
1989
|
+
extraTokenParams: n.extraTokenParams,
|
|
1990
1990
|
timeoutInSeconds: r
|
|
1991
1991
|
});
|
|
1992
1992
|
}
|
|
@@ -1995,22 +1995,22 @@ var gs = rt, us = "openid", me = class {
|
|
|
1995
1995
|
const l = this.settings.silent_redirect_uri;
|
|
1996
1996
|
l || i.throw(new Error("No silent_redirect_uri configured"));
|
|
1997
1997
|
let d;
|
|
1998
|
-
|
|
1998
|
+
o && this.settings.validateSubOnSilentRenew && (i.debug("subject prior to silent renew:", o.profile.sub), d = o.profile.sub);
|
|
1999
1999
|
const h = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds: r });
|
|
2000
|
-
return
|
|
2000
|
+
return o = await this._signin({
|
|
2001
2001
|
request_type: "si:s",
|
|
2002
2002
|
redirect_uri: l,
|
|
2003
2003
|
prompt: "none",
|
|
2004
|
-
id_token_hint: this.settings.includeIdTokenInSilentRenew ?
|
|
2004
|
+
id_token_hint: this.settings.includeIdTokenInSilentRenew ? o == null ? void 0 : o.id_token : void 0,
|
|
2005
2005
|
dpopJkt: c,
|
|
2006
|
-
...
|
|
2007
|
-
}, h, d),
|
|
2006
|
+
...n
|
|
2007
|
+
}, h, d), o && ((s = o.profile) != null && s.sub ? i.info("success, signed in subject", o.profile.sub) : i.info("no subject")), o;
|
|
2008
2008
|
}
|
|
2009
2009
|
async _useRefreshToken(e) {
|
|
2010
2010
|
const t = await this._client.useRefreshToken({
|
|
2011
2011
|
timeoutInSeconds: this.settings.silentRequestTimeoutInSeconds,
|
|
2012
2012
|
...e
|
|
2013
|
-
}), s = new
|
|
2013
|
+
}), s = new fe({ ...e.state, ...t });
|
|
2014
2014
|
return await this.storeUser(s), await this._events.load(s), s;
|
|
2015
2015
|
}
|
|
2016
2016
|
/**
|
|
@@ -2086,17 +2086,17 @@ var gs = rt, us = "openid", me = class {
|
|
|
2086
2086
|
...i
|
|
2087
2087
|
} = e, r = this.settings.silent_redirect_uri;
|
|
2088
2088
|
r || t.throw(new Error("No silent_redirect_uri configured"));
|
|
2089
|
-
const
|
|
2089
|
+
const n = await this._loadUser(), o = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds: s }), c = await this._signinStart({
|
|
2090
2090
|
request_type: "si:s",
|
|
2091
2091
|
// this acts like a signin silent
|
|
2092
2092
|
redirect_uri: r,
|
|
2093
2093
|
prompt: "none",
|
|
2094
|
-
id_token_hint: this.settings.includeIdTokenInSilentRenew ?
|
|
2094
|
+
id_token_hint: this.settings.includeIdTokenInSilentRenew ? n == null ? void 0 : n.id_token : void 0,
|
|
2095
2095
|
response_type: this.settings.query_status_response_type,
|
|
2096
2096
|
scope: "openid",
|
|
2097
2097
|
skipUserInfo: !0,
|
|
2098
2098
|
...i
|
|
2099
|
-
},
|
|
2099
|
+
}, o);
|
|
2100
2100
|
try {
|
|
2101
2101
|
const l = {}, d = await this._client.processSigninResponse(c.url, l);
|
|
2102
2102
|
return t.debug("got signin response"), d.session_state && d.profile.sub ? (t.info("success for subject", d.profile.sub), {
|
|
@@ -2141,7 +2141,7 @@ var gs = rt, us = "openid", me = class {
|
|
|
2141
2141
|
return s.debug("got signin response"), await this._buildUser(r, t);
|
|
2142
2142
|
}
|
|
2143
2143
|
async _buildUser(e, t) {
|
|
2144
|
-
const s = this._logger.create("_buildUser"), i = new
|
|
2144
|
+
const s = this._logger.create("_buildUser"), i = new fe(e);
|
|
2145
2145
|
if (t) {
|
|
2146
2146
|
if (t !== i.profile.sub)
|
|
2147
2147
|
throw s.debug("current user does not match user returned from signin. sub from signin:", i.profile.sub), new B({ ...e, error: "login_required" });
|
|
@@ -2187,18 +2187,18 @@ var gs = rt, us = "openid", me = class {
|
|
|
2187
2187
|
popupWindowFeatures: s,
|
|
2188
2188
|
popupWindowTarget: i,
|
|
2189
2189
|
popupSignal: r,
|
|
2190
|
-
...
|
|
2191
|
-
} = e,
|
|
2190
|
+
...n
|
|
2191
|
+
} = e, o = this.settings.popup_post_logout_redirect_uri, c = await this._popupNavigator.prepare({ popupWindowFeatures: s, popupWindowTarget: i, popupSignal: r });
|
|
2192
2192
|
await this._signout({
|
|
2193
2193
|
request_type: "so:p",
|
|
2194
|
-
post_logout_redirect_uri:
|
|
2194
|
+
post_logout_redirect_uri: o,
|
|
2195
2195
|
// we're putting a dummy entry in here because we
|
|
2196
2196
|
// need a unique id from the state for notification
|
|
2197
2197
|
// to the parent window, which is necessary if we
|
|
2198
2198
|
// plan to return back to the client after signout
|
|
2199
2199
|
// and so we can close the popup after signout
|
|
2200
|
-
state:
|
|
2201
|
-
...
|
|
2200
|
+
state: o == null ? void 0 : {},
|
|
2201
|
+
...n
|
|
2202
2202
|
}, c), t.info("success");
|
|
2203
2203
|
}
|
|
2204
2204
|
/**
|
|
@@ -2223,12 +2223,12 @@ var gs = rt, us = "openid", me = class {
|
|
|
2223
2223
|
try {
|
|
2224
2224
|
const r = await this._loadUser();
|
|
2225
2225
|
i.debug("loaded current user from storage"), this.settings.revokeTokensOnSignout && await this._revokeInternal(r);
|
|
2226
|
-
const
|
|
2227
|
-
|
|
2228
|
-
const
|
|
2226
|
+
const n = e.id_token_hint || r && r.id_token;
|
|
2227
|
+
n && (i.debug("setting id_token_hint in signout request"), e.id_token_hint = n), await this.removeUser(), i.debug("user removed, creating signout request");
|
|
2228
|
+
const o = await this._client.createSignoutRequest(e);
|
|
2229
2229
|
return i.debug("got signout request"), await t.navigate({
|
|
2230
|
-
url:
|
|
2231
|
-
state: (s =
|
|
2230
|
+
url: o.url,
|
|
2231
|
+
state: (s = o.state) == null ? void 0 : s.id,
|
|
2232
2232
|
scriptOrigin: this.settings.iframeScriptOrigin
|
|
2233
2233
|
});
|
|
2234
2234
|
} catch (r) {
|
|
@@ -2249,11 +2249,11 @@ var gs = rt, us = "openid", me = class {
|
|
|
2249
2249
|
const s = this._logger.create("signoutSilent"), {
|
|
2250
2250
|
silentRequestTimeoutInSeconds: i,
|
|
2251
2251
|
...r
|
|
2252
|
-
} = e,
|
|
2252
|
+
} = e, n = this.settings.includeIdTokenInSilentSignout ? (t = await this._loadUser()) == null ? void 0 : t.id_token : void 0, o = this.settings.popup_post_logout_redirect_uri, c = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds: i });
|
|
2253
2253
|
await this._signout({
|
|
2254
2254
|
request_type: "so:s",
|
|
2255
|
-
post_logout_redirect_uri:
|
|
2256
|
-
id_token_hint:
|
|
2255
|
+
post_logout_redirect_uri: o,
|
|
2256
|
+
id_token_hint: n,
|
|
2257
2257
|
...r
|
|
2258
2258
|
}, c), s.info("success");
|
|
2259
2259
|
}
|
|
@@ -2306,7 +2306,7 @@ var gs = rt, us = "openid", me = class {
|
|
|
2306
2306
|
}
|
|
2307
2307
|
async _loadUser() {
|
|
2308
2308
|
const e = this._logger.create("_loadUser"), t = await this.settings.userStore.get(this._userStoreKey);
|
|
2309
|
-
return t ? (e.debug("user storageString loaded"),
|
|
2309
|
+
return t ? (e.debug("user storageString loaded"), fe.fromStorageString(t)) : (e.debug("no user storageString"), null);
|
|
2310
2310
|
}
|
|
2311
2311
|
async storeUser(e) {
|
|
2312
2312
|
const t = this._logger.create("storeUser");
|
|
@@ -2335,14 +2335,14 @@ var gs = rt, us = "openid", me = class {
|
|
|
2335
2335
|
* @returns A promise containing the DPoP proof or undefined if DPoP is not enabled/no user is found.
|
|
2336
2336
|
*/
|
|
2337
2337
|
async dpopProof(e, t, s, i) {
|
|
2338
|
-
var r,
|
|
2339
|
-
const
|
|
2340
|
-
if (
|
|
2338
|
+
var r, n;
|
|
2339
|
+
const o = await ((n = (r = this.settings.dpop) == null ? void 0 : r.store) == null ? void 0 : n.get(this.settings.client_id));
|
|
2340
|
+
if (o)
|
|
2341
2341
|
return await C.generateDPoPProof({
|
|
2342
2342
|
url: e,
|
|
2343
2343
|
accessToken: t == null ? void 0 : t.access_token,
|
|
2344
2344
|
httpMethod: s,
|
|
2345
|
-
keyPair:
|
|
2345
|
+
keyPair: o.keys,
|
|
2346
2346
|
nonce: i
|
|
2347
2347
|
});
|
|
2348
2348
|
}
|
|
@@ -2350,30 +2350,30 @@ var gs = rt, us = "openid", me = class {
|
|
|
2350
2350
|
let t = await e.store.get(this.settings.client_id);
|
|
2351
2351
|
if (!t) {
|
|
2352
2352
|
const s = await C.generateDPoPKeys();
|
|
2353
|
-
t = new
|
|
2353
|
+
t = new tt(s), await e.store.set(this.settings.client_id, t);
|
|
2354
2354
|
}
|
|
2355
2355
|
return await C.generateDPoPJkt(t.keys);
|
|
2356
2356
|
}
|
|
2357
2357
|
};
|
|
2358
|
-
const
|
|
2359
|
-
function
|
|
2358
|
+
const Es = ["url", "clientId", "redirectUri", "scope", "logoutUrl"], Cs = "openid profile email";
|
|
2359
|
+
function Ps(e, t) {
|
|
2360
2360
|
const s = {};
|
|
2361
2361
|
return e.forEach((i) => {
|
|
2362
2362
|
t[i] !== void 0 && (s[i] = t[i]);
|
|
2363
2363
|
}), s;
|
|
2364
2364
|
}
|
|
2365
2365
|
let p, V;
|
|
2366
|
-
const
|
|
2366
|
+
const Rs = (e) => (V = Ps(Es, e), new Is({
|
|
2367
2367
|
authority: V.url,
|
|
2368
2368
|
client_id: V.clientId,
|
|
2369
2369
|
redirect_uri: V.redirectUri,
|
|
2370
2370
|
response_type: "code",
|
|
2371
|
-
scope: V.scope ||
|
|
2371
|
+
scope: V.scope || Cs,
|
|
2372
2372
|
filterProtocolClaims: !0,
|
|
2373
2373
|
includeIdTokenInSilentRenew: !0,
|
|
2374
2374
|
includeIdTokenInSilentSignout: !0,
|
|
2375
2375
|
loadUserInfo: !0
|
|
2376
|
-
})),
|
|
2376
|
+
})), Us = async () => {
|
|
2377
2377
|
try {
|
|
2378
2378
|
console.debug("[Auth] Logging in using OIDC");
|
|
2379
2379
|
const e = new URL(window.location.href), t = await (p == null ? void 0 : p.getUser());
|
|
@@ -2385,51 +2385,51 @@ const Ds = (e) => (V = qs(Os, e), new As({
|
|
|
2385
2385
|
} catch (e) {
|
|
2386
2386
|
console.error("[Auth] Error logging in using OIDC: ", e);
|
|
2387
2387
|
}
|
|
2388
|
-
},
|
|
2388
|
+
}, xs = async () => p == null ? void 0 : p.removeUser().then(() => p == null ? void 0 : p.signoutRedirect({
|
|
2389
2389
|
post_logout_redirect_uri: V.logoutUrl || window.location.href
|
|
2390
|
-
})),
|
|
2390
|
+
})), As = async () => await (p == null ? void 0 : p.getUser()) != null, Os = async () => {
|
|
2391
2391
|
const e = await (p == null ? void 0 : p.getUser());
|
|
2392
2392
|
return Promise.resolve(e == null ? void 0 : e.id_token);
|
|
2393
|
-
},
|
|
2393
|
+
}, Ns = async () => {
|
|
2394
2394
|
const e = await (p == null ? void 0 : p.getUser());
|
|
2395
2395
|
return Promise.resolve(e == null ? void 0 : e.profile.preferred_username);
|
|
2396
2396
|
};
|
|
2397
2397
|
let G, Z;
|
|
2398
|
-
const
|
|
2398
|
+
const qs = async (e, t) => {
|
|
2399
2399
|
try {
|
|
2400
2400
|
console.debug("[Auth] Setting Username and Password for BasicAuth"), G = e, Z = t;
|
|
2401
2401
|
} catch (s) {
|
|
2402
2402
|
console.error("[Auth] Error logging in using BasicAuth: ", s);
|
|
2403
2403
|
}
|
|
2404
|
-
},
|
|
2404
|
+
}, Ds = async () => {
|
|
2405
2405
|
console.debug("[Auth] Logout for BasicAuth"), G = void 0, Z = void 0, window.location.reload();
|
|
2406
|
-
},
|
|
2406
|
+
}, Ls = async () => G !== void 0 && Z !== void 0, js = async () => Promise.resolve(G), Hs = () => {
|
|
2407
2407
|
if (G !== void 0 && Z != null)
|
|
2408
2408
|
return {
|
|
2409
2409
|
username: G,
|
|
2410
2410
|
password: Z
|
|
2411
2411
|
};
|
|
2412
|
-
},
|
|
2413
|
-
const e =
|
|
2414
|
-
return e.type === "oidc" ? (p === void 0 && (console.debug("[Auth] Creating OIDC UserManager with options: ", e.options), p =
|
|
2412
|
+
}, ct = () => {
|
|
2413
|
+
const e = ut(Jt);
|
|
2414
|
+
return e.type === "oidc" ? (p === void 0 && (console.debug("[Auth] Creating OIDC UserManager with options: ", e.options), p = Rs(e.options)), {
|
|
2415
2415
|
isOidcAuthEnabled: () => !0,
|
|
2416
2416
|
isBasicAuthEnabled: () => !1,
|
|
2417
|
-
isAuthenticated:
|
|
2418
|
-
getToken:
|
|
2417
|
+
isAuthenticated: As,
|
|
2418
|
+
getToken: Os,
|
|
2419
2419
|
getUsernameAndPassword: () => {
|
|
2420
2420
|
},
|
|
2421
|
-
getUsername:
|
|
2422
|
-
login:
|
|
2423
|
-
logout:
|
|
2421
|
+
getUsername: Ns,
|
|
2422
|
+
login: Us,
|
|
2423
|
+
logout: xs
|
|
2424
2424
|
}) : e.type === "basic" ? {
|
|
2425
2425
|
isOidcAuthEnabled: () => !1,
|
|
2426
2426
|
isBasicAuthEnabled: () => !0,
|
|
2427
|
-
isAuthenticated:
|
|
2427
|
+
isAuthenticated: Ls,
|
|
2428
2428
|
getToken: () => Promise.resolve(void 0),
|
|
2429
|
-
getUsernameAndPassword:
|
|
2430
|
-
getUsername:
|
|
2431
|
-
login:
|
|
2432
|
-
logout:
|
|
2429
|
+
getUsernameAndPassword: Hs,
|
|
2430
|
+
getUsername: js,
|
|
2431
|
+
login: qs,
|
|
2432
|
+
logout: Ds
|
|
2433
2433
|
} : {
|
|
2434
2434
|
isOidcAuthEnabled: () => !1,
|
|
2435
2435
|
isBasicAuthEnabled: () => !1,
|
|
@@ -2441,60 +2441,64 @@ const Ms = async (e, t) => {
|
|
|
2441
2441
|
login: () => Promise.resolve(),
|
|
2442
2442
|
logout: () => Promise.resolve()
|
|
2443
2443
|
};
|
|
2444
|
-
},
|
|
2445
|
-
const [t, s] =
|
|
2446
|
-
return
|
|
2447
|
-
let
|
|
2448
|
-
if (e.date && typeof e.date == "string" ?
|
|
2449
|
-
const
|
|
2444
|
+
}, Ie = (e) => {
|
|
2445
|
+
const [t, s] = k(""), [i, r] = k(""), [n, o] = k(), c = e.format || "locale";
|
|
2446
|
+
return Ce(() => {
|
|
2447
|
+
let l;
|
|
2448
|
+
if (e.date && typeof e.date == "string" ? l = se.fromISO(e.date) : e.date && typeof e.date == "object" && (l = se.fromJSDate(e.date)), l) {
|
|
2449
|
+
const d = {
|
|
2450
2450
|
locale: e.locale
|
|
2451
2451
|
};
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
s(
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2452
|
+
c === "fromNow" ? (s(l.toRelative() || ""), o(setInterval(() => {
|
|
2453
|
+
s(l.toRelative() || "");
|
|
2454
|
+
}, 5e3))) : s(c === "locale" ? l.toLocaleString(se.DATETIME_FULL, d) : l.toFormat(c, d)), r(l.toLocaleString(se.DATETIME_FULL, d));
|
|
2455
|
+
}
|
|
2456
|
+
return () => {
|
|
2457
|
+
n !== void 0 && clearInterval(n);
|
|
2458
|
+
};
|
|
2459
|
+
}, [e.date]), c === "fromNow" ? /* @__PURE__ */ a(_t, { content: /* @__PURE__ */ a("span", { children: i }), children: /* @__PURE__ */ a("span", { children: t }) }) : /* @__PURE__ */ a("span", { children: t });
|
|
2460
|
+
}, Xs = (e) => /* @__PURE__ */ a(Ie, { date: e.date, format: "fromNow" }), O = ({ condition: e, children: t }) => (typeof e == "boolean" ? e : e()) ? /* @__PURE__ */ a($.Fragment, { children: t }) : /* @__PURE__ */ a($.Fragment, {}), Ys = ({ collection: e, emptyState: t, emptyStateTitle: s, emptyStateMessage: i, children: r }) => {
|
|
2461
|
+
const n = () => !e || e.length === 0, o = t || /* @__PURE__ */ v(ne, { variant: pt.xs, children: [
|
|
2462
|
+
/* @__PURE__ */ a(oe, { titleText: s || "None found", headingLevel: "h4" }),
|
|
2463
|
+
/* @__PURE__ */ a(me, { children: i || "No items found." })
|
|
2460
2464
|
] });
|
|
2461
|
-
return
|
|
2462
|
-
},
|
|
2465
|
+
return n() ? /* @__PURE__ */ a($.Fragment, { children: o }) : /* @__PURE__ */ a($.Fragment, { children: r });
|
|
2466
|
+
}, ue = ({ isLoading: e, loadingComponent: t, children: s }) => {
|
|
2463
2467
|
const i = () => typeof e == "boolean" ? e : e(), r = t || /* @__PURE__ */ a(ee, {});
|
|
2464
|
-
return i() ? /* @__PURE__ */ a(
|
|
2465
|
-
},
|
|
2466
|
-
const g = t || !l || d ||
|
|
2467
|
-
return c || (c = /* @__PURE__ */ a("div", { style: { padding: "15px", backgroundColor: "white" }, children: /* @__PURE__ */ a(
|
|
2468
|
+
return i() ? /* @__PURE__ */ a($.Fragment, { children: r }) : /* @__PURE__ */ a($.Fragment, { children: s });
|
|
2469
|
+
}, Zs = ({ toolbar: e, alwaysShowToolbar: t, emptyState: s, filteredEmptyState: i, isLoading: r, isError: n, loadingComponent: o, errorComponent: c, isEmpty: l, isFiltered: d, children: h }) => {
|
|
2470
|
+
const g = t || !l || d || n;
|
|
2471
|
+
return c || (c = /* @__PURE__ */ a("div", { style: { padding: "15px", backgroundColor: "white" }, children: /* @__PURE__ */ a(ft, { isInline: !0, variant: "danger", title: "Error: Something went wrong!", children: /* @__PURE__ */ a("p", { children: "Something went wrong with the action you attempted, but we're not sure what it was. Try reloading the page and hopef for a better result, or contact your admin to report the error." }) }) })), /* @__PURE__ */ v($.Fragment, { children: [
|
|
2468
2472
|
/* @__PURE__ */ a(O, { condition: g, children: e }),
|
|
2469
|
-
/* @__PURE__ */
|
|
2470
|
-
/* @__PURE__ */ a(O, { condition: !l && !
|
|
2471
|
-
/* @__PURE__ */ a(O, { condition: l && d && !
|
|
2472
|
-
/* @__PURE__ */ a(O, { condition: l && !d && !
|
|
2473
|
-
/* @__PURE__ */ a(O, { condition:
|
|
2473
|
+
/* @__PURE__ */ v(ue, { isLoading: r, loadingComponent: o, children: [
|
|
2474
|
+
/* @__PURE__ */ a(O, { condition: !l && !n, children: h }),
|
|
2475
|
+
/* @__PURE__ */ a(O, { condition: l && d && !n, children: i }),
|
|
2476
|
+
/* @__PURE__ */ a(O, { condition: l && !d && !n, children: s }),
|
|
2477
|
+
/* @__PURE__ */ a(O, { condition: n, children: c })
|
|
2474
2478
|
] })
|
|
2475
2479
|
] });
|
|
2476
|
-
},
|
|
2477
|
-
const [t, s] =
|
|
2480
|
+
}, ei = (e) => {
|
|
2481
|
+
const [t, s] = k(!1), i = (l, d) => {
|
|
2478
2482
|
s(!1);
|
|
2479
2483
|
const h = d;
|
|
2480
2484
|
h !== void 0 && h >= 0 ? e.onSelect(e.items[h]) : e.onSelect(void 0);
|
|
2481
2485
|
}, r = () => {
|
|
2482
2486
|
s(!t);
|
|
2483
|
-
},
|
|
2487
|
+
}, n = (l) => {
|
|
2484
2488
|
let d;
|
|
2485
2489
|
return e.itemToTestId !== void 0 && (d = e.itemToTestId(l)), d;
|
|
2486
|
-
},
|
|
2490
|
+
}, o = e.popperProps || {
|
|
2487
2491
|
appendTo: e.menuAppendTo
|
|
2488
2492
|
};
|
|
2489
|
-
let c = /* @__PURE__ */ a(
|
|
2490
|
-
return e.isKebab || (c = /* @__PURE__ */ a(
|
|
2491
|
-
|
|
2493
|
+
let c = /* @__PURE__ */ a(Ot, { title: e.label });
|
|
2494
|
+
return e.isKebab || (c = /* @__PURE__ */ a($.Fragment, { children: e.label })), /* @__PURE__ */ a(
|
|
2495
|
+
mt,
|
|
2492
2496
|
{
|
|
2493
2497
|
isOpen: t,
|
|
2494
2498
|
onSelect: i,
|
|
2495
2499
|
onOpenChange: (l) => s(l),
|
|
2496
2500
|
toggle: (l) => /* @__PURE__ */ a(
|
|
2497
|
-
|
|
2501
|
+
Je,
|
|
2498
2502
|
{
|
|
2499
2503
|
"data-testid": e.testId,
|
|
2500
2504
|
ref: l,
|
|
@@ -2505,31 +2509,31 @@ const Ms = async (e, t) => {
|
|
|
2505
2509
|
}
|
|
2506
2510
|
),
|
|
2507
2511
|
ouiaId: "ObjectDropdown",
|
|
2508
|
-
popperProps:
|
|
2512
|
+
popperProps: o,
|
|
2509
2513
|
shouldFocusToggleOnSelect: !0,
|
|
2510
|
-
children: /* @__PURE__ */ a(
|
|
2511
|
-
|
|
2514
|
+
children: /* @__PURE__ */ a(wt, { children: e.items.map((l, d) => e.itemIsVisible !== void 0 && !e.itemIsVisible(l) ? /* @__PURE__ */ a(Re, {}) : e.itemIsDivider && e.itemIsDivider(l) ? /* @__PURE__ */ a(Ke, { component: "li" }, `divider-${d}`) : /* @__PURE__ */ a(
|
|
2515
|
+
vt,
|
|
2512
2516
|
{
|
|
2513
2517
|
value: d,
|
|
2514
2518
|
isDisabled: e.itemIsDisabled === void 0 ? !1 : e.itemIsDisabled(l),
|
|
2515
|
-
component: (h) => /* @__PURE__ */ a("button", { ...h, "data-testid":
|
|
2519
|
+
component: (h) => /* @__PURE__ */ a("button", { ...h, "data-testid": n(l) }),
|
|
2516
2520
|
children: e.itemToString(l)
|
|
2517
2521
|
},
|
|
2518
2522
|
`action-${d}`
|
|
2519
2523
|
)) })
|
|
2520
2524
|
}
|
|
2521
2525
|
);
|
|
2522
|
-
},
|
|
2526
|
+
}, $s = (e) => {
|
|
2523
2527
|
var l;
|
|
2524
|
-
const [t, s] =
|
|
2528
|
+
const [t, s] = k(!1), i = (d, h) => {
|
|
2525
2529
|
s(!1), e.onSelect(e.items[h]);
|
|
2526
2530
|
}, r = () => {
|
|
2527
2531
|
s(!t);
|
|
2528
|
-
},
|
|
2532
|
+
}, n = (d) => {
|
|
2529
2533
|
let h;
|
|
2530
2534
|
return e.itemToTestId !== void 0 && (h = e.itemToTestId(d)), h;
|
|
2531
|
-
},
|
|
2532
|
-
|
|
2535
|
+
}, o = (d) => /* @__PURE__ */ a(
|
|
2536
|
+
Je,
|
|
2533
2537
|
{
|
|
2534
2538
|
ref: d,
|
|
2535
2539
|
className: e.toggleClassname || "menu-toggle",
|
|
@@ -2542,19 +2546,19 @@ const Ms = async (e, t) => {
|
|
|
2542
2546
|
appendTo: e.appendTo === "document" ? () => document.body : "inline"
|
|
2543
2547
|
};
|
|
2544
2548
|
return /* @__PURE__ */ a(
|
|
2545
|
-
|
|
2549
|
+
St,
|
|
2546
2550
|
{
|
|
2547
|
-
toggle:
|
|
2551
|
+
toggle: o,
|
|
2548
2552
|
id: e.toggleId,
|
|
2549
2553
|
onSelect: i,
|
|
2550
2554
|
onOpenChange: s,
|
|
2551
2555
|
isOpen: t,
|
|
2552
2556
|
popperProps: c,
|
|
2553
|
-
children: (l = e.items) == null ? void 0 : l.map((d, h) => e.itemIsDivider && e.itemIsDivider(d) ? /* @__PURE__ */ a(
|
|
2554
|
-
|
|
2557
|
+
children: (l = e.items) == null ? void 0 : l.map((d, h) => e.itemIsDivider && e.itemIsDivider(d) ? /* @__PURE__ */ a(Ke, {}, h) : /* @__PURE__ */ a(
|
|
2558
|
+
yt,
|
|
2555
2559
|
{
|
|
2556
2560
|
isSelected: d === e.value,
|
|
2557
|
-
component: (g) => /* @__PURE__ */ a("button", { ...g, "data-testid":
|
|
2561
|
+
component: (g) => /* @__PURE__ */ a("button", { ...g, "data-testid": n(d) }),
|
|
2558
2562
|
value: h,
|
|
2559
2563
|
children: e.itemToString(d)
|
|
2560
2564
|
},
|
|
@@ -2562,36 +2566,36 @@ const Ms = async (e, t) => {
|
|
|
2562
2566
|
))
|
|
2563
2567
|
}
|
|
2564
2568
|
);
|
|
2565
|
-
},
|
|
2569
|
+
}, ti = ({ expanded: e, onClick: t }) => e ? /* @__PURE__ */ a(Nt, { onClick: t, style: { cursor: "pointer" } }) : /* @__PURE__ */ a(qt, { onClick: t, style: { cursor: "pointer" } }), lt = {
|
|
2566
2570
|
padding: "5px",
|
|
2567
2571
|
minHeight: "128px",
|
|
2568
2572
|
borderRight: 0,
|
|
2569
2573
|
borderLeft: 0,
|
|
2570
2574
|
borderBottom: "1px solid #666",
|
|
2571
2575
|
backgroundColor: "rgb(240, 240, 240)"
|
|
2572
|
-
},
|
|
2573
|
-
...
|
|
2576
|
+
}, Ms = {
|
|
2577
|
+
...lt,
|
|
2574
2578
|
color: "red",
|
|
2575
2579
|
overflow: "auto"
|
|
2576
|
-
},
|
|
2577
|
-
const [t, s] =
|
|
2580
|
+
}, si = (e) => {
|
|
2581
|
+
const [t, s] = k(""), [i, r] = k(""), [n, o] = k(!1), [c, l] = k(), d = (T, A) => {
|
|
2578
2582
|
s(A);
|
|
2579
2583
|
}, h = () => t != null && t.trim().length > 0, g = () => c != null && c.trim().length > 0, _ = () => {
|
|
2580
|
-
|
|
2581
|
-
l(void 0), r(T),
|
|
2584
|
+
o(!0), e.onUrlFetch(t).then((T) => {
|
|
2585
|
+
l(void 0), r(T), o(!1), e.onChange(T, t);
|
|
2582
2586
|
}).catch((T) => {
|
|
2583
|
-
l(T.message),
|
|
2587
|
+
l(T.message), o(!1);
|
|
2584
2588
|
});
|
|
2585
2589
|
}, S = () => {
|
|
2586
2590
|
s(""), r(""), e.onChange(void 0, void 0);
|
|
2587
|
-
}, x = /* @__PURE__ */
|
|
2591
|
+
}, x = /* @__PURE__ */ v("div", { className: "url-upload-loading", style: lt, children: [
|
|
2588
2592
|
/* @__PURE__ */ a(ee, { size: "md", className: "spinner", style: { marginRight: "5px" } }),
|
|
2589
2593
|
/* @__PURE__ */ a("span", { className: "spinner-message", children: "Loading URL content" })
|
|
2590
2594
|
] });
|
|
2591
|
-
return /* @__PURE__ */
|
|
2592
|
-
/* @__PURE__ */
|
|
2595
|
+
return /* @__PURE__ */ v("div", { className: "url-upload", "data-testid": e.testId, children: [
|
|
2596
|
+
/* @__PURE__ */ v("div", { className: "url-upload-flex", style: { display: "flex" }, children: [
|
|
2593
2597
|
/* @__PURE__ */ a("div", { className: "url-upload-url", style: { flexGrow: 1 }, children: /* @__PURE__ */ a(
|
|
2594
|
-
|
|
2598
|
+
ae,
|
|
2595
2599
|
{
|
|
2596
2600
|
"data-testid": `${e.testId}-input`,
|
|
2597
2601
|
value: t,
|
|
@@ -2602,16 +2606,16 @@ const Ms = async (e, t) => {
|
|
|
2602
2606
|
"aria-label": "url input"
|
|
2603
2607
|
}
|
|
2604
2608
|
) }),
|
|
2605
|
-
/* @__PURE__ */ a("div", { className: "url-fetch-button", children: /* @__PURE__ */ a(
|
|
2606
|
-
/* @__PURE__ */ a("div", { className: "url-clear-button", children: /* @__PURE__ */ a(
|
|
2609
|
+
/* @__PURE__ */ a("div", { className: "url-fetch-button", children: /* @__PURE__ */ a(ce, { "data-testid": `${e.testId}-fetch`, variant: "control", isDisabled: !h(), onClick: _, children: "Fetch" }) }),
|
|
2610
|
+
/* @__PURE__ */ a("div", { className: "url-clear-button", children: /* @__PURE__ */ a(ce, { "data-testid": `${e.testId}-clear`, variant: "control", isDisabled: !h(), onClick: S, children: "Clear" }) })
|
|
2607
2611
|
] }),
|
|
2608
|
-
/* @__PURE__ */ a("div", { className: "url-upload-preview", children: /* @__PURE__ */
|
|
2609
|
-
/* @__PURE__ */ a(O, { condition: g, children: /* @__PURE__ */
|
|
2612
|
+
/* @__PURE__ */ a("div", { className: "url-upload-preview", children: /* @__PURE__ */ v(ue, { isLoading: n, loadingComponent: x, children: [
|
|
2613
|
+
/* @__PURE__ */ a(O, { condition: g, children: /* @__PURE__ */ v("div", { className: "url-upload-error", style: Ms, children: [
|
|
2610
2614
|
/* @__PURE__ */ a("div", { children: "Error getting content from URL." }),
|
|
2611
2615
|
/* @__PURE__ */ a("div", { children: c })
|
|
2612
2616
|
] }) }),
|
|
2613
2617
|
/* @__PURE__ */ a(O, { condition: !g(), children: /* @__PURE__ */ a(
|
|
2614
|
-
|
|
2618
|
+
bt,
|
|
2615
2619
|
{
|
|
2616
2620
|
"data-testid": `${e.testId}-preview`,
|
|
2617
2621
|
"aria-label": "url-content",
|
|
@@ -2622,12 +2626,12 @@ const Ms = async (e, t) => {
|
|
|
2622
2626
|
) })
|
|
2623
2627
|
] }) })
|
|
2624
2628
|
] });
|
|
2625
|
-
},
|
|
2626
|
-
const [t, s] =
|
|
2627
|
-
return
|
|
2629
|
+
}, ii = (e) => {
|
|
2630
|
+
const [t, s] = k(), [i, r] = k();
|
|
2631
|
+
return Ce(() => {
|
|
2628
2632
|
e.isOpen && (typeof e.frontendInfo == "function" ? e.frontendInfo().then(s) : s(e.frontendInfo), typeof e.backendInfo == "function" ? e.backendInfo().then(r) : r(e.backendInfo));
|
|
2629
2633
|
}, [e.isOpen]), /* @__PURE__ */ a(
|
|
2630
|
-
|
|
2634
|
+
kt,
|
|
2631
2635
|
{
|
|
2632
2636
|
className: "app-about-modal",
|
|
2633
2637
|
isOpen: e.isOpen,
|
|
@@ -2636,51 +2640,51 @@ const Ms = async (e, t) => {
|
|
|
2636
2640
|
brandImageSrc: e.brandImageSrc,
|
|
2637
2641
|
brandImageAlt: e.brandImageAlt,
|
|
2638
2642
|
"aria-label": e.brandImageAlt,
|
|
2639
|
-
children: /* @__PURE__ */
|
|
2640
|
-
/* @__PURE__ */ a(
|
|
2641
|
-
/* @__PURE__ */ a(
|
|
2642
|
-
/* @__PURE__ */ a(
|
|
2643
|
-
/* @__PURE__ */ a(
|
|
2644
|
-
/* @__PURE__ */ a(
|
|
2645
|
-
/* @__PURE__ */ a(
|
|
2646
|
-
/* @__PURE__ */ a(
|
|
2647
|
-
/* @__PURE__ */ a(
|
|
2648
|
-
/* @__PURE__ */ a(
|
|
2649
|
-
/* @__PURE__ */ a(
|
|
2643
|
+
children: /* @__PURE__ */ v(Tt, { className: "app-about-modal-content", style: { marginTop: "-25px" }, children: [
|
|
2644
|
+
/* @__PURE__ */ a(De, { component: Le.h2, children: "Web console info" }),
|
|
2645
|
+
/* @__PURE__ */ a(ue, { isLoading: t === void 0, children: /* @__PURE__ */ v(je, { component: "dl", children: [
|
|
2646
|
+
/* @__PURE__ */ a(b, { component: "dt", children: "Project" }),
|
|
2647
|
+
/* @__PURE__ */ a(b, { component: "dd", children: /* @__PURE__ */ a("a", { href: t == null ? void 0 : t.url, target: "_blank", children: t == null ? void 0 : t.name }) }),
|
|
2648
|
+
/* @__PURE__ */ a(b, { component: "dt", children: "Version" }),
|
|
2649
|
+
/* @__PURE__ */ a(b, { component: "dd", children: t == null ? void 0 : t.version }),
|
|
2650
|
+
/* @__PURE__ */ a(b, { component: "dt", children: "Built on" }),
|
|
2651
|
+
/* @__PURE__ */ a(b, { component: "dd", children: /* @__PURE__ */ a(Ie, { date: t == null ? void 0 : t.builtOn, format: "locale" }) }),
|
|
2652
|
+
/* @__PURE__ */ a(b, { component: "dt", children: "Digest" }),
|
|
2653
|
+
/* @__PURE__ */ a(b, { component: "dd", children: t == null ? void 0 : t.digest })
|
|
2650
2654
|
] }) }),
|
|
2651
|
-
/* @__PURE__ */ a(
|
|
2652
|
-
/* @__PURE__ */ a(
|
|
2653
|
-
/* @__PURE__ */ a(
|
|
2654
|
-
/* @__PURE__ */ a(
|
|
2655
|
-
/* @__PURE__ */ a(
|
|
2656
|
-
/* @__PURE__ */ a(
|
|
2657
|
-
/* @__PURE__ */ a(
|
|
2658
|
-
/* @__PURE__ */ a(
|
|
2659
|
-
/* @__PURE__ */ a(
|
|
2660
|
-
/* @__PURE__ */ a(
|
|
2655
|
+
/* @__PURE__ */ a(De, { style: { marginTop: "40px" }, component: Le.h2, children: e.backendLabel }),
|
|
2656
|
+
/* @__PURE__ */ a(ue, { isLoading: i === void 0, children: /* @__PURE__ */ v(je, { component: "dl", children: [
|
|
2657
|
+
/* @__PURE__ */ a(b, { component: "dt", children: "Name" }),
|
|
2658
|
+
/* @__PURE__ */ a(b, { component: "dd", children: (i == null ? void 0 : i.name) || "" }),
|
|
2659
|
+
/* @__PURE__ */ a(b, { component: "dt", children: "Description" }),
|
|
2660
|
+
/* @__PURE__ */ a(b, { component: "dd", children: (i == null ? void 0 : i.description) || "" }),
|
|
2661
|
+
/* @__PURE__ */ a(b, { component: "dt", children: "Version" }),
|
|
2662
|
+
/* @__PURE__ */ a(b, { component: "dd", children: (i == null ? void 0 : i.version) || "" }),
|
|
2663
|
+
/* @__PURE__ */ a(b, { component: "dt", children: "Built on" }),
|
|
2664
|
+
/* @__PURE__ */ a(b, { component: "dd", children: /* @__PURE__ */ a(Ie, { date: i == null ? void 0 : i.builtOn, format: "locale" }) })
|
|
2661
2665
|
] }) })
|
|
2662
2666
|
] })
|
|
2663
2667
|
}
|
|
2664
2668
|
);
|
|
2665
|
-
},
|
|
2666
|
-
const [t, s] =
|
|
2669
|
+
}, Fs = (e) => {
|
|
2670
|
+
const [t, s] = k({
|
|
2667
2671
|
username: "",
|
|
2668
2672
|
password: ""
|
|
2669
2673
|
}), i = () => {
|
|
2670
2674
|
e.onLogin(t);
|
|
2671
|
-
}, r = (
|
|
2675
|
+
}, r = (o, c) => {
|
|
2672
2676
|
s({
|
|
2673
2677
|
...t,
|
|
2674
2678
|
username: c
|
|
2675
2679
|
});
|
|
2676
|
-
},
|
|
2680
|
+
}, n = (o, c) => {
|
|
2677
2681
|
s({
|
|
2678
2682
|
...t,
|
|
2679
2683
|
password: c
|
|
2680
2684
|
});
|
|
2681
2685
|
};
|
|
2682
2686
|
return /* @__PURE__ */ a(
|
|
2683
|
-
|
|
2687
|
+
Ue,
|
|
2684
2688
|
{
|
|
2685
2689
|
title: "Login",
|
|
2686
2690
|
variant: "small",
|
|
@@ -2691,16 +2695,16 @@ const Ms = async (e, t) => {
|
|
|
2691
2695
|
"aria-label": "please-wait-modal",
|
|
2692
2696
|
style: { marginTop: "-15px" },
|
|
2693
2697
|
actions: [
|
|
2694
|
-
/* @__PURE__ */ a(
|
|
2698
|
+
/* @__PURE__ */ a(ce, { variant: "primary", "data-testid": "modal-btn-login", onClick: i, isDisabled: (t == null ? void 0 : t.username) === "" || (t == null ? void 0 : t.password) === "", children: "Login" }, "login")
|
|
2695
2699
|
],
|
|
2696
|
-
children: /* @__PURE__ */
|
|
2700
|
+
children: /* @__PURE__ */ v(Be, { children: [
|
|
2697
2701
|
/* @__PURE__ */ a(
|
|
2698
|
-
|
|
2702
|
+
He,
|
|
2699
2703
|
{
|
|
2700
2704
|
label: "Username",
|
|
2701
2705
|
fieldId: "form-username",
|
|
2702
2706
|
children: /* @__PURE__ */ a(
|
|
2703
|
-
|
|
2707
|
+
ae,
|
|
2704
2708
|
{
|
|
2705
2709
|
isRequired: !0,
|
|
2706
2710
|
type: "text",
|
|
@@ -2715,12 +2719,12 @@ const Ms = async (e, t) => {
|
|
|
2715
2719
|
}
|
|
2716
2720
|
),
|
|
2717
2721
|
/* @__PURE__ */ a(
|
|
2718
|
-
|
|
2722
|
+
He,
|
|
2719
2723
|
{
|
|
2720
2724
|
label: "Password",
|
|
2721
2725
|
fieldId: "form-password",
|
|
2722
2726
|
children: /* @__PURE__ */ a(
|
|
2723
|
-
|
|
2727
|
+
ae,
|
|
2724
2728
|
{
|
|
2725
2729
|
isRequired: !0,
|
|
2726
2730
|
type: "text",
|
|
@@ -2729,7 +2733,7 @@ const Ms = async (e, t) => {
|
|
|
2729
2733
|
name: "form-password",
|
|
2730
2734
|
value: t == null ? void 0 : t.password,
|
|
2731
2735
|
placeholder: "Password",
|
|
2732
|
-
onChange:
|
|
2736
|
+
onChange: n
|
|
2733
2737
|
}
|
|
2734
2738
|
)
|
|
2735
2739
|
}
|
|
@@ -2737,8 +2741,8 @@ const Ms = async (e, t) => {
|
|
|
2737
2741
|
] })
|
|
2738
2742
|
}
|
|
2739
2743
|
);
|
|
2740
|
-
},
|
|
2741
|
-
|
|
2744
|
+
}, ri = (e) => /* @__PURE__ */ v(
|
|
2745
|
+
Ue,
|
|
2742
2746
|
{
|
|
2743
2747
|
title: "Please Wait",
|
|
2744
2748
|
variant: "small",
|
|
@@ -2753,8 +2757,8 @@ const Ms = async (e, t) => {
|
|
|
2753
2757
|
/* @__PURE__ */ a("span", { className: "message", style: { fontSize: "15px", color: "#333", marginLeft: "10px" }, children: e.message })
|
|
2754
2758
|
]
|
|
2755
2759
|
}
|
|
2756
|
-
),
|
|
2757
|
-
|
|
2760
|
+
), ni = (e) => /* @__PURE__ */ a(
|
|
2761
|
+
Ue,
|
|
2758
2762
|
{
|
|
2759
2763
|
title: e.title,
|
|
2760
2764
|
variant: "small",
|
|
@@ -2763,26 +2767,26 @@ const Ms = async (e, t) => {
|
|
|
2763
2767
|
onClose: e.onClose,
|
|
2764
2768
|
className: "progress pf-m-redhat-font",
|
|
2765
2769
|
"aria-label": "progress-modal",
|
|
2766
|
-
children: /* @__PURE__ */ a(
|
|
2770
|
+
children: /* @__PURE__ */ a(It, { title: e.message, value: e.progress })
|
|
2767
2771
|
}
|
|
2768
|
-
),
|
|
2769
|
-
const [t, s] =
|
|
2772
|
+
), oi = (e) => {
|
|
2773
|
+
const [t, s] = k(
|
|
2770
2774
|
0
|
|
2771
2775
|
/* AUTHENTICATING */
|
|
2772
|
-
), i =
|
|
2773
|
-
console.info("[ApplicationAuth] Using username and password."), i.login(
|
|
2776
|
+
), i = ct(), r = (n) => {
|
|
2777
|
+
console.info("[ApplicationAuth] Using username and password."), i.login(n.username, n.password), s(
|
|
2774
2778
|
1
|
|
2775
2779
|
/* AUTHENTICATED */
|
|
2776
2780
|
);
|
|
2777
2781
|
};
|
|
2778
|
-
return
|
|
2782
|
+
return Ce(() => {
|
|
2779
2783
|
i.isOidcAuthEnabled() ? i.login("", "").then(() => {
|
|
2780
2784
|
console.info("[ApplicationAuth] Authentication successful."), s(
|
|
2781
2785
|
1
|
|
2782
2786
|
/* AUTHENTICATED */
|
|
2783
2787
|
);
|
|
2784
|
-
}).catch((
|
|
2785
|
-
console.error("[ApplicationAuth] Authentication failed: ",
|
|
2788
|
+
}).catch((n) => {
|
|
2789
|
+
console.error("[ApplicationAuth] Authentication failed: ", n), s(
|
|
2786
2790
|
2
|
|
2787
2791
|
/* AUTHENTICATION_FAILED */
|
|
2788
2792
|
);
|
|
@@ -2790,123 +2794,123 @@ const Ms = async (e, t) => {
|
|
|
2790
2794
|
1
|
|
2791
2795
|
/* AUTHENTICATED */
|
|
2792
2796
|
);
|
|
2793
|
-
}, []), /* @__PURE__ */
|
|
2794
|
-
/* @__PURE__ */ a(O, { condition: t === 0 && i.isOidcAuthEnabled(), children: /* @__PURE__ */
|
|
2795
|
-
/* @__PURE__ */ a(
|
|
2796
|
-
/* @__PURE__ */ a(
|
|
2797
|
+
}, []), /* @__PURE__ */ v(Re, { children: [
|
|
2798
|
+
/* @__PURE__ */ a(O, { condition: t === 0 && i.isOidcAuthEnabled(), children: /* @__PURE__ */ v(ne, { children: [
|
|
2799
|
+
/* @__PURE__ */ a(oe, { titleText: "Loading", headingLevel: "h4" }),
|
|
2800
|
+
/* @__PURE__ */ a(me, { children: /* @__PURE__ */ a(ee, { size: "xl", "aria-label": "Loading spinner" }) })
|
|
2797
2801
|
] }) }),
|
|
2798
|
-
/* @__PURE__ */ a(O, { condition: t === 0 && i.isBasicAuthEnabled(), children: /* @__PURE__ */ a(
|
|
2799
|
-
/* @__PURE__ */ a(O, { condition: t === 2, children: /* @__PURE__ */
|
|
2800
|
-
/* @__PURE__ */ a(
|
|
2801
|
-
/* @__PURE__ */ a(
|
|
2802
|
+
/* @__PURE__ */ a(O, { condition: t === 0 && i.isBasicAuthEnabled(), children: /* @__PURE__ */ a(Fs, { onLogin: r }) }),
|
|
2803
|
+
/* @__PURE__ */ a(O, { condition: t === 2, children: /* @__PURE__ */ v(ne, { children: [
|
|
2804
|
+
/* @__PURE__ */ a(oe, { titleText: "Empty state", headingLevel: "h4", icon: /* @__PURE__ */ a(ze, { icon: Dt }) }),
|
|
2805
|
+
/* @__PURE__ */ a(me, { children: "Authentication failed." })
|
|
2802
2806
|
] }) }),
|
|
2803
2807
|
/* @__PURE__ */ a(O, { condition: t === 1, children: e.children })
|
|
2804
2808
|
] });
|
|
2805
|
-
},
|
|
2806
|
-
const t =
|
|
2809
|
+
}, ai = (e) => {
|
|
2810
|
+
const t = ct();
|
|
2807
2811
|
return (() => {
|
|
2808
2812
|
let i = !0;
|
|
2809
2813
|
return e.enabled !== void 0 && (i = i && (t.isOidcAuthEnabled() === e.enabled || t.isBasicAuthEnabled() === e.enabled)), i;
|
|
2810
|
-
})() ? /* @__PURE__ */ a(
|
|
2811
|
-
},
|
|
2814
|
+
})() ? /* @__PURE__ */ a($.Fragment, { children: e.children }) : /* @__PURE__ */ a($.Fragment, {});
|
|
2815
|
+
}, ci = (e) => /* @__PURE__ */ a(Et, { categoryName: e.categoryName || "Filters", isClosable: !0, onClick: e.onClearAllCriteria, children: e.criteria.map((t, s) => /* @__PURE__ */ v(Ct, { onClick: () => e.onRemoveCriteria(t), children: [
|
|
2812
2816
|
/* @__PURE__ */ a("b", { children: t.filterBy.label }),
|
|
2813
2817
|
/* @__PURE__ */ a("span", { children: ": " }),
|
|
2814
2818
|
/* @__PURE__ */ a("span", { children: t.filterValue })
|
|
2815
|
-
] }, s)) }),
|
|
2816
|
-
const [t, s] =
|
|
2817
|
-
|
|
2819
|
+
] }, s)) }), li = (e) => {
|
|
2820
|
+
const [t, s] = k(e.filterTypes[0]), [i, r] = k(""), n = (o) => {
|
|
2821
|
+
o && o.preventDefault(), e.onAddCriteria({
|
|
2818
2822
|
filterBy: t,
|
|
2819
2823
|
filterValue: i
|
|
2820
2824
|
}), r("");
|
|
2821
2825
|
};
|
|
2822
|
-
return /* @__PURE__ */ a(
|
|
2826
|
+
return /* @__PURE__ */ a(Be, { onSubmit: n, children: /* @__PURE__ */ v(Pt, { children: [
|
|
2823
2827
|
/* @__PURE__ */ a(
|
|
2824
|
-
|
|
2828
|
+
$s,
|
|
2825
2829
|
{
|
|
2826
2830
|
value: t,
|
|
2827
2831
|
items: e.filterTypes,
|
|
2828
2832
|
testId: "chip-filter-select",
|
|
2829
2833
|
toggleClassname: "chip-filter-toggle",
|
|
2830
2834
|
onSelect: s,
|
|
2831
|
-
itemToTestId: (
|
|
2832
|
-
itemToString: (
|
|
2835
|
+
itemToTestId: (o) => o.testId,
|
|
2836
|
+
itemToString: (o) => o.label
|
|
2833
2837
|
}
|
|
2834
2838
|
),
|
|
2835
2839
|
/* @__PURE__ */ a(
|
|
2836
|
-
|
|
2840
|
+
ae,
|
|
2837
2841
|
{
|
|
2838
2842
|
name: "filterValue",
|
|
2839
2843
|
id: "filterValue",
|
|
2840
2844
|
type: "search",
|
|
2841
2845
|
value: i,
|
|
2842
|
-
onChange: (
|
|
2846
|
+
onChange: (o, c) => r(c),
|
|
2843
2847
|
"data-testid": "chip-filter-value",
|
|
2844
2848
|
"aria-label": "search input"
|
|
2845
2849
|
}
|
|
2846
2850
|
),
|
|
2847
2851
|
/* @__PURE__ */ a(
|
|
2848
|
-
|
|
2852
|
+
ce,
|
|
2849
2853
|
{
|
|
2850
|
-
variant:
|
|
2851
|
-
onClick:
|
|
2854
|
+
variant: Rt.control,
|
|
2855
|
+
onClick: n,
|
|
2852
2856
|
"data-testid": "chip-filter-search",
|
|
2853
2857
|
"aria-label": "search button for search input",
|
|
2854
|
-
children: /* @__PURE__ */ a(
|
|
2858
|
+
children: /* @__PURE__ */ a(Lt, {})
|
|
2855
2859
|
}
|
|
2856
2860
|
)
|
|
2857
2861
|
] }) });
|
|
2858
2862
|
};
|
|
2859
|
-
function
|
|
2860
|
-
return /* @__PURE__ */ a(
|
|
2861
|
-
|
|
2863
|
+
function di() {
|
|
2864
|
+
return /* @__PURE__ */ a(ne, { children: /* @__PURE__ */ a(
|
|
2865
|
+
oe,
|
|
2862
2866
|
{
|
|
2863
2867
|
titleText: "Loading",
|
|
2864
2868
|
headingLevel: "h4",
|
|
2865
|
-
icon: /* @__PURE__ */ a(
|
|
2869
|
+
icon: /* @__PURE__ */ a(ze, { icon: ee })
|
|
2866
2870
|
}
|
|
2867
2871
|
) });
|
|
2868
2872
|
}
|
|
2869
|
-
function
|
|
2873
|
+
function hi({
|
|
2870
2874
|
itemCount: e,
|
|
2871
2875
|
page: t,
|
|
2872
2876
|
perPage: s,
|
|
2873
2877
|
isCompact: i = !1,
|
|
2874
2878
|
onChange: r,
|
|
2875
|
-
variant:
|
|
2879
|
+
variant: n = xt.top
|
|
2876
2880
|
}) {
|
|
2877
2881
|
return /* @__PURE__ */ a(
|
|
2878
|
-
|
|
2882
|
+
Ut,
|
|
2879
2883
|
{
|
|
2880
2884
|
itemCount: e,
|
|
2881
2885
|
page: t,
|
|
2882
2886
|
perPage: s,
|
|
2883
|
-
onSetPage: (
|
|
2884
|
-
onPerPageSelect: (
|
|
2885
|
-
variant:
|
|
2887
|
+
onSetPage: (o, c) => r(c, s),
|
|
2888
|
+
onPerPageSelect: (o, c) => r(1, c),
|
|
2889
|
+
variant: n,
|
|
2886
2890
|
isCompact: i
|
|
2887
2891
|
}
|
|
2888
2892
|
);
|
|
2889
2893
|
}
|
|
2890
|
-
function
|
|
2891
|
-
const i = new Array(e).fill(0).map((
|
|
2892
|
-
const c = s(
|
|
2894
|
+
function Ws({ columns: e, rows: t, getTd: s = () => xe }) {
|
|
2895
|
+
const i = new Array(e).fill(0).map((n, o) => {
|
|
2896
|
+
const c = s(o);
|
|
2893
2897
|
return /* @__PURE__ */ a(c, { children: /* @__PURE__ */ a(
|
|
2894
|
-
|
|
2898
|
+
At,
|
|
2895
2899
|
{
|
|
2896
|
-
screenreaderText:
|
|
2900
|
+
screenreaderText: o === 0 ? "Loading data" : void 0
|
|
2897
2901
|
}
|
|
2898
|
-
) }, `cell_${
|
|
2899
|
-
}), r = new Array(t).fill(0).map((
|
|
2900
|
-
return /* @__PURE__ */ a(
|
|
2902
|
+
) }, `cell_${o}`);
|
|
2903
|
+
}), r = new Array(t).fill(0).map((n, o) => /* @__PURE__ */ a(le, { children: i }, `row_${o}`));
|
|
2904
|
+
return /* @__PURE__ */ a(Re, { children: r });
|
|
2901
2905
|
}
|
|
2902
|
-
const
|
|
2906
|
+
const gi = ({
|
|
2903
2907
|
ariaLabel: e,
|
|
2904
2908
|
minimumColumnWidth: t = 250,
|
|
2905
2909
|
columns: s,
|
|
2906
2910
|
data: i,
|
|
2907
2911
|
renderHeader: r,
|
|
2908
|
-
renderCell:
|
|
2909
|
-
renderActions:
|
|
2912
|
+
renderCell: n,
|
|
2913
|
+
renderActions: o,
|
|
2910
2914
|
isColumnSortable: c,
|
|
2911
2915
|
isRowDeleted: l,
|
|
2912
2916
|
isRowSelected: d,
|
|
@@ -2918,24 +2922,24 @@ const yi = ({
|
|
|
2918
2922
|
children: T,
|
|
2919
2923
|
variant: A
|
|
2920
2924
|
}) => {
|
|
2921
|
-
const [I, N] =
|
|
2925
|
+
const [I, N] = k(1e3);
|
|
2922
2926
|
let P;
|
|
2923
|
-
const
|
|
2927
|
+
const M = ({ width: f }) => {
|
|
2924
2928
|
P && cancelAnimationFrame(P), f && (P = requestAnimationFrame(() => {
|
|
2925
2929
|
N(f);
|
|
2926
2930
|
}));
|
|
2927
|
-
}, { ref: R } =
|
|
2928
|
-
(f) =>
|
|
2929
|
-
[s,
|
|
2930
|
-
), U =
|
|
2931
|
-
const q =
|
|
2931
|
+
}, { ref: R } = Wt({ onResize: M }), m = I >= 576, E = Ne(
|
|
2932
|
+
(f) => m && f !== 0 && f !== s.length - 1,
|
|
2933
|
+
[s, m]
|
|
2934
|
+
), U = qe(() => s.map((f, w) => {
|
|
2935
|
+
const q = re(
|
|
2932
2936
|
({ children: J, ...K }, Q) => /* @__PURE__ */ a(
|
|
2933
|
-
|
|
2937
|
+
dt,
|
|
2934
2938
|
{
|
|
2935
|
-
position:
|
|
2939
|
+
position: w,
|
|
2936
2940
|
tableWidth: I,
|
|
2937
2941
|
columnWidth: t,
|
|
2938
|
-
canHide: E(
|
|
2942
|
+
canHide: E(w),
|
|
2939
2943
|
sort: c ? c(f) : void 0,
|
|
2940
2944
|
...K,
|
|
2941
2945
|
ref: Q,
|
|
@@ -2947,7 +2951,7 @@ const yi = ({
|
|
|
2947
2951
|
Th: q,
|
|
2948
2952
|
key: `header_${f}`,
|
|
2949
2953
|
column: f,
|
|
2950
|
-
colIndex:
|
|
2954
|
+
colIndex: w
|
|
2951
2955
|
});
|
|
2952
2956
|
}), [
|
|
2953
2957
|
E,
|
|
@@ -2956,11 +2960,11 @@ const yi = ({
|
|
|
2956
2960
|
t,
|
|
2957
2961
|
r,
|
|
2958
2962
|
I
|
|
2959
|
-
]),
|
|
2963
|
+
]), y = Ne(
|
|
2960
2964
|
(f) => {
|
|
2961
|
-
const
|
|
2965
|
+
const w = re(
|
|
2962
2966
|
({ children: q, ...J }, K) => /* @__PURE__ */ a(
|
|
2963
|
-
|
|
2967
|
+
Ee,
|
|
2964
2968
|
{
|
|
2965
2969
|
position: f,
|
|
2966
2970
|
tableWidth: I,
|
|
@@ -2972,320 +2976,162 @@ const yi = ({
|
|
|
2972
2976
|
}
|
|
2973
2977
|
)
|
|
2974
2978
|
);
|
|
2975
|
-
return
|
|
2979
|
+
return w.displayName = "ResponsiveTdCurried", w;
|
|
2976
2980
|
},
|
|
2977
2981
|
[E, t, I]
|
|
2978
|
-
), z =
|
|
2979
|
-
() => s.map((f,
|
|
2980
|
-
[s,
|
|
2982
|
+
), z = qe(
|
|
2983
|
+
() => s.map((f, w) => y(w)),
|
|
2984
|
+
[s, y]
|
|
2981
2985
|
);
|
|
2982
|
-
return /* @__PURE__ */
|
|
2983
|
-
|
|
2986
|
+
return /* @__PURE__ */ v(
|
|
2987
|
+
Ht,
|
|
2984
2988
|
{
|
|
2985
2989
|
"aria-label": e,
|
|
2986
2990
|
gridBreakPoint: "",
|
|
2987
2991
|
ref: R,
|
|
2988
|
-
className:
|
|
2992
|
+
className: m ? "" : "pf-m-grid",
|
|
2989
2993
|
ouiaId: x,
|
|
2990
2994
|
variant: A,
|
|
2991
2995
|
children: [
|
|
2992
|
-
/* @__PURE__ */ a(
|
|
2993
|
-
/* @__PURE__ */
|
|
2996
|
+
/* @__PURE__ */ a($t, { children: /* @__PURE__ */ a(le, { children: U }) }),
|
|
2997
|
+
/* @__PURE__ */ v(Mt, { children: [
|
|
2994
2998
|
i === void 0 && /* @__PURE__ */ a(
|
|
2995
|
-
|
|
2999
|
+
Ws,
|
|
2996
3000
|
{
|
|
2997
3001
|
columns: s.length,
|
|
2998
3002
|
rows: h,
|
|
2999
|
-
getTd:
|
|
3003
|
+
getTd: y
|
|
3000
3004
|
}
|
|
3001
3005
|
),
|
|
3002
|
-
i == null ? void 0 : i.map((f,
|
|
3003
|
-
const q = l !== void 0 && l({ row: f, rowIndex:
|
|
3006
|
+
i == null ? void 0 : i.map((f, w) => {
|
|
3007
|
+
const q = l !== void 0 && l({ row: f, rowIndex: w }), J = d !== void 0 && d({ row: f, rowIndex: w }), K = !q && g ? () => g({ row: f, rowIndex: w }) : void 0, Q = s.map((X, te) => n({
|
|
3004
3008
|
Td: z[te],
|
|
3005
|
-
key: `row_${
|
|
3009
|
+
key: `row_${w}_cell_${X}`,
|
|
3006
3010
|
column: X,
|
|
3007
3011
|
colIndex: te,
|
|
3008
|
-
rowIndex:
|
|
3012
|
+
rowIndex: w,
|
|
3009
3013
|
row: f
|
|
3010
|
-
})),
|
|
3011
|
-
|
|
3014
|
+
})), _e = !q && o && /* @__PURE__ */ a(
|
|
3015
|
+
Ee,
|
|
3012
3016
|
{
|
|
3013
3017
|
position: s.length,
|
|
3014
3018
|
tableWidth: I,
|
|
3015
3019
|
columnWidth: t,
|
|
3016
3020
|
canHide: !1,
|
|
3017
3021
|
isActionCell: !0,
|
|
3018
|
-
"data-testid": _ ? _({ row: f, rowIndex:
|
|
3019
|
-
children:
|
|
3022
|
+
"data-testid": _ ? _({ row: f, rowIndex: w }) : `actions-for-row-${w}`,
|
|
3023
|
+
children: o({ rowIndex: w, row: f, ActionsColumn: Ft })
|
|
3020
3024
|
}
|
|
3021
3025
|
);
|
|
3022
|
-
return /* @__PURE__ */
|
|
3023
|
-
|
|
3026
|
+
return /* @__PURE__ */ v(
|
|
3027
|
+
ht,
|
|
3024
3028
|
{
|
|
3025
3029
|
isDeleted: q,
|
|
3026
3030
|
isSelected: J,
|
|
3027
3031
|
onClick: K,
|
|
3028
|
-
rowOuiaId: S == null ? void 0 : S({ row: f, rowIndex:
|
|
3032
|
+
rowOuiaId: S == null ? void 0 : S({ row: f, rowIndex: w }),
|
|
3029
3033
|
children: [
|
|
3030
3034
|
Q,
|
|
3031
|
-
|
|
3035
|
+
_e
|
|
3032
3036
|
]
|
|
3033
3037
|
},
|
|
3034
|
-
`row_${
|
|
3038
|
+
`row_${w}`
|
|
3035
3039
|
);
|
|
3036
3040
|
}),
|
|
3037
|
-
(i == null ? void 0 : i.length) === 0 && /* @__PURE__ */ a(
|
|
3041
|
+
(i == null ? void 0 : i.length) === 0 && /* @__PURE__ */ a(le, { children: /* @__PURE__ */ a(xe, { colSpan: s.length, children: T }) })
|
|
3038
3042
|
] })
|
|
3039
3043
|
]
|
|
3040
3044
|
}
|
|
3041
3045
|
);
|
|
3042
|
-
},
|
|
3043
|
-
|
|
3046
|
+
}, dt = Pe(
|
|
3047
|
+
re((e, t) => {
|
|
3044
3048
|
const {
|
|
3045
3049
|
tableWidth: s,
|
|
3046
3050
|
columnWidth: i,
|
|
3047
3051
|
position: r,
|
|
3048
|
-
canHide:
|
|
3049
|
-
className:
|
|
3052
|
+
canHide: n,
|
|
3053
|
+
className: o = "",
|
|
3050
3054
|
children: c,
|
|
3051
3055
|
...l
|
|
3052
|
-
} = e, d =
|
|
3056
|
+
} = e, d = n && s < i * (r + 1) ? "pf-m-hidden" : "pf-m-visible";
|
|
3053
3057
|
return /* @__PURE__ */ a(
|
|
3054
|
-
|
|
3058
|
+
jt,
|
|
3055
3059
|
{
|
|
3056
3060
|
ref: t,
|
|
3057
|
-
className: `${d} ${
|
|
3061
|
+
className: `${d} ${o}`,
|
|
3058
3062
|
...l,
|
|
3059
3063
|
children: c
|
|
3060
3064
|
}
|
|
3061
3065
|
);
|
|
3062
3066
|
})
|
|
3063
3067
|
);
|
|
3064
|
-
|
|
3065
|
-
const
|
|
3066
|
-
|
|
3068
|
+
dt.displayName = "ResponsiveTh";
|
|
3069
|
+
const Ee = Pe(
|
|
3070
|
+
re((e, t) => {
|
|
3067
3071
|
const {
|
|
3068
3072
|
tableWidth: s,
|
|
3069
3073
|
columnWidth: i,
|
|
3070
3074
|
position: r,
|
|
3071
|
-
canHide:
|
|
3072
|
-
className:
|
|
3075
|
+
canHide: n,
|
|
3076
|
+
className: o = "",
|
|
3073
3077
|
children: c,
|
|
3074
3078
|
...l
|
|
3075
|
-
} = e, d =
|
|
3079
|
+
} = e, d = n && s < i * (r + 1) ? "pf-m-hidden" : "pf-m-visible";
|
|
3076
3080
|
return /* @__PURE__ */ a(
|
|
3077
|
-
|
|
3081
|
+
xe,
|
|
3078
3082
|
{
|
|
3079
3083
|
ref: t,
|
|
3080
|
-
className: `${d} ${
|
|
3084
|
+
className: `${d} ${o}`,
|
|
3081
3085
|
...l,
|
|
3082
3086
|
children: c
|
|
3083
3087
|
}
|
|
3084
3088
|
);
|
|
3085
3089
|
})
|
|
3086
3090
|
);
|
|
3087
|
-
|
|
3088
|
-
const
|
|
3091
|
+
Ee.displayName = "ResponsiveTd";
|
|
3092
|
+
const ht = Pe(
|
|
3089
3093
|
({ isDeleted: e, isSelected: t, onClick: s, children: i, rowOuiaId: r }) => /* @__PURE__ */ a(
|
|
3090
|
-
|
|
3094
|
+
le,
|
|
3091
3095
|
{
|
|
3092
|
-
onRowClick: (
|
|
3093
|
-
(
|
|
3096
|
+
onRowClick: (n) => {
|
|
3097
|
+
(n == null ? void 0 : n.target) instanceof HTMLElement && (["a", "button"].includes(n.target.tagName.toLowerCase()) || s && s());
|
|
3094
3098
|
},
|
|
3095
3099
|
ouiaId: r,
|
|
3096
3100
|
isRowSelected: t,
|
|
3097
3101
|
className: e ? "mas--ResponsiveTable__Tr--deleted" : void 0,
|
|
3098
|
-
"data-testid": [t && "row-selected", e && "row-deleted"].filter((
|
|
3102
|
+
"data-testid": [t && "row-selected", e && "row-deleted"].filter((n) => !!n).join(" "),
|
|
3099
3103
|
role: "row",
|
|
3100
3104
|
children: i
|
|
3101
3105
|
}
|
|
3102
3106
|
)
|
|
3103
3107
|
);
|
|
3104
|
-
|
|
3105
|
-
const Xs = ({ label: e, onSearch: t }) => {
|
|
3106
|
-
const s = (i, r, o) => {
|
|
3107
|
-
t(r);
|
|
3108
|
-
};
|
|
3109
|
-
return /* @__PURE__ */ a(
|
|
3110
|
-
Nt,
|
|
3111
|
-
{
|
|
3112
|
-
placeholder: `Filter by ${e}`,
|
|
3113
|
-
onSearch: s
|
|
3114
|
-
}
|
|
3115
|
-
);
|
|
3116
|
-
};
|
|
3117
|
-
function ze({
|
|
3118
|
-
options: e,
|
|
3119
|
-
value: t,
|
|
3120
|
-
onChange: s,
|
|
3121
|
-
ouiaId: i
|
|
3122
|
-
}) {
|
|
3123
|
-
const [r, o] = y(!1);
|
|
3124
|
-
return /* @__PURE__ */ a(
|
|
3125
|
-
xe,
|
|
3126
|
-
{
|
|
3127
|
-
toggle: (c) => /* @__PURE__ */ a(
|
|
3128
|
-
_e,
|
|
3129
|
-
{
|
|
3130
|
-
ref: c,
|
|
3131
|
-
onClick: () => o((l) => !l),
|
|
3132
|
-
isExpanded: r,
|
|
3133
|
-
variant: "plain",
|
|
3134
|
-
children: /* @__PURE__ */ a(Ye, {})
|
|
3135
|
-
}
|
|
3136
|
-
),
|
|
3137
|
-
"aria-label": "table:select_filter",
|
|
3138
|
-
selected: t,
|
|
3139
|
-
isOpen: r,
|
|
3140
|
-
onSelect: (c, l) => {
|
|
3141
|
-
s(l), o(!1);
|
|
3142
|
-
},
|
|
3143
|
-
ouiaId: i,
|
|
3144
|
-
children: /* @__PURE__ */ a(qt, { children: e.map((c, l) => /* @__PURE__ */ a(Ae, { value: c, children: c }, l)) })
|
|
3145
|
-
}
|
|
3146
|
-
);
|
|
3147
|
-
}
|
|
3148
|
-
function Ys({
|
|
3149
|
-
label: e,
|
|
3150
|
-
chips: t,
|
|
3151
|
-
options: s,
|
|
3152
|
-
onToggle: i
|
|
3153
|
-
}) {
|
|
3154
|
-
const [r, o] = y(!1);
|
|
3155
|
-
return /* @__PURE__ */ a(
|
|
3156
|
-
xe,
|
|
3157
|
-
{
|
|
3158
|
-
"aria-label": e,
|
|
3159
|
-
onSelect: (n, c) => {
|
|
3160
|
-
i(c);
|
|
3161
|
-
},
|
|
3162
|
-
selected: t,
|
|
3163
|
-
isOpen: r,
|
|
3164
|
-
toggle: (n) => /* @__PURE__ */ a(
|
|
3165
|
-
_e,
|
|
3166
|
-
{
|
|
3167
|
-
ref: n,
|
|
3168
|
-
onClick: () => o((c) => !c),
|
|
3169
|
-
isExpanded: r,
|
|
3170
|
-
style: {
|
|
3171
|
-
width: "200px"
|
|
3172
|
-
},
|
|
3173
|
-
children: `Filter by ${e}`
|
|
3174
|
-
}
|
|
3175
|
-
),
|
|
3176
|
-
children: Object.entries(s).map(([n, c]) => /* @__PURE__ */ a(Ae, { value: n, hasCheckbox: !0, children: c }, n))
|
|
3177
|
-
}
|
|
3178
|
-
);
|
|
3179
|
-
}
|
|
3180
|
-
function bi({ filters: e, breakpoint: t = "md" }) {
|
|
3181
|
-
const s = Object.keys(e), [i, r] = y(s[0]), o = (n, c) => {
|
|
3182
|
-
switch (c.type) {
|
|
3183
|
-
case "search":
|
|
3184
|
-
return /* @__PURE__ */ a(
|
|
3185
|
-
Xs,
|
|
3186
|
-
{
|
|
3187
|
-
onSearch: c.onSearch,
|
|
3188
|
-
label: n,
|
|
3189
|
-
validate: c.validate,
|
|
3190
|
-
errorMessage: c.errorMessage
|
|
3191
|
-
}
|
|
3192
|
-
);
|
|
3193
|
-
case "checkbox":
|
|
3194
|
-
return /* @__PURE__ */ a(
|
|
3195
|
-
Ys,
|
|
3196
|
-
{
|
|
3197
|
-
chips: c.chips,
|
|
3198
|
-
options: c.options,
|
|
3199
|
-
onToggle: c.onToggle,
|
|
3200
|
-
label: n
|
|
3201
|
-
}
|
|
3202
|
-
);
|
|
3203
|
-
}
|
|
3204
|
-
};
|
|
3205
|
-
return /* @__PURE__ */ m(ue, { children: [
|
|
3206
|
-
/* @__PURE__ */ a(
|
|
3207
|
-
Dt,
|
|
3208
|
-
{
|
|
3209
|
-
variant: "search-filter",
|
|
3210
|
-
visibility: { default: "hidden", [t]: "visible" },
|
|
3211
|
-
"data-testid": "large-viewport-toolbar",
|
|
3212
|
-
children: /* @__PURE__ */ m(Xe, { children: [
|
|
3213
|
-
s.length > 1 && /* @__PURE__ */ a(
|
|
3214
|
-
ze,
|
|
3215
|
-
{
|
|
3216
|
-
options: s,
|
|
3217
|
-
value: i,
|
|
3218
|
-
onChange: r,
|
|
3219
|
-
ouiaId: "chip-filter-selector-large-viewport"
|
|
3220
|
-
}
|
|
3221
|
-
),
|
|
3222
|
-
o(i, e[i])
|
|
3223
|
-
] })
|
|
3224
|
-
}
|
|
3225
|
-
),
|
|
3226
|
-
/* @__PURE__ */ a(
|
|
3227
|
-
jt,
|
|
3228
|
-
{
|
|
3229
|
-
toggleIcon: /* @__PURE__ */ a(Ye, {}),
|
|
3230
|
-
breakpoint: t,
|
|
3231
|
-
visibility: { default: "visible", [t]: "hidden" },
|
|
3232
|
-
children: /* @__PURE__ */ m(Ft, { variant: "filter-group", children: [
|
|
3233
|
-
s.length > 1 && /* @__PURE__ */ a(
|
|
3234
|
-
ze,
|
|
3235
|
-
{
|
|
3236
|
-
options: s,
|
|
3237
|
-
value: i,
|
|
3238
|
-
onChange: r,
|
|
3239
|
-
ouiaId: "chip-filter-selector-small-viewport"
|
|
3240
|
-
}
|
|
3241
|
-
),
|
|
3242
|
-
Object.entries(e).map(([n, c], l) => /* @__PURE__ */ a(
|
|
3243
|
-
$t,
|
|
3244
|
-
{
|
|
3245
|
-
chips: c.type === "checkbox" ? c.chips.map((d) => ({ key: d, node: c.options[d] })) : c.chips,
|
|
3246
|
-
deleteChip: (d, h) => c.onRemoveChip(typeof h == "string" ? h : h.key),
|
|
3247
|
-
deleteChipGroup: c.onRemoveGroup,
|
|
3248
|
-
categoryName: n,
|
|
3249
|
-
showToolbarItem: n === i,
|
|
3250
|
-
children: n === i && o(n, c)
|
|
3251
|
-
},
|
|
3252
|
-
l
|
|
3253
|
-
))
|
|
3254
|
-
] })
|
|
3255
|
-
}
|
|
3256
|
-
)
|
|
3257
|
-
] });
|
|
3258
|
-
}
|
|
3108
|
+
ht.displayName = "DeletableRow";
|
|
3259
3109
|
export {
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
mi as FilterChips,
|
|
3270
|
-
Xs as FilterSearch,
|
|
3271
|
-
ze as FilterSelector,
|
|
3272
|
-
oi as FromNow,
|
|
3110
|
+
ii as AppAboutModal,
|
|
3111
|
+
oi as ApplicationAuth,
|
|
3112
|
+
Jt as AuthConfigContext,
|
|
3113
|
+
Fs as BasicAuthModal,
|
|
3114
|
+
li as ChipFilterInput,
|
|
3115
|
+
Ie as DateTime,
|
|
3116
|
+
ht as DeletableRow,
|
|
3117
|
+
ci as FilterChips,
|
|
3118
|
+
Xs as FromNow,
|
|
3273
3119
|
O as If,
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3120
|
+
ai as IfAuth,
|
|
3121
|
+
Ys as IfNotEmpty,
|
|
3122
|
+
ue as IfNotLoading,
|
|
3123
|
+
Zs as ListWithToolbar,
|
|
3124
|
+
di as Loading,
|
|
3125
|
+
ei as ObjectDropdown,
|
|
3126
|
+
$s as ObjectSelect,
|
|
3127
|
+
hi as Pagination,
|
|
3128
|
+
ri as PleaseWaitModal,
|
|
3129
|
+
ni as ProgressModal,
|
|
3130
|
+
gi as ResponsiveTable,
|
|
3131
|
+
Ee as ResponsiveTd,
|
|
3132
|
+
dt as ResponsiveTh,
|
|
3133
|
+
Ws as TableSkeleton,
|
|
3134
|
+
ti as ToggleIcon,
|
|
3135
|
+
si as UrlUpload,
|
|
3136
|
+
ct as useAuth
|
|
3291
3137
|
};
|