@better-auth-ui/core 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/base-paths.d.ts +21 -0
  2. package/dist/base-paths.js +5 -0
  3. package/dist/config/appearance-config.d.ts +23 -0
  4. package/dist/config/appearance-config.js +1 -0
  5. package/dist/config/auth-config.d.ts +87 -0
  6. package/dist/config/auth-config.js +35 -0
  7. package/dist/config/avatar-config.d.ts +35 -0
  8. package/dist/config/avatar-config.js +1 -0
  9. package/dist/config/delete-user-config.d.ts +14 -0
  10. package/dist/config/delete-user-config.js +1 -0
  11. package/dist/config/email-and-password-config.d.ts +37 -0
  12. package/dist/config/email-and-password-config.js +1 -0
  13. package/dist/config/index.d.ts +5 -0
  14. package/dist/config/index.js +5 -0
  15. package/dist/config/settings-config.d.ts +17 -0
  16. package/dist/config/settings-config.js +1 -0
  17. package/dist/config/toast-config.d.ts +58 -0
  18. package/dist/config/toast-config.js +16 -0
  19. package/dist/index.d.ts +6 -0
  20. package/dist/index.js +6 -0
  21. package/dist/lib/auth-callback-options.d.ts +8 -0
  22. package/dist/lib/auth-callback-options.js +1 -0
  23. package/dist/lib/auth-config.d.ts +198 -0
  24. package/dist/lib/auth-config.js +36 -0
  25. package/dist/lib/auth-error.d.ts +9 -0
  26. package/dist/lib/auth-error.js +1 -0
  27. package/dist/lib/auth-hook-options.d.ts +8 -0
  28. package/dist/lib/auth-hook-options.js +1 -0
  29. package/dist/lib/auth-toast.d.ts +24 -0
  30. package/dist/lib/auth-toast.js +10 -0
  31. package/dist/lib/base-paths.d.ts +21 -0
  32. package/dist/lib/base-paths.js +5 -0
  33. package/dist/lib/config/appearance-config.d.ts +23 -0
  34. package/dist/lib/config/appearance-config.js +1 -0
  35. package/dist/lib/config/auth-config.d.ts +70 -0
  36. package/dist/lib/config/auth-config.js +36 -0
  37. package/dist/lib/config/avatar-config.d.ts +35 -0
  38. package/dist/lib/config/avatar-config.js +1 -0
  39. package/dist/lib/config/email-and-password-config.d.ts +37 -0
  40. package/dist/lib/config/email-and-password-config.js +1 -0
  41. package/dist/lib/config/index.d.ts +6 -0
  42. package/dist/lib/config/index.js +6 -0
  43. package/dist/lib/config/settings-config.d.ts +22 -0
  44. package/dist/lib/config/settings-config.js +1 -0
  45. package/dist/lib/config/toast-config.d.ts +24 -0
  46. package/dist/lib/config/toast-config.js +10 -0
  47. package/dist/lib/localization.d.ts +175 -0
  48. package/dist/lib/localization.js +172 -0
  49. package/dist/lib/provider-names.d.ts +12 -0
  50. package/dist/lib/provider-names.js +50 -0
  51. package/dist/lib/toast-config.d.ts +24 -0
  52. package/dist/lib/toast-config.js +10 -0
  53. package/dist/lib/utils.d.ts +32 -0
  54. package/dist/lib/utils.js +116 -0
  55. package/dist/lib/view-paths.d.ts +68 -0
  56. package/dist/lib/view-paths.js +14 -0
  57. package/dist/localization/index.d.ts +35 -0
  58. package/dist/localization/index.js +34 -0
  59. package/dist/localization/localization.d.ts +35 -0
  60. package/dist/localization/localization.js +34 -0
  61. package/dist/localization.d.ts +159 -0
  62. package/dist/localization.js +156 -0
  63. package/dist/provider-names.d.ts +12 -0
  64. package/dist/provider-names.js +50 -0
  65. package/dist/src/index.d.ts +7 -0
  66. package/dist/src/index.js +7 -0
  67. package/dist/src/lib/auth-config.d.ts +148 -0
  68. package/dist/src/lib/auth-config.js +28 -0
  69. package/dist/src/lib/auth-toast.d.ts +24 -0
  70. package/dist/src/lib/auth-toast.js +10 -0
  71. package/dist/src/lib/base-paths.d.ts +9 -0
  72. package/dist/src/lib/base-paths.js +9 -0
  73. package/dist/src/lib/localization.d.ts +145 -0
  74. package/dist/src/lib/localization.js +142 -0
  75. package/dist/src/lib/provider-names.d.ts +12 -0
  76. package/dist/src/lib/provider-names.js +49 -0
  77. package/dist/src/lib/utils.d.ts +1 -0
  78. package/dist/src/lib/utils.js +30 -0
  79. package/dist/src/lib/view-paths.d.ts +30 -0
  80. package/dist/src/lib/view-paths.js +17 -0
  81. package/dist/utils.d.ts +3 -0
  82. package/dist/utils.js +80 -0
  83. package/dist/view-paths.d.ts +30 -0
  84. package/dist/view-paths.js +17 -0
  85. package/package.json +32 -0
  86. package/src/config/appearance-config.ts +24 -0
  87. package/src/config/auth-config.ts +117 -0
  88. package/src/config/avatar-config.ts +39 -0
  89. package/src/config/delete-user-config.ts +14 -0
  90. package/src/config/email-and-password-config.ts +37 -0
  91. package/src/config/index.ts +5 -0
  92. package/src/index.ts +6 -0
  93. package/src/lib/base-paths.ts +26 -0
  94. package/src/lib/localization.ts +259 -0
  95. package/src/lib/provider-names.ts +55 -0
  96. package/src/lib/utils.ts +151 -0
  97. package/src/lib/view-paths.ts +86 -0
