@better-auth-ui/core
Version:
Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.
198 lines (197 loc) • 5.38 kB
JavaScript
import { t as e } from "../../auth-query-keys-B_bcsA3s.js";
import { t } from "../../create-auth-plugin-BXWyolC8.js";
import { AsYouType as n, getCountries as r, getCountryCallingCode as i, parsePhoneNumberFromString as a } from "libphonenumber-js/min";
//#region src/plugins/phone-number/phone-number.ts
var o = {
format(e, t) {
return e.trim() ? new n(e.trim().startsWith("+") ? void 0 : t).input(e) : "";
},
getCountry(e) {
return a(e)?.country;
},
normalize(e, t) {
let n = a(e, t);
return n?.isValid() ? n.number : void 0;
}
};
function s(e, t, n = o) {
let r = n.format(e, t), i = n.normalize(r, t);
return {
country: n.getCountry(i ?? r) ?? t,
display: r,
e164: i,
isValid: !!i
};
}
function c(e, t = r()) {
let n, a = e;
try {
n = new Intl.DisplayNames(e ? [e] : void 0, { type: "region" });
} catch {
a = "en", n = new Intl.DisplayNames(["en"], { type: "region" });
}
return t.map((e) => ({
callingCode: `+${i(e)}`,
code: e,
flag: String.fromCodePoint(...Array.from(e, (e) => e.charCodeAt(0) + 127397)),
label: n.of(e) ?? e
})).sort((e, t) => e.label.localeCompare(t.label, a));
}
//#endregion
//#region src/plugins/phone-number/phone-number-localization.ts
var l = {
country: "Country or region",
invalidPhoneNumber: "Enter a valid phone number",
phoneNumber: "Phone number",
phoneNumberPlaceholder: "+1 555 123 4567",
phoneCode: "Phone code",
sendCode: "Send code",
verifyCode: "Verify code",
codeSentTo: "We sent a code to {{phoneNumber}}",
codeLengthMismatch: "Enter the {{length}}-digit code",
useDifferentPhoneNumber: "Use a different phone number",
usePassword: "Use a password",
useVerificationCode: "Use a verification code",
forgotPassword: "Forgot your password?",
resetPassword: "Reset password",
changePhoneNumber: "Change phone number",
updatePhoneNumber: "Update phone number",
phoneNumberUpdated: "Phone number updated",
removePhoneNumber: "Remove phone number",
phoneNumberRemoved: "Phone number removed",
removePhoneNumberTitle: "Remove this phone number from your account?",
removePhoneNumberDescription: "You will no longer be able to use it to sign in or reset your password.",
cancel: "Cancel"
}, u = {
signIn: [
"auth",
"signIn",
"phoneNumber"
],
sendOtp: [
"auth",
"phoneNumber",
"sendOtp"
],
verify: [
"auth",
"phoneNumber",
"verify"
],
requestPasswordReset: [
"auth",
"phoneNumber",
"requestPasswordReset"
],
resetPassword: [
"auth",
"phoneNumber",
"resetPassword"
]
}, d = 6;
function f(e) {
return e === void 0 || !Number.isFinite(e) ? d : Math.max(1, Math.floor(e));
}
var p = t("phoneNumber", (e = {}) => {
let t = e.defaultCountry ?? e.countries?.[0] ?? "US";
if (e.countries?.length === 0) throw Error("countries must include at least one country");
if (e.countries && !e.countries.includes(t)) throw Error("defaultCountry must be included in countries");
return {
adapter: e.adapter ?? o,
countries: e.countries,
defaultCountry: t,
locale: e.locale,
localization: {
...l,
...e.localization
},
_localizationResolver: (t, n) => ({
...t,
locale: e.locale ?? n.languageTag
}),
otpLength: f(e.otpLength),
signIn: e.signIn ?? !0,
passwordSignIn: e.passwordSignIn ?? !1,
passwordReset: e.passwordReset ?? !1,
changePhoneNumber: e.changePhoneNumber ?? !0,
viewPaths: { auth: {
phoneNumber: e.path ?? "phone-number",
phoneNumberForgotPassword: e.forgotPasswordPath ?? "phone-number-forgot-password",
phoneNumberResetPassword: e.resetPasswordPath ?? "phone-number-reset-password"
} }
};
});
//#endregion
//#region src/plugins/phone-number/request-phone-number-password-reset-mutation.ts
function m(e) {
return {
mutationKey: u.requestPasswordReset,
mutationFn: (t) => e.phoneNumber.requestPasswordReset({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/plugins/phone-number/reset-phone-number-password-mutation.ts
function h(e) {
return {
mutationKey: u.resetPassword,
mutationFn: (t) => e.phoneNumber.resetPassword({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/plugins/phone-number/send-phone-number-otp-mutation.ts
function g(e) {
return {
mutationKey: u.sendOtp,
mutationFn: (t) => e.phoneNumber.sendOtp({
...t,
fetchOptions: {
...t?.fetchOptions,
throw: !0
}
})
};
}
//#endregion
//#region src/plugins/phone-number/sign-in-phone-number-mutation.ts
function _(t) {
return {
mutationKey: u.signIn,
mutationFn: (e) => t.signIn.phoneNumber({
...e,
fetchOptions: {
...e?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [e.session] }
};
}
//#endregion
//#region src/plugins/phone-number/verify-phone-number-mutation.ts
function v(t) {
return {
mutationKey: u.verify,
mutationFn: (e) => t.phoneNumber.verify({
...e,
fetchOptions: {
...e?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [e.session] }
};
}
//#endregion
export { s as createPhoneNumberValue, o as defaultPhoneNumberAdapter, c as getPhoneNumberCountries, l as phoneNumberLocalization, u as phoneNumberMutationKeys, p as phoneNumberPlugin, m as requestPhoneNumberPasswordResetOptions, h as resetPhoneNumberPasswordOptions, g as sendPhoneNumberOtpOptions, _ as signInPhoneNumberOptions, v as verifyPhoneNumberOptions };