@better-auth-ui/react 1.6.8 → 1.6.10

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 (233) hide show
  1. package/dist/components/auth/auth-context.d.ts +3 -0
  2. package/dist/components/auth/email/email-localization.d.ts +11 -3
  3. package/dist/components/auth/email/index.d.ts +1 -0
  4. package/dist/components/auth/email/organization-invitation.d.ts +121 -0
  5. package/dist/components/mutation-invalidator.d.ts +1 -0
  6. package/dist/email.js +1348 -11
  7. package/dist/hooks/auth/use-authenticate.d.ts +1 -1
  8. package/dist/hooks/auth/use-user.d.ts +12 -12
  9. package/dist/hooks/use-auth-query.d.ts +1 -1
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.js +2469 -79
  12. package/dist/lib/auth-client.d.ts +4 -1
  13. package/dist/lib/auth-plugin.d.ts +16 -0
  14. package/dist/lib/auth-server.d.ts +8 -1
  15. package/dist/lib/settings-tab.d.ts +19 -0
  16. package/dist/mutations/api-key/create-api-key-mutation.d.ts +6 -4
  17. package/dist/mutations/api-key/delete-api-key-mutation.d.ts +7 -3
  18. package/dist/mutations/auth/sign-in-email-mutation.d.ts +5 -5
  19. package/dist/mutations/auth/sign-out-mutation.d.ts +6 -4
  20. package/dist/mutations/auth/sign-up-email-mutation.d.ts +5 -5
  21. package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +5 -5
  22. package/dist/mutations/multi-session/set-active-session-mutation.d.ts +5 -6
  23. package/dist/mutations/organization/accept-invitation-mutation.d.ts +43 -0
  24. package/dist/mutations/organization/cancel-invitation-mutation.d.ts +25 -0
  25. package/dist/mutations/organization/check-slug-mutation.d.ts +21 -0
  26. package/dist/mutations/organization/create-organization-mutation.d.ts +39 -0
  27. package/dist/mutations/organization/delete-organization-mutation.d.ts +21 -0
  28. package/dist/mutations/organization/index.d.ts +12 -0
  29. package/dist/mutations/organization/invite-member-mutation.d.ts +43 -0
  30. package/dist/mutations/organization/leave-organization-mutation.d.ts +65 -0
  31. package/dist/mutations/organization/reject-invitation-mutation.d.ts +31 -0
  32. package/dist/mutations/organization/remove-member-mutation.d.ts +35 -0
  33. package/dist/mutations/organization/set-active-organization-mutation.d.ts +71 -0
  34. package/dist/mutations/organization/update-member-role-mutation.d.ts +31 -0
  35. package/dist/mutations/organization/update-organization-mutation.d.ts +21 -0
  36. package/dist/mutations/passkey/add-passkey-mutation.d.ts +5 -5
  37. package/dist/mutations/passkey/delete-passkey-mutation.d.ts +5 -5
  38. package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +5 -5
  39. package/dist/mutations/settings/change-email-mutation.d.ts +6 -5
  40. package/dist/mutations/settings/revoke-session-mutation.d.ts +5 -5
  41. package/dist/mutations/settings/unlink-account-mutation.d.ts +5 -5
  42. package/dist/mutations/settings/update-user-mutation.d.ts +5 -5
  43. package/dist/mutations/username/sign-in-username-mutation.d.ts +5 -5
  44. package/dist/plugins/captcha-plugin.d.ts +2 -2
  45. package/dist/plugins.js +27 -2
  46. package/dist/queries/api-key/list-api-keys-query.d.ts +17 -8
  47. package/dist/queries/auth/session-query.d.ts +1 -1
  48. package/dist/queries/multi-session/list-device-sessions-query.d.ts +5 -5
  49. package/dist/queries/organization/active-organization-query.d.ts +39 -0
  50. package/dist/queries/organization/full-organization-query.d.ts +37 -0
  51. package/dist/queries/organization/has-permission-query.d.ts +21 -0
  52. package/dist/queries/organization/index.d.ts +7 -0
  53. package/dist/queries/organization/list-invitations-query.d.ts +29 -0
  54. package/dist/queries/organization/list-members-query.d.ts +61 -0
  55. package/dist/queries/organization/list-organizations-query.d.ts +22 -0
  56. package/dist/queries/organization/list-user-invitations-query.d.ts +29 -0
  57. package/dist/queries/passkey/list-passkeys-query.d.ts +5 -5
  58. package/dist/queries/settings/account-info-query.d.ts +1 -1
  59. package/dist/queries/settings/list-accounts-query.d.ts +1 -1
  60. package/dist/queries/settings/list-sessions-query.d.ts +1 -1
  61. package/dist/server/queries/api-key/list-api-keys-query.d.ts +83 -0
  62. package/dist/server/queries/multi-session/list-device-sessions-query.d.ts +4 -4
  63. package/dist/server/queries/organization/active-organization-query.d.ts +61 -0
  64. package/dist/server/queries/organization/full-organization-query.d.ts +42 -0
  65. package/dist/server/queries/organization/has-permission-query.d.ts +66 -0
  66. package/dist/server/queries/organization/list-invitations-query.d.ts +34 -0
  67. package/dist/server/queries/organization/list-members-query.d.ts +66 -0
  68. package/dist/server/queries/organization/list-organizations-query.d.ts +27 -0
  69. package/dist/server/queries/organization/list-user-invitations-query.d.ts +34 -0
  70. package/dist/server/queries/passkey/list-passkeys-query.d.ts +4 -4
  71. package/dist/server.d.ts +8 -0
  72. package/dist/server.js +131 -7
  73. package/dist/use-auth-plugin-ClcP84Uz.js +80 -0
  74. package/package.json +19 -16
  75. package/src/components/auth/auth-context.tsx +7 -0
  76. package/src/components/auth/auth-provider.tsx +19 -31
  77. package/src/components/auth/email/email-localization.tsx +5 -3
  78. package/src/components/auth/email/index.ts +1 -0
  79. package/src/components/auth/email/organization-invitation.tsx +454 -0
  80. package/src/components/mutation-invalidator.tsx +67 -0
  81. package/src/index.ts +3 -0
  82. package/src/lib/auth-client.ts +7 -0
  83. package/src/lib/auth-plugin.ts +17 -0
  84. package/src/lib/auth-server.ts +17 -1
  85. package/src/lib/settings-tab.ts +21 -0
  86. package/src/mutations/api-key/create-api-key-mutation.ts +34 -19
  87. package/src/mutations/api-key/delete-api-key-mutation.ts +36 -19
  88. package/src/mutations/auth/sign-in-email-mutation.ts +18 -22
  89. package/src/mutations/auth/sign-out-mutation.ts +19 -13
  90. package/src/mutations/auth/sign-up-email-mutation.ts +18 -22
  91. package/src/mutations/multi-session/revoke-multi-session-mutation.ts +31 -20
  92. package/src/mutations/multi-session/set-active-session-mutation.ts +25 -44
  93. package/src/mutations/organization/accept-invitation-mutation.ts +71 -0
  94. package/src/mutations/organization/cancel-invitation-mutation.ts +67 -0
  95. package/src/mutations/organization/check-slug-mutation.ts +55 -0
  96. package/src/mutations/organization/create-organization-mutation.ts +71 -0
  97. package/src/mutations/organization/delete-organization-mutation.ts +71 -0
  98. package/src/mutations/organization/index.ts +12 -0
  99. package/src/mutations/organization/invite-member-mutation.ts +81 -0
  100. package/src/mutations/organization/leave-organization-mutation.ts +74 -0
  101. package/src/mutations/organization/reject-invitation-mutation.ts +64 -0
  102. package/src/mutations/organization/remove-member-mutation.ts +67 -0
  103. package/src/mutations/organization/set-active-organization-mutation.ts +142 -0
  104. package/src/mutations/organization/update-member-role-mutation.ts +81 -0
  105. package/src/mutations/organization/update-organization-mutation.ts +84 -0
  106. package/src/mutations/passkey/add-passkey-mutation.ts +28 -17
  107. package/src/mutations/passkey/delete-passkey-mutation.ts +27 -17
  108. package/src/mutations/passkey/sign-in-passkey-mutation.ts +18 -21
  109. package/src/mutations/settings/change-email-mutation.ts +22 -18
  110. package/src/mutations/settings/delete-user-mutation.ts +2 -2
  111. package/src/mutations/settings/revoke-session-mutation.ts +24 -19
  112. package/src/mutations/settings/unlink-account-mutation.ts +24 -17
  113. package/src/mutations/settings/update-user-mutation.ts +18 -30
  114. package/src/mutations/username/is-username-available-mutation.ts +2 -2
  115. package/src/mutations/username/sign-in-username-mutation.ts +20 -23
  116. package/src/queries/api-key/list-api-keys-query.ts +20 -8
  117. package/src/queries/multi-session/list-device-sessions-query.ts +2 -2
  118. package/src/queries/organization/active-organization-query.ts +140 -0
  119. package/src/queries/organization/full-organization-query.ts +113 -0
  120. package/src/queries/organization/has-permission-query.ts +124 -0
  121. package/src/queries/organization/index.ts +7 -0
  122. package/src/queries/organization/list-invitations-query.ts +133 -0
  123. package/src/queries/organization/list-members-query.ts +133 -0
  124. package/src/queries/organization/list-organizations-query.ts +122 -0
  125. package/src/queries/organization/list-user-invitations-query.ts +122 -0
  126. package/src/queries/passkey/list-passkeys-query.ts +2 -2
  127. package/src/server/queries/api-key/list-api-keys-query.ts +94 -0
  128. package/src/server/queries/multi-session/list-device-sessions-query.ts +2 -2
  129. package/src/server/queries/organization/active-organization-query.ts +92 -0
  130. package/src/server/queries/organization/full-organization-query.ts +64 -0
  131. package/src/server/queries/organization/has-permission-query.ts +66 -0
  132. package/src/server/queries/organization/list-invitations-query.ts +81 -0
  133. package/src/server/queries/organization/list-members-query.ts +75 -0
  134. package/src/server/queries/organization/list-organizations-query.ts +67 -0
  135. package/src/server/queries/organization/list-user-invitations-query.ts +68 -0
  136. package/src/server/queries/passkey/list-passkeys-query.ts +2 -2
  137. package/src/server.ts +8 -0
  138. package/dist/components/auth/auth-provider.js +0 -44
  139. package/dist/components/auth/email/email-changed.js +0 -156
  140. package/dist/components/auth/email/email-localization.js +0 -19
  141. package/dist/components/auth/email/email-styles.js +0 -104
  142. package/dist/components/auth/email/email-verification.js +0 -140
  143. package/dist/components/auth/email/index.js +0 -9
  144. package/dist/components/auth/email/magic-link.js +0 -141
  145. package/dist/components/auth/email/new-device.js +0 -223
  146. package/dist/components/auth/email/otp-email.js +0 -129
  147. package/dist/components/auth/email/password-changed.js +0 -159
  148. package/dist/components/auth/email/reset-password.js +0 -140
  149. package/dist/components/auth/fetch-options-provider.js +0 -30
  150. package/dist/components/icons/apple.js +0 -17
  151. package/dist/components/icons/atlassian.js +0 -39
  152. package/dist/components/icons/cognito.js +0 -20
  153. package/dist/components/icons/discord.js +0 -17
  154. package/dist/components/icons/dropbox.js +0 -17
  155. package/dist/components/icons/facebook.js +0 -20
  156. package/dist/components/icons/figma.js +0 -35
  157. package/dist/components/icons/github.js +0 -17
  158. package/dist/components/icons/gitlab.js +0 -31
  159. package/dist/components/icons/google.js +0 -40
  160. package/dist/components/icons/huggingface.js +0 -39
  161. package/dist/components/icons/index.js +0 -35
  162. package/dist/components/icons/kakao.js +0 -17
  163. package/dist/components/icons/kick.js +0 -21
  164. package/dist/components/icons/line.js +0 -17
  165. package/dist/components/icons/linear.js +0 -17
  166. package/dist/components/icons/linkedin.js +0 -34
  167. package/dist/components/icons/microsoft.js +0 -31
  168. package/dist/components/icons/naver.js +0 -17
  169. package/dist/components/icons/notion.js +0 -17
  170. package/dist/components/icons/paybin.js +0 -33
  171. package/dist/components/icons/paypal.js +0 -31
  172. package/dist/components/icons/polar.js +0 -25
  173. package/dist/components/icons/railway.js +0 -17
  174. package/dist/components/icons/reddit.js +0 -22
  175. package/dist/components/icons/roblox.js +0 -18
  176. package/dist/components/icons/salesforce.js +0 -17
  177. package/dist/components/icons/slack.js +0 -31
  178. package/dist/components/icons/spotify.js +0 -17
  179. package/dist/components/icons/tiktok.js +0 -24
  180. package/dist/components/icons/twitch.js +0 -44
  181. package/dist/components/icons/vercel.js +0 -17
  182. package/dist/components/icons/vk.js +0 -17
  183. package/dist/components/icons/wechat.js +0 -17
  184. package/dist/components/icons/x.js +0 -17
  185. package/dist/components/icons/zoom.js +0 -70
  186. package/dist/components/settings/account/theme-preview.js +0 -289
  187. package/dist/hooks/auth/use-authenticate.js +0 -23
  188. package/dist/hooks/auth/use-user.js +0 -11
  189. package/dist/hooks/use-auth-mutation.js +0 -11
  190. package/dist/hooks/use-auth-plugin.js +0 -10
  191. package/dist/hooks/use-auth-query.js +0 -15
  192. package/dist/lib/provider-icons.js +0 -76
  193. package/dist/lib/utils.js +0 -8
  194. package/dist/mutations/api-key/create-api-key-mutation.js +0 -29
  195. package/dist/mutations/api-key/delete-api-key-mutation.js +0 -29
  196. package/dist/mutations/auth/request-password-reset-mutation.js +0 -24
  197. package/dist/mutations/auth/reset-password-mutation.js +0 -24
  198. package/dist/mutations/auth/send-verification-email-mutation.js +0 -24
  199. package/dist/mutations/auth/sign-in-email-mutation.js +0 -29
  200. package/dist/mutations/auth/sign-in-social-mutation.js +0 -24
  201. package/dist/mutations/auth/sign-out-mutation.js +0 -28
  202. package/dist/mutations/auth/sign-up-email-mutation.js +0 -29
  203. package/dist/mutations/auth-mutation-options.js +0 -19
  204. package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +0 -24
  205. package/dist/mutations/multi-session/revoke-multi-session-mutation.js +0 -29
  206. package/dist/mutations/multi-session/set-active-session-mutation.js +0 -31
  207. package/dist/mutations/passkey/add-passkey-mutation.js +0 -29
  208. package/dist/mutations/passkey/delete-passkey-mutation.js +0 -29
  209. package/dist/mutations/passkey/sign-in-passkey-mutation.js +0 -29
  210. package/dist/mutations/settings/change-email-mutation.js +0 -29
  211. package/dist/mutations/settings/change-password-mutation.js +0 -24
  212. package/dist/mutations/settings/delete-user-mutation.js +0 -24
  213. package/dist/mutations/settings/link-social-mutation.js +0 -24
  214. package/dist/mutations/settings/revoke-session-mutation.js +0 -29
  215. package/dist/mutations/settings/unlink-account-mutation.js +0 -29
  216. package/dist/mutations/settings/update-user-mutation.js +0 -35
  217. package/dist/mutations/username/is-username-available-mutation.js +0 -24
  218. package/dist/mutations/username/sign-in-username-mutation.js +0 -29
  219. package/dist/plugins/captcha-plugin.js +0 -29
  220. package/dist/queries/api-key/list-api-keys-query.js +0 -31
  221. package/dist/queries/auth/session-query.js +0 -30
  222. package/dist/queries/auth-query-options.js +0 -17
  223. package/dist/queries/multi-session/list-device-sessions-query.js +0 -31
  224. package/dist/queries/passkey/list-passkeys-query.js +0 -31
  225. package/dist/queries/settings/account-info-query.js +0 -31
  226. package/dist/queries/settings/list-accounts-query.js +0 -31
  227. package/dist/queries/settings/list-sessions-query.js +0 -31
  228. package/dist/server/queries/auth/session-query.js +0 -13
  229. package/dist/server/queries/multi-session/list-device-sessions-query.js +0 -12
  230. package/dist/server/queries/passkey/list-passkeys-query.js +0 -12
  231. package/dist/server/queries/settings/account-info-query.js +0 -12
  232. package/dist/server/queries/settings/list-accounts-query.js +0 -12
  233. package/dist/server/queries/settings/list-sessions-query.js +0 -12