@@ -0,0 +1,24 @@
1
+ export type RenderToast = (message?: string, options?: {
2
+ action?: {
3
+ label: string;
4
+ onClick: () => Promise<void> | void;
5
+ };
6
+ actionProps?: {
7
+ children: string;
8
+ onClick: () => Promise<void> | void;
9
+ };
10
+ }) => string | number | unknown;
11
+ export type DismissToast = (id?: number | string | unknown | any) => string | number | unknown;
12
+ export declare const defaultToast: RenderToast;
13
+ export type Toast = {
14
+ /** Display an error toast notification */
15
+ error: RenderToast;
16
+ /** Display a danger toast notification */
17
+ danger?: RenderToast;
18
+ /** Display a success toast notification */
19
+ success: RenderToast;
20
+ /** Display an info toast notification */
21
+ info: RenderToast;
22
+ /** Optional function to dismiss a toast notification by its ID */
23
+ dismiss?: DismissToast;
24
+ };
@@ -0,0 +1,10 @@
1
+ export const defaultToast = (message, options) => {
2
+ if (options?.action) {
3
+ if (confirm(message)) {
4
+ options.action.onClick();
5
+ }
6
+ }
7
+ else {
8
+ alert(message);
9
+ }
10
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Base path configuration for authentication, settings, and organization routes.
3
+ */
4
+ export type BasePaths = {
5
+ /**
6
+ * Base path for authentication routes
7
+ * @default "/auth"
8
+ */
9
+ auth: string;
10
+ /**
11
+ * Base path for settings routes
12
+ * @default "/settings"
13
+ */
14
+ settings: string;
15
+ /**
16
+ * Base path for organization management routes
17
+ * @default "/organization"
18
+ */
19
+ organization: string;
20
+ };
21
+ export declare const basePaths: BasePaths;
@@ -0,0 +1,5 @@
1
+ export const basePaths = {
2
+ auth: "/auth",
3
+ settings: "/settings",
4
+ organization: "/organization"
5
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Available theme options for the application.
3
+ */
4
+ export type Theme = "system" | "light" | "dark";
5
+ /**
6
+ * Configuration options for appearance/theme settings.
7
+ */
8
+ export type AppearanceConfig = {
9
+ /**
10
+ * Function to set the application theme
11
+ * @param theme - The theme value to set
12
+ */
13
+ setTheme?: (theme: string) => void;
14
+ /**
15
+ * Current theme value
16
+ */
17
+ theme?: string;
18
+ /**
19
+ * Available theme options to display in the theme switcher
20
+ * @default ["system", "light", "dark"]
21
+ */
22
+ themes?: Theme[];
23
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ import type { SocialProvider } from "better-auth/social-providers";
2
+ import { type ToastConfig } from "./toast-config";
3
+ import { type BasePaths } from "../base-paths";
4
+ import { type Localization } from "../localization";
5
+ import { type ViewPaths } from "../view-paths";
6
+ import type { EmailAndPasswordConfig } from "./email-and-password-config";
7
+ import type { SettingsConfig } from "./settings-config";
8
+ /**
9
+ * Core authentication configuration interface.
10
+ *
11
+ * Defines the base structure for authentication settings including paths,
12
+ * providers, navigation functions, and feature flags.
13
+ */
14
+ export interface AuthConfig {
15
+ /** Base paths for different application sections */
16
+ basePaths: BasePaths;
17
+ /**
18
+ * Base URL for API endpoints (optional)
19
+ * @default ""
20
+ */
21
+ baseURL: string;
22
+ /**
23
+ * Email and password authentication configuration
24
+ * @default { enabled: true, forgotPassword: true, minPasswordLength: 8, maxPasswordLength: 128 }
25
+ */
26
+ emailAndPassword: EmailAndPasswordConfig;
27
+ /** Localization strings for UI components. */
28
+ localization: Localization;
29
+ /** Whether magic link (passwordless) authentication is enabled */
30
+ magicLink?: boolean;
31
+ /** Whether multi-session support is enabled */
32
+ multiSession?: boolean;
33
+ /**
34
+ * Default redirect path after successful authentication
35
+ * @default "/"
36
+ */
37
+ redirectTo: string;
38
+ /**
39
+ * Settings section configuration
40
+ * @default { enabled: true }
41
+ */
42
+ settings: SettingsConfig;
43
+ /**
44
+ * List of enabled social authentication providers
45
+ * @remarks `SocialProvider[]`
46
+ */
47
+ socialProviders?: SocialProvider[];
48
+ /** View path mappings for different authentication views */
49
+ viewPaths: ViewPaths;
50
+ /**
51
+ * Toast notification configuration for user feedback.
52
+ * @remarks `ToastConfig`
53
+ */
54
+ toast: ToastConfig;
55
+ /**
56
+ * Function to navigate to a new path
57
+ * @param options - Navigation options with href and optional replace flag
58
+ * @default window.location.href = href (or window.location.replace if replace: true)
59
+ * @example
60
+ * // TanStack Router
61
+ * navigate={navigate}
62
+ * // Next.js
63
+ * navigate={({href, replace}) => replace ? router.replace(href) : router.push(href)}
64
+ */
65
+ navigate: (options: {
66
+ to: string;
67
+ replace?: boolean;
68
+ }) => void;
69
+ }
70
+ export declare const defaultConfig: AuthConfig;
@@ -0,0 +1,36 @@
1
+ import { defaultToast } from "./toast-config";
2
+ import { basePaths } from "../base-paths";
3
+ import { localization } from "../localization";
4
+ import { resizeAvatar } from "../utils";
5
+ import { viewPaths } from "../view-paths";
6
+ export const defaultConfig = {
7
+ basePaths,
8
+ baseURL: "",
9
+ emailAndPassword: {
10
+ enabled: true,
11
+ forgotPassword: true,
12
+ rememberMe: false,
13
+ minPasswordLength: 8,
14
+ maxPasswordLength: 128
15
+ },
16
+ redirectTo: "/",
17
+ settings: {
18
+ appearance: {
19
+ themes: ["system", "light", "dark"]
20
+ },
21
+ avatar: {
22
+ enabled: true,
23
+ resize: resizeAvatar,
24
+ size: 256
25
+ },
26
+ enabled: true
27
+ },
28
+ viewPaths,
29
+ localization,
30
+ navigate: () => { },
31
+ toast: {
32
+ error: defaultToast,
33
+ success: defaultToast,
34
+ info: defaultToast
35
+ }
36
+ };
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Configuration options for avatar handling.
3
+ */
4
+ export type AvatarConfig = {
5
+ /**
6
+ * Delete the current avatar (e.g. remove from storage).
7
+ * When undefined, avatar deletion is disabled.
8
+ */
9
+ delete?: (url: string) => Promise<void>;
10
+ /**
11
+ * Whether avatar changing is enabled.
12
+ * @default true
13
+ */
14
+ enabled?: boolean;
15
+ /**
16
+ * Output image format.
17
+ * @default "png"
18
+ */
19
+ extension?: "png" | "jpg" | "webp" | "inherit";
20
+ /**
21
+ * Resize an image file before upload.
22
+ * @default Resizes to max size, square-cropped, output as configured extension.
23
+ */
24
+ resize?: (file: File, size?: number, extension?: "png" | "jpg" | "webp" | "inherit") => Promise<File>;
25
+ /**
26
+ * Max dimension in pixels for the optimized avatar.
27
+ * @default 256
28
+ */
29
+ size?: number;
30
+ /**
31
+ * Upload a file and return the URL where it was stored.
32
+ * When undefined, the image is base64-encoded and saved directly to `user.image`.
33
+ */
34
+ upload?: (file: File) => Promise<string>;
35
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Configuration options for email and password authentication.
3
+ */
4
+ export type EmailAndPasswordConfig = {
5
+ /**
6
+ * Whether email/password authentication is enabled
7
+ * @default true
8
+ */
9
+ enabled: boolean;
10
+ /**
11
+ * Whether to show a confirm password field on sign-up forms
12
+ */
13
+ confirmPassword?: boolean;
14
+ /**
15
+ * Whether users can reset forgotten passwords
16
+ * @default true
17
+ */
18
+ forgotPassword: boolean;
19
+ /**
20
+ * Maximum password length
21
+ * @default 128
22
+ */
23
+ maxPasswordLength?: number;
24
+ /**
25
+ * Minimum password length
26
+ * @default 8
27
+ */
28
+ minPasswordLength?: number;
29
+ /**
30
+ * Maximum password length
31
+ * @default 128
32
+ */
33
+ /** Whether to show a "Remember me" checkbox on sign-in forms */
34
+ rememberMe?: boolean;
35
+ /** Whether email verification is required before account activation */
36
+ requireEmailVerification?: boolean;
37
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export * from "./appearance-config";
2
+ export * from "./auth-config";
3
+ export * from "./avatar-config";
4
+ export * from "./email-and-password-config";
5
+ export * from "./settings-config";
6
+ export * from "./toast-config";
@@ -0,0 +1,6 @@
1
+ export * from "./appearance-config";
2
+ export * from "./auth-config";
3
+ export * from "./avatar-config";
4
+ export * from "./email-and-password-config";
5
+ export * from "./settings-config";
6
+ export * from "./toast-config";
@@ -0,0 +1,22 @@
1
+ import type { AppearanceConfig } from "./appearance-config";
2
+ import type { AvatarConfig } from "./avatar-config";
3
+ /**
4
+ * Configuration options for user settings.
5
+ */
6
+ export type SettingsConfig = {
7
+ /**
8
+ * Appearance/theme configuration
9
+ * @default { themes: ["system", "light", "dark"] }
10
+ */
11
+ appearance: AppearanceConfig;
12
+ /**
13
+ * Avatar upload, optimization, and deletion configuration.
14
+ * @default { enabled: true, optimize: optimizeAvatar, size: 256 }
15
+ */
16
+ avatar: AvatarConfig;
17
+ /**
18
+ * Whether the settings section is enabled
19
+ * @default true
20
+ */
21
+ enabled?: boolean;
22
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ export type RenderToast = (message?: string, options?: {
2
+ action?: {
3
+ label: string;
4
+ onClick: () => Promise<void> | void;
5
+ };
6
+ actionProps?: {
7
+ children: string;
8
+ onClick: () => Promise<void> | void;
9
+ };
10
+ }) => string | number | unknown;
11
+ export type DismissToast = (id?: number | string | unknown | any) => string | number | unknown;
12
+ export declare const defaultToast: RenderToast;
13
+ export type ToastConfig = {
14
+ /** Display an error toast notification */
15
+ error: RenderToast;
16
+ /** Display a danger toast notification */
17
+ danger?: RenderToast;
18
+ /** Display a success toast notification */
19
+ success: RenderToast;
20
+ /** Display an info toast notification */
21
+ info: RenderToast;
22
+ /** Optional function to dismiss a toast notification by its ID */
23
+ dismiss?: DismissToast;
24
+ };
@@ -0,0 +1,10 @@
1
+ export const defaultToast = (message, options) => {
2
+ if (options?.action) {
3
+ if (confirm(message)) {
4
+ options.action.onClick();
5
+ }
6
+ }
7
+ else {
8
+ alert(message);
9
+ }
10
+ };
@@ -0,0 +1,175 @@
1
+ export declare const localization: {
2
+ auth: {
3
+ /** @remarks `"Account"` */
4
+ account: string;
5
+ /** @remarks `"Add Account"` */
6
+ addAccount: string;
7
+ /** @remarks `"Already have an account?"` */
8
+ alreadyHaveAnAccount: string;
9
+ /** @remarks `"Confirm password"` */
10
+ confirmPassword: string;
11
+ /** @remarks `"Confirm your password"` */
12
+ confirmPasswordPlaceholder: string;
13
+ /** @remarks `"Continue with {{provider}}"` */
14
+ continueWith: string;
15
+ /** @remarks `"Email"` */
16
+ email: string;
17
+ /** @remarks `"Enter your email"` */
18
+ emailPlaceholder: string;
19
+ /** @remarks `"Forgot Password"` */
20
+ forgotPassword: string;
21
+ /** @remarks `"Forgot password?"` */
22
+ forgotPasswordLink: string;
23
+ /** @remarks `"Hide password"` */
24
+ hidePassword: string;
25
+ /** @remarks `"Invalid reset password token"` */
26
+ invalidResetPasswordToken: string;
27
+ /** @remarks `"Magic Link"` */
28
+ magicLink: string;
29
+ /** @remarks `"Magic link sent to your email"` */
30
+ magicLinkSent: string;
31
+ /** @remarks `"Name"` */
32
+ name: string;
33
+ /** @remarks `"Enter your name"` */
34
+ namePlaceholder: string;
35
+ /** @remarks `"Need to create an account?"` */
36
+ needToCreateAnAccount: string;
37
+ /** @remarks `"New password"` */
38
+ newPassword: string;
39
+ /** @remarks `"Enter your new password"` */
40
+ newPasswordPlaceholder: string;
41
+ /** @remarks `"OR"` */
42
+ or: string;
43
+ /** @remarks `"Password"` */
44
+ password: string;
45
+ /** @remarks `"Enter your password"` */
46
+ passwordPlaceholder: string;
47
+ /** @remarks `"Password reset email sent"` */
48
+ passwordResetEmailSent: string;
49
+ /** @remarks `"Password reset successfully"` */
50
+ passwordResetSuccess: string;
51
+ /** @remarks `"Passwords do not match"` */
52
+ passwordsDoNotMatch: string;
53
+ /** @remarks `"Remember me"` */
54
+ rememberMe: string;
55
+ /** @remarks `"Remember your password?"` */
56
+ rememberYourPassword: string;
57
+ /** @remarks `"Resend"` */
58
+ resend: string;
59
+ /** @remarks `"Reset Password"` */
60
+ resetPassword: string;
61
+ /** @remarks `"Send Magic Link"` */
62
+ sendMagicLink: string;
63
+ /** @remarks `"Send reset link"` */
64
+ sendResetLink: string;
65
+ /** @remarks `"Show password"` */
66
+ showPassword: string;
67
+ /** @remarks `"Sign In"` */
68
+ signIn: string;
69
+ /** @remarks `"Sign Out"` */
70
+ signOut: string;
71
+ /** @remarks `"Sign Up"` */
72
+ signUp: string;
73
+ /** @remarks `"Switch Account"` */
74
+ switchAccount: string;
75
+ /** @remarks `"Verification email sent!"` */
76
+ verificationEmailSent: string;
77
+ /** @remarks `"Verify your email"` */
78
+ verifyYourEmail: string;
79
+ };
80
+ settings: {
81
+ /** @remarks `"Account"` */
82
+ account: string;
83
+ /** @remarks `"Account unlinked"` */
84
+ accountUnlinked: string;
85
+ /** @remarks `"Active"` */
86
+ active: string;
87
+ /** @remarks `"Active sessions"` */
88
+ activeSessions: string;
89
+ /** @remarks `"Avatar"` */
90
+ avatar: string;
91
+ /** @remarks `"Current session"` */
92
+ currentSession: string;
93
+ /** @remarks `"Avatar changed successfully"` */
94
+ avatarChangedSuccess: string;
95
+ /** @remarks `"Avatar deleted successfully"` */
96
+ avatarDeletedSuccess: string;
97
+ /** @remarks `"Change avatar"` */
98
+ changeAvatar: string;
99
+ /** @remarks `"Delete avatar"` */
100
+ deleteAvatar: string;
101
+ /** @remarks `"Link"` */
102
+ link: string;
103
+ /** @remarks `"Linked accounts"` */
104
+ linkedAccounts: string;
105
+ /** @remarks `"Link your {{provider}} account"` */
106
+ linkProvider: string;
107
+ /** @remarks `"Appearance"` */
108
+ appearance: string;
109
+ /** @remarks `"Cancel"` */
110
+ cancel: string;
111
+ /** @remarks `"Change email"` */
112
+ changeEmail: string;
113
+ /** @remarks `"Check your email to confirm the change"` */
114
+ changeEmailSuccess: string;
115
+ /** @remarks `"Change password"` */
116
+ changePassword: string;
117
+ /** @remarks `"Password changed successfully"` */
118
+ changePasswordSuccess: string;
119
+ /** @remarks `"Current password"` */
120
+ currentPassword: string;
121
+ /** @remarks `"Enter your current password"` */
122
+ currentPasswordPlaceholder: string;
123
+ /** @remarks `"Dark"` */
124
+ dark: string;
125
+ /** @remarks `"Danger zone"` */
126
+ dangerZone: string;
127
+ /** @remarks `"Delete user"` */
128
+ deleteUser: string;
129
+ /** @remarks `"Permanently remove your account and all associated data. This cannot be undone."` */
130
+ deleteUserDescription: string;
131
+ /** @remarks `"Check your email to confirm account deletion."` */
132
+ deleteUserVerificationSent: string;
133
+ /** @remarks `"Your account has been deleted."` */
134
+ deleteUserSuccess: string;
135
+ /** @remarks `"Light"` */
136
+ light: string;
137
+ /** @remarks `"Manage accounts"` */
138
+ manageAccounts: string;
139
+ /** @remarks `"Profile"` */
140
+ profile: string;
141
+ /** @remarks `"Profile updated successfully"` */
142
+ profileUpdatedSuccess: string;
143
+ /** @remarks `"Revoke"` */
144
+ revoke: string;
145
+ /** @remarks `"Revoke session"` */
146
+ revokeSession: string;
147
+ /** @remarks `"Session revoked successfully"` */
148
+ revokeSessionSuccess: string;
149
+ /** @remarks `"Save changes"` */
150
+ saveChanges: string;
151
+ /** @remarks `"Set password"` */
152
+ setPassword: string;
153
+ /** @remarks `"You don't have a password yet. Request a reset link to set one up."` */
154
+ setPasswordDescription: string;
155
+ /** @remarks `"Security"` */
156
+ security: string;
157
+ /** @remarks `"Settings"` */
158
+ settings: string;
159
+ /** @remarks `"System"` */
160
+ system: string;
161
+ /** @remarks `"Theme"` */
162
+ theme: string;
163
+ /** @remarks `"Unlink {{provider}}"` */
164
+ unlinkProvider: string;
165
+ /** @remarks `"Update email"` */
166
+ updateEmail: string;
167
+ /** @remarks `"Update password"` */
168
+ updatePassword: string;
169
+ /** @remarks `"Upload avatar"` */
170
+ uploadAvatar: string;
171
+ };
172
+ };
173
+ export type Localization = typeof localization;
174
+ export type AuthLocalization = Localization["auth"];
175
+ export type SettingsLocalization = Localization["settings"];