UNPKG

@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
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 };