@@ -0,0 +1,3 @@
1
+ import { AuthConfig } from '@better-auth-ui/core';
2
+ /** Split from `auth-provider` so HMR reloading that file does not replace this context instance. */
3
+ export declare const AuthContext: import('react').Context<AuthConfig | undefined>;
@@ -2,9 +2,9 @@
2
2
  * Aggregated localization strings for all email components.
3
3
  *
4
4
  * Combines localization strings from all email templates (EmailChangedEmail,
5
- * EmailVerificationEmail, MagicLinkEmail, NewDeviceEmail, OtpEmail,
6
- * PasswordChangedEmail, ResetPasswordEmail) into a single object for convenient
7
- * bulk customization.
5
+ * EmailVerificationEmail, MagicLinkEmail, NewDeviceEmail,
6
+ * OrganizationInvitationEmail, OtpEmail, PasswordChangedEmail,
7
+ * ResetPasswordEmail) into a single object for convenient bulk customization.
8
8
  */
9
9
  export declare const emailLocalization: {
10
10
  RESET_YOUR_PASSWORD: string;
@@ -28,6 +28,14 @@ export declare const emailLocalization: {
28
28
  WE_NEED_TO_VERIFY_YOUR_EMAIL_ADDRESS: string;
29
29
  THIS_CODE_EXPIRES_IN_MINUTES: string;
30
30
  IF_YOU_DIDNT_REQUEST_THIS_EMAIL: string;
31
+ YOU_RE_INVITED_TO_ORGANIZATION: string;
32
+ YOU_RE_INVITED: string;
33
+ ORGANIZATION_LOGO: string;
34
+ INVITED_TO_JOIN_ORGANIZATION: string;
35
+ ACCEPT_INVITATION: string;
36
+ VIEW_INVITATION: string;
37
+ THIS_INVITATION_EXPIRES_IN_HOURS: string;
38
+ IF_YOU_DIDNT_EXPECT_THIS_INVITATION: string;
31
39
  NEW_SIGN_IN_DETECTED: string;
32
40
  NEW_SIGN_IN_TO_YOUR_ACCOUNT: string;
33
41
  DEVICE_DETAILS: string;
@@ -4,6 +4,7 @@ export * from './email-styles';
4
4
  export * from './email-verification';
5
5
  export * from './magic-link';
6
6
  export * from './new-device';
7
+ export * from './organization-invitation';
7
8
  export * from './otp-email';
8
9
  export * from './password-changed';
9
10
  export * from './reset-password';
@@ -0,0 +1,121 @@
1
+ import { ReactNode } from 'react';
2
+ import { EmailClassNames, EmailColors } from './email-styles';
3
+ declare const organizationInvitationEmailLocalization: {
4
+ YOU_RE_INVITED_TO_ORGANIZATION: string;
5
+ YOU_RE_INVITED: string;
6
+ LOGO: string;
7
+ ORGANIZATION_LOGO: string;
8
+ INVITED_TO_JOIN_ORGANIZATION: string;
9
+ ACCEPT_INVITATION: string;
10
+ VIEW_INVITATION: string;
11
+ OR_COPY_AND_PASTE_URL: string;
12
+ THIS_INVITATION_EXPIRES_IN_HOURS: string;
13
+ EMAIL_SENT_BY: string;
14
+ IF_YOU_DIDNT_EXPECT_THIS_INVITATION: string;
15
+ POWERED_BY_BETTER_AUTH: string;
16
+ };
17
+ /**
18
+ * Localization strings for the OrganizationInvitationEmail component.
19
+ *
20
+ * Contains all text content used in the organization invitation email template.
21
+ */
22
+ export type OrganizationInvitationEmailLocalization = typeof organizationInvitationEmailLocalization;
23
+ /**
24
+ * Props for the OrganizationInvitationEmail component.
25
+ */
26
+ export interface OrganizationInvitationEmailProps {
27
+ /**
28
+ * URL where the invitee can review and accept the invitation.
29
+ *
30
+ * @remarks Pass `{baseUrl}/settings/organizations` — this is where pending
31
+ * organization invitations are listed in the settings UI.
32
+ */
33
+ url: string;
34
+ /** Email address of the user being invited */
35
+ email?: string;
36
+ /** Name of the person who sent the invitation */
37
+ inviterName?: string;
38
+ /** Email address of the person who sent the invitation */
39
+ inviterEmail?: string;
40
+ /** Name of the organization the user is being invited to */
41
+ organizationName?: string;
42
+ /** Organization logo URL(s) - a single string or light/dark variants. */
43
+ organizationLogoURL?: string | {
44
+ light: string;
45
+ dark: string;
46
+ };
47
+ /** Role being offered to the invitee (e.g. "member", "admin", "owner") */
48
+ role?: string;
49
+ /** Name of the application sending the email */
50
+ appName?: string;
51
+ /** Number of hours until the invitation expires */
52
+ expirationHours?: number;
53
+ /** Logo URL(s) - a single string or light/dark variants. If omitted, no logo is shown. */
54
+ logoURL?: string | {
55
+ light: string;
56
+ dark: string;
57
+ };
58
+ /** Custom CSS class names for styling specific parts of the email */
59
+ classNames?: EmailClassNames;
60
+ /** Custom color scheme for light and dark modes */
61
+ colors?: EmailColors;
62
+ /** Whether to show the "Powered by better-auth" footer */
63
+ poweredBy?: boolean;
64
+ /** Whether to enable dark mode support */
65
+ darkMode?: boolean;
66
+ /** Additional React nodes to inject into the email head */
67
+ head?: ReactNode;
68
+ /**
69
+ * Localization overrides for customizing email text
70
+ * @remarks `OrganizationInvitationEmailLocalization`
71
+ */
72
+ localization?: Partial<OrganizationInvitationEmailLocalization>;
73
+ }
74
+ /**
75
+ * Email template component that invites a user to join an organization.
76
+ *
77
+ * This email includes:
78
+ * - Inviter and organization details
79
+ * - Role being offered
80
+ * - Accept invitation button linking to `{baseUrl}/settings/organizations`
81
+ * - Fallback URL for manual copy/paste
82
+ * - Optional expiration time information
83
+ * - Security notice for unexpected invitations
84
+ * - Customizable branding and styling
85
+ * - Support for light/dark mode themes
86
+ *
87
+ * @example
88
+ * ```tsx
89
+ * <OrganizationInvitationEmail
90
+ * url="https://example.com/settings/organizations"
91
+ * email="invitee@example.com"
92
+ * inviterName="Jane Doe"
93
+ * inviterEmail="jane@example.com"
94
+ * organizationName="Acme Inc."
95
+ * organizationLogoURL="https://example.com/acme-logo.png"
96
+ * role="member"
97
+ * appName="My App"
98
+ * expirationHours={48}
99
+ * darkMode={true}
100
+ * />
101
+ * ```
102
+ */
103
+ export declare const OrganizationInvitationEmail: {
104
+ ({ url, email, inviterName, inviterEmail, organizationName, organizationLogoURL, role, appName, expirationHours, logoURL, colors, classNames, darkMode, poweredBy, head, ...props }: OrganizationInvitationEmailProps): import("react/jsx-runtime").JSX.Element;
105
+ localization: {
106
+ YOU_RE_INVITED_TO_ORGANIZATION: string;
107
+ YOU_RE_INVITED: string;
108
+ LOGO: string;
109
+ ORGANIZATION_LOGO: string;
110
+ INVITED_TO_JOIN_ORGANIZATION: string;
111
+ ACCEPT_INVITATION: string;
112
+ VIEW_INVITATION: string;
113
+ OR_COPY_AND_PASTE_URL: string;
114
+ THIS_INVITATION_EXPIRES_IN_HOURS: string;
115
+ EMAIL_SENT_BY: string;
116
+ IF_YOU_DIDNT_EXPECT_THIS_INVITATION: string;
117
+ POWERED_BY_BETTER_AUTH: string;
118
+ };
119
+ PreviewProps: OrganizationInvitationEmailProps;
120
+ };
121
+ export default OrganizationInvitationEmail;
@@ -0,0 +1 @@
1
+ export declare function MutationInvalidator(): null;