From a0f0062bdbbff7b2e4eac3ed91a60bf9f4a3233a Mon Sep 17 00:00:00 2001
From: sebadob
Date: Mon, 20 Jan 2025 14:04:35 +0100
Subject: [PATCH 1/9] migrate account view to new template setup + first sv5
components
---
dev_notes.md | 4 +
frontend/src/api/fetch.ts | 2 +-
.../{errorResponse.ts => common/error.ts} | 2 +-
frontend/src/api/response/common/language.ts | 1 +
frontend/src/api/response/common/session.ts | 9 +
frontend/src/api/response/common/user.ts | 41 +++
frontend/src/api/templates/authProvider.ts | 6 +
.../src/components/account/AccDevices.svelte | 4 +-
.../src/components/account/AccInfo.svelte | 30 +-
frontend/src/components/account/AccMFA.svelte | 4 +-
.../src/components/account/AccMain.svelte | 67 ++---
frontend/src/i18n/de.ts | 1 +
frontend/src/i18n/en.ts | 1 +
frontend/src/i18n/interface.ts | 1 +
frontend/src/i18n/ko.ts | 1 +
frontend/src/i18n/zh.ts | 1 +
frontend/src/lib/Modal.svelte | 2 +
frontend/src/lib_svelte5/Button.svelte | 282 ++++++++++++++++++
frontend/src/lib_svelte5/Loading.svelte | 100 +++++++
frontend/src/lib_svelte5/Modal.svelte | 154 ++++++++++
frontend/src/lib_svelte5/Template.svelte | 4 +-
.../src/lib_svelte5/icons/IconStop.svelte | 21 ++
frontend/src/routes/account/+page.svelte | 26 +-
.../src/routes/oidc/authorize/+page.svelte | 12 +-
frontend/src/types/icon.ts | 5 +
frontend/svelte.config.js | 1 +
26 files changed, 696 insertions(+), 86 deletions(-)
rename frontend/src/api/response/{errorResponse.ts => common/error.ts} (65%)
create mode 100644 frontend/src/api/response/common/language.ts
create mode 100644 frontend/src/api/response/common/session.ts
create mode 100644 frontend/src/api/response/common/user.ts
create mode 100644 frontend/src/api/templates/authProvider.ts
create mode 100644 frontend/src/lib_svelte5/Button.svelte
create mode 100644 frontend/src/lib_svelte5/Loading.svelte
create mode 100644 frontend/src/lib_svelte5/Modal.svelte
create mode 100644 frontend/src/lib_svelte5/icons/IconStop.svelte
create mode 100644 frontend/src/types/icon.ts
diff --git a/dev_notes.md b/dev_notes.md
index 4c4b2b076..0e0b64c1c 100644
--- a/dev_notes.md
+++ b/dev_notes.md
@@ -2,6 +2,10 @@
## CURRENT WORK
+### Missing i18n (zh/ko) for Svelte 5 Migration:
+
+- `t.common.close`
+
## Stage 1 - essentials
[x] finished
diff --git a/frontend/src/api/fetch.ts b/frontend/src/api/fetch.ts
index 4817cabb9..578ea7d4e 100644
--- a/frontend/src/api/fetch.ts
+++ b/frontend/src/api/fetch.ts
@@ -1,5 +1,5 @@
import {CSRF_TOKEN} from "../utils/constants";
-import {type ErrorResponse} from "$api/response/errorResponse.ts";
+import {type ErrorResponse} from "$api/response/error.ts";
export interface IResponse {
body: undefined | T,
diff --git a/frontend/src/api/response/errorResponse.ts b/frontend/src/api/response/common/error.ts
similarity index 65%
rename from frontend/src/api/response/errorResponse.ts
rename to frontend/src/api/response/common/error.ts
index 6a797fa26..584bb29ce 100644
--- a/frontend/src/api/response/errorResponse.ts
+++ b/frontend/src/api/response/common/error.ts
@@ -1,4 +1,4 @@
-export interface ErrorResponse {
+export interface Error {
timestamp: number,
error: string,
message: string,
diff --git a/frontend/src/api/response/common/language.ts b/frontend/src/api/response/common/language.ts
new file mode 100644
index 000000000..a415787ea
--- /dev/null
+++ b/frontend/src/api/response/common/language.ts
@@ -0,0 +1 @@
+export type Language = 'en' | 'de' | 'zhhans' | 'ko';
\ No newline at end of file
diff --git a/frontend/src/api/response/common/session.ts b/frontend/src/api/response/common/session.ts
new file mode 100644
index 000000000..5ea45d2fb
--- /dev/null
+++ b/frontend/src/api/response/common/session.ts
@@ -0,0 +1,9 @@
+export interface SessionResponse {
+ id: string,
+ user_id?: string,
+ is_mfa: boolean,
+ state: 'Open' | 'Init' | 'Auth' | 'LoggedOut' | 'Unknown',
+ exp: number,
+ last_seen: number,
+ remote_ip?: string,
+}
\ No newline at end of file
diff --git a/frontend/src/api/response/common/user.ts b/frontend/src/api/response/common/user.ts
new file mode 100644
index 000000000..e6efd4e6a
--- /dev/null
+++ b/frontend/src/api/response/common/user.ts
@@ -0,0 +1,41 @@
+import type {Language} from "$api/response/common/language.ts";
+
+export type UserAccountTypeResponse =
+ 'New'
+ | 'Password'
+ | 'Passkey'
+ | 'Federated'
+ | 'FederatedPasskey'
+ | 'FederatedPassword';
+
+export interface UserResponse {
+ id: string,
+ email: string,
+ given_name: string,
+ family_name?: string,
+ language: Language,
+ roles: string[],
+ groups?: string[],
+ enabled: boolean,
+ email_verified: boolean,
+ password_expires?: number,
+ created_at: number,
+ last_login?: number,
+ last_failed_login?: number,
+ failed_login_attempts?: number,
+ user_expires?: number,
+ account_type: UserAccountTypeResponse,
+ webauthn_user_id?: string,
+ user_values: UserValuesResponse,
+ auth_provider_id?: string,
+ federation_uid?: string,
+}
+
+export interface UserValuesResponse {
+ birthdate?: string,
+ phone?: string,
+ street?: string,
+ zip?: number,
+ city?: string,
+ country?: string,
+}
diff --git a/frontend/src/api/templates/authProvider.ts b/frontend/src/api/templates/authProvider.ts
new file mode 100644
index 000000000..366fa34a2
--- /dev/null
+++ b/frontend/src/api/templates/authProvider.ts
@@ -0,0 +1,6 @@
+export type AuthProvidersTemplate = AuthProviderTemplate[];
+
+export interface AuthProviderTemplate {
+ id: string,
+ name: string,
+}
\ No newline at end of file
diff --git a/frontend/src/components/account/AccDevices.svelte b/frontend/src/components/account/AccDevices.svelte
index 5d038504e..cb1073e02 100644
--- a/frontend/src/components/account/AccDevices.svelte
+++ b/frontend/src/components/account/AccDevices.svelte
@@ -1,7 +1,7 @@
@@ -10,7 +10,7 @@
This is component is only a wrapper because the same Devices
is reused in the admin ui
-->
-
+
diff --git a/frontend/src/lib_svelte5/Loading.svelte b/frontend/src/lib_svelte5/Loading.svelte
new file mode 100644
index 000000000..52c133bd2
--- /dev/null
+++ b/frontend/src/lib_svelte5/Loading.svelte
@@ -0,0 +1,100 @@
+
+
+
+
+
diff --git a/frontend/src/lib_svelte5/Modal.svelte b/frontend/src/lib_svelte5/Modal.svelte
new file mode 100644
index 000000000..d0f1a7b11
--- /dev/null
+++ b/frontend/src/lib_svelte5/Modal.svelte
@@ -0,0 +1,154 @@
+
+
+
+
+
+ {
+ showModal = false;
+ onClose?.();
+ }}
+ onclick={outsideClick}
+>
+
+ {#if !strict}
+
+ {/if}
+
+ {#if prerender || showModal}
+ {@render children()}
+ {/if}
+
+
+
+
diff --git a/frontend/src/lib_svelte5/Template.svelte b/frontend/src/lib_svelte5/Template.svelte
index 3db9846be..4ec492968 100644
--- a/frontend/src/lib_svelte5/Template.svelte
+++ b/frontend/src/lib_svelte5/Template.svelte
@@ -3,12 +3,14 @@
import {useIsDev} from "$state/is_dev.svelte.ts";
import {fetchGet} from "$api/fetch.ts";
+ type T = $$Generic;
+
let {
id,
value = $bindable(),
}: {
id: string,
- value: boolean | string | object,
+ value: boolean | string | T,
} = $props();
onMount(async () => {
diff --git a/frontend/src/lib_svelte5/icons/IconStop.svelte b/frontend/src/lib_svelte5/icons/IconStop.svelte
new file mode 100644
index 000000000..961ab0f76
--- /dev/null
+++ b/frontend/src/lib_svelte5/icons/IconStop.svelte
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/frontend/src/routes/account/+page.svelte b/frontend/src/routes/account/+page.svelte
index 0c87c1039..68346ccf7 100644
--- a/frontend/src/routes/account/+page.svelte
+++ b/frontend/src/routes/account/+page.svelte
@@ -1,38 +1,44 @@
-
{t?.logout.logout || 'Logout'}
+
+
diff --git a/frontend/src/utils/constants.js b/frontend/src/utils/constants.js
index d6726818b..16cffbb8d 100644
--- a/frontend/src/utils/constants.js
+++ b/frontend/src/utils/constants.js
@@ -120,8 +120,8 @@ export const PKCE_CHALLENGES = [{
// All TPL_* values match a possibly existing `
` id
// -> src/models/src/html_templates.rs -> HtmlTemplate
export const TPL_AUTH_PROVIDERS = 'tpl_auth_providers';
-export const TPL_CLIENT_NAME = 'tpl_client_data';
-export const TPL_CLIENT_URL = 'tpl_client_data';
+export const TPL_CLIENT_NAME = 'tpl_client_name';
+export const TPL_CLIENT_URL = 'tpl_client_url';
export const TPL_CSRF_TOKEN = 'tpl_csrf_token';
export const TPL_ERROR_DETAILS = 'tpl_error_details';
export const TPL_ERROR_TEXT = 'tpl_error_text';
diff --git a/src/api/src/oidc.rs b/src/api/src/oidc.rs
index df23a98cb..1ffad8076 100644
--- a/src/api/src/oidc.rs
+++ b/src/api/src/oidc.rs
@@ -618,17 +618,21 @@ pub async fn get_logout(
// If we get any logout errors, maybe because there is no session anymore or whatever happens,
// just redirect to rauthy's root page, since the user is not logged in anyway anymore.
- let session = match principal.get_session() {
- Ok(s) => s,
- Err(_) => {
- return HttpResponse::build(StatusCode::from_u16(302).unwrap())
- .insert_header(("location", "/auth/v1/"))
- .finish()
- }
- };
+ if principal.validate_session_auth().is_err() {
+ return HttpResponse::build(StatusCode::from_u16(302).unwrap())
+ .insert_header(("location", "/auth/v1/"))
+ .finish();
+ }
let lang = Language::try_from(&req).unwrap_or_default();
- let body = match logout::get_logout_html(params, session, &data, &lang).await {
+ let body = match logout::get_logout_html(
+ params,
+ principal.into_inner().session.unwrap(),
+ &data,
+ &lang,
+ )
+ .await
+ {
Ok(t) => t,
Err(_) => {
return HttpResponse::build(StatusCode::from_u16(302).unwrap())
diff --git a/src/models/src/html_templates.rs b/src/models/src/html_templates.rs
index c2ec9f23b..1bc9323ea 100644
--- a/src/models/src/html_templates.rs
+++ b/src/models/src/html_templates.rs
@@ -42,7 +42,7 @@ pub struct TplClientData {
// -> frontend/src/utils/constants.js -> TPL_* values
#[derive(Debug)]
pub enum HtmlTemplate {
- /// Auth providers as JSON value
+ /// Auth providers as pre-built, cached JSON value
AuthProviders(String),
ClientName(String),
ClientUrl(String),
@@ -108,18 +108,8 @@ impl HtmlTemplate {
}
}
- // pub fn inner(&self) -> &str {
- // match self {
- // Self::AuthProviders(i) => i,
- // Self::ErrorDetails(i) => i.as_ref(),
- // Self::ErrorText(i) => i.as_ref(),
- // Self::DeviceUserCodeLength(i) => i,
- // Self::StatusCode(i) => i.as_str(),
- // }
- // }
-
// TODO find a way to borrow the value dynamically, no matter the type
- // -> does rinja work with generic traits like `Display`?
+ // -> does rinja accept generic traits like `Display`?
pub fn inner(&self) -> String {
match self {
Self::AuthProviders(i) => i.to_string(),
@@ -1461,12 +1451,10 @@ pub struct LogoutHtml<'a> {
}
impl LogoutHtml<'_> {
- pub fn build(csrf_token: &str, set_logout: bool, colors: &Colors, lang: &Language) -> String {
+ pub fn build(csrf_token: String, colors: &Colors, lang: &Language) -> String {
let res = LogoutHtml {
lang: lang.as_str(),
client_id: "rauthy",
- csrf_token,
- action: set_logout,
col_act1: &colors.act1,
col_act1a: &colors.act1a,
col_act2: &colors.act2,
@@ -1480,6 +1468,7 @@ impl LogoutHtml<'_> {
col_ghigh: &colors.ghigh,
col_text: &colors.text,
col_bg: &colors.bg,
+ templates: &[HtmlTemplate::CsrfToken(csrf_token)],
..Default::default()
};
diff --git a/src/service/src/oidc/logout.rs b/src/service/src/oidc/logout.rs
index c6fd7f499..f47f038f8 100644
--- a/src/service/src/oidc/logout.rs
+++ b/src/service/src/oidc/logout.rs
@@ -13,17 +13,17 @@ use rauthy_models::{JwtIdClaims, JwtTokenType};
/// Returns the Logout HTML Page for [GET /oidc/logout](crate::handlers::get_logout)
pub async fn get_logout_html(
logout_request: LogoutRequest,
- session: &Session,
+ session: Session,
data: &web::Data,
lang: &Language,
) -> Result {
let colors = ColorEntity::find_rauthy().await?;
if logout_request.id_token_hint.is_none() {
- return Ok(LogoutHtml::build(&session.csrf_token, false, &colors, lang));
+ return Ok(LogoutHtml::build(session.csrf_token, &colors, lang));
}
- // check if the provided token hint is a valid
+ // check if the provided token hint is valid
let token_raw = logout_request.id_token_hint.unwrap();
let claims = validation::validate_token::(data, &token_raw).await?;
@@ -67,5 +67,5 @@ pub async fn get_logout_html(
// redirect uri is valid at this point
}
- Ok(LogoutHtml::build(&session.csrf_token, true, &colors, lang))
+ Ok(LogoutHtml::build(session.csrf_token, &colors, lang))
}
diff --git a/static/v1/_app/immutable/assets/Button.BjnyTAiT.css b/static/v1/_app/immutable/assets/Button.BjnyTAiT.css
deleted file mode 100644
index 34a3b3f48..000000000
--- a/static/v1/_app/immutable/assets/Button.BjnyTAiT.css
+++ /dev/null
@@ -1 +0,0 @@
-.l1.svelte-103k7bs,.l2.svelte-103k7bs,.l3.svelte-103k7bs,.l4.svelte-103k7bs{height:30px;margin:5px;padding:0 10px;font-weight:700;border:1px solid var(--col-gmid);border-radius:3px;box-shadow:1px 1px 2px var(--col-gmid)}.l1.svelte-103k7bs{color:#fff;background:var(--col-act1)}.l1.svelte-103k7bs:hover{background:var(--col-act1a)}.l2.svelte-103k7bs{color:var(--col-ghigh);background:var(--col-act2)}.l2.svelte-103k7bs:hover{background:var(--col-act2a)}.l3.svelte-103k7bs{color:var(--col-act2a);border:1px solid var(--col-act2a);background:var(--col-ghigh)}.l3.svelte-103k7bs:hover{background:#fff}.l4.svelte-103k7bs{color:var(--col-act2a);border:none;background:none;box-shadow:none}.l4.svelte-103k7bs:hover{box-shadow:1px 1px 2px var(--col-gmid)}.load.svelte-103k7bs{display:flex;justify-content:center}.txt.svelte-103k7bs{margin-top:2px}
diff --git a/static/v1/_app/immutable/assets/Button.BjnyTAiT.css.br b/static/v1/_app/immutable/assets/Button.BjnyTAiT.css.br
deleted file mode 100644
index 4107f6a815c8539149e8ed1ac5972ac47ee74059..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 244
zcmV?!nXC&H9ti%ob+T}>bFm9_A1zzW^i7sldqN_PMy;QTZ)Y2qgH^!
z_NI*U84bXvn~IdOYtNwQOpRHu{lrVMIr47HsibbbWF@TBs*ct&!As9Z@6-)B;s+<@
zqSuv?M-la9_jiQP%LM=$J6iT5fIcm{#96(sVMBz;czru?Bzj0Oc%S_CytiOpDAZ0F
zHlf+Z+9XlqwKvR-=LMCpiwqHT4JKEVg-TVXG;y9(?yl2#DgqtZJbb9S(Dy-u2?@HJ
uoh)^UMuuNJj$oONcpc;Hq9Q4TMVDXE$q`U>_@VNFz3#PzcJ-C3zJ3E-tbFDG
diff --git a/static/v1/_app/immutable/assets/Button.BjnyTAiT.css.gz b/static/v1/_app/immutable/assets/Button.BjnyTAiT.css.gz
deleted file mode 100644
index 7263e7d49b0e35192c773bf609a06707e72257f7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 299
zcmV+`0o48hVpIbYZV$BF6+iYp0q=8q^6b{zWuVL
zj7eQX5~cHrK<&tBN!=$&QKDhoK-vzGMI~9(Q}aPcg^JWi$##DU#84(X3%M^*;y`Re
z8J;e(d1QX9gj2k^+vpF`z`GElC~0-54R)HrO-L)3hJ?^y&&~KyLuXMIrrp_U{H=En
z$yun#3vzZL=dZ|1=CilHW`sD4?*M0OZhqP+&>PPUY1I54z3gwlJnsWlulWDA15&p3
x#iVT&J%dnuD1JKYq&Rzxc3eBC{KU-^yTPq>OMerGEqK=S_6uy8jIKxn008DEkdOcX
diff --git a/static/v1/_app/immutable/assets/Button.kuO9zTZa.css b/static/v1/_app/immutable/assets/Button.kuO9zTZa.css
new file mode 100644
index 000000000..02f1f1220
--- /dev/null
+++ b/static/v1/_app/immutable/assets/Button.kuO9zTZa.css
@@ -0,0 +1 @@
+.container.svelte-2cwfk8{display:flex;flex:1;justify-content:center;align-items:center;z-index:1}@keyframes svelte-2cwfk8-fade-in{0%{opacity:0}to{opacity:1}}@keyframes svelte-2cwfk8-fade-out{0%{opacity:1}to{opacity:0}}.loading.svelte-2cwfk8{width:3.3rem;height:1.1rem;aspect-ratio:3;display:flex;justify-content:space-evenly;align-items:center}.loading-1.svelte-2cwfk8,.loading-2.svelte-2cwfk8,.loading-3.svelte-2cwfk8{height:66%;aspect-ratio:1;border-radius:50%;animation:1s infinite alternate svelte-2cwfk8-fade-in;opacity:0}.loading-2.svelte-2cwfk8{animation-delay:333ms}.loading-3.svelte-2cwfk8{animation-delay:666ms}.global.svelte-2cwfk8{position:absolute;top:0;left:0;width:100vw;height:100vh}.local.svelte-2cwfk8{min-width:70px;max-width:70px}.background.svelte-2cwfk8{background:#7f7f7f80}.l1.svelte-103k7bs,.l2.svelte-103k7bs,.l3.svelte-103k7bs,.l4.svelte-103k7bs{height:30px;margin:5px;padding:0 10px;font-weight:700;border:1px solid var(--col-gmid);border-radius:3px;box-shadow:1px 1px 2px var(--col-gmid)}.l1.svelte-103k7bs{color:#fff;background:var(--col-act1)}.l1.svelte-103k7bs:hover{background:var(--col-act1a)}.l2.svelte-103k7bs{color:var(--col-ghigh);background:var(--col-act2)}.l2.svelte-103k7bs:hover{background:var(--col-act2a)}.l3.svelte-103k7bs{color:var(--col-act2a);border:1px solid var(--col-act2a);background:var(--col-ghigh)}.l3.svelte-103k7bs:hover{background:#fff}.l4.svelte-103k7bs{color:var(--col-act2a);border:none;background:none;box-shadow:none}.l4.svelte-103k7bs:hover{box-shadow:1px 1px 2px var(--col-gmid)}.load.svelte-103k7bs{display:flex;justify-content:center}.txt.svelte-103k7bs{margin-top:2px}
diff --git a/static/v1/_app/immutable/assets/Button.kuO9zTZa.css.br b/static/v1/_app/immutable/assets/Button.kuO9zTZa.css.br
new file mode 100644
index 0000000000000000000000000000000000000000..1f75a27a904a7550d5161fcc3518bf046a30ea04
GIT binary patch
literal 475
zcmV<10VMt#WCj2n1@4}Yi|sHty(pm4lg0FpiOFOaOtLtqvM0(?7(I1rK$LVq3jcSi
zc7PRai*`d`*;o~9YbQF(0AfTXYS?`R
zdyifb9TZj3hU97+Gb);~(Qw|R>rKDjBJ?o=jjY&j=whS
R1&OmOH1}`3Tl#-KhWo
literal 0
HcmV?d00001
diff --git a/static/v1/_app/immutable/assets/Button.kuO9zTZa.css.gz b/static/v1/_app/immutable/assets/Button.kuO9zTZa.css.gz
new file mode 100644
index 0000000000000000000000000000000000000000..d33a02f06221690992a403a44c97484667fb90fd
GIT binary patch
literal 559
zcmV+~0?_>*iwFP!000021C3N|kE0+E{(is0WV6X_au|@?c7tE;ub_Z(RWLwXd&d8M
zux_oTw%r(ChM8xchnbPI)XGt*xJm7SH;#j>Jc`}Nz@+UOdLp9XeI6bJ<$w3qNpS)J
z!<8eYe{hr2Mpg<)$6I?|`Uj+90W<#D@slvL~^qXzgo=#G}sod_JAo((iU
z!RozRg3%HT$1!a*Wl~kqzK)W)n&1>0-sUxzRqY5$QLw1(cEZ!)>Jc3W7kYB2HPu(yl28@TIV2oQk-qjq3Z#J6{UNyR)O%&T{D?cUE!s=%4c$GRS#fainG^)ALu^9{mp?77At{{aSWBqe1A003(N98UlM
literal 0
HcmV?d00001
diff --git a/static/v1/_app/immutable/assets/Loading.C3rZw9wZ.css b/static/v1/_app/immutable/assets/Loading.C3rZw9wZ.css
deleted file mode 100644
index c3720011c..000000000
--- a/static/v1/_app/immutable/assets/Loading.C3rZw9wZ.css
+++ /dev/null
@@ -1 +0,0 @@
-.container.svelte-2cwfk8{display:flex;flex:1;justify-content:center;align-items:center;z-index:1}@keyframes svelte-2cwfk8-fade-in{0%{opacity:0}to{opacity:1}}@keyframes svelte-2cwfk8-fade-out{0%{opacity:1}to{opacity:0}}.loading.svelte-2cwfk8{width:3.3rem;height:1.1rem;aspect-ratio:3;display:flex;justify-content:space-evenly;align-items:center}.loading-1.svelte-2cwfk8,.loading-2.svelte-2cwfk8,.loading-3.svelte-2cwfk8{height:66%;aspect-ratio:1;border-radius:50%;animation:1s infinite alternate svelte-2cwfk8-fade-in;opacity:0}.loading-2.svelte-2cwfk8{animation-delay:333ms}.loading-3.svelte-2cwfk8{animation-delay:666ms}.global.svelte-2cwfk8{position:absolute;top:0;left:0;width:100vw;height:100vh}.local.svelte-2cwfk8{min-width:70px;max-width:70px}.background.svelte-2cwfk8{background:#7f7f7f80}
diff --git a/static/v1/_app/immutable/assets/Loading.C3rZw9wZ.css.br b/static/v1/_app/immutable/assets/Loading.C3rZw9wZ.css.br
deleted file mode 100644
index b5ddc1cbb3b4463f1505faae1073c38c0bc908c9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 288
zcmV+*0pI=`9RmQ2lrD1yEv+q8w6UF8i!Y+20ubH6Id#B8OZ4dUD0(#&?LarVI^8ua
z9^w(r)^#Zg;!q8Ne>km4Jtx4UEv@WD@Afc>kI
zBXFF7q<#P0k)?ZWDjSvCpaj^wn(UYRKXp#xH
z?degpY0(z*v{T22;U?Hg9%@(R68s#{j}W4nC|CrjwWj5F$d2f6Fn7JDAuVs|8#Ug#
mjTr%mxdV@*3hSn5fpufPxb=32p8hEQL)`rbWu{5@rKNvN6^vp4
diff --git a/static/v1/_app/immutable/assets/Loading.C3rZw9wZ.css.gz b/static/v1/_app/immutable/assets/Loading.C3rZw9wZ.css.gz
deleted file mode 100644
index 4fac08f3e4e6bd9ddcdaca6ce3f7b6ddd5475a37..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 357
zcmV-r0h<0FiwFP!000021BFpRZi6roy!RE6s@!U12bEOzrC)LI0^1lH*(M2%_$B}-iDBS$40Zx+{6}m1a4TlF
zVmgkQwo;*~7xy}%3JuS*+(9cEz`6;XWh^1-J17HjGN9$Tm`z}Lbsvp@zyXXN?hIgZ
zCv5KjG8HzD3i%@OPspNJ&l57Svrd7FP+{-+D~$w$Z7Leh{0dElCZ<}+*v%OkzwWL;
zT&MOZ-Fa$E6r`c#dEWZ*Vdf>hD2ha{wcSa*;C9yIcVxNqR`&r!upOsDLlxrdvM@&J
z;W+Ipf+m@lf10&u$VIWG-AT0abOXn1C(C{9Y;V*;cP;SeZIzxkIzD{?U~+<<9s>XX
DA2X||
diff --git a/static/v1/_app/immutable/chunks/AdminMainPre.CWDwXa4d.js b/static/v1/_app/immutable/chunks/AdminMainPre.CPakLWpc.js
similarity index 86%
rename from static/v1/_app/immutable/chunks/AdminMainPre.CWDwXa4d.js
rename to static/v1/_app/immutable/chunks/AdminMainPre.CPakLWpc.js
index 367716e0c..842d708a5 100644
--- a/static/v1/_app/immutable/chunks/AdminMainPre.CWDwXa4d.js
+++ b/static/v1/_app/immutable/chunks/AdminMainPre.CPakLWpc.js
@@ -1,13 +1,13 @@
-import{a as r,n as Xe,b as A,c as me,t as B}from"./disclose-version.C0dpEWi_.js";import{a1 as K,p as le,o as Ne,a2 as c,a0 as l,n as Ct,a4 as v,a as ne,_ as ee,j as a,g as e,Z as C,a5 as Bt,d as ys,a3 as q,h as Ke,a6 as na,aZ as Ca,b as ws,$ as Aa}from"./index-client.LkyNpeLM.js";import{d as ut,e as Me,s as Y,r as oa,h as Ta}from"./render.D21ACvZ4.js";import{i as P}from"./if.BQqAvi9S.js";import{p as n}from"./proxy.bVSoDcUp.js";import{p as G,s as bs,a as $s,c as La,r as Jt}from"./props.BDzDHVdA.js";import{v as oe,x as Et,aq as va,ar as _s,O as ht,q as da,t as ks,ab as xs,ac as Es,ad as Is,ae as Na,L as Ra,as as Ot,n as Ye,at as Da,ak as ja,y as Ss,ag as Cs,aj as As,ao as Ts,au as qt,av as Pa,aw as Ls,ax as Ns,a6 as Xt,l as tt,ay as Rs,az as Ds,aA as za,aB as ft,aC as js,a1 as Oa,aD as Ma,aE as Ua,u as Nt,aF as Gt,aG as ca,aH as Ps,aI as zs,aJ as Os,aK as qa,aL as Ga,aM as ua,an as Ms,a0 as Us,aN as qs}from"./dataFetching.C4rEqQY1.js";import{s as ue,t as ce,f as pt,e as nt,a as _e,L as ha,g as pa,d as Gs,c as Rt}from"./Loading.CZYfBo5y.js";import{B as Se}from"./Button.BDI_bIrm.js";import{b as dt,a as Ze,S as Be,D as Ws,E as ot,T as Dt,I as Zt,d as Ks,h as Wa,e as Fs,c as Vs}from"./Devices.C6IiDFKU.js";import{r as Te}from"./legacy-client.yBTdRgtG.js";import{s as At}from"./snippet.C6oh0jnA.js";import{w as Tt}from"./index.DFcE2Cdu.js";import{a as Qt,C as ea}from"./CheckIcon.D95u0ggr.js";import{t as Bs,c as Js}from"./tweened._kLXMt8j.js";import{A as Ys}from"./AppVersion.BSR9h6qa.js";import{e as We,i as yt,b as Ka,O as kt}from"./OptionSelect.CHnFxA-i.js";import{s as Hs,g as Mt}from"./helpers.DVmWh-6p.js";import{c as He,a as he,b as wt,I as ie}from"./Input.BWHohn37.js";import{P as Wt,I as Fa,a as Va,b as Xs}from"./PasswordInput.j52NsKBe.js";import{P as Zs}from"./PasswordPolicy.Bw5rsarJ.js";import{b as Qs}from"./this.BhcZdidn.js";import"./legacy.6NChWQ7B.js";const er=Tt(),tr=Tt(),Yt=Tt(""),ta=Tt(!0);var ar=Xe(' ');function sr(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=ar();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var rr=A('
',1),ir=A('
',1),lr=A('
'),nr=A('
');function or(_,s){le(s,!0);const t=bs(),d=()=>$s(I,"$width",t);let i=G(s,"selected",15,""),g=G(s,"widthExpanded",3,185),f=G(s,"widthCollapsed",3,60),u=G(s,"isExpanded",15,!0);const I=Bs(u()?g():f(),{duration:200,easing:Js});ta.subscribe(p=>u(p)),Yt.subscribe(p=>{p&&i(p)}),Te(()=>{u()?(ta.set(!0),I.set(g())):(ta.set(!1),setTimeout(()=>{I.set(f())},200))}),Te(()=>{i()&&Yt.set(i())}),Ne(()=>{er.set(g()),tr.set(f()),Yt.set(i())});function E(){u(!u())}var o=nr(),$=c(o),m=c($);{var T=p=>{var S=rr(),L=ee(S);L.__click=E;var D=c(L);Qt(D,{}),v(L);var j=l(L,2),N=c(j);At(N,()=>s.logo??Ct),v(j),K(()=>oe(L,"left",`calc(${d()??""}px - 22px)`)),Me("keypress",L,E),ce(1,L,()=>pt,()=>({delay:500,duration:200})),ce(2,L,()=>pt,()=>({duration:100})),ce(1,j,()=>pt,()=>({delay:250,duration:100})),ce(2,j,()=>pt,()=>({duration:20})),r(p,S)},k=p=>{var S=ir(),L=ee(S);L.__click=E,oe(L,"left","3px");var D=c(L);sr(D,{width:24}),v(L);var j=l(L,2);oe(j,"height","10px");var N=l(j,2),V=c(N);At(V,()=>s.logo??Ct),v(N),Me("keypress",L,E),ce(1,L,()=>pt,()=>({delay:500,duration:200})),ce(2,L,()=>pt,()=>({duration:100})),ce(1,N,()=>pt,()=>({delay:250,duration:100})),ce(2,N,()=>pt,()=>({duration:20})),r(p,S)};P(m,p=>{u()?p(T):p(k,!1)})}var h=l(m,2),y=c(h),w=c(y);At(w,()=>s.entries??Ct),v(y),v(h),v($);var b=l($,2);{var x=p=>{var S=lr(),L=c(S);Ys(L,{}),v(S),ce(1,S,()=>pt,()=>({delay:500,duration:200})),ce(2,S,()=>pt,()=>({duration:100})),r(p,S)};P(b,p=>{u()&&p(x)})}v(o),K(()=>{oe(o,"min-width",`${d()??""}px`),oe(o,"width",`${d()??""}px`),oe(o,"padding",u()?"20px 10px":"10px 3px")}),r(_,o),ne()}ut(["click"]);var vr=A('
'),dr=A('
');function mt(_,s){le(s,!0);let t=G(s,"label",3,""),d=G(s,"slotCollapsed",3,!0),i=C(!0),g=C("var(--col-text)"),f=C("");Yt.subscribe(k=>a(f,n(k))),ta.subscribe(k=>a(i,n(k)));let u=C(!1);function I(){e(u)?a(g,"var(--col-err)"):e(f)===t()?a(g,"var(--col-ok)"):a(g,"var(--col-text)")}function E(){Yt.set(t())}Te(()=>{e(f)&&I()}),Te(()=>{e(u)?a(g,"var(--col-err)"):I()});var o=me(),$=ee(o);{var m=k=>{var h=vr();h.__click=E;var y=c(h);At(y,()=>s.children??Ct);var w=l(y,2),b=c(w,!0);v(w),v(h),K(()=>{Et(h,"selected",e(f)===t()),Y(b,t())}),Me("keypress",h,E),Me("mouseenter",h,()=>a(u,!0)),Me("mouseleave",h,()=>a(u,!1)),ce(7,h,()=>pt,()=>({duration:100})),r(k,h)},T=k=>{var h=dr();h.__click=E;var y=c(h);{var w=p=>{var S=me(),L=ee(S);At(L,()=>s.children??Ct),r(p,S)};P(y,p=>{d()&&p(w)})}var b=l(y,2),x=c(b,!0);v(b),v(h),K(()=>{Et(h,"selectedCollapsed",e(f)===t()),Y(x,t())}),Me("keypress",h,E),Me("mouseenter",h,()=>a(u,!0)),Me("mouseleave",h,()=>a(u,!1)),ce(5,h,()=>pt,()=>({delay:200,duration:100})),r(k,h)};P($,k=>{e(i)?k(m):k(T,!1)})}r(_,o),ne()}ut(["click"]);const it={"Content-Type":"application/json",Accept:"application/json"};function De(){return{"csrf-token":va(),"Content-Type":"application/json",Accept:"application/json"}}async function ke(_){return _.status===403&&(await _.json()).error==="MfaRequired"&&(console.error("MFA is required for a rauthy admin account"),await Hs(3e3),window.location.reload()),(_.status===401||_.status===403)&&window.location.reload(),_}async function cr(){return await fetch("/auth/v1/oidc/certs",{method:"GET",headers:it})}async function ur(){const _=await fetch("/auth/v1/clients",{method:"GET",headers:it});return await ke(_)}async function hr(_){const s=await fetch("/auth/v1/clients",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function pr(_){const s=await fetch(`/auth/v1/clients/${_.id}`,{method:"PUT",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function mr(_){const s=await fetch(`/auth/v1/clients/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function gr(_){const s=await fetch(`/auth/v1/clients/${_}/colors`,{method:"GET",headers:it});return await ke(s)}async function fr(_,s){const t=await fetch(`/auth/v1/clients/${_}/colors`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function yr(_){const s=await fetch(`/auth/v1/clients/${_}/colors`,{method:"DELETE",headers:De()});return await ke(s)}async function wr(_,s){const t=new FormData;t.append("logo",s);const d=await fetch(`/auth/v1/clients/${_}/logo`,{method:"PUT",headers:{"csrf-token":va()},body:t});return await ke(d)}async function br(_){const s=await fetch(`/auth/v1/clients/${_}/logo`,{method:"DELETE",headers:De()});return await ke(s)}async function $r(_){const s=await fetch(`/auth/v1/clients/${_}/secret`,{method:"POST",headers:De()});return await ke(s)}async function _r(_){const s=await fetch(`/auth/v1/clients/${_}/secret`,{method:"PUT",headers:De()});return await ke(s)}async function kr(){const _=await fetch("/auth/v1/encryption/keys",{method:"GET",headers:it});return await ke(_)}async function xr(_){const s=await fetch("/auth/v1/encryption/migrate",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Er(_){const s=await fetch("/auth/v1/events",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Ba(){const _=await fetch("/auth/v1/groups",{method:"GET",headers:it});return await ke(_)}async function Ir(_){const s=await fetch("/auth/v1/groups",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Sr(_,s){const t=await fetch(`/auth/v1/groups/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function Cr(_){const s=await fetch(`/auth/v1/groups/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Ar(){const _=await fetch("/auth/v1/login_time",{method:"GET",headers:it});return await ke(_)}async function Tr(_){const s=await fetch("/auth/v1/password_hash_times",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Lr(_){const s=await fetch("/auth/v1/password_policy",{method:"PUT",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Nr(_){const s=await fetch("/auth/v1/users/request_reset",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Rr(){return await fetch("/auth/v1/providers",{method:"POST",headers:De()})}async function Dr(_){return await fetch("/auth/v1/providers/create",{method:"POST",headers:De(),body:JSON.stringify(_)})}async function jr(_,s){return await fetch(`/auth/v1/providers/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)})}async function Pr(_){return await fetch(`/auth/v1/providers/${_}`,{method:"DELETE",headers:De()})}async function zr(_){return await fetch(`/auth/v1/providers/${_}/delete_safe`,{method:"GET",headers:De()})}async function Or(_,s){const t=new FormData;t.append("logo",s);const d=await fetch(`/auth/v1/providers/${_}/img`,{method:"PUT",headers:{"csrf-token":va()},body:t});return await ke(d)}async function Mr(_){return await fetch("/auth/v1/providers/lookup",{method:"POST",headers:De(),body:JSON.stringify(_)})}async function Ur(){const _=await fetch("/auth/v1/oidc/rotate_jwk",{method:"POST",headers:De()});return await ke(_)}async function qr(){const _=await fetch("/auth/v1/sessions",{method:"GET",headers:it});return await ke(_)}async function Ja(_,s,t,d){let i=`/auth/v1/sessions?page_size=${_}`;s&&(i=`${i}&offset=${s}`),d&&(i=`${i}&backwards=${d}`),t&&(i=`${i}&continuation_token=${t}`);const g=await fetch(i,{method:"GET",headers:it});return await ke(g)}async function Gr(){const _=await fetch("/auth/v1/sessions",{method:"DELETE",headers:De()});return await ke(_)}async function Wr(_){const s=await fetch(`/auth/v1/sessions/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Kr(){const _=await fetch("/auth/v1/users",{method:"GET",headers:it});return await ke(_)}async function Ya(_,s,t,d){let i=`/auth/v1/users?page_size=${_}`;s&&(i=`${i}&offset=${s}`),d&&(i=`${i}&backwards=${d}`),t&&(i=`${i}&continuation_token=${t}`);const g=await fetch(i,{method:"GET",headers:it});return await ke(g)}async function Fr(_){const s=await fetch("/auth/v1/users",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Ha(_,s){const t=await fetch(`/auth/v1/users/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function Vr(_){const s=await fetch(`/auth/v1/users/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function ma(){const _=await fetch("/auth/v1/users/attr",{method:"GET",headers:it});return await ke(_)}async function Br(_){const s=await fetch("/auth/v1/users/attr",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Jr(_,s){const t=await fetch(`/auth/v1/users/attr/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function Yr(_){const s=await fetch(`/auth/v1/users/attr/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Hr(_){const s=await fetch(`/auth/v1/users/${_}/attr`,{method:"GET",headers:it});return await ke(s)}async function Xr(_,s){const t=await fetch(`/auth/v1/users/${_}/attr`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function Zr(){const _=await fetch("/auth/v1/api_keys",{method:"GET",headers:it});return await ke(_)}async function Qr(_){const s=await fetch("/auth/v1/api_keys",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function ei(_){const s=await fetch(`/auth/v1/api_keys/${_.name}`,{method:"PUT",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function ti(_){const s=await fetch(`/auth/v1/api_keys/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function ai(_){const s=await fetch(`/auth/v1/api_keys/${_}/secret`,{method:"PUT",headers:De()});return await ke(s)}async function si(){const _=await fetch("/auth/v1/blacklist",{method:"GET",headers:it});return await ke(_)}async function ri(_){const s=await fetch("/auth/v1/blacklist",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function ii(_){const s=await fetch(`/auth/v1/blacklist/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Xa(){const _=await fetch("/auth/v1/roles",{method:"GET",headers:it});return await ke(_)}async function li(_){const s=await fetch("/auth/v1/roles",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function ni(_,s){const t=await fetch(`/auth/v1/roles/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function oi(_){const s=await fetch(`/auth/v1/roles/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Za(){const _=await fetch("/auth/v1/scopes",{method:"GET",headers:it});return await ke(_)}async function vi(_){const s=await fetch("/auth/v1/scopes",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function di(_,s){const t=await fetch(`/auth/v1/scopes/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function ci(_){const s=await fetch(`/auth/v1/scopes/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function ui(_,s,t){const d=await fetch(`/auth/v1/search?ty=${_}&idx=${s}&q=${t}`,{method:"GET",headers:it});return await ke(d)}const hi=Tt([]),ga=Tt([]),pi=Tt([]),fa=Tt([]),mi=Tt([]),Qa=Tt([]);var gi=Xe(' ');function fi(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=gi();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var yi=Xe(' ');function wi(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=yi();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var bi=Xe(' ');function $i(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=bi();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var _i=A(" "),ki=A(' '),xi=A('');function es(_,s){le(s,!0);let t=G(s,"items",27,()=>n([])),d=G(s,"resItems",15),i=G(s,"options",19,()=>[]),g=G(s,"useServerSideIdx",11,""),f=G(s,"isSearchFiltered",15,!1),u=G(s,"search",15,""),I=C(""),E;Ne(()=>{i().length>0&&(a(I,n(i()[0].label)),o())});function o(){for(let j of i())if(j.label===e(I)){E=j.callback;break}E||console.error("Could not find a valid callback function in search options for label "+e(I))}function $(){u("")}function m(){if(u().length<2){d(t()),f(!1);return}d([...t().filter(j=>i().length>0?E(j,u()):j.toLowerCase().includes(u())||j===u())]),f(!0)}async function T(){if(u().length<_s){d(t()),f(!1);return}f(!0);const j=e(I).replaceAll("-","").replaceAll(" ","").toLowerCase();let N=await ui(g(),j,u());N.ok?d(await N.json()):console.error(N)}Te(()=>{e(I)&&o()}),Te(()=>{u()?g()?T():m():(d(t()),f(!1))});var k=xi(),h=c(k);{var y=j=>{Ze(j,{text:"Search by",yOffset:-30,children:(N,V)=>{var R=ki();We(R,21,i,yt,(F,z)=>{var O=_i(),U={},Q=c(O,!0);v(O),K(()=>{U!==(U=e(z).label)&&(O.value=(O.__value=e(z).label)==null?"":e(z).label),Y(Q,e(z).label)}),r(F,O)}),v(R),Ka(R,()=>e(I),F=>a(I,F)),r(N,R)},$$slots:{default:!0}})};P(h,j=>{i().length>1&&j(y)})}var w=l(h,2),b=c(w);nt(b),K(()=>ue(b,"name",Mt()));var x=l(b,2),p=c(x);wi(p,{width:20}),v(x),v(w);var S=l(w,2),L=c(S);L.__click=$;var D=c(L);$i(D,{}),v(L),v(S),v(k),dt(b,u),Me("keypress",L,$),r(_,k),ne()}ut(["click"]);var Ei=(_,s)=>a(s,!e(s)),Ii=A('
'),Si=(_,s,t)=>s(e(t)),Ci=A('
'),Ai=A(''),Ti=A('');function Li(_,s){le(s,!0);let t=G(s,"items",31,()=>n([])),d=G(s,"onSelect",3,h=>{}),i=G(s,"mindWidth",3,130),g=G(s,"maxHeight",19,()=>t().length>4?175:120),f=G(s,"searchThreshold",11,5),u=C(n([])),I=C(!1);Te(()=>{t().length<=f()&&a(u,n(t()))});function E(h){a(I,!1),a(u,n(t())),d()(h)}var o=Ti(),$=c(o);$.__click=[Ei,I];var m=c($);fi(m,{}),v($);var T=l($,2);{var k=h=>{var y=Ai(),w=c(y);{var b=p=>{var S=Ii(),L=c(S);es(L,{get items(){return t()},set items(D){t(D)},get resItems(){return e(u)},set resItems(D){a(u,n(D))}}),v(S),K(()=>oe(S,"max-width",`${i()}px`)),r(p,S)};P(w,p=>{t().length>f()&&p(b)})}var x=l(w,2);We(x,21,()=>e(u),yt,(p,S)=>{var L=Ci();L.__click=[Si,E,S];var D=c(L,!0);v(L),K(()=>Y(D,e(S))),Me("keypress",L,()=>E(e(S))),r(p,L)}),v(x),v(y),K(()=>{ue(y,"style",`min-width: ${i()??""}px; max-height: ${g()??""}px`),ue(x,"style",`width: ${i()??""}; max-height: ${(t().length>f()?g()-29:g())??""}px`)}),ce(7,y,()=>_e,()=>({duration:200})),r(h,y)};P(T,h=>{e(I)&&h(k)})}v(o),Me("keypress",$,()=>a(I,!e(I))),r(_,o),ne()}ut(["click"]);var Ni=(_,s,t)=>s()(t.label),Ri=A('');function Di(_,s){le(s,!0);let t=G(s,"onDelete",3,()=>{});var d=Ri(),i=c(d),g=l(i);g.__click=[Ni,t,s];var f=c(g);Qt(f,{color:"--var(--col-bg)",width:14}),v(g),v(d),K(()=>Y(i,`${s.label??""} `)),Me("keypress",g,()=>t()(s.label)),r(_,d),ne()}ut(["click"]);var ji=A('
');function zt(_,s){le(s,!0);let t=G(s,"items",15),d=G(s,"options",19,()=>[]),i=G(s,"searchThreshold",15,4),g=C(n([]));Ne(()=>{I()});async function f(k){t()||t([]),t().push(k),t([...t()]),await I()}async function u(k){t([...t().filter(h=>h!==k)]),await I()}async function I(){await Bt(),t()||t([]),a(g,n([...d().filter(k=>!t().includes(k))]))}var E=ji(),o=c(E);{var $=k=>{var h=me(),y=ee(h);We(y,17,t,yt,(w,b,x)=>{Di(w,{onDelete:u,get label(){return t()[x]},set label(p){t(t()[x]=p,!0)}})}),r(k,h)};P(o,k=>{var h;((h=t())==null?void 0:h.length)>0&&k($)})}var m=l(o,2);{var T=k=>{Li(k,{onSelect:f,get items(){return e(g)},set items(h){a(g,n(h))},get searchThreshold(){return i()},set searchThreshold(h){i(h)}})};P(m,k=>{e(g)&&e(g).length>0&&k(T)})}v(E),r(_,E),ne()}var Pi=A('Success
'),zi=A('
'),Oi=A('');function Mi(_,s){le(s,!0);let t=G(s,"user",31,()=>n({}));t().roles===void 0&&t(t().roles=[],!0),t().groups===void 0&&t(t().groups=[],!0);let d=C(""),i=C(!1),g=C(void 0),f=C(n(t().language.toUpperCase())),u=C(!!t().user_expires),I=C(n(ys(()=>e(u))?ht(t().user_expires,!0):void 0)),E=C(n([]));ga.subscribe(X=>{a(E,n(X))});let o=C(n([]));fa.subscribe(X=>{a(o,n(X))}),Te(()=>{e(i)&&a(g,n(setTimeout(()=>{a(i,!1),s.onSave()},3e3)))});let $=C(n({}));const m=He().shape({email:he().required("E-Mail is required").email("Bad E-Mail format"),given_name:he().trim().required("Given Name is required").matches(da,"Invalid characters"),family_name:he().nullable().trim().matches(ks,"Invalid characters")});let T=C(n({}));const k=He().shape({birthdate:he().nullable().trim().matches(xs,"Invalid characters"),phone:he().nullable().trim().matches(Es,"Format: +..."),street:he().nullable().trim().matches(Is,"Invalid characters"),zip:wt().nullable().min(1e3).max(999999),city:he().nullable().trim().matches(Na,"Invalid characters"),country:he().nullable().trim().matches(Na,"Invalid characters")});Ne(()=>()=>clearTimeout(e(g)));function h(X){X.code==="Enter"&&y()}async function y(){if(!await w())return;a(d,""),console.log(t().user_values);const X={email:t().email,given_name:t().given_name,family_name:t().family_name||null,language:e(f).toLowerCase(),roles:t().roles,groups:t().groups,enabled:t().enabled,email_verified:t().email_verified,user_expires:null,user_values:t().user_values};if(X.user_values.phone&&(X.user_values.phone=X.user_values.phone.replaceAll(" ","")),X.user_values.zip&&(X.user_values.zip=Number.parseInt(X.user_values.zip)),e(u)){let Le=Ot(e(I));if(!Le){a(d,"Invalid Date Input: User Expires");return}X.user_expires=Le}let Ee=await Ha(t().id,X);if(Ee.ok)a(i,!0);else{let Le=await Ee.json();a(d,n(Le.message))}}async function w(){let X=!0;try{await m.validate(t(),{abortEarly:!1}),a($,n({}))}catch(Ee){a($,n(Ye(Ee))),X=!1}try{await k.validate(t().user_values,{abortEarly:!1}),a(T,n({}))}catch(Ee){a(T,n(Ye(Ee))),X=!1}return X}var b=Oi(),x=c(b),p=l(c(x),2),S=c(p,!0);v(p),v(x);var L=l(x,2);oe(L,"margin-top","-5px");var D=c(L);oe(D,"width","107px");var j=l(c(D),2),N=c(j);Be(N,{get selected(){return t().enabled},set selected(X){t(t().enabled=X,!0)}}),v(j),v(D);var V=l(D,2);oe(V,"width","135px");var R=l(c(V),2),F=c(R);Be(F,{get selected(){return t().email_verified},set selected(X){t(t().email_verified=X,!0)}}),v(R),v(V),v(L);var z=l(L,2);ie(z,{type:"email",autocomplete:"off",placeholder:"E-Mail",get value(){return t().email},set value(X){t(t().email=X,!0)},get error(){return e($).email},set error(X){e($).email=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("E-MAIL");r(X,Le)},$$slots:{default:!0}});var O=l(z,2);ie(O,{autocomplete:"off",placeholder:"Given Name",get value(){return t().given_name},set value(X){t(t().given_name=X,!0)},get error(){return e($).given_name},set error(X){e($).given_name=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("GIVEN NAME");r(X,Le)},$$slots:{default:!0}});var U=l(O,2);ie(U,{autocomplete:"off",placeholder:"Family Name",get value(){return t().family_name},set value(X){t(t().family_name=X,!0)},get error(){return e($).family_name},set error(X){e($).family_name=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("FAMILY NAME");r(X,Le)},$$slots:{default:!0}});var Q=l(U,2),M=l(c(Q),2),W=c(M);kt(W,{options:Ra,get value(){return e(f)},set value(X){a(f,n(X))}}),v(M),v(Q);var J=l(Q,2);ie(J,{autocomplete:"off",placeholder:"Street",get value(){return t().user_values.street},set value(X){t(t().user_values.street=X,!0)},get error(){return e(T).street},set error(X){e(T).street=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("STREET");r(X,Le)},$$slots:{default:!0}});var Z=l(J,2);ie(Z,{type:"number",autocomplete:"off",placeholder:"ZIP",min:1e3,max:999999,get value(){return t().user_values.zip},set value(X){t(t().user_values.zip=X,!0)},get error(){return e(T).zip},set error(X){e(T).zip=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("ZIP");r(X,Le)},$$slots:{default:!0}});var re=l(Z,2);ie(re,{autocomplete:"off",placeholder:"City",get value(){return t().user_values.city},set value(X){t(t().user_values.city=X,!0)},get error(){return e(T).city},set error(X){e(T).city=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("CITY");r(X,Le)},$$slots:{default:!0}});var ve=l(re,2);ie(ve,{autocomplete:"off",placeholder:"Country",get value(){return t().user_values.country},set value(X){t(t().user_values.country=X,!0)},get error(){return e(T).country},set error(X){e(T).country=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("COUNTRY");r(X,Le)},$$slots:{default:!0}});var be=l(ve,2);ie(be,{autocomplete:"off",placeholder:"Phone",get value(){return t().user_values.phone},set value(X){t(t().user_values.phone=X,!0)},get error(){return e(T).phone},set error(X){e(T).phone=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("PHONE");r(X,Le)},$$slots:{default:!0}});var $e=l(be,2);ie($e,{type:"date",autocomplete:"off",placeholder:"Birthdate",get value(){return t().user_values.birthdate},set value(X){t(t().user_values.birthdate=X,!0)},get error(){return e(T).birthdate},set error(X){e(T).birthdate=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("BIRTHDATE");r(X,Le)},$$slots:{default:!0}});var pe=l($e,2);oe(pe,"margin-top","-3px");var je=l(c(pe),2);zt(je,{get options(){return e(E)},searchThreshold:4,get items(){return t().roles},set items(X){t(t().roles=X,!0)}}),v(pe);var fe=l(pe,2),de=l(c(fe),2);zt(de,{get options(){return e(o)},searchThreshold:4,get items(){return t().groups},set items(X){t(t().groups=X,!0)}}),v(fe);var ye=l(fe,2);oe(ye,"margin-top","12px");var we=l(c(ye),2),Pe=c(we);Be(Pe,{get selected(){return e(u)},set selected(X){a(u,n(X))}}),v(we),v(ye);var Ce=l(ye,2);{var xe=X=>{var Ee=Ke(()=>Da(new Date));ie(X,{type:"datetime-local",step:"60",width:"16rem",get min(){return e(Ee)},max:"2099-01-01T00:00",get value(){return e(I)},set value(Le){a(I,n(Le))},$$events:{input:w},children:(Le,St)=>{q();var ae=B("USER EXPIRES");r(Le,ae)},$$slots:{default:!0}})};P(Ce,X=>{e(u)&&X(xe)})}var Re=l(Ce,2);oe(Re,"margin-top","12px");var H=l(c(Re),2),Ie=c(H,!0);K(()=>Y(Ie,ht(t().created_at))),v(H),v(Re);var ge=l(Re,2),Ue=l(c(ge),2),Je=c(Ue);{var rt=X=>{var Ee=B();K(()=>Y(Ee,ht(t().last_login))),r(X,Ee)},vt=X=>{var Ee=B("Never");r(X,Ee)};P(Je,X=>{t().last_login?X(rt):X(vt,!1)})}v(Ue),v(ge);var qe=l(ge,2),Fe=l(c(qe),2),lt=c(Fe);{var xt=X=>{var Ee=B();K(()=>Y(Ee,ht(t().password_expires))),r(X,Ee)},$t=X=>{var Ee=B("Never");r(X,Ee)};P(lt,X=>{t().password_expires?X(xt):X($t,!1)})}v(Fe),v(qe);var Qe=l(qe,2),et=l(c(Qe),2),gt=c(et),ct=Ke(()=>!!t().webauthn_user_id);ea(gt,{get check(){return e(ct)}}),v(et),v(Qe);var It=l(Qe,2),at=c(It);Se(at,{level:1,width:"4rem",$$events:{click:y},children:(X,Ee)=>{q();var Le=B("SAVE");r(X,Le)},$$slots:{default:!0}});var st=l(at,2);{var se=X=>{var Ee=Pi();r(X,Ee)};P(st,X=>{e(i)&&X(se)})}var Ae=l(st,2);{var ze=X=>{var Ee=zi(),Le=c(Ee,!0);v(Ee),K(()=>Y(Le,e(d))),r(X,Ee)};P(Ae,X=>{e(d)&&X(ze)})}v(It),v(b),K(()=>Y(S,t().id)),r(_,b),ne()}var Ui=A('The user has not initialized this account yet.
You may send out a new Reset E-Mail, if the user has not received one.
',1),qi=A(`This is a passkey only account type.
This means, that this user is using the passwordless login flow only and does not have any password.
If the user has lost all his keys and you have verified everything, you may reset his account type and
- send out a new reset E-Mail, so the user can get access again.
To reset the account, navigate to 'MFA' and delete all registered keys for this user.
`),Gi=A(` You can either set and reset a user's password or send out a new reset E-Mail for self-service.
`,1),Wi=A('Success
'),Ki=A('
'),Fi=A('
'),Vi=A('
');function Bi(_,s){le(s,!0);let t=G(s,"user",27,()=>n({}));const d="inherit";let i=C(!1),g=C(""),f=C(""),u=C(!1),I=C(!1),E=C(void 0),o="330px",$=C(void 0),m=C(!1),T=n({new:"",verify:""});Te(()=>{e(I)&&a(E,n(setTimeout(()=>{a(I,!1),s.onSave()},3e3)))}),Ne(async()=>{if(!e($)){let z=await ja(),O=await z.json();z.ok?a($,n(O)):a(f,n(O.message))}});async function k(){return a(f,""),await h()?e(m)?!0:(a(f,"You must follow the password policy"),!1):!1}async function h(){return a(f,""),T.new.length>256?(a(f,"max 256 characters"),!1):T.new!==T.verify?(a(f,"New passwords do not match"),!1):!0}async function y(){let z={email:t().email};a(g,""),a(i,!0);let O=await Nr(z);if(O.ok)a(u,!0);else{let U=await O.json();a(g,n(U.message))}a(i,!1)}async function w(){let z={email:t().email,given_name:t().given_name,family_name:t().family_name,roles:t().roles,groups:t().groups,enabled:t().enabled,email_verified:t().email_verified};if(T.new.length>0){if(!(await h()&&await k()))return;z.password=T.new}a(f,""),a(i,!0);let O=await Ha(t().id,z);if(O.ok)a(I,!0);else{let U=await O.json();a(f,n(U.message))}a(i,!1)}function b(){const z=e($).length_min>24?e($).length_min:24;let O=Ss(z,e($).include_lower_case,e($).include_upper_case,e($).include_digits,e($).include_special);T.new=O,T.verify=O}var x=Vi(),p=c(x);{var S=z=>{var O=Ui(),U=l(ee(O),2);Se(U,{width:d,level:2,get isLoading(){return e(i)},set isLoading(Q){a(i,n(Q))},$$events:{click:y},children:(Q,M)=>{q();var W=B("SEND RESET E-MAIL");r(Q,W)},$$slots:{default:!0}}),r(z,O)},L=z=>{var O=me(),U=ee(O);{var Q=W=>{var J=qi();r(W,J)},M=W=>{var J=Gi(),Z=ee(J);{var re=de=>{Zs(de,{get password(){return T.new},get policy(){return e($)},get accepted(){return e(m)},set accepted(ye){a(m,n(ye))}})};P(Z,de=>{e($)&&de(re)})}var ve=l(Z,2),be=Ke(()=>T.new.length>0&&T.new===T.verify);Wt(ve,{type:"password",get width(){return o},autocomplete:"off",get showCopy(){return e(be)},get value(){return T.new},set value(de){T.new=de},$$events:{blur:h},children:(de,ye)=>{q();var we=B("New Password");r(de,we)},$$slots:{default:!0}});var $e=l(ve,2);Wt($e,{type:"password",get width(){return o},autocomplete:"off",get value(){return T.verify},set value(de){T.verify=de},$$events:{blur:h},children:(de,ye)=>{q();var we=B("New Password");r(de,we)},$$slots:{default:!0}});var pe=l($e,2);Se(pe,{width:d,level:3,$$events:{click:b},children:(de,ye)=>{q();var we=B("GENERATE RANDOM");r(de,we)},$$slots:{default:!0}});var je=l(pe,4);Se(je,{width:d,level:1,get isLoading(){return e(i)},set isLoading(de){a(i,n(de))},$$events:{click:y},children:(de,ye)=>{q();var we=B("SEND RESET E-MAIL");r(de,we)},$$slots:{default:!0}});var fe=l(je,2);Se(fe,{width:d,get isLoading(){return e(i)},set isLoading(de){a(i,n(de))},$$events:{click:w},children:(de,ye)=>{q();var we=B("SAVE PASSWORD");r(de,we)},$$slots:{default:!0}}),r(W,J)};P(U,W=>{t().account_type==="passkey"?W(Q):W(M,!1)},!0)}r(z,O)};P(p,z=>{t().account_type==="new"?z(S):z(L,!1)})}var D=l(p,2);{var j=z=>{var O=Wi();r(z,O)};P(D,z=>{(e(I)||e(u))&&z(j)})}var N=l(D,2);{var V=z=>{var O=Ki(),U=c(O,!0);v(O),K(()=>Y(U,e(f))),r(z,O)};P(N,z=>{e(f)&&z(V)})}var R=l(N,2);{var F=z=>{var O=Fi(),U=c(O,!0);v(O),K(()=>Y(U,e(g))),r(z,O)};P(R,z=>{e(g)&&z(F)})}v(x),r(_,x),ne()}var Ji=A('
'),Yi=A('Are you sure, you want to delete this user?
');function Hi(_,s){le(s,!0);let t=G(s,"user",27,()=>n({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await Vr(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=Yi(),u=l(c(f),2);Se(u,{level:1,width:"5rem",get isLoading(){return e(d)},set isLoading(o){a(d,n(o))},$$events:{click:g},children:(o,$)=>{q();var m=B("DELETE");r(o,m)},$$slots:{default:!0}});var I=l(u,2);{var E=o=>{var $=Ji(),m=c($,!0);v($),K(()=>Y(m,e(i))),r(o,$)};P(I,o=>{e(i)&&o(E)})}v(f),r(_,f),ne()}var Xi=A('
'),Zi=A('Success
'),Qi=A('Invalidate all existing sessions and refresh tokens for this user?
');function el(_,s){le(s,!0);let t=G(s,"user",27,()=>n({})),d=C(!1),i=C(""),g=C(!1);async function f(){a(i,""),a(d,!0);let m=await Wr(t().id);if(m.ok)a(g,!0);else{let T=await m.json();a(i,n(T.message))}a(d,!1)}var u=Qi(),I=l(c(u),2);Se(I,{level:1,get isLoading(){return e(d)},set isLoading(m){a(d,n(m))},$$events:{click:f},children:(m,T)=>{q();var k=B("LOGOUT");r(m,k)},$$slots:{default:!0}});var E=l(I,2);{var o=m=>{var T=Xi(),k=c(T,!0);v(T),K(()=>Y(k,e(i))),r(m,T)},$=m=>{var T=me(),k=ee(T);{var h=y=>{var w=Zi();r(y,w)};P(k,y=>{e(g)&&y(h)},!0)}r(m,T)};P(E,m=>{e(i)?m(o):m($,!1)})}v(u),r(_,u),ne()}var tl=A('Success
'),al=A('
'),sl=A('Set custom user attributes. All Key / Value pairs will be handled as String / String.
');function rl(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(!1),g=C(!1);Ne(()=>{I()});async function f(){let w=await ma();if(!w.ok)a(t,"Error fetching attr: "+w.body.message);else return await w.json()}async function u(){let w=await Hr(s.user.id);if(!w.ok)a(t,"Error fetching user attr: "+w.body.message);else return await w.json()}async function I(){let w=await f(),b=w.values;if(w){let x=await u();if(x){let p=new Map;for(let S of x.values)p.set(S.key,S.value||"");for(let S of b){let L=p.get(S.name);L?S.value=L:S.value=""}a(d,n([...b]))}}}async function E(){a(t,""),a(g,!0);let w=[];for(let S of e(d)){let L={key:S.name,value:S.value};w.push(L)}let b={values:w},x=await Xr(s.user.id,b),p=await x.json();x.ok?a(i,!0):a(t,n(p.message)),s.onSave(),a(g,!1)}var o=sl(),$=l(c(o),2);We($,17,()=>e(d),yt,(w,b,x)=>{var p=Ke(()=>e(b).desc||"JSON Value");ie(w,{style:"width: 350px",autocomplete:"off",get placeholder(){return e(p)},get value(){return e(b).value},set value(S){e(b).value=S},children:(S,L)=>{q();var D=B();K(()=>Y(D,e(b).name)),r(S,D)},$$slots:{default:!0}})});var m=l($,2);Se(m,{get isLoading(){return e(g)},level:1,width:"4rem",$$events:{click:E},children:(w,b)=>{q();var x=B("SAVE");r(w,x)},$$slots:{default:!0}});var T=l(m,2);{var k=w=>{var b=tl();r(w,b)};P(T,w=>{e(i)&&w(k)})}var h=l(T,2);{var y=w=>{var b=al(),x=c(b,!0);v(b),K(()=>Y(x,e(t))),r(w,b)};P(h,w=>{e(t)&&w(y)})}v(o),r(_,o),ne()}var il=A('This user does not have any active MFA keys.
'),ll=A(''),nl=A('You can delete the users MFA / Security Keys. Be careful though, since this cannot be reverted without user interaction. This is useful, if a user lost his keys and he is not able to log in any more.
',1),ol=A('
'),vl=A('
');function dl(_,s){le(s,!0);let t=G(s,"user",27,()=>n({})),d=C(""),i=C(n([]));Ne(async()=>{await g()});async function g(){let T=await Cs(t().id),k=await T.json();T.ok?a(i,n(k)):console.error("error fetching passkeys: "+k.message)}async function f(T){let k=e(i).length===1,h=await As(t().id,T);if(h.status===200)return await g(),k&&s.onSave(),!0;{let y=await h.json();return a(d,n(y.message)),!1}}var u=vl(),I=c(u);{var E=T=>{var k=il();r(T,k)},o=T=>{var k=nl(),h=l(ee(k),2);We(h,21,()=>e(i),y=>y.name,(y,w)=>{var b=ll(),x=c(b),p=l(c(x),2),S=c(p,!0);v(p),v(x);var L=l(x,2),D=l(c(L),2),j=c(D,!0);K(()=>Y(j,ht(e(w).registered))),v(D),v(L);var N=l(L,2),V=l(c(N),2),R=c(V,!0);K(()=>Y(R,ht(e(w).last_used))),v(V),v(N);var F=l(N,2),z=l(c(F),2),O=c(z);Se(O,{level:4,$$events:{click:()=>f(e(w).name)},children:(U,Q)=>{q();var M=B("DELETE");r(U,M)},$$slots:{default:!0}}),v(z),v(F),v(b),K(()=>Y(S,e(w).name)),r(y,b)}),v(h),r(T,k)};P(I,T=>{e(i).length<1?T(E):T(o,!1)})}var $=l(I,2);{var m=T=>{var k=ol(),h=c(k,!0);v(k),K(()=>Y(h,e(d))),r(T,k)};P($,T=>{e(d)&&T(m)})}v(u),r(_,u),ne()}var cl=A('
');function ul(_,s){le(s,!0);var t=cl(),d=c(t);Ws(d,{get userId(){return s.user.id}}),v(t),r(_,t),ne()}var hl=A('
'),pl=A('
'),ml=A(''),gl=A("
"),fl=A("
"),yl=A("
"),wl=A("
"),bl=A("
"),$l=A("
"),_l=A("
"),kl=A(" ",1),xl=A("
");function ts(_,s){le(s,!0);let t=G(s,"userEmail",3,""),d=G(s,"userId",3,""),i=G(s,"onSave",15),g=C(void 0),f=C(!0),u=C(void 0);const I=["Info","Attributes","Password","MFA","Devices","Logout","Delete"];let E=C(n(I[0]));const o=200,$=o/2;async function m(){const k=await Ts(d());if(k.ok)a(g,n(await k.json()));else{let h=await k.json();console.error(h)}a(f,!1)}function T(){a(u,!1),i()()}Te(()=>{e(u)&&m()}),ot(_,{get show(){return e(u)},set show(k){a(u,n(k))},header:k=>{var h=ml(),y=c(h);Ze(y,{text:"User ID",children:(b,x)=>{var p=hl(),S=c(p,!0);v(p),K(()=>Y(S,d())),r(b,p)},$$slots:{default:!0}});var w=l(y,2);Ze(w,{text:"E-Mail",children:(b,x)=>{var p=pl(),S=c(p,!0);v(p),K(()=>Y(S,t())),r(b,p)},$$slots:{default:!0}}),v(h),r(k,h)},body:k=>{var h=xl(),y=c(h);{var w=x=>{ha(x,{})},b=x=>{var p=kl(),S=ee(p);Dt(S,{labels:I,get selected(){return e(E)},set selected(N){a(E,n(N))}});var L=l(S,2);{var D=N=>{var V=gl(),R=c(V);Mi(R,{get user(){return e(g)},set user(F){a(g,n(F))},get onSave(){return i()},set onSave(F){i(F)}}),v(V),ce(5,V,()=>_e,()=>({delay:$,duration:o})),ce(6,V,()=>_e,()=>({duration:o})),r(N,V)},j=N=>{var V=me(),R=ee(V);{var F=O=>{var U=fl(),Q=c(U);rl(Q,{get user(){return e(g)},set user(M){a(g,n(M))},get onSave(){return i()},set onSave(M){i(M)}}),v(U),ce(5,U,()=>_e,()=>({delay:$,duration:o})),ce(6,U,()=>_e,()=>({duration:o})),r(O,U)},z=O=>{var U=me(),Q=ee(U);{var M=J=>{var Z=yl(),re=c(Z);Bi(re,{get user(){return e(g)},set user(ve){a(g,n(ve))},get onSave(){return i()},set onSave(ve){i(ve)}}),v(Z),ce(5,Z,()=>_e,()=>({delay:$,duration:o})),ce(6,Z,()=>_e,()=>({duration:o})),r(J,Z)},W=J=>{var Z=me(),re=ee(Z);{var ve=$e=>{var pe=wl(),je=c(pe);dl(je,{get user(){return e(g)},set user(fe){a(g,n(fe))},get onSave(){return i()},set onSave(fe){i(fe)}}),v(pe),ce(5,pe,()=>_e,()=>({delay:$,duration:o})),ce(6,pe,()=>_e,()=>({duration:o})),r($e,pe)},be=$e=>{var pe=me(),je=ee(pe);{var fe=ye=>{var we=bl(),Pe=c(we);ul(Pe,{get user(){return e(g)},set user(Ce){a(g,n(Ce))}}),v(we),ce(5,we,()=>_e,()=>({delay:$,duration:o})),ce(6,we,()=>_e,()=>({duration:o})),r(ye,we)},de=ye=>{var we=me(),Pe=ee(we);{var Ce=Re=>{var H=$l(),Ie=c(H);el(Ie,{get user(){return e(g)},set user(ge){a(g,n(ge))}}),v(H),ce(5,H,()=>_e,()=>({delay:$,duration:o})),ce(6,H,()=>_e,()=>({duration:o})),r(Re,H)},xe=Re=>{var H=me(),Ie=ee(H);{var ge=Ue=>{var Je=_l(),rt=c(Je);Hi(rt,{onSave:T,get user(){return e(g)},set user(vt){a(g,n(vt))}}),v(Je),ce(5,Je,()=>_e,()=>({delay:$,duration:o})),ce(6,Je,()=>_e,()=>({duration:o})),r(Ue,Je)};P(Ie,Ue=>{e(E)==="Delete"&&Ue(ge)},!0)}r(Re,H)};P(Pe,Re=>{e(E)==="Logout"?Re(Ce):Re(xe,!1)},!0)}r(ye,we)};P(je,ye=>{e(E)==="Devices"?ye(fe):ye(de,!1)},!0)}r($e,pe)};P(re,$e=>{e(E)==="MFA"?$e(ve):$e(be,!1)},!0)}r(J,Z)};P(Q,J=>{e(E)==="Password"?J(M):J(W,!1)},!0)}r(O,U)};P(R,O=>{e(E)==="Attributes"?O(F):O(z,!1)},!0)}r(N,V)};P(L,N=>{e(E)==="Info"?N(D):N(j,!1)})}r(x,p)};P(y,x=>{e(f)?x(w):x(b,!1)})}v(h),r(k,h)},$$slots:{header:!0,body:!0}}),ne()}var El=A(''),Il=A('
'),Sl=A('');function Cl(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(""),i=C(void 0),g=C("EN"),f=C(!1),u=C(void 0),I=C(n({email:"",family_name:"",given_name:"",roles:[],groups:[]})),E=C(n({}));const o=He().shape({email:he().required("E-Mail is required").email("Bad E-Mail format"),given_name:he().trim().required("Given Name is required").matches(da,"Invalid characters"),family_name:he().trim().required("Family Name is required").matches(da,"Invalid characters")});let $=C(void 0);ga.subscribe(h=>{a($,n(h))});let m=C(void 0);fa.subscribe(h=>{a(m,n(h))});async function T(){if(!await k())return;a(d,"");let h=e(I);if(h.language=e(g).toLowerCase(),e(f)){let w=Ot(e(u));if(!w){a(d,"Invalid Date Input: User Expires");return}h.user_expires=w}let y=await Fr(e(I));if(y.ok)a(I,n({})),a(i,!1),a(I,n({email:"",family_name:"",given_name:"",roles:[],groups:[]})),s.onSave();else{let w=await y.json();a(d,n(w.message))}}async function k(){try{return await o.validate(e(I),{abortEarly:!1}),a(E,n({})),!0}catch(h){return a(E,n(Ye(h))),!1}}ot(_,{get idx(){return t()},set idx(h){t(h)},get show(){return e(i)},set show(h){a(i,n(h))},header:h=>{var y=El();r(h,y)},body:h=>{var y=Sl(),w=c(y);ie(w,{type:"email",autocomplete:"off",placeholder:"E-Mail",get value(){return e(I).email},set value(Z){e(I).email=Z},get error(){return e(E).email},set error(Z){e(E).email=Z},$$events:{input:k},children:(Z,re)=>{q();var ve=B("E-MAIL");r(Z,ve)},$$slots:{default:!0}});var b=l(w,2);ie(b,{autocomplete:"off",placeholder:"Given Name",get value(){return e(I).given_name},set value(Z){e(I).given_name=Z},get error(){return e(E).given_name},set error(Z){e(E).given_name=Z},$$events:{input:k},children:(Z,re)=>{q();var ve=B("GIVEN NAME");r(Z,ve)},$$slots:{default:!0}});var x=l(b,2);ie(x,{autocomplete:"off",placeholder:"Family Name",get value(){return e(I).family_name},set value(Z){e(I).family_name=Z},get error(){return e(E).family_name},set error(Z){e(E).family_name=Z},$$events:{input:k},children:(Z,re)=>{q();var ve=B("FAMILY NAME");r(Z,ve)},$$slots:{default:!0}});var p=l(x,2),S=l(c(p),2),L=c(S);kt(L,{options:Ra,get value(){return e(g)},set value(Z){a(g,n(Z))}}),v(S),v(p);var D=l(p,2),j=l(c(D),2);zt(j,{get options(){return e($)},searchThreshold:4,get items(){return e(I).roles},set items(Z){e(I).roles=Z}}),v(D);var N=l(D,2),V=l(c(N),2);zt(V,{get options(){return e(m)},searchThreshold:4,get items(){return e(I).groups},set items(Z){e(I).groups=Z}}),v(N);var R=l(N,2);oe(R,"margin-top","12px");var F=l(c(R),2),z=c(F);Be(z,{get selected(){return e(f)},set selected(Z){a(f,n(Z))}}),v(F),v(R);var O=l(R,2);{var U=Z=>{ie(Z,{type:"datetime-local",step:"60",width:"18rem",get min(){return new Date().toISOString().split(".")[0]},max:"2099-01-01T00:00",get value(){return e(u)},set value(re){a(u,n(re))},$$events:{input:k},children:(re,ve)=>{q();var be=B("USER EXPIRES");r(re,be)},$$slots:{default:!0}})};P(O,Z=>{e(f)&&Z(U)})}var Q=l(O,2),M=c(Q);Se(M,{level:1,$$events:{click:T},children:(Z,re)=>{q();var ve=B("SAVE");r(Z,ve)},$$slots:{default:!0}});var W=l(M,2);{var J=Z=>{var re=Il(),ve=c(re,!0);v(re),K(()=>Y(ve,e(d))),r(Z,re)};P(W,Z=>{e(d)&&Z(J)})}v(Q),v(y),r(h,y)},$$slots:{header:!0,body:!0}}),ne()}var Al=Xe(' ');function Tl(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Al();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Ll=Xe(' ');function Nl(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Ll();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Rl=A(" "),Dl=A(' '),jl=A('
'),Pl=A('
');function zl(_,s){le(s,!0);let t=G(s,"items",19,()=>[]),d=G(s,"resItems",15),i=G(s,"options",19,()=>[]),g=G(s,"firstDirReverse",3,!1),f=C(""),u=C(1),I;Ne(()=>{i().length>0&&(a(f,n(i()[0].label)),E()),g()&&$(),o()});function E(){for(let w of i())if(w.label===e(f)){I=w.callback;break}I||console.error("Could not find a valid callback function in order options for label "+e(f))}function o(){if(I){let w=[...t()];w.sort((b,x)=>I(b,x)*e(u)),d([...w])}}function $(){a(u,e(u)*-1),o()}Te(()=>{t()&&o()}),Te(()=>{e(f)&&(E(),o())});var m=Pl(),T=c(m);{var k=w=>{Ze(w,{text:"Order by",yOffset:-30,children:(b,x)=>{var p=Dl();We(p,21,i,yt,(S,L)=>{var D=Rl(),j={},N=c(D,!0);v(D),K(()=>{j!==(j=e(L).label)&&(D.value=(D.__value=e(L).label)==null?"":e(L).label),Y(N,e(L).label)}),r(S,D)}),v(p),Ka(p,()=>e(f),S=>a(f,S)),r(b,p)},$$slots:{default:!0}})};P(T,w=>{i().length>1&&w(k)})}var h=l(T,2);{var y=w=>{var b=jl();b.__click=$;var x=c(b);{var p=L=>{Nl(L,{})},S=L=>{Tl(L,{})};P(x,L=>{e(u)===1?L(p):L(S,!1)})}v(b),Me("keypress",b,$),r(w,b)};P(h,w=>{i().length>0&&w(y)})}v(m),r(_,m),ne()}ut(["click"]);var Ol=A('
'),Ml=A('');function Lt(_,s){le(s,!0);let t=G(s,"items",31,()=>n([])),d=G(s,"resItems",15),i=G(s,"searchOptions",27,()=>n([])),g=G(s,"orderOptions",27,()=>n([])),f=G(s,"firstDirReverse",3,!1),u=G(s,"useServerSideIdx",15,""),I=G(s,"isSearchFiltered",15,!1),E=G(s,"search",15,""),o=C(n([]));var $=Ml(),m=c($),T=c(m);zl(T,{get items(){return e(o)},get options(){return g()},get firstDirReverse(){return f()},get resItems(){return d()},set resItems(b){d(b)}}),v(m);var k=l(m,2);{var h=b=>{var x=Ol();r(b,x)};P(k,b=>{g().length>0&&b(h)})}var y=l(k,2),w=c(y);es(w,{get options(){return i()},get items(){return t()},set items(b){t(b)},get resItems(){return e(o)},set resItems(b){a(o,n(b))},get useServerSideIdx(){return u()},set useServerSideIdx(b){u(b)},get isSearchFiltered(){return I()},set isSearchFiltered(b){I(b)},get search(){return E()},set search(b){E(b)}}),v(y),v($),r(_,$),ne()}var Ul=(_,s)=>a(s,e(s)-1),ql=A('
'),Gl=(_,s,t)=>a(s,n(e(t))),Wl=A('
'),Kl=(_,s)=>a(s,e(s)+1),Fl=A('
'),Vl=A('');function jt(_,s){le(s,!0);let t=G(s,"items",27,()=>n([])),d=G(s,"resItems",31,()=>n([]));const i=[5,7,10,15,20,30,50,100],g=16;let f=C(n([])),u=C(1),I=5,E=C(15),o=C(!1),$=C(!1),m=C(n([]));Te(()=>{e(E)&&a(u,1)}),Te(()=>{if(e(E)&&t().length>0){let D=[];for(let j=0;j{if(e(u)){let D=[],j=Math.floor(I/2);if(e(f).length<=I){for(let N=1;N<=e(f).length;N++)D.push(N);a(o,!1),a($,!1)}else if(e(u)<=j){for(let N=1;N<=I;N++)D.push(N);a(o,!1),a($,!0)}else if(e(u)>e(f).length-j-1){for(let N=e(f).length-I;N<=e(f).length-1;N++)D.push(N+1);a(o,!0),a($,!1)}else{for(let N=e(u)-j;N{var j=ql();j.__click=[Ul,u];var N=c(j);Zt(N,{width:g}),v(j),Me("keypress",j,()=>a(u,e(u)-1)),r(D,j)};P(k,D=>{e(o)&&D(h)})}var y=l(k,2);We(y,21,()=>e(m),yt,(D,j)=>{var N=Wl();N.__click=[Gl,u,j];var V=c(N,!0);v(N),K(()=>{Et(N,"selected",e(u)===e(j)),Y(V,e(j))}),Me("keypress",N,()=>a(u,n(e(j)))),r(D,N)}),v(y);var w=l(y,2);{var b=D=>{var j=Fl();j.__click=[Kl,u];var N=c(j);Zt(N,{width:g}),v(j),Me("keypress",j,()=>a(u,e(u)+1)),r(D,j)};P(w,D=>{e($)&&D(b)})}var x=l(w,2),p=l(c(x));kt(p,{options:i,width:"50px",get value(){return e(E)},set value(D){a(E,n(D))}}),v(x);var S=l(x,2),L=c(S);v(S),v(T),K(()=>Y(L,`Total: ${t().length??""}`)),r(_,T),ne()}ut(["click"]);var Bl=(_,s)=>s()(0,!0),Jl=A('
'),Yl=(_,s)=>s()(0,!1),Hl=A('
'),Xl=A('
'),Zl=A('');function as(_,s){le(s,!0);let t=G(s,"itemsTotal",3,0),d=G(s,"sspPage",11,1),i=G(s,"sspPageSize",11,15),g=G(s,"sspContinuationToken",11,""),f=G(s,"fetchPageCallback",3,(D,j)=>{}),u=G(s,"sspPageSizeChange",3,D=>{});const I=[2,3,5,7,10,15,20,30,50,100],E=16;let o=C(n(i()));Te(()=>{e(o)&&(console.log("page size change in pagination server"),u()(e(o)))});var $=Zl(),m=c($);{var T=D=>{var j=Jl();j.__click=[Bl,f];var N=c(j);Zt(N,{width:E}),v(j),Me("keypress",j,()=>f()(0,!0)),r(D,j)};P(m,D=>{d()!==1&&D(T)})}var k=l(m,2),h=c(k),y=c(h,!0);v(h),v(k);var w=l(k,2);{var b=D=>{var j=Hl();j.__click=[Yl,f];var N=c(j);Zt(N,{width:E}),v(j),Me("keypress",j,()=>f()(0,!1)),r(D,j)};P(w,D=>{g()&&D(b)})}var x=l(w,2),p=l(c(x));kt(p,{options:I,width:"50px",get value(){return e(o)},set value(D){a(o,n(D))}}),v(x);var S=l(x,2);{var L=D=>{var j=Xl(),N=c(j);v(j),K(()=>Y(N,`Total: ${t()??""}`)),r(D,j)};P(S,D=>{t()&&t()>0&&D(L)})}v($),K(()=>Y(y,d())),r(_,$),ne()}ut(["click"]);var Ql=A('
'),en=A('
'),tn=A(' ',1);function an(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(""),u=C(!1),I=C(""),E=C(0),o=C(15),$=C(""),m=C(1),T=C(n([{label:"E-Mail",callback:(M,W)=>M.email.toLowerCase().includes(W.toLowerCase())},{label:"ID",callback:(M,W)=>M.id.toLowerCase().includes(W.toLowerCase())}])),k=C(n([{label:"E-Mail",callback:(M,W)=>M.email.localeCompare(W.email)},{label:"ID",callback:(M,W)=>M.id.localeCompare(W.id)},{label:"Created",callback:(M,W)=>M.created_at{let J=M.last_login||9999999999,Z=W.last_login||9999999999;return J{h(),b(),x()});async function h(M,W,J,Z){let re;if(M===!0?J&&e(m)===2?re=await Ya(Z||e(o),W,void 0,!1):re=await Ya(Z||e(o),W,e($),J):re=await Kr(),!re.ok)a(t,"Error fetching users: "+re.body.message);else{re.status===206?(a(o,n(Number.parseInt(re.headers.get("x-page-size"),10))),a(f,"user"),re.headers.get("x-continuation-token"),a($,n(re.headers.get("x-continuation-token")))):a(f,""),a(E,n(re.headers.get("x-user-count")));let ve=await re.json();a(d,n([...ve])),a(i,n([...ve]))}}async function y(M,W){await h(!0,M,W),W?a(m,e(m)-1):a(m,e(m)+1)}async function w(M){a($,""),await h(!0,0,!1,M),a(m,1)}async function b(){let M=await Xa();if(!M.ok)a(t,"Error fetching roles: "+M.body.message);else{let W=await M.json();hi.set(W),ga.set(W.map(J=>J.name))}}async function x(){let M=await Ba();if(!M.ok)a(t,"Error fetching groups: "+M.body.message);else{let W=await M.json();pi.set(W),fa.set(W.map(J=>J.name))}}function p(){h(),b(),x(),a(I,"")}q();var S=tn(),L=ee(S),D=l(L),j=c(D);Lt(j,{get items(){return e(d)},get resItems(){return e(i)},set resItems(M){a(i,n(M))},get searchOptions(){return e(T)},set searchOptions(M){a(T,n(M))},get orderOptions(){return e(k)},set orderOptions(M){a(k,n(M))},get useServerSideIdx(){return e(f)},set useServerSideIdx(M){a(f,n(M))},get isSearchFiltered(){return e(u)},set isSearchFiltered(M){a(u,n(M))},get search(){return e(I)},set search(M){a(I,n(M))}});var N=l(j,2);Cl(N,{onSave:p});var V=l(N,2),R=c(V);{var F=M=>{var W=me(),J=ee(W);We(J,17,()=>e(i),Z=>Z.id,(Z,re)=>{var ve=Ql(),be=c(ve);ts(be,{get userId(){return e(re).id},get userEmail(){return e(re).email},onSave:p}),v(ve),r(Z,ve)}),r(M,W)},z=M=>{var W=me(),J=ee(W);We(J,17,()=>e(g),Z=>Z.id,(Z,re)=>{var ve=en(),be=c(ve);ts(be,{get userId(){return e(re).id},get userEmail(){return e(re).email},onSave:p}),v(ve),r(Z,ve)}),r(M,W)};P(R,M=>{e(f)&&!e(u)?M(F):M(z,!1)})}v(V);var O=l(V,2);{var U=M=>{as(M,{get itemsTotal(){return e(E)},fetchPageCallback:y,sspPageSizeChange:w,get sspPage(){return e(m)},set sspPage(W){a(m,n(W))},get sspPageSize(){return e(o)},set sspPageSize(W){a(o,n(W))},get sspContinuationToken(){return e($)},set sspContinuationToken(W){a($,n(W))}})},Q=M=>{jt(M,{get items(){return e(i)},set items(W){a(i,n(W))},get resItems(){return e(g)},set resItems(W){a(g,n(W))}})};P(O,M=>{e(f)&&!e(u)?M(U):M(Q,!1)})}v(D),K(()=>Y(L,`${e(t)??""} `)),r(_,S),ne()}var sn=A('
');function bt(_,s){le(s,!0);let t=G(s,"eventsCollapsed",11,!0),d=G(s,"eventsWide",11,!1);var i=sn(),g=c(i);At(g,()=>s.children??Ct),v(i),K(()=>{Et(i,"mr",!t()&&!d()),Et(i,"mrCollapsed",t()&&!d()),Et(i,"mrWide",!t()&&d())}),r(_,i),ne()}var rn=A('Success
'),ln=A('
'),nn=A('');function on(_,s){le(s,!0);let t=G(s,"role",31,()=>n({})),d=C(""),i=C(!1),g=C(void 0);Te(()=>{e(i)&&a(g,n(setTimeout(()=>{a(i,!1),s.onSave()},2e3)))}),Ne(()=>()=>clearTimeout(e(g)));let f=C(n({}));const u=He().shape({name:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});async function I(){if(a(d,""),!await E()){a(d,"Invalid input");return}let S={role:t().name.trim()},L=await ni(t().id,S);if(L.ok)a(i,!0);else{let D=await L.json();a(d,n(D.message))}}async function E(){try{return await u.validate(t(),{abortEarly:!1}),a(f,n({})),!0}catch(S){return a(f,n(Ye(S))),!1}}var o=nn(),$=c(o),m=l(c($),2),T=c(m,!0);v(m),v($);var k=l($,2),h=Ke(()=>t().name==="rauthy_admin");ie(k,{autocomplete:"off",placeholder:"Role Name",get disabled(){return e(h)},get value(){return t().name},set value(S){t(t().name=S,!0)},get error(){return e(f).name},set error(S){e(f).name=S},$$events:{input:E},children:(S,L)=>{q();var D=B("ROLE NAME");r(S,D)},$$slots:{default:!0}});var y=l(k,2);Se(y,{level:1,width:"4rem",$$events:{click:I},children:(S,L)=>{q();var D=B("SAVE");r(S,D)},$$slots:{default:!0}});var w=l(y,2);{var b=S=>{var L=rn();r(S,L)};P(w,S=>{e(i)&&S(b)})}var x=l(w,2);{var p=S=>{var L=ln(),D=c(L,!0);v(L),K(()=>Y(D,e(d))),r(S,L)};P(x,S=>{e(d)&&S(p)})}v(o),K(()=>Y(T,t().id)),r(_,o),ne()}var vn=A('Anti-Lockout Rule: The rauthy_admin role cannot be deleted.
'),dn=A('
'),cn=A('Are you sure, you want to delete this role?
',1),un=A('
');function hn(_,s){le(s,!0);let t=G(s,"role",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await oi(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=un(),u=c(f);{var I=o=>{var $=vn();r(o,$)},E=o=>{var $=cn(),m=l(ee($),2);Se(m,{level:1,get isLoading(){return e(d)},set isLoading(h){a(d,n(h))},$$events:{click:g},children:(h,y)=>{q();var w=B("DELETE");r(h,w)},$$slots:{default:!0}});var T=l(m,2);{var k=h=>{var y=dn(),w=c(y,!0);v(y),K(()=>Y(w,e(i))),r(h,y)};P(T,h=>{e(i)&&h(k)})}r(o,$)};P(u,o=>{t().name==="rauthy_admin"?o(I):o(E,!1)})}v(f),r(_,f),ne()}var pn=A('
'),mn=A('
'),gn=A(''),fn=A("
"),yn=A("
"),wn=A("
");function bn(_,s){le(s,!0);let t=G(s,"role",31,()=>n({})),d=G(s,"onSave",15),i=C(void 0);const g=["Config","Delete"];let f=C(n(g[0]));const u=200,I=u/2;function E(){a(i,!1),d()()}ot(_,{get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=gn(),m=c($);Ze(m,{text:"Role ID",children:(k,h)=>{var y=pn(),w=c(y,!0);v(y),K(()=>Y(w,t().id)),r(k,y)},$$slots:{default:!0}});var T=l(m,2);Ze(T,{text:"Role Name",children:(k,h)=>{var y=mn(),w=c(y,!0);v(y),K(()=>Y(w,t().name)),r(k,y)},$$slots:{default:!0}}),v($),r(o,$)},body:o=>{var $=wn(),m=c($);Dt(m,{labels:g,get selected(){return e(f)},set selected(y){a(f,n(y))}});var T=l(m,2);{var k=y=>{var w=fn(),b=c(w);on(b,{get role(){return t()},set role(x){t(x)},get onSave(){return d()},set onSave(x){d(x)}}),v(w),ce(5,w,()=>_e,()=>({delay:I,duration:u})),ce(6,w,()=>_e,()=>({duration:u})),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=p=>{var S=yn(),L=c(S);hn(L,{get role(){return t()},onSave:E}),v(S),ce(5,S,()=>_e,()=>({delay:I,duration:u})),ce(6,S,()=>_e,()=>({duration:u})),r(p,S)};P(b,p=>{e(f)==="Delete"&&p(x)},!0)}r(y,w)};P(T,y=>{e(f)==="Config"?y(k):y(h,!1)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var $n=A(''),_n=A('Success
'),kn=A('
'),xn=A('
');function En(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(void 0),i=C(n({role:""})),g=C(""),f=C(!1),u=C(void 0),I=C(n({}));const E=He().shape({role:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});Te(()=>{e(f)&&a(u,n(setTimeout(()=>{a(f,!1),a(i,n({role:""})),a(d,!1),s.onSave()},1500)))}),Ne(()=>()=>clearTimeout(e(u)));async function o(){if(a(g,""),!await $()){a(g,"Invalid input");return}e(i).role=e(i).role.trim();let m=await li(e(i));if(m.ok)a(f,!0);else{let T=await m.json();a(g,n(T.message))}}async function $(){try{return await E.validate(e(i),{abortEarly:!1}),a(I,n({})),!0}catch(m){return a(I,n(Ye(m))),!1}}ot(_,{get idx(){return t()},set idx(m){t(m)},get show(){return e(d)},set show(m){a(d,n(m))},header:m=>{var T=$n();r(m,T)},body:m=>{var T=xn(),k=c(T);ie(k,{autocomplete:"off",placeholder:"Role Name",get value(){return e(i).role},set value(p){e(i).role=p},get error(){return e(I).role},set error(p){e(I).role=p},$$events:{input:$},children:(p,S)=>{q();var L=B("ROLE NAME");r(p,L)},$$slots:{default:!0}});var h=l(k,2);Se(h,{level:1,width:"4rem",$$events:{click:o},children:(p,S)=>{q();var L=B("SAVE");r(p,L)},$$slots:{default:!0}});var y=l(h,2);{var w=p=>{var S=_n();r(p,S)};P(y,p=>{e(f)&&p(w)})}var b=l(y,2);{var x=p=>{var S=kn(),L=c(S,!0);v(S),K(()=>Y(L,e(g))),r(p,S)};P(b,p=>{e(g)&&p(x)})}v(T),r(m,T)},$$slots:{header:!0,body:!0}}),ne()}var In=A('
'),Sn=A(' ',1);function Cn(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(""),u=[{label:"Name",callback:(b,x)=>b.name.toLowerCase().includes(x.toLowerCase())},{label:"ID",callback:(b,x)=>b.id.toLowerCase().includes(x.toLowerCase())}],I=[{label:"Name",callback:(b,x)=>b.name.localeCompare(x.name)},{label:"ID",callback:(b,x)=>b.id.localeCompare(x.id)}];Ne(async()=>{E()});async function E(){let b=await Xa(),x=await b.json();b.ok?a(d,n([...x])):a(t,n(x.message))}function o(){E(),a(f,"")}q();var $=Sn(),m=ee($),T=l(m),k=c(T);Lt(k,{get items(){return e(d)},searchOptions:u,orderOptions:I,get resItems(){return e(i)},set resItems(b){a(i,n(b))},get search(){return e(f)},set search(b){a(f,n(b))}});var h=l(k,2);En(h,{onSave:o});var y=l(h,2);We(y,23,()=>e(g),b=>b.id,(b,x,p)=>{var S=In(),L=c(S);bn(L,{onSave:o,get role(){return e(d)[e(p)]},set role(D){e(d)[e(p)]=D}}),v(S),r(b,S)}),v(y);var w=l(y,2);jt(w,{get items(){return e(i)},set items(b){a(i,n(b))},get resItems(){return e(g)},set resItems(b){a(g,n(b))}}),q(2),v(T),K(()=>Y(m,`${e(t)??""} `)),r(_,$),ne()}var An=A(''),Tn=A('Success
'),Ln=A('
'),Nn=A('
');function Rn(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(void 0),i=C(n({group:""})),g=C(""),f=C(!1),u=C(void 0),I=C(n({}));const E=He().shape({group:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});Te(()=>{e(f)&&a(u,n(setTimeout(()=>{s.onSave(),a(f,!1),a(i,n({group:""})),a(d,!1)},1500)))}),Ne(()=>()=>clearTimeout(e(u)));async function o(){if(a(g,""),!await $()){a(g,"Invalid input");return}e(i).group=e(i).group.trim();let m=await Ir(e(i));if(m.ok)a(f,!0);else{let T=await m.json();a(g,n(T.message))}}async function $(){try{return await E.validate(e(i),{abortEarly:!1}),a(I,n({})),!0}catch(m){return a(I,n(Ye(m))),!1}}ot(_,{get idx(){return t()},set idx(m){t(m)},get show(){return e(d)},set show(m){a(d,n(m))},header:m=>{var T=An();r(m,T)},body:m=>{var T=Nn(),k=c(T);ie(k,{autocomplete:"off",placeholder:"Group Name",get value(){return e(i).group},set value(p){e(i).group=p},get error(){return e(I).group},set error(p){e(I).group=p},$$events:{input:$},children:(p,S)=>{q();var L=B("GROUP NAME");r(p,L)},$$slots:{default:!0}});var h=l(k,2);Se(h,{level:1,width:"4rem",$$events:{click:o},children:(p,S)=>{q();var L=B("SAVE");r(p,L)},$$slots:{default:!0}});var y=l(h,2);{var w=p=>{var S=Tn();r(p,S)};P(y,p=>{e(f)&&p(w)})}var b=l(y,2);{var x=p=>{var S=Ln(),L=c(S,!0);v(S),K(()=>Y(L,e(g))),r(p,S)};P(b,p=>{e(g)&&p(x)})}v(T),r(m,T)},$$slots:{header:!0,body:!0}}),ne()}var Dn=A('Success
'),jn=A('
'),Pn=A('');function zn(_,s){le(s,!0);let t=G(s,"group",31,()=>n({})),d=C(""),i=C(!1),g=C(void 0);Te(()=>{e(i)&&a(g,n(setTimeout(()=>{a(i,!1),s.onSave()},2e3)))}),Ne(()=>()=>clearTimeout(e(g)));let f=C(n({}));const u=He().shape({name:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});async function I(){if(a(d,""),!await E()){a(d,"Invalid input");return}let p={group:t().name.trim()},S=await Sr(t().id,p);if(S.ok)a(i,!0);else{let L=await S.json();a(d,n(L.message))}}async function E(){try{return await u.validate(t(),{abortEarly:!1}),a(f,n({})),!0}catch(p){return a(f,n(Ye(p))),!1}}var o=Pn(),$=c(o),m=l(c($),2),T=c(m,!0);v(m),v($);var k=l($,2);ie(k,{autocomplete:"off",placeholder:"Group Name",get value(){return t().name},set value(p){t(t().name=p,!0)},get error(){return e(f).name},set error(p){e(f).name=p},$$events:{input:E},children:(p,S)=>{q();var L=B("GROUP NAME");r(p,L)},$$slots:{default:!0}});var h=l(k,2);Se(h,{level:1,width:"4rem",$$events:{click:I},children:(p,S)=>{q();var L=B("SAVE");r(p,L)},$$slots:{default:!0}});var y=l(h,2);{var w=p=>{var S=Dn();r(p,S)};P(y,p=>{e(i)&&p(w)})}var b=l(y,2);{var x=p=>{var S=jn(),L=c(S,!0);v(S),K(()=>Y(L,e(d))),r(p,S)};P(b,p=>{e(d)&&p(x)})}v(o),K(()=>Y(T,t().id)),r(_,o),ne()}var On=A('
'),Mn=A('Are you sure, you want to delete this group?
');function Un(_,s){le(s,!0);let t=G(s,"group",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await Cr(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=Mn(),u=l(c(f),2);Se(u,{level:1,get isLoading(){return e(d)},set isLoading(o){a(d,n(o))},$$events:{click:g},children:(o,$)=>{q();var m=B("DELETE");r(o,m)},$$slots:{default:!0}});var I=l(u,2);{var E=o=>{var $=On(),m=c($,!0);v($),K(()=>Y(m,e(i))),r(o,$)};P(I,o=>{e(i)&&o(E)})}v(f),r(_,f),ne()}var qn=A('
'),Gn=A('
'),Wn=A(''),Kn=A("
"),Fn=A("
"),Vn=A("
");function Bn(_,s){le(s,!0);let t=G(s,"group",31,()=>n({})),d=C(void 0);const i=["Config","Delete"];let g=C(n(i[0]));const f=200,u=f/2;function I(){a(d,!1),s.onSave()}ot(_,{get show(){return e(d)},set show(E){a(d,n(E))},header:E=>{var o=Wn(),$=c(o);Ze($,{text:"Group ID",children:(T,k)=>{var h=qn(),y=c(h,!0);v(h),K(()=>Y(y,t().id)),r(T,h)},$$slots:{default:!0}});var m=l($,2);Ze(m,{text:"Group Name",children:(T,k)=>{var h=Gn(),y=c(h,!0);v(h),K(()=>Y(y,t().name)),r(T,h)},$$slots:{default:!0}}),v(o),r(E,o)},body:E=>{var o=Vn(),$=c(o);Dt($,{labels:i,get selected(){return e(g)},set selected(h){a(g,n(h))}});var m=l($,2);{var T=h=>{var y=Kn(),w=c(y);zn(w,{get onSave(){return s.onSave},get group(){return t()},set group(b){t(b)}}),v(y),ce(5,y,()=>_e,()=>({delay:u,duration:f})),ce(6,y,()=>_e,()=>({duration:f})),r(h,y)},k=h=>{var y=me(),w=ee(y);{var b=x=>{var p=Fn(),S=c(p);Un(S,{get group(){return t()},onSave:I}),v(p),ce(5,p,()=>_e,()=>({delay:u,duration:f})),ce(6,p,()=>_e,()=>({duration:f})),r(x,p)};P(w,x=>{e(g)==="Delete"&&x(b)},!0)}r(h,y)};P(m,h=>{e(g)==="Config"?h(T):h(k,!1)})}v(o),r(E,o)},$$slots:{header:!0,body:!0}}),ne()}var Jn=A('
'),Yn=A(' ',1);function Hn(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=[{label:"Name",callback:(w,b)=>w.name.toLowerCase().includes(b.toLowerCase())},{label:"ID",callback:(w,b)=>w.id.toLowerCase().includes(b.toLowerCase())}],u=[{label:"Name",callback:(w,b)=>w.name.localeCompare(b.name)},{label:"ID",callback:(w,b)=>w.id.localeCompare(b.id)}];Ne(async()=>{I()});async function I(){let w=await Ba(),b=await w.json();w.ok?a(d,n([...b])):a(t,n(b.message))}function E(){I()}q();var o=Yn(),$=ee(o),m=l($),T=c(m);Lt(T,{get items(){return e(d)},searchOptions:f,orderOptions:u,get resItems(){return e(i)},set resItems(w){a(i,n(w))}});var k=l(T,2);Rn(k,{onSave:E});var h=l(k,2);We(h,23,()=>e(g),w=>w.id,(w,b,x)=>{let p=x;var S=Jn(),L=c(S);Bn(L,{onSave:E,get group(){return e(g)[e(p)]},set group(D){e(g)[e(p)]=D}}),v(S),r(w,S)}),v(h);var y=l(h,2);jt(y,{get items(){return e(i)},set items(w){a(i,n(w))},get resItems(){return e(g)},set resItems(w){a(g,n(w))}}),q(2),v(m),K(()=>Y($,`${e(t)??""} `)),r(_,o),ne()}var Xn=A(''),Zn=A('Success
'),Qn=A('
'),eo=A('
');function to(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(void 0),i=C(n({scope:""})),g=C(""),f=C(!1),u=C(void 0),I=C(n({}));const E=He().shape({scope:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});Te(()=>{e(f)&&a(u,n(setTimeout(()=>{s.onSave(),a(f,!1),a(i,n({scope:""})),a(d,!1)},1500)))}),Ne(()=>()=>clearTimeout(e(u)));async function o(){if(a(g,""),!await $()){a(g,"Invalid input");return}e(i).scope=e(i).scope.trim();let m=await vi(e(i));if(m.ok)a(f,!0);else{let T=await m.json();a(g,n(T.message))}}async function $(){try{return await E.validate(e(i),{abortEarly:!1}),a(I,n({})),!0}catch(m){return a(I,n(Ye(m))),!1}}ot(_,{get idx(){return t()},set idx(m){t(m)},get show(){return e(d)},set show(m){a(d,n(m))},header:m=>{var T=Xn();r(m,T)},body:m=>{var T=eo(),k=c(T);ie(k,{autocomplete:"off",placeholder:"Scope Name",get value(){return e(i).scope},set value(p){e(i).scope=p},get error(){return e(I).scope},set error(p){e(I).scope=p},$$events:{input:$},children:(p,S)=>{q();var L=B("SCOPE NAME");r(p,L)},$$slots:{default:!0}});var h=l(k,2);Se(h,{level:1,width:"4rem",$$events:{click:o},children:(p,S)=>{q();var L=B("SAVE");r(p,L)},$$slots:{default:!0}});var y=l(h,2);{var w=p=>{var S=Zn();r(p,S)};P(y,p=>{e(f)&&p(w)})}var b=l(y,2);{var x=p=>{var S=Qn(),L=c(S,!0);v(S),K(()=>Y(L,e(g))),r(p,S)};P(b,p=>{e(g)&&p(x)})}v(T),r(m,T)},$$slots:{header:!0,body:!0}}),ne()}var ao=A('Custom mappings cannot be done for OpenID default scopes and their names cannot be changed.
'),so=A('You can map custom scopes to attributes. All additional attributes, that were configured, can have a custom value for each user. When they are mapped to a scope, they can be included in the Access and / or ID Tokens.
',1),ro=A('Success
'),io=A('
'),lo=A(" ",1),no=A('');function oo(_,s){le(s,!0);let t=G(s,"attrs",27,()=>n([])),d=G(s,"scope",31,()=>n({})),i=C(""),g=C(!1),f=C(void 0),u=C(!1),I=C(n([]));Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1),s.onSave()},2e3)))}),Te(()=>{t()&&a(I,n(t().map(D=>D.name)))}),Ne(()=>(a(u,n(Pa(d().name))),()=>clearTimeout(e(f))));let E=C(n({}));const o=He().shape({name:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});async function $(){if(a(i,""),!await m()){a(i,"Invalid input");return}let D={scope:d().name.trim()};d().attr_include_access.length>0&&(D.attr_include_access=d().attr_include_access),d().attr_include_id.length>0&&(D.attr_include_id=d().attr_include_id);let j=await di(d().id,D);if(j.ok)a(g,!0);else{let N=await j.json();a(i,n(N.message))}}async function m(){try{return await o.validate(d(),{abortEarly:!1}),a(E,n({})),!0}catch(D){return a(E,n(Ye(D))),!1}}var T=no(),k=c(T),h=l(c(k),2),y=c(h,!0);v(h),v(k);var w=l(k,2);ie(w,{autocomplete:"off",placeholder:"Scope Name",get disabled(){return e(u)},get value(){return d().name},set value(D){d(d().name=D,!0)},get error(){return e(E).name},set error(D){e(E).name=D},$$events:{input:m},children:(D,j)=>{q();var N=B("SCOPE NAME");r(D,N)},$$slots:{default:!0}});var b=l(w,4);{var x=D=>{var j=ao();r(D,j)},p=D=>{var j=so(),N=l(ee(j),2);oe(N,"margin-top","-3px");var V=l(c(N),2);zt(V,{get options(){return e(I)},searchThreshold:4,get items(){return d().attr_include_access},set items(z){d(d().attr_include_access=z,!0)}}),v(N);var R=l(N,2);oe(R,"margin-top","-3px");var F=l(c(R),2);zt(F,{get options(){return e(I)},searchThreshold:4,get items(){return d().attr_include_id},set items(z){d(d().attr_include_id=z,!0)}}),v(R),r(D,j)};P(b,D=>{e(u)?D(x):D(p,!1)})}var S=l(b,2);{var L=D=>{var j=lo(),N=ee(j);Se(N,{level:1,width:"4rem",$$events:{click:$},children:(O,U)=>{q();var Q=B("SAVE");r(O,Q)},$$slots:{default:!0}});var V=l(N,2);{var R=O=>{var U=ro();r(O,U)};P(V,O=>{e(g)&&O(R)})}var F=l(V,2);{var z=O=>{var U=io(),Q=c(U,!0);v(U),K(()=>Y(Q,e(i))),r(O,U)};P(F,O=>{e(i)&&O(z)})}r(D,j)};P(S,D=>{e(u)||D(L)})}v(T),K(()=>Y(y,d().id)),r(_,T),ne()}var vo=A('OpenID default scopes cannot be deleted
'),co=A('
'),uo=A('Are you sure, you want to delete this scope?
',1),ho=A('
');function po(_,s){le(s,!0);let t=G(s,"scope",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await ci(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=ho(),u=c(f);{var I=o=>{var $=vo();r(o,$)},E=o=>{var $=uo(),m=l(ee($),2);Se(m,{level:1,get isLoading(){return e(d)},set isLoading(h){a(d,n(h))},$$events:{click:g},children:(h,y)=>{q();var w=B("DELETE");r(h,w)},$$slots:{default:!0}});var T=l(m,2);{var k=h=>{var y=co(),w=c(y,!0);v(y),K(()=>Y(w,e(i))),r(h,y)};P(T,h=>{e(i)&&h(k)})}r(o,$)};P(u,o=>{Pa(t().name)?o(I):o(E,!1)})}v(f),r(_,f),ne()}var mo=A('
'),go=A('
'),fo=A(''),yo=A("
"),wo=A("
"),bo=A("
");function $o(_,s){le(s,!0);let t=G(s,"attrs",15),d=G(s,"scope",31,()=>n({})),i=G(s,"onSave",15),g=C(void 0);const f=["Config","Delete"];let u=C(n(f[0]));const I=200,E=I/2;function o(){a(g,!1),i()()}ot(_,{get show(){return e(g)},set show($){a(g,n($))},header:$=>{var m=fo(),T=c(m);Ze(T,{text:"Scope ID",children:(h,y)=>{var w=mo(),b=c(w,!0);v(w),K(()=>Y(b,d().id)),r(h,w)},$$slots:{default:!0}});var k=l(T,2);Ze(k,{text:"Scope Name",children:(h,y)=>{var w=go(),b=c(w,!0);v(w),K(()=>Y(b,d().name)),r(h,w)},$$slots:{default:!0}}),v(m),r($,m)},body:$=>{var m=bo(),T=c(m);Dt(T,{labels:f,get selected(){return e(u)},set selected(w){a(u,n(w))}});var k=l(T,2);{var h=w=>{var b=yo(),x=c(b);oo(x,{get attrs(){return t()},set attrs(p){t(p)},get scope(){return d()},set scope(p){d(p)},get onSave(){return i()},set onSave(p){i(p)}}),v(b),ce(5,b,()=>_e,()=>({delay:E,duration:I})),ce(6,b,()=>_e,()=>({duration:I})),r(w,b)},y=w=>{var b=me(),x=ee(b);{var p=S=>{var L=wo(),D=c(L);po(D,{get scope(){return d()},onSave:o}),v(L),ce(5,L,()=>_e,()=>({delay:E,duration:I})),ce(6,L,()=>_e,()=>({duration:I})),r(S,L)};P(x,S=>{e(u)==="Delete"&&S(p)},!0)}r(w,b)};P(k,w=>{e(u)==="Config"?w(h):w(y,!1)})}v(m),r($,m)},$$slots:{header:!0,body:!0}}),ne()}var _o=A('
'),ko=A(' ',1);function xo(_,s){le(s,!0);let t=C(n([])),d=C(""),i=C(n([])),g=C(n([])),f=C(n([])),u=C(""),I=[{label:"Name",callback:(p,S)=>p.name.toLowerCase().includes(S.toLowerCase())},{label:"ID",callback:(p,S)=>p.id.toLowerCase().includes(S.toLowerCase())}],E=[{label:"Name",callback:(p,S)=>p.name.localeCompare(S.name)},{label:"ID",callback:(p,S)=>p.id.localeCompare(S.id)}];Ne(()=>{$(),o(),a(u,"")});async function o(){let p=await ma();if(!p.ok)a(d,"Error fetching attributes: "+p.body.message);else{let S=await p.json();a(t,n([...S.values]))}}async function $(){let p=await Za(),S=await p.json();p.ok?a(i,n([...S])):a(d,n(S.message))}function m(){$()}q();var T=ko(),k=ee(T),h=l(k),y=c(h);Lt(y,{get items(){return e(i)},searchOptions:I,orderOptions:E,get resItems(){return e(g)},set resItems(p){a(g,n(p))},get search(){return e(u)},set search(p){a(u,n(p))}});var w=l(y,2);to(w,{onSave:m});var b=l(w,2);We(b,23,()=>e(f),p=>p.id,(p,S,L)=>{var D=_o(),j=c(D);$o(j,{onSave:m,get attrs(){return e(t)},set attrs(N){a(t,n(N))},get scope(){return e(f)[e(L)]},set scope(N){e(f)[e(L)]=N}}),v(D),r(p,D)}),v(b);var x=l(b,2);jt(x,{get items(){return e(g)},set items(p){a(g,n(p))},get resItems(){return e(f)},set resItems(p){a(f,n(p))}}),q(2),v(h),K(()=>Y(k,`${e(d)??""} `)),r(_,T),ne()}var Eo=A(''),Io=A('
');function ss(_,s){let t=G(s,"options",19,()=>[{label:"password",value:!1},{label:"refresh_token",value:!1}]);var d=Io();We(d,21,t,yt,(i,g,f)=>{var u=Eo(),I=c(u),E=c(I,!0);v(I);var o=l(I,2);Be(o,{get selected(){return e(g).value},set selected($){e(g).value=$}}),v(u),K(()=>Y(E,e(g).label)),r(i,u)}),v(d),r(_,d)}var So=A("
");function Co(_,s){le(s,!0);let t=G(s,"validation",19,()=>({})),d=G(s,"value",15),i=G(s,"autocomplete",11,"on"),g=G(s,"validate",15),f=Jt(s,["$$slots","$$events","$$legacy","validation","name","value","width","autocomplete","children","validate"]);g($);let u=C("");const I=na();async function E(){await Bt(),I("input",!0),$()}async function o(){I("blur",!0),$()}function $(){var k;return a(u,""),d()&&((k=t())!=null&&k.regex)&&!d().match(t().regex)?(a(u,n(t().errMsg||"Invalid input")),!1):!0}var m=So(),T=c(m);return ie(T,La({get width(){return s.width},get name(){return s.name},get autocomplete(){return i()}},()=>f,{get value(){return d()},set value(k){d(k)},get error(){return e(u)},set error(k){a(u,n(k))},$$events:{input:E,blur:o},children:(k,h)=>{var y=me(),w=ee(y);At(w,()=>s.children??Ct),r(k,y)},$$slots:{default:!0}})),v(m),ce(7,m,()=>pt,()=>({duration:200})),r(_,m),ne({validateValue:$})}var Ao=A('
'),To=A('
');function Kt(_,s){le(s,!0);let t=G(s,"validation",27,()=>n({required:!1,regex:void 0,errMsg:""})),d=G(s,"values",15),i=G(s,"validate",15),g=G(s,"width",3,"260px"),f=G(s,"optional",3,!1),u=G(s,"autocomplete",15,"on"),I=Jt(s,["$$slots","$$events","$$legacy","validation","values","validate","width","optional","autocomplete","children"]);i(k);let E=C(""),o=C(n([]));const $=na();Ne(()=>{d()||d([]);for(let x of d())e(o).push({name:Mt(),value:x});e(o).push({name:Mt(),value:""})});async function m(){await Bt(),e(o)[e(o).length-1].value?e(o).push({name:Mt(),value:""}):e(o).length>1&&!e(o)[e(o).length-2].value&&a(o,n([...e(o).slice(0,e(o).length-1)])),$("input",!0),k(),d(T())}function T(){k();let x=[];for(let p=0;pe(o),yt,(x,p,S)=>{Co(x,La({width:"calc({width} - 20px)",get validation(){return t()},get name(){return e(p).name}},()=>I,{get value(){return e(p).value},set value(L){e(p).value=L},get validate(){return e(p).validate},set validate(L){e(p).validate=L},get autocomplete(){return u()},set autocomplete(L){u(L)},$$events:{input:m,blur:m},children:(L,D)=>{var j=me(),N=ee(j);At(N,()=>s.children??Ct),r(L,j)},$$slots:{default:!0}}))});var w=l(y,2);{var b=x=>{var p=Ao(),S=c(p,!0);v(p),K(()=>Y(S,e(E))),r(x,p)};P(w,x=>{e(E)&&x(b)})}return v(h),K(()=>oe(h,"width",g())),r(_,h),ne({getValues:T,validateValues:k})}var Lo=A('CAUTION: The FORCE MFA
option for rauthy
itself is managed statically via the ADMIN_FORCE_MFA
config variable and will be overridden with each restart.
'),No=A(`CAUTION: If you FORCE MFA
for this client here, this will only apply to the authorization_code
flow! If you use other flows,
+import"./disclose-version.BDr9Qe-U.js";import{T as K,p as le,o as Ne,U as c,R as l,n as Ct,W as v,a as ne,Q as ee,j as a,g as e,P as C,X as Bt,d as ys,V as q,h as Ke,aP as na,aZ as Ca,b as ws,$ as Aa}from"./index-client.CzqVbBUo.js";import{h as Ta}from"./svelte-head.BSz900xL.js";import{a as r,n as Xe,b as A,c as me,t as B}from"./template.C3U8HW1x.js";import{i as P,p as n}from"./if.BnegfJmL.js";import{p as G,s as bs,a as $s,c as La,r as Jt}from"./props.C_MHtC74.js";import{an as oa,ao as _s,K as ut,t as va,u as ks,a8 as xs,a9 as Es,aa as Is,ab as Na,L as Ra,ap as Ot,n as Ye,aq as Da,ah as ja,w as Ss,ad as Cs,ag as As,al as Ts,ar as qt,as as Pa,at as Ls,au as Ns,a3 as Xt,l as tt,av as Rs,aw as Ds,ax as za,ay as ft,az as js,Z as Oa,aA as Ma,aB as Ua,aC as Gt,aD as da,aE as Ps,aF as zs,aG as Os,aH as qa,aI as Ga,aJ as ca,ak as Ms,Y as Us,aK as qs}from"./dataFetching.CF6CPDU9.js";import{s as ue,t as ce,f as ht,d as nt,a as _e,B as Se,L as ua,e as ha,c as Gs,g as Nt}from"./Button.65naIT6w.js";import{s as oe,t as Et,c as Ws,g as Mt,b as Rt}from"./helpers.BvaXa0cv.js";import{b as dt,a as Ze,S as Be,D as Ks,E as ot,T as Dt,I as Zt,d as Fs,h as Wa,e as Vs,c as Bs}from"./Devices.BImHv0OM.js";import{r as Te}from"./legacy-client.DtCljIS0.js";import{d as pt,e as Me,s as Y,r as pa}from"./render.DOFZNw8l.js";import{s as At}from"./snippet.B82X2vfx.js";import{w as Tt}from"./index.GhyFcvTZ.js";import{a as Qt,C as ea}from"./CheckIcon.DvwC4MNL.js";import{t as Js,c as Ys}from"./tweened.B25itCeH.js";import{A as Hs}from"./AppVersion.CI4QCbex.js";import{e as We,i as yt,b as Ka,O as kt}from"./OptionSelect.CIygkAfc.js";import{c as He,a as he,b as wt,I as ie}from"./Input.BRe7i--g.js";import{P as Wt,I as Fa,a as Va,b as Xs}from"./PasswordInput.BNTSsZot.js";import{P as Zs}from"./PasswordPolicy.DA8XElUB.js";import{b as Qs}from"./this.CLOcaDU7.js";import"./legacy.Cdp_P06_.js";const er=Tt(),tr=Tt(),Yt=Tt(""),ta=Tt(!0);var ar=Xe(' ');function sr(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=ar();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var rr=A('
',1),ir=A('
',1),lr=A('
'),nr=A('
');function or(_,s){le(s,!0);const t=bs(),d=()=>$s(I,"$width",t);let i=G(s,"selected",15,""),g=G(s,"widthExpanded",3,185),f=G(s,"widthCollapsed",3,60),u=G(s,"isExpanded",15,!0);const I=Js(u()?g():f(),{duration:200,easing:Ys});ta.subscribe(p=>u(p)),Yt.subscribe(p=>{p&&i(p)}),Te(()=>{u()?(ta.set(!0),I.set(g())):(ta.set(!1),setTimeout(()=>{I.set(f())},200))}),Te(()=>{i()&&Yt.set(i())}),Ne(()=>{er.set(g()),tr.set(f()),Yt.set(i())});function E(){u(!u())}var o=nr(),$=c(o),m=c($);{var T=p=>{var S=rr(),L=ee(S);L.__click=E;var D=c(L);Qt(D,{}),v(L);var j=l(L,2),N=c(j);At(N,()=>s.logo??Ct),v(j),K(()=>oe(L,"left",`calc(${d()??""}px - 22px)`)),Me("keypress",L,E),ce(1,L,()=>ht,()=>({delay:500,duration:200})),ce(2,L,()=>ht,()=>({duration:100})),ce(1,j,()=>ht,()=>({delay:250,duration:100})),ce(2,j,()=>ht,()=>({duration:20})),r(p,S)},k=p=>{var S=ir(),L=ee(S);L.__click=E,oe(L,"left","3px");var D=c(L);sr(D,{width:24}),v(L);var j=l(L,2);oe(j,"height","10px");var N=l(j,2),V=c(N);At(V,()=>s.logo??Ct),v(N),Me("keypress",L,E),ce(1,L,()=>ht,()=>({delay:500,duration:200})),ce(2,L,()=>ht,()=>({duration:100})),ce(1,N,()=>ht,()=>({delay:250,duration:100})),ce(2,N,()=>ht,()=>({duration:20})),r(p,S)};P(m,p=>{u()?p(T):p(k,!1)})}var h=l(m,2),y=c(h),w=c(y);At(w,()=>s.entries??Ct),v(y),v(h),v($);var b=l($,2);{var x=p=>{var S=lr(),L=c(S);Hs(L,{}),v(S),ce(1,S,()=>ht,()=>({delay:500,duration:200})),ce(2,S,()=>ht,()=>({duration:100})),r(p,S)};P(b,p=>{u()&&p(x)})}v(o),K(()=>{oe(o,"min-width",`${d()??""}px`),oe(o,"width",`${d()??""}px`),oe(o,"padding",u()?"20px 10px":"10px 3px")}),r(_,o),ne()}pt(["click"]);var vr=A('
'),dr=A('
');function mt(_,s){le(s,!0);let t=G(s,"label",3,""),d=G(s,"slotCollapsed",3,!0),i=C(!0),g=C("var(--col-text)"),f=C("");Yt.subscribe(k=>a(f,n(k))),ta.subscribe(k=>a(i,n(k)));let u=C(!1);function I(){e(u)?a(g,"var(--col-err)"):e(f)===t()?a(g,"var(--col-ok)"):a(g,"var(--col-text)")}function E(){Yt.set(t())}Te(()=>{e(f)&&I()}),Te(()=>{e(u)?a(g,"var(--col-err)"):I()});var o=me(),$=ee(o);{var m=k=>{var h=vr();h.__click=E;var y=c(h);At(y,()=>s.children??Ct);var w=l(y,2),b=c(w,!0);v(w),v(h),K(()=>{Et(h,"selected",e(f)===t()),Y(b,t())}),Me("keypress",h,E),Me("mouseenter",h,()=>a(u,!0)),Me("mouseleave",h,()=>a(u,!1)),ce(7,h,()=>ht,()=>({duration:100})),r(k,h)},T=k=>{var h=dr();h.__click=E;var y=c(h);{var w=p=>{var S=me(),L=ee(S);At(L,()=>s.children??Ct),r(p,S)};P(y,p=>{d()&&p(w)})}var b=l(y,2),x=c(b,!0);v(b),v(h),K(()=>{Et(h,"selectedCollapsed",e(f)===t()),Y(x,t())}),Me("keypress",h,E),Me("mouseenter",h,()=>a(u,!0)),Me("mouseleave",h,()=>a(u,!1)),ce(5,h,()=>ht,()=>({delay:200,duration:100})),r(k,h)};P($,k=>{e(i)?k(m):k(T,!1)})}r(_,o),ne()}pt(["click"]);const it={"Content-Type":"application/json",Accept:"application/json"};function De(){return{"csrf-token":oa(),"Content-Type":"application/json",Accept:"application/json"}}async function ke(_){return _.status===403&&(await _.json()).error==="MfaRequired"&&(console.error("MFA is required for a rauthy admin account"),await Ws(3e3),window.location.reload()),(_.status===401||_.status===403)&&window.location.reload(),_}async function cr(){return await fetch("/auth/v1/oidc/certs",{method:"GET",headers:it})}async function ur(){const _=await fetch("/auth/v1/clients",{method:"GET",headers:it});return await ke(_)}async function hr(_){const s=await fetch("/auth/v1/clients",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function pr(_){const s=await fetch(`/auth/v1/clients/${_.id}`,{method:"PUT",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function mr(_){const s=await fetch(`/auth/v1/clients/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function gr(_){const s=await fetch(`/auth/v1/clients/${_}/colors`,{method:"GET",headers:it});return await ke(s)}async function fr(_,s){const t=await fetch(`/auth/v1/clients/${_}/colors`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function yr(_){const s=await fetch(`/auth/v1/clients/${_}/colors`,{method:"DELETE",headers:De()});return await ke(s)}async function wr(_,s){const t=new FormData;t.append("logo",s);const d=await fetch(`/auth/v1/clients/${_}/logo`,{method:"PUT",headers:{"csrf-token":oa()},body:t});return await ke(d)}async function br(_){const s=await fetch(`/auth/v1/clients/${_}/logo`,{method:"DELETE",headers:De()});return await ke(s)}async function $r(_){const s=await fetch(`/auth/v1/clients/${_}/secret`,{method:"POST",headers:De()});return await ke(s)}async function _r(_){const s=await fetch(`/auth/v1/clients/${_}/secret`,{method:"PUT",headers:De()});return await ke(s)}async function kr(){const _=await fetch("/auth/v1/encryption/keys",{method:"GET",headers:it});return await ke(_)}async function xr(_){const s=await fetch("/auth/v1/encryption/migrate",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Er(_){const s=await fetch("/auth/v1/events",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Ba(){const _=await fetch("/auth/v1/groups",{method:"GET",headers:it});return await ke(_)}async function Ir(_){const s=await fetch("/auth/v1/groups",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Sr(_,s){const t=await fetch(`/auth/v1/groups/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function Cr(_){const s=await fetch(`/auth/v1/groups/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Ar(){const _=await fetch("/auth/v1/login_time",{method:"GET",headers:it});return await ke(_)}async function Tr(_){const s=await fetch("/auth/v1/password_hash_times",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Lr(_){const s=await fetch("/auth/v1/password_policy",{method:"PUT",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Nr(_){const s=await fetch("/auth/v1/users/request_reset",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Rr(){return await fetch("/auth/v1/providers",{method:"POST",headers:De()})}async function Dr(_){return await fetch("/auth/v1/providers/create",{method:"POST",headers:De(),body:JSON.stringify(_)})}async function jr(_,s){return await fetch(`/auth/v1/providers/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)})}async function Pr(_){return await fetch(`/auth/v1/providers/${_}`,{method:"DELETE",headers:De()})}async function zr(_){return await fetch(`/auth/v1/providers/${_}/delete_safe`,{method:"GET",headers:De()})}async function Or(_,s){const t=new FormData;t.append("logo",s);const d=await fetch(`/auth/v1/providers/${_}/img`,{method:"PUT",headers:{"csrf-token":oa()},body:t});return await ke(d)}async function Mr(_){return await fetch("/auth/v1/providers/lookup",{method:"POST",headers:De(),body:JSON.stringify(_)})}async function Ur(){const _=await fetch("/auth/v1/oidc/rotate_jwk",{method:"POST",headers:De()});return await ke(_)}async function qr(){const _=await fetch("/auth/v1/sessions",{method:"GET",headers:it});return await ke(_)}async function Ja(_,s,t,d){let i=`/auth/v1/sessions?page_size=${_}`;s&&(i=`${i}&offset=${s}`),d&&(i=`${i}&backwards=${d}`),t&&(i=`${i}&continuation_token=${t}`);const g=await fetch(i,{method:"GET",headers:it});return await ke(g)}async function Gr(){const _=await fetch("/auth/v1/sessions",{method:"DELETE",headers:De()});return await ke(_)}async function Wr(_){const s=await fetch(`/auth/v1/sessions/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Kr(){const _=await fetch("/auth/v1/users",{method:"GET",headers:it});return await ke(_)}async function Ya(_,s,t,d){let i=`/auth/v1/users?page_size=${_}`;s&&(i=`${i}&offset=${s}`),d&&(i=`${i}&backwards=${d}`),t&&(i=`${i}&continuation_token=${t}`);const g=await fetch(i,{method:"GET",headers:it});return await ke(g)}async function Fr(_){const s=await fetch("/auth/v1/users",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Ha(_,s){const t=await fetch(`/auth/v1/users/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function Vr(_){const s=await fetch(`/auth/v1/users/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function ma(){const _=await fetch("/auth/v1/users/attr",{method:"GET",headers:it});return await ke(_)}async function Br(_){const s=await fetch("/auth/v1/users/attr",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function Jr(_,s){const t=await fetch(`/auth/v1/users/attr/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function Yr(_){const s=await fetch(`/auth/v1/users/attr/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Hr(_){const s=await fetch(`/auth/v1/users/${_}/attr`,{method:"GET",headers:it});return await ke(s)}async function Xr(_,s){const t=await fetch(`/auth/v1/users/${_}/attr`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function Zr(){const _=await fetch("/auth/v1/api_keys",{method:"GET",headers:it});return await ke(_)}async function Qr(_){const s=await fetch("/auth/v1/api_keys",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function ei(_){const s=await fetch(`/auth/v1/api_keys/${_.name}`,{method:"PUT",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function ti(_){const s=await fetch(`/auth/v1/api_keys/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function ai(_){const s=await fetch(`/auth/v1/api_keys/${_}/secret`,{method:"PUT",headers:De()});return await ke(s)}async function si(){const _=await fetch("/auth/v1/blacklist",{method:"GET",headers:it});return await ke(_)}async function ri(_){const s=await fetch("/auth/v1/blacklist",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function ii(_){const s=await fetch(`/auth/v1/blacklist/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Xa(){const _=await fetch("/auth/v1/roles",{method:"GET",headers:it});return await ke(_)}async function li(_){const s=await fetch("/auth/v1/roles",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function ni(_,s){const t=await fetch(`/auth/v1/roles/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function oi(_){const s=await fetch(`/auth/v1/roles/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function Za(){const _=await fetch("/auth/v1/scopes",{method:"GET",headers:it});return await ke(_)}async function vi(_){const s=await fetch("/auth/v1/scopes",{method:"POST",headers:De(),body:JSON.stringify(_)});return await ke(s)}async function di(_,s){const t=await fetch(`/auth/v1/scopes/${_}`,{method:"PUT",headers:De(),body:JSON.stringify(s)});return await ke(t)}async function ci(_){const s=await fetch(`/auth/v1/scopes/${_}`,{method:"DELETE",headers:De()});return await ke(s)}async function ui(_,s,t){const d=await fetch(`/auth/v1/search?ty=${_}&idx=${s}&q=${t}`,{method:"GET",headers:it});return await ke(d)}const hi=Tt([]),ga=Tt([]),pi=Tt([]),fa=Tt([]),mi=Tt([]),Qa=Tt([]);var gi=Xe('
');function fi(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=gi();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var yi=Xe('
');function wi(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=yi();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var bi=Xe('
');function $i(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=bi();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var _i=A("
"),ki=A('
'),xi=A('
');function es(_,s){le(s,!0);let t=G(s,"items",27,()=>n([])),d=G(s,"resItems",15),i=G(s,"options",19,()=>[]),g=G(s,"useServerSideIdx",11,""),f=G(s,"isSearchFiltered",15,!1),u=G(s,"search",15,""),I=C(""),E;Ne(()=>{i().length>0&&(a(I,n(i()[0].label)),o())});function o(){for(let j of i())if(j.label===e(I)){E=j.callback;break}E||console.error("Could not find a valid callback function in search options for label "+e(I))}function $(){u("")}function m(){if(u().length<2){d(t()),f(!1);return}d([...t().filter(j=>i().length>0?E(j,u()):j.toLowerCase().includes(u())||j===u())]),f(!0)}async function T(){if(u().length<_s){d(t()),f(!1);return}f(!0);const j=e(I).replaceAll("-","").replaceAll(" ","").toLowerCase();let N=await ui(g(),j,u());N.ok?d(await N.json()):console.error(N)}Te(()=>{e(I)&&o()}),Te(()=>{u()?g()?T():m():(d(t()),f(!1))});var k=xi(),h=c(k);{var y=j=>{Ze(j,{text:"Search by",yOffset:-30,children:(N,V)=>{var R=ki();We(R,21,i,yt,(F,z)=>{var O=_i(),U={},Q=c(O,!0);v(O),K(()=>{U!==(U=e(z).label)&&(O.value=(O.__value=e(z).label)==null?"":e(z).label),Y(Q,e(z).label)}),r(F,O)}),v(R),Ka(R,()=>e(I),F=>a(I,F)),r(N,R)},$$slots:{default:!0}})};P(h,j=>{i().length>1&&j(y)})}var w=l(h,2),b=c(w);nt(b),K(()=>ue(b,"name",Mt()));var x=l(b,2),p=c(x);wi(p,{width:20}),v(x),v(w);var S=l(w,2),L=c(S);L.__click=$;var D=c(L);$i(D,{}),v(L),v(S),v(k),dt(b,u),Me("keypress",L,$),r(_,k),ne()}pt(["click"]);var Ei=(_,s)=>a(s,!e(s)),Ii=A('
'),Si=(_,s,t)=>s(e(t)),Ci=A('
'),Ai=A('
'),Ti=A('
');function Li(_,s){le(s,!0);let t=G(s,"items",31,()=>n([])),d=G(s,"onSelect",3,h=>{}),i=G(s,"mindWidth",3,130),g=G(s,"maxHeight",19,()=>t().length>4?175:120),f=G(s,"searchThreshold",11,5),u=C(n([])),I=C(!1);Te(()=>{t().length<=f()&&a(u,n(t()))});function E(h){a(I,!1),a(u,n(t())),d()(h)}var o=Ti(),$=c(o);$.__click=[Ei,I];var m=c($);fi(m,{}),v($);var T=l($,2);{var k=h=>{var y=Ai(),w=c(y);{var b=p=>{var S=Ii(),L=c(S);es(L,{get items(){return t()},set items(D){t(D)},get resItems(){return e(u)},set resItems(D){a(u,n(D))}}),v(S),K(()=>oe(S,"max-width",`${i()}px`)),r(p,S)};P(w,p=>{t().length>f()&&p(b)})}var x=l(w,2);We(x,21,()=>e(u),yt,(p,S)=>{var L=Ci();L.__click=[Si,E,S];var D=c(L,!0);v(L),K(()=>Y(D,e(S))),Me("keypress",L,()=>E(e(S))),r(p,L)}),v(x),v(y),K(()=>{ue(y,"style",`min-width: ${i()??""}px; max-height: ${g()??""}px`),ue(x,"style",`width: ${i()??""}; max-height: ${(t().length>f()?g()-29:g())??""}px`)}),ce(7,y,()=>_e,()=>({duration:200})),r(h,y)};P(T,h=>{e(I)&&h(k)})}v(o),Me("keypress",$,()=>a(I,!e(I))),r(_,o),ne()}pt(["click"]);var Ni=(_,s,t)=>s()(t.label),Ri=A('
');function Di(_,s){le(s,!0);let t=G(s,"onDelete",3,()=>{});var d=Ri(),i=c(d),g=l(i);g.__click=[Ni,t,s];var f=c(g);Qt(f,{color:"--var(--col-bg)",width:14}),v(g),v(d),K(()=>Y(i,`${s.label??""} `)),Me("keypress",g,()=>t()(s.label)),r(_,d),ne()}pt(["click"]);var ji=A('
');function zt(_,s){le(s,!0);let t=G(s,"items",15),d=G(s,"options",19,()=>[]),i=G(s,"searchThreshold",15,4),g=C(n([]));Ne(()=>{I()});async function f(k){t()||t([]),t().push(k),t([...t()]),await I()}async function u(k){t([...t().filter(h=>h!==k)]),await I()}async function I(){await Bt(),t()||t([]),a(g,n([...d().filter(k=>!t().includes(k))]))}var E=ji(),o=c(E);{var $=k=>{var h=me(),y=ee(h);We(y,17,t,yt,(w,b,x)=>{Di(w,{onDelete:u,get label(){return t()[x]},set label(p){t(t()[x]=p,!0)}})}),r(k,h)};P(o,k=>{var h;((h=t())==null?void 0:h.length)>0&&k($)})}var m=l(o,2);{var T=k=>{Li(k,{onSelect:f,get items(){return e(g)},set items(h){a(g,n(h))},get searchThreshold(){return i()},set searchThreshold(h){i(h)}})};P(m,k=>{e(g)&&e(g).length>0&&k(T)})}v(E),r(_,E),ne()}var Pi=A('
Success
'),zi=A('
'),Oi=A('
');function Mi(_,s){le(s,!0);let t=G(s,"user",31,()=>n({}));t().roles===void 0&&t(t().roles=[],!0),t().groups===void 0&&t(t().groups=[],!0);let d=C(""),i=C(!1),g=C(void 0),f=C(n(t().language.toUpperCase())),u=C(!!t().user_expires),I=C(n(ys(()=>e(u))?ut(t().user_expires,!0):void 0)),E=C(n([]));ga.subscribe(X=>{a(E,n(X))});let o=C(n([]));fa.subscribe(X=>{a(o,n(X))}),Te(()=>{e(i)&&a(g,n(setTimeout(()=>{a(i,!1),s.onSave()},3e3)))});let $=C(n({}));const m=He().shape({email:he().required("E-Mail is required").email("Bad E-Mail format"),given_name:he().trim().required("Given Name is required").matches(va,"Invalid characters"),family_name:he().nullable().trim().matches(ks,"Invalid characters")});let T=C(n({}));const k=He().shape({birthdate:he().nullable().trim().matches(xs,"Invalid characters"),phone:he().nullable().trim().matches(Es,"Format: +..."),street:he().nullable().trim().matches(Is,"Invalid characters"),zip:wt().nullable().min(1e3).max(999999),city:he().nullable().trim().matches(Na,"Invalid characters"),country:he().nullable().trim().matches(Na,"Invalid characters")});Ne(()=>()=>clearTimeout(e(g)));function h(X){X.code==="Enter"&&y()}async function y(){if(!await w())return;a(d,""),console.log(t().user_values);const X={email:t().email,given_name:t().given_name,family_name:t().family_name||null,language:e(f).toLowerCase(),roles:t().roles,groups:t().groups,enabled:t().enabled,email_verified:t().email_verified,user_expires:null,user_values:t().user_values};if(X.user_values.phone&&(X.user_values.phone=X.user_values.phone.replaceAll(" ","")),X.user_values.zip&&(X.user_values.zip=Number.parseInt(X.user_values.zip)),e(u)){let Le=Ot(e(I));if(!Le){a(d,"Invalid Date Input: User Expires");return}X.user_expires=Le}let Ee=await Ha(t().id,X);if(Ee.ok)a(i,!0);else{let Le=await Ee.json();a(d,n(Le.message))}}async function w(){let X=!0;try{await m.validate(t(),{abortEarly:!1}),a($,n({}))}catch(Ee){a($,n(Ye(Ee))),X=!1}try{await k.validate(t().user_values,{abortEarly:!1}),a(T,n({}))}catch(Ee){a(T,n(Ye(Ee))),X=!1}return X}var b=Oi(),x=c(b),p=l(c(x),2),S=c(p,!0);v(p),v(x);var L=l(x,2);oe(L,"margin-top","-5px");var D=c(L);oe(D,"width","107px");var j=l(c(D),2),N=c(j);Be(N,{get selected(){return t().enabled},set selected(X){t(t().enabled=X,!0)}}),v(j),v(D);var V=l(D,2);oe(V,"width","135px");var R=l(c(V),2),F=c(R);Be(F,{get selected(){return t().email_verified},set selected(X){t(t().email_verified=X,!0)}}),v(R),v(V),v(L);var z=l(L,2);ie(z,{type:"email",autocomplete:"off",placeholder:"E-Mail",get value(){return t().email},set value(X){t(t().email=X,!0)},get error(){return e($).email},set error(X){e($).email=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("E-MAIL");r(X,Le)},$$slots:{default:!0}});var O=l(z,2);ie(O,{autocomplete:"off",placeholder:"Given Name",get value(){return t().given_name},set value(X){t(t().given_name=X,!0)},get error(){return e($).given_name},set error(X){e($).given_name=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("GIVEN NAME");r(X,Le)},$$slots:{default:!0}});var U=l(O,2);ie(U,{autocomplete:"off",placeholder:"Family Name",get value(){return t().family_name},set value(X){t(t().family_name=X,!0)},get error(){return e($).family_name},set error(X){e($).family_name=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("FAMILY NAME");r(X,Le)},$$slots:{default:!0}});var Q=l(U,2),M=l(c(Q),2),W=c(M);kt(W,{options:Ra,get value(){return e(f)},set value(X){a(f,n(X))}}),v(M),v(Q);var J=l(Q,2);ie(J,{autocomplete:"off",placeholder:"Street",get value(){return t().user_values.street},set value(X){t(t().user_values.street=X,!0)},get error(){return e(T).street},set error(X){e(T).street=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("STREET");r(X,Le)},$$slots:{default:!0}});var Z=l(J,2);ie(Z,{type:"number",autocomplete:"off",placeholder:"ZIP",min:1e3,max:999999,get value(){return t().user_values.zip},set value(X){t(t().user_values.zip=X,!0)},get error(){return e(T).zip},set error(X){e(T).zip=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("ZIP");r(X,Le)},$$slots:{default:!0}});var re=l(Z,2);ie(re,{autocomplete:"off",placeholder:"City",get value(){return t().user_values.city},set value(X){t(t().user_values.city=X,!0)},get error(){return e(T).city},set error(X){e(T).city=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("CITY");r(X,Le)},$$slots:{default:!0}});var ve=l(re,2);ie(ve,{autocomplete:"off",placeholder:"Country",get value(){return t().user_values.country},set value(X){t(t().user_values.country=X,!0)},get error(){return e(T).country},set error(X){e(T).country=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("COUNTRY");r(X,Le)},$$slots:{default:!0}});var be=l(ve,2);ie(be,{autocomplete:"off",placeholder:"Phone",get value(){return t().user_values.phone},set value(X){t(t().user_values.phone=X,!0)},get error(){return e(T).phone},set error(X){e(T).phone=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("PHONE");r(X,Le)},$$slots:{default:!0}});var $e=l(be,2);ie($e,{type:"date",autocomplete:"off",placeholder:"Birthdate",get value(){return t().user_values.birthdate},set value(X){t(t().user_values.birthdate=X,!0)},get error(){return e(T).birthdate},set error(X){e(T).birthdate=X},$$events:{keypress:h,input:w},children:(X,Ee)=>{q();var Le=B("BIRTHDATE");r(X,Le)},$$slots:{default:!0}});var pe=l($e,2);oe(pe,"margin-top","-3px");var je=l(c(pe),2);zt(je,{get options(){return e(E)},searchThreshold:4,get items(){return t().roles},set items(X){t(t().roles=X,!0)}}),v(pe);var fe=l(pe,2),de=l(c(fe),2);zt(de,{get options(){return e(o)},searchThreshold:4,get items(){return t().groups},set items(X){t(t().groups=X,!0)}}),v(fe);var ye=l(fe,2);oe(ye,"margin-top","12px");var we=l(c(ye),2),Pe=c(we);Be(Pe,{get selected(){return e(u)},set selected(X){a(u,n(X))}}),v(we),v(ye);var Ce=l(ye,2);{var xe=X=>{var Ee=Ke(()=>Da(new Date));ie(X,{type:"datetime-local",step:"60",width:"16rem",get min(){return e(Ee)},max:"2099-01-01T00:00",get value(){return e(I)},set value(Le){a(I,n(Le))},$$events:{input:w},children:(Le,St)=>{q();var ae=B("USER EXPIRES");r(Le,ae)},$$slots:{default:!0}})};P(Ce,X=>{e(u)&&X(xe)})}var Re=l(Ce,2);oe(Re,"margin-top","12px");var H=l(c(Re),2),Ie=c(H,!0);K(()=>Y(Ie,ut(t().created_at))),v(H),v(Re);var ge=l(Re,2),Ue=l(c(ge),2),Je=c(Ue);{var rt=X=>{var Ee=B();K(()=>Y(Ee,ut(t().last_login))),r(X,Ee)},vt=X=>{var Ee=B("Never");r(X,Ee)};P(Je,X=>{t().last_login?X(rt):X(vt,!1)})}v(Ue),v(ge);var qe=l(ge,2),Fe=l(c(qe),2),lt=c(Fe);{var xt=X=>{var Ee=B();K(()=>Y(Ee,ut(t().password_expires))),r(X,Ee)},$t=X=>{var Ee=B("Never");r(X,Ee)};P(lt,X=>{t().password_expires?X(xt):X($t,!1)})}v(Fe),v(qe);var Qe=l(qe,2),et=l(c(Qe),2),gt=c(et),ct=Ke(()=>!!t().webauthn_user_id);ea(gt,{get check(){return e(ct)}}),v(et),v(Qe);var It=l(Qe,2),at=c(It);Se(at,{level:1,width:"4rem",$$events:{click:y},children:(X,Ee)=>{q();var Le=B("SAVE");r(X,Le)},$$slots:{default:!0}});var st=l(at,2);{var se=X=>{var Ee=Pi();r(X,Ee)};P(st,X=>{e(i)&&X(se)})}var Ae=l(st,2);{var ze=X=>{var Ee=zi(),Le=c(Ee,!0);v(Ee),K(()=>Y(Le,e(d))),r(X,Ee)};P(Ae,X=>{e(d)&&X(ze)})}v(It),v(b),K(()=>Y(S,t().id)),r(_,b),ne()}var Ui=A('
The user has not initialized this account yet.
You may send out a new Reset E-Mail, if the user has not received one.
',1),qi=A(`
This is a passkey only account type.
This means, that this user is using the passwordless login flow only and does not have any password.
If the user has lost all his keys and you have verified everything, you may reset his account type and
+ send out a new reset E-Mail, so the user can get access again.
To reset the account, navigate to 'MFA' and delete all registered keys for this user.
`),Gi=A(`
You can either set and reset a user's password or send out a new reset E-Mail for self-service.
`,1),Wi=A('
Success
'),Ki=A('
'),Fi=A('
'),Vi=A('
');function Bi(_,s){le(s,!0);let t=G(s,"user",27,()=>n({}));const d="inherit";let i=C(!1),g=C(""),f=C(""),u=C(!1),I=C(!1),E=C(void 0),o="330px",$=C(void 0),m=C(!1),T=n({new:"",verify:""});Te(()=>{e(I)&&a(E,n(setTimeout(()=>{a(I,!1),s.onSave()},3e3)))}),Ne(async()=>{if(!e($)){let z=await ja(),O=await z.json();z.ok?a($,n(O)):a(f,n(O.message))}});async function k(){return a(f,""),await h()?e(m)?!0:(a(f,"You must follow the password policy"),!1):!1}async function h(){return a(f,""),T.new.length>256?(a(f,"max 256 characters"),!1):T.new!==T.verify?(a(f,"New passwords do not match"),!1):!0}async function y(){let z={email:t().email};a(g,""),a(i,!0);let O=await Nr(z);if(O.ok)a(u,!0);else{let U=await O.json();a(g,n(U.message))}a(i,!1)}async function w(){let z={email:t().email,given_name:t().given_name,family_name:t().family_name,roles:t().roles,groups:t().groups,enabled:t().enabled,email_verified:t().email_verified};if(T.new.length>0){if(!(await h()&&await k()))return;z.password=T.new}a(f,""),a(i,!0);let O=await Ha(t().id,z);if(O.ok)a(I,!0);else{let U=await O.json();a(f,n(U.message))}a(i,!1)}function b(){const z=e($).length_min>24?e($).length_min:24;let O=Ss(z,e($).include_lower_case,e($).include_upper_case,e($).include_digits,e($).include_special);T.new=O,T.verify=O}var x=Vi(),p=c(x);{var S=z=>{var O=Ui(),U=l(ee(O),2);Se(U,{width:d,level:2,get isLoading(){return e(i)},set isLoading(Q){a(i,n(Q))},$$events:{click:y},children:(Q,M)=>{q();var W=B("SEND RESET E-MAIL");r(Q,W)},$$slots:{default:!0}}),r(z,O)},L=z=>{var O=me(),U=ee(O);{var Q=W=>{var J=qi();r(W,J)},M=W=>{var J=Gi(),Z=ee(J);{var re=de=>{Zs(de,{get password(){return T.new},get policy(){return e($)},get accepted(){return e(m)},set accepted(ye){a(m,n(ye))}})};P(Z,de=>{e($)&&de(re)})}var ve=l(Z,2),be=Ke(()=>T.new.length>0&&T.new===T.verify);Wt(ve,{type:"password",get width(){return o},autocomplete:"off",get showCopy(){return e(be)},get value(){return T.new},set value(de){T.new=de},$$events:{blur:h},children:(de,ye)=>{q();var we=B("New Password");r(de,we)},$$slots:{default:!0}});var $e=l(ve,2);Wt($e,{type:"password",get width(){return o},autocomplete:"off",get value(){return T.verify},set value(de){T.verify=de},$$events:{blur:h},children:(de,ye)=>{q();var we=B("New Password");r(de,we)},$$slots:{default:!0}});var pe=l($e,2);Se(pe,{width:d,level:3,$$events:{click:b},children:(de,ye)=>{q();var we=B("GENERATE RANDOM");r(de,we)},$$slots:{default:!0}});var je=l(pe,4);Se(je,{width:d,level:1,get isLoading(){return e(i)},set isLoading(de){a(i,n(de))},$$events:{click:y},children:(de,ye)=>{q();var we=B("SEND RESET E-MAIL");r(de,we)},$$slots:{default:!0}});var fe=l(je,2);Se(fe,{width:d,get isLoading(){return e(i)},set isLoading(de){a(i,n(de))},$$events:{click:w},children:(de,ye)=>{q();var we=B("SAVE PASSWORD");r(de,we)},$$slots:{default:!0}}),r(W,J)};P(U,W=>{t().account_type==="passkey"?W(Q):W(M,!1)},!0)}r(z,O)};P(p,z=>{t().account_type==="new"?z(S):z(L,!1)})}var D=l(p,2);{var j=z=>{var O=Wi();r(z,O)};P(D,z=>{(e(I)||e(u))&&z(j)})}var N=l(D,2);{var V=z=>{var O=Ki(),U=c(O,!0);v(O),K(()=>Y(U,e(f))),r(z,O)};P(N,z=>{e(f)&&z(V)})}var R=l(N,2);{var F=z=>{var O=Fi(),U=c(O,!0);v(O),K(()=>Y(U,e(g))),r(z,O)};P(R,z=>{e(g)&&z(F)})}v(x),r(_,x),ne()}var Ji=A('
'),Yi=A('
Are you sure, you want to delete this user?
');function Hi(_,s){le(s,!0);let t=G(s,"user",27,()=>n({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await Vr(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=Yi(),u=l(c(f),2);Se(u,{level:1,width:"5rem",get isLoading(){return e(d)},set isLoading(o){a(d,n(o))},$$events:{click:g},children:(o,$)=>{q();var m=B("DELETE");r(o,m)},$$slots:{default:!0}});var I=l(u,2);{var E=o=>{var $=Ji(),m=c($,!0);v($),K(()=>Y(m,e(i))),r(o,$)};P(I,o=>{e(i)&&o(E)})}v(f),r(_,f),ne()}var Xi=A('
'),Zi=A('
Success
'),Qi=A('
Invalidate all existing sessions and refresh tokens for this user?
');function el(_,s){le(s,!0);let t=G(s,"user",27,()=>n({})),d=C(!1),i=C(""),g=C(!1);async function f(){a(i,""),a(d,!0);let m=await Wr(t().id);if(m.ok)a(g,!0);else{let T=await m.json();a(i,n(T.message))}a(d,!1)}var u=Qi(),I=l(c(u),2);Se(I,{level:1,get isLoading(){return e(d)},set isLoading(m){a(d,n(m))},$$events:{click:f},children:(m,T)=>{q();var k=B("LOGOUT");r(m,k)},$$slots:{default:!0}});var E=l(I,2);{var o=m=>{var T=Xi(),k=c(T,!0);v(T),K(()=>Y(k,e(i))),r(m,T)},$=m=>{var T=me(),k=ee(T);{var h=y=>{var w=Zi();r(y,w)};P(k,y=>{e(g)&&y(h)},!0)}r(m,T)};P(E,m=>{e(i)?m(o):m($,!1)})}v(u),r(_,u),ne()}var tl=A('
Success
'),al=A('
'),sl=A('
Set custom user attributes. All Key / Value pairs will be handled as String / String.
');function rl(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(!1),g=C(!1);Ne(()=>{I()});async function f(){let w=await ma();if(!w.ok)a(t,"Error fetching attr: "+w.body.message);else return await w.json()}async function u(){let w=await Hr(s.user.id);if(!w.ok)a(t,"Error fetching user attr: "+w.body.message);else return await w.json()}async function I(){let w=await f(),b=w.values;if(w){let x=await u();if(x){let p=new Map;for(let S of x.values)p.set(S.key,S.value||"");for(let S of b){let L=p.get(S.name);L?S.value=L:S.value=""}a(d,n([...b]))}}}async function E(){a(t,""),a(g,!0);let w=[];for(let S of e(d)){let L={key:S.name,value:S.value};w.push(L)}let b={values:w},x=await Xr(s.user.id,b),p=await x.json();x.ok?a(i,!0):a(t,n(p.message)),s.onSave(),a(g,!1)}var o=sl(),$=l(c(o),2);We($,17,()=>e(d),yt,(w,b,x)=>{var p=Ke(()=>e(b).desc||"JSON Value");ie(w,{style:"width: 350px",autocomplete:"off",get placeholder(){return e(p)},get value(){return e(b).value},set value(S){e(b).value=S},children:(S,L)=>{q();var D=B();K(()=>Y(D,e(b).name)),r(S,D)},$$slots:{default:!0}})});var m=l($,2);Se(m,{get isLoading(){return e(g)},level:1,width:"4rem",$$events:{click:E},children:(w,b)=>{q();var x=B("SAVE");r(w,x)},$$slots:{default:!0}});var T=l(m,2);{var k=w=>{var b=tl();r(w,b)};P(T,w=>{e(i)&&w(k)})}var h=l(T,2);{var y=w=>{var b=al(),x=c(b,!0);v(b),K(()=>Y(x,e(t))),r(w,b)};P(h,w=>{e(t)&&w(y)})}v(o),r(_,o),ne()}var il=A('
This user does not have any active MFA keys.
'),ll=A('
'),nl=A('
You can delete the users MFA / Security Keys. Be careful though, since this cannot be reverted without user interaction. This is useful, if a user lost his keys and he is not able to log in any more.
',1),ol=A('
'),vl=A('
');function dl(_,s){le(s,!0);let t=G(s,"user",27,()=>n({})),d=C(""),i=C(n([]));Ne(async()=>{await g()});async function g(){let T=await Cs(t().id),k=await T.json();T.ok?a(i,n(k)):console.error("error fetching passkeys: "+k.message)}async function f(T){let k=e(i).length===1,h=await As(t().id,T);if(h.status===200)return await g(),k&&s.onSave(),!0;{let y=await h.json();return a(d,n(y.message)),!1}}var u=vl(),I=c(u);{var E=T=>{var k=il();r(T,k)},o=T=>{var k=nl(),h=l(ee(k),2);We(h,21,()=>e(i),y=>y.name,(y,w)=>{var b=ll(),x=c(b),p=l(c(x),2),S=c(p,!0);v(p),v(x);var L=l(x,2),D=l(c(L),2),j=c(D,!0);K(()=>Y(j,ut(e(w).registered))),v(D),v(L);var N=l(L,2),V=l(c(N),2),R=c(V,!0);K(()=>Y(R,ut(e(w).last_used))),v(V),v(N);var F=l(N,2),z=l(c(F),2),O=c(z);Se(O,{level:4,$$events:{click:()=>f(e(w).name)},children:(U,Q)=>{q();var M=B("DELETE");r(U,M)},$$slots:{default:!0}}),v(z),v(F),v(b),K(()=>Y(S,e(w).name)),r(y,b)}),v(h),r(T,k)};P(I,T=>{e(i).length<1?T(E):T(o,!1)})}var $=l(I,2);{var m=T=>{var k=ol(),h=c(k,!0);v(k),K(()=>Y(h,e(d))),r(T,k)};P($,T=>{e(d)&&T(m)})}v(u),r(_,u),ne()}var cl=A('
');function ul(_,s){le(s,!0);var t=cl(),d=c(t);Ks(d,{get userId(){return s.user.id}}),v(t),r(_,t),ne()}var hl=A('
'),pl=A('
'),ml=A(''),gl=A("
"),fl=A("
"),yl=A("
"),wl=A("
"),bl=A("
"),$l=A("
"),_l=A("
"),kl=A(" ",1),xl=A("
");function ts(_,s){le(s,!0);let t=G(s,"userEmail",3,""),d=G(s,"userId",3,""),i=G(s,"onSave",15),g=C(void 0),f=C(!0),u=C(void 0);const I=["Info","Attributes","Password","MFA","Devices","Logout","Delete"];let E=C(n(I[0]));const o=200,$=o/2;async function m(){const k=await Ts(d());if(k.ok)a(g,n(await k.json()));else{let h=await k.json();console.error(h)}a(f,!1)}function T(){a(u,!1),i()()}Te(()=>{e(u)&&m()}),ot(_,{get show(){return e(u)},set show(k){a(u,n(k))},header:k=>{var h=ml(),y=c(h);Ze(y,{text:"User ID",children:(b,x)=>{var p=hl(),S=c(p,!0);v(p),K(()=>Y(S,d())),r(b,p)},$$slots:{default:!0}});var w=l(y,2);Ze(w,{text:"E-Mail",children:(b,x)=>{var p=pl(),S=c(p,!0);v(p),K(()=>Y(S,t())),r(b,p)},$$slots:{default:!0}}),v(h),r(k,h)},body:k=>{var h=xl(),y=c(h);{var w=x=>{ua(x,{})},b=x=>{var p=kl(),S=ee(p);Dt(S,{labels:I,get selected(){return e(E)},set selected(N){a(E,n(N))}});var L=l(S,2);{var D=N=>{var V=gl(),R=c(V);Mi(R,{get user(){return e(g)},set user(F){a(g,n(F))},get onSave(){return i()},set onSave(F){i(F)}}),v(V),ce(5,V,()=>_e,()=>({delay:$,duration:o})),ce(6,V,()=>_e,()=>({duration:o})),r(N,V)},j=N=>{var V=me(),R=ee(V);{var F=O=>{var U=fl(),Q=c(U);rl(Q,{get user(){return e(g)},set user(M){a(g,n(M))},get onSave(){return i()},set onSave(M){i(M)}}),v(U),ce(5,U,()=>_e,()=>({delay:$,duration:o})),ce(6,U,()=>_e,()=>({duration:o})),r(O,U)},z=O=>{var U=me(),Q=ee(U);{var M=J=>{var Z=yl(),re=c(Z);Bi(re,{get user(){return e(g)},set user(ve){a(g,n(ve))},get onSave(){return i()},set onSave(ve){i(ve)}}),v(Z),ce(5,Z,()=>_e,()=>({delay:$,duration:o})),ce(6,Z,()=>_e,()=>({duration:o})),r(J,Z)},W=J=>{var Z=me(),re=ee(Z);{var ve=$e=>{var pe=wl(),je=c(pe);dl(je,{get user(){return e(g)},set user(fe){a(g,n(fe))},get onSave(){return i()},set onSave(fe){i(fe)}}),v(pe),ce(5,pe,()=>_e,()=>({delay:$,duration:o})),ce(6,pe,()=>_e,()=>({duration:o})),r($e,pe)},be=$e=>{var pe=me(),je=ee(pe);{var fe=ye=>{var we=bl(),Pe=c(we);ul(Pe,{get user(){return e(g)},set user(Ce){a(g,n(Ce))}}),v(we),ce(5,we,()=>_e,()=>({delay:$,duration:o})),ce(6,we,()=>_e,()=>({duration:o})),r(ye,we)},de=ye=>{var we=me(),Pe=ee(we);{var Ce=Re=>{var H=$l(),Ie=c(H);el(Ie,{get user(){return e(g)},set user(ge){a(g,n(ge))}}),v(H),ce(5,H,()=>_e,()=>({delay:$,duration:o})),ce(6,H,()=>_e,()=>({duration:o})),r(Re,H)},xe=Re=>{var H=me(),Ie=ee(H);{var ge=Ue=>{var Je=_l(),rt=c(Je);Hi(rt,{onSave:T,get user(){return e(g)},set user(vt){a(g,n(vt))}}),v(Je),ce(5,Je,()=>_e,()=>({delay:$,duration:o})),ce(6,Je,()=>_e,()=>({duration:o})),r(Ue,Je)};P(Ie,Ue=>{e(E)==="Delete"&&Ue(ge)},!0)}r(Re,H)};P(Pe,Re=>{e(E)==="Logout"?Re(Ce):Re(xe,!1)},!0)}r(ye,we)};P(je,ye=>{e(E)==="Devices"?ye(fe):ye(de,!1)},!0)}r($e,pe)};P(re,$e=>{e(E)==="MFA"?$e(ve):$e(be,!1)},!0)}r(J,Z)};P(Q,J=>{e(E)==="Password"?J(M):J(W,!1)},!0)}r(O,U)};P(R,O=>{e(E)==="Attributes"?O(F):O(z,!1)},!0)}r(N,V)};P(L,N=>{e(E)==="Info"?N(D):N(j,!1)})}r(x,p)};P(y,x=>{e(f)?x(w):x(b,!1)})}v(h),r(k,h)},$$slots:{header:!0,body:!0}}),ne()}var El=A(''),Il=A('
'),Sl=A('
');function Cl(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(""),i=C(void 0),g=C("EN"),f=C(!1),u=C(void 0),I=C(n({email:"",family_name:"",given_name:"",roles:[],groups:[]})),E=C(n({}));const o=He().shape({email:he().required("E-Mail is required").email("Bad E-Mail format"),given_name:he().trim().required("Given Name is required").matches(va,"Invalid characters"),family_name:he().trim().required("Family Name is required").matches(va,"Invalid characters")});let $=C(void 0);ga.subscribe(h=>{a($,n(h))});let m=C(void 0);fa.subscribe(h=>{a(m,n(h))});async function T(){if(!await k())return;a(d,"");let h=e(I);if(h.language=e(g).toLowerCase(),e(f)){let w=Ot(e(u));if(!w){a(d,"Invalid Date Input: User Expires");return}h.user_expires=w}let y=await Fr(e(I));if(y.ok)a(I,n({})),a(i,!1),a(I,n({email:"",family_name:"",given_name:"",roles:[],groups:[]})),s.onSave();else{let w=await y.json();a(d,n(w.message))}}async function k(){try{return await o.validate(e(I),{abortEarly:!1}),a(E,n({})),!0}catch(h){return a(E,n(Ye(h))),!1}}ot(_,{get idx(){return t()},set idx(h){t(h)},get show(){return e(i)},set show(h){a(i,n(h))},header:h=>{var y=El();r(h,y)},body:h=>{var y=Sl(),w=c(y);ie(w,{type:"email",autocomplete:"off",placeholder:"E-Mail",get value(){return e(I).email},set value(Z){e(I).email=Z},get error(){return e(E).email},set error(Z){e(E).email=Z},$$events:{input:k},children:(Z,re)=>{q();var ve=B("E-MAIL");r(Z,ve)},$$slots:{default:!0}});var b=l(w,2);ie(b,{autocomplete:"off",placeholder:"Given Name",get value(){return e(I).given_name},set value(Z){e(I).given_name=Z},get error(){return e(E).given_name},set error(Z){e(E).given_name=Z},$$events:{input:k},children:(Z,re)=>{q();var ve=B("GIVEN NAME");r(Z,ve)},$$slots:{default:!0}});var x=l(b,2);ie(x,{autocomplete:"off",placeholder:"Family Name",get value(){return e(I).family_name},set value(Z){e(I).family_name=Z},get error(){return e(E).family_name},set error(Z){e(E).family_name=Z},$$events:{input:k},children:(Z,re)=>{q();var ve=B("FAMILY NAME");r(Z,ve)},$$slots:{default:!0}});var p=l(x,2),S=l(c(p),2),L=c(S);kt(L,{options:Ra,get value(){return e(g)},set value(Z){a(g,n(Z))}}),v(S),v(p);var D=l(p,2),j=l(c(D),2);zt(j,{get options(){return e($)},searchThreshold:4,get items(){return e(I).roles},set items(Z){e(I).roles=Z}}),v(D);var N=l(D,2),V=l(c(N),2);zt(V,{get options(){return e(m)},searchThreshold:4,get items(){return e(I).groups},set items(Z){e(I).groups=Z}}),v(N);var R=l(N,2);oe(R,"margin-top","12px");var F=l(c(R),2),z=c(F);Be(z,{get selected(){return e(f)},set selected(Z){a(f,n(Z))}}),v(F),v(R);var O=l(R,2);{var U=Z=>{ie(Z,{type:"datetime-local",step:"60",width:"18rem",get min(){return new Date().toISOString().split(".")[0]},max:"2099-01-01T00:00",get value(){return e(u)},set value(re){a(u,n(re))},$$events:{input:k},children:(re,ve)=>{q();var be=B("USER EXPIRES");r(re,be)},$$slots:{default:!0}})};P(O,Z=>{e(f)&&Z(U)})}var Q=l(O,2),M=c(Q);Se(M,{level:1,$$events:{click:T},children:(Z,re)=>{q();var ve=B("SAVE");r(Z,ve)},$$slots:{default:!0}});var W=l(M,2);{var J=Z=>{var re=Il(),ve=c(re,!0);v(re),K(()=>Y(ve,e(d))),r(Z,re)};P(W,Z=>{e(d)&&Z(J)})}v(Q),v(y),r(h,y)},$$slots:{header:!0,body:!0}}),ne()}var Al=Xe('
');function Tl(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Al();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Ll=Xe('
');function Nl(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Ll();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Rl=A("
"),Dl=A('
'),jl=A('
'),Pl=A('
');function zl(_,s){le(s,!0);let t=G(s,"items",19,()=>[]),d=G(s,"resItems",15),i=G(s,"options",19,()=>[]),g=G(s,"firstDirReverse",3,!1),f=C(""),u=C(1),I;Ne(()=>{i().length>0&&(a(f,n(i()[0].label)),E()),g()&&$(),o()});function E(){for(let w of i())if(w.label===e(f)){I=w.callback;break}I||console.error("Could not find a valid callback function in order options for label "+e(f))}function o(){if(I){let w=[...t()];w.sort((b,x)=>I(b,x)*e(u)),d([...w])}}function $(){a(u,e(u)*-1),o()}Te(()=>{t()&&o()}),Te(()=>{e(f)&&(E(),o())});var m=Pl(),T=c(m);{var k=w=>{Ze(w,{text:"Order by",yOffset:-30,children:(b,x)=>{var p=Dl();We(p,21,i,yt,(S,L)=>{var D=Rl(),j={},N=c(D,!0);v(D),K(()=>{j!==(j=e(L).label)&&(D.value=(D.__value=e(L).label)==null?"":e(L).label),Y(N,e(L).label)}),r(S,D)}),v(p),Ka(p,()=>e(f),S=>a(f,S)),r(b,p)},$$slots:{default:!0}})};P(T,w=>{i().length>1&&w(k)})}var h=l(T,2);{var y=w=>{var b=jl();b.__click=$;var x=c(b);{var p=L=>{Nl(L,{})},S=L=>{Tl(L,{})};P(x,L=>{e(u)===1?L(p):L(S,!1)})}v(b),Me("keypress",b,$),r(w,b)};P(h,w=>{i().length>0&&w(y)})}v(m),r(_,m),ne()}pt(["click"]);var Ol=A('
'),Ml=A('
');function Lt(_,s){le(s,!0);let t=G(s,"items",31,()=>n([])),d=G(s,"resItems",15),i=G(s,"searchOptions",27,()=>n([])),g=G(s,"orderOptions",27,()=>n([])),f=G(s,"firstDirReverse",3,!1),u=G(s,"useServerSideIdx",15,""),I=G(s,"isSearchFiltered",15,!1),E=G(s,"search",15,""),o=C(n([]));var $=Ml(),m=c($),T=c(m);zl(T,{get items(){return e(o)},get options(){return g()},get firstDirReverse(){return f()},get resItems(){return d()},set resItems(b){d(b)}}),v(m);var k=l(m,2);{var h=b=>{var x=Ol();r(b,x)};P(k,b=>{g().length>0&&b(h)})}var y=l(k,2),w=c(y);es(w,{get options(){return i()},get items(){return t()},set items(b){t(b)},get resItems(){return e(o)},set resItems(b){a(o,n(b))},get useServerSideIdx(){return u()},set useServerSideIdx(b){u(b)},get isSearchFiltered(){return I()},set isSearchFiltered(b){I(b)},get search(){return E()},set search(b){E(b)}}),v(y),v($),r(_,$),ne()}var Ul=(_,s)=>a(s,e(s)-1),ql=A('
'),Gl=(_,s,t)=>a(s,n(e(t))),Wl=A('
'),Kl=(_,s)=>a(s,e(s)+1),Fl=A('
'),Vl=A('
');function jt(_,s){le(s,!0);let t=G(s,"items",27,()=>n([])),d=G(s,"resItems",31,()=>n([]));const i=[5,7,10,15,20,30,50,100],g=16;let f=C(n([])),u=C(1),I=5,E=C(15),o=C(!1),$=C(!1),m=C(n([]));Te(()=>{e(E)&&a(u,1)}),Te(()=>{if(e(E)&&t().length>0){let D=[];for(let j=0;j
{if(e(u)){let D=[],j=Math.floor(I/2);if(e(f).length<=I){for(let N=1;N<=e(f).length;N++)D.push(N);a(o,!1),a($,!1)}else if(e(u)<=j){for(let N=1;N<=I;N++)D.push(N);a(o,!1),a($,!0)}else if(e(u)>e(f).length-j-1){for(let N=e(f).length-I;N<=e(f).length-1;N++)D.push(N+1);a(o,!0),a($,!1)}else{for(let N=e(u)-j;N{var j=ql();j.__click=[Ul,u];var N=c(j);Zt(N,{width:g}),v(j),Me("keypress",j,()=>a(u,e(u)-1)),r(D,j)};P(k,D=>{e(o)&&D(h)})}var y=l(k,2);We(y,21,()=>e(m),yt,(D,j)=>{var N=Wl();N.__click=[Gl,u,j];var V=c(N,!0);v(N),K(()=>{Et(N,"selected",e(u)===e(j)),Y(V,e(j))}),Me("keypress",N,()=>a(u,n(e(j)))),r(D,N)}),v(y);var w=l(y,2);{var b=D=>{var j=Fl();j.__click=[Kl,u];var N=c(j);Zt(N,{width:g}),v(j),Me("keypress",j,()=>a(u,e(u)+1)),r(D,j)};P(w,D=>{e($)&&D(b)})}var x=l(w,2),p=l(c(x));kt(p,{options:i,width:"50px",get value(){return e(E)},set value(D){a(E,n(D))}}),v(x);var S=l(x,2),L=c(S);v(S),v(T),K(()=>Y(L,`Total: ${t().length??""}`)),r(_,T),ne()}pt(["click"]);var Bl=(_,s)=>s()(0,!0),Jl=A('
'),Yl=(_,s)=>s()(0,!1),Hl=A('
'),Xl=A('
'),Zl=A('');function as(_,s){le(s,!0);let t=G(s,"itemsTotal",3,0),d=G(s,"sspPage",11,1),i=G(s,"sspPageSize",11,15),g=G(s,"sspContinuationToken",11,""),f=G(s,"fetchPageCallback",3,(D,j)=>{}),u=G(s,"sspPageSizeChange",3,D=>{});const I=[2,3,5,7,10,15,20,30,50,100],E=16;let o=C(n(i()));Te(()=>{e(o)&&(console.log("page size change in pagination server"),u()(e(o)))});var $=Zl(),m=c($);{var T=D=>{var j=Jl();j.__click=[Bl,f];var N=c(j);Zt(N,{width:E}),v(j),Me("keypress",j,()=>f()(0,!0)),r(D,j)};P(m,D=>{d()!==1&&D(T)})}var k=l(m,2),h=c(k),y=c(h,!0);v(h),v(k);var w=l(k,2);{var b=D=>{var j=Hl();j.__click=[Yl,f];var N=c(j);Zt(N,{width:E}),v(j),Me("keypress",j,()=>f()(0,!1)),r(D,j)};P(w,D=>{g()&&D(b)})}var x=l(w,2),p=l(c(x));kt(p,{options:I,width:"50px",get value(){return e(o)},set value(D){a(o,n(D))}}),v(x);var S=l(x,2);{var L=D=>{var j=Xl(),N=c(j);v(j),K(()=>Y(N,`Total: ${t()??""}`)),r(D,j)};P(S,D=>{t()&&t()>0&&D(L)})}v($),K(()=>Y(y,d())),r(_,$),ne()}pt(["click"]);var Ql=A('
'),en=A('
'),tn=A(' ',1);function an(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(""),u=C(!1),I=C(""),E=C(0),o=C(15),$=C(""),m=C(1),T=C(n([{label:"E-Mail",callback:(M,W)=>M.email.toLowerCase().includes(W.toLowerCase())},{label:"ID",callback:(M,W)=>M.id.toLowerCase().includes(W.toLowerCase())}])),k=C(n([{label:"E-Mail",callback:(M,W)=>M.email.localeCompare(W.email)},{label:"ID",callback:(M,W)=>M.id.localeCompare(W.id)},{label:"Created",callback:(M,W)=>M.created_at{let J=M.last_login||9999999999,Z=W.last_login||9999999999;return J{h(),b(),x()});async function h(M,W,J,Z){let re;if(M===!0?J&&e(m)===2?re=await Ya(Z||e(o),W,void 0,!1):re=await Ya(Z||e(o),W,e($),J):re=await Kr(),!re.ok)a(t,"Error fetching users: "+re.body.message);else{re.status===206?(a(o,n(Number.parseInt(re.headers.get("x-page-size"),10))),a(f,"user"),re.headers.get("x-continuation-token"),a($,n(re.headers.get("x-continuation-token")))):a(f,""),a(E,n(re.headers.get("x-user-count")));let ve=await re.json();a(d,n([...ve])),a(i,n([...ve]))}}async function y(M,W){await h(!0,M,W),W?a(m,e(m)-1):a(m,e(m)+1)}async function w(M){a($,""),await h(!0,0,!1,M),a(m,1)}async function b(){let M=await Xa();if(!M.ok)a(t,"Error fetching roles: "+M.body.message);else{let W=await M.json();hi.set(W),ga.set(W.map(J=>J.name))}}async function x(){let M=await Ba();if(!M.ok)a(t,"Error fetching groups: "+M.body.message);else{let W=await M.json();pi.set(W),fa.set(W.map(J=>J.name))}}function p(){h(),b(),x(),a(I,"")}q();var S=tn(),L=ee(S),D=l(L),j=c(D);Lt(j,{get items(){return e(d)},get resItems(){return e(i)},set resItems(M){a(i,n(M))},get searchOptions(){return e(T)},set searchOptions(M){a(T,n(M))},get orderOptions(){return e(k)},set orderOptions(M){a(k,n(M))},get useServerSideIdx(){return e(f)},set useServerSideIdx(M){a(f,n(M))},get isSearchFiltered(){return e(u)},set isSearchFiltered(M){a(u,n(M))},get search(){return e(I)},set search(M){a(I,n(M))}});var N=l(j,2);Cl(N,{onSave:p});var V=l(N,2),R=c(V);{var F=M=>{var W=me(),J=ee(W);We(J,17,()=>e(i),Z=>Z.id,(Z,re)=>{var ve=Ql(),be=c(ve);ts(be,{get userId(){return e(re).id},get userEmail(){return e(re).email},onSave:p}),v(ve),r(Z,ve)}),r(M,W)},z=M=>{var W=me(),J=ee(W);We(J,17,()=>e(g),Z=>Z.id,(Z,re)=>{var ve=en(),be=c(ve);ts(be,{get userId(){return e(re).id},get userEmail(){return e(re).email},onSave:p}),v(ve),r(Z,ve)}),r(M,W)};P(R,M=>{e(f)&&!e(u)?M(F):M(z,!1)})}v(V);var O=l(V,2);{var U=M=>{as(M,{get itemsTotal(){return e(E)},fetchPageCallback:y,sspPageSizeChange:w,get sspPage(){return e(m)},set sspPage(W){a(m,n(W))},get sspPageSize(){return e(o)},set sspPageSize(W){a(o,n(W))},get sspContinuationToken(){return e($)},set sspContinuationToken(W){a($,n(W))}})},Q=M=>{jt(M,{get items(){return e(i)},set items(W){a(i,n(W))},get resItems(){return e(g)},set resItems(W){a(g,n(W))}})};P(O,M=>{e(f)&&!e(u)?M(U):M(Q,!1)})}v(D),K(()=>Y(L,`${e(t)??""} `)),r(_,S),ne()}var sn=A('
');function bt(_,s){le(s,!0);let t=G(s,"eventsCollapsed",11,!0),d=G(s,"eventsWide",11,!1);var i=sn(),g=c(i);At(g,()=>s.children??Ct),v(i),K(()=>{Et(i,"mr",!t()&&!d()),Et(i,"mrCollapsed",t()&&!d()),Et(i,"mrWide",!t()&&d())}),r(_,i),ne()}var rn=A('Success
'),ln=A('
'),nn=A('');function on(_,s){le(s,!0);let t=G(s,"role",31,()=>n({})),d=C(""),i=C(!1),g=C(void 0);Te(()=>{e(i)&&a(g,n(setTimeout(()=>{a(i,!1),s.onSave()},2e3)))}),Ne(()=>()=>clearTimeout(e(g)));let f=C(n({}));const u=He().shape({name:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});async function I(){if(a(d,""),!await E()){a(d,"Invalid input");return}let S={role:t().name.trim()},L=await ni(t().id,S);if(L.ok)a(i,!0);else{let D=await L.json();a(d,n(D.message))}}async function E(){try{return await u.validate(t(),{abortEarly:!1}),a(f,n({})),!0}catch(S){return a(f,n(Ye(S))),!1}}var o=nn(),$=c(o),m=l(c($),2),T=c(m,!0);v(m),v($);var k=l($,2),h=Ke(()=>t().name==="rauthy_admin");ie(k,{autocomplete:"off",placeholder:"Role Name",get disabled(){return e(h)},get value(){return t().name},set value(S){t(t().name=S,!0)},get error(){return e(f).name},set error(S){e(f).name=S},$$events:{input:E},children:(S,L)=>{q();var D=B("ROLE NAME");r(S,D)},$$slots:{default:!0}});var y=l(k,2);Se(y,{level:1,width:"4rem",$$events:{click:I},children:(S,L)=>{q();var D=B("SAVE");r(S,D)},$$slots:{default:!0}});var w=l(y,2);{var b=S=>{var L=rn();r(S,L)};P(w,S=>{e(i)&&S(b)})}var x=l(w,2);{var p=S=>{var L=ln(),D=c(L,!0);v(L),K(()=>Y(D,e(d))),r(S,L)};P(x,S=>{e(d)&&S(p)})}v(o),K(()=>Y(T,t().id)),r(_,o),ne()}var vn=A('Anti-Lockout Rule: The rauthy_admin role cannot be deleted.
'),dn=A('
'),cn=A('Are you sure, you want to delete this role?
',1),un=A('
');function hn(_,s){le(s,!0);let t=G(s,"role",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await oi(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=un(),u=c(f);{var I=o=>{var $=vn();r(o,$)},E=o=>{var $=cn(),m=l(ee($),2);Se(m,{level:1,get isLoading(){return e(d)},set isLoading(h){a(d,n(h))},$$events:{click:g},children:(h,y)=>{q();var w=B("DELETE");r(h,w)},$$slots:{default:!0}});var T=l(m,2);{var k=h=>{var y=dn(),w=c(y,!0);v(y),K(()=>Y(w,e(i))),r(h,y)};P(T,h=>{e(i)&&h(k)})}r(o,$)};P(u,o=>{t().name==="rauthy_admin"?o(I):o(E,!1)})}v(f),r(_,f),ne()}var pn=A('
'),mn=A('
'),gn=A(''),fn=A("
"),yn=A("
"),wn=A("
");function bn(_,s){le(s,!0);let t=G(s,"role",31,()=>n({})),d=G(s,"onSave",15),i=C(void 0);const g=["Config","Delete"];let f=C(n(g[0]));const u=200,I=u/2;function E(){a(i,!1),d()()}ot(_,{get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=gn(),m=c($);Ze(m,{text:"Role ID",children:(k,h)=>{var y=pn(),w=c(y,!0);v(y),K(()=>Y(w,t().id)),r(k,y)},$$slots:{default:!0}});var T=l(m,2);Ze(T,{text:"Role Name",children:(k,h)=>{var y=mn(),w=c(y,!0);v(y),K(()=>Y(w,t().name)),r(k,y)},$$slots:{default:!0}}),v($),r(o,$)},body:o=>{var $=wn(),m=c($);Dt(m,{labels:g,get selected(){return e(f)},set selected(y){a(f,n(y))}});var T=l(m,2);{var k=y=>{var w=fn(),b=c(w);on(b,{get role(){return t()},set role(x){t(x)},get onSave(){return d()},set onSave(x){d(x)}}),v(w),ce(5,w,()=>_e,()=>({delay:I,duration:u})),ce(6,w,()=>_e,()=>({duration:u})),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=p=>{var S=yn(),L=c(S);hn(L,{get role(){return t()},onSave:E}),v(S),ce(5,S,()=>_e,()=>({delay:I,duration:u})),ce(6,S,()=>_e,()=>({duration:u})),r(p,S)};P(b,p=>{e(f)==="Delete"&&p(x)},!0)}r(y,w)};P(T,y=>{e(f)==="Config"?y(k):y(h,!1)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var $n=A(''),_n=A('Success
'),kn=A('
'),xn=A('
');function En(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(void 0),i=C(n({role:""})),g=C(""),f=C(!1),u=C(void 0),I=C(n({}));const E=He().shape({role:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});Te(()=>{e(f)&&a(u,n(setTimeout(()=>{a(f,!1),a(i,n({role:""})),a(d,!1),s.onSave()},1500)))}),Ne(()=>()=>clearTimeout(e(u)));async function o(){if(a(g,""),!await $()){a(g,"Invalid input");return}e(i).role=e(i).role.trim();let m=await li(e(i));if(m.ok)a(f,!0);else{let T=await m.json();a(g,n(T.message))}}async function $(){try{return await E.validate(e(i),{abortEarly:!1}),a(I,n({})),!0}catch(m){return a(I,n(Ye(m))),!1}}ot(_,{get idx(){return t()},set idx(m){t(m)},get show(){return e(d)},set show(m){a(d,n(m))},header:m=>{var T=$n();r(m,T)},body:m=>{var T=xn(),k=c(T);ie(k,{autocomplete:"off",placeholder:"Role Name",get value(){return e(i).role},set value(p){e(i).role=p},get error(){return e(I).role},set error(p){e(I).role=p},$$events:{input:$},children:(p,S)=>{q();var L=B("ROLE NAME");r(p,L)},$$slots:{default:!0}});var h=l(k,2);Se(h,{level:1,width:"4rem",$$events:{click:o},children:(p,S)=>{q();var L=B("SAVE");r(p,L)},$$slots:{default:!0}});var y=l(h,2);{var w=p=>{var S=_n();r(p,S)};P(y,p=>{e(f)&&p(w)})}var b=l(y,2);{var x=p=>{var S=kn(),L=c(S,!0);v(S),K(()=>Y(L,e(g))),r(p,S)};P(b,p=>{e(g)&&p(x)})}v(T),r(m,T)},$$slots:{header:!0,body:!0}}),ne()}var In=A('
'),Sn=A(' ',1);function Cn(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(""),u=[{label:"Name",callback:(b,x)=>b.name.toLowerCase().includes(x.toLowerCase())},{label:"ID",callback:(b,x)=>b.id.toLowerCase().includes(x.toLowerCase())}],I=[{label:"Name",callback:(b,x)=>b.name.localeCompare(x.name)},{label:"ID",callback:(b,x)=>b.id.localeCompare(x.id)}];Ne(async()=>{E()});async function E(){let b=await Xa(),x=await b.json();b.ok?a(d,n([...x])):a(t,n(x.message))}function o(){E(),a(f,"")}q();var $=Sn(),m=ee($),T=l(m),k=c(T);Lt(k,{get items(){return e(d)},searchOptions:u,orderOptions:I,get resItems(){return e(i)},set resItems(b){a(i,n(b))},get search(){return e(f)},set search(b){a(f,n(b))}});var h=l(k,2);En(h,{onSave:o});var y=l(h,2);We(y,23,()=>e(g),b=>b.id,(b,x,p)=>{var S=In(),L=c(S);bn(L,{onSave:o,get role(){return e(d)[e(p)]},set role(D){e(d)[e(p)]=D}}),v(S),r(b,S)}),v(y);var w=l(y,2);jt(w,{get items(){return e(i)},set items(b){a(i,n(b))},get resItems(){return e(g)},set resItems(b){a(g,n(b))}}),q(2),v(T),K(()=>Y(m,`${e(t)??""} `)),r(_,$),ne()}var An=A(''),Tn=A('Success
'),Ln=A('
'),Nn=A('
');function Rn(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(void 0),i=C(n({group:""})),g=C(""),f=C(!1),u=C(void 0),I=C(n({}));const E=He().shape({group:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});Te(()=>{e(f)&&a(u,n(setTimeout(()=>{s.onSave(),a(f,!1),a(i,n({group:""})),a(d,!1)},1500)))}),Ne(()=>()=>clearTimeout(e(u)));async function o(){if(a(g,""),!await $()){a(g,"Invalid input");return}e(i).group=e(i).group.trim();let m=await Ir(e(i));if(m.ok)a(f,!0);else{let T=await m.json();a(g,n(T.message))}}async function $(){try{return await E.validate(e(i),{abortEarly:!1}),a(I,n({})),!0}catch(m){return a(I,n(Ye(m))),!1}}ot(_,{get idx(){return t()},set idx(m){t(m)},get show(){return e(d)},set show(m){a(d,n(m))},header:m=>{var T=An();r(m,T)},body:m=>{var T=Nn(),k=c(T);ie(k,{autocomplete:"off",placeholder:"Group Name",get value(){return e(i).group},set value(p){e(i).group=p},get error(){return e(I).group},set error(p){e(I).group=p},$$events:{input:$},children:(p,S)=>{q();var L=B("GROUP NAME");r(p,L)},$$slots:{default:!0}});var h=l(k,2);Se(h,{level:1,width:"4rem",$$events:{click:o},children:(p,S)=>{q();var L=B("SAVE");r(p,L)},$$slots:{default:!0}});var y=l(h,2);{var w=p=>{var S=Tn();r(p,S)};P(y,p=>{e(f)&&p(w)})}var b=l(y,2);{var x=p=>{var S=Ln(),L=c(S,!0);v(S),K(()=>Y(L,e(g))),r(p,S)};P(b,p=>{e(g)&&p(x)})}v(T),r(m,T)},$$slots:{header:!0,body:!0}}),ne()}var Dn=A('Success
'),jn=A('
'),Pn=A('');function zn(_,s){le(s,!0);let t=G(s,"group",31,()=>n({})),d=C(""),i=C(!1),g=C(void 0);Te(()=>{e(i)&&a(g,n(setTimeout(()=>{a(i,!1),s.onSave()},2e3)))}),Ne(()=>()=>clearTimeout(e(g)));let f=C(n({}));const u=He().shape({name:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});async function I(){if(a(d,""),!await E()){a(d,"Invalid input");return}let p={group:t().name.trim()},S=await Sr(t().id,p);if(S.ok)a(i,!0);else{let L=await S.json();a(d,n(L.message))}}async function E(){try{return await u.validate(t(),{abortEarly:!1}),a(f,n({})),!0}catch(p){return a(f,n(Ye(p))),!1}}var o=Pn(),$=c(o),m=l(c($),2),T=c(m,!0);v(m),v($);var k=l($,2);ie(k,{autocomplete:"off",placeholder:"Group Name",get value(){return t().name},set value(p){t(t().name=p,!0)},get error(){return e(f).name},set error(p){e(f).name=p},$$events:{input:E},children:(p,S)=>{q();var L=B("GROUP NAME");r(p,L)},$$slots:{default:!0}});var h=l(k,2);Se(h,{level:1,width:"4rem",$$events:{click:I},children:(p,S)=>{q();var L=B("SAVE");r(p,L)},$$slots:{default:!0}});var y=l(h,2);{var w=p=>{var S=Dn();r(p,S)};P(y,p=>{e(i)&&p(w)})}var b=l(y,2);{var x=p=>{var S=jn(),L=c(S,!0);v(S),K(()=>Y(L,e(d))),r(p,S)};P(b,p=>{e(d)&&p(x)})}v(o),K(()=>Y(T,t().id)),r(_,o),ne()}var On=A('
'),Mn=A('Are you sure, you want to delete this group?
');function Un(_,s){le(s,!0);let t=G(s,"group",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await Cr(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=Mn(),u=l(c(f),2);Se(u,{level:1,get isLoading(){return e(d)},set isLoading(o){a(d,n(o))},$$events:{click:g},children:(o,$)=>{q();var m=B("DELETE");r(o,m)},$$slots:{default:!0}});var I=l(u,2);{var E=o=>{var $=On(),m=c($,!0);v($),K(()=>Y(m,e(i))),r(o,$)};P(I,o=>{e(i)&&o(E)})}v(f),r(_,f),ne()}var qn=A('
'),Gn=A('
'),Wn=A(''),Kn=A("
"),Fn=A("
"),Vn=A("
");function Bn(_,s){le(s,!0);let t=G(s,"group",31,()=>n({})),d=C(void 0);const i=["Config","Delete"];let g=C(n(i[0]));const f=200,u=f/2;function I(){a(d,!1),s.onSave()}ot(_,{get show(){return e(d)},set show(E){a(d,n(E))},header:E=>{var o=Wn(),$=c(o);Ze($,{text:"Group ID",children:(T,k)=>{var h=qn(),y=c(h,!0);v(h),K(()=>Y(y,t().id)),r(T,h)},$$slots:{default:!0}});var m=l($,2);Ze(m,{text:"Group Name",children:(T,k)=>{var h=Gn(),y=c(h,!0);v(h),K(()=>Y(y,t().name)),r(T,h)},$$slots:{default:!0}}),v(o),r(E,o)},body:E=>{var o=Vn(),$=c(o);Dt($,{labels:i,get selected(){return e(g)},set selected(h){a(g,n(h))}});var m=l($,2);{var T=h=>{var y=Kn(),w=c(y);zn(w,{get onSave(){return s.onSave},get group(){return t()},set group(b){t(b)}}),v(y),ce(5,y,()=>_e,()=>({delay:u,duration:f})),ce(6,y,()=>_e,()=>({duration:f})),r(h,y)},k=h=>{var y=me(),w=ee(y);{var b=x=>{var p=Fn(),S=c(p);Un(S,{get group(){return t()},onSave:I}),v(p),ce(5,p,()=>_e,()=>({delay:u,duration:f})),ce(6,p,()=>_e,()=>({duration:f})),r(x,p)};P(w,x=>{e(g)==="Delete"&&x(b)},!0)}r(h,y)};P(m,h=>{e(g)==="Config"?h(T):h(k,!1)})}v(o),r(E,o)},$$slots:{header:!0,body:!0}}),ne()}var Jn=A('
'),Yn=A(' ',1);function Hn(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=[{label:"Name",callback:(w,b)=>w.name.toLowerCase().includes(b.toLowerCase())},{label:"ID",callback:(w,b)=>w.id.toLowerCase().includes(b.toLowerCase())}],u=[{label:"Name",callback:(w,b)=>w.name.localeCompare(b.name)},{label:"ID",callback:(w,b)=>w.id.localeCompare(b.id)}];Ne(async()=>{I()});async function I(){let w=await Ba(),b=await w.json();w.ok?a(d,n([...b])):a(t,n(b.message))}function E(){I()}q();var o=Yn(),$=ee(o),m=l($),T=c(m);Lt(T,{get items(){return e(d)},searchOptions:f,orderOptions:u,get resItems(){return e(i)},set resItems(w){a(i,n(w))}});var k=l(T,2);Rn(k,{onSave:E});var h=l(k,2);We(h,23,()=>e(g),w=>w.id,(w,b,x)=>{let p=x;var S=Jn(),L=c(S);Bn(L,{onSave:E,get group(){return e(g)[e(p)]},set group(D){e(g)[e(p)]=D}}),v(S),r(w,S)}),v(h);var y=l(h,2);jt(y,{get items(){return e(i)},set items(w){a(i,n(w))},get resItems(){return e(g)},set resItems(w){a(g,n(w))}}),q(2),v(m),K(()=>Y($,`${e(t)??""} `)),r(_,o),ne()}var Xn=A(''),Zn=A('Success
'),Qn=A('
'),eo=A('
');function to(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(void 0),i=C(n({scope:""})),g=C(""),f=C(!1),u=C(void 0),I=C(n({}));const E=He().shape({scope:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});Te(()=>{e(f)&&a(u,n(setTimeout(()=>{s.onSave(),a(f,!1),a(i,n({scope:""})),a(d,!1)},1500)))}),Ne(()=>()=>clearTimeout(e(u)));async function o(){if(a(g,""),!await $()){a(g,"Invalid input");return}e(i).scope=e(i).scope.trim();let m=await vi(e(i));if(m.ok)a(f,!0);else{let T=await m.json();a(g,n(T.message))}}async function $(){try{return await E.validate(e(i),{abortEarly:!1}),a(I,n({})),!0}catch(m){return a(I,n(Ye(m))),!1}}ot(_,{get idx(){return t()},set idx(m){t(m)},get show(){return e(d)},set show(m){a(d,n(m))},header:m=>{var T=Xn();r(m,T)},body:m=>{var T=eo(),k=c(T);ie(k,{autocomplete:"off",placeholder:"Scope Name",get value(){return e(i).scope},set value(p){e(i).scope=p},get error(){return e(I).scope},set error(p){e(I).scope=p},$$events:{input:$},children:(p,S)=>{q();var L=B("SCOPE NAME");r(p,L)},$$slots:{default:!0}});var h=l(k,2);Se(h,{level:1,width:"4rem",$$events:{click:o},children:(p,S)=>{q();var L=B("SAVE");r(p,L)},$$slots:{default:!0}});var y=l(h,2);{var w=p=>{var S=Zn();r(p,S)};P(y,p=>{e(f)&&p(w)})}var b=l(y,2);{var x=p=>{var S=Qn(),L=c(S,!0);v(S),K(()=>Y(L,e(g))),r(p,S)};P(b,p=>{e(g)&&p(x)})}v(T),r(m,T)},$$slots:{header:!0,body:!0}}),ne()}var ao=A('Custom mappings cannot be done for OpenID default scopes and their names cannot be changed.
'),so=A('You can map custom scopes to attributes. All additional attributes, that were configured, can have a custom value for each user. When they are mapped to a scope, they can be included in the Access and / or ID Tokens.
',1),ro=A('Success
'),io=A('
'),lo=A(" ",1),no=A('');function oo(_,s){le(s,!0);let t=G(s,"attrs",27,()=>n([])),d=G(s,"scope",31,()=>n({})),i=C(""),g=C(!1),f=C(void 0),u=C(!1),I=C(n([]));Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1),s.onSave()},2e3)))}),Te(()=>{t()&&a(I,n(t().map(D=>D.name)))}),Ne(()=>(a(u,n(Pa(d().name))),()=>clearTimeout(e(f))));let E=C(n({}));const o=He().shape({name:he().trim().matches(qt,"Can only contain: 'a-z0-9-_/:*', length: 2-64")});async function $(){if(a(i,""),!await m()){a(i,"Invalid input");return}let D={scope:d().name.trim()};d().attr_include_access.length>0&&(D.attr_include_access=d().attr_include_access),d().attr_include_id.length>0&&(D.attr_include_id=d().attr_include_id);let j=await di(d().id,D);if(j.ok)a(g,!0);else{let N=await j.json();a(i,n(N.message))}}async function m(){try{return await o.validate(d(),{abortEarly:!1}),a(E,n({})),!0}catch(D){return a(E,n(Ye(D))),!1}}var T=no(),k=c(T),h=l(c(k),2),y=c(h,!0);v(h),v(k);var w=l(k,2);ie(w,{autocomplete:"off",placeholder:"Scope Name",get disabled(){return e(u)},get value(){return d().name},set value(D){d(d().name=D,!0)},get error(){return e(E).name},set error(D){e(E).name=D},$$events:{input:m},children:(D,j)=>{q();var N=B("SCOPE NAME");r(D,N)},$$slots:{default:!0}});var b=l(w,4);{var x=D=>{var j=ao();r(D,j)},p=D=>{var j=so(),N=l(ee(j),2);oe(N,"margin-top","-3px");var V=l(c(N),2);zt(V,{get options(){return e(I)},searchThreshold:4,get items(){return d().attr_include_access},set items(z){d(d().attr_include_access=z,!0)}}),v(N);var R=l(N,2);oe(R,"margin-top","-3px");var F=l(c(R),2);zt(F,{get options(){return e(I)},searchThreshold:4,get items(){return d().attr_include_id},set items(z){d(d().attr_include_id=z,!0)}}),v(R),r(D,j)};P(b,D=>{e(u)?D(x):D(p,!1)})}var S=l(b,2);{var L=D=>{var j=lo(),N=ee(j);Se(N,{level:1,width:"4rem",$$events:{click:$},children:(O,U)=>{q();var Q=B("SAVE");r(O,Q)},$$slots:{default:!0}});var V=l(N,2);{var R=O=>{var U=ro();r(O,U)};P(V,O=>{e(g)&&O(R)})}var F=l(V,2);{var z=O=>{var U=io(),Q=c(U,!0);v(U),K(()=>Y(Q,e(i))),r(O,U)};P(F,O=>{e(i)&&O(z)})}r(D,j)};P(S,D=>{e(u)||D(L)})}v(T),K(()=>Y(y,d().id)),r(_,T),ne()}var vo=A('OpenID default scopes cannot be deleted
'),co=A('
'),uo=A('Are you sure, you want to delete this scope?
',1),ho=A('
');function po(_,s){le(s,!0);let t=G(s,"scope",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await ci(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=ho(),u=c(f);{var I=o=>{var $=vo();r(o,$)},E=o=>{var $=uo(),m=l(ee($),2);Se(m,{level:1,get isLoading(){return e(d)},set isLoading(h){a(d,n(h))},$$events:{click:g},children:(h,y)=>{q();var w=B("DELETE");r(h,w)},$$slots:{default:!0}});var T=l(m,2);{var k=h=>{var y=co(),w=c(y,!0);v(y),K(()=>Y(w,e(i))),r(h,y)};P(T,h=>{e(i)&&h(k)})}r(o,$)};P(u,o=>{Pa(t().name)?o(I):o(E,!1)})}v(f),r(_,f),ne()}var mo=A('
'),go=A('
'),fo=A(''),yo=A("
"),wo=A("
"),bo=A("
");function $o(_,s){le(s,!0);let t=G(s,"attrs",15),d=G(s,"scope",31,()=>n({})),i=G(s,"onSave",15),g=C(void 0);const f=["Config","Delete"];let u=C(n(f[0]));const I=200,E=I/2;function o(){a(g,!1),i()()}ot(_,{get show(){return e(g)},set show($){a(g,n($))},header:$=>{var m=fo(),T=c(m);Ze(T,{text:"Scope ID",children:(h,y)=>{var w=mo(),b=c(w,!0);v(w),K(()=>Y(b,d().id)),r(h,w)},$$slots:{default:!0}});var k=l(T,2);Ze(k,{text:"Scope Name",children:(h,y)=>{var w=go(),b=c(w,!0);v(w),K(()=>Y(b,d().name)),r(h,w)},$$slots:{default:!0}}),v(m),r($,m)},body:$=>{var m=bo(),T=c(m);Dt(T,{labels:f,get selected(){return e(u)},set selected(w){a(u,n(w))}});var k=l(T,2);{var h=w=>{var b=yo(),x=c(b);oo(x,{get attrs(){return t()},set attrs(p){t(p)},get scope(){return d()},set scope(p){d(p)},get onSave(){return i()},set onSave(p){i(p)}}),v(b),ce(5,b,()=>_e,()=>({delay:E,duration:I})),ce(6,b,()=>_e,()=>({duration:I})),r(w,b)},y=w=>{var b=me(),x=ee(b);{var p=S=>{var L=wo(),D=c(L);po(D,{get scope(){return d()},onSave:o}),v(L),ce(5,L,()=>_e,()=>({delay:E,duration:I})),ce(6,L,()=>_e,()=>({duration:I})),r(S,L)};P(x,S=>{e(u)==="Delete"&&S(p)},!0)}r(w,b)};P(k,w=>{e(u)==="Config"?w(h):w(y,!1)})}v(m),r($,m)},$$slots:{header:!0,body:!0}}),ne()}var _o=A('
'),ko=A(' ',1);function xo(_,s){le(s,!0);let t=C(n([])),d=C(""),i=C(n([])),g=C(n([])),f=C(n([])),u=C(""),I=[{label:"Name",callback:(p,S)=>p.name.toLowerCase().includes(S.toLowerCase())},{label:"ID",callback:(p,S)=>p.id.toLowerCase().includes(S.toLowerCase())}],E=[{label:"Name",callback:(p,S)=>p.name.localeCompare(S.name)},{label:"ID",callback:(p,S)=>p.id.localeCompare(S.id)}];Ne(()=>{$(),o(),a(u,"")});async function o(){let p=await ma();if(!p.ok)a(d,"Error fetching attributes: "+p.body.message);else{let S=await p.json();a(t,n([...S.values]))}}async function $(){let p=await Za(),S=await p.json();p.ok?a(i,n([...S])):a(d,n(S.message))}function m(){$()}q();var T=ko(),k=ee(T),h=l(k),y=c(h);Lt(y,{get items(){return e(i)},searchOptions:I,orderOptions:E,get resItems(){return e(g)},set resItems(p){a(g,n(p))},get search(){return e(u)},set search(p){a(u,n(p))}});var w=l(y,2);to(w,{onSave:m});var b=l(w,2);We(b,23,()=>e(f),p=>p.id,(p,S,L)=>{var D=_o(),j=c(D);$o(j,{onSave:m,get attrs(){return e(t)},set attrs(N){a(t,n(N))},get scope(){return e(f)[e(L)]},set scope(N){e(f)[e(L)]=N}}),v(D),r(p,D)}),v(b);var x=l(b,2);jt(x,{get items(){return e(g)},set items(p){a(g,n(p))},get resItems(){return e(f)},set resItems(p){a(f,n(p))}}),q(2),v(h),K(()=>Y(k,`${e(d)??""} `)),r(_,T),ne()}var Eo=A(''),Io=A('
');function ss(_,s){let t=G(s,"options",19,()=>[{label:"password",value:!1},{label:"refresh_token",value:!1}]);var d=Io();We(d,21,t,yt,(i,g,f)=>{var u=Eo(),I=c(u),E=c(I,!0);v(I);var o=l(I,2);Be(o,{get selected(){return e(g).value},set selected($){e(g).value=$}}),v(u),K(()=>Y(E,e(g).label)),r(i,u)}),v(d),r(_,d)}var So=A("
");function Co(_,s){le(s,!0);let t=G(s,"validation",19,()=>({})),d=G(s,"value",15),i=G(s,"autocomplete",11,"on"),g=G(s,"validate",15),f=Jt(s,["$$slots","$$events","$$legacy","validation","name","value","width","autocomplete","children","validate"]);g($);let u=C("");const I=na();async function E(){await Bt(),I("input",!0),$()}async function o(){I("blur",!0),$()}function $(){var k;return a(u,""),d()&&((k=t())!=null&&k.regex)&&!d().match(t().regex)?(a(u,n(t().errMsg||"Invalid input")),!1):!0}var m=So(),T=c(m);return ie(T,La({get width(){return s.width},get name(){return s.name},get autocomplete(){return i()}},()=>f,{get value(){return d()},set value(k){d(k)},get error(){return e(u)},set error(k){a(u,n(k))},$$events:{input:E,blur:o},children:(k,h)=>{var y=me(),w=ee(y);At(w,()=>s.children??Ct),r(k,y)},$$slots:{default:!0}})),v(m),ce(7,m,()=>ht,()=>({duration:200})),r(_,m),ne({validateValue:$})}var Ao=A('
'),To=A('
');function Kt(_,s){le(s,!0);let t=G(s,"validation",27,()=>n({required:!1,regex:void 0,errMsg:""})),d=G(s,"values",15),i=G(s,"validate",15),g=G(s,"width",3,"260px"),f=G(s,"optional",3,!1),u=G(s,"autocomplete",15,"on"),I=Jt(s,["$$slots","$$events","$$legacy","validation","values","validate","width","optional","autocomplete","children"]);i(k);let E=C(""),o=C(n([]));const $=na();Ne(()=>{d()||d([]);for(let x of d())e(o).push({name:Mt(),value:x});e(o).push({name:Mt(),value:""})});async function m(){await Bt(),e(o)[e(o).length-1].value?e(o).push({name:Mt(),value:""}):e(o).length>1&&!e(o)[e(o).length-2].value&&a(o,n([...e(o).slice(0,e(o).length-1)])),$("input",!0),k(),d(T())}function T(){k();let x=[];for(let p=0;pe(o),yt,(x,p,S)=>{Co(x,La({width:"calc({width} - 20px)",get validation(){return t()},get name(){return e(p).name}},()=>I,{get value(){return e(p).value},set value(L){e(p).value=L},get validate(){return e(p).validate},set validate(L){e(p).validate=L},get autocomplete(){return u()},set autocomplete(L){u(L)},$$events:{input:m,blur:m},children:(L,D)=>{var j=me(),N=ee(j);At(N,()=>s.children??Ct),r(L,j)},$$slots:{default:!0}}))});var w=l(y,2);{var b=x=>{var p=Ao(),S=c(p,!0);v(p),K(()=>Y(S,e(E))),r(x,p)};P(w,x=>{e(E)&&x(b)})}return v(h),K(()=>oe(h,"width",g())),r(_,h),ne({getValues:T,validateValues:k})}var Lo=A('CAUTION: The FORCE MFA
option for rauthy
itself is managed statically via the ADMIN_FORCE_MFA
config variable and will be overridden with each restart.
'),No=A(`CAUTION: If you FORCE MFA
for this client here, this will only apply to the authorization_code
flow! If you use other flows,
MFA cannot be forced for them!
`),Ro=A('
CAUTION: rauthy
is the default client which is needed for logging into this Admin UI. Be VERY careful when you change values here, since you could end up locking yourself out of the UI.
',1),Do=A('Success
'),jo=A('
'),Po=A(` The Name can be changed without any impact on the configuration. It will just show up on the Login / Logout screens.
Information about this client's URI and some contacts.
Client URI and Contacts might be shown to users on the login page.
Allowed Scopes will be applied, if the client asks for them during the login. Default Scopes will always be applied.
Redirect URIs may contain a *
wildcard only at the end.
The Token Lifetime applies to the Access and ID tokens and is specified in seconds.
If your client does support EdDSA / ed25519 token algorithms, you should always use it for better security
and
smaller tokens. The RSA algorithms does exist for compatibility reasons only.
The algorithm for the optional refresh token cannot be changed, since this should only be used by rauthy anyway.
If your application does support it, you should always use S256 PKCE challenges. If you login from a single page application directly without any backend and therefore have a
non-confidential
client, you must(!) use at least the plain PKCE challenge, to have a secure login flow.
If any of these is set, rauthy will enforce the usage and deny any login, which does not provide a
- valid challenge.
`);function zo(_,s){le(s,!0);let t=G(s,"client",31,()=>n({}));const d="350px";let i=C(""),g=C(!1),f=C(void 0),u=n(Ls.map(se=>{var Ae,ze;return se.label==="device_code"?se.value=(Ae=t().flows_enabled)==null?void 0:Ae.includes("urn:ietf:params:oauth:grant-type:device_code"):se.value=(ze=t().flows_enabled)==null?void 0:ze.includes(se.label),se})),I=C(void 0);Qa.subscribe(se=>{a(I,n(se))});let E=n(Ns.map(se=>{var Ae;return se.value=(Ae=t().challenges)==null?void 0:Ae.includes(se.label),se})),o=C(void 0),$=C(void 0),m=C(void 0),T=C(void 0);Ne(()=>()=>clearTimeout(e(f)));let k=C(n({}));const h=He().shape({name:he().trim().matches(Xt,"Can only contain characters, numbers and '-'"),client_uri:he().trim().nullable().matches(tt,"Invalid URI"),access_token_lifetime:wt().required("Token Lifetime is required").min(10,"Cannot be lower than 10").max(86400,"Cannot be higher than 86400")});function y(){t().redirect_uris[0]===""&&t(t().redirect_uris=[],!0),(!t().post_logout_redirect_uris||t().post_logout_redirect_uris[0]==="")&&t(t().post_logout_redirect_uris=[],!0),t().name||t(t().name="",!0),(!t().contacts||t().contacts[0]==="")&&t(t().contacts=[],!0),t().client_uri||t(t().client_uri=null,!0)}function w(se){se.code==="Enter"&&b()}async function b(){a(i,"");const se=await x();if(!e($)()){a(i,"Invalid Allowed Origin");return}if(!e(m)()){a(i,"Invalid Redirect URIs");return}if(!e(T)()){a(i,"Invalid Post Logout URIs");return}if(!e(o)()){a(i,"Invalid Contacts");return}if(!se){a(i,"Invalid input");return}if(t(t().access_token_lifetime=Number.parseInt(t().access_token_lifetime),!0),t(t().flows_enabled=u.filter(X=>X.value).map(X=>X.label==="device_code"?"urn:ietf:params:oauth:grant-type:device_code":X.label),!0),t().flows_enabled.includes("authorization_code")&&t().redirect_uris.length===0){a(i,"With 'authorization_code' flow enabled, you need to specify at least one redirect URI");return}if(t().flows_enabled.includes("client_credentials")&&!t().confidential){a(i,"'client_credentials' flow needs a 'confidential' client");return}if(t().flows_enabled.length===0){a(i,"At least one flow must be enabled");return}let Ae=t();t(t().challenges=E.filter(X=>X.value).map(X=>X.label),!0),t().challenges.length===0&&(Ae.challenges=null),Ae.name||(Ae.name=void 0),Ae.allowed_origins.length>0&&!Ae.allowed_origins[0]&&(Ae.allowed_origins=[]);let ze=await pr(Ae);if(ze.ok)a(g,!0);else{let X=await ze.json();a(i,n(X.message))}}async function x(){try{return await h.validate(t(),{abortEarly:!1}),a(k,n({})),!0}catch(se){return a(k,n(Ye(se))),!1}}Te(()=>{t().id&&y()}),Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1),s.onSave()},3e3)))});var p=Po(),S=c(p),L=l(c(S),2),D=c(L,!0);v(L),v(S);var j=l(S,4);ie(j,{autocomplete:"off",placeholder:"Client Name",width:d,get value(){return t().name},set value(se){t(t().name=se,!0)},get error(){return e(k).name},set error(se){e(k).name=se},$$events:{keypress:w,input:x},children:(se,Ae)=>{q();var ze=B("CLIENT NAME");r(se,ze)},$$slots:{default:!0}});var N=l(j,4);ie(N,{autocomplete:"off",placeholder:"Client URI",width:d,get value(){return t().client_uri},set value(se){t(t().client_uri=se,!0)},get error(){return e(k).client_uri},set error(se){e(k).client_uri=se},$$events:{keypress:w,input:x},children:(se,Ae)=>{q();var ze=B("CLIENT URI");r(se,ze)},$$slots:{default:!0}});var V=l(N,2);Kt(V,{style:`width: ${d}`,validation:{required:!1,regex:Rs,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",placeholder:"Contact",optional:!0,get values(){return t().contacts},set values(se){t(t().contacts=se,!0)},get validate(){return e(o)},set validate(se){a(o,n(se))},children:(se,Ae)=>{q();var ze=B("CONTACT");r(se,ze)},$$slots:{default:!0}});var R=l(V,4);oe(R,"margin-top","-5px");var F=c(R);oe(F,"width","138px");var z=l(c(F),2),O=c(z);Be(O,{get selected(){return t().enabled},set selected(se){t(t().enabled=se,!0)}}),v(z),v(F);var U=l(F,2);oe(U,"width","110px");var Q=l(c(U),2),M=c(Q);Be(M,{get selected(){return t().confidential},set selected(se){t(t().confidential=se,!0)}}),v(Q),v(U),v(R);var W=l(R,2),J=l(c(W),2),Z=c(J);ss(Z,{get options(){return u}}),v(J),v(W);var re=l(W,2),ve=l(c(re),2),be=c(ve);Be(be,{get selected(){return t().force_mfa},set selected(se){t(t().force_mfa=se,!0)}}),v(ve),v(re);var $e=l(re,2);{var pe=se=>{var Ae=Lo();oe(Ae,"margin","-10px 0 -15px 5px");var ze=c(Ae),X=c(ze);oe(X,"color","var(--col-err)"),q(7),v(ze),v(Ae),r(se,Ae)},je=se=>{var Ae=me(),ze=ee(Ae);{var X=Ee=>{var Le=No();oe(Le,"margin","-10px 0 -15px 5px");var St=c(Le),ae=c(St);oe(ae,"color","var(--col-err)"),q(5),v(St),v(Le),ce(3,Le,()=>_e),r(Ee,Le)};P(ze,Ee=>{t().force_mfa&&Ee(X)},!0)}r(se,Ae)};P($e,se=>{t().id==="rauthy"?se(pe):se(je,!1)})}var fe=l($e,6);oe(fe,"margin-top","-10px");var de=l(c(fe),2);zt(de,{get options(){return e(I)},searchThreshold:4,get items(){return t().scopes},set items(se){t(t().scopes=se,!0)}}),v(fe);var ye=l(fe,2);oe(ye,"margin-top","-3px");var we=l(c(ye),2);zt(we,{get options(){return e(I)},searchThreshold:4,get items(){return t().default_scopes},set items(se){t(t().default_scopes=se,!0)}}),v(ye);var Pe=l(ye,4);Kt(Pe,{style:`width: ${d}`,validation:{required:!0,regex:Ds,errMsg:"Must be a valid origin"},autocomplete:"off",placeholder:"Allowed Origin",optional:!0,get values(){return t().allowed_origins},set values(se){t(t().allowed_origins=se,!0)},get validate(){return e($)},set validate(se){a($,n(se))},children:(se,Ae)=>{q();var ze=B("ALLOWED ORIGIN");r(se,ze)},$$slots:{default:!0}});var Ce=l(Pe,4);Kt(Ce,{style:`width: ${d}`,validation:{required:!0,regex:tt,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",placeholder:"Redirect URI",optional:!0,get values(){return t().redirect_uris},set values(se){t(t().redirect_uris=se,!0)},get validate(){return e(m)},set validate(se){a(m,n(se))},children:(se,Ae)=>{q();var ze=B("REDIRECT URI");r(se,ze)},$$slots:{default:!0}});var xe=l(Ce,4);Kt(xe,{style:`width: ${d}`,validation:{required:!0,regex:tt,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",placeholder:"Post Logout Redirect URI",optional:!0,get values(){return t().post_logout_redirect_uris},set values(se){t(t().post_logout_redirect_uris=se,!0)},get validate(){return e(T)},set validate(se){a(T,n(se))},children:(se,Ae)=>{q();var ze=B("POST LOGOUT REDIRECT URI");r(se,ze)},$$slots:{default:!0}});var Re=l(xe,6);ie(Re,{type:"number",min:60,max:86400,autocomplete:"off",placeholder:"Client Name",width:d,get value(){return t().access_token_lifetime},set value(se){t(t().access_token_lifetime=se,!0)},get error(){return e(k).access_token_lifetime},set error(se){e(k).access_token_lifetime=se},$$events:{input:x},children:(se,Ae)=>{q();var ze=B("ACCESS TOKEN LIFETIME");r(se,ze)},$$slots:{default:!0}});var H=l(Re,2),Ie=c(H);oe(Ie,"width","220px");var ge=l(c(Ie),2),Ue=c(ge);kt(Ue,{options:za,get value(){return t().access_token_alg},set value(se){t(t().access_token_alg=se,!0)}}),v(ge),v(Ie);var Je=l(Ie,2),rt=c(Je);oe(rt,"text-align","right");var vt=l(rt,2),qe=c(vt);kt(qe,{options:za,get value(){return t().id_token_alg},set value(se){t(t().id_token_alg=se,!0)}}),v(vt),v(Je),v(H);var Fe=l(H,6),lt=l(c(Fe),2),xt=c(lt);ss(xt,{get options(){return E}}),v(lt),v(Fe);var $t=l(Fe,2),Qe=c($t);{var et=se=>{var Ae=Ro();q(4),r(se,Ae)};P(Qe,se=>{t().id==="rauthy"&&se(et)})}v($t);var gt=l($t,2);Se(gt,{level:1,width:"4rem",$$events:{click:b},children:(se,Ae)=>{q();var ze=B("SAVE");r(se,ze)},$$slots:{default:!0}});var ct=l(gt,2);{var It=se=>{var Ae=Do();r(se,Ae)};P(ct,se=>{e(g)&&se(It)})}var at=l(ct,2);{var st=se=>{var Ae=jo(),ze=c(Ae,!0);v(Ae),K(()=>Y(ze,e(i))),r(se,Ae)};P(at,se=>{e(i)&&se(st)})}v(p),K(()=>Y(D,t().id)),r(_,p),ne()}var Oo=A('');function Mo(_,s){le(s,!0);let t=C(""),d=C("");Ne(()=>{i()});async function i(){let T=await $r(s.client.id),k=await T.json();T.ok?a(d,n(k.secret)):a(t,n(k.message))}async function g(){let T=await _r(s.client.id),k=await T.json();T.ok?await i():a(t,n(k.message))}var f=Oo(),u=c(f),I=c(u,!0);v(u);var E=l(u,2),o=c(E);{var $=T=>{Wt(T,{autocomplete:"off",disabled:!0,showCopy:!0,width:"inherit",maxWidth:"800px",get value(){return e(d)},set value(k){a(d,n(k))},children:(k,h)=>{q();var y=B("CLIENT SECRET");r(k,y)},$$slots:{default:!0}})};P(o,T=>{e(d)&&T($)})}v(E);var m=l(E,2);Se(m,{level:1,$$events:{click:g},children:(T,k)=>{q();var h=B("GENERATE NEW");r(T,h)},$$slots:{default:!0}}),v(f),K(()=>Y(I,e(t))),r(_,f),ne()}var Uo=A('Anti-Lockout Rule: The rauthy default client cannot be deleted.
'),qo=A('
'),Go=A('Are you sure, you want to delete this client?
',1),Wo=A('
');function Ko(_,s){le(s,!0);let t=G(s,"client",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await mr(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=Wo(),u=c(f);{var I=o=>{var $=Uo();r(o,$)},E=o=>{var $=Go(),m=l(ee($),2);Se(m,{level:1,get isLoading(){return e(d)},set isLoading(h){a(d,n(h))},$$events:{click:g},children:(h,y)=>{q();var w=B("DELETE");r(h,w)},$$slots:{default:!0}});var T=l(m,2);{var k=h=>{var y=qo(),w=c(y,!0);v(y),K(()=>Y(w,e(i))),r(h,y)};P(T,h=>{e(i)&&h(k)})}r(o,$)};P(u,o=>{t().id==="rauthy"?o(I):o(E,!1)})}v(f),r(_,f),ne()}var Fo=(_,s)=>a(s,!0),Vo=A('
'),Bo=A('LOAD
'),Jo=A('
');function ya(_,s){le(s,!0);let t=C(!1),d=C(!1),i=C(void 0),g=C(void 0),f=C(void 0),u=C(void 0),I=C(void 0),E=C("white");Ca(()=>{clearTimeout(e(I))});function o(){switch(s.level){case 1:a(i,n(s.colors.act1)),a(g,n(s.colors.act1a)),a(f,"white"),a(u,`1px solid ${s.colors.gmid}`);break;case 2:a(i,n(s.colors.act2)),a(g,n(s.colors.act2a)),a(f,n(s.colors.ghigh)),a(u,`1px solid ${s.colors.gmid}`);break;default:a(i,n(s.colors.ghigh)),a(g,"white"),a(f,n(s.colors.act2a)),a(u,`1px solid ${s.colors.act2a}`),a(E,n(s.colors.acnt))}}Te(()=>{e(d)&&a(I,n(setTimeout(()=>{a(d,!1)},2e3)))}),Te(()=>{s.colors&&o()});var $=Jo(),m=c($);m.__click=[Fo,d],oe(m,"width","100px");var T=c(m);{var k=y=>{var w=Vo(),b=c(w);ha(b,{background:!1,get color(){return e(E)}}),v(w),r(y,w)},h=y=>{var w=Bo();r(y,w)};P(T,y=>{e(d)?y(k):y(h,!1)})}v(m),v($),K(()=>{oe(m,"border",e(u)),oe(m,"box-shadow",`1px 1px 2px ${s.colors.gmid??""}`),oe(m,"cursor",e(d)?"default":"pointer"),oe(m,"color",e(f)),oe(m,"background",e(t)?e(g):e(i))}),Me("focus",m,()=>a(t,!0)),Me("blur",m,()=>a(t,!1)),Me("keypress",m,()=>a(d,!0)),r(_,$),ne()}ut(["click"]);var Yo=A(''),Ho=A('
'),Xo=A('');function rs(_,s){le(s,!0);let t=G(s,"colors",19,()=>({})),d=G(s,"error",3,""),i=G(s,"name",3,""),g=G(s,"password",3,!1),f=G(s,"value",3,""),u=G(s,"width",3,"250px"),I=Jt(s,["$$slots","$$events","$$legacy","colors","error","name","password","value","width","children"]),E=C(n(g()?"new-password":"text")),o=C(!1),$=C(!1);function m(){e(E)==="password"?a(E,"text"):a(E,"password")}var T=Xo(),k=c(T),h=c(k),y=c(h),w=c(y);At(w,()=>s.children??Ct),v(y),v(h),v(k);var b=l(k,2);nt(b);var x=()=>a(o,!0),p=()=>a(o,!1),S=()=>a($,!0),L=()=>a($,!1);let D;var j=l(b,2);{var N=F=>{var z=Yo(),O=c(z);O.__click=m;var U=c(O);{var Q=W=>{Fa(W,{width:22,get color(){return t().err}})},M=W=>{Va(W,{width:22,get color(){return t().ok}})};P(U,W=>{e(E)==="password"?W(Q):W(M,!1)})}v(O),v(z),Me("keypress",O,m),r(F,z)};P(j,F=>{g()&&F(N)})}var V=l(j,2);{var R=F=>{var z=Ho(),O=c(z,!0);v(z),K(()=>{oe(z,"width",u()),oe(z,"color",t().err),Y(O,d())}),ce(7,z,()=>_e,()=>({duration:250})),r(F,z)};P(V,F=>{d()&&F(R)})}v(T),K(()=>{oe(T,"width",`calc(${u()??""} + 12px)`),oe(h,"background",t().bg),ue(y,"for",i()),D=pa(b,D,{type:e(E),onmouseenter:x,onmouseleave:p,onfocus:S,onblur:L,autocomplete:"off",name:i(),value:f(),...I},"svelte-115vejc"),oe(b,"width",u()),oe(b,"background",(e(o)||e($),t().bg)),oe(b,"border",e($)?`1px solid ${t().acnt}`:`1px solid ${t().glow}`),oe(b,"color",t().text),oe(b,"box-shadow",`1px 1px 2px ${t().gmid??""}`)}),r(_,T),ne()}ut(["click"]);var Zo=A(' ');function is(_,s){le(s,!0);var t=Zo();K(()=>ue(t,"src",`/auth/v1/clients/${s.clientId}/logo?${Mt(6)}`)),r(_,t),ne()}var Qo=A('PREVIEW
',1);function ev(_,s){le(s,!0);let t="This is an E-Mail error",d="This is a password error";var i=Qo(),g=l(ee(i),2),f=c(g),u=c(f),I=c(u);{var E=y=>{is(y,{get clientId(){return s.clientId}})};P(I,y=>{s.isLoading||y(E)})}v(u),v(f);var o=l(f,4);rs(o,{type:"email",name:"rauthyEmail",placeholder:"E-Mail",get error(){return t},get colors(){return s.colors},children:(y,w)=>{q();var b=B("E-MAIL");r(y,b)},$$slots:{default:!0}});var $=l(o,2);rs($,{password:!0,name:"rauthyPassword",placeholder:"Password",get error(){return d},get colors(){return s.colors},children:(y,w)=>{q();var b=B("E-MAIL");r(y,b)},$$slots:{default:!0}});var m=l($,2),T=c(m);ya(T,{get colors(){return s.colors},level:1});var k=l(T,2);ya(k,{get colors(){return s.colors},level:2});var h=l(k,2);ya(h,{get colors(){return s.colors},level:3}),v(m),v(g),K(()=>{oe(g,"color",s.colors.text),oe(g,"border",`1px solid ${s.colors.gmid??""}`),oe(g,"background",s.colors.bg)}),r(_,i),ne()}var tv=Xe(' ');function av(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=tv();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var sv=(_,s)=>e(s).click(),rv=(_,s)=>e(s).click(),iv=(_,s)=>s(_),lv=A('');function ls(_,s){let t=G(s,"text",3,"UPLOAD LOGO"),d=G(s,"image",15),i=C(void 0);async function g(m){d(m.target.files[0])}var f=lv(),u=c(f);u.__click=[sv,i];var I=c(u);av(I,{width:22}),v(u);var E=l(u,2);E.__click=[rv,i];var o=c(E,!0);v(E);var $=l(E,2);$.__change=[iv,g],Qs($,m=>a(i,m),()=>e(i)),v(f),K(()=>Y(o,t())),Me("keypress",u,()=>e(i).click()),Me("keypress",E,()=>e(i).click()),r(_,f)}ut(["click","change"]);var nv=A(' ',1),ov=A('
'),vv=A('Success
'),dv=A('
'),cv=A(`You can set client specific colors, which then will be used for the Login page.
- These colors must be valid CSS values. Either enter them directly or use the color picker.
`);function uv(_,s){le(s,!0);let t=G(s,"client",19,()=>({})),d=C(void 0),i=C(void 0),g=C(!1),f=C(""),u=C(!1),I=C(void 0),E=C(n({})),o=C(n({}));const $=He().shape({act1:he().trim().matches(ft,"only valid CSS color"),act1a:he().trim().matches(ft,"only valid CSS color"),act2:he().trim().matches(ft,"only valid CSS color"),act2a:he().trim().matches(ft,"only valid CSS color"),acnt:he().trim().matches(ft,"only valid CSS color"),acnta:he().trim().matches(ft,"only valid CSS color"),ok:he().trim().matches(ft,"only valid CSS color"),err:he().trim().matches(ft,"only valid CSS color"),glow:he().trim().matches(ft,"only valid CSS color"),gmid:he().trim().matches(ft,"only valid CSS color"),ghigh:he().trim().matches(ft,"only valid CSS color"),text:he().trim().matches(ft,"only valid CSS color"),bg:he().trim().matches(ft,"only valid CSS color")});Ne(async()=>{await m()}),Ca(()=>{e(I)&&clearTimeout(e(I))});async function m(){let O=await gr(t().id);if(O.ok){let U=await O.json();a(d,n(U)),a(o,n(U))}else{let U=await O.json();a(f,n(U.message))}}async function T(){if(a(f,""),a(g,!0),!await y())return;let O=await fr(t().id,e(o));if(O.ok)a(u,!0);else{let U=await O.json();a(f,n(U.message))}a(g,!1)}async function k(){a(f,""),a(g,!0);let O=await yr(t().id);if(O.ok)await br(t().id),await m(),a(u,!0);else{let U=await O.json();a(f,n(U.message))}a(g,!1)}async function h(O){a(g,!0),await Bt();let U=await wr(t().id,O);if(!U.ok){let Q=await U.json();console.error(Q.message)}a(g,!1)}async function y(){try{await $.validate(e(o),{abortEarly:!1}),a(E,n({}))}catch(O){return a(E,n(Ye(O))),!1}return a(d,n(e(o))),!0}Te(()=>{e(u)&&a(I,n(setTimeout(()=>{a(u,!1)},3e3)))}),Te(()=>{e(i)&&h(e(i))});var w=cv(),b=l(c(w),2),x=c(b);{var p=O=>{var U=nv(),Q=ee(U),M=c(Q),W=c(M);ie(W,{autocomplete:"off",placeholder:"act1",get value(){return e(o).act1},set value(te){e(o).act1=te},get error(){return e(E).act1},set error(te){e(E).act1=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("act1");r(te,Ve)},$$slots:{default:!0}});var J=l(W,2),Z=c(J);nt(Z);var re=l(Z,2);v(J),v(M);var ve=l(M,2),be=c(ve);ie(be,{autocomplete:"off",placeholder:"act1a",get value(){return e(o).act1a},set value(te){e(o).act1a=te},get error(){return e(E).act1a},set error(te){e(E).act1a=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("act1a");r(te,Ve)},$$slots:{default:!0}});var $e=l(be,2),pe=c($e);nt(pe);var je=l(pe,2);v($e),v(ve);var fe=l(ve,2),de=c(fe);ie(de,{autocomplete:"off",placeholder:"act2",get value(){return e(o).act2},set value(te){e(o).act2=te},get error(){return e(E).act2},set error(te){e(E).act2=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("act2");r(te,Ve)},$$slots:{default:!0}});var ye=l(de,2),we=c(ye);nt(we);var Pe=l(we,2);v(ye),v(fe);var Ce=l(fe,2),xe=c(Ce);ie(xe,{autocomplete:"off",placeholder:"act2a",get value(){return e(o).act2a},set value(te){e(o).act2a=te},get error(){return e(E).act2a},set error(te){e(E).act2a=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("act2a");r(te,Ve)},$$slots:{default:!0}});var Re=l(xe,2),H=c(Re);nt(H);var Ie=l(H,2);v(Re),v(Ce);var ge=l(Ce,2),Ue=c(ge);ie(Ue,{autocomplete:"off",placeholder:"acnt",get value(){return e(o).acnt},set value(te){e(o).acnt=te},get error(){return e(E).acnt},set error(te){e(E).acnt=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("acnt");r(te,Ve)},$$slots:{default:!0}});var Je=l(Ue,2),rt=c(Je);nt(rt);var vt=l(rt,2);v(Je),v(ge);var qe=l(ge,2),Fe=c(qe);ie(Fe,{autocomplete:"off",placeholder:"acnta",get value(){return e(o).acnta},set value(te){e(o).acnta=te},get error(){return e(E).acnta},set error(te){e(E).acnta=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("acnta");r(te,Ve)},$$slots:{default:!0}});var lt=l(Fe,2),xt=c(lt);nt(xt);var $t=l(xt,2);v(lt),v(qe);var Qe=l(qe,2),et=c(Qe);ie(et,{autocomplete:"off",placeholder:"ok",get value(){return e(o).ok},set value(te){e(o).ok=te},get error(){return e(E).ok},set error(te){e(E).ok=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("ok");r(te,Ve)},$$slots:{default:!0}});var gt=l(et,2),ct=c(gt);nt(ct);var It=l(ct,2);v(gt),v(Qe);var at=l(Qe,2),st=c(at);ie(st,{autocomplete:"off",placeholder:"err",get value(){return e(o).err},set value(te){e(o).err=te},get error(){return e(E).err},set error(te){e(E).err=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("err");r(te,Ve)},$$slots:{default:!0}});var se=l(st,2),Ae=c(se);nt(Ae);var ze=l(Ae,2);v(se),v(at),v(Q);var X=l(Q,2),Ee=c(X),Le=c(Ee);ie(Le,{autocomplete:"off",placeholder:"glow",get value(){return e(o).glow},set value(te){e(o).glow=te},get error(){return e(E).glow},set error(te){e(E).glow=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("glow");r(te,Ve)},$$slots:{default:!0}});var St=l(Le,2),ae=c(St);nt(ae);var Ge=l(ae,2);v(St),v(Ee);var Oe=l(Ee,2),Ut=c(Oe);ie(Ut,{autocomplete:"off",placeholder:"gmid",get value(){return e(o).gmid},set value(te){e(o).gmid=te},get error(){return e(E).gmid},set error(te){e(E).gmid=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("gmid");r(te,Ve)},$$slots:{default:!0}});var Ht=l(Ut,2),Ft=c(Ht);nt(Ft);var Pt=l(Ft,2);v(Ht),v(Oe);var Vt=l(Oe,2),ba=c(Vt);ie(ba,{autocomplete:"off",placeholder:"ghigh",get value(){return e(o).ghigh},set value(te){e(o).ghigh=te},get error(){return e(E).ghigh},set error(te){e(E).ghigh=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("ghigh");r(te,Ve)},$$slots:{default:!0}});var $a=l(ba,2),aa=c($a);nt(aa);var hs=l(aa,2);v($a),v(Vt);var sa=l(Vt,2),_a=c(sa);ie(_a,{autocomplete:"off",placeholder:"text",get value(){return e(o).text},set value(te){e(o).text=te},get error(){return e(E).text},set error(te){e(E).text=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("text");r(te,Ve)},$$slots:{default:!0}});var ka=l(_a,2),ra=c(ka);nt(ra);var ps=l(ra,2);v(ka),v(sa);var ia=l(sa,2),xa=c(ia);ie(xa,{autocomplete:"off",placeholder:"bg",get value(){return e(o).bg},set value(te){e(o).bg=te},get error(){return e(E).bg},set error(te){e(E).bg=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("bg");r(te,Ve)},$$slots:{default:!0}});var Ea=l(xa,2),la=c(Ea);nt(la);var ms=l(la,2);v(Ea),v(ia);var Ia=l(ia,2),Sa=c(Ia);ls(Sa,{get image(){return e(i)},set image(te){a(i,n(te))}});var gs=l(Sa,2);{var fs=te=>{is(te,{get clientId(){return t().id}})};P(gs,te=>{e(g)||te(fs)})}v(Ia),v(X),K(()=>{oe(re,"background",e(o).act1),oe(je,"background",e(o).act1a),oe(Pe,"background",e(o).act2),oe(Ie,"background",e(o).act2a),oe(vt,"background",e(o).acnt),oe($t,"background",e(o).acnta),oe(It,"background",e(o).ok),oe(ze,"background",e(o).err),oe(Ge,"background",e(o).glow),oe(Pt,"background",e(o).gmid),oe(hs,"background",e(o).ghigh),oe(ps,"background",e(o).text),oe(ms,"background",e(o).bg)}),dt(Z,()=>e(o).act1,te=>e(o).act1=te),dt(pe,()=>e(o).act1a,te=>e(o).act1a=te),dt(we,()=>e(o).act2,te=>e(o).act2=te),dt(H,()=>e(o).act2a,te=>e(o).act2a=te),dt(rt,()=>e(o).acnt,te=>e(o).acnt=te),dt(xt,()=>e(o).acnta,te=>e(o).acnta=te),dt(ct,()=>e(o).ok,te=>e(o).ok=te),dt(Ae,()=>e(o).err,te=>e(o).err=te),dt(ae,()=>e(o).glow,te=>e(o).glow=te),dt(Ft,()=>e(o).gmid,te=>e(o).gmid=te),dt(aa,()=>e(o).ghigh,te=>e(o).ghigh=te),dt(ra,()=>e(o).text,te=>e(o).text=te),dt(la,()=>e(o).bg,te=>e(o).bg=te),r(O,U)};P(x,O=>{e(o)&&O(p)})}var S=l(x,2);{var L=O=>{var U=ov(),Q=c(U);ev(Q,{get clientId(){return t().id},get isLoading(){return e(g)},get colors(){return e(d)},set colors(M){a(d,n(M))}}),v(U),r(O,U)};P(S,O=>{e(d)&&O(L)})}v(b);var D=l(b,2),j=c(D);Se(j,{level:1,get isLoading(){return e(g)},set isLoading(O){a(g,n(O))},$$events:{click:T},children:(O,U)=>{q();var Q=B("SAVE");r(O,Q)},$$slots:{default:!0}});var N=l(j,2);Se(N,{level:3,get isLoading(){return e(g)},set isLoading(O){a(g,n(O))},$$events:{click:k},children:(O,U)=>{q();var Q=B("RESET");r(O,Q)},$$slots:{default:!0}});var V=l(N,2);{var R=O=>{var U=vv();r(O,U)};P(V,O=>{e(u)&&O(R)})}var F=l(V,2);{var z=O=>{var U=dv(),Q=c(U,!0);v(U),K(()=>Y(Q,e(f))),r(O,U)};P(F,O=>{e(f)&&O(z)})}v(D),v(w),r(_,w),ne()}var hv=A('
'),pv=A('
'),mv=A(''),gv=A("
"),fv=A("
"),yv=A("
"),wv=A("
"),bv=A("
");function $v(_,s){le(s,!0);let t=G(s,"client",31,()=>n({})),d=G(s,"onSave",15),i=C(void 0);const g=["Config","Secret","Branding","Delete"];let f=C(n(g[0]));const u=200,I=u/2;function E(){a(i,!1),d()()}ot(_,{get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=mv(),m=c($);Ze(m,{text:"Client ID",children:(h,y)=>{var w=hv(),b=c(w,!0);v(w),K(()=>Y(b,t().id)),r(h,w)},$$slots:{default:!0}});var T=l(m,2);{var k=h=>{Ze(h,{text:"Client Name",children:(y,w)=>{var b=pv(),x=c(b,!0);v(b),K(()=>Y(x,t().name)),r(y,b)},$$slots:{default:!0}})};P(T,h=>{t().name&&h(k)})}v($),r(o,$)},body:o=>{var $=bv(),m=c($);Dt(m,{labels:g,get selected(){return e(f)},set selected(y){a(f,n(y))}});var T=l(m,2);{var k=y=>{var w=gv(),b=c(w);zo(b,{get client(){return t()},set client(x){t(x)},get onSave(){return d()},set onSave(x){d(x)}}),v(w),ce(5,w,()=>_e,()=>({delay:I,duration:u})),ce(6,w,()=>_e,()=>({duration:u})),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=S=>{var L=fv(),D=c(L);Mo(D,{get client(){return t()}}),v(L),ce(5,L,()=>_e,()=>({delay:I,duration:u})),ce(6,L,()=>_e,()=>({duration:u})),r(S,L)},p=S=>{var L=me(),D=ee(L);{var j=V=>{var R=yv(),F=c(R);uv(F,{get client(){return t()}}),v(R),ce(5,R,()=>_e,()=>({delay:I,duration:u})),ce(6,R,()=>_e,()=>({duration:u})),r(V,R)},N=V=>{var R=me(),F=ee(R);{var z=O=>{var U=wv(),Q=c(U);Ko(Q,{get client(){return t()},onSave:E}),v(U),ce(5,U,()=>_e,()=>({delay:I,duration:u})),ce(6,U,()=>_e,()=>({duration:u})),r(O,U)};P(F,O=>{e(f)==="Delete"&&O(z)},!0)}r(V,R)};P(D,V=>{e(f)==="Branding"?V(j):V(N,!1)},!0)}r(S,L)};P(b,S=>{e(f)==="Secret"?S(x):S(p,!1)},!0)}r(y,w)};P(T,y=>{e(f)==="Config"?y(k):y(h,!1)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var _v=A(''),kv=A('Success
'),xv=A('
'),Ev=A('');function Iv(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(void 0),i=n({id:"",name:"",confidential:!0,redirect_uris:[]}),g=C(""),f=C(!1),u=C(void 0),I=C(n({}));const E=He().shape({id:he().required("Client ID is required").trim().matches(js,"Can only contain characters, numbers and '-'"),name:he().trim().nullable().matches(Xt,"Can only contain characters, numbers and '-'")});let o=C(void 0),$=C(void 0);const m="330px";Te(()=>{e(f)&&a(u,n(setTimeout(()=>{s.onSave(),a(f,!1),a(d,!1)},1500)))}),Ne(()=>()=>clearTimeout(e(u)));async function T(){if(a(g,""),!await k()||!e(o)()||!e($)()){a(g,"Invalid input");return}let h=i;h.name||(h.name=void 0);let y=await hr(h);if(y.ok)a(f,!0);else{let w=await y.json();a(g,n(w.message))}}async function k(){try{return await E.validate(i,{abortEarly:!1}),a(I,n({})),!0}catch(h){return a(I,n(Ye(h))),!1}}ot(_,{get idx(){return t()},set idx(h){t(h)},get show(){return e(d)},set show(h){a(d,n(h))},header:h=>{var y=_v();r(h,y)},body:h=>{var y=Ev(),w=c(y);ie(w,{autocomplete:"off",placeholder:"Client ID",width:m,get value(){return i.id},set value(z){i.id=z},get error(){return e(I).id},set error(z){e(I).id=z},$$events:{input:k},children:(z,O)=>{q();var U=B("CLIENT ID");r(z,U)},$$slots:{default:!0}});var b=l(w,2);ie(b,{autocomplete:"off",placeholder:"Client Name",width:m,get value(){return i.name},set value(z){i.name=z},get error(){return e(I).name},set error(z){e(I).name=z},$$events:{input:k},children:(z,O)=>{q();var U=B("NAME");r(z,U)},$$slots:{default:!0}});var x=l(b,2);Kt(x,{style:`width: ${m}`,validation:{required:!0,regex:tt,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",optional:!0,placeholder:"Redirect URI",get values(){return i.redirect_uris},set values(z){i.redirect_uris=z},get validate(){return e(o)},set validate(z){a(o,n(z))},children:(z,O)=>{q();var U=B("REDIRECT URI");r(z,U)},$$slots:{default:!0}});var p=l(x,2);Kt(p,{style:`width: ${m}`,validation:{required:!0,regex:tt,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",optional:!0,placeholder:"Post Logout Redirect URI",get values(){return i.post_logout_redirect_uris},set values(z){i.post_logout_redirect_uris=z},get validate(){return e($)},set validate(z){a($,n(z))},children:(z,O)=>{q();var U=B("POST LOGOUT REDIRECT URI");r(z,U)},$$slots:{default:!0}});var S=l(p,2),L=l(c(S),2),D=c(L);Be(D,{get selected(){return i.confidential},set selected(z){i.confidential=z}}),v(L),v(S);var j=l(S,2);Se(j,{level:1,width:"4rem",$$events:{click:T},children:(z,O)=>{q();var U=B("SAVE");r(z,U)},$$slots:{default:!0}});var N=l(j,2);{var V=z=>{var O=kv();r(z,O)};P(N,z=>{e(f)&&z(V)})}var R=l(N,2);{var F=z=>{var O=xv(),U=c(O,!0);v(O),K(()=>Y(U,e(g))),r(z,O)};P(R,z=>{e(g)&&z(F)})}v(y),r(h,y)},$$slots:{header:!0,body:!0}}),ne()}var Sv=A('
'),Cv=A(' ',1);function Av(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(""),u=[{label:"ID",callback:(x,p)=>x.id.toLowerCase().includes(p.toLowerCase())}],I=[{label:"ID",callback:(x,p)=>x.id.localeCompare(p.id)}];Ne(()=>{E(),o()});async function E(){let x=await ur();if(!x.ok)a(t,"Error fetching clients: "+x.body.message);else{let p=await x.json();a(d,n([...p]))}}async function o(){let x=await Za();if(!x.ok)a(t,"Error fetching scopes: "+x.body.message);else{let p=await x.json();mi.set(p),Qa.set(p.map(S=>S.name))}}function $(){E(),o(),a(f,"")}q();var m=Cv(),T=ee(m),k=l(T),h=c(k);Lt(h,{get items(){return e(d)},searchOptions:u,orderOptions:I,get resItems(){return e(i)},set resItems(x){a(i,n(x))},get search(){return e(f)},set search(x){a(f,n(x))}});var y=l(h,2);Iv(y,{onSave:$});var w=l(y,2);We(w,23,()=>e(g),x=>x.id,(x,p,S)=>{var L=Sv(),D=c(L);$v(D,{onSave:$,get client(){return e(g)[e(S)]},set client(j){e(g)[e(S)]=j}}),v(L),r(x,L)}),v(w);var b=l(w,2);jt(b,{get items(){return e(i)},set items(x){a(i,n(x))},get resItems(){return e(g)},set resItems(x){a(g,n(x))}}),q(2),v(k),K(()=>Y(T,`${e(t)??""} `)),r(_,m),ne()}var Tv=A('
'),Lv=A('
'),Nv=A('
'),Rv=A(''),Dv=A(''),jv=A('
');function ns(_,s){le(s,!0);let t=G(s,"session",27,()=>n({})),d=G(s,"now",11,0);var i=jv(),g=c(i);ot(g,{header:f=>{var u=Rv(),I=c(u);Ze(I,{text:"User ID",children:(m,T)=>{var k=Tv(),h=c(k,!0);v(k),K(()=>Y(h,t().user_id)),r(m,k)},$$slots:{default:!0}});var E=l(I,2),o=c(E);Ze(o,{text:"Peer IP",children:(m,T)=>{var k=Lv(),h=c(k,!0);v(k),K(()=>Y(h,t().remote_ip)),r(m,k)},$$slots:{default:!0}});var $=l(o,2);Ze($,{text:"Last Seen",children:(m,T)=>{var k=Nv(),h=c(k,!0);K(()=>Y(h,ht(t().last_seen))),v(k),r(m,k)},$$slots:{default:!0}}),v(E),v(u),r(f,u)},body:f=>{var u=Dv(),I=c(u),E=l(c(I));v(I);var o=l(I,2),$=l(c(o));v(o);var m=l(o,2),T=l(c(m));K(()=>Y(T,` ${ht(t().exp)??""}`)),v(m);var k=l(m,2),h=l(c(k));K(()=>Y(h,` ${ht(t().last_seen)??""}`)),v(k);var y=l(k,2),w=l(c(y));v(y);var b=l(y,2),x=l(c(b));v(b);var p=l(b,2),S=l(c(p),2);ea(S,{get check(){return t().is_mfa}}),v(p),v(u),K(()=>{Y(E,` ${t().id??""}`),Y($,` ${t().user_id??""}`),Y(w,` ${t().state??""}`),Y(x,` ${t().remote_ip??""}`)}),r(f,u)},$$slots:{header:!0,body:!0}}),v(i),K(()=>Et(i,"expired",t().exp '),zv=A('
'),Ov=A('');function Mv(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(Date.now()/1e3),u=C(""),I=C(!1),E=C(15),o=C(""),$=C(1),m=[{label:"User ID",callback:(U,Q)=>{var M;return(M=U.user_id)==null?void 0:M.toLowerCase().includes(Q.toLowerCase())}},{label:"Session ID",callback:(U,Q)=>U.id.toLowerCase().includes(Q.toLowerCase())},{label:"IP",callback:(U,Q)=>{var M;return(M=U.remote_ip)==null?void 0:M.toLowerCase().includes(Q.toLowerCase())}}],T=[{label:"Expires",callback:(U,Q)=>U.exp-Q.exp},{label:"Last Seen",callback:(U,Q)=>U.last_seen-Q.last_seen},{label:"Session ID",callback:(U,Q)=>U.id.localeCompare(Q.id)},{label:"User ID",callback:(U,Q)=>{var M;return(M=U.user_id)==null?void 0:M.localeCompare(Q.user_id)}},{label:"State",callback:(U,Q)=>U.state.localeCompare(Q.state)},{label:"IP",callback:(U,Q)=>{var M;return(M=U.remote_ip)==null?void 0:M.localeCompare(Q.remote_ip)}}];Ne(()=>{k()});async function k(U,Q,M,W){let J;if(U===!0?M&&e($)===2?J=await Ja(W||e(E),Q,void 0,!1):J=await Ja(W||e(E),Q,e(o),M):J=await qr(),!J.ok)a(t,"Error fetching sessions: "+J.body.message);else{J.status===206?(a(E,n(Number.parseInt(J.headers.get("x-page-size"),10))),a(o,n(J.headers.get("x-continuation-token"))),a(u,"session")):a(u,"");let Z=await J.json();a(d,n([...Z])),a(i,n([...Z])),a(f,Date.now()/1e3)}}async function h(U,Q){await k(!0,U,Q),Q?a($,e($)-1):a($,e($)+1)}async function y(U){a(o,""),await k(!0,0,!1,U),a($,1)}async function w(){let U=await Gr();if(U.ok)Oa();else{let Q=await U.json();a(t,n(Q.message))}a(f,n(new Date))}var b=Ov(),x=c(b),p=c(x);Lt(p,{get items(){return e(d)},searchOptions:m,orderOptions:T,firstDirReverse:!0,get resItems(){return e(i)},set resItems(U){a(i,n(U))},get useServerSideIdx(){return e(u)},set useServerSideIdx(U){a(u,n(U))},get isSearchFiltered(){return e(I)},set isSearchFiltered(U){a(I,n(U))}});var S=l(p,2);oe(S,"margin-top","-10px");var L=c(S);Se(L,{level:3,$$events:{click:w},children:(U,Q)=>{q();var M=B("Invalidate All Sessions");r(U,M)},$$slots:{default:!0}}),v(S),v(x);var D=l(x),j=l(D),N=c(j);{var V=U=>{var Q=me(),M=ee(Q);We(M,19,()=>e(d),W=>W.id,(W,J,Z)=>{var re=Pv(),ve=c(re);ns(ve,{get session(){return e(d)[e(Z)]},set session(be){e(d)[e(Z)]=be},get now(){return e(f)},set now(be){a(f,n(be))}}),v(re),r(W,re)}),r(U,Q)},R=U=>{var Q=me(),M=ee(Q);We(M,19,()=>e(g),W=>W.id,(W,J,Z)=>{var re=zv(),ve=c(re);ns(ve,{get session(){return e(g)[e(Z)]},set session(be){e(g)[e(Z)]=be},get now(){return e(f)},set now(be){a(f,n(be))}}),v(re),r(W,re)}),r(U,Q)};P(N,U=>{e(u)&&!e(I)?U(V):U(R,!1)})}v(j);var F=l(j,2);{var z=U=>{as(U,{fetchPageCallback:h,sspPageSizeChange:y,get sspPage(){return e($)},set sspPage(Q){a($,n(Q))},get sspPageSize(){return e(E)},set sspPageSize(Q){a(E,n(Q))},get sspContinuationToken(){return e(o)},set sspContinuationToken(Q){a(o,n(Q))}})},O=U=>{jt(U,{get items(){return e(i)},set items(Q){a(i,n(Q))},get resItems(){return e(g)},set resItems(Q){a(g,n(Q))}})};P(F,U=>{e(u)&&!e(I)?U(z):U(O,!1)})}v(b),K(()=>Y(D,` ${e(t)??""} `)),r(_,b),ne()}var Uv=A(''),qv=A('
'),Gv=A('You can add a new custom user attribute. These attributes can be set for every user and mapped to an existing scope. They are simple Key / JsonValue pairs.
');function Wv(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(""),i=C(void 0),g=n({name:"",desc:""}),f=C(n({}));const u=He().shape({name:he().trim().required("Name is required").matches(Ma,"Invalid characters: [a-z0-9-_/]{2,32}"),desc:he().trim().matches(Ua,"Invalid characters: [a-zA-Z0-9\\-_/\\s]{0,128}")});async function I(){if(!await E())return;a(d,"");let o=await Br(g);if(o.ok)a(i,!1),s.onSave();else{let $=await o.json();a(d,n($.message))}}async function E(){try{return await u.validate(g,{abortEarly:!1}),a(f,n({})),!0}catch(o){return a(f,n(Ye(o))),!1}}ot(_,{get idx(){return t()},set idx(o){t(o)},get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=Uv();r(o,$)},body:o=>{var $=Gv(),m=l(c($),2);ie(m,{autocomplete:"off",placeholder:"Name",get value(){return g.name},set value(b){g.name=b},get error(){return e(f).name},set error(b){e(f).name=b},$$events:{input:E},children:(b,x)=>{q();var p=B("NAME");r(b,p)},$$slots:{default:!0}});var T=l(m,2);ie(T,{autocomplete:"off",placeholder:"Description",get value(){return g.desc},set value(b){g.desc=b},get error(){return e(f).desc},set error(b){e(f).desc=b},$$events:{input:E},children:(b,x)=>{q();var p=B("DESCRIPTION");r(b,p)},$$slots:{default:!0}});var k=l(T,2);Se(k,{level:1,$$events:{click:I},children:(b,x)=>{q();var p=B("SAVE");r(b,p)},$$slots:{default:!0}});var h=l(k,2);P(h,b=>{});var y=l(h,2);{var w=b=>{var x=qv(),p=c(x,!0);v(x),K(()=>Y(p,e(d))),r(b,x)};P(y,b=>{e(d)&&b(w)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var Kv=A('Success
'),Fv=A('
'),Vv=A('
');function Bv(_,s){le(s,!0);let t=G(s,"attr",19,()=>({})),d=C(""),i=C(!1),g=C(void 0);Te(()=>{e(i)&&a(g,n(setTimeout(()=>{a(i,!1),s.onSave()},2e3)))}),Ne(()=>()=>clearTimeout(e(g)));let f=C(n({})),u=n({});const I=He().shape({name:he().trim().required("Name is required").matches(Ma,"Valid characters: [a-z0-9-_/]{2,32}"),desc:he().nullable().trim().matches(Ua,"Valid characters: [a-zA-Z0-9\\-_/\\s]{0,128}")});Ne(()=>{u.name=t().name,u.desc=t().desc});async function E(){if(a(d,""),!await o()){a(d,"Invalid input");return}let x={name:u.name,desc:u.desc},p=await Jr(t().name,x);if(p.ok)a(i,!0);else{let S=await p.json();a(d,n(S.message))}}async function o(){try{return await I.validate(u,{abortEarly:!1}),a(f,n({})),!0}catch(x){return a(f,n(Ye(x))),!1}}var $=Vv(),m=c($);ie(m,{autocomplete:"off",placeholder:"Name",get value(){return u.name},set value(x){u.name=x},get error(){return e(f).name},set error(x){e(f).name=x},$$events:{input:o},children:(x,p)=>{q();var S=B("NAME");r(x,S)},$$slots:{default:!0}});var T=l(m,2);ie(T,{autocomplete:"off",placeholder:"Description",get value(){return u.desc},set value(x){u.desc=x},get error(){return e(f).desc},set error(x){e(f).desc=x},$$events:{input:o},children:(x,p)=>{q();var S=B("DESCRIPTION");r(x,S)},$$slots:{default:!0}});var k=l(T,2);Se(k,{level:1,width:"4rem",$$events:{click:E},children:(x,p)=>{q();var S=B("SAVE");r(x,S)},$$slots:{default:!0}});var h=l(k,2);{var y=x=>{var p=Kv();r(x,p)};P(h,x=>{e(i)&&x(y)})}var w=l(h,2);{var b=x=>{var p=Fv(),S=c(p,!0);v(p),K(()=>Y(S,e(d))),r(x,p)};P(w,x=>{e(d)&&x(b)})}v($),r(_,$),ne()}var Jv=A('
'),Yv=A('Are you sure, you want to delete this custom attribute?
');function Hv(_,s){le(s,!0);let t=G(s,"attr",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await Yr(t().name);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=Yv(),u=l(c(f),2);Se(u,{level:1,get isLoading(){return e(d)},set isLoading(o){a(d,n(o))},$$events:{click:g},children:(o,$)=>{q();var m=B("DELETE");r(o,m)},$$slots:{default:!0}});var I=l(u,2);{var E=o=>{var $=Jv(),m=c($,!0);v($),K(()=>Y(m,e(i))),r(o,$)};P(I,o=>{e(i)&&o(E)})}v(f),r(_,f),ne()}var Xv=A('
'),Zv=A(''),Qv=A("
"),ed=A("
"),td=A("
");function ad(_,s){le(s,!0);let t=G(s,"attr",27,()=>n({})),d=G(s,"onSave",15),i=C(void 0);const g=["Config","Delete"];let f=C(n(g[0]));const u=200,I=u/2;function E(){a(i,!1),d()()}ot(_,{get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=Zv(),m=c($);Ze(m,{text:"Custom Attribute Name",children:(T,k)=>{var h=Xv(),y=c(h,!0);v(h),K(()=>Y(y,t().name)),r(T,h)},$$slots:{default:!0}}),v($),r(o,$)},body:o=>{var $=td(),m=c($);Dt(m,{labels:g,get selected(){return e(f)},set selected(y){a(f,n(y))}});var T=l(m,2);{var k=y=>{var w=Qv(),b=c(w);Bv(b,{get attr(){return t()},get onSave(){return d()},set onSave(x){d(x)}}),v(w),ce(5,w,()=>_e,()=>({delay:I,duration:u})),ce(6,w,()=>_e,()=>({duration:u})),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=p=>{var S=ed(),L=c(S);Hv(L,{get attr(){return t()},onSave:E}),v(S),ce(5,S,()=>_e,()=>({delay:I,duration:u})),ce(6,S,()=>_e,()=>({duration:u})),r(p,S)};P(b,p=>{e(f)==="Delete"&&p(x)},!0)}r(y,w)};P(T,y=>{e(f)==="Config"?y(k):y(h,!1)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var sd=A('
'),rd=A(' ',1);function id(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(""),u=[{label:"NAME",callback:(b,x)=>b.name.toLowerCase().includes(x.toLowerCase())}],I=[{label:"NAME",callback:(b,x)=>b.name.localeCompare(x.name)}];Ne(()=>{E()});async function E(){let b=await ma();if(!b.ok)a(t,"Error fetching user attr: "+b.body.message);else{let x=await b.json();a(d,n([...x.values]))}}function o(){e(d).length<2&&(a(d,n([])),a(i,n([])),a(g,n([]))),E(),a(f,"")}q();var $=rd(),m=ee($),T=l(m),k=c(T);Lt(k,{get items(){return e(d)},searchOptions:u,orderOptions:I,get resItems(){return e(i)},set resItems(b){a(i,n(b))},get search(){return e(f)},set search(b){a(f,n(b))}});var h=l(k,2);Wv(h,{onSave:o});var y=l(h,2);We(y,23,()=>e(g),b=>b.name,(b,x,p)=>{var S=sd(),L=c(S);ad(L,{onSave:o,get attr(){return e(g)[e(p)]},set attr(D){e(g)[e(p)]=D}}),v(S),r(b,S)}),v(y);var w=l(y,2);jt(w,{get items(){return e(i)},set items(b){a(i,n(b))},get resItems(){return e(g)},set resItems(b){a(g,n(b))}}),q(2),v(T),K(()=>Y(m,`${e(t)??""} `)),r(_,$),ne()}var ld=A(''),nd=A('Time Taken (ms)
t_cost
m_cost
p_cost
');function od(_,s){let t=G(s,"res",19,()=>[]);var d=nd(),i=l(c(d),2);We(i,17,t,yt,(g,f)=>{var u=ld(),I=c(u),E=c(I,!0);v(I);var o=l(I,2),$=c(o,!0);v(o);var m=l(o,2),T=c(m,!0);v(m);var k=l(m,2),h=c(k,!0);v(k),v(u),K(()=>{Y(E,e(f).time_taken),Y($,e(f).t_cost),Y(T,e(f).m_cost),Y(h,e(f).p_cost)}),r(g,u)}),q(2),v(d),r(_,d)}var vd=A('
'),dd=A('');function cd(_,s){le(s,!0);const t="170px";let d=C(!1),i=C(!1),g=C(void 0),f=C(void 0),u=n({targetTime:1e3,mCost:32768,pCost:2}),I=C(n({}));const E=He().shape({targetTime:wt().required("Target Time is required").min(500,"Cannot be lower than 500").max(99999,"Cannot be higher than 99999"),mCost:wt().min(32768,"Cannot be lower than 32768").max(1048576,"Cannot be higher than 1048576"),pCost:wt().min(2,"Cannot be lower than 2").max(1024,"Cannot be higher than 1024")});Te(()=>{e(i)&&e(g)&&a(f,n(window.innerHeight))});function o(p){p.code==="Enter"&&$()}async function $(){try{await E.validate(u,{abortEarly:!1}),a(I,n({}))}catch(D){a(I,n(Ye(D)));return}a(d,!0),a(i,!1);const p={target_time:Number.parseInt(u.targetTime),m_cost:Number.parseInt(u.mCost),p_cost:Number.parseInt(u.pCost)},S=await Tr(p),L=await S.json();S.ok?(a(g,n(L.results)),a(i,!0)):L.message,a(d,!1)}var m=dd(),T=c(m),k=c(T);ie(k,{type:"number",autocomplete:"off",placeholder:"Target Time (ms)",width:t,get value(){return u.targetTime},set value(p){u.targetTime=p},get error(){return e(I).targetTime},set error(p){e(I).targetTime=p},$$events:{keypress:o},children:(p,S)=>{q();var L=B("TARGET TIME (ms)");r(p,L)},$$slots:{default:!0}});var h=l(k,2);ie(h,{type:"number",autocomplete:"off",placeholder:"m_cost (kB)",width:t,get value(){return u.mCost},set value(p){u.mCost=p},get error(){return e(I).mCost},set error(p){e(I).mCost=p},$$events:{keypress:o},children:(p,S)=>{q();var L=B("M_COST (kB)");r(p,L)},$$slots:{default:!0}});var y=l(h,2);ie(y,{type:"number",autocomplete:"off",placeholder:"p_cost",width:t,get value(){return u.pCost},set value(p){u.pCost=p},get error(){return e(I).pCost},set error(p){e(I).pCost=p},$$events:{keypress:o},children:(p,S)=>{q();var L=B("P_COST");r(p,L)},$$slots:{default:!0}});var w=l(y,2);Se(w,{get isLoading(){return e(d)},level:1,$$events:{click:$},children:(p,S)=>{q();var L=B("CALCULATE");r(p,L)},$$slots:{default:!0}}),v(T);var b=l(T,2);{var x=p=>{var S=vd(),L=c(S);od(L,{get res(){return e(g)}}),v(S),r(p,S)};P(b,p=>{e(i)&&p(x)})}v(m),Ks("y",()=>e(f),p=>a(f,n(p))),r(_,m),ne()}var ud=A(`Argon2ID - Password Hashing This utility helps you find the best argon2id settings for your platform. Argon2id is currently the safest available password hashing algorithm. To use it to its fullest potential, it
+ valid challenge.
`);function zo(_,s){le(s,!0);let t=G(s,"client",31,()=>n({}));const d="350px";let i=C(""),g=C(!1),f=C(void 0),u=n(Ls.map(se=>{var Ae,ze;return se.label==="device_code"?se.value=(Ae=t().flows_enabled)==null?void 0:Ae.includes("urn:ietf:params:oauth:grant-type:device_code"):se.value=(ze=t().flows_enabled)==null?void 0:ze.includes(se.label),se})),I=C(void 0);Qa.subscribe(se=>{a(I,n(se))});let E=n(Ns.map(se=>{var Ae;return se.value=(Ae=t().challenges)==null?void 0:Ae.includes(se.label),se})),o=C(void 0),$=C(void 0),m=C(void 0),T=C(void 0);Ne(()=>()=>clearTimeout(e(f)));let k=C(n({}));const h=He().shape({name:he().trim().matches(Xt,"Can only contain characters, numbers and '-'"),client_uri:he().trim().nullable().matches(tt,"Invalid URI"),access_token_lifetime:wt().required("Token Lifetime is required").min(10,"Cannot be lower than 10").max(86400,"Cannot be higher than 86400")});function y(){t().redirect_uris[0]===""&&t(t().redirect_uris=[],!0),(!t().post_logout_redirect_uris||t().post_logout_redirect_uris[0]==="")&&t(t().post_logout_redirect_uris=[],!0),t().name||t(t().name="",!0),(!t().contacts||t().contacts[0]==="")&&t(t().contacts=[],!0),t().client_uri||t(t().client_uri=null,!0)}function w(se){se.code==="Enter"&&b()}async function b(){a(i,"");const se=await x();if(!e($)()){a(i,"Invalid Allowed Origin");return}if(!e(m)()){a(i,"Invalid Redirect URIs");return}if(!e(T)()){a(i,"Invalid Post Logout URIs");return}if(!e(o)()){a(i,"Invalid Contacts");return}if(!se){a(i,"Invalid input");return}if(t(t().access_token_lifetime=Number.parseInt(t().access_token_lifetime),!0),t(t().flows_enabled=u.filter(X=>X.value).map(X=>X.label==="device_code"?"urn:ietf:params:oauth:grant-type:device_code":X.label),!0),t().flows_enabled.includes("authorization_code")&&t().redirect_uris.length===0){a(i,"With 'authorization_code' flow enabled, you need to specify at least one redirect URI");return}if(t().flows_enabled.includes("client_credentials")&&!t().confidential){a(i,"'client_credentials' flow needs a 'confidential' client");return}if(t().flows_enabled.length===0){a(i,"At least one flow must be enabled");return}let Ae=t();t(t().challenges=E.filter(X=>X.value).map(X=>X.label),!0),t().challenges.length===0&&(Ae.challenges=null),Ae.name||(Ae.name=void 0),Ae.allowed_origins.length>0&&!Ae.allowed_origins[0]&&(Ae.allowed_origins=[]);let ze=await pr(Ae);if(ze.ok)a(g,!0);else{let X=await ze.json();a(i,n(X.message))}}async function x(){try{return await h.validate(t(),{abortEarly:!1}),a(k,n({})),!0}catch(se){return a(k,n(Ye(se))),!1}}Te(()=>{t().id&&y()}),Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1),s.onSave()},3e3)))});var p=Po(),S=c(p),L=l(c(S),2),D=c(L,!0);v(L),v(S);var j=l(S,4);ie(j,{autocomplete:"off",placeholder:"Client Name",width:d,get value(){return t().name},set value(se){t(t().name=se,!0)},get error(){return e(k).name},set error(se){e(k).name=se},$$events:{keypress:w,input:x},children:(se,Ae)=>{q();var ze=B("CLIENT NAME");r(se,ze)},$$slots:{default:!0}});var N=l(j,4);ie(N,{autocomplete:"off",placeholder:"Client URI",width:d,get value(){return t().client_uri},set value(se){t(t().client_uri=se,!0)},get error(){return e(k).client_uri},set error(se){e(k).client_uri=se},$$events:{keypress:w,input:x},children:(se,Ae)=>{q();var ze=B("CLIENT URI");r(se,ze)},$$slots:{default:!0}});var V=l(N,2);Kt(V,{style:`width: ${d}`,validation:{required:!1,regex:Rs,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",placeholder:"Contact",optional:!0,get values(){return t().contacts},set values(se){t(t().contacts=se,!0)},get validate(){return e(o)},set validate(se){a(o,n(se))},children:(se,Ae)=>{q();var ze=B("CONTACT");r(se,ze)},$$slots:{default:!0}});var R=l(V,4);oe(R,"margin-top","-5px");var F=c(R);oe(F,"width","138px");var z=l(c(F),2),O=c(z);Be(O,{get selected(){return t().enabled},set selected(se){t(t().enabled=se,!0)}}),v(z),v(F);var U=l(F,2);oe(U,"width","110px");var Q=l(c(U),2),M=c(Q);Be(M,{get selected(){return t().confidential},set selected(se){t(t().confidential=se,!0)}}),v(Q),v(U),v(R);var W=l(R,2),J=l(c(W),2),Z=c(J);ss(Z,{get options(){return u}}),v(J),v(W);var re=l(W,2),ve=l(c(re),2),be=c(ve);Be(be,{get selected(){return t().force_mfa},set selected(se){t(t().force_mfa=se,!0)}}),v(ve),v(re);var $e=l(re,2);{var pe=se=>{var Ae=Lo();oe(Ae,"margin","-10px 0 -15px 5px");var ze=c(Ae),X=c(ze);oe(X,"color","var(--col-err)"),q(7),v(ze),v(Ae),r(se,Ae)},je=se=>{var Ae=me(),ze=ee(Ae);{var X=Ee=>{var Le=No();oe(Le,"margin","-10px 0 -15px 5px");var St=c(Le),ae=c(St);oe(ae,"color","var(--col-err)"),q(5),v(St),v(Le),ce(3,Le,()=>_e),r(Ee,Le)};P(ze,Ee=>{t().force_mfa&&Ee(X)},!0)}r(se,Ae)};P($e,se=>{t().id==="rauthy"?se(pe):se(je,!1)})}var fe=l($e,6);oe(fe,"margin-top","-10px");var de=l(c(fe),2);zt(de,{get options(){return e(I)},searchThreshold:4,get items(){return t().scopes},set items(se){t(t().scopes=se,!0)}}),v(fe);var ye=l(fe,2);oe(ye,"margin-top","-3px");var we=l(c(ye),2);zt(we,{get options(){return e(I)},searchThreshold:4,get items(){return t().default_scopes},set items(se){t(t().default_scopes=se,!0)}}),v(ye);var Pe=l(ye,4);Kt(Pe,{style:`width: ${d}`,validation:{required:!0,regex:Ds,errMsg:"Must be a valid origin"},autocomplete:"off",placeholder:"Allowed Origin",optional:!0,get values(){return t().allowed_origins},set values(se){t(t().allowed_origins=se,!0)},get validate(){return e($)},set validate(se){a($,n(se))},children:(se,Ae)=>{q();var ze=B("ALLOWED ORIGIN");r(se,ze)},$$slots:{default:!0}});var Ce=l(Pe,4);Kt(Ce,{style:`width: ${d}`,validation:{required:!0,regex:tt,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",placeholder:"Redirect URI",optional:!0,get values(){return t().redirect_uris},set values(se){t(t().redirect_uris=se,!0)},get validate(){return e(m)},set validate(se){a(m,n(se))},children:(se,Ae)=>{q();var ze=B("REDIRECT URI");r(se,ze)},$$slots:{default:!0}});var xe=l(Ce,4);Kt(xe,{style:`width: ${d}`,validation:{required:!0,regex:tt,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",placeholder:"Post Logout Redirect URI",optional:!0,get values(){return t().post_logout_redirect_uris},set values(se){t(t().post_logout_redirect_uris=se,!0)},get validate(){return e(T)},set validate(se){a(T,n(se))},children:(se,Ae)=>{q();var ze=B("POST LOGOUT REDIRECT URI");r(se,ze)},$$slots:{default:!0}});var Re=l(xe,6);ie(Re,{type:"number",min:60,max:86400,autocomplete:"off",placeholder:"Client Name",width:d,get value(){return t().access_token_lifetime},set value(se){t(t().access_token_lifetime=se,!0)},get error(){return e(k).access_token_lifetime},set error(se){e(k).access_token_lifetime=se},$$events:{input:x},children:(se,Ae)=>{q();var ze=B("ACCESS TOKEN LIFETIME");r(se,ze)},$$slots:{default:!0}});var H=l(Re,2),Ie=c(H);oe(Ie,"width","220px");var ge=l(c(Ie),2),Ue=c(ge);kt(Ue,{options:za,get value(){return t().access_token_alg},set value(se){t(t().access_token_alg=se,!0)}}),v(ge),v(Ie);var Je=l(Ie,2),rt=c(Je);oe(rt,"text-align","right");var vt=l(rt,2),qe=c(vt);kt(qe,{options:za,get value(){return t().id_token_alg},set value(se){t(t().id_token_alg=se,!0)}}),v(vt),v(Je),v(H);var Fe=l(H,6),lt=l(c(Fe),2),xt=c(lt);ss(xt,{get options(){return E}}),v(lt),v(Fe);var $t=l(Fe,2),Qe=c($t);{var et=se=>{var Ae=Ro();q(4),r(se,Ae)};P(Qe,se=>{t().id==="rauthy"&&se(et)})}v($t);var gt=l($t,2);Se(gt,{level:1,width:"4rem",$$events:{click:b},children:(se,Ae)=>{q();var ze=B("SAVE");r(se,ze)},$$slots:{default:!0}});var ct=l(gt,2);{var It=se=>{var Ae=Do();r(se,Ae)};P(ct,se=>{e(g)&&se(It)})}var at=l(ct,2);{var st=se=>{var Ae=jo(),ze=c(Ae,!0);v(Ae),K(()=>Y(ze,e(i))),r(se,Ae)};P(at,se=>{e(i)&&se(st)})}v(p),K(()=>Y(D,t().id)),r(_,p),ne()}var Oo=A('');function Mo(_,s){le(s,!0);let t=C(""),d=C("");Ne(()=>{i()});async function i(){let T=await $r(s.client.id),k=await T.json();T.ok?a(d,n(k.secret)):a(t,n(k.message))}async function g(){let T=await _r(s.client.id),k=await T.json();T.ok?await i():a(t,n(k.message))}var f=Oo(),u=c(f),I=c(u,!0);v(u);var E=l(u,2),o=c(E);{var $=T=>{Wt(T,{autocomplete:"off",disabled:!0,showCopy:!0,width:"inherit",maxWidth:"800px",get value(){return e(d)},set value(k){a(d,n(k))},children:(k,h)=>{q();var y=B("CLIENT SECRET");r(k,y)},$$slots:{default:!0}})};P(o,T=>{e(d)&&T($)})}v(E);var m=l(E,2);Se(m,{level:1,$$events:{click:g},children:(T,k)=>{q();var h=B("GENERATE NEW");r(T,h)},$$slots:{default:!0}}),v(f),K(()=>Y(I,e(t))),r(_,f),ne()}var Uo=A('Anti-Lockout Rule: The rauthy default client cannot be deleted.
'),qo=A('
'),Go=A('Are you sure, you want to delete this client?
',1),Wo=A('
');function Ko(_,s){le(s,!0);let t=G(s,"client",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await mr(t().id);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=Wo(),u=c(f);{var I=o=>{var $=Uo();r(o,$)},E=o=>{var $=Go(),m=l(ee($),2);Se(m,{level:1,get isLoading(){return e(d)},set isLoading(h){a(d,n(h))},$$events:{click:g},children:(h,y)=>{q();var w=B("DELETE");r(h,w)},$$slots:{default:!0}});var T=l(m,2);{var k=h=>{var y=qo(),w=c(y,!0);v(y),K(()=>Y(w,e(i))),r(h,y)};P(T,h=>{e(i)&&h(k)})}r(o,$)};P(u,o=>{t().id==="rauthy"?o(I):o(E,!1)})}v(f),r(_,f),ne()}var Fo=(_,s)=>a(s,!0),Vo=A('
'),Bo=A('LOAD
'),Jo=A('
');function ya(_,s){le(s,!0);let t=C(!1),d=C(!1),i=C(void 0),g=C(void 0),f=C(void 0),u=C(void 0),I=C(void 0),E=C("white");Ca(()=>{clearTimeout(e(I))});function o(){switch(s.level){case 1:a(i,n(s.colors.act1)),a(g,n(s.colors.act1a)),a(f,"white"),a(u,`1px solid ${s.colors.gmid}`);break;case 2:a(i,n(s.colors.act2)),a(g,n(s.colors.act2a)),a(f,n(s.colors.ghigh)),a(u,`1px solid ${s.colors.gmid}`);break;default:a(i,n(s.colors.ghigh)),a(g,"white"),a(f,n(s.colors.act2a)),a(u,`1px solid ${s.colors.act2a}`),a(E,n(s.colors.acnt))}}Te(()=>{e(d)&&a(I,n(setTimeout(()=>{a(d,!1)},2e3)))}),Te(()=>{s.colors&&o()});var $=Jo(),m=c($);m.__click=[Fo,d],oe(m,"width","100px");var T=c(m);{var k=y=>{var w=Vo(),b=c(w);ua(b,{background:!1,get color(){return e(E)}}),v(w),r(y,w)},h=y=>{var w=Bo();r(y,w)};P(T,y=>{e(d)?y(k):y(h,!1)})}v(m),v($),K(()=>{oe(m,"border",e(u)),oe(m,"box-shadow",`1px 1px 2px ${s.colors.gmid??""}`),oe(m,"cursor",e(d)?"default":"pointer"),oe(m,"color",e(f)),oe(m,"background",e(t)?e(g):e(i))}),Me("focus",m,()=>a(t,!0)),Me("blur",m,()=>a(t,!1)),Me("keypress",m,()=>a(d,!0)),r(_,$),ne()}pt(["click"]);var Yo=A(''),Ho=A('
'),Xo=A('');function rs(_,s){le(s,!0);let t=G(s,"colors",19,()=>({})),d=G(s,"error",3,""),i=G(s,"name",3,""),g=G(s,"password",3,!1),f=G(s,"value",3,""),u=G(s,"width",3,"250px"),I=Jt(s,["$$slots","$$events","$$legacy","colors","error","name","password","value","width","children"]),E=C(n(g()?"new-password":"text")),o=C(!1),$=C(!1);function m(){e(E)==="password"?a(E,"text"):a(E,"password")}var T=Xo(),k=c(T),h=c(k),y=c(h),w=c(y);At(w,()=>s.children??Ct),v(y),v(h),v(k);var b=l(k,2);nt(b);var x=()=>a(o,!0),p=()=>a(o,!1),S=()=>a($,!0),L=()=>a($,!1);let D;var j=l(b,2);{var N=F=>{var z=Yo(),O=c(z);O.__click=m;var U=c(O);{var Q=W=>{Fa(W,{width:22,get color(){return t().err}})},M=W=>{Va(W,{width:22,get color(){return t().ok}})};P(U,W=>{e(E)==="password"?W(Q):W(M,!1)})}v(O),v(z),Me("keypress",O,m),r(F,z)};P(j,F=>{g()&&F(N)})}var V=l(j,2);{var R=F=>{var z=Ho(),O=c(z,!0);v(z),K(()=>{oe(z,"width",u()),oe(z,"color",t().err),Y(O,d())}),ce(7,z,()=>_e,()=>({duration:250})),r(F,z)};P(V,F=>{d()&&F(R)})}v(T),K(()=>{oe(T,"width",`calc(${u()??""} + 12px)`),oe(h,"background",t().bg),ue(y,"for",i()),D=ha(b,D,{type:e(E),onmouseenter:x,onmouseleave:p,onfocus:S,onblur:L,autocomplete:"off",name:i(),value:f(),...I},"svelte-115vejc"),oe(b,"width",u()),oe(b,"background",(e(o)||e($),t().bg)),oe(b,"border",e($)?`1px solid ${t().acnt}`:`1px solid ${t().glow}`),oe(b,"color",t().text),oe(b,"box-shadow",`1px 1px 2px ${t().gmid??""}`)}),r(_,T),ne()}pt(["click"]);var Zo=A(' ');function is(_,s){le(s,!0);var t=Zo();K(()=>ue(t,"src",`/auth/v1/clients/${s.clientId}/logo?${Mt(6)}`)),r(_,t),ne()}var Qo=A('PREVIEW
',1);function ev(_,s){le(s,!0);let t="This is an E-Mail error",d="This is a password error";var i=Qo(),g=l(ee(i),2),f=c(g),u=c(f),I=c(u);{var E=y=>{is(y,{get clientId(){return s.clientId}})};P(I,y=>{s.isLoading||y(E)})}v(u),v(f);var o=l(f,4);rs(o,{type:"email",name:"rauthyEmail",placeholder:"E-Mail",get error(){return t},get colors(){return s.colors},children:(y,w)=>{q();var b=B("E-MAIL");r(y,b)},$$slots:{default:!0}});var $=l(o,2);rs($,{password:!0,name:"rauthyPassword",placeholder:"Password",get error(){return d},get colors(){return s.colors},children:(y,w)=>{q();var b=B("E-MAIL");r(y,b)},$$slots:{default:!0}});var m=l($,2),T=c(m);ya(T,{get colors(){return s.colors},level:1});var k=l(T,2);ya(k,{get colors(){return s.colors},level:2});var h=l(k,2);ya(h,{get colors(){return s.colors},level:3}),v(m),v(g),K(()=>{oe(g,"color",s.colors.text),oe(g,"border",`1px solid ${s.colors.gmid??""}`),oe(g,"background",s.colors.bg)}),r(_,i),ne()}var tv=Xe(' ');function av(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=tv();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var sv=(_,s)=>e(s).click(),rv=(_,s)=>e(s).click(),iv=(_,s)=>s(_),lv=A('');function ls(_,s){let t=G(s,"text",3,"UPLOAD LOGO"),d=G(s,"image",15),i=C(void 0);async function g(m){d(m.target.files[0])}var f=lv(),u=c(f);u.__click=[sv,i];var I=c(u);av(I,{width:22}),v(u);var E=l(u,2);E.__click=[rv,i];var o=c(E,!0);v(E);var $=l(E,2);$.__change=[iv,g],Qs($,m=>a(i,m),()=>e(i)),v(f),K(()=>Y(o,t())),Me("keypress",u,()=>e(i).click()),Me("keypress",E,()=>e(i).click()),r(_,f)}pt(["click","change"]);var nv=A(' ',1),ov=A('
'),vv=A('Success
'),dv=A('
'),cv=A(`You can set client specific colors, which then will be used for the Login page.
+ These colors must be valid CSS values. Either enter them directly or use the color picker.
`);function uv(_,s){le(s,!0);let t=G(s,"client",19,()=>({})),d=C(void 0),i=C(void 0),g=C(!1),f=C(""),u=C(!1),I=C(void 0),E=C(n({})),o=C(n({}));const $=He().shape({act1:he().trim().matches(ft,"only valid CSS color"),act1a:he().trim().matches(ft,"only valid CSS color"),act2:he().trim().matches(ft,"only valid CSS color"),act2a:he().trim().matches(ft,"only valid CSS color"),acnt:he().trim().matches(ft,"only valid CSS color"),acnta:he().trim().matches(ft,"only valid CSS color"),ok:he().trim().matches(ft,"only valid CSS color"),err:he().trim().matches(ft,"only valid CSS color"),glow:he().trim().matches(ft,"only valid CSS color"),gmid:he().trim().matches(ft,"only valid CSS color"),ghigh:he().trim().matches(ft,"only valid CSS color"),text:he().trim().matches(ft,"only valid CSS color"),bg:he().trim().matches(ft,"only valid CSS color")});Ne(async()=>{await m()}),Ca(()=>{e(I)&&clearTimeout(e(I))});async function m(){let O=await gr(t().id);if(O.ok){let U=await O.json();a(d,n(U)),a(o,n(U))}else{let U=await O.json();a(f,n(U.message))}}async function T(){if(a(f,""),a(g,!0),!await y())return;let O=await fr(t().id,e(o));if(O.ok)a(u,!0);else{let U=await O.json();a(f,n(U.message))}a(g,!1)}async function k(){a(f,""),a(g,!0);let O=await yr(t().id);if(O.ok)await br(t().id),await m(),a(u,!0);else{let U=await O.json();a(f,n(U.message))}a(g,!1)}async function h(O){a(g,!0),await Bt();let U=await wr(t().id,O);if(!U.ok){let Q=await U.json();console.error(Q.message)}a(g,!1)}async function y(){try{await $.validate(e(o),{abortEarly:!1}),a(E,n({}))}catch(O){return a(E,n(Ye(O))),!1}return a(d,n(e(o))),!0}Te(()=>{e(u)&&a(I,n(setTimeout(()=>{a(u,!1)},3e3)))}),Te(()=>{e(i)&&h(e(i))});var w=cv(),b=l(c(w),2),x=c(b);{var p=O=>{var U=nv(),Q=ee(U),M=c(Q),W=c(M);ie(W,{autocomplete:"off",placeholder:"act1",get value(){return e(o).act1},set value(te){e(o).act1=te},get error(){return e(E).act1},set error(te){e(E).act1=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("act1");r(te,Ve)},$$slots:{default:!0}});var J=l(W,2),Z=c(J);nt(Z);var re=l(Z,2);v(J),v(M);var ve=l(M,2),be=c(ve);ie(be,{autocomplete:"off",placeholder:"act1a",get value(){return e(o).act1a},set value(te){e(o).act1a=te},get error(){return e(E).act1a},set error(te){e(E).act1a=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("act1a");r(te,Ve)},$$slots:{default:!0}});var $e=l(be,2),pe=c($e);nt(pe);var je=l(pe,2);v($e),v(ve);var fe=l(ve,2),de=c(fe);ie(de,{autocomplete:"off",placeholder:"act2",get value(){return e(o).act2},set value(te){e(o).act2=te},get error(){return e(E).act2},set error(te){e(E).act2=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("act2");r(te,Ve)},$$slots:{default:!0}});var ye=l(de,2),we=c(ye);nt(we);var Pe=l(we,2);v(ye),v(fe);var Ce=l(fe,2),xe=c(Ce);ie(xe,{autocomplete:"off",placeholder:"act2a",get value(){return e(o).act2a},set value(te){e(o).act2a=te},get error(){return e(E).act2a},set error(te){e(E).act2a=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("act2a");r(te,Ve)},$$slots:{default:!0}});var Re=l(xe,2),H=c(Re);nt(H);var Ie=l(H,2);v(Re),v(Ce);var ge=l(Ce,2),Ue=c(ge);ie(Ue,{autocomplete:"off",placeholder:"acnt",get value(){return e(o).acnt},set value(te){e(o).acnt=te},get error(){return e(E).acnt},set error(te){e(E).acnt=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("acnt");r(te,Ve)},$$slots:{default:!0}});var Je=l(Ue,2),rt=c(Je);nt(rt);var vt=l(rt,2);v(Je),v(ge);var qe=l(ge,2),Fe=c(qe);ie(Fe,{autocomplete:"off",placeholder:"acnta",get value(){return e(o).acnta},set value(te){e(o).acnta=te},get error(){return e(E).acnta},set error(te){e(E).acnta=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("acnta");r(te,Ve)},$$slots:{default:!0}});var lt=l(Fe,2),xt=c(lt);nt(xt);var $t=l(xt,2);v(lt),v(qe);var Qe=l(qe,2),et=c(Qe);ie(et,{autocomplete:"off",placeholder:"ok",get value(){return e(o).ok},set value(te){e(o).ok=te},get error(){return e(E).ok},set error(te){e(E).ok=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("ok");r(te,Ve)},$$slots:{default:!0}});var gt=l(et,2),ct=c(gt);nt(ct);var It=l(ct,2);v(gt),v(Qe);var at=l(Qe,2),st=c(at);ie(st,{autocomplete:"off",placeholder:"err",get value(){return e(o).err},set value(te){e(o).err=te},get error(){return e(E).err},set error(te){e(E).err=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("err");r(te,Ve)},$$slots:{default:!0}});var se=l(st,2),Ae=c(se);nt(Ae);var ze=l(Ae,2);v(se),v(at),v(Q);var X=l(Q,2),Ee=c(X),Le=c(Ee);ie(Le,{autocomplete:"off",placeholder:"glow",get value(){return e(o).glow},set value(te){e(o).glow=te},get error(){return e(E).glow},set error(te){e(E).glow=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("glow");r(te,Ve)},$$slots:{default:!0}});var St=l(Le,2),ae=c(St);nt(ae);var Ge=l(ae,2);v(St),v(Ee);var Oe=l(Ee,2),Ut=c(Oe);ie(Ut,{autocomplete:"off",placeholder:"gmid",get value(){return e(o).gmid},set value(te){e(o).gmid=te},get error(){return e(E).gmid},set error(te){e(E).gmid=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("gmid");r(te,Ve)},$$slots:{default:!0}});var Ht=l(Ut,2),Ft=c(Ht);nt(Ft);var Pt=l(Ft,2);v(Ht),v(Oe);var Vt=l(Oe,2),ba=c(Vt);ie(ba,{autocomplete:"off",placeholder:"ghigh",get value(){return e(o).ghigh},set value(te){e(o).ghigh=te},get error(){return e(E).ghigh},set error(te){e(E).ghigh=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("ghigh");r(te,Ve)},$$slots:{default:!0}});var $a=l(ba,2),aa=c($a);nt(aa);var hs=l(aa,2);v($a),v(Vt);var sa=l(Vt,2),_a=c(sa);ie(_a,{autocomplete:"off",placeholder:"text",get value(){return e(o).text},set value(te){e(o).text=te},get error(){return e(E).text},set error(te){e(E).text=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("text");r(te,Ve)},$$slots:{default:!0}});var ka=l(_a,2),ra=c(ka);nt(ra);var ps=l(ra,2);v(ka),v(sa);var ia=l(sa,2),xa=c(ia);ie(xa,{autocomplete:"off",placeholder:"bg",get value(){return e(o).bg},set value(te){e(o).bg=te},get error(){return e(E).bg},set error(te){e(E).bg=te},$$events:{input:y},children:(te,_t)=>{q();var Ve=B("bg");r(te,Ve)},$$slots:{default:!0}});var Ea=l(xa,2),la=c(Ea);nt(la);var ms=l(la,2);v(Ea),v(ia);var Ia=l(ia,2),Sa=c(Ia);ls(Sa,{get image(){return e(i)},set image(te){a(i,n(te))}});var gs=l(Sa,2);{var fs=te=>{is(te,{get clientId(){return t().id}})};P(gs,te=>{e(g)||te(fs)})}v(Ia),v(X),K(()=>{oe(re,"background",e(o).act1),oe(je,"background",e(o).act1a),oe(Pe,"background",e(o).act2),oe(Ie,"background",e(o).act2a),oe(vt,"background",e(o).acnt),oe($t,"background",e(o).acnta),oe(It,"background",e(o).ok),oe(ze,"background",e(o).err),oe(Ge,"background",e(o).glow),oe(Pt,"background",e(o).gmid),oe(hs,"background",e(o).ghigh),oe(ps,"background",e(o).text),oe(ms,"background",e(o).bg)}),dt(Z,()=>e(o).act1,te=>e(o).act1=te),dt(pe,()=>e(o).act1a,te=>e(o).act1a=te),dt(we,()=>e(o).act2,te=>e(o).act2=te),dt(H,()=>e(o).act2a,te=>e(o).act2a=te),dt(rt,()=>e(o).acnt,te=>e(o).acnt=te),dt(xt,()=>e(o).acnta,te=>e(o).acnta=te),dt(ct,()=>e(o).ok,te=>e(o).ok=te),dt(Ae,()=>e(o).err,te=>e(o).err=te),dt(ae,()=>e(o).glow,te=>e(o).glow=te),dt(Ft,()=>e(o).gmid,te=>e(o).gmid=te),dt(aa,()=>e(o).ghigh,te=>e(o).ghigh=te),dt(ra,()=>e(o).text,te=>e(o).text=te),dt(la,()=>e(o).bg,te=>e(o).bg=te),r(O,U)};P(x,O=>{e(o)&&O(p)})}var S=l(x,2);{var L=O=>{var U=ov(),Q=c(U);ev(Q,{get clientId(){return t().id},get isLoading(){return e(g)},get colors(){return e(d)},set colors(M){a(d,n(M))}}),v(U),r(O,U)};P(S,O=>{e(d)&&O(L)})}v(b);var D=l(b,2),j=c(D);Se(j,{level:1,get isLoading(){return e(g)},set isLoading(O){a(g,n(O))},$$events:{click:T},children:(O,U)=>{q();var Q=B("SAVE");r(O,Q)},$$slots:{default:!0}});var N=l(j,2);Se(N,{level:3,get isLoading(){return e(g)},set isLoading(O){a(g,n(O))},$$events:{click:k},children:(O,U)=>{q();var Q=B("RESET");r(O,Q)},$$slots:{default:!0}});var V=l(N,2);{var R=O=>{var U=vv();r(O,U)};P(V,O=>{e(u)&&O(R)})}var F=l(V,2);{var z=O=>{var U=dv(),Q=c(U,!0);v(U),K(()=>Y(Q,e(f))),r(O,U)};P(F,O=>{e(f)&&O(z)})}v(D),v(w),r(_,w),ne()}var hv=A('
'),pv=A('
'),mv=A(''),gv=A("
"),fv=A("
"),yv=A("
"),wv=A("
"),bv=A("
");function $v(_,s){le(s,!0);let t=G(s,"client",31,()=>n({})),d=G(s,"onSave",15),i=C(void 0);const g=["Config","Secret","Branding","Delete"];let f=C(n(g[0]));const u=200,I=u/2;function E(){a(i,!1),d()()}ot(_,{get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=mv(),m=c($);Ze(m,{text:"Client ID",children:(h,y)=>{var w=hv(),b=c(w,!0);v(w),K(()=>Y(b,t().id)),r(h,w)},$$slots:{default:!0}});var T=l(m,2);{var k=h=>{Ze(h,{text:"Client Name",children:(y,w)=>{var b=pv(),x=c(b,!0);v(b),K(()=>Y(x,t().name)),r(y,b)},$$slots:{default:!0}})};P(T,h=>{t().name&&h(k)})}v($),r(o,$)},body:o=>{var $=bv(),m=c($);Dt(m,{labels:g,get selected(){return e(f)},set selected(y){a(f,n(y))}});var T=l(m,2);{var k=y=>{var w=gv(),b=c(w);zo(b,{get client(){return t()},set client(x){t(x)},get onSave(){return d()},set onSave(x){d(x)}}),v(w),ce(5,w,()=>_e,()=>({delay:I,duration:u})),ce(6,w,()=>_e,()=>({duration:u})),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=S=>{var L=fv(),D=c(L);Mo(D,{get client(){return t()}}),v(L),ce(5,L,()=>_e,()=>({delay:I,duration:u})),ce(6,L,()=>_e,()=>({duration:u})),r(S,L)},p=S=>{var L=me(),D=ee(L);{var j=V=>{var R=yv(),F=c(R);uv(F,{get client(){return t()}}),v(R),ce(5,R,()=>_e,()=>({delay:I,duration:u})),ce(6,R,()=>_e,()=>({duration:u})),r(V,R)},N=V=>{var R=me(),F=ee(R);{var z=O=>{var U=wv(),Q=c(U);Ko(Q,{get client(){return t()},onSave:E}),v(U),ce(5,U,()=>_e,()=>({delay:I,duration:u})),ce(6,U,()=>_e,()=>({duration:u})),r(O,U)};P(F,O=>{e(f)==="Delete"&&O(z)},!0)}r(V,R)};P(D,V=>{e(f)==="Branding"?V(j):V(N,!1)},!0)}r(S,L)};P(b,S=>{e(f)==="Secret"?S(x):S(p,!1)},!0)}r(y,w)};P(T,y=>{e(f)==="Config"?y(k):y(h,!1)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var _v=A(''),kv=A('Success
'),xv=A('
'),Ev=A('');function Iv(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(void 0),i=n({id:"",name:"",confidential:!0,redirect_uris:[]}),g=C(""),f=C(!1),u=C(void 0),I=C(n({}));const E=He().shape({id:he().required("Client ID is required").trim().matches(js,"Can only contain characters, numbers and '-'"),name:he().trim().nullable().matches(Xt,"Can only contain characters, numbers and '-'")});let o=C(void 0),$=C(void 0);const m="330px";Te(()=>{e(f)&&a(u,n(setTimeout(()=>{s.onSave(),a(f,!1),a(d,!1)},1500)))}),Ne(()=>()=>clearTimeout(e(u)));async function T(){if(a(g,""),!await k()||!e(o)()||!e($)()){a(g,"Invalid input");return}let h=i;h.name||(h.name=void 0);let y=await hr(h);if(y.ok)a(f,!0);else{let w=await y.json();a(g,n(w.message))}}async function k(){try{return await E.validate(i,{abortEarly:!1}),a(I,n({})),!0}catch(h){return a(I,n(Ye(h))),!1}}ot(_,{get idx(){return t()},set idx(h){t(h)},get show(){return e(d)},set show(h){a(d,n(h))},header:h=>{var y=_v();r(h,y)},body:h=>{var y=Ev(),w=c(y);ie(w,{autocomplete:"off",placeholder:"Client ID",width:m,get value(){return i.id},set value(z){i.id=z},get error(){return e(I).id},set error(z){e(I).id=z},$$events:{input:k},children:(z,O)=>{q();var U=B("CLIENT ID");r(z,U)},$$slots:{default:!0}});var b=l(w,2);ie(b,{autocomplete:"off",placeholder:"Client Name",width:m,get value(){return i.name},set value(z){i.name=z},get error(){return e(I).name},set error(z){e(I).name=z},$$events:{input:k},children:(z,O)=>{q();var U=B("NAME");r(z,U)},$$slots:{default:!0}});var x=l(b,2);Kt(x,{style:`width: ${m}`,validation:{required:!0,regex:tt,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",optional:!0,placeholder:"Redirect URI",get values(){return i.redirect_uris},set values(z){i.redirect_uris=z},get validate(){return e(o)},set validate(z){a(o,n(z))},children:(z,O)=>{q();var U=B("REDIRECT URI");r(z,U)},$$slots:{default:!0}});var p=l(x,2);Kt(p,{style:`width: ${m}`,validation:{required:!0,regex:tt,errMsg:"Only URL safe values: a-zA-Z0-9,.:/_-&?=~#!$'()*+%"},autocomplete:"off",optional:!0,placeholder:"Post Logout Redirect URI",get values(){return i.post_logout_redirect_uris},set values(z){i.post_logout_redirect_uris=z},get validate(){return e($)},set validate(z){a($,n(z))},children:(z,O)=>{q();var U=B("POST LOGOUT REDIRECT URI");r(z,U)},$$slots:{default:!0}});var S=l(p,2),L=l(c(S),2),D=c(L);Be(D,{get selected(){return i.confidential},set selected(z){i.confidential=z}}),v(L),v(S);var j=l(S,2);Se(j,{level:1,width:"4rem",$$events:{click:T},children:(z,O)=>{q();var U=B("SAVE");r(z,U)},$$slots:{default:!0}});var N=l(j,2);{var V=z=>{var O=kv();r(z,O)};P(N,z=>{e(f)&&z(V)})}var R=l(N,2);{var F=z=>{var O=xv(),U=c(O,!0);v(O),K(()=>Y(U,e(g))),r(z,O)};P(R,z=>{e(g)&&z(F)})}v(y),r(h,y)},$$slots:{header:!0,body:!0}}),ne()}var Sv=A('
'),Cv=A(' ',1);function Av(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(""),u=[{label:"ID",callback:(x,p)=>x.id.toLowerCase().includes(p.toLowerCase())}],I=[{label:"ID",callback:(x,p)=>x.id.localeCompare(p.id)}];Ne(()=>{E(),o()});async function E(){let x=await ur();if(!x.ok)a(t,"Error fetching clients: "+x.body.message);else{let p=await x.json();a(d,n([...p]))}}async function o(){let x=await Za();if(!x.ok)a(t,"Error fetching scopes: "+x.body.message);else{let p=await x.json();mi.set(p),Qa.set(p.map(S=>S.name))}}function $(){E(),o(),a(f,"")}q();var m=Cv(),T=ee(m),k=l(T),h=c(k);Lt(h,{get items(){return e(d)},searchOptions:u,orderOptions:I,get resItems(){return e(i)},set resItems(x){a(i,n(x))},get search(){return e(f)},set search(x){a(f,n(x))}});var y=l(h,2);Iv(y,{onSave:$});var w=l(y,2);We(w,23,()=>e(g),x=>x.id,(x,p,S)=>{var L=Sv(),D=c(L);$v(D,{onSave:$,get client(){return e(g)[e(S)]},set client(j){e(g)[e(S)]=j}}),v(L),r(x,L)}),v(w);var b=l(w,2);jt(b,{get items(){return e(i)},set items(x){a(i,n(x))},get resItems(){return e(g)},set resItems(x){a(g,n(x))}}),q(2),v(k),K(()=>Y(T,`${e(t)??""} `)),r(_,m),ne()}var Tv=A('
'),Lv=A('
'),Nv=A('
'),Rv=A(''),Dv=A(''),jv=A('
');function ns(_,s){le(s,!0);let t=G(s,"session",27,()=>n({})),d=G(s,"now",11,0);var i=jv(),g=c(i);ot(g,{header:f=>{var u=Rv(),I=c(u);Ze(I,{text:"User ID",children:(m,T)=>{var k=Tv(),h=c(k,!0);v(k),K(()=>Y(h,t().user_id)),r(m,k)},$$slots:{default:!0}});var E=l(I,2),o=c(E);Ze(o,{text:"Peer IP",children:(m,T)=>{var k=Lv(),h=c(k,!0);v(k),K(()=>Y(h,t().remote_ip)),r(m,k)},$$slots:{default:!0}});var $=l(o,2);Ze($,{text:"Last Seen",children:(m,T)=>{var k=Nv(),h=c(k,!0);K(()=>Y(h,ut(t().last_seen))),v(k),r(m,k)},$$slots:{default:!0}}),v(E),v(u),r(f,u)},body:f=>{var u=Dv(),I=c(u),E=l(c(I));v(I);var o=l(I,2),$=l(c(o));v(o);var m=l(o,2),T=l(c(m));K(()=>Y(T,` ${ut(t().exp)??""}`)),v(m);var k=l(m,2),h=l(c(k));K(()=>Y(h,` ${ut(t().last_seen)??""}`)),v(k);var y=l(k,2),w=l(c(y));v(y);var b=l(y,2),x=l(c(b));v(b);var p=l(b,2),S=l(c(p),2);ea(S,{get check(){return t().is_mfa}}),v(p),v(u),K(()=>{Y(E,` ${t().id??""}`),Y($,` ${t().user_id??""}`),Y(w,` ${t().state??""}`),Y(x,` ${t().remote_ip??""}`)}),r(f,u)},$$slots:{header:!0,body:!0}}),v(i),K(()=>Et(i,"expired",t().exp'),zv=A('
'),Ov=A('');function Mv(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(Date.now()/1e3),u=C(""),I=C(!1),E=C(15),o=C(""),$=C(1),m=[{label:"User ID",callback:(U,Q)=>{var M;return(M=U.user_id)==null?void 0:M.toLowerCase().includes(Q.toLowerCase())}},{label:"Session ID",callback:(U,Q)=>U.id.toLowerCase().includes(Q.toLowerCase())},{label:"IP",callback:(U,Q)=>{var M;return(M=U.remote_ip)==null?void 0:M.toLowerCase().includes(Q.toLowerCase())}}],T=[{label:"Expires",callback:(U,Q)=>U.exp-Q.exp},{label:"Last Seen",callback:(U,Q)=>U.last_seen-Q.last_seen},{label:"Session ID",callback:(U,Q)=>U.id.localeCompare(Q.id)},{label:"User ID",callback:(U,Q)=>{var M;return(M=U.user_id)==null?void 0:M.localeCompare(Q.user_id)}},{label:"State",callback:(U,Q)=>U.state.localeCompare(Q.state)},{label:"IP",callback:(U,Q)=>{var M;return(M=U.remote_ip)==null?void 0:M.localeCompare(Q.remote_ip)}}];Ne(()=>{k()});async function k(U,Q,M,W){let J;if(U===!0?M&&e($)===2?J=await Ja(W||e(E),Q,void 0,!1):J=await Ja(W||e(E),Q,e(o),M):J=await qr(),!J.ok)a(t,"Error fetching sessions: "+J.body.message);else{J.status===206?(a(E,n(Number.parseInt(J.headers.get("x-page-size"),10))),a(o,n(J.headers.get("x-continuation-token"))),a(u,"session")):a(u,"");let Z=await J.json();a(d,n([...Z])),a(i,n([...Z])),a(f,Date.now()/1e3)}}async function h(U,Q){await k(!0,U,Q),Q?a($,e($)-1):a($,e($)+1)}async function y(U){a(o,""),await k(!0,0,!1,U),a($,1)}async function w(){let U=await Gr();if(U.ok)Oa();else{let Q=await U.json();a(t,n(Q.message))}a(f,n(new Date))}var b=Ov(),x=c(b),p=c(x);Lt(p,{get items(){return e(d)},searchOptions:m,orderOptions:T,firstDirReverse:!0,get resItems(){return e(i)},set resItems(U){a(i,n(U))},get useServerSideIdx(){return e(u)},set useServerSideIdx(U){a(u,n(U))},get isSearchFiltered(){return e(I)},set isSearchFiltered(U){a(I,n(U))}});var S=l(p,2);oe(S,"margin-top","-10px");var L=c(S);Se(L,{level:3,$$events:{click:w},children:(U,Q)=>{q();var M=B("Invalidate All Sessions");r(U,M)},$$slots:{default:!0}}),v(S),v(x);var D=l(x),j=l(D),N=c(j);{var V=U=>{var Q=me(),M=ee(Q);We(M,19,()=>e(d),W=>W.id,(W,J,Z)=>{var re=Pv(),ve=c(re);ns(ve,{get session(){return e(d)[e(Z)]},set session(be){e(d)[e(Z)]=be},get now(){return e(f)},set now(be){a(f,n(be))}}),v(re),r(W,re)}),r(U,Q)},R=U=>{var Q=me(),M=ee(Q);We(M,19,()=>e(g),W=>W.id,(W,J,Z)=>{var re=zv(),ve=c(re);ns(ve,{get session(){return e(g)[e(Z)]},set session(be){e(g)[e(Z)]=be},get now(){return e(f)},set now(be){a(f,n(be))}}),v(re),r(W,re)}),r(U,Q)};P(N,U=>{e(u)&&!e(I)?U(V):U(R,!1)})}v(j);var F=l(j,2);{var z=U=>{as(U,{fetchPageCallback:h,sspPageSizeChange:y,get sspPage(){return e($)},set sspPage(Q){a($,n(Q))},get sspPageSize(){return e(E)},set sspPageSize(Q){a(E,n(Q))},get sspContinuationToken(){return e(o)},set sspContinuationToken(Q){a(o,n(Q))}})},O=U=>{jt(U,{get items(){return e(i)},set items(Q){a(i,n(Q))},get resItems(){return e(g)},set resItems(Q){a(g,n(Q))}})};P(F,U=>{e(u)&&!e(I)?U(z):U(O,!1)})}v(b),K(()=>Y(D,` ${e(t)??""} `)),r(_,b),ne()}var Uv=A(''),qv=A('
'),Gv=A('You can add a new custom user attribute. These attributes can be set for every user and mapped to an existing scope. They are simple Key / JsonValue pairs.
');function Wv(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1),d=C(""),i=C(void 0),g=n({name:"",desc:""}),f=C(n({}));const u=He().shape({name:he().trim().required("Name is required").matches(Ma,"Invalid characters: [a-z0-9-_/]{2,32}"),desc:he().trim().matches(Ua,"Invalid characters: [a-zA-Z0-9\\-_/\\s]{0,128}")});async function I(){if(!await E())return;a(d,"");let o=await Br(g);if(o.ok)a(i,!1),s.onSave();else{let $=await o.json();a(d,n($.message))}}async function E(){try{return await u.validate(g,{abortEarly:!1}),a(f,n({})),!0}catch(o){return a(f,n(Ye(o))),!1}}ot(_,{get idx(){return t()},set idx(o){t(o)},get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=Uv();r(o,$)},body:o=>{var $=Gv(),m=l(c($),2);ie(m,{autocomplete:"off",placeholder:"Name",get value(){return g.name},set value(b){g.name=b},get error(){return e(f).name},set error(b){e(f).name=b},$$events:{input:E},children:(b,x)=>{q();var p=B("NAME");r(b,p)},$$slots:{default:!0}});var T=l(m,2);ie(T,{autocomplete:"off",placeholder:"Description",get value(){return g.desc},set value(b){g.desc=b},get error(){return e(f).desc},set error(b){e(f).desc=b},$$events:{input:E},children:(b,x)=>{q();var p=B("DESCRIPTION");r(b,p)},$$slots:{default:!0}});var k=l(T,2);Se(k,{level:1,$$events:{click:I},children:(b,x)=>{q();var p=B("SAVE");r(b,p)},$$slots:{default:!0}});var h=l(k,2);P(h,b=>{});var y=l(h,2);{var w=b=>{var x=qv(),p=c(x,!0);v(x),K(()=>Y(p,e(d))),r(b,x)};P(y,b=>{e(d)&&b(w)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var Kv=A('Success
'),Fv=A('
'),Vv=A('
');function Bv(_,s){le(s,!0);let t=G(s,"attr",19,()=>({})),d=C(""),i=C(!1),g=C(void 0);Te(()=>{e(i)&&a(g,n(setTimeout(()=>{a(i,!1),s.onSave()},2e3)))}),Ne(()=>()=>clearTimeout(e(g)));let f=C(n({})),u=n({});const I=He().shape({name:he().trim().required("Name is required").matches(Ma,"Valid characters: [a-z0-9-_/]{2,32}"),desc:he().nullable().trim().matches(Ua,"Valid characters: [a-zA-Z0-9\\-_/\\s]{0,128}")});Ne(()=>{u.name=t().name,u.desc=t().desc});async function E(){if(a(d,""),!await o()){a(d,"Invalid input");return}let x={name:u.name,desc:u.desc},p=await Jr(t().name,x);if(p.ok)a(i,!0);else{let S=await p.json();a(d,n(S.message))}}async function o(){try{return await I.validate(u,{abortEarly:!1}),a(f,n({})),!0}catch(x){return a(f,n(Ye(x))),!1}}var $=Vv(),m=c($);ie(m,{autocomplete:"off",placeholder:"Name",get value(){return u.name},set value(x){u.name=x},get error(){return e(f).name},set error(x){e(f).name=x},$$events:{input:o},children:(x,p)=>{q();var S=B("NAME");r(x,S)},$$slots:{default:!0}});var T=l(m,2);ie(T,{autocomplete:"off",placeholder:"Description",get value(){return u.desc},set value(x){u.desc=x},get error(){return e(f).desc},set error(x){e(f).desc=x},$$events:{input:o},children:(x,p)=>{q();var S=B("DESCRIPTION");r(x,S)},$$slots:{default:!0}});var k=l(T,2);Se(k,{level:1,width:"4rem",$$events:{click:E},children:(x,p)=>{q();var S=B("SAVE");r(x,S)},$$slots:{default:!0}});var h=l(k,2);{var y=x=>{var p=Kv();r(x,p)};P(h,x=>{e(i)&&x(y)})}var w=l(h,2);{var b=x=>{var p=Fv(),S=c(p,!0);v(p),K(()=>Y(S,e(d))),r(x,p)};P(w,x=>{e(d)&&x(b)})}v($),r(_,$),ne()}var Jv=A('
'),Yv=A('Are you sure, you want to delete this custom attribute?
');function Hv(_,s){le(s,!0);let t=G(s,"attr",19,()=>({})),d=C(!1),i=C("");async function g(){a(i,""),a(d,!0);let o=await Yr(t().name);if(o.ok)s.onSave();else{let $=await o.json();a(i,n($.message))}a(d,!1)}var f=Yv(),u=l(c(f),2);Se(u,{level:1,get isLoading(){return e(d)},set isLoading(o){a(d,n(o))},$$events:{click:g},children:(o,$)=>{q();var m=B("DELETE");r(o,m)},$$slots:{default:!0}});var I=l(u,2);{var E=o=>{var $=Jv(),m=c($,!0);v($),K(()=>Y(m,e(i))),r(o,$)};P(I,o=>{e(i)&&o(E)})}v(f),r(_,f),ne()}var Xv=A('
'),Zv=A(''),Qv=A("
"),ed=A("
"),td=A("
");function ad(_,s){le(s,!0);let t=G(s,"attr",27,()=>n({})),d=G(s,"onSave",15),i=C(void 0);const g=["Config","Delete"];let f=C(n(g[0]));const u=200,I=u/2;function E(){a(i,!1),d()()}ot(_,{get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=Zv(),m=c($);Ze(m,{text:"Custom Attribute Name",children:(T,k)=>{var h=Xv(),y=c(h,!0);v(h),K(()=>Y(y,t().name)),r(T,h)},$$slots:{default:!0}}),v($),r(o,$)},body:o=>{var $=td(),m=c($);Dt(m,{labels:g,get selected(){return e(f)},set selected(y){a(f,n(y))}});var T=l(m,2);{var k=y=>{var w=Qv(),b=c(w);Bv(b,{get attr(){return t()},get onSave(){return d()},set onSave(x){d(x)}}),v(w),ce(5,w,()=>_e,()=>({delay:I,duration:u})),ce(6,w,()=>_e,()=>({duration:u})),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=p=>{var S=ed(),L=c(S);Hv(L,{get attr(){return t()},onSave:E}),v(S),ce(5,S,()=>_e,()=>({delay:I,duration:u})),ce(6,S,()=>_e,()=>({duration:u})),r(p,S)};P(b,p=>{e(f)==="Delete"&&p(x)},!0)}r(y,w)};P(T,y=>{e(f)==="Config"?y(k):y(h,!1)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var sd=A('
'),rd=A(' ',1);function id(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(""),u=[{label:"NAME",callback:(b,x)=>b.name.toLowerCase().includes(x.toLowerCase())}],I=[{label:"NAME",callback:(b,x)=>b.name.localeCompare(x.name)}];Ne(()=>{E()});async function E(){let b=await ma();if(!b.ok)a(t,"Error fetching user attr: "+b.body.message);else{let x=await b.json();a(d,n([...x.values]))}}function o(){e(d).length<2&&(a(d,n([])),a(i,n([])),a(g,n([]))),E(),a(f,"")}q();var $=rd(),m=ee($),T=l(m),k=c(T);Lt(k,{get items(){return e(d)},searchOptions:u,orderOptions:I,get resItems(){return e(i)},set resItems(b){a(i,n(b))},get search(){return e(f)},set search(b){a(f,n(b))}});var h=l(k,2);Wv(h,{onSave:o});var y=l(h,2);We(y,23,()=>e(g),b=>b.name,(b,x,p)=>{var S=sd(),L=c(S);ad(L,{onSave:o,get attr(){return e(g)[e(p)]},set attr(D){e(g)[e(p)]=D}}),v(S),r(b,S)}),v(y);var w=l(y,2);jt(w,{get items(){return e(i)},set items(b){a(i,n(b))},get resItems(){return e(g)},set resItems(b){a(g,n(b))}}),q(2),v(T),K(()=>Y(m,`${e(t)??""} `)),r(_,$),ne()}var ld=A(''),nd=A('Time Taken (ms)
t_cost
m_cost
p_cost
');function od(_,s){let t=G(s,"res",19,()=>[]);var d=nd(),i=l(c(d),2);We(i,17,t,yt,(g,f)=>{var u=ld(),I=c(u),E=c(I,!0);v(I);var o=l(I,2),$=c(o,!0);v(o);var m=l(o,2),T=c(m,!0);v(m);var k=l(m,2),h=c(k,!0);v(k),v(u),K(()=>{Y(E,e(f).time_taken),Y($,e(f).t_cost),Y(T,e(f).m_cost),Y(h,e(f).p_cost)}),r(g,u)}),q(2),v(d),r(_,d)}var vd=A('
'),dd=A('');function cd(_,s){le(s,!0);const t="170px";let d=C(!1),i=C(!1),g=C(void 0),f=C(void 0),u=n({targetTime:1e3,mCost:32768,pCost:2}),I=C(n({}));const E=He().shape({targetTime:wt().required("Target Time is required").min(500,"Cannot be lower than 500").max(99999,"Cannot be higher than 99999"),mCost:wt().min(32768,"Cannot be lower than 32768").max(1048576,"Cannot be higher than 1048576"),pCost:wt().min(2,"Cannot be lower than 2").max(1024,"Cannot be higher than 1024")});Te(()=>{e(i)&&e(g)&&a(f,n(window.innerHeight))});function o(p){p.code==="Enter"&&$()}async function $(){try{await E.validate(u,{abortEarly:!1}),a(I,n({}))}catch(D){a(I,n(Ye(D)));return}a(d,!0),a(i,!1);const p={target_time:Number.parseInt(u.targetTime),m_cost:Number.parseInt(u.mCost),p_cost:Number.parseInt(u.pCost)},S=await Tr(p),L=await S.json();S.ok?(a(g,n(L.results)),a(i,!0)):L.message,a(d,!1)}var m=dd(),T=c(m),k=c(T);ie(k,{type:"number",autocomplete:"off",placeholder:"Target Time (ms)",width:t,get value(){return u.targetTime},set value(p){u.targetTime=p},get error(){return e(I).targetTime},set error(p){e(I).targetTime=p},$$events:{keypress:o},children:(p,S)=>{q();var L=B("TARGET TIME (ms)");r(p,L)},$$slots:{default:!0}});var h=l(k,2);ie(h,{type:"number",autocomplete:"off",placeholder:"m_cost (kB)",width:t,get value(){return u.mCost},set value(p){u.mCost=p},get error(){return e(I).mCost},set error(p){e(I).mCost=p},$$events:{keypress:o},children:(p,S)=>{q();var L=B("M_COST (kB)");r(p,L)},$$slots:{default:!0}});var y=l(h,2);ie(y,{type:"number",autocomplete:"off",placeholder:"p_cost",width:t,get value(){return u.pCost},set value(p){u.pCost=p},get error(){return e(I).pCost},set error(p){e(I).pCost=p},$$events:{keypress:o},children:(p,S)=>{q();var L=B("P_COST");r(p,L)},$$slots:{default:!0}});var w=l(y,2);Se(w,{get isLoading(){return e(d)},level:1,$$events:{click:$},children:(p,S)=>{q();var L=B("CALCULATE");r(p,L)},$$slots:{default:!0}}),v(T);var b=l(T,2);{var x=p=>{var S=vd(),L=c(S);od(L,{get res(){return e(g)}}),v(S),r(p,S)};P(b,p=>{e(i)&&p(x)})}v(m),Fs("y",()=>e(f),p=>a(f,n(p))),r(_,m),ne()}var ud=A(`Argon2ID - Password Hashing This utility helps you find the best argon2id settings for your platform. Argon2id is currently the safest available password hashing algorithm. To use it to its fullest potential, it
has
to be tuned for each deployment.
Important:These values need to be tuned on the final architecture! They change depending on the capabilities of the system. The more powerful the system, the more safe these
values
@@ -30,21 +30,21 @@ import{a as r,n as Xe,b as A,c as me,t as B}from"./disclose-version.C0dpEWi_.js"
of an old key, which is currently still in use in some places.
The active key is statically set in the Rauthy config file / environment variables. It cannot be changed
here
dynamically. All new JWK encryption's will always use the currently active key.
If you migrate all existing secrets, it might take a few seconds to finish, if you have a big
- dataset. Manually migrate all existing encryption in the backend to key:
`);function yd(_,s){le(s,!0);let t=C(""),d=C(!0),i=C(""),g=C(""),f=C(n([])),u=C(!1);Ne(async()=>{I()});async function I(){let N=await kr(),V=await N.json();N.ok?(a(i,n(V.active)),a(g,n(V.active)),a(f,n(V.keys))):a(t,n(V.message)),a(d,!1)}async function E(){a(d,!0),a(u,!1);let N={key_id:e(g)},V=await xr(N);if(V.ok)a(u,!0);else{let R=await V.json();a(t,n(R.message))}a(d,!1)}var o=fd(),$=c(o),m=l(c($),6),T=l(c(m),2),k=c(T,!0);v(T),v(m);var h=l(m,2),y=l(c(h),2);oe(y,"margin-left","-10px"),We(y,21,()=>e(f),yt,(N,V)=>{var R=pd(),F=c(R,!0);v(R),K(()=>Y(F,e(V))),r(N,R)}),v(y),v(h);var w=l(h,2),b=l(c(w),2);kt(b,{get options(){return e(f)},width:"186px",get value(){return e(g)},set value(N){a(g,n(N))}}),v(w),v($);var x=l($,2),p=c(x);Se(p,{get isLoading(){return e(d)},set isLoading(N){a(d,n(N))},$$events:{click:E},children:(N,V)=>{q();var R=B("MIGRATE");r(N,R)},$$slots:{default:!0}}),v(x);var S=l(x,2);{var L=N=>{var V=md(),R=c(V,!0);v(V),K(()=>Y(R,e(t))),r(N,V)};P(S,N=>{e(t)&&N(L)})}var D=l(S,2);{var j=N=>{var V=gd();r(N,V)};P(D,N=>{e(u)&&N(j)})}v(o),K(()=>Y(k,e(i))),r(_,o),ne()}var wd=A('Success
'),bd=A('
'),$d=A('
Validity for a new password. Not Recently Used denied the last n used passwords. Setting no value at all with disable the given option.
',1),_d=A('Password Policy Configure the password policy. The policy is being applied to all passwords being set from this moment on.
');function kd(_,s){le(s,!0);const t="160px";let d=C(!1),i=C(""),g=C(!1),f=C(void 0),u=C(void 0),I=C(n({}));const E=He().shape({length_min:wt().required("Min Length is required").min(8,"Cannot be lower than 8").max(128,"Cannot be higher than 128"),length_max:wt().required("Max Length is required").min(8,"Cannot be lower than 8").max(128,"Cannot be higher than 128"),not_recently_used:wt().nullable().min(0,"Cannot be lower than 0").max(10,"Cannot be higher than 10"),valid_days:wt().nullable().min(0,"Cannot be lower than 0").max(3650,"Cannot be higher than 3650"),include_digits:wt().nullable().min(0,"Cannot be lower than 0").max(32,"Cannot be higher than 32"),include_lower_case:wt().nullable().min(0,"Cannot be lower than 0").max(32,"Cannot be higher than 32"),include_upper_case:wt().nullable().min(0,"Cannot be lower than 0").max(32,"Cannot be higher than 32"),include_special:wt().nullable().min(0,"Cannot be lower than 0").max(32,"Cannot be higher than 32")});Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1)},3e3)))}),Ne(async()=>{if(!e(u)){let y=await ja(),w=await y.json();y.ok?(a(u,n(w)),e(u).length_min=w.length_min||0,e(u).length_max=w.length_max||0,e(u).include_digits=w.include_digits||0,e(u).include_lower_case=w.include_lower_case||0,e(u).include_upper_case=w.include_upper_case||0,e(u).include_special=w.include_special||0,e(u).length_max=w.length_max||0,e(u).valid_days=w.valid_days||0,e(u).not_recently_used=w.not_recently_used||0):a(i,n(w.message))}});function o(y){y.code==="Enter"&&$()}async function $(){if(!await m())return;a(i,""),a(d,!0);let y=e(u);y.not_recently_used===0&&(y.not_recently_used=null),y.valid_days===0&&(y.valid_days=null),y.include_digits===0&&(y.include_digits=null),y.include_lower_case===0&&(y.include_lower_case=null),y.include_upper_case===0&&(y.include_upper_case=null),y.include_special===0&&(y.include_special=null);let w=await Lr(y);if(w.ok)a(g,!0);else{let b=await w.json();a(i,n(b.message))}a(d,!1)}async function m(){try{return a(I,n({})),await E.validate(e(u),{abortEarly:!1}),e(u).length_min=Number.parseInt(e(u).length_min),e(u).length_max=Number.parseInt(e(u).length_max),e(u).include_digits=Number.parseInt(e(u).include_digits),e(u).include_lower_case=Number.parseInt(e(u).include_lower_case),e(u).include_upper_case=Number.parseInt(e(u).include_upper_case),e(u).include_special=Number.parseInt(e(u).include_special),e(u).length_max=Number.parseInt(e(u).length_max),e(u).valid_days=Number.parseInt(e(u).valid_days),e(u).not_recently_used=Number.parseInt(e(u).not_recently_used),e(u).length_maxe(u).length_max?(e(I).length_max="The sum of all includes does not fit into Max Length",!1):!0}catch(y){return a(I,n(Ye(y))),!1}}var T=_d(),k=l(c(T),2);{var h=y=>{var w=$d(),b=ee(w),x=c(b);ie(x,{type:"number",autocomplete:"off",width:t,get value(){return e(u).length_min},set value(J){e(u).length_min=J},get error(){return e(I).length_min},set error(J){e(I).length_min=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("MIN LENGTH");r(J,re)},$$slots:{default:!0}});var p=l(x,2);ie(p,{type:"number",autocomplete:"off",width:t,get value(){return e(u).length_max},set value(J){e(u).length_max=J},get error(){return e(I).length_max},set error(J){e(I).length_max=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("MAX LENGTH");r(J,re)},$$slots:{default:!0}}),v(b);var S=l(b,2),L=c(S);ie(L,{type:"number",autocomplete:"off",width:t,get value(){return e(u).include_lower_case},set value(J){e(u).include_lower_case=J},get error(){return e(I).include_lower_case},set error(J){e(I).include_lower_case=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("INCLUDE LOWERCASE");r(J,re)},$$slots:{default:!0}});var D=l(L,2);ie(D,{type:"number",autocomplete:"off",width:t,get value(){return e(u).include_upper_case},set value(J){e(u).include_upper_case=J},get error(){return e(I).include_upper_case},set error(J){e(I).include_upper_case=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("INCLUDE UPPERCASE");r(J,re)},$$slots:{default:!0}}),v(S);var j=l(S,2),N=c(j);ie(N,{type:"number",autocomplete:"off",width:t,get value(){return e(u).include_digits},set value(J){e(u).include_digits=J},get error(){return e(I).include_digits},set error(J){e(I).include_digits=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("INCLUDE DIGITS");r(J,re)},$$slots:{default:!0}});var V=l(N,2);ie(V,{type:"number",autocomplete:"off",width:t,get value(){return e(u).include_special},set value(J){e(u).include_special=J},get error(){return e(I).include_special},set error(J){e(I).include_special=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("INCLUDE SPECIAL");r(J,re)},$$slots:{default:!0}}),v(j);var R=l(j,4),F=c(R);ie(F,{type:"number",autocomplete:"off",width:t,get value(){return e(u).not_recently_used},set value(J){e(u).not_recently_used=J},get error(){return e(I).not_recently_used},set error(J){e(I).not_recently_used=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("NOT RECENTLY USED");r(J,re)},$$slots:{default:!0}});var z=l(F,2);ie(z,{type:"number",autocomplete:"off",width:t,get value(){return e(u).valid_days},set value(J){e(u).valid_days=J},get error(){return e(I).valid_days},set error(J){e(I).valid_days=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("VALID FOR DAYS");r(J,re)},$$slots:{default:!0}}),v(R);var O=l(R,2);Se(O,{level:1,width:"4rem",get isLoading(){return e(d)},set isLoading(J){a(d,n(J))},$$events:{click:$},children:(J,Z)=>{q();var re=B("SAVE");r(J,re)},$$slots:{default:!0}});var U=l(O,2);{var Q=J=>{var Z=wd();r(J,Z)};P(U,J=>{e(g)&&J(Q)})}var M=l(U,2);{var W=J=>{var Z=bd(),re=c(Z,!0);v(Z),K(()=>Y(re,e(i))),r(J,Z)};P(M,J=>{e(i)&&J(W)})}r(y,w)};P(k,y=>{e(u)&&y(h)})}v(T),r(_,T),ne()}var xd=A(''),Ed=A('');function Id(_,s){le(s,!0);let t=C(!1);function d(){if(s.jwk.kty==="OKP")return s.jwk.crv;if(s.jwk.kty==="RSA"){let $;const m=s.jwk.n.length;return m>600?$=4096:m>400?$=3072:$=2048,`RSA ${$}`}return"unknown type"}var i=Ed(),g=c(i),f=c(g,!0);v(g);var u=l(g,2),I=c(u,!0);K(()=>Y(I,d())),v(u);var E=l(u,2);{var o=$=>{var m=xd(),T=c(m),k=c(T);oa(k),ue(k,"rows",10),ue(k,"cols",40),K(()=>Gs(k,JSON.stringify(s.jwk,null,2))),v(T),v(m),K(()=>ue(k,"name",s.jwk.kid)),ce(7,m,()=>pt),r($,m)};P(E,$=>{e(t)&&$(o)})}v(i),K(()=>Y(f,s.jwk.kid)),Me("mouseenter",i,()=>a(t,!0)),Me("mouseleave",i,()=>a(t,!1)),r(_,i),ne()}var Sd=A('Success
'),Cd=A('
'),Ad=A(`Json Web Keys These are the Json Web Keys (JWKs) used for token singing.
You can rotate them and generate a full new set. Depending on your deployment, this could take a few
+ dataset. Manually migrate all existing encryption in the backend to key:
`);function yd(_,s){le(s,!0);let t=C(""),d=C(!0),i=C(""),g=C(""),f=C(n([])),u=C(!1);Ne(async()=>{I()});async function I(){let N=await kr(),V=await N.json();N.ok?(a(i,n(V.active)),a(g,n(V.active)),a(f,n(V.keys))):a(t,n(V.message)),a(d,!1)}async function E(){a(d,!0),a(u,!1);let N={key_id:e(g)},V=await xr(N);if(V.ok)a(u,!0);else{let R=await V.json();a(t,n(R.message))}a(d,!1)}var o=fd(),$=c(o),m=l(c($),6),T=l(c(m),2),k=c(T,!0);v(T),v(m);var h=l(m,2),y=l(c(h),2);oe(y,"margin-left","-10px"),We(y,21,()=>e(f),yt,(N,V)=>{var R=pd(),F=c(R,!0);v(R),K(()=>Y(F,e(V))),r(N,R)}),v(y),v(h);var w=l(h,2),b=l(c(w),2);kt(b,{get options(){return e(f)},width:"186px",get value(){return e(g)},set value(N){a(g,n(N))}}),v(w),v($);var x=l($,2),p=c(x);Se(p,{get isLoading(){return e(d)},set isLoading(N){a(d,n(N))},$$events:{click:E},children:(N,V)=>{q();var R=B("MIGRATE");r(N,R)},$$slots:{default:!0}}),v(x);var S=l(x,2);{var L=N=>{var V=md(),R=c(V,!0);v(V),K(()=>Y(R,e(t))),r(N,V)};P(S,N=>{e(t)&&N(L)})}var D=l(S,2);{var j=N=>{var V=gd();r(N,V)};P(D,N=>{e(u)&&N(j)})}v(o),K(()=>Y(k,e(i))),r(_,o),ne()}var wd=A('Success
'),bd=A('
'),$d=A('
Validity for a new password. Not Recently Used denied the last n used passwords. Setting no value at all with disable the given option.
',1),_d=A('Password Policy Configure the password policy. The policy is being applied to all passwords being set from this moment on.
');function kd(_,s){le(s,!0);const t="160px";let d=C(!1),i=C(""),g=C(!1),f=C(void 0),u=C(void 0),I=C(n({}));const E=He().shape({length_min:wt().required("Min Length is required").min(8,"Cannot be lower than 8").max(128,"Cannot be higher than 128"),length_max:wt().required("Max Length is required").min(8,"Cannot be lower than 8").max(128,"Cannot be higher than 128"),not_recently_used:wt().nullable().min(0,"Cannot be lower than 0").max(10,"Cannot be higher than 10"),valid_days:wt().nullable().min(0,"Cannot be lower than 0").max(3650,"Cannot be higher than 3650"),include_digits:wt().nullable().min(0,"Cannot be lower than 0").max(32,"Cannot be higher than 32"),include_lower_case:wt().nullable().min(0,"Cannot be lower than 0").max(32,"Cannot be higher than 32"),include_upper_case:wt().nullable().min(0,"Cannot be lower than 0").max(32,"Cannot be higher than 32"),include_special:wt().nullable().min(0,"Cannot be lower than 0").max(32,"Cannot be higher than 32")});Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1)},3e3)))}),Ne(async()=>{if(!e(u)){let y=await ja(),w=await y.json();y.ok?(a(u,n(w)),e(u).length_min=w.length_min||0,e(u).length_max=w.length_max||0,e(u).include_digits=w.include_digits||0,e(u).include_lower_case=w.include_lower_case||0,e(u).include_upper_case=w.include_upper_case||0,e(u).include_special=w.include_special||0,e(u).length_max=w.length_max||0,e(u).valid_days=w.valid_days||0,e(u).not_recently_used=w.not_recently_used||0):a(i,n(w.message))}});function o(y){y.code==="Enter"&&$()}async function $(){if(!await m())return;a(i,""),a(d,!0);let y=e(u);y.not_recently_used===0&&(y.not_recently_used=null),y.valid_days===0&&(y.valid_days=null),y.include_digits===0&&(y.include_digits=null),y.include_lower_case===0&&(y.include_lower_case=null),y.include_upper_case===0&&(y.include_upper_case=null),y.include_special===0&&(y.include_special=null);let w=await Lr(y);if(w.ok)a(g,!0);else{let b=await w.json();a(i,n(b.message))}a(d,!1)}async function m(){try{return a(I,n({})),await E.validate(e(u),{abortEarly:!1}),e(u).length_min=Number.parseInt(e(u).length_min),e(u).length_max=Number.parseInt(e(u).length_max),e(u).include_digits=Number.parseInt(e(u).include_digits),e(u).include_lower_case=Number.parseInt(e(u).include_lower_case),e(u).include_upper_case=Number.parseInt(e(u).include_upper_case),e(u).include_special=Number.parseInt(e(u).include_special),e(u).length_max=Number.parseInt(e(u).length_max),e(u).valid_days=Number.parseInt(e(u).valid_days),e(u).not_recently_used=Number.parseInt(e(u).not_recently_used),e(u).length_maxe(u).length_max?(e(I).length_max="The sum of all includes does not fit into Max Length",!1):!0}catch(y){return a(I,n(Ye(y))),!1}}var T=_d(),k=l(c(T),2);{var h=y=>{var w=$d(),b=ee(w),x=c(b);ie(x,{type:"number",autocomplete:"off",width:t,get value(){return e(u).length_min},set value(J){e(u).length_min=J},get error(){return e(I).length_min},set error(J){e(I).length_min=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("MIN LENGTH");r(J,re)},$$slots:{default:!0}});var p=l(x,2);ie(p,{type:"number",autocomplete:"off",width:t,get value(){return e(u).length_max},set value(J){e(u).length_max=J},get error(){return e(I).length_max},set error(J){e(I).length_max=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("MAX LENGTH");r(J,re)},$$slots:{default:!0}}),v(b);var S=l(b,2),L=c(S);ie(L,{type:"number",autocomplete:"off",width:t,get value(){return e(u).include_lower_case},set value(J){e(u).include_lower_case=J},get error(){return e(I).include_lower_case},set error(J){e(I).include_lower_case=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("INCLUDE LOWERCASE");r(J,re)},$$slots:{default:!0}});var D=l(L,2);ie(D,{type:"number",autocomplete:"off",width:t,get value(){return e(u).include_upper_case},set value(J){e(u).include_upper_case=J},get error(){return e(I).include_upper_case},set error(J){e(I).include_upper_case=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("INCLUDE UPPERCASE");r(J,re)},$$slots:{default:!0}}),v(S);var j=l(S,2),N=c(j);ie(N,{type:"number",autocomplete:"off",width:t,get value(){return e(u).include_digits},set value(J){e(u).include_digits=J},get error(){return e(I).include_digits},set error(J){e(I).include_digits=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("INCLUDE DIGITS");r(J,re)},$$slots:{default:!0}});var V=l(N,2);ie(V,{type:"number",autocomplete:"off",width:t,get value(){return e(u).include_special},set value(J){e(u).include_special=J},get error(){return e(I).include_special},set error(J){e(I).include_special=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("INCLUDE SPECIAL");r(J,re)},$$slots:{default:!0}}),v(j);var R=l(j,4),F=c(R);ie(F,{type:"number",autocomplete:"off",width:t,get value(){return e(u).not_recently_used},set value(J){e(u).not_recently_used=J},get error(){return e(I).not_recently_used},set error(J){e(I).not_recently_used=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("NOT RECENTLY USED");r(J,re)},$$slots:{default:!0}});var z=l(F,2);ie(z,{type:"number",autocomplete:"off",width:t,get value(){return e(u).valid_days},set value(J){e(u).valid_days=J},get error(){return e(I).valid_days},set error(J){e(I).valid_days=J},$$events:{keypress:o,input:m},children:(J,Z)=>{q();var re=B("VALID FOR DAYS");r(J,re)},$$slots:{default:!0}}),v(R);var O=l(R,2);Se(O,{level:1,width:"4rem",get isLoading(){return e(d)},set isLoading(J){a(d,n(J))},$$events:{click:$},children:(J,Z)=>{q();var re=B("SAVE");r(J,re)},$$slots:{default:!0}});var U=l(O,2);{var Q=J=>{var Z=wd();r(J,Z)};P(U,J=>{e(g)&&J(Q)})}var M=l(U,2);{var W=J=>{var Z=bd(),re=c(Z,!0);v(Z),K(()=>Y(re,e(i))),r(J,Z)};P(M,J=>{e(i)&&J(W)})}r(y,w)};P(k,y=>{e(u)&&y(h)})}v(T),r(_,T),ne()}var xd=A(''),Ed=A('');function Id(_,s){le(s,!0);let t=C(!1);function d(){if(s.jwk.kty==="OKP")return s.jwk.crv;if(s.jwk.kty==="RSA"){let $;const m=s.jwk.n.length;return m>600?$=4096:m>400?$=3072:$=2048,`RSA ${$}`}return"unknown type"}var i=Ed(),g=c(i),f=c(g,!0);v(g);var u=l(g,2),I=c(u,!0);K(()=>Y(I,d())),v(u);var E=l(u,2);{var o=$=>{var m=xd(),T=c(m),k=c(T);pa(k),ue(k,"rows",10),ue(k,"cols",40),K(()=>Gs(k,JSON.stringify(s.jwk,null,2))),v(T),v(m),K(()=>ue(k,"name",s.jwk.kid)),ce(7,m,()=>ht),r($,m)};P(E,$=>{e(t)&&$(o)})}v(i),K(()=>Y(f,s.jwk.kid)),Me("mouseenter",i,()=>a(t,!0)),Me("mouseleave",i,()=>a(t,!1)),r(_,i),ne()}var Sd=A('Success
'),Cd=A('
'),Ad=A(`Json Web Keys These are the Json Web Keys (JWKs) used for token singing.
You can rotate them and generate a full new set. Depending on your deployment, this could take a few
seconds. New tokens will always be signed with the new / latest ones. The old keys will be cleaned up automatically,
when
there cannot be a token anymore that used the old key to not
break any current token validation.
`);function Td(_,s){le(s,!0);let t=C(n([])),d=C(!1),i=C(""),g=C(!1),f=C(void 0);Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1)},3e3)))}),Ne(()=>{e(t).length===0&&u()});async function u(){let y=await cr(),w=await y.json();y.ok?a(t,n([...w.keys])):a(i,n(w.message))}async function I(){a(i,""),a(d,!0);let y=await Ur();if(y.ok)u(),a(g,!0);else{let w=await y.json();a(i,n(w.message))}a(d,!1)}var E=Ad(),o=l(c(E),2);We(o,19,()=>e(t),y=>y.kid,(y,w,b)=>{Id(y,{get jwk(){return e(t)[e(b)]},set jwk(x){e(t)[e(b)]=x}})});var $=l(o,2);Se($,{level:1,get isLoading(){return e(d)},set isLoading(y){a(d,n(y))},$$events:{click:I},children:(y,w)=>{q();var b=B("ROTATE KEYS");r(y,b)},$$slots:{default:!0}});var m=l($,2);{var T=y=>{var w=Sd();r(y,w)};P(m,y=>{e(g)&&y(T)})}var k=l(m,2);{var h=y=>{var w=Cd(),b=c(w,!0);v(w),K(()=>Y(b,e(i))),r(y,w)};P(k,y=>{e(i)&&y(h)})}v(E),r(_,E),ne()}var Ld=A('');function Nd(_){const s=["Password Policy","JWKS","Argon2 Parameter","Encryption Keys"];let t=C(n(s[0]));var d=Ld(),i=c(d),g=c(i);Dt(g,{labels:s,get selected(){return e(t)},set selected(E){a(t,n(E))}});var f=l(g,2);{var u=E=>{kd(E,{})},I=E=>{var o=me(),$=ee(o);{var m=k=>{Td(k,{})},T=k=>{var h=me(),y=ee(h);{var w=x=>{hd(x,{})},b=x=>{var p=me(),S=ee(p);{var L=D=>{yd(D,{})};P(S,D=>{e(t)==="Encryption Keys"&&D(L)},!0)}r(x,p)};P(y,x=>{e(t)==="Argon2 Parameter"?x(w):x(b,!1)},!0)}r(k,h)};P($,k=>{e(t)==="JWKS"?k(m):k(T,!1)},!0)}r(E,o)};P(f,E=>{e(t)==="Password Policy"?E(u):E(I,!1)})}v(i),v(d),r(_,d)}var Rd=Xe(' ');function Dd(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Rd();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var jd=Xe(' ');function Pd(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=jd();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var zd=Xe(' ');function Od(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=zd();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Md=Xe(' ');function Ud(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Md();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var qd=Xe(' ');function Gd(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=qd();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Wd=Xe(' ');function os(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Wd();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Kd=Xe(' ');function Fd(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Kd();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Vd=Xe(' ');function Bd(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Vd();ue(i,"stroke-width",1.5),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Jd=Xe(`rau thy `);function Yd(_){var s=Jd();r(_,s)}var Hd=A(`Documentation For general documentation about Rauthy itself, you should take a look at the Rauthy Book
If you want to integrate an external application and use Rauthy's REST API, take a look at the Swagger UI Note: Depending on the backend configuration, the Swagger UI may not be exposed publicly at this point.
- It is however by default available via the internal /metrics
HTTP server to not expose any information.
The source code can be found in Github
`);function Xd(_){var s=Hd();r(_,s)}var Zd=Xe(' ');function Qd(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Zd();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var ec=A('
',1),tc=A('
',1),ac=A('
',1),sc=A('
',1),rc=A('
',1),ic=A('
',1),lc=A('
'),nc=A(''),oc=A(" ",1),vc=A(" ",1),dc=A(" ",1),cc=A(" ",1),uc=A(" ",1),hc=A(" ",1),pc=A(" ",1),mc=A('
');function vs(_,s){le(s,!0);let t=G(s,"collapsed",3,!0),d=C("event"),i=C(!1),g=Ke(()=>!t()&&!s.wide),f=Ke(()=>t()&&!s.wide&&!e(i)),u=Ke(()=>!t()&&s.wide),I=Ke(()=>e(f)?".5rem":".33rem");Ne(()=>{new Date().getTime()-1e3*30{a(d,"eventNew")},100),setTimeout(()=>{a(d,"event")},2500))});function E(){switch(s.event.level){case"test":return"T";case"info":return"I";case"notice":return"N";case"warning":return"W";case"critical":return"C";default:return"U"}}function o(){return ht(s.event.timestamp/1e3)}var $=mc();const m=Ke(()=>`${e(I)} solid ${Gt(s.event.level)}`);var T=c($);{var k=y=>{var w=nc(),b=c(w),x=c(b,!0);K(()=>Y(x,o())),v(b);var p=l(b,2);{var S=D=>{var j=ec(),N=ee(j),V=c(N,!0);v(N);var R=l(N,2),F=c(R,!0);v(R);var z=l(R,2),O=c(z,!0);v(z),K(()=>{Y(V,s.event.typ),Y(F,s.event.ip),Y(O,s.event.text)}),r(D,j)},L=D=>{var j=me(),N=ee(j);{var V=F=>{var z=tc(),O=ee(z),U=c(O,!0);v(O);var Q=l(O,2),M=c(Q,!0);v(Q),K(()=>{Y(U,`${s.event.typ}: ${s.event.data}`),Y(M,s.event.ip)}),r(F,z)},R=F=>{var z=me(),O=ee(z);{var U=M=>{var W=ac(),J=ee(W),Z=c(J,!0);v(J);var re=l(J,2),ve=c(re,!0);v(re),K(()=>{Y(Z,s.event.typ),Y(ve,s.event.ip||"")}),r(M,W)},Q=M=>{var W=me(),J=ee(W);{var Z=ve=>{var be=sc(),$e=ee(be),pe=c($e,!0);v($e);var je=l($e,2),fe=c(je,!0);v(je);var de=l(je,2),ye=c(de);Wa(ye,()=>s.event.text.replace("@"," @")),v(de),K(()=>{Y(pe,s.event.typ),Y(fe,s.event.ip||"")}),r(ve,be)},re=ve=>{var be=me(),$e=ee(be);{var pe=fe=>{var de=rc(),ye=ee(de),we=c(ye,!0);v(ye);var Pe=l(ye,2),Ce=c(Pe,!0);v(Pe);var xe=l(Pe,2),Re=c(xe,!0);K(()=>Y(Re,`Expires: ${ht(s.event.data)}`)),v(xe),K(()=>{Y(we,s.event.typ),Y(Ce,s.event.ip)}),r(fe,de)},je=fe=>{var de=me(),ye=ee(de);{var we=Ce=>{var xe=ic(),Re=ee(xe),H=c(Re,!0);v(Re);var Ie=l(Re,4),ge=c(Ie,!0);v(Ie),K(()=>{Y(H,s.event.typ),Y(ge,s.event.text)}),r(Ce,xe)},Pe=Ce=>{var xe=lc(),Re=c(xe,!0);v(xe),K(()=>Y(Re,s.event.typ)),r(Ce,xe)};P(ye,Ce=>{s.event.typ==="RauthyStarted"||s.event.typ==="RauthyHealthy"||s.event.typ==="RauthyUnhealthy"?Ce(we):Ce(Pe,!1)},!0)}r(fe,de)};P($e,fe=>{s.event.typ==="IpBlacklisted"?fe(pe):fe(je,!1)},!0)}r(ve,be)};P(J,ve=>{s.event.typ==="NewRauthyAdmin"||s.event.typ==="NewUserRegistered"||s.event.typ==="UserPasswordReset"||s.event.typ==="UserEmailChange"?ve(Z):ve(re,!1)},!0)}r(M,W)};P(O,M=>{s.event.typ==="SecretsMigrated"?M(U):M(Q,!1)},!0)}r(F,z)};P(N,F=>{s.event.typ==="InvalidLogins"?F(V):F(R,!1)},!0)}r(D,j)};P(p,D=>{s.event.typ==="Test"?D(S):D(L,!1)})}v(w),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=S=>{var L=pc(),D=ee(L,!0);K(()=>Y(D,o()));var j=l(D,2),N=l(j);{var V=F=>{var z=vc(),O=l(ee(z),2);{var U=M=>{var W=oc(),J=ee(W);q(),K(()=>Y(J,`${s.event.text??""} `)),r(M,W)};P(O,M=>{s.event.text&&M(U)})}var Q=l(O);K(()=>Y(Q,` ${s.event.ip??""}`)),r(F,z)},R=F=>{var z=me(),O=ee(z);{var U=M=>{var W=dc(),J=ee(W,!0),Z=l(J,2);K(()=>{Y(J,`: ${s.event.data}`),Y(Z,` ${s.event.ip??""}`)}),r(M,W)},Q=M=>{var W=me(),J=ee(W);{var Z=ve=>{var be=B();K(()=>Y(be,s.event.ip)),r(ve,be)},re=ve=>{var be=me(),$e=ee(be);{var pe=fe=>{var de=cc(),ye=l(ee(de)),we=l(ye,3);Wa(we,()=>s.event.text.replace("@"," @")),K(()=>Y(ye,` ${(s.event.ip||"")??""} `)),r(fe,de)},je=fe=>{var de=me(),ye=ee(de);{var we=Ce=>{var xe=uc(),Re=l(ee(xe)),H=l(Re,2);K(()=>Y(H,` ${ht(s.event.data)??""}`)),K(()=>Y(Re,` ${s.event.ip??""} `)),r(Ce,xe)},Pe=Ce=>{var xe=me(),Re=ee(xe);{var H=Ie=>{var ge=hc(),Ue=l(ee(ge));K(()=>Y(Ue,` ${s.event.text??""}`)),r(Ie,ge)};P(Re,Ie=>{(s.event.typ==="RauthyStarted"||s.event.typ==="RauthyHealthy"||s.event.typ==="RauthyUnhealthy")&&Ie(H)},!0)}r(Ce,xe)};P(ye,Ce=>{s.event.typ==="IpBlacklisted"?Ce(we):Ce(Pe,!1)},!0)}r(fe,de)};P($e,fe=>{s.event.typ==="NewRauthyAdmin"||s.event.typ==="NewUserRegistered"||s.event.typ==="UserPasswordReset"||s.event.typ==="UserEmailChange"?fe(pe):fe(je,!1)},!0)}r(ve,be)};P(J,ve=>{s.event.typ==="SecretsMigrated"?ve(Z):ve(re,!1)},!0)}r(M,W)};P(O,M=>{s.event.typ==="InvalidLogins"?M(U):M(Q,!1)},!0)}r(F,z)};P(N,F=>{s.event.typ==="Test"?F(V):F(R,!1)})}K(()=>Y(j,` ${s.event.typ??""} `)),r(S,L)},p=S=>{var L=B();K(()=>Y(L,E())),r(S,L)};P(b,S=>{e(g)?S(x):S(p,!1)},!0)}r(y,w)};P(T,y=>{e(u)?y(k):y(h,!1)})}v($),K(()=>{Nt($,Rt(e(d)),"svelte-a54rx3"),Et($,"showCollapsed",e(f)),oe($,"border-left",e(m))}),Me("mouseenter",$,()=>a(i,!0)),Me("mouseleave",$,()=>a(i,!1)),r(_,$),ne()}var gc=A("Legend
TEST
INFO
NOTICE
WARNING
CRITICAL
");function fc(_,s){le(s,!0);var t=gc(),d=c(t),i=l(d,2),g=c(i);const f=Ke(()=>`.33rem solid ${Gt("test")}`);var u=l(g,2);const I=Ke(()=>`.33rem solid ${Gt("info")}`);var E=l(u,2);const o=Ke(()=>`.33rem solid ${Gt("notice")}`);var $=l(E,2);const m=Ke(()=>`.33rem solid ${Gt("warning")}`);var T=l($,2);const k=Ke(()=>`.33rem solid ${Gt("critical")}`);v(i),v(t),K(()=>{Nt(d,Rt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(d,"border-left",".33rem solid var(--col-bg)"),Nt(i,Rt(s.wide?"legendWide":"legend"),"svelte-1imwz5t"),Nt(g,Rt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(g,"border-left",e(f)),Nt(u,Rt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(u,"border-left",e(I)),Nt(E,Rt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(E,"border-left",e(o)),Nt($,Rt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe($,"border-left",e(m)),Nt(T,Rt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(T,"border-left",e(k))}),r(_,t),ne()}var yc=A(''),wc=A("Events "),bc=A(" ",1),$c=A('
'),_c=A('');function kc(_,s){le(s,!0);let t=G(s,"collapsed",3,!0),d=G(s,"wide",15),i=50,g=C(void 0),f=C(n([])),u=C(n([])),I=C(void 0),E=C(!1);Ne(async()=>{a(I,n(await o()))});async function o(){return localStorage.getItem("eventLevel")||"Info"}async function $(R){localStorage.setItem("eventLevel",R)}async function m(){await Ps()}function T(){var R;console.log("opening SSE stream"),a(g,n(new EventSource(`/auth/v1/events/stream?latest=${i}&level=${((R=e(I))==null?void 0:R.toLowerCase())||"info"}`))),e(g).onopen=()=>{console.log("SSE Events Stream opened"),a(f,n([]))},e(g).onerror=()=>{console.error("SSE Events Stream closed")},e(g).onmessage=F=>{if(F.data){let z=JSON.parse(F.data);a(f,n([z,...e(f).slice(-499)]))}}}let k=Ke(()=>!t()&&!d()||e(E)),h=Ke(()=>t()&&!d()&&!e(E)),y=Ke(()=>!t()&&d());Te(()=>{if(e(f))switch(e(I)){case"Info":a(u,n(e(f)));break;case"Notice":a(u,n(e(f).filter(R=>R.typ==="Test"||R.level==="notice"||R.level==="warning"||R.level==="critical")));break;case"Warning":a(u,n(e(f).filter(R=>R.typ==="Test"||R.level==="warning"||R.level==="critical")));break;case"Critical":a(u,n(e(f).filter(R=>R.typ==="Test"||R.level==="critical")));break}}),Te(()=>{e(I)&&($(e(I)),e(g)&&e(g).readyState!==2&&e(g).close(),T())});var w=_c(),b=c(w),x=c(b),p=c(x);{var S=R=>{var F=bc(),z=ee(F);{var O=M=>{var W=yc(),J=l(c(W),2);kt(J,{options:ca,get value(){return e(I)},set value(Z){a(I,n(Z))}}),v(W),r(M,W)},U=M=>{var W=wc();r(M,W)};P(z,M=>{e(y)?M(O):M(U,!1)})}var Q=l(z,2);Se(Q,{level:3,$$events:{click:m},children:(M,W)=>{q();var J=B("TEST");r(M,J)},$$slots:{default:!0}}),r(R,F)};P(p,R=>{e(h)||R(S)})}v(x);var L=l(x,2);{var D=R=>{var F=$c(),z=c(F);kt(z,{options:ca,get value(){return e(I)},set value(O){a(I,n(O))}}),v(F),r(R,F)};P(L,R=>{e(y)||R(D)})}var j=l(L,2);We(j,23,()=>e(u),R=>R.id,(R,F,z)=>{var O=Ke(()=>t()&&!e(E));vs(R,{get collapsed(){return e(O)},get event(){return e(u)[e(z)]},set event(U){e(u)[e(z)]=U},get wide(){return d()},set wide(U){d(U)}})}),v(j),v(b);var N=l(b,2);{var V=R=>{fc(R,{get wide(){return d()},set wide(F){d(F)}})};P(N,R=>{(!t()||e(E))&&R(V)})}v(w),K(()=>{Et(w,"widthDefault",e(k)),Et(w,"widthCollapsed",e(h)),Et(w,"widthWide",e(y)),Nt(j,Rt(e(y)?"dataWide":e(h)?"dataCollapsed":"data"),"svelte-1ymfjrj")}),Me("mouseenter",w,()=>a(E,!0)),Me("mouseleave",w,()=>a(E,!1)),r(_,w),ne()}var xc=A(''),Ec=A('No blacklisted IPs
'),Ic=(_,s,t)=>s(e(t).ip),Sc=A('
'),Cc=A(''),Ac=A(' ',1);function Tc(_,s){le(s,!0);let t=C(""),d=C(""),i=C(n([])),g=C(n([])),f=C(n([])),u=C(!1),I=n({ip:"",exp:""}),E=C(n({}));const o=He().shape({ip:he().required("IP is required").matches(zs,"Invalid IPv4")}),$=new Date().toISOString().split(".")[0],m=[{label:"IP",callback:(M,W)=>M.ip.includes(W)}];let T=[{label:"IP",callback:(M,W)=>M.ip.localeCompare(W.ip)}];Te(()=>{e(u)&&(a(d,""),I.exp=new Date().toISOString().split(".")[0])}),Ne(()=>{k()});async function k(){let M=await si(),W=await M.json();M.ok?a(i,n(W.ips)):a(t,n(W.message))}async function h(){if(a(d,""),!await w())return;let M=Ot(I.exp);if(!M){a(d,"Invalid Date Input: User Expires");return}let W={ip:I.ip,exp:M},J=await ri(W);if(J.ok)a(u,!1),I.ip="",await k();else{let Z=await J.json();a(d,n(Z.message))}}async function y(M){(await ii(M)).ok&&await k()}async function w(){try{return await o.validate(I,{abortEarly:!1}),a(E,n({})),!0}catch(M){return a(E,n(Ye(M))),!1}}q();var b=Ac(),x=ee(b),p=l(x),S=c(p),L=c(S);Lt(L,{get items(){return e(i)},searchOptions:m,orderOptions:T,get resItems(){return e(g)},set resItems(M){a(g,n(M))}});var D=l(L,2),j=c(D);Se(j,{level:3,$$events:{click:()=>a(u,!e(u))},children:(M,W)=>{q();var J=B("BLACKLIST IP");r(M,J)},$$slots:{default:!0}}),v(D),v(S);var N=l(S,2);{var V=M=>{var W=xc(),J=c(W);ie(J,{width:"9.5rem",autocomplete:"off",placeholder:"IP",get value(){return I.ip},set value(pe){I.ip=pe},get error(){return e(E).ip},set error(pe){e(E).ip=pe},children:(pe,je)=>{q();var fe=B("IP");r(pe,fe)},$$slots:{default:!0}});var Z=l(J,2);ie(Z,{type:"datetime-local",step:"60",width:"18rem",min:$,max:"2099-01-01T00:00",get value(){return I.exp},set value(pe){I.exp=pe},children:(pe,je)=>{q();var fe=B("EXPIRES");r(pe,fe)},$$slots:{default:!0}});var re=l(Z,2),ve=c(re);Se(ve,{level:1,$$events:{click:h},children:(pe,je)=>{q();var fe=B("SAVE");r(pe,fe)},$$slots:{default:!0}}),v(re);var be=l(re,2),$e=c(be,!0);v(be),v(W),K(()=>Y($e,e(d))),ce(3,W,()=>_e),r(M,W)};P(N,M=>{e(u)&&M(V)})}var R=l(N,2),F=c(R);{var z=M=>{var W=Ec();r(M,W)},O=M=>{var W=me(),J=ee(W);We(J,17,()=>e(f),Z=>Z.ip,(Z,re)=>{var ve=Cc(),be=c(ve),$e=c(be,!0);v(be);var pe=l(be,2),je=c(pe,!0);K(()=>Y(je,ht(e(re).exp))),v(pe);var fe=l(pe,2);Ze(fe,{text:"Delete IP",children:(de,ye)=>{var we=Sc();we.__click=[Ic,y,re];var Pe=c(we);Qt(Pe,{color:"var(--col-err)"}),v(we),Me("keypress",we,()=>y(e(re).ip)),r(de,we)},$$slots:{default:!0}}),v(ve),K(()=>Y($e,e(re).ip)),r(Z,ve)}),r(M,W)};P(F,M=>{e(i).length===0?M(z):M(O,!1)})}v(R);var U=l(R,2);{var Q=M=>{jt(M,{get items(){return e(g)},set items(W){a(g,n(W))},get resItems(){return e(f)},set resItems(W){a(f,n(W))}})};P(U,M=>{e(i).length>0&&M(Q)})}q(2),v(p),K(()=>Y(x,`${e(t)??""} `)),r(_,b),ne()}ut(["click"]);var Lc=Xe(' ');function Nc(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Lc();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Rc=A('
'),Dc=A('
'),jc=A(''),Pc=A('');function ds(_,s){le(s,!0);let t=G(s,"accessMatrix",15);G(s,"finalize",15)(E);const d=["Blacklist","Clients","Events","Generic","Groups","Roles","Secrets","Sessions","Scopes","UserAttributes","Users"],i=["create","read","update","delete"];let g=new Array(d.length).fill(!1),f=new Array(i.length).fill(!1);Ne(()=>{var w;u(),(w=s.apiKey)!=null&&w.access&&I()});function u(){let w=new Array(d.length);for(let b=0;bx===w.group);for(let x of w.access_rights){let p=i.findIndex(S=>S===x);t(t()[b][i[p]]=!0,!0)}}}function E(){let w=[];for(let b=0;b0&&w.push({group:d[b],access_rights:x})}return w}function o(w){g[w]=!g[w];const b=g[w];let x=t()[w];for(let p=0;pi,yt,(w,b,x)=>{var p=Rc(),S=Ke(()=>$.bind(this,x));p.__click=function(...j){var N;(N=e(S))==null||N.apply(this,j)};var L=Ke(()=>$.bind(this,x)),D=c(p,!0);v(p),K(()=>Y(D,i[x])),Me("keypress",p,function(...j){var N;(N=e(L))==null||N.apply(this,j)}),r(w,p)}),v(T);var h=l(T,2);{var y=w=>{var b=me(),x=ee(b);We(x,17,()=>d,yt,(p,S,L)=>{var D=jc(),j=c(D),N=Ke(()=>o.bind(this,L));j.__click=function(...z){var O;(O=e(N))==null||O.apply(this,z)};var V=Ke(()=>o.bind(this,L)),R=c(j,!0);v(j);var F=l(j,2);We(F,17,()=>i,yt,(z,O)=>{var U=Dc(),Q=c(U);nt(Q),v(U),Fs(Q,()=>t()[L][e(O)],M=>t(t()[L][e(O)]=M,!0)),r(z,U)}),v(D),K(()=>Y(R,d[L])),Me("keypress",j,function(...z){var O;(O=e(V))==null||O.apply(this,z)}),r(p,D)}),r(w,b)};P(h,w=>{t()&&w(y)})}return v(m),r(_,m),ne({finalizeMatrix:E})}ut(["click"]);var zc=A("
"),Oc=A('');function Mc(_,s){le(s,!0);const t=new Date().toISOString().split(".")[0];let d=G(s,"apiKeys",19,()=>[]),i=G(s,"onSave",3,()=>{}),g=C(""),f=C(!1),u=C(void 0),I=C(void 0),E=n({name:"",exp:""}),o=C(n({}));const $=He().shape({name:he().required("Name is required").min(2).max(24).matches(Os,"Format: [a-zA-Z0-9_/-]{2,24}")});Te(()=>{e(f)&&(E.exp=new Date().toISOString().split(".")[0])});async function m(){if(a(g,""),!await T())return;let N={name:E.name,access:e(u)()};if(N.access.length===0){a(g,"Grant the new API Key at least one permission");return}if(e(f)){let R=Ot(E.exp);if(!R){a(g,"Invalid Date Input: User Expires");return}N.exp=R}let V=await Qr(N);if(V.ok)i()();else{let R=await V.json();a(g,n(R.message))}}async function T(){try{await $.validate(E,{abortEarly:!1}),a(o,n({}))}catch(N){return a(o,n(Ye(N))),!1}for(let N of d())if(N.name===E.name)return e(o).name="Name already exists",!1;return!0}var k=Oc(),h=c(k);ie(h,{width:"18rem",autocomplete:"off",placeholder:"Name",get value(){return E.name},set value(N){E.name=N},get error(){return e(o).name},set error(N){e(o).name=N},children:(N,V)=>{q();var R=B("NAME");r(N,R)},$$slots:{default:!0}});var y=l(h,2),w=l(c(y));Be(w,{get selected(){return e(f)},set selected(N){a(f,n(N))}}),v(y);var b=l(y,2);{var x=N=>{var V=zc(),R=c(V);ie(R,{type:"datetime-local",step:"60",width:"18rem",min:t,max:"2099-01-01T00:00",get value(){return E.exp},set value(F){E.exp=F},children:(F,z)=>{q();var O=B("EXPIRES");r(F,O)},$$slots:{default:!0}}),v(V),ce(3,V,()=>_e),r(N,V)};P(b,N=>{e(f)&&N(x)})}var p=l(b,2);ds(p,{get accessMatrix(){return e(I)},set accessMatrix(N){a(I,n(N))},get finalize(){return e(u)},set finalize(N){a(u,n(N))}});var S=l(p,2),L=c(S);Se(L,{level:1,$$events:{click:m},children:(N,V)=>{q();var R=B("SAVE");r(N,R)},$$slots:{default:!0}}),v(S);var D=l(S,2),j=c(D,!0);v(D),v(k),K(()=>Y(j,e(g))),r(_,k),ne()}var Uc=A("
"),qc=A('Success
'),Gc=A('
'),Wc=A('');function Kc(_,s){le(s,!0);const t=new Date().toISOString().split(".")[0];let d=G(s,"apiKey",27,()=>n({})),i=C(""),g=C(!1),f=C(void 0),u=C(!!d().expires),I=C(void 0),E=C(void 0);Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1),s.onSave()},2e3)))}),Ne(()=>()=>clearTimeout(e(f)));let o=n({exp:""});Te(()=>{e(u)&&(o.exp=new Date().toISOString().split(".")[0])});async function $(){a(i,"");let V={name:d().name,access:e(E)()};if(V.access.length===0){a(i,"Grant the API Key at least one permission");return}if(e(u)){let F=Ot(o.exp);if(!F){a(i,"Invalid Date Input: User Expires");return}V.exp=F}let R=await ei(V);if(R.ok)s.onSave(),a(g,!0);else{let F=await R.json();a(i,n(F.message))}}var m=Wc(),T=c(m),k=l(c(T),2),h=c(k,!0);v(k),v(T);var y=l(T,2),w=l(c(y));Be(w,{get selected(){return e(u)},set selected(V){a(u,n(V))}}),v(y);var b=l(y,2);{var x=V=>{var R=Uc(),F=c(R);ie(F,{type:"datetime-local",step:"60",width:"18rem",min:t,max:"2099-01-01T00:00",get value(){return o.exp},set value(z){o.exp=z},children:(z,O)=>{q();var U=B("EXPIRES");r(z,U)},$$slots:{default:!0}}),v(R),ce(3,R,()=>_e),r(V,R)};P(b,V=>{e(u)&&V(x)})}var p=l(b,2);ds(p,{get apiKey(){return d()},get accessMatrix(){return e(I)},set accessMatrix(V){a(I,n(V))},get finalize(){return e(E)},set finalize(V){a(E,n(V))}});var S=l(p,2);Se(S,{level:1,width:"4rem",$$events:{click:$},children:(V,R)=>{q();var F=B("SAVE");r(V,F)},$$slots:{default:!0}});var L=l(S,2);{var D=V=>{var R=qc();r(V,R)};P(L,V=>{e(g)&&V(D)})}var j=l(L,2);{var N=V=>{var R=Gc(),F=c(R,!0);v(R),K(()=>Y(F,e(i))),r(V,R)};P(j,V=>{e(i)&&V(N)})}v(m),K(()=>Y(h,d().name)),r(_,m),ne()}var Fc=A('
'),Vc=A('Are you sure, you want to delete this ApiKey?
');function Bc(_,s){le(s,!0);let t=G(s,"apiKey",19,()=>({})),d=C("");async function i(){a(d,"");let E=await ti(t().name);if(E.ok)s.onSave();else{let o=await E.json();a(d,n(o.message))}}var g=Vc(),f=l(c(g),2);Se(f,{level:1,$$events:{click:i},children:(E,o)=>{q();var $=B("DELETE");r(E,$)},$$slots:{default:!0}});var u=l(f,2);{var I=E=>{var o=Fc(),$=c(o,!0);v(o),K(()=>Y($,e(d))),r(E,o)};P(u,E=>{e(d)&&E(I)})}v(g),r(_,g),ne()}var Jc=A('');function cs(_,s){le(s,!0);let t=G(s,"value",3,""),d=G(s,"rows",3,10),i=G(s,"cols",3,60),g=G(s,"name",3,"default"),f=G(s,"show",15,!1),u=G(s,"width",3,"40rem"),I=Jt(s,["$$slots","$$events","$$legacy","value","rows","cols","name","show","width"]),E=C(""),o=C("");Te(()=>{f()?a(o,t()):a(o,n(e(E)))}),Ne(()=>{for(let j=0;j{Va(j,{width:22})},x=j=>{Fa(j,{width:22})};P(w,j=>{f()?j(b):j(x,!1)})}v(y);var p=l(y,2);p.__click=$;var S=c(p);Xs(S,{}),v(p),v(h),v(k);var L=l(k,2);oa(L);let D;v(T),K(()=>{oe(T,"width",`${u()}`),D=pa(L,D,{disabled:!0,name:g(),rows:d(),cols:i(),...I},"svelte-s24qr4"),oe(L,"width",`${u()}`),oe(L,"padding-right","2.75rem")}),Me("keypress",y,m),Me("keypress",p,$),dt(L,()=>e(o),j=>a(o,j)),r(_,T),ne()}ut(["click"]);var Yc=A(`
An API Key must be provided in the HTTP header in the following format:
You can use the following curl
request to test your new Key:
If you don't have jq
installed and the above fails:
`,1),Hc=A(`You Can generate a new secret for this API Key here.
You will only see this secret once after the generation.
+ It is however by default available via the internal /metrics
HTTP server to not expose any information.
The source code can be found in Github
`);function Xd(_){var s=Hd();r(_,s)}var Zd=Xe(' ');function Qd(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Zd();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var ec=A('
',1),tc=A('
',1),ac=A('
',1),sc=A('
',1),rc=A('
',1),ic=A('
',1),lc=A('
'),nc=A(''),oc=A(" ",1),vc=A(" ",1),dc=A(" ",1),cc=A(" ",1),uc=A(" ",1),hc=A(" ",1),pc=A(" ",1),mc=A('
');function vs(_,s){le(s,!0);let t=G(s,"collapsed",3,!0),d=C("event"),i=C(!1),g=Ke(()=>!t()&&!s.wide),f=Ke(()=>t()&&!s.wide&&!e(i)),u=Ke(()=>!t()&&s.wide),I=Ke(()=>e(f)?".5rem":".33rem");Ne(()=>{new Date().getTime()-1e3*30{a(d,"eventNew")},100),setTimeout(()=>{a(d,"event")},2500))});function E(){switch(s.event.level){case"test":return"T";case"info":return"I";case"notice":return"N";case"warning":return"W";case"critical":return"C";default:return"U"}}function o(){return ut(s.event.timestamp/1e3)}var $=mc();const m=Ke(()=>`${e(I)} solid ${Gt(s.event.level)}`);var T=c($);{var k=y=>{var w=nc(),b=c(w),x=c(b,!0);K(()=>Y(x,o())),v(b);var p=l(b,2);{var S=D=>{var j=ec(),N=ee(j),V=c(N,!0);v(N);var R=l(N,2),F=c(R,!0);v(R);var z=l(R,2),O=c(z,!0);v(z),K(()=>{Y(V,s.event.typ),Y(F,s.event.ip),Y(O,s.event.text)}),r(D,j)},L=D=>{var j=me(),N=ee(j);{var V=F=>{var z=tc(),O=ee(z),U=c(O,!0);v(O);var Q=l(O,2),M=c(Q,!0);v(Q),K(()=>{Y(U,`${s.event.typ}: ${s.event.data}`),Y(M,s.event.ip)}),r(F,z)},R=F=>{var z=me(),O=ee(z);{var U=M=>{var W=ac(),J=ee(W),Z=c(J,!0);v(J);var re=l(J,2),ve=c(re,!0);v(re),K(()=>{Y(Z,s.event.typ),Y(ve,s.event.ip||"")}),r(M,W)},Q=M=>{var W=me(),J=ee(W);{var Z=ve=>{var be=sc(),$e=ee(be),pe=c($e,!0);v($e);var je=l($e,2),fe=c(je,!0);v(je);var de=l(je,2),ye=c(de);Wa(ye,()=>s.event.text.replace("@"," @")),v(de),K(()=>{Y(pe,s.event.typ),Y(fe,s.event.ip||"")}),r(ve,be)},re=ve=>{var be=me(),$e=ee(be);{var pe=fe=>{var de=rc(),ye=ee(de),we=c(ye,!0);v(ye);var Pe=l(ye,2),Ce=c(Pe,!0);v(Pe);var xe=l(Pe,2),Re=c(xe,!0);K(()=>Y(Re,`Expires: ${ut(s.event.data)}`)),v(xe),K(()=>{Y(we,s.event.typ),Y(Ce,s.event.ip)}),r(fe,de)},je=fe=>{var de=me(),ye=ee(de);{var we=Ce=>{var xe=ic(),Re=ee(xe),H=c(Re,!0);v(Re);var Ie=l(Re,4),ge=c(Ie,!0);v(Ie),K(()=>{Y(H,s.event.typ),Y(ge,s.event.text)}),r(Ce,xe)},Pe=Ce=>{var xe=lc(),Re=c(xe,!0);v(xe),K(()=>Y(Re,s.event.typ)),r(Ce,xe)};P(ye,Ce=>{s.event.typ==="RauthyStarted"||s.event.typ==="RauthyHealthy"||s.event.typ==="RauthyUnhealthy"?Ce(we):Ce(Pe,!1)},!0)}r(fe,de)};P($e,fe=>{s.event.typ==="IpBlacklisted"?fe(pe):fe(je,!1)},!0)}r(ve,be)};P(J,ve=>{s.event.typ==="NewRauthyAdmin"||s.event.typ==="NewUserRegistered"||s.event.typ==="UserPasswordReset"||s.event.typ==="UserEmailChange"?ve(Z):ve(re,!1)},!0)}r(M,W)};P(O,M=>{s.event.typ==="SecretsMigrated"?M(U):M(Q,!1)},!0)}r(F,z)};P(N,F=>{s.event.typ==="InvalidLogins"?F(V):F(R,!1)},!0)}r(D,j)};P(p,D=>{s.event.typ==="Test"?D(S):D(L,!1)})}v(w),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=S=>{var L=pc(),D=ee(L,!0);K(()=>Y(D,o()));var j=l(D,2),N=l(j);{var V=F=>{var z=vc(),O=l(ee(z),2);{var U=M=>{var W=oc(),J=ee(W);q(),K(()=>Y(J,`${s.event.text??""} `)),r(M,W)};P(O,M=>{s.event.text&&M(U)})}var Q=l(O);K(()=>Y(Q,` ${s.event.ip??""}`)),r(F,z)},R=F=>{var z=me(),O=ee(z);{var U=M=>{var W=dc(),J=ee(W,!0),Z=l(J,2);K(()=>{Y(J,`: ${s.event.data}`),Y(Z,` ${s.event.ip??""}`)}),r(M,W)},Q=M=>{var W=me(),J=ee(W);{var Z=ve=>{var be=B();K(()=>Y(be,s.event.ip)),r(ve,be)},re=ve=>{var be=me(),$e=ee(be);{var pe=fe=>{var de=cc(),ye=l(ee(de)),we=l(ye,3);Wa(we,()=>s.event.text.replace("@"," @")),K(()=>Y(ye,` ${(s.event.ip||"")??""} `)),r(fe,de)},je=fe=>{var de=me(),ye=ee(de);{var we=Ce=>{var xe=uc(),Re=l(ee(xe)),H=l(Re,2);K(()=>Y(H,` ${ut(s.event.data)??""}`)),K(()=>Y(Re,` ${s.event.ip??""} `)),r(Ce,xe)},Pe=Ce=>{var xe=me(),Re=ee(xe);{var H=Ie=>{var ge=hc(),Ue=l(ee(ge));K(()=>Y(Ue,` ${s.event.text??""}`)),r(Ie,ge)};P(Re,Ie=>{(s.event.typ==="RauthyStarted"||s.event.typ==="RauthyHealthy"||s.event.typ==="RauthyUnhealthy")&&Ie(H)},!0)}r(Ce,xe)};P(ye,Ce=>{s.event.typ==="IpBlacklisted"?Ce(we):Ce(Pe,!1)},!0)}r(fe,de)};P($e,fe=>{s.event.typ==="NewRauthyAdmin"||s.event.typ==="NewUserRegistered"||s.event.typ==="UserPasswordReset"||s.event.typ==="UserEmailChange"?fe(pe):fe(je,!1)},!0)}r(ve,be)};P(J,ve=>{s.event.typ==="SecretsMigrated"?ve(Z):ve(re,!1)},!0)}r(M,W)};P(O,M=>{s.event.typ==="InvalidLogins"?M(U):M(Q,!1)},!0)}r(F,z)};P(N,F=>{s.event.typ==="Test"?F(V):F(R,!1)})}K(()=>Y(j,` ${s.event.typ??""} `)),r(S,L)},p=S=>{var L=B();K(()=>Y(L,E())),r(S,L)};P(b,S=>{e(g)?S(x):S(p,!1)},!0)}r(y,w)};P(T,y=>{e(u)?y(k):y(h,!1)})}v($),K(()=>{Rt($,Nt(e(d)),"svelte-a54rx3"),Et($,"showCollapsed",e(f)),oe($,"border-left",e(m))}),Me("mouseenter",$,()=>a(i,!0)),Me("mouseleave",$,()=>a(i,!1)),r(_,$),ne()}var gc=A("Legend
TEST
INFO
NOTICE
WARNING
CRITICAL
");function fc(_,s){le(s,!0);var t=gc(),d=c(t),i=l(d,2),g=c(i);const f=Ke(()=>`.33rem solid ${Gt("test")}`);var u=l(g,2);const I=Ke(()=>`.33rem solid ${Gt("info")}`);var E=l(u,2);const o=Ke(()=>`.33rem solid ${Gt("notice")}`);var $=l(E,2);const m=Ke(()=>`.33rem solid ${Gt("warning")}`);var T=l($,2);const k=Ke(()=>`.33rem solid ${Gt("critical")}`);v(i),v(t),K(()=>{Rt(d,Nt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(d,"border-left",".33rem solid var(--col-bg)"),Rt(i,Nt(s.wide?"legendWide":"legend"),"svelte-1imwz5t"),Rt(g,Nt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(g,"border-left",e(f)),Rt(u,Nt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(u,"border-left",e(I)),Rt(E,Nt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(E,"border-left",e(o)),Rt($,Nt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe($,"border-left",e(m)),Rt(T,Nt(s.wide?" legendEntryWide":"legendEntry"),"svelte-1imwz5t"),oe(T,"border-left",e(k))}),r(_,t),ne()}var yc=A(''),wc=A("Events "),bc=A(" ",1),$c=A('
'),_c=A('');function kc(_,s){le(s,!0);let t=G(s,"collapsed",3,!0),d=G(s,"wide",15),i=50,g=C(void 0),f=C(n([])),u=C(n([])),I=C(void 0),E=C(!1);Ne(async()=>{a(I,n(await o()))});async function o(){return localStorage.getItem("eventLevel")||"Info"}async function $(R){localStorage.setItem("eventLevel",R)}async function m(){await Ps()}function T(){var R;console.log("opening SSE stream"),a(g,n(new EventSource(`/auth/v1/events/stream?latest=${i}&level=${((R=e(I))==null?void 0:R.toLowerCase())||"info"}`))),e(g).onopen=()=>{console.log("SSE Events Stream opened"),a(f,n([]))},e(g).onerror=()=>{console.error("SSE Events Stream closed")},e(g).onmessage=F=>{if(F.data){let z=JSON.parse(F.data);a(f,n([z,...e(f).slice(-499)]))}}}let k=Ke(()=>!t()&&!d()||e(E)),h=Ke(()=>t()&&!d()&&!e(E)),y=Ke(()=>!t()&&d());Te(()=>{if(e(f))switch(e(I)){case"Info":a(u,n(e(f)));break;case"Notice":a(u,n(e(f).filter(R=>R.typ==="Test"||R.level==="notice"||R.level==="warning"||R.level==="critical")));break;case"Warning":a(u,n(e(f).filter(R=>R.typ==="Test"||R.level==="warning"||R.level==="critical")));break;case"Critical":a(u,n(e(f).filter(R=>R.typ==="Test"||R.level==="critical")));break}}),Te(()=>{e(I)&&($(e(I)),e(g)&&e(g).readyState!==2&&e(g).close(),T())});var w=_c(),b=c(w),x=c(b),p=c(x);{var S=R=>{var F=bc(),z=ee(F);{var O=M=>{var W=yc(),J=l(c(W),2);kt(J,{options:da,get value(){return e(I)},set value(Z){a(I,n(Z))}}),v(W),r(M,W)},U=M=>{var W=wc();r(M,W)};P(z,M=>{e(y)?M(O):M(U,!1)})}var Q=l(z,2);Se(Q,{level:3,$$events:{click:m},children:(M,W)=>{q();var J=B("TEST");r(M,J)},$$slots:{default:!0}}),r(R,F)};P(p,R=>{e(h)||R(S)})}v(x);var L=l(x,2);{var D=R=>{var F=$c(),z=c(F);kt(z,{options:da,get value(){return e(I)},set value(O){a(I,n(O))}}),v(F),r(R,F)};P(L,R=>{e(y)||R(D)})}var j=l(L,2);We(j,23,()=>e(u),R=>R.id,(R,F,z)=>{var O=Ke(()=>t()&&!e(E));vs(R,{get collapsed(){return e(O)},get event(){return e(u)[e(z)]},set event(U){e(u)[e(z)]=U},get wide(){return d()},set wide(U){d(U)}})}),v(j),v(b);var N=l(b,2);{var V=R=>{fc(R,{get wide(){return d()},set wide(F){d(F)}})};P(N,R=>{(!t()||e(E))&&R(V)})}v(w),K(()=>{Et(w,"widthDefault",e(k)),Et(w,"widthCollapsed",e(h)),Et(w,"widthWide",e(y)),Rt(j,Nt(e(y)?"dataWide":e(h)?"dataCollapsed":"data"),"svelte-1ymfjrj")}),Me("mouseenter",w,()=>a(E,!0)),Me("mouseleave",w,()=>a(E,!1)),r(_,w),ne()}var xc=A(''),Ec=A('No blacklisted IPs
'),Ic=(_,s,t)=>s(e(t).ip),Sc=A('
'),Cc=A(''),Ac=A(' ',1);function Tc(_,s){le(s,!0);let t=C(""),d=C(""),i=C(n([])),g=C(n([])),f=C(n([])),u=C(!1),I=n({ip:"",exp:""}),E=C(n({}));const o=He().shape({ip:he().required("IP is required").matches(zs,"Invalid IPv4")}),$=new Date().toISOString().split(".")[0],m=[{label:"IP",callback:(M,W)=>M.ip.includes(W)}];let T=[{label:"IP",callback:(M,W)=>M.ip.localeCompare(W.ip)}];Te(()=>{e(u)&&(a(d,""),I.exp=new Date().toISOString().split(".")[0])}),Ne(()=>{k()});async function k(){let M=await si(),W=await M.json();M.ok?a(i,n(W.ips)):a(t,n(W.message))}async function h(){if(a(d,""),!await w())return;let M=Ot(I.exp);if(!M){a(d,"Invalid Date Input: User Expires");return}let W={ip:I.ip,exp:M},J=await ri(W);if(J.ok)a(u,!1),I.ip="",await k();else{let Z=await J.json();a(d,n(Z.message))}}async function y(M){(await ii(M)).ok&&await k()}async function w(){try{return await o.validate(I,{abortEarly:!1}),a(E,n({})),!0}catch(M){return a(E,n(Ye(M))),!1}}q();var b=Ac(),x=ee(b),p=l(x),S=c(p),L=c(S);Lt(L,{get items(){return e(i)},searchOptions:m,orderOptions:T,get resItems(){return e(g)},set resItems(M){a(g,n(M))}});var D=l(L,2),j=c(D);Se(j,{level:3,$$events:{click:()=>a(u,!e(u))},children:(M,W)=>{q();var J=B("BLACKLIST IP");r(M,J)},$$slots:{default:!0}}),v(D),v(S);var N=l(S,2);{var V=M=>{var W=xc(),J=c(W);ie(J,{width:"9.5rem",autocomplete:"off",placeholder:"IP",get value(){return I.ip},set value(pe){I.ip=pe},get error(){return e(E).ip},set error(pe){e(E).ip=pe},children:(pe,je)=>{q();var fe=B("IP");r(pe,fe)},$$slots:{default:!0}});var Z=l(J,2);ie(Z,{type:"datetime-local",step:"60",width:"18rem",min:$,max:"2099-01-01T00:00",get value(){return I.exp},set value(pe){I.exp=pe},children:(pe,je)=>{q();var fe=B("EXPIRES");r(pe,fe)},$$slots:{default:!0}});var re=l(Z,2),ve=c(re);Se(ve,{level:1,$$events:{click:h},children:(pe,je)=>{q();var fe=B("SAVE");r(pe,fe)},$$slots:{default:!0}}),v(re);var be=l(re,2),$e=c(be,!0);v(be),v(W),K(()=>Y($e,e(d))),ce(3,W,()=>_e),r(M,W)};P(N,M=>{e(u)&&M(V)})}var R=l(N,2),F=c(R);{var z=M=>{var W=Ec();r(M,W)},O=M=>{var W=me(),J=ee(W);We(J,17,()=>e(f),Z=>Z.ip,(Z,re)=>{var ve=Cc(),be=c(ve),$e=c(be,!0);v(be);var pe=l(be,2),je=c(pe,!0);K(()=>Y(je,ut(e(re).exp))),v(pe);var fe=l(pe,2);Ze(fe,{text:"Delete IP",children:(de,ye)=>{var we=Sc();we.__click=[Ic,y,re];var Pe=c(we);Qt(Pe,{color:"var(--col-err)"}),v(we),Me("keypress",we,()=>y(e(re).ip)),r(de,we)},$$slots:{default:!0}}),v(ve),K(()=>Y($e,e(re).ip)),r(Z,ve)}),r(M,W)};P(F,M=>{e(i).length===0?M(z):M(O,!1)})}v(R);var U=l(R,2);{var Q=M=>{jt(M,{get items(){return e(g)},set items(W){a(g,n(W))},get resItems(){return e(f)},set resItems(W){a(f,n(W))}})};P(U,M=>{e(i).length>0&&M(Q)})}q(2),v(p),K(()=>Y(x,`${e(t)??""} `)),r(_,b),ne()}pt(["click"]);var Lc=Xe(' ');function Nc(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=Lc();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var Rc=A('
'),Dc=A('
'),jc=A(''),Pc=A('');function ds(_,s){le(s,!0);let t=G(s,"accessMatrix",15);G(s,"finalize",15)(E);const d=["Blacklist","Clients","Events","Generic","Groups","Roles","Secrets","Sessions","Scopes","UserAttributes","Users"],i=["create","read","update","delete"];let g=new Array(d.length).fill(!1),f=new Array(i.length).fill(!1);Ne(()=>{var w;u(),(w=s.apiKey)!=null&&w.access&&I()});function u(){let w=new Array(d.length);for(let b=0;bx===w.group);for(let x of w.access_rights){let p=i.findIndex(S=>S===x);t(t()[b][i[p]]=!0,!0)}}}function E(){let w=[];for(let b=0;b0&&w.push({group:d[b],access_rights:x})}return w}function o(w){g[w]=!g[w];const b=g[w];let x=t()[w];for(let p=0;pi,yt,(w,b,x)=>{var p=Rc(),S=Ke(()=>$.bind(this,x));p.__click=function(...j){var N;(N=e(S))==null||N.apply(this,j)};var L=Ke(()=>$.bind(this,x)),D=c(p,!0);v(p),K(()=>Y(D,i[x])),Me("keypress",p,function(...j){var N;(N=e(L))==null||N.apply(this,j)}),r(w,p)}),v(T);var h=l(T,2);{var y=w=>{var b=me(),x=ee(b);We(x,17,()=>d,yt,(p,S,L)=>{var D=jc(),j=c(D),N=Ke(()=>o.bind(this,L));j.__click=function(...z){var O;(O=e(N))==null||O.apply(this,z)};var V=Ke(()=>o.bind(this,L)),R=c(j,!0);v(j);var F=l(j,2);We(F,17,()=>i,yt,(z,O)=>{var U=Dc(),Q=c(U);nt(Q),v(U),Vs(Q,()=>t()[L][e(O)],M=>t(t()[L][e(O)]=M,!0)),r(z,U)}),v(D),K(()=>Y(R,d[L])),Me("keypress",j,function(...z){var O;(O=e(V))==null||O.apply(this,z)}),r(p,D)}),r(w,b)};P(h,w=>{t()&&w(y)})}return v(m),r(_,m),ne({finalizeMatrix:E})}pt(["click"]);var zc=A("
"),Oc=A('');function Mc(_,s){le(s,!0);const t=new Date().toISOString().split(".")[0];let d=G(s,"apiKeys",19,()=>[]),i=G(s,"onSave",3,()=>{}),g=C(""),f=C(!1),u=C(void 0),I=C(void 0),E=n({name:"",exp:""}),o=C(n({}));const $=He().shape({name:he().required("Name is required").min(2).max(24).matches(Os,"Format: [a-zA-Z0-9_/-]{2,24}")});Te(()=>{e(f)&&(E.exp=new Date().toISOString().split(".")[0])});async function m(){if(a(g,""),!await T())return;let N={name:E.name,access:e(u)()};if(N.access.length===0){a(g,"Grant the new API Key at least one permission");return}if(e(f)){let R=Ot(E.exp);if(!R){a(g,"Invalid Date Input: User Expires");return}N.exp=R}let V=await Qr(N);if(V.ok)i()();else{let R=await V.json();a(g,n(R.message))}}async function T(){try{await $.validate(E,{abortEarly:!1}),a(o,n({}))}catch(N){return a(o,n(Ye(N))),!1}for(let N of d())if(N.name===E.name)return e(o).name="Name already exists",!1;return!0}var k=Oc(),h=c(k);ie(h,{width:"18rem",autocomplete:"off",placeholder:"Name",get value(){return E.name},set value(N){E.name=N},get error(){return e(o).name},set error(N){e(o).name=N},children:(N,V)=>{q();var R=B("NAME");r(N,R)},$$slots:{default:!0}});var y=l(h,2),w=l(c(y));Be(w,{get selected(){return e(f)},set selected(N){a(f,n(N))}}),v(y);var b=l(y,2);{var x=N=>{var V=zc(),R=c(V);ie(R,{type:"datetime-local",step:"60",width:"18rem",min:t,max:"2099-01-01T00:00",get value(){return E.exp},set value(F){E.exp=F},children:(F,z)=>{q();var O=B("EXPIRES");r(F,O)},$$slots:{default:!0}}),v(V),ce(3,V,()=>_e),r(N,V)};P(b,N=>{e(f)&&N(x)})}var p=l(b,2);ds(p,{get accessMatrix(){return e(I)},set accessMatrix(N){a(I,n(N))},get finalize(){return e(u)},set finalize(N){a(u,n(N))}});var S=l(p,2),L=c(S);Se(L,{level:1,$$events:{click:m},children:(N,V)=>{q();var R=B("SAVE");r(N,R)},$$slots:{default:!0}}),v(S);var D=l(S,2),j=c(D,!0);v(D),v(k),K(()=>Y(j,e(g))),r(_,k),ne()}var Uc=A("
"),qc=A('Success
'),Gc=A('
'),Wc=A('');function Kc(_,s){le(s,!0);const t=new Date().toISOString().split(".")[0];let d=G(s,"apiKey",27,()=>n({})),i=C(""),g=C(!1),f=C(void 0),u=C(!!d().expires),I=C(void 0),E=C(void 0);Te(()=>{e(g)&&a(f,n(setTimeout(()=>{a(g,!1),s.onSave()},2e3)))}),Ne(()=>()=>clearTimeout(e(f)));let o=n({exp:""});Te(()=>{e(u)&&(o.exp=new Date().toISOString().split(".")[0])});async function $(){a(i,"");let V={name:d().name,access:e(E)()};if(V.access.length===0){a(i,"Grant the API Key at least one permission");return}if(e(u)){let F=Ot(o.exp);if(!F){a(i,"Invalid Date Input: User Expires");return}V.exp=F}let R=await ei(V);if(R.ok)s.onSave(),a(g,!0);else{let F=await R.json();a(i,n(F.message))}}var m=Wc(),T=c(m),k=l(c(T),2),h=c(k,!0);v(k),v(T);var y=l(T,2),w=l(c(y));Be(w,{get selected(){return e(u)},set selected(V){a(u,n(V))}}),v(y);var b=l(y,2);{var x=V=>{var R=Uc(),F=c(R);ie(F,{type:"datetime-local",step:"60",width:"18rem",min:t,max:"2099-01-01T00:00",get value(){return o.exp},set value(z){o.exp=z},children:(z,O)=>{q();var U=B("EXPIRES");r(z,U)},$$slots:{default:!0}}),v(R),ce(3,R,()=>_e),r(V,R)};P(b,V=>{e(u)&&V(x)})}var p=l(b,2);ds(p,{get apiKey(){return d()},get accessMatrix(){return e(I)},set accessMatrix(V){a(I,n(V))},get finalize(){return e(E)},set finalize(V){a(E,n(V))}});var S=l(p,2);Se(S,{level:1,width:"4rem",$$events:{click:$},children:(V,R)=>{q();var F=B("SAVE");r(V,F)},$$slots:{default:!0}});var L=l(S,2);{var D=V=>{var R=qc();r(V,R)};P(L,V=>{e(g)&&V(D)})}var j=l(L,2);{var N=V=>{var R=Gc(),F=c(R,!0);v(R),K(()=>Y(F,e(i))),r(V,R)};P(j,V=>{e(i)&&V(N)})}v(m),K(()=>Y(h,d().name)),r(_,m),ne()}var Fc=A('
'),Vc=A('Are you sure, you want to delete this ApiKey?
');function Bc(_,s){le(s,!0);let t=G(s,"apiKey",19,()=>({})),d=C("");async function i(){a(d,"");let E=await ti(t().name);if(E.ok)s.onSave();else{let o=await E.json();a(d,n(o.message))}}var g=Vc(),f=l(c(g),2);Se(f,{level:1,$$events:{click:i},children:(E,o)=>{q();var $=B("DELETE");r(E,$)},$$slots:{default:!0}});var u=l(f,2);{var I=E=>{var o=Fc(),$=c(o,!0);v(o),K(()=>Y($,e(d))),r(E,o)};P(u,E=>{e(d)&&E(I)})}v(g),r(_,g),ne()}var Jc=A('');function cs(_,s){le(s,!0);let t=G(s,"value",3,""),d=G(s,"rows",3,10),i=G(s,"cols",3,60),g=G(s,"name",3,"default"),f=G(s,"show",15,!1),u=G(s,"width",3,"40rem"),I=Jt(s,["$$slots","$$events","$$legacy","value","rows","cols","name","show","width"]),E=C(""),o=C("");Te(()=>{f()?a(o,t()):a(o,n(e(E)))}),Ne(()=>{for(let j=0;j{Va(j,{width:22})},x=j=>{Fa(j,{width:22})};P(w,j=>{f()?j(b):j(x,!1)})}v(y);var p=l(y,2);p.__click=$;var S=c(p);Xs(S,{}),v(p),v(h),v(k);var L=l(k,2);pa(L);let D;v(T),K(()=>{oe(T,"width",`${u()}`),D=ha(L,D,{disabled:!0,name:g(),rows:d(),cols:i(),...I},"svelte-s24qr4"),oe(L,"width",`${u()}`),oe(L,"padding-right","2.75rem")}),Me("keypress",y,m),Me("keypress",p,$),dt(L,()=>e(o),j=>a(o,j)),r(_,T),ne()}pt(["click"]);var Yc=A(`
An API Key must be provided in the HTTP header in the following format:
You can use the following curl
request to test your new Key:
If you don't have jq
installed and the above fails:
`,1),Hc=A(`You Can generate a new secret for this API Key here.
You will only see this secret once after the generation.
When a new one has been generated, the old secret will be overridden permanently.
- This operation cannot be reverted!
`);function Xc(_,s){le(s,!0);let t=C(""),d=C(""),i=C(""),g=C("");async function f(){let k=await ai(s.apiKey.name);if(k.ok)a(d,n(await k.text())),a(i,`curl -s -H 'Authorization: API-Key ${e(d)}' ${window.location.origin}/auth/v1/api_keys/${s.apiKey.name}/test`),a(g,`${e(i)} | jq`);else{let h=await k.json();a(t,n(h.message))}}var u=Hc(),I=l(c(u),4),E=Ke(()=>e(d)?3:1);Se(I,{get level(){return e(E)},width:"130px",$$events:{click:f},children:(k,h)=>{q();var y=B("GENERATE NEW");r(k,y)},$$slots:{default:!0}});var o=l(I,2);{var $=k=>{var h=Yc(),y=ee(h),w=c(y);Wt(w,{autocomplete:"off",disabled:!0,showCopy:!0,width:"inherit",maxWidth:"800px",get value(){return e(d)},set value(p){a(d,n(p))},children:(p,S)=>{q();var L=B("API KEY");r(p,L)},$$slots:{default:!0}}),v(y);var b=l(y,8);cs(b,{name:"id",rows:3,get value(){return e(g)}});var x=l(b,4);cs(x,{name:"id",rows:3,get value(){return e(i)}}),ce(3,y,()=>_e),r(k,h)};P(o,k=>{e(d)&&k($)})}var m=l(o,2),T=c(m,!0);v(m),v(u),K(()=>Y(T,e(t))),r(_,u),ne()}var Zc=A('
'),Qc=A(''),eu=A("
"),tu=A("
"),au=A("
"),su=A("
");function ru(_,s){le(s,!0);let t=G(s,"apiKey",31,()=>n({})),d=G(s,"onSave",11,()=>{}),i=C(void 0);const g=["Config","Secret","Delete"];let f=C(n(g[0]));const u=200,I=u/2;function E(){a(i,!1),d()()}ot(_,{get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=Qc(),m=c($),T=c(m,!0);v(m);var k=l(m,2);{var h=y=>{Ze(y,{text:"Expiry",children:(w,b)=>{var x=Zc(),p=c(x,!0);K(()=>Y(p,ht(t().expires))),v(x),r(w,x)},$$slots:{default:!0}})};P(k,y=>{t().expires&&y(h)})}v($),K(()=>Y(T,t().name)),r(o,$)},body:o=>{var $=su(),m=c($);Dt(m,{labels:g,get selected(){return e(f)},set selected(y){a(f,n(y))}});var T=l(m,2);{var k=y=>{var w=eu(),b=c(w);Kc(b,{get onSave(){return d()},get apiKey(){return t()},set apiKey(x){t(x)}}),v(w),ce(1,w,()=>_e,()=>({delay:I,duration:u})),ce(2,w,()=>_e,()=>({duration:u})),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=S=>{var L=tu(),D=c(L);Xc(D,{get apiKey(){return t()}}),v(L),ce(1,L,()=>_e,()=>({delay:I,duration:u})),ce(2,L,()=>_e,()=>({duration:u})),r(S,L)},p=S=>{var L=me(),D=ee(L);{var j=N=>{var V=au(),R=c(V);Bc(R,{get apiKey(){return t()},onSave:E}),v(V),ce(1,V,()=>_e,()=>({delay:I,duration:u})),ce(2,V,()=>_e,()=>({duration:u})),r(N,V)};P(D,N=>{e(f)==="Delete"&&N(j)},!0)}r(S,L)};P(b,S=>{e(f)==="Secret"?S(x):S(p,!1)},!0)}r(y,w)};P(T,y=>{e(f)==="Config"?y(k):y(h,!1)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var iu=A("
"),lu=A('No Api Keys
'),nu=A(' ',1);function ou(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(!1);const u=[{label:"Name",callback:(N,V)=>N.name.includes(V)}];let I=[{label:"Name",callback:(N,V)=>N.name.localeCompare(V.name)}];Ne(()=>{E()});async function E(){let N=await Zr(),V=await N.json();N.ok?(a(d,n(V.keys)),a(f,!1)):a(t,n(V.message))}q();var o=nu(),$=ee(o),m=l($),T=c(m),k=c(T);Lt(k,{get items(){return e(d)},searchOptions:u,orderOptions:I,get resItems(){return e(i)},set resItems(N){a(i,n(N))}});var h=l(k,2),y=c(h);Se(y,{level:3,$$events:{click:()=>a(f,!e(f))},children:(N,V)=>{q();var R=B("NEW KEY");r(N,R)},$$slots:{default:!0}}),v(h),v(T);var w=l(T,2);{var b=N=>{var V=iu(),R=c(V);Mc(R,{onSave:E,get apiKeys(){return e(d)}}),v(V),ce(3,V,()=>_e),r(N,V)};P(w,N=>{e(f)&&N(b)})}var x=l(w,2),p=c(x);{var S=N=>{var V=lu();r(N,V)},L=N=>{var V=me(),R=ee(V);We(R,19,()=>e(g),F=>F.name,(F,z,O)=>{ru(F,{onSave:E,get apiKey(){return e(g)[e(O)]},set apiKey(U){e(g)[e(O)]=U}})}),r(N,V)};P(p,N=>{e(d).length===0?N(S):N(L,!1)})}v(x);var D=l(x,2);{var j=N=>{jt(N,{get items(){return e(i)},set items(V){a(i,n(V))},get resItems(){return e(g)},set resItems(V){a(g,n(V))}})};P(D,N=>{e(d).length>0&&N(j)})}q(2),v(m),K(()=>Y($,`${e(t)??""} `)),r(_,o),ne()}var vu=A('No events found
'),du=A('');function cu(_,s){le(s,!0);let t=C(n([])),d=C(n([])),i=C(n(Da(new Date(new Date().getTime()-3600*1e3)))),g=C(void 0),f=C("Info"),u=C(!1),I=C(n(qa[0])),E=[{label:"IP",callback:(R,F)=>{var z;return(z=R.ip)==null?void 0:z.includes(F)}},{label:"Content",callback:(R,F)=>{var z,O;return(O=(z=R.text)==null?void 0:z.toLowerCase())==null?void 0:O.includes(F.toLowerCase())}}],o=[{label:"Timestamp",callback:(R,F)=>R.timestamp-F.timestamp},{label:"Level",callback:(R,F)=>R.level.localeCompare(F.level)},{label:"Type",callback:(R,F)=>R.typ.localeCompare(F.typ)}];ws(()=>{$()});async function $(){let R={from:Ot(e(i)),level:e(f).toLowerCase()};e(g)&&(R.until=Ot(e(g))),e(u)&&(R.typ=e(I));let F=await Er(R),z=await F.json();F.ok?a(t,n(z)):z.message}var m=du(),T=c(m),k=c(T);Lt(k,{get items(){return e(t)},searchOptions:E,orderOptions:o,firstDirReverse:!0,get resItems(){return e(d)},set resItems(R){a(d,n(R))}}),v(T);var h=l(T,2),y=c(h);ie(y,{type:"datetime-local",step:"60",width:"17.5rem",max:"2099-01-01T00:00",get value(){return e(i)},set value(R){a(i,n(R))},children:(R,F)=>{q();var z=B("FROM");r(R,z)},$$slots:{default:!0}});var w=l(y,2);ie(w,{type:"datetime-local",step:"60",width:"17rem",max:"2099-01-01T00:00",get value(){return e(g)},set value(R){a(g,n(R))},children:(R,F)=>{q();var z=B("UNTIL");r(R,z)},$$slots:{default:!0}}),v(h);var b=l(h,2),x=c(b);oe(x,"margin","0 5.5rem 0 .25rem");var p=c(x);kt(p,{options:ca,get value(){return e(f)},set value(R){a(f,n(R))}}),v(x);var S=l(x,2);Be(S,{get selected(){return e(u)},set selected(R){a(u,n(R))}});var L=l(S,2);{var D=R=>{kt(R,{options:qa,get value(){return e(I)},set value(F){a(I,n(F))}})};P(L,R=>{e(u)&&R(D)})}v(b);var j=l(b,2);{var N=R=>{var F=vu();r(R,F)},V=R=>{var F=me(),z=ee(F);We(z,19,()=>e(d),O=>O.id,(O,U,Q)=>{vs(O,{collapsed:!1,wide:!0,get event(){return e(d)[e(Q)]},set event(M){e(d)[e(Q)]=M}})}),r(R,F)};P(j,R=>{e(d).length===0?R(N):R(V,!1)})}v(m),r(_,m),ne()}var uu=Xe(' ');function hu(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=uu();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var pu=Xe(` `);function Xc(_,s){le(s,!0);let t=C(""),d=C(""),i=C(""),g=C("");async function f(){let k=await ai(s.apiKey.name);if(k.ok)a(d,n(await k.text())),a(i,`curl -s -H 'Authorization: API-Key ${e(d)}' ${window.location.origin}/auth/v1/api_keys/${s.apiKey.name}/test`),a(g,`${e(i)} | jq`);else{let h=await k.json();a(t,n(h.message))}}var u=Hc(),I=l(c(u),4),E=Ke(()=>e(d)?3:1);Se(I,{get level(){return e(E)},width:"130px",$$events:{click:f},children:(k,h)=>{q();var y=B("GENERATE NEW");r(k,y)},$$slots:{default:!0}});var o=l(I,2);{var $=k=>{var h=Yc(),y=ee(h),w=c(y);Wt(w,{autocomplete:"off",disabled:!0,showCopy:!0,width:"inherit",maxWidth:"800px",get value(){return e(d)},set value(p){a(d,n(p))},children:(p,S)=>{q();var L=B("API KEY");r(p,L)},$$slots:{default:!0}}),v(y);var b=l(y,8);cs(b,{name:"id",rows:3,get value(){return e(g)}});var x=l(b,4);cs(x,{name:"id",rows:3,get value(){return e(i)}}),ce(3,y,()=>_e),r(k,h)};P(o,k=>{e(d)&&k($)})}var m=l(o,2),T=c(m,!0);v(m),v(u),K(()=>Y(T,e(t))),r(_,u),ne()}var Zc=A('
'),Qc=A(''),eu=A("
"),tu=A("
"),au=A("
"),su=A("
");function ru(_,s){le(s,!0);let t=G(s,"apiKey",31,()=>n({})),d=G(s,"onSave",11,()=>{}),i=C(void 0);const g=["Config","Secret","Delete"];let f=C(n(g[0]));const u=200,I=u/2;function E(){a(i,!1),d()()}ot(_,{get show(){return e(i)},set show(o){a(i,n(o))},header:o=>{var $=Qc(),m=c($),T=c(m,!0);v(m);var k=l(m,2);{var h=y=>{Ze(y,{text:"Expiry",children:(w,b)=>{var x=Zc(),p=c(x,!0);K(()=>Y(p,ut(t().expires))),v(x),r(w,x)},$$slots:{default:!0}})};P(k,y=>{t().expires&&y(h)})}v($),K(()=>Y(T,t().name)),r(o,$)},body:o=>{var $=su(),m=c($);Dt(m,{labels:g,get selected(){return e(f)},set selected(y){a(f,n(y))}});var T=l(m,2);{var k=y=>{var w=eu(),b=c(w);Kc(b,{get onSave(){return d()},get apiKey(){return t()},set apiKey(x){t(x)}}),v(w),ce(1,w,()=>_e,()=>({delay:I,duration:u})),ce(2,w,()=>_e,()=>({duration:u})),r(y,w)},h=y=>{var w=me(),b=ee(w);{var x=S=>{var L=tu(),D=c(L);Xc(D,{get apiKey(){return t()}}),v(L),ce(1,L,()=>_e,()=>({delay:I,duration:u})),ce(2,L,()=>_e,()=>({duration:u})),r(S,L)},p=S=>{var L=me(),D=ee(L);{var j=N=>{var V=au(),R=c(V);Bc(R,{get apiKey(){return t()},onSave:E}),v(V),ce(1,V,()=>_e,()=>({delay:I,duration:u})),ce(2,V,()=>_e,()=>({duration:u})),r(N,V)};P(D,N=>{e(f)==="Delete"&&N(j)},!0)}r(S,L)};P(b,S=>{e(f)==="Secret"?S(x):S(p,!1)},!0)}r(y,w)};P(T,y=>{e(f)==="Config"?y(k):y(h,!1)})}v($),r(o,$)},$$slots:{header:!0,body:!0}}),ne()}var iu=A("
"),lu=A('No Api Keys
'),nu=A(' ',1);function ou(_,s){le(s,!0);let t=C(""),d=C(n([])),i=C(n([])),g=C(n([])),f=C(!1);const u=[{label:"Name",callback:(N,V)=>N.name.includes(V)}];let I=[{label:"Name",callback:(N,V)=>N.name.localeCompare(V.name)}];Ne(()=>{E()});async function E(){let N=await Zr(),V=await N.json();N.ok?(a(d,n(V.keys)),a(f,!1)):a(t,n(V.message))}q();var o=nu(),$=ee(o),m=l($),T=c(m),k=c(T);Lt(k,{get items(){return e(d)},searchOptions:u,orderOptions:I,get resItems(){return e(i)},set resItems(N){a(i,n(N))}});var h=l(k,2),y=c(h);Se(y,{level:3,$$events:{click:()=>a(f,!e(f))},children:(N,V)=>{q();var R=B("NEW KEY");r(N,R)},$$slots:{default:!0}}),v(h),v(T);var w=l(T,2);{var b=N=>{var V=iu(),R=c(V);Mc(R,{onSave:E,get apiKeys(){return e(d)}}),v(V),ce(3,V,()=>_e),r(N,V)};P(w,N=>{e(f)&&N(b)})}var x=l(w,2),p=c(x);{var S=N=>{var V=lu();r(N,V)},L=N=>{var V=me(),R=ee(V);We(R,19,()=>e(g),F=>F.name,(F,z,O)=>{ru(F,{onSave:E,get apiKey(){return e(g)[e(O)]},set apiKey(U){e(g)[e(O)]=U}})}),r(N,V)};P(p,N=>{e(d).length===0?N(S):N(L,!1)})}v(x);var D=l(x,2);{var j=N=>{jt(N,{get items(){return e(i)},set items(V){a(i,n(V))},get resItems(){return e(g)},set resItems(V){a(g,n(V))}})};P(D,N=>{e(d).length>0&&N(j)})}q(2),v(m),K(()=>Y($,`${e(t)??""} `)),r(_,o),ne()}var vu=A('No events found
'),du=A('');function cu(_,s){le(s,!0);let t=C(n([])),d=C(n([])),i=C(n(Da(new Date(new Date().getTime()-3600*1e3)))),g=C(void 0),f=C("Info"),u=C(!1),I=C(n(qa[0])),E=[{label:"IP",callback:(R,F)=>{var z;return(z=R.ip)==null?void 0:z.includes(F)}},{label:"Content",callback:(R,F)=>{var z,O;return(O=(z=R.text)==null?void 0:z.toLowerCase())==null?void 0:O.includes(F.toLowerCase())}}],o=[{label:"Timestamp",callback:(R,F)=>R.timestamp-F.timestamp},{label:"Level",callback:(R,F)=>R.level.localeCompare(F.level)},{label:"Type",callback:(R,F)=>R.typ.localeCompare(F.typ)}];ws(()=>{$()});async function $(){let R={from:Ot(e(i)),level:e(f).toLowerCase()};e(g)&&(R.until=Ot(e(g))),e(u)&&(R.typ=e(I));let F=await Er(R),z=await F.json();F.ok?a(t,n(z)):z.message}var m=du(),T=c(m),k=c(T);Lt(k,{get items(){return e(t)},searchOptions:E,orderOptions:o,firstDirReverse:!0,get resItems(){return e(d)},set resItems(R){a(d,n(R))}}),v(T);var h=l(T,2),y=c(h);ie(y,{type:"datetime-local",step:"60",width:"17.5rem",max:"2099-01-01T00:00",get value(){return e(i)},set value(R){a(i,n(R))},children:(R,F)=>{q();var z=B("FROM");r(R,z)},$$slots:{default:!0}});var w=l(y,2);ie(w,{type:"datetime-local",step:"60",width:"17rem",max:"2099-01-01T00:00",get value(){return e(g)},set value(R){a(g,n(R))},children:(R,F)=>{q();var z=B("UNTIL");r(R,z)},$$slots:{default:!0}}),v(h);var b=l(h,2),x=c(b);oe(x,"margin","0 5.5rem 0 .25rem");var p=c(x);kt(p,{options:da,get value(){return e(f)},set value(R){a(f,n(R))}}),v(x);var S=l(x,2);Be(S,{get selected(){return e(u)},set selected(R){a(u,n(R))}});var L=l(S,2);{var D=R=>{kt(R,{options:qa,get value(){return e(I)},set value(F){a(I,n(F))}})};P(L,R=>{e(u)&&R(D)})}v(b);var j=l(b,2);{var N=R=>{var F=vu();r(R,F)},V=R=>{var F=me(),z=ee(F);We(z,19,()=>e(d),O=>O.id,(O,U,Q)=>{vs(O,{collapsed:!1,wide:!0,get event(){return e(d)[e(Q)]},set event(M){e(d)[e(Q)]=M}})}),r(R,F)};P(j,R=>{e(d).length===0?R(N):R(V,!1)})}v(m),r(_,m),ne()}var uu=Xe(' ');function hu(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=uu();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var pu=Xe(` `);function mu(_,s){let t=G(s,"opacity",3,.9),d=G(s,"width",3,24);var i=pu();ue(i,"stroke-width",2),K(()=>{ue(i,"width",d()),ue(i,"opacity",t())}),r(_,i)}var gu=A(`ID token claim mappings Values from the ID token after a successful upstream login can be mapped automatically.
The path
needs to be given in a regex like syntax. It can resolve to
- single JSON values or resolve to a value in a JSON object or array.
$.
marks the start of the JSON object
*
can be used as a wildcard in your path
$.roles
would target {"roles": "value"}
$.roles.*
can target a value inside an object or array like {"roles": ["value", "notMyValue"]}
`);function us(_){var s=gu();r(_,s)}var fu=A('
'),yu=A('');function wa(_,s){le(s,!0);let t=G(s,"rows",3,10),d=G(s,"cols",3,10),i=G(s,"name",19,Mt),g=G(s,"disabled",3,!1),f=G(s,"error",3,""),u=G(s,"value",15),I=G(s,"width",3,"32rem"),E=G(s,"fixed",3,!0),o=Jt(s,["$$slots","$$events","$$legacy","rows","cols","name","disabled","error","value","width","fixed","children"]);const $=na();async function m(j){await Bt(),u(j.target.value),$("input",u())}function T(){$("focus",!0)}function k(){$("blur",!0)}var h=yu(),y=c(h),w=c(y),b=c(w),x=c(b);At(x,()=>s.children??Ct),v(b),v(w),v(y);var p=l(y,2);oa(p);let S;var L=l(p,2);{var D=j=>{var N=fu(),V=c(N,!0);v(N),K(()=>{oe(N,"width",I()),Y(V,f())}),ce(7,N,()=>_e,()=>({duration:250})),r(j,N)};P(L,j=>{f()&&j(D)})}v(h),K(()=>{oe(h,"width",`calc(${I()??""} + 12px)`),oe(w,"background",g()?"var(--col-gmid)":"var(--col-bg)"),ue(b,"for",i()),S=pa(p,S,{name:i(),disabled:g(),value:u(),rows:t(),cols:d(),...o,oninput:m,onfocus:T,onblur:k},"svelte-w61ts0"),oe(p,"resize",E()?"none":""),oe(p,"width",I())}),r(_,h),ne()}var wu=A(''),bu=A('
',1),$u=A('
',1),_u=A(" ",1),ku=A(" ",1),xu=A('
',1),Eu=A(`
The scope the client should use when redirecting to the login. Provide the values separated by space.
Client name for the Rauthy login form
Client ID given by the auth provider
Client Secret given by the auth provider. At least a client secret or PKCE is required.
The authentication method to use on the /token
endpoint. Most providers should work with basic
, some only with post
.
+ single JSON values or resolve to a value in a JSON object or array.
$.
marks the start of the JSON object
*
can be used as a wildcard in your path
$.roles
would target {"roles": "value"}
$.roles.*
can target a value inside an object or array like {"roles": ["value", "notMyValue"]}
`);function us(_){var s=gu();r(_,s)}var fu=A('
'),yu=A('');function wa(_,s){le(s,!0);let t=G(s,"rows",3,10),d=G(s,"cols",3,10),i=G(s,"name",19,Mt),g=G(s,"disabled",3,!1),f=G(s,"error",3,""),u=G(s,"value",15),I=G(s,"width",3,"32rem"),E=G(s,"fixed",3,!0),o=Jt(s,["$$slots","$$events","$$legacy","rows","cols","name","disabled","error","value","width","fixed","children"]);const $=na();async function m(j){await Bt(),u(j.target.value),$("input",u())}function T(){$("focus",!0)}function k(){$("blur",!0)}var h=yu(),y=c(h),w=c(y),b=c(w),x=c(b);At(x,()=>s.children??Ct),v(b),v(w),v(y);var p=l(y,2);pa(p);let S;var L=l(p,2);{var D=j=>{var N=fu(),V=c(N,!0);v(N),K(()=>{oe(N,"width",I()),Y(V,f())}),ce(7,N,()=>_e,()=>({duration:250})),r(j,N)};P(L,j=>{f()&&j(D)})}v(h),K(()=>{oe(h,"width",`calc(${I()??""} + 12px)`),oe(w,"background",g()?"var(--col-gmid)":"var(--col-bg)"),ue(b,"for",i()),S=ha(p,S,{name:i(),disabled:g(),value:u(),rows:t(),cols:d(),...o,oninput:m,onfocus:T,onblur:k},"svelte-w61ts0"),oe(p,"resize",E()?"none":""),oe(p,"width",I())}),r(_,h),ne()}var wu=A(''),bu=A('
',1),$u=A('
',1),_u=A(" ",1),ku=A(" ",1),xu=A('
',1),Eu=A(`
The scope the client should use when redirecting to the login. Provide the values separated by space.
Client name for the Rauthy login form
Client ID given by the auth provider
Client Secret given by the auth provider. At least a client secret or PKCE is required.
The authentication method to use on the /token
endpoint. Most providers should work with basic
, some only with post
.
In rare situations, you need both, while it can lead to errors with others.
You can map a user to be a rauthy admin depending on an upstream ID claim.
If your provider issues a claim indicating that the user has used at least 2FA during
- login, you can specify the mfa claim path.
`,1),Iu=A('Success
'),Su=A('
'),Cu=A('');function Au(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1);const d="25rem";let i=C(!1),g=C(!1),f=C(""),u=C(!1),I=C(!1),E=C(void 0),o=C(!1),$=C(n({issuer:null,metadata_url:null,danger_allow_insecure:!1,root_pem:null})),m=C(n({enabled:!0,typ:"oidc",issuer:"",danger_allow_insecure:!1,authorization_endpoint:"",token_endpoint:"",token_auth_method_basic:!1,userinfo_endpoint:"",use_pkce:!0,client_secret_basic:!0,client_secret_post:!1,name:"",client_id:"",client_secret:"",scope:"",root_pem:null,admin_claim_path:null,admin_claim_value:null,mfa_claim_path:null,mfa_claim_value:null})),T=["OIDC","Auto","Custom","Github","Google"],k=C(n(T[0])),h=C(n({}));const y=He().shape({issuer:he().trim().matches(tt,"Can only contain URI safe characters, length max: 128").required("Required"),authorization_endpoint:he().url().required("Required"),token_endpoint:he().url().required("Required"),userinfo_endpoint:he().url().required("Required"),name:he().trim().matches(Xt,"Can only contain: 'a-zA-Z0-9\xC0-\xFF- ', length max: 128").required("Required"),client_id:he().trim().matches(tt,"Can only contain URI safe characters, length max: 128").required("Required"),client_secret:he().trim().max(256,"Max 256 characters"),scope:he().trim().matches(Ga,"Can only contain: 'a-zA-Z0-9-_/ ', length max: 128").required("Required"),root_pem:he().trim().nullable().matches(ua,"Invalid PEM certificate"),admin_claim_path:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),admin_claim_value:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),mfa_claim_path:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),mfa_claim_value:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128")}),w=He().shape({issuer:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),metadata_url:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),root_pem:he().trim().nullable().matches(ua,"Valid PEM certificate")});Ne(()=>()=>{a(i,!1),clearTimeout(e(E))});async function b(){if(!await S())return;if(!e(m).use_pkce&&!e(m).client_secret){a(f,"Must at least be a confidential client or use PKCE");return}a(f,""),a(g,!0),e(m).root_pem&&(e(m).danger_allow_insecure=!1,e(m).root_pem=e(m).root_pem.trim()),e(D)?e(m).typ="custom":e(m).typ=e(k).toLowerCase(),e(m).scope=e(m).scope.trim();let R=await Dr(e(m));if(R.ok)a(I,!0);else{let F=await R.json();F.message.includes("InvalidCertificate")?a(f,"Insecure connection not allowed"):a(f,n(F.message))}a(g,!1)}async function x(){if(!await L()){a(f,"Invalid input");return}a(f,""),a(g,!0);let R=await Mr(e($));if(R.ok){const F=await R.json();e(m).issuer=F.issuer,e(m).authorization_endpoint=F.authorization_endpoint,e(m).danger_allow_insecure=F.danger_allow_insecure,e(m).token_endpoint=F.token_endpoint,e(m).userinfo_endpoint=F.userinfo_endpoint,e(m).token_auth_method_basic=F.token_auth_method_basic,e(m).use_pkce=F.use_pkce,e(m).client_secret_basic=F.client_secret_basic,e(m).client_secret_post=!F.client_secret_basic&&F.client_secret_post,e(m).scope=F.scope,e(m).root_pem=F.root_pem,a(u,!0)}else{let F=await R.json();F.message.includes("InvalidCertificate")?a(f,"Insecure connection not allowed"):a(f,n(F.message))}a(g,!1)}function p(){a($,n({issuer:null,metadata_url:null,danger_allow_insecure:!1,root_pem:null})),a(m,n({enabled:!0,issuer:"",danger_allow_insecure:!1,authorization_endpoint:"",token_endpoint:"",userinfo_endpoint:"",use_pkce:!0,client_secret_basic:!0,client_secret_post:!1,scope:"",root_pem:null,admin_claim_path:null,admin_claim_value:null,mfa_claim_path:null,mfa_claim_value:null})),a(u,!1),a(o,!1)}async function S(){a(h,n({}));try{return await y.validate(e(m),{abortEarly:!1}),e(m).client_secret&&!(e(m).client_secret_basic||e(m).client_secret_post)?(a(f,"You have given a client secret, but no client auth method is active"),!1):(a(f,"Invalid input"),!0)}catch(R){return a(h,n(Ye(R))),R="Invalid input",!1}}async function L(){a(h,n({}));try{return await w.validate(e($),{abortEarly:!1}),!e($).issuer&&!e($).metadata_url?(e(h).issuer="Required",e(h).metadata_url=e(h).issuer,!1):!0}catch(R){return a(h,n(Ye(R))),!1}}let D=Ke(()=>e(k)===T[1]),j=Ke(()=>e(k)===T[2]),N=Ke(()=>e(k)===T[0]),V=Ke(()=>!e(D)&&!e(j)&&!e(N));Te(()=>{if(e(k))switch(a(u,!1),a(h,n({})),a($,n({issuer:null,metadata_url:null,danger_allow_insecure:!1,root_pem:null})),e(k)){case"Github":a(m,n({enabled:!0,issuer:"github.com",danger_allow_insecure:!1,authorization_endpoint:"https://github.com/login/oauth/authorize",token_endpoint:"https://github.com/login/oauth/access_token",token_auth_method_basic:!1,userinfo_endpoint:"https://api.github.com/user",use_pkce:!1,name:"Github",client_id:"",client_secret:"",scope:"user:email",root_pem:null,admin_claim_path:null,admin_claim_value:null,mfa_claim_path:"$.two_factor_authentication",mfa_claim_value:"true"}));break;case"Google":a($,n({issuer:"accounts.google.com",metadata_url:null,danger_allow_insecure:!1,root_pem:null})),x();break;default:a(m,n({enabled:!0,typ:"oidc",issuer:"",danger_allow_insecure:!1,authorization_endpoint:"",token_endpoint:"",token_auth_method_basic:!1,userinfo_endpoint:"",use_pkce:!0,name:"",client_id:"",client_secret:"",scope:"",root_pem:null,admin_claim_path:null,admin_claim_value:null,mfa_claim_path:null,mfa_claim_value:null}))}}),Te(()=>{e(I)&&a(E,n(setTimeout(()=>{s.onSave(),a(I,!1),a(i,!1),p()},1500)))}),ot(_,{get idx(){return t()},set idx(R){t(R)},get show(){return e(i)},set show(R){a(i,n(R))},header:R=>{var F=wu();r(R,F)},body:R=>{var F=Cu(),z=l(c(F),2),O=c(z);kt(O,{options:T,get value(){return e(k)},set value($e){a(k,n($e))}}),v(z);var U=l(z,2);{var Q=$e=>{var pe=$u(),je=l(ee(pe),2),fe=c(je);Be(fe,{get selected(){return e(o)},set selected(Pe){a(o,n(Pe))}}),v(je);var de=l(je,2);{var ye=Pe=>{wa(Pe,{rows:17,name:"rootPem",placeholder:`-----BEGIN CERTIFICATE-----
+ login, you can specify the mfa claim path.
`,1),Iu=A('Success
'),Su=A('
'),Cu=A('');function Au(_,s){le(s,!0);let t=G(s,"idx",31,()=>-1);const d="25rem";let i=C(!1),g=C(!1),f=C(""),u=C(!1),I=C(!1),E=C(void 0),o=C(!1),$=C(n({issuer:null,metadata_url:null,danger_allow_insecure:!1,root_pem:null})),m=C(n({enabled:!0,typ:"oidc",issuer:"",danger_allow_insecure:!1,authorization_endpoint:"",token_endpoint:"",token_auth_method_basic:!1,userinfo_endpoint:"",use_pkce:!0,client_secret_basic:!0,client_secret_post:!1,name:"",client_id:"",client_secret:"",scope:"",root_pem:null,admin_claim_path:null,admin_claim_value:null,mfa_claim_path:null,mfa_claim_value:null})),T=["OIDC","Auto","Custom","Github","Google"],k=C(n(T[0])),h=C(n({}));const y=He().shape({issuer:he().trim().matches(tt,"Can only contain URI safe characters, length max: 128").required("Required"),authorization_endpoint:he().url().required("Required"),token_endpoint:he().url().required("Required"),userinfo_endpoint:he().url().required("Required"),name:he().trim().matches(Xt,"Can only contain: 'a-zA-Z0-9\xC0-\xFF- ', length max: 128").required("Required"),client_id:he().trim().matches(tt,"Can only contain URI safe characters, length max: 128").required("Required"),client_secret:he().trim().max(256,"Max 256 characters"),scope:he().trim().matches(Ga,"Can only contain: 'a-zA-Z0-9-_/ ', length max: 128").required("Required"),root_pem:he().trim().nullable().matches(ca,"Invalid PEM certificate"),admin_claim_path:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),admin_claim_value:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),mfa_claim_path:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),mfa_claim_value:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128")}),w=He().shape({issuer:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),metadata_url:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),root_pem:he().trim().nullable().matches(ca,"Valid PEM certificate")});Ne(()=>()=>{a(i,!1),clearTimeout(e(E))});async function b(){if(!await S())return;if(!e(m).use_pkce&&!e(m).client_secret){a(f,"Must at least be a confidential client or use PKCE");return}a(f,""),a(g,!0),e(m).root_pem&&(e(m).danger_allow_insecure=!1,e(m).root_pem=e(m).root_pem.trim()),e(D)?e(m).typ="custom":e(m).typ=e(k).toLowerCase(),e(m).scope=e(m).scope.trim();let R=await Dr(e(m));if(R.ok)a(I,!0);else{let F=await R.json();F.message.includes("InvalidCertificate")?a(f,"Insecure connection not allowed"):a(f,n(F.message))}a(g,!1)}async function x(){if(!await L()){a(f,"Invalid input");return}a(f,""),a(g,!0);let R=await Mr(e($));if(R.ok){const F=await R.json();e(m).issuer=F.issuer,e(m).authorization_endpoint=F.authorization_endpoint,e(m).danger_allow_insecure=F.danger_allow_insecure,e(m).token_endpoint=F.token_endpoint,e(m).userinfo_endpoint=F.userinfo_endpoint,e(m).token_auth_method_basic=F.token_auth_method_basic,e(m).use_pkce=F.use_pkce,e(m).client_secret_basic=F.client_secret_basic,e(m).client_secret_post=!F.client_secret_basic&&F.client_secret_post,e(m).scope=F.scope,e(m).root_pem=F.root_pem,a(u,!0)}else{let F=await R.json();F.message.includes("InvalidCertificate")?a(f,"Insecure connection not allowed"):a(f,n(F.message))}a(g,!1)}function p(){a($,n({issuer:null,metadata_url:null,danger_allow_insecure:!1,root_pem:null})),a(m,n({enabled:!0,issuer:"",danger_allow_insecure:!1,authorization_endpoint:"",token_endpoint:"",userinfo_endpoint:"",use_pkce:!0,client_secret_basic:!0,client_secret_post:!1,scope:"",root_pem:null,admin_claim_path:null,admin_claim_value:null,mfa_claim_path:null,mfa_claim_value:null})),a(u,!1),a(o,!1)}async function S(){a(h,n({}));try{return await y.validate(e(m),{abortEarly:!1}),e(m).client_secret&&!(e(m).client_secret_basic||e(m).client_secret_post)?(a(f,"You have given a client secret, but no client auth method is active"),!1):(a(f,"Invalid input"),!0)}catch(R){return a(h,n(Ye(R))),R="Invalid input",!1}}async function L(){a(h,n({}));try{return await w.validate(e($),{abortEarly:!1}),!e($).issuer&&!e($).metadata_url?(e(h).issuer="Required",e(h).metadata_url=e(h).issuer,!1):!0}catch(R){return a(h,n(Ye(R))),!1}}let D=Ke(()=>e(k)===T[1]),j=Ke(()=>e(k)===T[2]),N=Ke(()=>e(k)===T[0]),V=Ke(()=>!e(D)&&!e(j)&&!e(N));Te(()=>{if(e(k))switch(a(u,!1),a(h,n({})),a($,n({issuer:null,metadata_url:null,danger_allow_insecure:!1,root_pem:null})),e(k)){case"Github":a(m,n({enabled:!0,issuer:"github.com",danger_allow_insecure:!1,authorization_endpoint:"https://github.com/login/oauth/authorize",token_endpoint:"https://github.com/login/oauth/access_token",token_auth_method_basic:!1,userinfo_endpoint:"https://api.github.com/user",use_pkce:!1,name:"Github",client_id:"",client_secret:"",scope:"user:email",root_pem:null,admin_claim_path:null,admin_claim_value:null,mfa_claim_path:"$.two_factor_authentication",mfa_claim_value:"true"}));break;case"Google":a($,n({issuer:"accounts.google.com",metadata_url:null,danger_allow_insecure:!1,root_pem:null})),x();break;default:a(m,n({enabled:!0,typ:"oidc",issuer:"",danger_allow_insecure:!1,authorization_endpoint:"",token_endpoint:"",token_auth_method_basic:!1,userinfo_endpoint:"",use_pkce:!0,name:"",client_id:"",client_secret:"",scope:"",root_pem:null,admin_claim_path:null,admin_claim_value:null,mfa_claim_path:null,mfa_claim_value:null}))}}),Te(()=>{e(I)&&a(E,n(setTimeout(()=>{s.onSave(),a(I,!1),a(i,!1),p()},1500)))}),ot(_,{get idx(){return t()},set idx(R){t(R)},get show(){return e(i)},set show(R){a(i,n(R))},header:R=>{var F=wu();r(R,F)},body:R=>{var F=Cu(),z=l(c(F),2),O=c(z);kt(O,{options:T,get value(){return e(k)},set value($e){a(k,n($e))}}),v(z);var U=l(z,2);{var Q=$e=>{var pe=$u(),je=l(ee(pe),2),fe=c(je);Be(fe,{get selected(){return e(o)},set selected(Pe){a(o,n(Pe))}}),v(je);var de=l(je,2);{var ye=Pe=>{wa(Pe,{rows:17,name:"rootPem",placeholder:`-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----`,get error(){return e(h).root_pem},get value(){return e($).root_pem},set value(Ce){e($).root_pem=Ce},children:(Ce,xe)=>{q();var Re=B("Root Certificate in PEM format");r(Ce,Re)},$$slots:{default:!0}})},we=Pe=>{var Ce=bu(),xe=l(ee(Ce),2),Re=c(xe);Be(Re,{get selected(){return e($).danger_allow_insecure},set selected(H){e($).danger_allow_insecure=H}}),v(xe),r(Pe,Ce)};P(de,Pe=>{e(o)?Pe(ye):Pe(we,!1)})}r($e,pe)};P(U,$e=>{e(u)||$e(Q)})}var M=l(U,2);{var W=$e=>{var pe=_u(),je=ee(pe);ie(je,{type:"url",name:"issuer",placeholder:"Issuer URL",width:d,get value(){return e($).issuer},set value(de){e($).issuer=de},get error(){return e(h).issuer},set error(de){e(h).issuer=de},$$events:{input:L,enter:x},children:(de,ye)=>{q();var we=B("ISSUER URL");r(de,we)},$$slots:{default:!0}});var fe=l(je,2);Se(fe,{level:1,width:"6rem",get isLoading(){return e(g)},set isLoading(de){a(g,n(de))},$$events:{click:x},children:(de,ye)=>{q();var we=B("LOOKUP");r(de,we)},$$slots:{default:!0}}),r($e,pe)},J=$e=>{var pe=me(),je=ee(pe);{var fe=ye=>{var we=ku(),Pe=ee(we);ie(Pe,{type:"url",name:"metadata",placeholder:".../.well-known/openid-configuration",width:d,get value(){return e($).metadata_url},set value(xe){e($).metadata_url=xe},get error(){return e(h).metadata_url},set error(xe){e(h).metadata_url=xe},$$events:{input:L,enter:x},children:(xe,Re)=>{q();var H=B("METADATA URL");r(xe,H)},$$slots:{default:!0}});var Ce=l(Pe,2);Se(Ce,{level:1,width:"6rem",get isLoading(){return e(g)},set isLoading(xe){a(g,n(xe))},$$events:{click:x},children:(xe,Re)=>{q();var H=B("LOOKUP");r(xe,H)},$$slots:{default:!0}}),r(ye,we)},de=ye=>{var we=me(),Pe=ee(we);{var Ce=xe=>{var Re=Eu(),H=ee(Re);{var Ie=ae=>{wa(ae,{rows:17,name:"rootPem",placeholder:`-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----`,get error(){return e(h).root_pem},get disabled(){return e(u)},get value(){return e(m).root_pem},set value(Ge){e(m).root_pem=Ge},children:(Ge,Oe)=>{q();var Ut=B("Root Certificate in PEM format");r(Ge,Ut)},$$slots:{default:!0}})},ge=ae=>{var Ge=xu(),Oe=l(ee(Ge),2),Ut=c(Oe);{var Ht=Pt=>{ea(Pt,{get check(){return e(m).danger_allow_insecure}})},Ft=Pt=>{Be(Pt,{get selected(){return e(m).danger_allow_insecure},set selected(Vt){e(m).danger_allow_insecure=Vt}})};P(Ut,Pt=>{e(u)?Pt(Ht):Pt(Ft,!1)})}v(Oe),r(ae,Ge)};P(H,ae=>{e(o)?ae(Ie):ae(ge,!1)})}var Ue=l(H,2);ie(Ue,{type:"url",name:"issuer",placeholder:"Issuer URL",width:d,get disabled(){return e(u)},get value(){return e(m).issuer},set value(ae){e(m).issuer=ae},get error(){return e(h).issuer},set error(ae){e(h).issuer=ae},$$events:{input:L},children:(ae,Ge)=>{q();var Oe=B("ISSUER URL");r(ae,Oe)},$$slots:{default:!0}});var Je=l(Ue,2);ie(Je,{type:"url",name:"auth_endpoint",placeholder:"Authorization Endpoint",width:d,get disabled(){return e(u)},get value(){return e(m).authorization_endpoint},set value(ae){e(m).authorization_endpoint=ae},get error(){return e(h).authorization_endpoint},set error(ae){e(h).authorization_endpoint=ae},$$events:{input:L},children:(ae,Ge)=>{q();var Oe=B("AUTHORIZATION ENDPOINT");r(ae,Oe)},$$slots:{default:!0}});var rt=l(Je,2);ie(rt,{type:"url",name:"token_endpoint",placeholder:"Token Endpoint",width:d,get disabled(){return e(u)},get value(){return e(m).token_endpoint},set value(ae){e(m).token_endpoint=ae},get error(){return e(h).token_endpoint},set error(ae){e(h).token_endpoint=ae},$$events:{input:L},children:(ae,Ge)=>{q();var Oe=B("TOKEN ENDPOINT");r(ae,Oe)},$$slots:{default:!0}});var vt=l(rt,2);ie(vt,{type:"url",name:"userinfo_endpoint",placeholder:"Userinfo Endpoint",width:d,get disabled(){return e(u)},get value(){return e(m).userinfo_endpoint},set value(ae){e(m).userinfo_endpoint=ae},get error(){return e(h).userinfo_endpoint},set error(ae){e(h).userinfo_endpoint=ae},$$events:{input:L},children:(ae,Ge)=>{q();var Oe=B("USERINFO ENDPOINT");r(ae,Oe)},$$slots:{default:!0}});var qe=l(vt,4),Fe=c(qe);{var lt=ae=>{ea(ae,{get check(){return e(m).use_pkce}})},xt=ae=>{Be(ae,{get selected(){return e(m).use_pkce},set selected(Ge){e(m).use_pkce=Ge}})};P(Fe,ae=>{e(u)?ae(lt):ae(xt,!1)})}v(qe);var $t=l(qe,4);ie($t,{name:"scope",placeholder:"openid profile email",width:d,get value(){return e(m).scope},set value(ae){e(m).scope=ae},get error(){return e(h).scope},set error(ae){e(h).scope=ae},$$events:{input:S},children:(ae,Ge)=>{q();var Oe=B("SCOPE");r(ae,Oe)},$$slots:{default:!0}});var Qe=l($t,4);ie(Qe,{name:"client_name",placeholder:"Client Name",width:d,get value(){return e(m).name},set value(ae){e(m).name=ae},get error(){return e(h).name},set error(ae){e(h).name=ae},$$events:{input:S},children:(ae,Ge)=>{q();var Oe=B("CLIENT NAME");r(ae,Oe)},$$slots:{default:!0}});var et=l(Qe,4);ie(et,{name:"client_id",autocomplete:"off",placeholder:"Client ID",width:d,get value(){return e(m).client_id},set value(ae){e(m).client_id=ae},get error(){return e(h).client_id},set error(ae){e(h).client_id=ae},$$events:{input:S},children:(ae,Ge)=>{q();var Oe=B("CLIENT ID");r(ae,Oe)},$$slots:{default:!0}});var gt=l(et,4);Wt(gt,{name:"client_secret",get error(){return e(h).client_secret},autocomplete:"off",placeholder:"Client Secret",width:d,get value(){return e(m).client_secret},set value(ae){e(m).client_secret=ae},$$events:{input:S},children:(ae,Ge)=>{q();var Oe=B("CLIENT SECRET");r(ae,Oe)},$$slots:{default:!0}});var ct=l(gt,4),It=l(c(ct),2);Be(It,{get selected(){return e(m).client_secret_basic},set selected(ae){e(m).client_secret_basic=ae}}),v(ct);var at=l(ct,2),st=l(c(at),2);Be(st,{get selected(){return e(m).client_secret_post},set selected(ae){e(m).client_secret_post=ae}}),v(at);var se=l(at,2);us(se);var Ae=l(se,4);ie(Ae,{name:"admin_claim_path",placeholder:"$.roles.*",width:d,get value(){return e(m).admin_claim_path},set value(ae){e(m).admin_claim_path=ae},get error(){return e(h).admin_claim_path},set error(ae){e(h).admin_claim_path=ae},$$events:{input:S},children:(ae,Ge)=>{q();var Oe=B("ADMIN CLAIM PATH");r(ae,Oe)},$$slots:{default:!0}});var ze=l(Ae,2);ie(ze,{name:"admin_claim_value",placeholder:"rauthy_admin",width:d,get value(){return e(m).admin_claim_value},set value(ae){e(m).admin_claim_value=ae},get error(){return e(h).admin_claim_value},set error(ae){e(h).admin_claim_value=ae},$$events:{input:S},children:(ae,Ge)=>{q();var Oe=B("ADMIN CLAIM VALUE");r(ae,Oe)},$$slots:{default:!0}});var X=l(ze,4);ie(X,{name:"mfa_claim_path",placeholder:"$.amr.*",width:d,get value(){return e(m).mfa_claim_path},set value(ae){e(m).mfa_claim_path=ae},get error(){return e(h).mfa_claim_path},set error(ae){e(h).mfa_claim_path=ae},$$events:{input:S},children:(ae,Ge)=>{q();var Oe=B("MFA CLAIM PATH");r(ae,Oe)},$$slots:{default:!0}});var Ee=l(X,2);ie(Ee,{name:"mfa_claim_value",placeholder:"mfa",width:d,get value(){return e(m).mfa_claim_value},set value(ae){e(m).mfa_claim_value=ae},get error(){return e(h).mfa_claim_value},set error(ae){e(h).mfa_claim_value=ae},$$events:{input:S},children:(ae,Ge)=>{q();var Oe=B("MFA CLAIM VALUE");r(ae,Oe)},$$slots:{default:!0}});var Le=l(Ee,2);Se(Le,{level:1,width:"6rem",get isLoading(){return e(g)},set isLoading(ae){a(g,n(ae))},$$events:{click:b},children:(ae,Ge)=>{q();var Oe=B("SAVE");r(ae,Oe)},$$slots:{default:!0}});var St=l(Le,2);Se(St,{level:4,width:"6rem",get isLoading(){return e(g)},set isLoading(ae){a(g,n(ae))},$$events:{click:p},children:(ae,Ge)=>{q();var Oe=B("RESET");r(ae,Oe)},$$slots:{default:!0}}),r(xe,Re)};P(Pe,xe=>{(e(V)||e(j)||e(u))&&xe(Ce)},!0)}r(ye,we)};P(je,ye=>{e(D)&&!e(u)?ye(fe):ye(de,!1)},!0)}r($e,pe)};P(M,$e=>{e(N)&&!e(u)?$e(W):$e(J,!1)})}var Z=l(M,2);{var re=$e=>{var pe=Iu();r($e,pe)};P(Z,$e=>{e(I)&&$e(re)})}var ve=l(Z,2);{var be=$e=>{var pe=Su(),je=c(pe,!0);v(pe),K(()=>Y(je,e(f))),r($e,pe)};P(ve,$e=>{e(f)&&$e(be)})}v(F),r(R,F)},$$slots:{header:!0,body:!0}}),ne()}var Tu=A(' ');function Lu(_,s){le(s,!0);var t=Tu();K(()=>ue(t,"src",`/auth/v1/providers/${s.providerId}/img?${Mt(6)}`)),ue(t,"width",20),ue(t,"height",20),r(_,t),ne()}var Nu=A('
',1),Ru=A('Success
'),Du=A('
'),ju=A(" ",1),Pu=A(`
The scope the client should use when redirecting to the login. Provide the values separated by space.
Client name for the Rauthy login form
Client ID given by the auth provider
Client Secret given by the auth provider. At least a client secret or PKCE is required.
The authentication method to use on the /token
endpoint. Most providers should work with basic
, some only with post
.
In rare situations, you need both, while it can lead to errors with others.
You can map a user to be a rauthy admin depending on an upstream ID claim.
If your provider issues a claim indicating that the user has used at least 2FA during
- login, you can specify the mfa claim path.
`);function zu(_,s){le(s,!0);let t=G(s,"provider",31,()=>n({}));const d="25rem";let i=C(!1),g=C(""),f=C(!1),u=C(void 0),I=C(n(t().root_pem)),E=C(void 0);Ne(()=>()=>clearTimeout(e(u)));let o=C(n({}));const $=He().shape({issuer:he().trim().matches(tt,"Can only contain URI safe characters, length max: 128"),authorization_endpoint:he().url(),token_endpoint:he().url(),userinfo_endpoint:he().url(),name:he().trim().matches(Xt,"Can only contain: 'a-zA-Z0-9\xC0-\xFF- ', length max: 128"),client_id:he().trim().matches(tt,"Can only contain URI safe characters, length max: 128"),client_secret:he().trim().max(256,"Max 256 characters"),scope:he().trim().matches(Ga,"Can only contain: 'a-zA-Z0-9-_/ ', length max: 128"),admin_claim_path:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),admin_claim_value:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),mfa_claim_path:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),mfa_claim_value:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128")});async function m(){if(e(I)||t(t().root_pem=void 0,!0),!await k())return;if(!t().use_pkce&&!t().client_secret){a(g,"Must at least be a confidential client or use PKCE");return}a(g,""),a(i,!0),t().root_pem?(t(t().danger_allow_insecure=!1,!0),t(t().root_pem=t().root_pem.trim(),!0)):t(t().root_pem=void 0,!0);let H=await jr(t().id,t());if(H.ok)a(f,!0);else{let Ie=await H.json();a(g,n(Ie.message))}a(i,!1)}async function T(H){a(i,!0);let Ie=await Or(t().id,H);if(!Ie.ok){let ge=await Ie.json();console.error(ge.message)}a(i,!1)}async function k(){a(o,n({}));try{return await $.validate(t(),{abortEarly:!1}),t().client_secret&&!(t().client_secret_basic||t().client_secret_post)?(a(g,"You have given a client secret, but no client auth method is active"),!1):(t().root_pem&&t().root_pem.length>0?ua.test(t().root_pem.trim())||(e(o).root_pem="Invalid PEM certificate"):a(g,"Invalid input"),!0)}catch(H){return a(o,n(Ye(H))),!1}}Te(()=>{e(f)&&a(u,n(setTimeout(()=>{a(f,!1),s.onSave()},2e3)))}),Te(()=>{t().scope&&t(t().scope=t().scope.replaceAll("+"," "),!0)}),Te(()=>{e(E)&&T(e(E))});var h=Pu(),y=c(h),w=l(c(y),2),b=c(w,!0);v(w),v(y);var x=l(y,6),p=c(x);Be(p,{get selected(){return t().enabled},set selected(H){t(t().enabled=H,!0)}}),v(x);var S=l(x,4),L=c(S);Be(L,{get selected(){return e(I)},set selected(H){a(I,n(H))}}),v(S);var D=l(S,2);{var j=H=>{wa(H,{rows:17,name:"rootPem",placeholder:`-----BEGIN CERTIFICATE-----
+ login, you can specify the mfa claim path.
`);function zu(_,s){le(s,!0);let t=G(s,"provider",31,()=>n({}));const d="25rem";let i=C(!1),g=C(""),f=C(!1),u=C(void 0),I=C(n(t().root_pem)),E=C(void 0);Ne(()=>()=>clearTimeout(e(u)));let o=C(n({}));const $=He().shape({issuer:he().trim().matches(tt,"Can only contain URI safe characters, length max: 128"),authorization_endpoint:he().url(),token_endpoint:he().url(),userinfo_endpoint:he().url(),name:he().trim().matches(Xt,"Can only contain: 'a-zA-Z0-9\xC0-\xFF- ', length max: 128"),client_id:he().trim().matches(tt,"Can only contain URI safe characters, length max: 128"),client_secret:he().trim().max(256,"Max 256 characters"),scope:he().trim().matches(Ga,"Can only contain: 'a-zA-Z0-9-_/ ', length max: 128"),admin_claim_path:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),admin_claim_value:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),mfa_claim_path:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128"),mfa_claim_value:he().trim().nullable().matches(tt,"Can only contain URI safe characters, length max: 128")});async function m(){if(e(I)||t(t().root_pem=void 0,!0),!await k())return;if(!t().use_pkce&&!t().client_secret){a(g,"Must at least be a confidential client or use PKCE");return}a(g,""),a(i,!0),t().root_pem?(t(t().danger_allow_insecure=!1,!0),t(t().root_pem=t().root_pem.trim(),!0)):t(t().root_pem=void 0,!0);let H=await jr(t().id,t());if(H.ok)a(f,!0);else{let Ie=await H.json();a(g,n(Ie.message))}a(i,!1)}async function T(H){a(i,!0);let Ie=await Or(t().id,H);if(!Ie.ok){let ge=await Ie.json();console.error(ge.message)}a(i,!1)}async function k(){a(o,n({}));try{return await $.validate(t(),{abortEarly:!1}),t().client_secret&&!(t().client_secret_basic||t().client_secret_post)?(a(g,"You have given a client secret, but no client auth method is active"),!1):(t().root_pem&&t().root_pem.length>0?ca.test(t().root_pem.trim())||(e(o).root_pem="Invalid PEM certificate"):a(g,"Invalid input"),!0)}catch(H){return a(o,n(Ye(H))),!1}}Te(()=>{e(f)&&a(u,n(setTimeout(()=>{a(f,!1),s.onSave()},2e3)))}),Te(()=>{t().scope&&t(t().scope=t().scope.replaceAll("+"," "),!0)}),Te(()=>{e(E)&&T(e(E))});var h=Pu(),y=c(h),w=l(c(y),2),b=c(w,!0);v(w),v(y);var x=l(y,6),p=c(x);Be(p,{get selected(){return t().enabled},set selected(H){t(t().enabled=H,!0)}}),v(x);var S=l(x,4),L=c(S);Be(L,{get selected(){return e(I)},set selected(H){a(I,n(H))}}),v(S);var D=l(S,2);{var j=H=>{wa(H,{rows:17,name:"rootPem",placeholder:`-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----`,get error(){return e(o).root_pem},get value(){return t().root_pem},set value(Ie){t(t().root_pem=Ie,!0)},children:(Ie,ge)=>{q();var Ue=B("Root Certificate in PEM format");r(Ie,Ue)},$$slots:{default:!0}})},N=H=>{var Ie=Nu(),ge=l(ee(Ie),2),Ue=c(ge);Be(Ue,{get selected(){return t().danger_allow_insecure},set selected(Je){t(t().danger_allow_insecure=Je,!0)}}),v(ge),r(H,Ie)};P(D,H=>{e(I)?H(j):H(N,!1)})}var V=l(D,2);ie(V,{autocomplete:"off",placeholder:"Issuer URL",width:d,get value(){return t().issuer},set value(H){t(t().issuer=H,!0)},get error(){return e(o).issuer},set error(H){e(o).issuer=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("ISSUER URL");r(H,ge)},$$slots:{default:!0}});var R=l(V,2);ie(R,{autocomplete:"off",placeholder:"Authorization Endpoint",width:d,get value(){return t().authorization_endpoint},set value(H){t(t().authorization_endpoint=H,!0)},get error(){return e(o).authorization_endpoint},set error(H){e(o).authorization_endpoint=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("AUTHORIZATION ENDPOINT");r(H,ge)},$$slots:{default:!0}});var F=l(R,2);ie(F,{autocomplete:"off",placeholder:"Token Endpoint",width:d,get value(){return t().token_endpoint},set value(H){t(t().token_endpoint=H,!0)},get error(){return e(o).token_endpoint},set error(H){e(o).token_endpoint=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("TOKEN ENDPOINT");r(H,ge)},$$slots:{default:!0}});var z=l(F,2);ie(z,{autocomplete:"off",placeholder:"Userinfo Endpoint",width:d,get value(){return t().userinfo_endpoint},set value(H){t(t().userinfo_endpoint=H,!0)},get error(){return e(o).userinfo_endpoint},set error(H){e(o).userinfo_endpoint=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("USERINFO ENDPOINT");r(H,ge)},$$slots:{default:!0}});var O=l(z,4),U=c(O);Be(U,{get selected(){return t().use_pkce},set selected(H){t(t().use_pkce=H,!0)}}),v(O);var Q=l(O,4);ie(Q,{autocomplete:"off",placeholder:"openid profile email",width:d,get value(){return t().scope},set value(H){t(t().scope=H,!0)},get error(){return e(o).scope},set error(H){e(o).scope=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("SCOPE");r(H,ge)},$$slots:{default:!0}});var M=l(Q,4);ie(M,{autocomplete:"off",placeholder:"Client Name",width:d,get value(){return t().name},set value(H){t(t().name=H,!0)},get error(){return e(o).name},set error(H){e(o).name=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("CLIENT NAME");r(H,ge)},$$slots:{default:!0}});var W=l(M,4);ie(W,{autocomplete:"off",placeholder:"Client ID",width:d,get value(){return t().client_id},set value(H){t(t().client_id=H,!0)},get error(){return e(o).client_id},set error(H){e(o).client_id=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("CLIENT ID");r(H,ge)},$$slots:{default:!0}});var J=l(W,4);Wt(J,{get error(){return e(o).client_secret},autocomplete:"off",placeholder:"Client Secret",width:d,get value(){return t().client_secret},set value(H){t(t().client_secret=H,!0)},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("CLIENT SECRET");r(H,ge)},$$slots:{default:!0}});var Z=l(J,4),re=l(c(Z),2);Be(re,{get selected(){return t().client_secret_basic},set selected(H){t(t().client_secret_basic=H,!0)}}),v(Z);var ve=l(Z,2),be=l(c(ve),2);Be(be,{get selected(){return t().client_secret_post},set selected(H){t(t().client_secret_post=H,!0)}}),v(ve);var $e=l(ve,2);us($e);var pe=l($e,4);ie(pe,{autocomplete:"off",placeholder:"$.roles.*",width:d,get value(){return t().admin_claim_path},set value(H){t(t().admin_claim_path=H,!0)},get error(){return e(o).admin_claim_path},set error(H){e(o).admin_claim_path=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("ADMIN CLAIM PATH");r(H,ge)},$$slots:{default:!0}});var je=l(pe,2);ie(je,{autocomplete:"off",placeholder:"rauthy_admin",width:d,get value(){return t().admin_claim_value},set value(H){t(t().admin_claim_value=H,!0)},get error(){return e(o).admin_claim_value},set error(H){e(o).admin_claim_value=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("ADMIN CLAIM VALUE");r(H,ge)},$$slots:{default:!0}});var fe=l(je,4);ie(fe,{autocomplete:"off",placeholder:"$.amr.*",width:d,get value(){return t().mfa_claim_path},set value(H){t(t().mfa_claim_path=H,!0)},get error(){return e(o).mfa_claim_path},set error(H){e(o).mfa_claim_path=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("MFA CLAIM PATH");r(H,ge)},$$slots:{default:!0}});var de=l(fe,2);ie(de,{autocomplete:"off",placeholder:"mfa",width:d,get value(){return t().mfa_claim_value},set value(H){t(t().mfa_claim_value=H,!0)},get error(){return e(o).mfa_claim_value},set error(H){e(o).mfa_claim_value=H},$$events:{input:k},children:(H,Ie)=>{q();var ge=B("MFA CLAIM VALUE");r(H,ge)},$$slots:{default:!0}});var ye=l(de,2),we=c(ye);ls(we,{get image(){return e(E)},set image(H){a(E,n(H))}});var Pe=l(we,2);{var Ce=H=>{Lu(H,{get providerId(){return t().id}})};P(Pe,H=>{e(i)||H(Ce)})}v(ye);var xe=l(ye,2);{var Re=H=>{var Ie=ju(),ge=ee(Ie);Se(ge,{level:1,width:"4rem",get isLoading(){return e(i)},set isLoading(qe){a(i,n(qe))},$$events:{click:m},children:(qe,Fe)=>{q();var lt=B("SAVE");r(qe,lt)},$$slots:{default:!0}});var Ue=l(ge,2);{var Je=qe=>{var Fe=Ru();r(qe,Fe)};P(Ue,qe=>{e(f)&&qe(Je)})}var rt=l(Ue,2);{var vt=qe=>{var Fe=Du(),lt=c(Fe,!0);v(Fe),K(()=>Y(lt,e(g))),r(qe,Fe)};P(rt,qe=>{e(g)&&qe(vt)})}r(H,Ie)};P(xe,H=>{H(Re)})}v(h),K(()=>Y(b,t().id)),r(_,h),ne()}var Ou=A("
"),Mu=A(`This provider is in use by active users.
You can force delete it, but users without a local password or passkey
- will not be able to log in anymore.
Linked Users Are you sure you want to delete this provider?
FORCE DELETE
`,1),Uu=A('Are you sure, you want to delete this provider?
',1),qu=A('
'),Gu=A('
');function Wu(_,s){le(s,!0);let t=G(s,"provider",19,()=>({})),d=C(!0),i=C(""),g=C(!1),f=C(n([]));Ne(async()=>{let k=await zr(t().id),h=await k.json();k.status===406?a(f,n(h)):a(i,n(h.message)),a(d,!1)});async function u(){a(i,""),a(d,!0);let k=await Pr(t().id);if(k.ok)s.onSave();else{let h=await k.json();a(i,n(h.message))}a(d,!1)}var I=Gu(),E=c(I);{var o=k=>{var h=Mu(),y=ee(h),w=l(c(y),4),b=l(c(w),2);We(b,17,()=>e(f),j=>j.id,(j,N)=>{var V=Ou(),R=c(V);v(V),K(()=>Y(R,`${e(N).id??""} ${e(N).email??""}`)),r(j,V)}),v(w),v(y);var x=l(y,2),p=l(c(x),2),S=l(c(p));Be(S,{get selected(){return e(g)},set selected(j){a(g,n(j))}}),v(p),v(x);var L=l(x,2);{var D=j=>{Se(j,{level:1,get isLoading(){return e(d)},set isLoading(N){a(d,n(N))},$$events:{click:u},children:(N,V)=>{q();var R=B("DELETE");r(N,R)},$$slots:{default:!0}})};P(L,j=>{e(g)&&j(D)})}r(k,h)},$=k=>{var h=Uu(),y=l(ee(h),2);Se(y,{level:1,get isLoading(){return e(d)},set isLoading(w){a(d,n(w))},$$events:{click:u},children:(w,b)=>{q();var x=B("DELETE");r(w,x)},$$slots:{default:!0}}),r(k,h)};P(E,k=>{e(f).length>0?k(o):k($,!1)})}var m=l(E,2);{var T=k=>{var h=qu(),y=c(h,!0);v(h),K(()=>Y(y,e(i))),r(k,h)};P(m,k=>{e(i)&&k(T)})}v(I),r(_,I),ne()}var Ku=A('
'),Fu=A('
'),Vu=A(''),Bu=A("
"),Ju=A("
"),Yu=A("
");function Hu(_,s){le(s,!0);let t=G(s,"provider",31,()=>n({})),d=G(s,"onSave",15),i=C(void 0);const g=["Config","Delete"];let f=C(n(g[0]));const u=200,I=u/2;ot(_,{get show(){return e(i)},set show(E){a(i,n(E))},header:E=>{var o=Vu(),$=c(o);Ze($,{text:"Provider ID",children:(T,k)=>{var h=Ku(),y=c(h,!0);v(h),K(()=>Y(y,t().id)),r(T,h)},$$slots:{default:!0}});var m=l($,2);Ze(m,{text:"Provider Name",children:(T,k)=>{var h=Fu(),y=c(h,!0);v(h),K(()=>Y(y,t().name)),r(T,h)},$$slots:{default:!0}}),v(o),r(E,o)},body:E=>{var o=Yu(),$=c(o);Dt($,{labels:g,get selected(){return e(f)},set selected(h){a(f,n(h))}});var m=l($,2);{var T=h=>{var y=Bu(),w=c(y);zu(w,{get provider(){return t()},set provider(b){t(b)},get onSave(){return d()},set onSave(b){d(b)}}),v(y),ce(1,y,()=>_e,()=>({delay:I,duration:u})),ce(2,y,()=>_e,()=>({duration:u})),r(h,y)},k=h=>{var y=me(),w=ee(y);{var b=x=>{var p=Ju(),S=c(p);Wu(S,{get provider(){return t()},set provider(L){t(L)},get onSave(){return d()},set onSave(L){d(L)}}),v(p),ce(1,p,()=>_e,()=>({delay:I,duration:u})),ce(2,p,()=>_e,()=>({duration:u})),r(x,p)};P(w,x=>{e(f)==="Delete"&&x(b)},!0)}r(h,y)};P(m,h=>{e(f)==="Config"?h(T):h(k,!1)})}v(o),r(E,o)},$$slots:{header:!0,body:!0}}),ne()}var Xu=A('
'),Zu=A(' ',1);function Qu(_,s){le(s,!0);let t=C(""),d=C(n([]));Ne(()=>{i()});async function i(){let $=await Rr(),m=await $.json();$.ok?a(d,n([...m])):a(t,n(m.message))}function g(){i()}q();var f=Zu(),u=ee(f),I=l(u),E=c(I);Au(E,{onSave:g});var o=l(E,2);We(o,23,()=>e(d),$=>$.id,($,m,T)=>{var k=Xu(),h=c(k);Hu(h,{onSave:g,get provider(){return e(d)[e(T)]},set provider(y){e(d)[e(T)]=y}}),v(k),r($,k)}),v(o),q(2),v(I),K(()=>Y(u,`${e(t)??""} `)),r(_,f),ne()}var eh=A(""),th=A("
"),ah=A('
');function sh(_,s){le(s,!0);let t=G(s,"selected",15,"Users"),d=C("Rauthy Admin"),i=C(!0),g=C(!0),f=C(!1),u=C(void 0);Te(()=>{e(u)&&(a(i,e(u)>1050),a(g,e(u)<1050),a(f,e(u)>1450))}),Te(()=>{if(t())switch(t()){case"Users":{window.history.pushState("Users","","/auth/v1/admin/users"),a(d,"Users");break}case"Attributes":{window.history.pushState("Attributes","","/auth/v1/admin/attributes"),a(d,"Attributes");break}case"Clients":{window.history.pushState("Clients","","/auth/v1/admin/clients"),a(d,"Clients");break}case"Roles":{window.history.pushState("Roles","","/auth/v1/admin/roles"),a(d,"Roles");break}case"Groups":{window.history.pushState("Groups","","/auth/v1/admin/groups"),a(d,"Groups");break}case"Scopes":{window.history.pushState("Scopes","","/auth/v1/admin/scopes"),a(d,"Scopes");break}case"Sessions":{window.history.pushState("Sessions","","/auth/v1/admin/sessions"),a(d,"Sessions");break}case"Events":{window.history.pushState("Sessions","","/auth/v1/admin/events"),a(d,"Events");break}case"Blacklist":{window.history.pushState("Blacklist","","/auth/v1/admin/blacklist"),a(d,"Blacklist");break}case"ApiKeys":{window.history.pushState("ApiKeys","","/auth/v1/admin/api_keys"),a(d,"ApiKeys");break}case"Providers":{window.history.pushState("Providers","","/auth/v1/admin/providers"),a(d,"Providers");break}case"Config":{window.history.pushState("Config","","/auth/v1/admin/config"),a(d,"Config");break}case"Docs":{window.history.pushState("Docs","","/auth/v1/admin/docs"),a(d,"Docs");break}case"Logout":Ms();break}}),Ne(()=>(window.addEventListener("popstate",E),I(window.innerWidth),()=>window.removeEventListener("popstate",E)));function I(b){a(i,b>1050),a(g,b<1050),a(f,b>1450)}function E(b){t(b.state)}var o=ah();Ta(b=>{K(()=>Aa.title=e(d))});var $=c(o);or($,{widthExpanded:150,widthCollapsed:70,get selected(){return t()},set selected(b){t(b)},get isExpanded(){return e(i)},set isExpanded(b){a(i,n(b))},logo:b=>{var x=eh(),p=c(x),S=c(p);Yd(S),v(p),v(x),K(()=>{oe(p,"width",e(i)?"120px":"55px"),oe(p,"margin-top",e(i)?"32px":"40px"),oe(p,"margin-bottom",e(i)?"13px":"22px")}),r(b,x)},entries:b=>{var x=th(),p=c(x);mt(p,{label:"Users",children:(W,J)=>{Pd(W,{})},$$slots:{default:!0}});var S=l(p,2);mt(S,{label:"Attributes",children:(W,J)=>{Gd(W,{})},$$slots:{default:!0}});var L=l(S,2);mt(L,{label:"Clients",children:(W,J)=>{Od(W,{})},$$slots:{default:!0}});var D=l(L,2);mt(D,{label:"Roles",children:(W,J)=>{os(W,{})},$$slots:{default:!0}});var j=l(D,2);mt(j,{label:"Groups",children:(W,J)=>{Ud(W,{})},$$slots:{default:!0}});var N=l(j,2);mt(N,{label:"Scopes",children:(W,J)=>{Bd(W,{})},$$slots:{default:!0}});var V=l(N,2);mt(V,{label:"Sessions",children:(W,J)=>{os(W,{})},$$slots:{default:!0}});var R=l(V,2);mt(R,{label:"Events",children:(W,J)=>{hu(W,{})},$$slots:{default:!0}});var F=l(R,2);mt(F,{label:"Blacklist",children:(W,J)=>{Qt(W,{width:24})},$$slots:{default:!0}});var z=l(F,2);mt(z,{label:"ApiKeys",children:(W,J)=>{Nc(W,{})},$$slots:{default:!0}});var O=l(z,2);mt(O,{label:"Providers",children:(W,J)=>{mu(W,{})},$$slots:{default:!0}});var U=l(O,2);mt(U,{label:"Config",children:(W,J)=>{Dd(W,{})},$$slots:{default:!0}});var Q=l(U,2);mt(Q,{label:"Docs",children:(W,J)=>{Qd(W,{})},$$slots:{default:!0}});var M=l(Q,2);mt(M,{label:"Logout",children:(W,J)=>{Fd(W,{})},$$slots:{default:!0}}),v(x),r(b,x)},$$slots:{logo:!0,entries:!0}});var m=l($,2),T=c(m);{var k=b=>{bt(b,{get eventsWide(){return e(f)},set eventsWide(x){a(f,n(x))},get eventsCollapsed(){return e(g)},set eventsCollapsed(x){a(g,n(x))},children:(x,p)=>{an(x,{})},$$slots:{default:!0}})},h=b=>{var x=me(),p=ee(x);{var S=D=>{bt(D,{get eventsWide(){return e(f)},set eventsWide(j){a(f,n(j))},get eventsCollapsed(){return e(g)},set eventsCollapsed(j){a(g,n(j))},children:(j,N)=>{id(j,{})},$$slots:{default:!0}})},L=D=>{var j=me(),N=ee(j);{var V=F=>{bt(F,{get eventsWide(){return e(f)},set eventsWide(z){a(f,n(z))},get eventsCollapsed(){return e(g)},set eventsCollapsed(z){a(g,n(z))},children:(z,O)=>{Av(z,{})},$$slots:{default:!0}})},R=F=>{var z=me(),O=ee(z);{var U=M=>{bt(M,{get eventsWide(){return e(f)},set eventsWide(W){a(f,n(W))},get eventsCollapsed(){return e(g)},set eventsCollapsed(W){a(g,n(W))},children:(W,J)=>{Cn(W,{})},$$slots:{default:!0}})},Q=M=>{var W=me(),J=ee(W);{var Z=ve=>{bt(ve,{get eventsWide(){return e(f)},set eventsWide(be){a(f,n(be))},get eventsCollapsed(){return e(g)},set eventsCollapsed(be){a(g,n(be))},children:(be,$e)=>{Hn(be,{})},$$slots:{default:!0}})},re=ve=>{var be=me(),$e=ee(be);{var pe=fe=>{bt(fe,{get eventsWide(){return e(f)},set eventsWide(de){a(f,n(de))},get eventsCollapsed(){return e(g)},set eventsCollapsed(de){a(g,n(de))},children:(de,ye)=>{xo(de,{})},$$slots:{default:!0}})},je=fe=>{var de=me(),ye=ee(de);{var we=Ce=>{bt(Ce,{get eventsWide(){return e(f)},set eventsWide(xe){a(f,n(xe))},get eventsCollapsed(){return e(g)},set eventsCollapsed(xe){a(g,n(xe))},children:(xe,Re)=>{Mv(xe,{})},$$slots:{default:!0}})},Pe=Ce=>{var xe=me(),Re=ee(xe);{var H=ge=>{bt(ge,{get eventsWide(){return e(f)},set eventsWide(Ue){a(f,n(Ue))},get eventsCollapsed(){return e(g)},set eventsCollapsed(Ue){a(g,n(Ue))},children:(Ue,Je)=>{cu(Ue,{})},$$slots:{default:!0}})},Ie=ge=>{var Ue=me(),Je=ee(Ue);{var rt=qe=>{bt(qe,{get eventsWide(){return e(f)},set eventsWide(Fe){a(f,n(Fe))},get eventsCollapsed(){return e(g)},set eventsCollapsed(Fe){a(g,n(Fe))},children:(Fe,lt)=>{Tc(Fe,{})},$$slots:{default:!0}})},vt=qe=>{var Fe=me(),lt=ee(Fe);{var xt=Qe=>{bt(Qe,{get eventsWide(){return e(f)},set eventsWide(et){a(f,n(et))},get eventsCollapsed(){return e(g)},set eventsCollapsed(et){a(g,n(et))},children:(et,gt)=>{ou(et,{})},$$slots:{default:!0}})},$t=Qe=>{var et=me(),gt=ee(et);{var ct=at=>{bt(at,{get eventsWide(){return e(f)},set eventsWide(st){a(f,n(st))},get eventsCollapsed(){return e(g)},set eventsCollapsed(st){a(g,n(st))},children:(st,se)=>{Qu(st,{})},$$slots:{default:!0}})},It=at=>{var st=me(),se=ee(st);{var Ae=X=>{bt(X,{get eventsWide(){return e(f)},set eventsWide(Ee){a(f,n(Ee))},get eventsCollapsed(){return e(g)},set eventsCollapsed(Ee){a(g,n(Ee))},children:(Ee,Le)=>{Nd(Ee)},$$slots:{default:!0}})},ze=X=>{var Ee=me(),Le=ee(Ee);{var St=ae=>{bt(ae,{get eventsWide(){return e(f)},set eventsWide(Ge){a(f,n(Ge))},get eventsCollapsed(){return e(g)},set eventsCollapsed(Ge){a(g,n(Ge))},children:(Ge,Oe)=>{Xd(Ge)},$$slots:{default:!0}})};P(Le,ae=>{t()==="Docs"&&ae(St)},!0)}r(X,Ee)};P(se,X=>{t()==="Config"?X(Ae):X(ze,!1)},!0)}r(at,st)};P(gt,at=>{t()==="Providers"?at(ct):at(It,!1)},!0)}r(Qe,et)};P(lt,Qe=>{t()==="ApiKeys"?Qe(xt):Qe($t,!1)},!0)}r(qe,Fe)};P(Je,qe=>{t()==="Blacklist"?qe(rt):qe(vt,!1)},!0)}r(ge,Ue)};P(Re,ge=>{t()==="Events"?ge(H):ge(Ie,!1)},!0)}r(Ce,xe)};P(ye,Ce=>{t()==="Sessions"?Ce(we):Ce(Pe,!1)},!0)}r(fe,de)};P($e,fe=>{t()==="Scopes"?fe(pe):fe(je,!1)},!0)}r(ve,be)};P(J,ve=>{t()==="Groups"?ve(Z):ve(re,!1)},!0)}r(M,W)};P(O,M=>{t()==="Roles"?M(U):M(Q,!1)},!0)}r(F,z)};P(N,F=>{t()==="Clients"?F(V):F(R,!1)},!0)}r(D,j)};P(p,D=>{t()==="Attributes"?D(S):D(L,!1)},!0)}r(b,x)};P(T,b=>{t()==="Users"?b(k):b(h,!1)})}var y=l(T,2);{var w=b=>{kc(b,{get collapsed(){return e(g)},get wide(){return e(f)}})};P(y,b=>{e(u)!==void 0&&b(w)})}v(m),v(o),Vs("innerWidth",b=>a(u,n(b))),r(_,o),ne()}var rh=A('A rauthy admin account must have MFA enabled. Please navigate to your account and activate MFA. Afterwards, you need to do a logout and log back in.
'),ih=A('You are not assigned to the rauthy_admin role. You do not have access to the admin panel.
');function lh(_,s){le(s,!0);let t=G(s,"selected",15,"Users"),d=C(void 0),i=C(!1),g=C(!1);Ne(async()=>{let o=await Us();if(o.ok){let $=await o.json(),m=await qs();m.ok?(a(d,n($)),a(i,!0)):m.status===406?(a(g,!0),a(d,n({}))):a(d,n({}))}else Oa()});var f=me();Ta(o=>{Aa.title="Admin"});var u=ee(f);{var I=o=>{ha(o,{})},E=o=>{var $=me(),m=ee($);{var T=h=>{var y=rh(),w=l(c(y),2);Se(w,{$$events:{click:()=>window.location.href="/auth/v1/account"},children:(b,x)=>{q();var p=B("ACCOUNT");r(b,p)},$$slots:{default:!0}}),v(y),r(h,y)},k=h=>{var y=me(),w=ee(y);{var b=p=>{var S=ih(),L=l(c(S),2);Se(L,{$$events:{click:()=>window.location.href="/auth/v1/"},children:(D,j)=>{q();var N=B("GO BACK");r(D,N)},$$slots:{default:!0}}),v(S),r(p,S)},x=p=>{sh(p,{get selected(){return t()},set selected(S){t(S)}})};P(w,p=>{e(i)?p(x,!1):p(b)},!0)}r(h,y)};P(m,h=>{e(g)?h(T):h(k,!1)},!0)}r(o,$)};P(u,o=>{!e(d)&&!e(g)?o(I):o(E,!1)})}r(_,f),ne()}export{lh as A};
+ will not be able to log in anymore. Linked Users Are you sure you want to delete this provider?
FORCE DELETE
`,1),Uu=A('Are you sure, you want to delete this provider?
',1),qu=A('
'),Gu=A('
');function Wu(_,s){le(s,!0);let t=G(s,"provider",19,()=>({})),d=C(!0),i=C(""),g=C(!1),f=C(n([]));Ne(async()=>{let k=await zr(t().id),h=await k.json();k.status===406?a(f,n(h)):a(i,n(h.message)),a(d,!1)});async function u(){a(i,""),a(d,!0);let k=await Pr(t().id);if(k.ok)s.onSave();else{let h=await k.json();a(i,n(h.message))}a(d,!1)}var I=Gu(),E=c(I);{var o=k=>{var h=Mu(),y=ee(h),w=l(c(y),4),b=l(c(w),2);We(b,17,()=>e(f),j=>j.id,(j,N)=>{var V=Ou(),R=c(V);v(V),K(()=>Y(R,`${e(N).id??""} ${e(N).email??""}`)),r(j,V)}),v(w),v(y);var x=l(y,2),p=l(c(x),2),S=l(c(p));Be(S,{get selected(){return e(g)},set selected(j){a(g,n(j))}}),v(p),v(x);var L=l(x,2);{var D=j=>{Se(j,{level:1,get isLoading(){return e(d)},set isLoading(N){a(d,n(N))},$$events:{click:u},children:(N,V)=>{q();var R=B("DELETE");r(N,R)},$$slots:{default:!0}})};P(L,j=>{e(g)&&j(D)})}r(k,h)},$=k=>{var h=Uu(),y=l(ee(h),2);Se(y,{level:1,get isLoading(){return e(d)},set isLoading(w){a(d,n(w))},$$events:{click:u},children:(w,b)=>{q();var x=B("DELETE");r(w,x)},$$slots:{default:!0}}),r(k,h)};P(E,k=>{e(f).length>0?k(o):k($,!1)})}var m=l(E,2);{var T=k=>{var h=qu(),y=c(h,!0);v(h),K(()=>Y(y,e(i))),r(k,h)};P(m,k=>{e(i)&&k(T)})}v(I),r(_,I),ne()}var Ku=A('
'),Fu=A('
'),Vu=A(''),Bu=A("
"),Ju=A("
"),Yu=A("
");function Hu(_,s){le(s,!0);let t=G(s,"provider",31,()=>n({})),d=G(s,"onSave",15),i=C(void 0);const g=["Config","Delete"];let f=C(n(g[0]));const u=200,I=u/2;ot(_,{get show(){return e(i)},set show(E){a(i,n(E))},header:E=>{var o=Vu(),$=c(o);Ze($,{text:"Provider ID",children:(T,k)=>{var h=Ku(),y=c(h,!0);v(h),K(()=>Y(y,t().id)),r(T,h)},$$slots:{default:!0}});var m=l($,2);Ze(m,{text:"Provider Name",children:(T,k)=>{var h=Fu(),y=c(h,!0);v(h),K(()=>Y(y,t().name)),r(T,h)},$$slots:{default:!0}}),v(o),r(E,o)},body:E=>{var o=Yu(),$=c(o);Dt($,{labels:g,get selected(){return e(f)},set selected(h){a(f,n(h))}});var m=l($,2);{var T=h=>{var y=Bu(),w=c(y);zu(w,{get provider(){return t()},set provider(b){t(b)},get onSave(){return d()},set onSave(b){d(b)}}),v(y),ce(1,y,()=>_e,()=>({delay:I,duration:u})),ce(2,y,()=>_e,()=>({duration:u})),r(h,y)},k=h=>{var y=me(),w=ee(y);{var b=x=>{var p=Ju(),S=c(p);Wu(S,{get provider(){return t()},set provider(L){t(L)},get onSave(){return d()},set onSave(L){d(L)}}),v(p),ce(1,p,()=>_e,()=>({delay:I,duration:u})),ce(2,p,()=>_e,()=>({duration:u})),r(x,p)};P(w,x=>{e(f)==="Delete"&&x(b)},!0)}r(h,y)};P(m,h=>{e(f)==="Config"?h(T):h(k,!1)})}v(o),r(E,o)},$$slots:{header:!0,body:!0}}),ne()}var Xu=A('
'),Zu=A(' ',1);function Qu(_,s){le(s,!0);let t=C(""),d=C(n([]));Ne(()=>{i()});async function i(){let $=await Rr(),m=await $.json();$.ok?a(d,n([...m])):a(t,n(m.message))}function g(){i()}q();var f=Zu(),u=ee(f),I=l(u),E=c(I);Au(E,{onSave:g});var o=l(E,2);We(o,23,()=>e(d),$=>$.id,($,m,T)=>{var k=Xu(),h=c(k);Hu(h,{onSave:g,get provider(){return e(d)[e(T)]},set provider(y){e(d)[e(T)]=y}}),v(k),r($,k)}),v(o),q(2),v(I),K(()=>Y(u,`${e(t)??""} `)),r(_,f),ne()}var eh=A(""),th=A("
"),ah=A('
');function sh(_,s){le(s,!0);let t=G(s,"selected",15,"Users"),d=C("Rauthy Admin"),i=C(!0),g=C(!0),f=C(!1),u=C(void 0);Te(()=>{e(u)&&(a(i,e(u)>1050),a(g,e(u)<1050),a(f,e(u)>1450))}),Te(()=>{if(t())switch(t()){case"Users":{window.history.pushState("Users","","/auth/v1/admin/users"),a(d,"Users");break}case"Attributes":{window.history.pushState("Attributes","","/auth/v1/admin/attributes"),a(d,"Attributes");break}case"Clients":{window.history.pushState("Clients","","/auth/v1/admin/clients"),a(d,"Clients");break}case"Roles":{window.history.pushState("Roles","","/auth/v1/admin/roles"),a(d,"Roles");break}case"Groups":{window.history.pushState("Groups","","/auth/v1/admin/groups"),a(d,"Groups");break}case"Scopes":{window.history.pushState("Scopes","","/auth/v1/admin/scopes"),a(d,"Scopes");break}case"Sessions":{window.history.pushState("Sessions","","/auth/v1/admin/sessions"),a(d,"Sessions");break}case"Events":{window.history.pushState("Sessions","","/auth/v1/admin/events"),a(d,"Events");break}case"Blacklist":{window.history.pushState("Blacklist","","/auth/v1/admin/blacklist"),a(d,"Blacklist");break}case"ApiKeys":{window.history.pushState("ApiKeys","","/auth/v1/admin/api_keys"),a(d,"ApiKeys");break}case"Providers":{window.history.pushState("Providers","","/auth/v1/admin/providers"),a(d,"Providers");break}case"Config":{window.history.pushState("Config","","/auth/v1/admin/config"),a(d,"Config");break}case"Docs":{window.history.pushState("Docs","","/auth/v1/admin/docs"),a(d,"Docs");break}case"Logout":Ms();break}}),Ne(()=>(window.addEventListener("popstate",E),I(window.innerWidth),()=>window.removeEventListener("popstate",E)));function I(b){a(i,b>1050),a(g,b<1050),a(f,b>1450)}function E(b){t(b.state)}var o=ah();Ta(b=>{K(()=>Aa.title=e(d))});var $=c(o);or($,{widthExpanded:150,widthCollapsed:70,get selected(){return t()},set selected(b){t(b)},get isExpanded(){return e(i)},set isExpanded(b){a(i,n(b))},logo:b=>{var x=eh(),p=c(x),S=c(p);Yd(S),v(p),v(x),K(()=>{oe(p,"width",e(i)?"120px":"55px"),oe(p,"margin-top",e(i)?"32px":"40px"),oe(p,"margin-bottom",e(i)?"13px":"22px")}),r(b,x)},entries:b=>{var x=th(),p=c(x);mt(p,{label:"Users",children:(W,J)=>{Pd(W,{})},$$slots:{default:!0}});var S=l(p,2);mt(S,{label:"Attributes",children:(W,J)=>{Gd(W,{})},$$slots:{default:!0}});var L=l(S,2);mt(L,{label:"Clients",children:(W,J)=>{Od(W,{})},$$slots:{default:!0}});var D=l(L,2);mt(D,{label:"Roles",children:(W,J)=>{os(W,{})},$$slots:{default:!0}});var j=l(D,2);mt(j,{label:"Groups",children:(W,J)=>{Ud(W,{})},$$slots:{default:!0}});var N=l(j,2);mt(N,{label:"Scopes",children:(W,J)=>{Bd(W,{})},$$slots:{default:!0}});var V=l(N,2);mt(V,{label:"Sessions",children:(W,J)=>{os(W,{})},$$slots:{default:!0}});var R=l(V,2);mt(R,{label:"Events",children:(W,J)=>{hu(W,{})},$$slots:{default:!0}});var F=l(R,2);mt(F,{label:"Blacklist",children:(W,J)=>{Qt(W,{width:24})},$$slots:{default:!0}});var z=l(F,2);mt(z,{label:"ApiKeys",children:(W,J)=>{Nc(W,{})},$$slots:{default:!0}});var O=l(z,2);mt(O,{label:"Providers",children:(W,J)=>{mu(W,{})},$$slots:{default:!0}});var U=l(O,2);mt(U,{label:"Config",children:(W,J)=>{Dd(W,{})},$$slots:{default:!0}});var Q=l(U,2);mt(Q,{label:"Docs",children:(W,J)=>{Qd(W,{})},$$slots:{default:!0}});var M=l(Q,2);mt(M,{label:"Logout",children:(W,J)=>{Fd(W,{})},$$slots:{default:!0}}),v(x),r(b,x)},$$slots:{logo:!0,entries:!0}});var m=l($,2),T=c(m);{var k=b=>{bt(b,{get eventsWide(){return e(f)},set eventsWide(x){a(f,n(x))},get eventsCollapsed(){return e(g)},set eventsCollapsed(x){a(g,n(x))},children:(x,p)=>{an(x,{})},$$slots:{default:!0}})},h=b=>{var x=me(),p=ee(x);{var S=D=>{bt(D,{get eventsWide(){return e(f)},set eventsWide(j){a(f,n(j))},get eventsCollapsed(){return e(g)},set eventsCollapsed(j){a(g,n(j))},children:(j,N)=>{id(j,{})},$$slots:{default:!0}})},L=D=>{var j=me(),N=ee(j);{var V=F=>{bt(F,{get eventsWide(){return e(f)},set eventsWide(z){a(f,n(z))},get eventsCollapsed(){return e(g)},set eventsCollapsed(z){a(g,n(z))},children:(z,O)=>{Av(z,{})},$$slots:{default:!0}})},R=F=>{var z=me(),O=ee(z);{var U=M=>{bt(M,{get eventsWide(){return e(f)},set eventsWide(W){a(f,n(W))},get eventsCollapsed(){return e(g)},set eventsCollapsed(W){a(g,n(W))},children:(W,J)=>{Cn(W,{})},$$slots:{default:!0}})},Q=M=>{var W=me(),J=ee(W);{var Z=ve=>{bt(ve,{get eventsWide(){return e(f)},set eventsWide(be){a(f,n(be))},get eventsCollapsed(){return e(g)},set eventsCollapsed(be){a(g,n(be))},children:(be,$e)=>{Hn(be,{})},$$slots:{default:!0}})},re=ve=>{var be=me(),$e=ee(be);{var pe=fe=>{bt(fe,{get eventsWide(){return e(f)},set eventsWide(de){a(f,n(de))},get eventsCollapsed(){return e(g)},set eventsCollapsed(de){a(g,n(de))},children:(de,ye)=>{xo(de,{})},$$slots:{default:!0}})},je=fe=>{var de=me(),ye=ee(de);{var we=Ce=>{bt(Ce,{get eventsWide(){return e(f)},set eventsWide(xe){a(f,n(xe))},get eventsCollapsed(){return e(g)},set eventsCollapsed(xe){a(g,n(xe))},children:(xe,Re)=>{Mv(xe,{})},$$slots:{default:!0}})},Pe=Ce=>{var xe=me(),Re=ee(xe);{var H=ge=>{bt(ge,{get eventsWide(){return e(f)},set eventsWide(Ue){a(f,n(Ue))},get eventsCollapsed(){return e(g)},set eventsCollapsed(Ue){a(g,n(Ue))},children:(Ue,Je)=>{cu(Ue,{})},$$slots:{default:!0}})},Ie=ge=>{var Ue=me(),Je=ee(Ue);{var rt=qe=>{bt(qe,{get eventsWide(){return e(f)},set eventsWide(Fe){a(f,n(Fe))},get eventsCollapsed(){return e(g)},set eventsCollapsed(Fe){a(g,n(Fe))},children:(Fe,lt)=>{Tc(Fe,{})},$$slots:{default:!0}})},vt=qe=>{var Fe=me(),lt=ee(Fe);{var xt=Qe=>{bt(Qe,{get eventsWide(){return e(f)},set eventsWide(et){a(f,n(et))},get eventsCollapsed(){return e(g)},set eventsCollapsed(et){a(g,n(et))},children:(et,gt)=>{ou(et,{})},$$slots:{default:!0}})},$t=Qe=>{var et=me(),gt=ee(et);{var ct=at=>{bt(at,{get eventsWide(){return e(f)},set eventsWide(st){a(f,n(st))},get eventsCollapsed(){return e(g)},set eventsCollapsed(st){a(g,n(st))},children:(st,se)=>{Qu(st,{})},$$slots:{default:!0}})},It=at=>{var st=me(),se=ee(st);{var Ae=X=>{bt(X,{get eventsWide(){return e(f)},set eventsWide(Ee){a(f,n(Ee))},get eventsCollapsed(){return e(g)},set eventsCollapsed(Ee){a(g,n(Ee))},children:(Ee,Le)=>{Nd(Ee)},$$slots:{default:!0}})},ze=X=>{var Ee=me(),Le=ee(Ee);{var St=ae=>{bt(ae,{get eventsWide(){return e(f)},set eventsWide(Ge){a(f,n(Ge))},get eventsCollapsed(){return e(g)},set eventsCollapsed(Ge){a(g,n(Ge))},children:(Ge,Oe)=>{Xd(Ge)},$$slots:{default:!0}})};P(Le,ae=>{t()==="Docs"&&ae(St)},!0)}r(X,Ee)};P(se,X=>{t()==="Config"?X(Ae):X(ze,!1)},!0)}r(at,st)};P(gt,at=>{t()==="Providers"?at(ct):at(It,!1)},!0)}r(Qe,et)};P(lt,Qe=>{t()==="ApiKeys"?Qe(xt):Qe($t,!1)},!0)}r(qe,Fe)};P(Je,qe=>{t()==="Blacklist"?qe(rt):qe(vt,!1)},!0)}r(ge,Ue)};P(Re,ge=>{t()==="Events"?ge(H):ge(Ie,!1)},!0)}r(Ce,xe)};P(ye,Ce=>{t()==="Sessions"?Ce(we):Ce(Pe,!1)},!0)}r(fe,de)};P($e,fe=>{t()==="Scopes"?fe(pe):fe(je,!1)},!0)}r(ve,be)};P(J,ve=>{t()==="Groups"?ve(Z):ve(re,!1)},!0)}r(M,W)};P(O,M=>{t()==="Roles"?M(U):M(Q,!1)},!0)}r(F,z)};P(N,F=>{t()==="Clients"?F(V):F(R,!1)},!0)}r(D,j)};P(p,D=>{t()==="Attributes"?D(S):D(L,!1)},!0)}r(b,x)};P(T,b=>{t()==="Users"?b(k):b(h,!1)})}var y=l(T,2);{var w=b=>{kc(b,{get collapsed(){return e(g)},get wide(){return e(f)}})};P(y,b=>{e(u)!==void 0&&b(w)})}v(m),v(o),Bs("innerWidth",b=>a(u,n(b))),r(_,o),ne()}var rh=A('A rauthy admin account must have MFA enabled. Please navigate to your account and activate MFA. Afterwards, you need to do a logout and log back in.
'),ih=A('You are not assigned to the rauthy_admin role. You do not have access to the admin panel.
');function lh(_,s){le(s,!0);let t=G(s,"selected",15,"Users"),d=C(void 0),i=C(!1),g=C(!1);Ne(async()=>{let o=await Us();if(o.ok){let $=await o.json(),m=await qs();m.ok?(a(d,n($)),a(i,!0)):m.status===406?(a(g,!0),a(d,n({}))):a(d,n({}))}else Oa()});var f=me();Ta(o=>{Aa.title="Admin"});var u=ee(f);{var I=o=>{ua(o,{})},E=o=>{var $=me(),m=ee($);{var T=h=>{var y=rh(),w=l(c(y),2);Se(w,{$$events:{click:()=>window.location.href="/auth/v1/account"},children:(b,x)=>{q();var p=B("ACCOUNT");r(b,p)},$$slots:{default:!0}}),v(y),r(h,y)},k=h=>{var y=me(),w=ee(y);{var b=p=>{var S=ih(),L=l(c(S),2);Se(L,{$$events:{click:()=>window.location.href="/auth/v1/"},children:(D,j)=>{q();var N=B("GO BACK");r(D,N)},$$slots:{default:!0}}),v(S),r(p,S)},x=p=>{sh(p,{get selected(){return t()},set selected(S){t(S)}})};P(w,p=>{e(i)?p(x,!1):p(b)},!0)}r(h,y)};P(m,h=>{e(g)?h(T):h(k,!1)},!0)}r(o,$)};P(u,o=>{!e(d)&&!e(g)?o(I):o(E,!1)})}r(_,f),ne()}export{lh as A};
diff --git a/static/v1/_app/immutable/chunks/AdminMainPre.CPakLWpc.js.br b/static/v1/_app/immutable/chunks/AdminMainPre.CPakLWpc.js.br
new file mode 100644
index 0000000000000000000000000000000000000000..1d828a8515a78cda2f11b5fa0612939c0bd5afd6
GIT binary patch
literal 45059
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