@better-auth-ui/core
Version:
Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.
2,669 lines • 65.4 kB
JavaScript
import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, r as c, s as l, t as ee, u as te } from "./auth-config-Jae3wPlO.js";
import { viewPaths as ne } from "./lib/view-paths.js";
import { t as u } from "./auth-mutation-keys-DCWERLqI.js";
import { t as d } from "./auth-query-keys-B_bcsA3s.js";
import { a as re, i as ie, n as ae, o as oe, r as f, s as se, t as ce } from "./auth-query-retry-Dyv0hsPy.js";
import { t as le } from "./create-auth-plugin-BXWyolC8.js";
import { t as ue } from "./delete-user-mutation-keys-OaHruWak.js";
import { encode as de } from "uqr";
import { matchMutation as fe, matchQuery as p, skipToken as m } from "@tanstack/query-core";
//#region src/config/additional-fields-config.ts
var pe = 300;
function h(e) {
return e.defaultValue == null ? e.type !== "boolean" && null : e.defaultValue;
}
function me(e) {
return Object.fromEntries(e.map((e) => [e.name, h(e)]));
}
function he(e, t) {
let n = {};
for (let r of e) !r.readOnly && r.name in t && (n[r.name] = t[r.name] ?? null);
return n;
}
function ge(e, t, n) {
if (e.required) return t == null || t === "" || e.type === "boolean" && t !== !0 || typeof t == "number" && !Number.isFinite(t) || t instanceof Date && Number.isNaN(t.getTime()) ? n : void 0;
}
async function _e(e, t) {
try {
await e.validate?.(t);
return;
} catch (e) {
return e instanceof Error ? e.message : String(e);
}
}
function g(e, t) {
if (e.type === "boolean") return t === "on" || t === "true";
if (t != null) {
if (t === "") return null;
if (e.type === "number") {
let e = Number(t);
return Number.isNaN(e) ? void 0 : e;
}
if (e.type === "date") {
let e = new Date(t);
return Number.isNaN(e.getTime()) ? void 0 : e;
}
return t;
}
}
async function ve(e, t) {
let n = {};
for (let r of e) {
if (r.readOnly) continue;
let e = g(r, t.get(r.name));
await r.validate?.(e), e !== void 0 && (n[r.name] = e);
}
return n;
}
function ye(e, t) {
return e.map((e) => {
let n = t[e.name];
return n !== null && typeof n != "string" && typeof n != "number" && typeof n != "boolean" && !(n instanceof Date) ? e : {
...e,
defaultValue: n
};
});
}
function be(e, t) {
if (e != null && e !== "") {
if (e instanceof Date) return e.toLocaleString(t);
if (typeof e == "string") {
let n = /^(\d{4})-(\d{2})-(\d{2})$/.exec(e);
if (n) {
let [, e, r, i] = n;
return new Date(Number(e), Number(r) - 1, Number(i)).toLocaleString(t);
}
let r = new Date(e);
return /^\d{4}-\d{2}-\d{2}T/.test(e) && !Number.isNaN(r.getTime()) ? r.toLocaleString(t) : e;
}
if (typeof e == "number" || typeof e == "boolean") return String(e);
}
}
function xe(e) {
if (e.inputType) return e.inputType;
switch (e.type) {
case "number": return "number";
case "boolean": return "switch";
case "date": return "date";
default: return "input";
}
}
//#endregion
//#region src/config/social-provider-config.ts
var _ = (e) => typeof e == "string" ? e : e.id, v = (e) => typeof e != "string";
//#endregion
//#region src/lib/auth-error-presentation.ts
function Se(e) {
let t = e?.errorPresentation;
return t === "inline" || t === "silent" ? t : "toast";
}
//#endregion
//#region src/lib/auth-query-options.ts
function Ce(e, t, n) {
return {
queryKey: [...t, n?.query ?? null],
queryFn: ({ signal: t }) => e({
...n,
fetchOptions: f(n?.fetchOptions, t)
})
};
}
//#endregion
//#region src/lib/auth-redirect.ts
var we = /^https?:\/\//i, y = "reauthenticate";
function Te(e, t, n) {
return `${e.replace(/\/+$/, "")}/${[t, n].map((e) => e.replace(/^\/+|\/+$/g, "")).filter(Boolean).join("/")}`;
}
function Ee(e, t) {
let n = e.indexOf("#"), r = n === -1 ? "" : e.slice(n), i = n === -1 ? e : e.slice(0, n), a = i.indexOf("?"), o = a === -1 ? i : i.slice(0, a), s = new URLSearchParams(a === -1 ? "" : i.slice(a + 1));
return s.set("redirectTo", t), `${o}?${s}${r}`;
}
function De(e, t) {
let n = new URL(t, e.origin);
return n.searchParams.set(y, "true"), n.searchParams.set("redirectTo", `${e.pathname}${e.search}${e.hash}`), `${n.pathname}${n.search}${n.hash}`;
}
function Oe(e) {
return e.searchParams.get(y) === "true";
}
function ke(e) {
for (let t of e) {
let e = t.codePointAt(0);
if (t === "\\" || e === void 0 || e <= 31 || e === 127) return !0;
}
return !1;
}
function b(e, t) {
if (!e || ke(e)) return "/";
let n = e.trim();
if (!n || n.startsWith("//") || !n.startsWith("/") && !we.test(n)) return "/";
try {
let e = new URL(t), r = new URL(n, e);
return r.origin !== e.origin || r.username || r.password ? "/" : `${r.pathname}${r.search}${r.hash}`;
} catch {
return "/";
}
}
function x(e, t, n) {
let r = b(e.searchParams.get("redirectTo"), e.origin), i = new URL(r, e.origin).pathname === e.pathname ? "/" : r;
if (t) return {
type: "redirect",
to: i
};
let a = new URL(n, e.origin);
return a.searchParams.set("redirectTo", `${e.pathname}${e.search}${e.hash}`), {
type: "signIn",
to: `${a.pathname}${a.search}${a.hash}`
};
}
//#endregion
//#region src/lib/auth-result.ts
var S = /* @__PURE__ */ new Set([
"access_denied",
"authorization_declined",
"cancelled",
"canceled",
"user_cancelled",
"user_canceled"
]), C = /* @__PURE__ */ new Set([
"expired_token",
"invalid_token",
"token_expired"
]), w = /* @__PURE__ */ new Set([
"account_already_linked_to_different_user",
"account_not_linked",
"email_does_not_match",
"unable_to_link_account"
]), Ae = /* @__PURE__ */ new Set([
"internal_server_error",
"invalid_callback_request",
"invalid_code",
"issuer_mismatch",
"issuer_missing",
"no_callback_url",
"no_code",
"nonce_binding_missing",
"oauth_provider_not_found",
"provider_not_found",
"state_mismatch",
"state_not_found",
"unable_to_get_user_info"
]), T = (e) => e?.trim().toLowerCase().replace(/[\s-]+/g, "_") ?? "";
function je(e) {
let t = T(e.get("flow") ?? e.get("source"));
return [
"account_link",
"account_linking",
"link_account"
].includes(t) ? "accountLinking" : [
"email",
"email_verification",
"verify_email"
].includes(t) ? "emailVerification" : [
"password",
"password_reset",
"reset_password"
].includes(t) ? "passwordReset" : [
"oauth",
"social",
"social_sign_in"
].includes(t) ? "oauth" : "unknown";
}
var E = "https://better-auth-ui.local";
function D(e) {
let t = e?.trim();
if (t?.startsWith("/")) try {
return new URL(t, E).origin === E ? t : void 0;
} catch {
return;
}
}
function Me(e, t = "success") {
let n = typeof e == "string" ? new URLSearchParams(e.startsWith("?") ? e.slice(1) : e) : e, r = T(n.get("error")) || T(n.get("code")), i = T(n.get("result")) || T(n.get("status")), a = je(n), o = D(n.get("redirectTo") ?? n.get("returnTo"));
return r ? S.has(r) ? {
action: "signIn",
code: r,
flow: a === "unknown" ? "oauth" : a,
intent: "warning",
reason: "cancelled"
} : C.has(r) ? {
action: a === "passwordReset" ? "forgotPassword" : a === "emailVerification" ? "verifyEmail" : "signIn",
code: r,
flow: a,
intent: "danger",
reason: "expiredLink"
} : w.has(r) ? {
action: "accountSettings",
code: r,
flow: "accountLinking",
intent: "danger",
reason: "accountLinkConflict"
} : r === "signup_disabled" ? {
action: "signIn",
code: r,
flow: a,
intent: "danger",
reason: "signupDisabled"
} : r === "email_not_verified" ? {
action: "verifyEmail",
code: r,
flow: a,
intent: "warning",
reason: "emailNotVerified"
} : r === "email_not_found" ? {
action: "signIn",
code: r,
flow: a,
intent: "danger",
reason: "missingEmail"
} : Ae.has(r) ? {
action: "signIn",
code: r,
flow: a === "unknown" ? "oauth" : a,
intent: "danger",
reason: "callbackFailed"
} : {
action: "signIn",
code: r,
flow: a,
intent: "danger",
reason: "genericError"
} : ["cancelled", "canceled"].includes(i) ? {
action: "signIn",
flow: a,
intent: "warning",
reason: "cancelled"
} : ["email_verified", "verified"].includes(i) || i === "success" && a === "emailVerification" ? {
action: o ? "continue" : "signIn",
flow: "emailVerification",
intent: "success",
reason: "emailVerified",
redirectTo: o
} : i === "account_linked" || i === "success" && a === "accountLinking" ? {
action: o ? "continue" : "accountSettings",
flow: "accountLinking",
intent: "success",
reason: "accountLinked",
redirectTo: o
} : i === "password_reset" || i === "success" && a === "passwordReset" ? {
action: "signIn",
flow: "passwordReset",
intent: "success",
reason: "passwordReset"
} : ["signup_complete", "signed_up"].includes(i) ? {
action: o ? "continue" : "signIn",
flow: a,
intent: "success",
reason: "signupComplete",
redirectTo: o
} : t === "danger" ? {
action: "signIn",
flow: a,
intent: "danger",
reason: "genericError"
} : {
action: o ? "continue" : "signIn",
flow: a,
intent: "success",
reason: "genericSuccess",
redirectTo: o
};
}
function Ne(e, t) {
let n = t.auth;
return {
accountLinkConflict: {
description: n.callbackAccountLinkConflictDescription,
title: n.callbackAccountLinkConflictTitle
},
accountLinked: {
description: n.callbackAccountLinkedDescription,
title: n.callbackAccountLinkedTitle
},
callbackFailed: {
description: n.callbackFailedDescription,
title: n.callbackFailedTitle
},
cancelled: {
description: n.callbackCancelledDescription,
title: n.callbackCancelledTitle
},
emailNotVerified: {
description: n.callbackEmailNotVerifiedDescription,
title: n.callbackEmailNotVerifiedTitle
},
emailVerified: {
description: n.callbackEmailVerifiedDescription,
title: n.callbackEmailVerifiedTitle
},
expiredLink: {
description: n.callbackExpiredLinkDescription,
title: n.callbackExpiredLinkTitle
},
genericError: {
description: n.callbackGenericErrorDescription,
title: n.callbackGenericErrorTitle
},
genericSuccess: {
description: n.callbackGenericSuccessDescription,
title: n.callbackGenericSuccessTitle
},
missingEmail: {
description: n.callbackMissingEmailDescription,
title: n.callbackMissingEmailTitle
},
passwordReset: {
description: n.callbackPasswordResetDescription,
title: n.callbackPasswordResetTitle
},
signupComplete: {
description: n.callbackSignupCompleteDescription,
title: n.callbackSignupCompleteTitle
},
signupDisabled: {
description: n.callbackSignupDisabledDescription,
title: n.callbackSignupDisabledTitle
}
}[e.reason];
}
//#endregion
//#region src/lib/backup-codes.ts
function Pe(e, t, n) {
return [
t.backupCodesForWebsite.replace("{{website}}", n),
t.backupCodesDescription,
"",
...e
].join("\n");
}
var Fe = {
version: "2.0",
providers: [
{
id: "aamra",
domains: ["aamra.com.bd"],
type: "public_provider",
companyProvider: "Aamra Mail",
loginUrl: "https://mail.aamra.com.bd"
},
{
id: "abvbg",
type: "public_provider",
companyProvider: "abv.bg",
domains: ["abv.bg"],
mx: ["pmx.abv.bg", "smx.abv.bg"],
loginUrl: "https://passport.abv.bg/app/profiles/login"
},
{
id: "alibab",
domains: [
"aliyun.com",
"alibaba.com",
"taobao.com",
"tmall.com"
],
mx: [
"mx1.qiye.aliyun.com",
"mx2.qiye.aliyun.com",
"mx3.qiye.aliyun.com"
],
txt: ["spf:spf.qiye.aliyun.com"],
type: "public_provider",
companyProvider: "Alibaba Mail",
loginUrl: "https://mail.aliyun.com"
},
{
id: "amazon",
mx: [
"awsapps.com",
"inbound-smtp.us-east-1.awsapps.com",
"inbound-smtp.us-west-2.awsapps.com",
"inbound-smtp.eu-west-1.awsapps.com",
"inbound-smtp.ap-southeast-2.awsapps.com",
"workmail.amazonaws.com"
],
txt: [
"amazonses:workmail",
"spf:amazonses.com",
"spf:workmail.us-east-1.amazonaws.com"
],
type: "custom_provider",
companyProvider: "Amazon WorkMail",
loginUrl: "https://workmail.aws.amazon.com/"
},
{
id: "anonad",
domains: ["anonaddy.com"],
type: "public_provider",
companyProvider: "AnonAddy",
loginUrl: "https://anonaddy.com"
},
{
id: "aol",
domains: [
"aol.com",
"love.com",
"ygm.com",
"wow.com",
"aim.com"
],
type: "public_provider",
companyProvider: "AOL Mail",
loginUrl: "https://mail.aol.com",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !1,
strip: !1
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "apple_relay",
domains: ["privaterelay.appleid.com"],
mx: ["privaterelay.appleid.com"],
txt: ["_spf.relay.apple.com"],
type: "proxy_service",
companyProvider: "Apple Private Relay",
loginUrl: null
},
{
id: "att",
domains: [
"ameritech.net",
"att.net",
"flash.net",
"pacbell.net",
"sbcglobal.net",
"snet.net"
],
type: "public_provider",
companyProvider: "AT&T Mail",
loginUrl: "https://currently.att.yahoo.com"
},
{
id: "autistici",
domains: ["autistici.org"],
mx: ["mx.autistici.org"],
txt: ["spf1:mx a ~all"],
type: "public_provider",
companyProvider: "Autistici.org",
loginUrl: "https://accounts.autistici.org/"
},
{
id: "bbox",
domains: ["bbox.fr"],
type: "public_provider",
mx: ["mx.bbox.fr"],
companyProvider: "Bouygues Telecom Mail",
loginUrl: "https://www.bbox.fr/webmail"
},
{
id: "bd",
domains: ["bdmail.net"],
type: "public_provider",
companyProvider: "BD Mail",
loginUrl: "https://bdmail.net"
},
{
id: "bell",
domains: ["bell.net", "sympatico.ca"],
type: "public_provider",
mx: ["mx.bell.net"],
companyProvider: "Bell Mail",
loginUrl: "https://webmail.bell.net"
},
{
id: "bg",
domains: ["mail.bg"],
type: "public_provider",
companyProvider: "Mail.bg",
loginUrl: "https://www.mail.bg"
},
{
id: "biglob",
domains: ["biglobe.ne.jp"],
mx: ["bgmgate1.biglobe.ne.jp", "bgmgate2.biglobe.ne.jp"],
txt: ["spf:spf01.biglobe.ne.jp include:spf04.biglobe.ne.jp include:spf06.biglobe.ne.jp ~all"],
type: "public_provider",
companyProvider: "Biglobe",
loginUrl: "https://mail.biglobe.ne.jp"
},
{
id: "bigpond",
domains: ["bigpond.com", "bigpond.net.au"],
type: "public_provider",
mx: ["mx.bigpond.com", "mx.bigpond.net.au"],
companyProvider: "BigPond Mail",
loginUrl: "https://www.my.telstra.com.au/myaccount/home/email"
},
{
id: "blueho",
mx: ["bluehost.com", "mailchannels.net"],
txt: ["spf:spf.bluehost.com"],
type: "custom_provider",
companyProvider: "Bluehost Email",
loginUrl: "https://webmail.bluehost.com"
},
{
id: "bluewi",
domains: ["bluewin.ch"],
type: "public_provider",
companyProvider: "Bluewin Mail",
loginUrl: "https://webmail.bluewin.ch"
},
{
id: "bol",
domains: ["bol.com.br"],
type: "public_provider",
companyProvider: "BOL Mail",
loginUrl: "https://email.bol.com.br"
},
{
id: "bsnl",
domains: ["bsnl.in"],
type: "public_provider",
mx: ["mx.bsnl.in"],
companyProvider: "BSNL Mail",
loginUrl: "https://mail.bsnl.in"
},
{
id: "bt",
domains: ["bt.com", "btinternet.com"],
type: "public_provider",
mx: ["mx.btinternet.com"],
companyProvider: "BT Internet Mail",
loginUrl: "https://signin1.bt.com"
},
{
id: "centru",
domains: ["centrum.cz", "centrum.sk"],
type: "public_provider",
companyProvider: "Centrum Mail",
loginUrl: "https://www.centrum.cz"
},
{
id: "centurylink",
domains: ["centurylink.net", "q.com"],
type: "public_provider",
mx: ["mx.centurylink.net", "mx.q.com"],
companyProvider: "CenturyLink Email",
loginUrl: "https://webmail.centurylink.net"
},
{
id: "charter",
domains: [
"charter.net",
"spectrum.net",
"twc.com",
"rr.com"
],
type: "public_provider",
mx: [
"mx.charter.net",
"mx.spectrum.net",
"mx.twc.com",
"mx.rr.com"
],
companyProvider: "Charter/Spectrum Email",
loginUrl: "https://mail.twc.com"
},
{
id: "cloudflare",
mx: [
"mx.cloudflare.com",
"route1.mx.cloudflare.net",
"route2.mx.cloudflare.net",
"route3.mx.cloudflare.net"
],
txt: ["spf:_spf.cloudflare.com", "cloudflare-verify="],
type: "proxy_service",
companyProvider: "Cloudflare Email Routing",
loginUrl: null
},
{
id: "com",
domains: [
"consultant.com",
"email.com",
"europe.com",
"inbox.com",
"mail.com",
"myself.com",
"usa.com"
],
type: "public_provider",
companyProvider: "Mail.com",
loginUrl: "https://www.mail.com"
},
{
id: "comcas",
domains: ["comcast.net"],
type: "public_provider",
companyProvider: "Comcast/Xfinity",
loginUrl: "https://connect.xfinity.com/appsuite/"
},
{
id: "counte",
domains: ["countermail.com"],
type: "public_provider",
companyProvider: "CounterMail",
loginUrl: "https://countermail.com"
},
{
id: "cox",
domains: ["cox.net"],
type: "public_provider",
mx: ["mx.coxmail.com"],
companyProvider: "Cox Email",
loginUrl: "https://webmail.cox.net"
},
{
id: "daum",
domains: ["daum.net"],
mx: ["hanmail.net"],
txt: ["spf:_spf.daum.net ~all"],
type: "public_provider",
companyProvider: "Daum",
loginUrl: "https://mail.daum.net/"
},
{
id: "disroot",
domains: ["disroot.org"],
mx: ["mx.disroot.org"],
txt: ["spf1:mx ~all"],
type: "public_provider",
companyProvider: "Disroot",
loginUrl: "https://mail.disroot.org"
},
{
id: "duck",
domains: ["duck.com"],
type: "proxy_service",
companyProvider: "DuckDuckGo Email Protection",
loginUrl: "https://duckduckgo.com/email/",
mx: ["duck.com"]
},
{
id: "earthlink",
type: "public_provider",
companyProvider: "EarthLink",
domains: ["earthlink.net"],
mx: [
"mx01.earthlink-vadesecure.net",
"mx02.earthlink-vadesecure.net",
"mx03.earthlink-vadesecure.net",
"mx04.earthlink-vadesecure.net"
],
loginUrl: "https://webmail1.earthlink.net/login"
},
{
id: "eircom",
domains: ["eircom.net"],
type: "public_provider",
companyProvider: "Eircom Mail",
loginUrl: "https://webmail.eircom.net"
},
{
id: "fast",
domains: ["fastmail.com", "fastmail.fm"],
mx: [
"messagingengine.com",
"in1-smtp.messagingengine.com",
"in2-smtp.messagingengine.com"
],
txt: ["spf:spf.messagingengine.com"],
type: "public_provider",
companyProvider: "FastMail",
loginUrl: "https://www.fastmail.com",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "fence",
domains: ["mailfence.com"],
mx: [
"mailfence.com",
"smtp1.mailfence.com",
"smtp2.mailfence.com"
],
txt: ["mailfence-verification"],
type: "public_provider",
companyProvider: "Mailfence",
loginUrl: "https://mailfence.com"
},
{
id: "freefr",
domains: ["free.fr"],
type: "public_provider",
companyProvider: "Free.fr",
loginUrl: "https://webmail.free.fr/"
},
{
id: "freemailhu",
type: "public_provider",
companyProvider: "Freemail",
domains: ["freemail.hu"],
mx: ["fmx.freemail.hu"],
loginUrl: "https://accounts.freemail.hu/a/login"
},
{
id: "freenet",
domains: ["freenet.de"],
type: "public_provider",
mx: ["mx.freenet.de"],
companyProvider: "Freenet Mail",
loginUrl: "https://mail.freenet.de"
},
{
id: "frontier",
domains: ["frontier.com"],
type: "public_provider",
mx: ["mx.frontier.com"],
companyProvider: "Frontier Mail",
loginUrl: "https://login.frontier.com/webmail"
},
{
id: "g",
domains: ["gmail.com", "googlemail.com"],
type: "public_provider",
companyProvider: "Gmail",
loginUrl: "https://mail.google.com/mail/",
alias: {
dots: {
ignore: !0,
strip: !0
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "globo",
domains: ["globo.com"],
type: "public_provider",
companyProvider: "Globo Mail",
loginUrl: "https://email.globo.com"
},
{
id: "gmx",
domains: [
"gmx.com",
"gmx.net",
"gmx.de",
"gmx.at",
"gmx.ch",
"gmx.org"
],
type: "public_provider",
companyProvider: "GMX",
loginUrl: "https://www.gmx.net"
},
{
id: "godadd",
domains: ["godaddy.com", "secureserver.net"],
mx: [
"smtp.secureserver.net",
"mailstore1.secureserver.net",
"mailstore2.secureserver.net",
"mx1.secureserver.net",
"mx2.secureserver.net",
"domain-com.mail.protection.outlook.com"
],
txt: [
"spf:secureserver.net",
"spf:spf.protection.outlook.com",
"godaddy-verification="
],
type: "public_provider",
companyProvider: "GoDaddy",
loginUrl: "https://sso.godaddy.com/?realm=pass&app=email"
},
{
id: "gworks",
mx: [
"google.com",
"googlemail.com",
"aspmx.l.google.com",
"aspmx2.googlemail.com",
"aspmx3.googlemail.com"
],
txt: ["spf:_spf.google.com", "gsv:"],
type: "custom_provider",
companyProvider: "Google Workspace",
loginUrl: "https://mail.google.com"
},
{
id: "han",
domains: ["hanmail.net"],
type: "public_provider",
companyProvider: "Hanmail",
loginUrl: "https://mail.hanmail.net"
},
{
id: "hey",
domains: ["hey.com"],
type: "public_provider",
companyProvider: "HEY (37signals)",
loginUrl: "https://app.hey.com"
},
{
id: "hostga",
domains: ["hostgator.com"],
mx: ["mail.yourdomain.com"],
txt: ["spf:websitewelcome.com"],
type: "public_provider",
companyProvider: "HostGator",
loginUrl: "https://portal.hostgator.com/login"
},
{
id: "hostin",
domains: ["hostinger.com"],
mx: [
"mx1.hostinger.com",
"mx2.hostinger.com",
"mx3.hostinger.com"
],
txt: ["spf:spf.hostinger.com", "hostinger-verification="],
type: "public_provider",
companyProvider: "Hostinger",
loginUrl: "https://mail.hostinger.com"
},
{
id: "hush",
domains: ["hushmail.com"],
mx: ["plsmtp1.hushmail.com", "plsmtp2.hushmail.com"],
txt: ["spf:4429584.spf01.hubspotemail.net ip4:65.39.178.0/24 ip4:64.69.70.192/28 -all"],
type: "public_provider",
companyProvider: "Hushmail",
loginUrl: "https://www.hushmail.com/signin/"
},
{
id: "icloud",
domains: [
"icloud.com",
"me.com",
"mac.com"
],
mx: ["mx01.mail.icloud.com", "mx02.mail.icloud.com"],
txt: ["apple-domain-verification=", "spf:icloud.com"],
type: "public_provider",
companyProvider: "iCloud Mail",
loginUrl: "https://www.icloud.com/mail",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "iij",
domains: ["iij.ad.jp"],
type: "public_provider",
companyProvider: "IIJ",
loginUrl: "https://mail.iij.ad.jp"
},
{
id: "indiat",
domains: ["indiatimes.com"],
type: "public_provider",
companyProvider: "IndiatTimes Mail",
loginUrl: "https://mail.indiatimes.com"
},
{
id: "interi",
domains: ["interia.pl"],
type: "public_provider",
companyProvider: "Interia Mail",
loginUrl: "https://poczta.interia.pl"
},
{
id: "ionos",
domains: [
"ionos.com",
"1and1.com",
"ionos.de"
],
mx: [
"mx00.ionos.com",
"mx01.ionos.com",
"mx00.1and1.com",
"mx01.1and1.com",
"mx00.kundenserver.de",
"mx01.kundenserver.de"
],
txt: [
"spf:_spf.perfora.net",
"spf:_spf.kundenserver.de",
"spf:_spf.ionos.com",
"ionos-domain-verification="
],
type: "public_provider",
companyProvider: "IONOS",
loginUrl: "https://mail.ionos.com"
},
{
id: "juno",
domains: ["juno.com"],
type: "public_provider",
companyProvider: "Juno Mail",
loginUrl: "https://webmail.juno.com"
},
{
id: "kolabn",
domains: ["kolabnow.com"],
type: "public_provider",
companyProvider: "Kolab Now",
loginUrl: "https://kolabnow.com"
},
{
id: "kpn",
domains: ["kpnmail.nl", "hetnet.nl"],
type: "public_provider",
companyProvider: "KPN Mail",
loginUrl: "https://www.kpn.nl/webmail"
},
{
id: "lapost",
domains: ["laposte.net"],
mx: ["smtpz4.laposte.net"],
txt: ["spf:_spfbloc2.laposte.net include:_spf.lpn.as8677.net -all"],
type: "public_provider",
companyProvider: "La Poste",
loginUrl: "https://laposte.net/"
},
{
id: "libero",
domains: ["libero.it"],
type: "public_provider",
companyProvider: "Libero",
loginUrl: "https://login.libero.it/"
},
{
id: "link3",
domains: ["link3.net"],
type: "public_provider",
companyProvider: "Link3 Mail",
loginUrl: "https://mail.link3.net"
},
{
id: "livejp",
domains: ["live.jp"],
type: "public_provider",
companyProvider: "Live.jp",
loginUrl: "https://login.live.com"
},
{
id: "lycos",
domains: ["lycos.com"],
type: "public_provider",
companyProvider: "Lycos Mail",
loginUrl: "https://mail.lycos.com"
},
{
id: "mailboxorg",
domains: ["mailbox.org"],
mx: ["mx.mailbox.org"],
txt: ["spf:mailbox.org -all"],
type: "public_provider",
companyProvider: "Mailbox.org",
loginUrl: "https://mailbox.org"
},
{
id: "migadu",
domains: ["migadu.com"],
type: "public_provider",
companyProvider: "Migadu",
loginUrl: "https://migadu.com"
},
{
id: "movist",
domains: ["movistar.es"],
type: "public_provider",
companyProvider: "Movistar Mail",
loginUrl: "https://webmail.movistar.es"
},
{
id: "ms365b",
mx: [
"outlook.com",
"microsoft.com",
"office365.com",
"protection.outlook.com",
"mail.protection.outlook.com"
],
txt: [
"spf:spf.protection.outlook.com",
"ms",
"microsoft-domain-verification"
],
type: "custom_provider",
companyProvider: "Microsoft 365 (Business)",
loginUrl: "https://outlook.office365.com"
},
{
id: "msol",
domains: [
"hotmail.ca",
"hotmail.co.jp",
"hotmail.co.uk",
"hotmail.com",
"hotmail.com.au",
"hotmail.de",
"hotmail.es",
"hotmail.fr",
"hotmail.it",
"hotmail.nl",
"hotmail.se",
"live.ca",
"live.co.uk",
"live.com",
"live.com.au",
"live.fr",
"live.it",
"live.nl",
"msn.cn",
"msn.com",
"outlook.cn",
"outlook.com",
"outlook.jp",
"outlook.sa"
],
type: "public_provider",
companyProvider: "Microsoft Outlook",
loginUrl: "https://outlook.office365.com",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "mtn",
domains: ["mtnonline.com"],
type: "public_provider",
companyProvider: "MTN Mail",
loginUrl: "https://webmail.mtnonline.com"
},
{
id: "mxrecord_io",
domains: ["mxrecord.io"],
mx: ["mx1.mxrecord.io", "mx2.mxrecord.io"],
txt: ["v=spf1 include:_spf.mxrecord.io -all"],
type: "proxy_service",
companyProvider: "MXRecord.io",
loginUrl: null
},
{
id: "mxrecord_mx",
domains: ["mxrecord.mx"],
mx: ["mx1.mxrecord.mx", "mx2.mxrecord.mx"],
txt: ["v=spf1 include:_spf.mxrecord.mx -all"],
type: "proxy_service",
companyProvider: "MXRecord.mx",
loginUrl: null
},
{
id: "namech",
domains: ["namecheap.com", "privateemail.com"],
mx: ["mx1.privateemail.com", "mx2.privateemail.com"],
txt: ["spf:spf.privateemail.com"],
type: "public_provider",
companyProvider: "Namecheap Private Email",
loginUrl: "https://privateemail.com"
},
{
id: "nat",
domains: ["nate.com"],
type: "public_provider",
companyProvider: "Nate Mail",
loginUrl: "https://mail.nate.com"
},
{
id: "naver",
domains: ["naver.com"],
type: "public_provider",
companyProvider: "Naver",
loginUrl: "https://mail.naver.com/"
},
{
id: "neospa",
domains: ["neo.space"],
mx: [
"neo.space",
"mx0001.neo.space",
"mx0002.neo.space"
],
txt: ["neo-space-verification"],
type: "public_provider",
companyProvider: "Neo.space Email",
loginUrl: "https://neo.space/mail"
},
{
id: "neteas",
domains: [
"126.com",
"163.com",
"188.com",
"yeah.net"
],
type: "public_provider",
companyProvider: "NetEase Mail",
loginUrl: "https://mail.126.com"
},
{
id: "netzero",
domains: ["netzero.net", "netzero.com"],
type: "public_provider",
companyProvider: "NetZero Mail",
loginUrl: "https://webmail.netzero.net"
},
{
id: "nifty",
domains: ["nifty.com"],
type: "public_provider",
companyProvider: "Nifty Mail",
loginUrl: "https://mail.nifty.com"
},
{
id: "numericable",
domains: ["numericable.fr"],
type: "public_provider",
mx: ["mx.numericable.fr"],
companyProvider: "Numericable Mail",
loginUrl: "https://webmail.numericable.fr"
},
{
id: "ocn",
domains: ["ocn.ne.jp"],
type: "public_provider",
companyProvider: "OCN",
loginUrl: "https://mail.ocn.jp/"
},
{
id: "oi",
domains: ["oi.com.br"],
type: "public_provider",
mx: ["mx.oi.com.br"],
companyProvider: "Oi Mail",
loginUrl: "https://email.oi.com.br"
},
{
id: "onecom",
mx: [
"one.com",
"mailpod12-cph3.one.com",
"pub.mailpod12-cph3.one.com"
],
txt: ["include:_spf.one.com"],
type: "custom_provider",
companyProvider: "One.com Email",
loginUrl: "https://www.one.com/mail/"
},
{
id: "onet",
domains: [
"onet.pl",
"poczta.onet.pl",
"op.pl"
],
type: "public_provider",
companyProvider: "Onet Mail",
loginUrl: "https://poczta.onet.pl"
},
{
id: "onlinemail",
mx: ["onlinemail.io"],
type: "custom_provider",
companyProvider: "Onlinemail",
loginUrl: "https://www.onlinemail.io/"
},
{
id: "optimum",
type: "public_provider",
companyProvider: "Optimum",
domains: ["optimum.net", "optonline.net"],
mx: ["mx.altice.prod.cloud.openwave.ai"],
loginUrl: "https://webmail.optimum.net"
},
{
id: "optus",
domains: ["optusnet.com.au"],
type: "public_provider",
mx: ["mx.optusnet.com.au"],
companyProvider: "OptusNet Mail",
loginUrl: "https://webmail.optusnet.com.au"
},
{
id: "orange",
domains: ["orange.fr", "wanadoo.fr"],
mx: ["orange.fr"],
txt: ["spf:_spf_gp.wanadoo.fr include:spffed-ip.orange.com include:_spf_other.wanadoo.fr ~all"],
type: "public_provider",
companyProvider: "Orange",
loginUrl: "https://login.orange.fr/"
},
{
id: "planet",
domains: ["planet.nl"],
type: "public_provider",
companyProvider: "Planet.nl",
loginUrl: "https://webmail.planet.nl"
},
{
id: "plusnet",
domains: ["plus.com", "plusnet.com"],
type: "public_provider",
companyProvider: "Plusnet Mail",
loginUrl: "https://webmail.plus.net"
},
{
id: "posteo",
domains: ["posteo.de", "posteo.net"],
type: "public_provider",
companyProvider: "Posteo",
loginUrl: "https://posteo.de"
},
{
id: "privatemail",
domains: ["privatemail.com"],
mx: ["mx.privatemail.com"],
txt: ["spf:spf.privatemail.com -all"],
type: "public_provider",
companyProvider: "PrivateMail",
loginUrl: "https://mail.privatemail.com/"
},
{
id: "proton",
domains: [
"proton.me",
"protonmail.com",
"protonmail.ch",
"pm.me"
],
mx: [
"protonmail.ch",
"mail.protonmail.ch",
"mailsec.protonmail.ch"
],
txt: ["spf:_spf.protonmail.ch", "protonmail-verification="],
type: "public_provider",
companyProvider: "ProtonMail",
loginUrl: "https://mail.proton.me",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "proximus",
mx: ["mx.glb.proximus.be"],
txt: [
"spf:ispmail.spf.secure-mail.be",
"spf:bgc.spf.secure-mail.be",
"spf:pxspartners.spf.secure-mail.be",
"spf:pxspartners2.spf.secure-mail.be"
],
type: "custom_provider",
companyProvider: "Proximus Mail",
loginUrl: "https://www.proximus.be/login/en/webmail.html"
},
{
id: "qq",
domains: ["qq.com", "foxmail.com"],
type: "public_provider",
companyProvider: "QQ Mail",
loginUrl: "https://mail.qq.com"
},
{
id: "racksp",
mx: [
"emailsrvr.com",
"rackspace.com",
"rackspacecloud.com"
],
txt: ["spf:emailsrvr.com"],
type: "custom_provider",
companyProvider: "Rackspace Email",
loginUrl: "https://apps.rackspace.com/index.php"
},
{
id: "rakute",
domains: ["rakuten.co.jp"],
type: "public_provider",
companyProvider: "Rakuten Mail",
loginUrl: "https://mail.rakuten.co.jp"
},
{
id: "ramble",
domains: [
"rambler.ru",
"lenta.ru",
"autorambler.ru"
],
type: "public_provider",
companyProvider: "Rambler Mail",
loginUrl: "https://mail.rambler.ru"
},
{
id: "rediff",
domains: ["rediffmail.com", "rediff.com"],
type: "public_provider",
companyProvider: "Rediffmail",
loginUrl: "https://mail.rediff.com"
},
{
id: "rogers",
domains: ["rogers.com"],
type: "public_provider",
mx: ["mx.rogers.com"],
companyProvider: "Rogers Email",
loginUrl: "https://rogersmembercentre.com/rmcapp/remc.html#/signin"
},
{
id: "ru",
domains: [
"mail.ru",
"bk.ru",
"list.ru",
"inbox.ru"
],
type: "public_provider",
companyProvider: "Mail.ru",
loginUrl: "https://mail.ru/",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "runbox",
domains: ["runbox.com"],
type: "public_provider",
companyProvider: "Runbox",
loginUrl: "https://runbox.com/mail"
},
{
id: "seznam",
domains: [
"seznam.cz",
"email.cz",
"post.cz"
],
type: "public_provider",
companyProvider: "Seznam.cz",
loginUrl: "https://email.seznam.cz"
},
{
id: "sfr",
domains: ["sfr.fr"],
type: "public_provider",
mx: ["mx.sfr.fr"],
companyProvider: "SFR Mail",
loginUrl: "https://webmail.sfr.fr"
},
{
id: "shaw",
domains: ["shaw.ca"],
type: "public_provider",
mx: ["mx.shaw.ca"],
companyProvider: "Shaw Email",
loginUrl: "https://webmail.shaw.ca"
},
{
id: "sify",
domains: ["sify.com", "sifymail.com"],
type: "public_provider",
companyProvider: "Sify Mail",
loginUrl: "https://mail.sify.com"
},
{
id: "simple",
domains: [
"8alias.com",
"8shield.net",
"aleeas.com",
"dralias.com",
"silomails.com",
"simplelogin.com",
"simplelogin.fr",
"simplelogin.io",
"slmail.me",
"slmails.com"
],
type: "public_provider",
companyProvider: "SimpleLogin",
loginUrl: "https://app.simplelogin.io"
},
{
id: "simply",
mx: ["spamfilter.io", "mx.spamfilter.io"],
txt: ["include:spf.key-systems.net"],
type: "custom_provider",
companyProvider: "Simply.com Email",
loginUrl: "https://www.simply.com/en/email"
},
{
id: "sina",
domains: [
"sina.com",
"sina.cn",
"sina.com.cn"
],
type: "public_provider",
companyProvider: "Sina Mail",
loginUrl: "https://mail.sina.com.cn"
},
{
id: "sitegr",
domains: ["siteground.com"],
mx: [
"mx10.antispam.mailspamprotection.com",
"mx20.antispam.mailspamprotection.com",
"mx30.antispam.mailspamprotection.com"
],
txt: ["spf:_spf.mailspamprotection.com"],
type: "custom_provider",
companyProvider: "SiteGround",
loginUrl: "https://tools.siteground.com/email"
},
{
id: "sky",
domains: ["sky.com"],
type: "public_provider",
mx: ["mx.sky.com"],
companyProvider: "Sky Mail",
loginUrl: "https://skyid.sky.com/signin/email"
},
{
id: "skynet",
domains: ["skynet.be", "proximus.be"],
type: "public_provider",
companyProvider: "Proximus Mail",
loginUrl: "https://www.proximus.be/login/en/webmail.html"
},
{
id: "startmail",
domains: ["startmail.com"],
mx: ["mx.startmail.com"],
txt: ["spf:spf.startmail.com -all"],
type: "public_provider",
companyProvider: "StartMail",
loginUrl: "https://startmail.com"
},
{
id: "talktalk",
domains: ["talktalk.net"],
type: "public_provider",
mx: ["mx.talktalk.net"],
companyProvider: "TalkTalk Mail",
loginUrl: "https://apps.talktalk.co.uk/appsuite/"
},
{
id: "teleko",
domains: ["magenta.de", "telekom.de"],
type: "public_provider",
companyProvider: "Telekom Mail",
loginUrl: "https://email.magenta.de"
},
{
id: "telene",
domains: ["telenet.be"],
type: "public_provider",
companyProvider: "Telenet Mail",
loginUrl: "https://webmail.telenet.be"
},
{
id: "telkom",
domains: ["telkom.co.za"],
type: "public_provider",
companyProvider: "Telkom Mail",
loginUrl: "https://webmail.telkom.co.za"
},
{
id: "telus",
domains: ["telus.net"],
type: "public_provider",
mx: ["mx.telus.net"],
companyProvider: "Telus Email",
loginUrl: "https://email.telus.net"
},
{
id: "terra",
domains: ["terra.com.br"],
type: "public_provider",
companyProvider: "Terra Mail",
loginUrl: "https://webmail.terra.com.br"
},
{
id: "tiscal",
domains: ["tiscali.it"],
type: "public_provider",
companyProvider: "Tiscali Mail",
loginUrl: "https://mail.tiscali.it"
},
{
id: "titan",
domains: ["titan.email"],
mx: ["mx1.titan.email", "mx2.titan.email"],
txt: ["spf:spf.titan.email"],
type: "public_provider",
companyProvider: "Titan Email",
loginUrl: "https://app.titan.email"
},
{
id: "tonlin",
domains: ["t-online.de"],
type: "public_provider",
companyProvider: "T-Online",
loginUrl: "https://email.t-online.de/"
},
{
id: "tutano",
domains: [
"tutanota.com",
"tutanota.de",
"tutamail.com",
"tuta.io",
"keemail.me",
"tuta.com"
],
mx: ["tutanota.de", "mail.tutanota.de"],
txt: ["tutanota-verification="],
type: "public_provider",
companyProvider: "Tutanota",
loginUrl: "https://mail.tutanota.com",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !1,
strip: !1
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "ukrnet",
type: "public_provider",
companyProvider: "ukr.net",
domains: ["ukr.net"],
mx: ["mxs.ukr.net"],
loginUrl: "https://accounts.ukr.net/"
},
{
id: "uol",
domains: ["uol.com.br"],
type: "public_provider",
companyProvider: "UOL Mail",
loginUrl: "https://email.uol.com.br"
},
{
id: "verizo",
domains: ["verizon.net"],
type: "public_provider",
companyProvider: "Verizon",
loginUrl: "https://login.verizon.com/"
},
{
id: "videotron",
domains: ["videotron.ca", "videotron.com"],
type: "public_provider",
companyProvider: "Videotron Mail",
loginUrl: "https://webmail.videotron.com"
},
{
id: "virgil",
domains: [
"virgilio.it",
"alice.it",
"tin.it"
],
type: "public_provider",
companyProvider: "Virgilio Mail",
loginUrl: "https://mail.virgilio.it"
},
{
id: "virginmedia",
domains: ["virginmedia.com"],
type: "public_provider",
companyProvider: "Virgin Media Mail",
loginUrl: "https://mail.virginmedia.com",
mx: ["virginmedia.com"]
},
{
id: "vodaco",
domains: ["vodacom.co.za"],
type: "public_provider",
companyProvider: "Vodacom Mail",
loginUrl: "https://webmail.vodacom.co.za"
},
{
id: "vodafonede",
type: "public_provider",
companyProvider: "Vodafone Germany",
domains: ["vodafone.de", "arcor.de"],
mx: [
"mx2.vodafonemail.de",
"mx3.vodafonemail.de",
"mx1.vodafonemail.de"
],
loginUrl: "https://live.vodafone.de/partners/mail"
},
{
id: "vsnl",
domains: ["vsnl.net"],
type: "public_provider",
mx: ["mx.vsnl.net", "mx.vsnl.com"],
companyProvider: "VSNL Mail (Tata)",
loginUrl: "https://webmail.vsnl.com"
},
{
id: "webde",
domains: ["web.de"],
type: "public_provider",
companyProvider: "Web.de",
loginUrl: "https://web.de/"
},
{
id: "windstream",
type: "public_provider",
companyProvider: "Windstream",
domains: ["windstream.net"],
mx: ["mx01.windstream.net"],
loginUrl: "https://webmail.windstream.net/"
},
{
id: "wppl",
type: "public_provider",
companyProvider: "Wp.pl",
domains: ["wp.pl"],
mx: ["mx.wp.pl", "mx5.wp.pl"],
loginUrl: "https://poczta.wp.pl/login/login.html"
},
{
id: "xs4all",
domains: ["xs4all.nl"],
type: "public_provider",
companyProvider: "Xs4All",
loginUrl: "https://webmail.xs4all.nl"
},
{
id: "xtra",
domains: ["xtra.co.nz"],
type: "public_provider",
companyProvider: "Xtra Mail",
loginUrl: "https://www.xtra.co.nz/email"
},
{
id: "y",
domains: [
"yahoo.com",
"yahoo.co.uk",
"yahoo.fr",
"yahoo.co.in",
"yahoo.com.br",
"yahoo.co.jp",
"yahoo.it",
"yahoo.de",
"yahoo.in",
"yahoo.es",
"yahoo.ca",
"yahoo.com.au",
"yahoo.com.ar",
"yahoo.com.mx",
"yahoo.co.id",
"yahoo.com.sg",
"ymail.com",
"rocketmail.com",
"myyahoo.com"
],
type: "public_provider",
companyProvider: "Yahoo Mail",
loginUrl: "https://login.yahoo.com",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "yandex",
domains: ["yandex.ru", "yandex.com"],
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
},
type: "public_provider",
companyProvider: "Yandex Mail",
loginUrl: "https://mail.yandex.com"
},
{
id: "ziggo",
domains: ["ziggo.nl", "home.nl"],
type: "public_provider",
companyProvider: "Ziggo Mail",
loginUrl: "https://www.ziggo.nl/mail"
},
{
id: "zoho",
domains: ["zohomail.com", "zoho.com"],
type: "public_provider",
companyProvider: "Zoho Mail",
loginUrl: "https://mail.zoho.com",
alias: {
dots: {
ignore: !1,
strip: !1
},
plus: {
ignore: !0,
strip: !0
},
case: {
ignore: !0,
strip: !0
}
}
},
{
id: "zohoeu",
domains: ["zoho.eu"],
type: "public_provider",
companyProvider: "Zoho Mail EU",
loginUrl: "https://mail.zoho.eu"
}
],
meta: {
count: 140,
domains: 259,
generated: "2026-07-13T02:59:27.245Z"
}
}, O;
function Ie() {
if (O) return O;
O = /* @__PURE__ */ new Map();
let { providers: e } = Fe;
for (let t of e) if (t.loginUrl) for (let e of t.domains ?? []) O.set(e.toLowerCase(), {
companyProvider: t.companyProvider,
loginUrl: t.loginUrl
});
return O;
}
function Le(e) {
let t = e.lastIndexOf("@");
if (t === -1) return null;
let n = e.slice(t + 1).trim().toLowerCase();
return n ? Ie().get(n) ?? null : null;
}
//#endregion
//#region src/lib/form-validation.ts
function k(e) {
return e ? { message: e } : void 0;
}
function A(e) {
return j(e)[0]?.message;
}
function j(e) {
return e.flatMap((e) => typeof e == "string" && e ? [{ message: e }] : e && typeof e == "object" && "message" in e && typeof e.message == "string" && e.message ? [{ message: e.message }] : []);
}
function M(e) {
if (typeof e == "string") return e || void 0;
if (!(!e || typeof e != "object")) {
if ("message" in e && typeof e.message == "string" && e.message) return e.message;
if ("statusText" in e && typeof e.statusText == "string" && e.statusText) return e.statusText;
}
}
function N(e) {
if (!e || typeof e != "object") return;
let t = "fieldErrors" in e ? e.fieldErrors : "fields" in e ? e.fields : void 0;
if (!(!t || typeof t != "object")) return Object.fromEntries(Object.entries(t).flatMap(([e, t]) => {
let n = Array.isArray(t) ? A(t) : M(t);
return n ? [[e, { message: n }]] : [];
}));
}
function Re(e, t) {
let n = e && typeof e == "object" && "body" in e && e.body && typeof e.body == "object" ? e.body : void 0;
return {
fields: N(e) ?? N(n) ?? void 0,
form: k(M(e) ?? M(n) ?? t)
};
}
function ze(e, { maxLength: t, maxLengthMessage: n, minLength: r, minLengthMessage: i, requiredMessage: a, trim: o = !1 }) {
let s = o ? e.trim() : e;
if (!s && a) return k(a);
if (r !== void 0 && s.length < r) return k(i);
if (t !== void 0 && s.length > t) return k(n);
}
function Be(e, { invalidMessage: t, requiredMessage: n }) {
let r = e.trim();
if (!r) return n ? k(n) : void 0;
let i = r.lastIndexOf("@"), a = r.indexOf("@"), o = r.slice(i + 1);
return i > 0 && i === a && i < r.length - 1 && !r.includes(" ") && o.includes(".") && !o.startsWith(".") && !o.endsWith(".") ? void 0 : k(t);
}
function Ve(e, t, n) {
return e === t ? void 0 : k(n);
}
function He(e, t, n) {
return e.length >= t ? void 0 : k(n);
}
function P(e, { allowedProtocols: t, invalidMessage: n, requiredMessage: r }) {
let i = e.trim();
if (!i) return r ? k(r) : void 0;
try {
let e = new URL(i);
return t && !t.includes(e.protocol) ? k(n) : void 0;
} catch {
return k(n);
}
}
function Ue(e, t) {
let n = e.split(/\r?\n/).map((e) => e.trim()).filter(Boolean);
return n.length === 0 ? t.requiredMessage ? k(t.requiredMessage) : void 0 : n.reduce((e, n) => e ?? P(n, t), void 0);
}
//#endregion
//#region src/lib/password-strength.ts
var F = "PASSWORD_COMPROMISED";
function We(e) {
if (typeof e != "object" || !e) return !1;
if (e.code === "PASSWORD_COMPROMISED") return !0;
let t = e.error;
return typeof t != "object" || !t ? !1 : t.code === F;
}
var Ge = [
"abcdefghijklmnopqrstuvwxyz",
"0123456789",
"qwertyuiop"
];
function Ke(e, t = 4) {
for (let n of Ge) {
let r = [...n].reverse().join("");
for (let i of [n, r]) for (let n = 0; n + t <= i.length; n++) if (e.includes(i.slice(n, n + t))) return !0;
}
return !1;
}
function qe(e, t = {}) {
if (!e) return {
score: 0,
level: "empty"
};
let n = t.minLength ?? 8, r = e.toLowerCase(), i = 0;
e.length >= n && (i += 1), e.length >= n + 4 && (i += 1), e.length >= 16 && (i += 1);
let a = [
/[a-z]/.test(e),
/[A-Z]/.test(e),
/\d/.test(e),
/[^a-zA-Z\d]/.test(e)
].filter(Boolean).length;
if (a >= 3 && (i += 1), a === 4 && (i += 1), new Set(e).size <= 2 && (i -= 2), Ke(r) && --i, e.length < n) return {
score: 1,
level: "weak"
};
let o = Math.min(4, Math.max(1, i));
return {
score: o,
level: [
"weak",
"fair",
"good",
"strong"
][o - 1]
};
}
//#endregion
//#region src/lib/provider-names.ts
var I = {
apple: "Apple",
atlassian: "Atlassian",
cognito: "Cognito",
discord: "Discord",
dropbox: "Dropbox",
facebook: "Facebook",
figma: "Figma",
github: "GitHub",
gitlab: "GitLab",
google: "Google",
huggingface: "Hugging Face",
kakao: "Kakao",
kick: "Kick",
line: "LINE",
linear: "Linear",
linkedin: "LinkedIn",
microsoft: "Microsoft",
naver: "Naver",
notion: "Notion",
paybin: "Paybin",
paypal: "PayPal",
polar: "Polar",
railway: "Railway",
reddit: "Reddit",
roblox: "Roblox",
salesforce: "Salesforce",
slack: "Slack",
spotify: "Spotify",
tiktok: "TikTok",
twitch: "Twitch",
twitter: "X",
vercel: "Vercel",
vk: "VK",
wechat: "WeChat",
zoom: "Zoom"
};
function Je(e) {
if (typeof e != "string" && v(e)) return e.label;
let t = typeof e == "string" ? e : _(e);
return I[t] || t.charAt(0).toUpperCase() + t.slice(1);
}
//#endregion
//#region src/lib/qr-code.ts
var Ye = (e) => {
let t = [];
for (let [n, r] of e.entries()) {
let e;
for (let i = 0; i <= r.length; i += 1) {
let a = r[i] ?? !1;
if (a && e === void 0) {
e = i;
continue;
}
!a && e !== void 0 && (t.push(`M${e} ${n}h${i - e}v1H${e}z`), e = void 0);
}
}
return t.join("");
};
function Xe(e) {
let t = de(e, {
border: 4,
ecc: "M"
});
return {
path: Ye(t.data),
size: t.size
};
}
//#endregion
//#region src/lib/setup-mutation-invalidation.ts
function Ze(e) {
let t = e.getMutationCache(), n = t.config.onSuccess;
return t.config.onSuccess = async (t, r, i, a, o) => {
if (await n?.(t, r, i, a, o), !fe({ mutationKey: u.all }, a)) return;
let { invalidates: s, awaits: c, removes: l } = a.meta ?? {};
if (l?.length && e.removeQueries({ predicate: (e) => l.some((t) => p({ queryKey: t }, e)) }), s?.length && e.invalidateQueries({ predicate: (e) => s.some((t) => p({ queryKey: t }, e)) }), c?.length) return e.invalidateQueries({ predicate: (e) => c.some((t) => p({ queryKey: t }, e)) }, { cancelRefetch: !1 });
}, () => {
t.config.onSuccess = n;
};
}
//#endregion
//#region src/lib/table-state.ts
var Qe = 300;
function $e(e) {
return e;
}
function et() {
return {
search: {
read: () => typeof window > "u" ? new URLSearchParams() : new URLSearchParams(window.location.search),
replace: (e) => {
if (typeof window > "u") return;
let t = new URL(window.location.href);
t.search = e.toString(), window.history.replaceState(window.history.state, "", t);
},
subscribe: (e) => typeof window > "u" ? () => void 0 : (window.addEventListener("popstate", e), () => window.removeEventListener("popstate", e))
},
storage: typeof window > "u" ? void 0 : {
read: (e) => window.localStorage.getItem(e),
write: (e, t) => window.localStorage.setItem(e, t)
}
};
}
var L = 1, R = "~";
function z(e, t, n = 1e4) {
let r = Number(e);
return Number.isSafeInteger(r) && r > 0 && r <= n ? r : t;
}
function B(e, t, n) {
let r = Number(e);
return n.includes(r) ? r : t;
}
function V(e, t, n = 3) {
if (!e) return [];
let r = t ? new Set(t) : void 0, i = /* @__PURE__ */ new Set();
return e.split(",").flatMap((e) => {
if (i.size >= n) return [];
let [t, a, ...o] = e.split(".");
return !t || o.length > 0 || a !== "asc" && a !== "desc" || r?.has(t) === !1 || i.has(t) ? [] : (i.add(t), [{
desc: a === "desc",
id: t
}]);
});
}
function tt(e, t) {
if (!e) return {};
try {
let n = JSON.parse(e), r = W(n) && n.version === L && W(n.columns) ? n.columns : n;
if (!W(r)) return {};
let i = t ? new Set(t) : void 0, a = {};
for (let [e, t] of Object.entries(r)) typeof t == "boolean" && i?.has(e) !== !1 && (a[e] = t);
return a;
} catch {
return {};
}
}
function nt(e) {
return JSON.stringify({
columns: e,
version: L
});
}
function H(e) {
if (!e.startsWith(R)) return e;
try {
let t = JSON.parse(e.slice(1));
return q(t) ? t : e;
} catch {
return e;
}
}
function U(e) {
if (typeof e == "string") return e ? e.startsWith(R) ? `${R}${JSON.stringify(e)}` : e : void 0;
if (q(e)) return `${R}${JSON.stringify(e)}`;
}
function rt(e, t, n, r, i) {
let a = `${t}.filter.`, o = [];
for (let [t, n] of e) {
let e = t.slice(a.length);
t.startsWith(a) && n && (!i || i.includes(e)) && o.push({
id: e,
value: H(n)
});
}
return {
columnFilters: o,
globalFilter: e.get(`${t}.search`) ?? "",
pagination: {
pageIndex: z(e.get(`${t}.page`), 1) - 1,
pageSize: B(e.get(`${t}.pageSize`), n, r)
},
sorting: V(e.get(`${t}.sort`), i)
};
}
function it(e, t, n, r) {
let i = new URLSearchParams(e), a = `${t}.filter.`;
for (let e of Array.from(i.keys())) e.startsWith(a) && i.delete(e);
for (let e of r.columnFilters) {
let t = U(e.value);
t && i.set(`${a}${e.id}`, t);
}
return G(i, `${t}.search`, r.globalFilter), G(i, `${t}.page`, String(r.pagination.pageIndex + 1), "1"), G(i, `${t}.pageSize`, String(r.pagination.pageSize), String(n)), G(i, `${t}.sort`, r.sorting.map(({ desc: e, id: t }) => `${t}.${e ? "desc" : "asc"}`).join(",")), i;
}
function at(e, t) {
let n = Math.max(1, Math.floor(t));
return {
hasNextPage: e.length > n,
rows: e.slice(0, n)
};
}
function ot(e, t, n) {
let r = Number.isFinite(t) ? Math.max(1, Math.floor(t)) : 1, i = Math.max(0, Math.ceil((Number.isFinite(n) ? Math.max(0, Math.floor(n)) : 0) / r) - 1);
return Math.min(Number.isFinite(e) ? Math.max(0, Math.floor(e)) : 0, i);
}
function W(e) {
return typeof e == "object" && !!e && !Array.isArray(e);
}
function G(e, t, n, r = "") {
n === r ? e.delete(t) : e.set(t, n);
}
function K(e) {
return e === null || typeof e == "boolean" || typeof e == "number" && Number.isFinite(e) || typeof e == "string";
}
function q(e) {
return K(e) || Array.isArray(e) && e.every(K);
}
//#endregion
//#region src/lib/text-file.ts
var st = "text/plain;charset=utf-8", ct = 6e4;
function J(e) {
return URL.createObjectURL(new Blob([e], { type: st }));
}
function lt(e, t) {
let n = J(e), r = document.createElement("a");
r.download = t, r.href = n, r.hidden = !0, document.body.append(r), r.click(), r.remove(), setTimeout(() => URL.revokeObjectURL(n), 0);
}
function ut(e) {
let t = J(e), n = document.createElement("iframe"), r = document.documentElement.clientWidth, i = document.documentElement.clientHeight, a = null, o = !1, s = () => {
o || (o = !0, a !== null && clearTimeout(a), n.remove(), URL.revokeObjectURL(t));
};
n.ariaHidden = "true", n.title = "Print text file", n.width = `${r}px`, n.height = `${i}px`, n.style.position = "absolute", n.style.top = `-${i + 100}px`, n.style.left = `-${r + 100}px`, n.style.border = "0", n.addEventListener("load", () => {
let e = n.contentWindow;
if (!e) {
s();
return;
}
e.addEventListener("afterprint", s, { once: !0 }), a = setTimeout(s, ct);
try {
e.focus(), e.print();
} catch {
s();
}
}, { once: !0 }), n.addEventListener("error", s, { once: !0 }), n.src = t, document.body.append(n);
}
//#endregion
//#region src/mutations/change-email-mutation.ts
function dt(e) {
return {
mutationKey: u.changeEmail,
mutationFn: (t) => e.changeEmail({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [d.session] }
};
}
//#endregion
//#region src/mutations/change-password-mutation.ts
function ft(e) {
return {
mutationKey: u.changePassword,
mutationFn: (t) => e.changePassword({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/mutations/delete-user-mutation.ts
function pt(e) {
return {
mutationKey: ue.deleteUser,
mutationFn: (t) => e.deleteUser({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/mutations/link-social-mutation.ts
function mt(e) {
return {
mutationKey: u.linkSocial,
mutationFn: (t) => e.linkSocial({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/mutations/request-password-reset-mutation.ts
function ht(e) {
return {
mutationKey: u.requestPasswordReset,
mutationFn: (t) => e.requestPasswordReset({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/mutations/reset-password-mutation.ts
function gt(e) {
return {
mutationKey: u.resetPassword,
mutationFn: (t) => e.resetPassword({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/mutations/revoke-other-sessions-mutation.ts
function _t(e, t) {
return {
mutationKey: u.revokeOtherSessions,
mutationFn: (t) => e.revokeOtherSessions({
...t ?? {},
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [d.listSessions(t)] }
};
}
//#endregion
//#region src/mutations/revoke-session-mutation.ts
function vt(e, t) {
return {
mutationKey: u.revokeSession,
mutationFn: (t) => e.revokeSession({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [d.listSessions(t)] }
};
}
//#endregion
//#region src/mutations/revoke-sessions-mutation.ts
function yt(e) {
return {
mutationKey: u.revokeSessions,
mutationFn: (t) => e.revokeSessions({
...t ?? {},
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { removes: [d.all] }
};
}
//#endregion
//#region src/mutations/send-verification-email-mutation.ts
function bt(e) {
return {
mutationKey: u.sendVerificationEmail,
mutationFn: (t) => e.sendVerificationEmail({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/mutations/sign-in-email-mutation.ts
function xt(e) {
return {
mutationKey: u.signIn.email,
mutationFn: (t) => e.signIn.email({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [d.session] }
};
}
//#endregion
//#region src/mutations/sign-in-oauth-popup-mutation.ts
function St(e) {
return {
mutationKey: u.signIn.popup,
mutationFn: async (t) => {
let n = await e.signIn.popup(t);
if (n.error) throw n.error;
return n;
}
};
}
//#endregion
//#region src/mutations/sign-in-social-mutation.ts
function Ct(e) {
return {
mutationKey: u.signIn.social,
mutationFn: (t) => e.signIn.social({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/mutations/sign-out-mutation.ts
function wt(e) {
return {
mutationKey: u.signOut,
mutationFn: (t) => e.signOut({
...t ?? {},
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { removes: [d.all] }
};
}
//#endregion
//#region src/mutations/sign-up-email-mutation.ts
function Tt(e) {
return {
mutationKey: u.signUp.email,
mutationFn: (t) => e.signUp.email({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [d.session] }
};
}
//#endregion
//#region src/mutations/unlink-account-mutation.ts
function Et(e, t) {
return {
mutationKey: u.unlinkAccount,
mutationFn: (t) => e.unlinkAccount({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [d.listAccounts(t)] }
};
}
//#endregion
//#region src/mutations/update-session-mutation.ts
function Dt(e) {
return {
mutationKey: u.updateSession,
mutationFn: (t) => e.updateSession({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [d.session] }
};
}
//#endregion
//#region src/mutations/update-user-mutation.ts
function Ot(e) {
return {
mutationKey: u.updateUser,
mutationFn: (t) => e.updateUser({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [d.session] }
};
}
//#endregion
//#region src/queries/account-info-query.ts
function Y(e, t, n) {
let r = n?.query;
return {
queryKey: d.accountInfo(t, r),
meta: { errorPresentation: "silent" },
queryFn: t && r && ("useAccountCookie" in r || r.accountId) ? ({ signal: t }) => e.accountInfo({
...n,
query: r,
fetchOptions: f(n?.fetchOptions, t)
}) : m
};
}
var kt = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.ensureQueryData({
...Y(t, n, a ? {
query: a,
fetchOptions: i
} : void 0),
...o
});
}, At = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.prefetchQuery({
...Y(t, n, a ? {
query: a,
fetchOptions: i
} : void 0),
...o
});
}, jt = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.fetchQuery({
...Y(t, n, a ? {
query: a,
fetchOptions: i
} : void 0),
...o
});
}, Mt = (e, t, n, r) => {
let i = d.accountInfo(n, r?.query);
return e.getQueryData(i);
};
//#endregion
//#region src/queries/auth/session-query.ts
function X(e, t) {
return {
queryKey: d.session,
queryFn: ({ signal: n }) => e.getSession({
...t,
fetchOptions: f(t?.fetchOptions, n)
})
};
}
var Nt = (e, t, n) => {
let { fetchOptions: r, query: i, ...a } = n ?? {};
return e.ensureQueryData({
...X(t, {
query: i,
fetchOptions: r
}),
...a
});
}, Pt = (e, t, n) => {
let { fetchOptions: r, query: i, ...a } = n ?? {};
return e.prefetchQuery({
...X(t, {
query: i,
fetchOptions: r
}),
...a
});
}, Ft = (e, t, n) => {
let { fetchOptions: r, query: i, ...a } = n ?? {};
return e.fetchQuery({
...X(t, {
query: i,
fetchOptions: r
}),
...a
});
}, Z = (e, t) => {
let n = d.session;
return e.getQueryData(n);
};
//#endregion
//#region src/queries/list-accounts-query.ts
function Q(e, t, n) {
return {
queryKey: d.listAccounts(t, n?.query),
queryFn: t ? ({ signal: t }) => e.listAccounts({
...n,
fetchOptions: f(n?.fetchOptions, t)
}) : m
};
}
var It = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.ensureQueryData({
...Q(t, n, {
query: a,
fetchOptions: i
}),
...o
});
}, Lt = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.prefetchQuery({
...Q(t, n, {
query: a,
fetchOptions: i
}),
...o
});
}, Rt = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.fetchQuery({
...Q(t, n, {
query: a,
fetchOptions: i
}),
...o
});
}, zt = (e, t, n, r) => {
let i = d.listAccounts(n, r?.query);
return e.getQueryData(i);
};
//#endregion
//#region src/queries/list-sessions-query.ts
function $(e, t, n) {
return {
queryKey: d.listSessions(t, n?.query),
queryFn: t ? ({ signal: t }) => e.listSessions({
...n,
fetchOptions: f(n?.fetchOptions, t)
}) : m
};
}
var Bt = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.ensureQueryData({
...$(t, n, {
query: a,
fetchOptions: i
}),
...o
});
}, Vt = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.prefetchQuery({
...$(t, n, {
query: a,
fetchOptions: i
}),
...o
});
}, Ht = (e, t, n, r) => {
let { fetchOptions: i, query: a, ...o } = r ?? {};
return e.fetchQuery({
...$(t, n, {
query: a,
fetchOptions: i
}),
...o
});
}, Ut = (e, t, n, r) => {
let i = d.listSessions(n, r?.query);
return e.getQueryData(i);
};
//#endregion
export { pe as DEFAULT_ADDITIONAL_FIELD_VALIDATION_DEBOUNCE_MS, Qe as DEFAULT_TABLE_SEARCH_DEBOUNCE_MS, F as PASSWORD_COMPROMISED_ERROR_CODE, y as REAUTHENTICATION_QUERY_PARAM, ce as REAUTHENTICATION_REQUIRED_ERROR_CODES, Y as accountInfoOptions, u as authMutationKeys, d as authQueryKeys, Ce as authQueryOptions, ae as authQueryRetryDelay, c as basePaths, dt as changeEmailOptions, ft as changePasswordOptions, le as createAuthPlugin, f as createAuthQueryFetchOptions, ie as createAuthQueryRetryOptions, et as createBrowserTablePersistenceAdapters, k as createFormFieldError, Xe as createQrCodeSvgData, $e as createTableSearchParamsAdapter, t as deepmerge, ee as defaultAuthConfig, i as defaultAuthLocale, e as defineAuthLocale, pt as deleteUserOptions, lt as downloadTextFile, kt as ensureAccountInfo, It as ensureListAccounts, Bt as ensureListSessions, Nt as ensureSession, qe as evaluatePasswordStrength, jt as fetchAccountInfo, Rt as fetchListAccounts, Ht as fetchListSessions, Ft as fetchSession, ye as fieldsWithModelValues, a as fileToAvatarDataUrl, te as fileToBase64, be as formatAdditionalFieldValue, Pe as formatBackupCodesText, Mt as getAccountInfo, h as getAdditionalFieldDefaultValue, me as getAdditionalFieldDefaultValues, he as getAdditionalFieldSubmitValues, Se as getAuthErrorPresentation, Ee as getAuthLinkURL, x as getAuthRedirectAction, Ne as getAuthResultMessage, ot as getClampedTablePageIndex, Le as getEmailProviderLink, A as getFormFieldErrorMessage, j as getFormFieldErrors, zt as getListAccounts, Ut as getListSessions, at as getLookaheadPage, _ as getProviderId, Je as getProviderName, De as getReauthenticationSignInURL, D as getSafeAuthRedirect, b as getSafeRedirectTo, Z as getSession, Te as getViewURL, v as isCustomSocialProvider, We as isPasswordCompromisedError, re as isReauthenticationRequiredError, Oe as isReauthenticationSignInURL, oe as isRetryableAuthQueryError, mt as linkSocialOptions, Q as listAccountsOptions, $ as listSessionsOptions, r as localization, s as localizeAuthPlugins, l as matchAuthLocale, Re as normalizeAuthFormServerError, g as parseAdditionalFieldValue, ve as parseAdditionalFieldValues, Me as parseAuthResult, tt as parseTableColumnVisibility, H as parseTableFilterValue, z as parseTablePage, B as parseTablePageSize, V as parseTableSorting, rt as parseTableUrlState, At as prefetchAccountInfo, Lt as prefetchListAccounts, Vt as prefetchListSessions, Pt as prefetchSession, ut as printTextFile, I as providerNames, ht as requestPasswordResetOptions, gt as resetPasswordOptions, n as resizeAvatar, o as resolveAuthConfig, xe as resolveInputType, _t as revokeOtherSessionsOptions, vt as revokeSessionOptions, yt as revokeSessionsOptions, bt as sendVerificationEmailOptions, nt as serializeTableColumnVisibility, U as serializeTableFilterValue, it as serializeTableUrlState, X as sessionOptions, Ze as setupMutationInvalidation, se as shouldRetryAuthQuery, xt as signInEmailOptions, St as signInOAuthPopupOptions, Ct as signInSocialOptions, wt as signOutOptions, Tt as signUpEmailOptions, Et as unlinkAccountOptions, Dt as updateSessionOptions, Ot as updateUserOptions, P as validateAbsoluteUrl, Ue as validateAbsoluteUrlList, ge as validateAdditionalFieldRequired, _e as validateAdditionalFieldValue, Be as validateEmailAddress, Ve as validateMatchingValue, He as validateMinimumItems, ze as validateStringLength, ne as viewPaths };