better-auth 1.7.11 → 1.7.13

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 (276) hide show
  1. package/dist/adapters/index.d.mts +5 -10
  2. package/dist/api/dispatch.d.mts +3 -5
  3. package/dist/api/dispatch.mjs +6 -4
  4. package/dist/api/index.d.mts +506 -508
  5. package/dist/api/index.mjs +35 -34
  6. package/dist/api/middlewares/authorization.d.mts +15 -12
  7. package/dist/api/middlewares/authorization.mjs +2 -1
  8. package/dist/api/middlewares/index.d.mts +2 -1
  9. package/dist/api/middlewares/origin-check.d.mts +4 -7
  10. package/dist/api/routes/account.d.mts +11 -15
  11. package/dist/api/routes/account.mjs +7 -4
  12. package/dist/api/routes/callback.d.mts +2 -5
  13. package/dist/api/routes/callback.mjs +14 -53
  14. package/dist/api/routes/email-verification.d.mts +7 -12
  15. package/dist/api/routes/error.d.mts +2 -5
  16. package/dist/api/routes/index.d.mts +2 -1
  17. package/dist/api/routes/ok.d.mts +2 -5
  18. package/dist/api/routes/password.d.mts +8 -11
  19. package/dist/api/routes/password.mjs +3 -2
  20. package/dist/api/routes/session.d.mts +26 -29
  21. package/dist/api/routes/session.mjs +1 -1
  22. package/dist/api/routes/sign-in.d.mts +4 -6
  23. package/dist/api/routes/sign-out.d.mts +2 -5
  24. package/dist/api/routes/sign-up.d.mts +4 -6
  25. package/dist/api/routes/update-session.d.mts +4 -6
  26. package/dist/api/routes/update-user.d.mts +14 -16
  27. package/dist/api/routes/update-user.mjs +1 -1
  28. package/dist/api/state/oauth.d.mts +0 -3
  29. package/dist/api/state/oauth.mjs +2 -1
  30. package/dist/auth/full.d.mts +3 -4
  31. package/dist/auth/minimal.d.mts +3 -3
  32. package/dist/client/broadcast-channel.d.mts +6 -7
  33. package/dist/client/config.d.mts +15 -19
  34. package/dist/client/config.mjs +2 -2
  35. package/dist/client/equality.d.mts +3 -5
  36. package/dist/client/focus-manager.d.mts +4 -5
  37. package/dist/client/index.d.mts +8 -7
  38. package/dist/client/lynx/index.d.mts +6 -7
  39. package/dist/client/lynx/index.mjs +3 -2
  40. package/dist/client/lynx/lynx-store.d.mts +3 -4
  41. package/dist/client/online-manager.d.mts +4 -5
  42. package/dist/client/parser.d.mts +9 -5
  43. package/dist/client/path-to-object.d.mts +13 -14
  44. package/dist/client/plugins/index.d.mts +1 -1
  45. package/dist/client/plugins/infer-plugin.d.mts +2 -4
  46. package/dist/client/query.d.mts +4 -6
  47. package/dist/client/react/index.d.mts +6 -7
  48. package/dist/client/react/index.mjs +3 -2
  49. package/dist/client/react/react-store.d.mts +3 -4
  50. package/dist/client/session-atom.d.mts +4 -4
  51. package/dist/client/session-refresh.d.mts +3 -5
  52. package/dist/client/solid/index.d.mts +6 -7
  53. package/dist/client/solid/index.mjs +3 -2
  54. package/dist/client/svelte/index.d.mts +6 -7
  55. package/dist/client/svelte/index.mjs +3 -2
  56. package/dist/client/types.d.mts +11 -11
  57. package/dist/client/vanilla.d.mts +4 -5
  58. package/dist/client/vanilla.mjs +3 -2
  59. package/dist/client/vue/index.d.mts +6 -7
  60. package/dist/client/vue/index.mjs +3 -2
  61. package/dist/context/create-context.mjs +7 -7
  62. package/dist/context/helpers.mjs +9 -7
  63. package/dist/cookies/cookie-utils.d.mts +13 -13
  64. package/dist/cookies/cookie-utils.mjs +1 -3
  65. package/dist/cookies/index.d.mts +17 -18
  66. package/dist/cookies/index.mjs +11 -7
  67. package/dist/cookies/jwt.mjs +2 -1
  68. package/dist/cookies/session-store.d.mts +6 -5
  69. package/dist/cookies/session-store.mjs +3 -2
  70. package/dist/crypto/buffer.d.mts +2 -3
  71. package/dist/crypto/index.d.mts +9 -16
  72. package/dist/crypto/index.mjs +2 -1
  73. package/dist/crypto/jwt.d.mts +5 -7
  74. package/dist/crypto/jwt.mjs +2 -1
  75. package/dist/crypto/password.d.mts +1 -5
  76. package/dist/crypto/random.d.mts +2 -3
  77. package/dist/db/adapter-base.d.mts +2 -4
  78. package/dist/db/adapter-kysely.d.mts +2 -4
  79. package/dist/db/field-converter.d.mts +3 -5
  80. package/dist/db/field.d.mts +11 -12
  81. package/dist/db/get-migration.d.mts +4 -8
  82. package/dist/db/get-migration.mjs +22 -22
  83. package/dist/db/get-schema.d.mts +2 -4
  84. package/dist/db/internal-adapter.d.mts +2 -4
  85. package/dist/db/internal-adapter.mjs +6 -4
  86. package/dist/db/revoke-unproven-account-access.d.mts +3 -4
  87. package/dist/db/schema.d.mts +15 -16
  88. package/dist/db/schema.mjs +6 -3
  89. package/dist/db/to-zod.d.mts +5 -9
  90. package/dist/db/with-hooks.d.mts +3 -5
  91. package/dist/index.d.mts +4 -3
  92. package/dist/integrations/next-js.d.mts +7 -11
  93. package/dist/integrations/node.d.mts +5 -7
  94. package/dist/integrations/node.mjs +4 -2
  95. package/dist/integrations/solid-start.d.mts +2 -3
  96. package/dist/integrations/svelte-kit.d.mts +6 -14
  97. package/dist/integrations/tanstack-start-solid.d.mts +4 -8
  98. package/dist/integrations/tanstack-start.d.mts +4 -8
  99. package/dist/oauth2/callback.mjs +68 -0
  100. package/dist/oauth2/link-account.d.mts +5 -11
  101. package/dist/oauth2/link-account.mjs +12 -6
  102. package/dist/oauth2/state.d.mts +5 -7
  103. package/dist/oauth2/state.mjs +1 -1
  104. package/dist/oauth2/utils.d.mts +4 -6
  105. package/dist/package.mjs +1 -1
  106. package/dist/plugins/access/access.d.mts +4 -6
  107. package/dist/plugins/access/index.mjs +1 -2
  108. package/dist/plugins/access/types.d.mts +12 -14
  109. package/dist/plugins/additional-fields/client.d.mts +2 -4
  110. package/dist/plugins/admin/access/index.mjs +1 -2
  111. package/dist/plugins/admin/access/statement.d.mts +7 -7
  112. package/dist/plugins/admin/admin.d.mts +122 -128
  113. package/dist/plugins/admin/client.d.mts +32 -32
  114. package/dist/plugins/admin/client.mjs +1 -1
  115. package/dist/plugins/admin/error-codes.d.mts +25 -28
  116. package/dist/plugins/admin/index.d.mts +1 -1
  117. package/dist/plugins/admin/index.mjs +1 -2
  118. package/dist/plugins/admin/schema.d.mts +3 -4
  119. package/dist/plugins/admin/types.d.mts +8 -8
  120. package/dist/plugins/anonymous/client.d.mts +10 -12
  121. package/dist/plugins/anonymous/client.mjs +1 -1
  122. package/dist/plugins/anonymous/error-codes.d.mts +10 -13
  123. package/dist/plugins/anonymous/index.d.mts +17 -21
  124. package/dist/plugins/anonymous/schema.d.mts +2 -3
  125. package/dist/plugins/anonymous/types.d.mts +5 -6
  126. package/dist/plugins/bearer/index.d.mts +7 -11
  127. package/dist/plugins/captcha/constants.d.mts +2 -3
  128. package/dist/plugins/captcha/index.d.mts +6 -9
  129. package/dist/plugins/captcha/types.d.mts +11 -13
  130. package/dist/plugins/custom-session/client.d.mts +2 -4
  131. package/dist/plugins/custom-session/index.d.mts +10 -16
  132. package/dist/plugins/device-authorization/client.d.mts +2 -4
  133. package/dist/plugins/device-authorization/index.d.mts +39 -44
  134. package/dist/plugins/device-authorization/index.mjs +10 -9
  135. package/dist/plugins/device-authorization/routes.d.mts +7 -5
  136. package/dist/plugins/device-authorization/routes.mjs +6 -5
  137. package/dist/plugins/device-authorization/schema.d.mts +2 -3
  138. package/dist/plugins/email-otp/client.d.mts +5 -7
  139. package/dist/plugins/email-otp/client.mjs +1 -1
  140. package/dist/plugins/email-otp/error-codes.d.mts +5 -8
  141. package/dist/plugins/email-otp/index.d.mts +69 -76
  142. package/dist/plugins/email-otp/otp-token.mjs +19 -7
  143. package/dist/plugins/email-otp/types.d.mts +2 -4
  144. package/dist/plugins/generic-oauth/index.d.mts +9 -13
  145. package/dist/plugins/generic-oauth/index.mjs +6 -4
  146. package/dist/plugins/generic-oauth/providers/auth0.d.mts +3 -5
  147. package/dist/plugins/generic-oauth/providers/gumroad.d.mts +3 -5
  148. package/dist/plugins/generic-oauth/providers/hubspot.d.mts +3 -5
  149. package/dist/plugins/generic-oauth/providers/hubspot.mjs +2 -1
  150. package/dist/plugins/generic-oauth/providers/index.d.mts +2 -1
  151. package/dist/plugins/generic-oauth/providers/keycloak.d.mts +3 -5
  152. package/dist/plugins/generic-oauth/providers/line.d.mts +3 -5
  153. package/dist/plugins/generic-oauth/providers/microsoft-entra-id.d.mts +3 -5
  154. package/dist/plugins/generic-oauth/providers/okta.d.mts +3 -5
  155. package/dist/plugins/generic-oauth/providers/patreon.d.mts +3 -5
  156. package/dist/plugins/generic-oauth/providers/slack.d.mts +3 -5
  157. package/dist/plugins/generic-oauth/providers/yandex.d.mts +3 -5
  158. package/dist/plugins/generic-oauth/types.d.mts +6 -7
  159. package/dist/plugins/haveibeenpwned/index.d.mts +7 -11
  160. package/dist/plugins/index.d.mts +4 -1
  161. package/dist/plugins/jwt/adapter.mjs +14 -3
  162. package/dist/plugins/jwt/client.d.mts +2 -3
  163. package/dist/plugins/jwt/cookie-cache.mjs +3 -8
  164. package/dist/plugins/jwt/index.d.mts +11 -14
  165. package/dist/plugins/jwt/index.mjs +3 -3
  166. package/dist/plugins/jwt/schema.d.mts +2 -3
  167. package/dist/plugins/jwt/sign.d.mts +9 -8
  168. package/dist/plugins/jwt/sign.mjs +6 -5
  169. package/dist/plugins/jwt/types.d.mts +7 -8
  170. package/dist/plugins/jwt/utils.d.mts +6 -9
  171. package/dist/plugins/jwt/verify.d.mts +2 -4
  172. package/dist/plugins/jwt/verify.mjs +10 -4
  173. package/dist/plugins/last-login-method/client.d.mts +3 -4
  174. package/dist/plugins/last-login-method/index.d.mts +5 -9
  175. package/dist/plugins/last-login-method/index.mjs +1 -1
  176. package/dist/plugins/magic-link/client.d.mts +2 -4
  177. package/dist/plugins/magic-link/index.d.mts +7 -10
  178. package/dist/plugins/magic-link/index.mjs +20 -17
  179. package/dist/plugins/multi-session/client.d.mts +3 -5
  180. package/dist/plugins/multi-session/client.mjs +1 -1
  181. package/dist/plugins/multi-session/error-codes.d.mts +3 -6
  182. package/dist/plugins/multi-session/index.d.mts +10 -14
  183. package/dist/plugins/oauth-popup/client.d.mts +11 -17
  184. package/dist/plugins/oauth-popup/client.mjs +6 -4
  185. package/dist/plugins/oauth-popup/constants.d.mts +5 -6
  186. package/dist/plugins/oauth-popup/error-codes.d.mts +6 -9
  187. package/dist/plugins/oauth-popup/index.d.mts +11 -15
  188. package/dist/plugins/oauth-popup/index.mjs +8 -7
  189. package/dist/plugins/oauth-popup/types.d.mts +4 -6
  190. package/dist/plugins/oauth-proxy/index.d.mts +11 -15
  191. package/dist/plugins/oauth-proxy/index.mjs +24 -48
  192. package/dist/plugins/one-tap/client.d.mts +6 -9
  193. package/dist/plugins/one-tap/index.d.mts +4 -7
  194. package/dist/plugins/one-time-token/client.d.mts +2 -3
  195. package/dist/plugins/one-time-token/index.d.mts +8 -10
  196. package/dist/plugins/open-api/generator.d.mts +8 -8
  197. package/dist/plugins/open-api/generator.mjs +5 -5
  198. package/dist/plugins/open-api/index.d.mts +5 -7
  199. package/dist/plugins/organization/access/index.mjs +1 -2
  200. package/dist/plugins/organization/access/statement.d.mts +8 -8
  201. package/dist/plugins/organization/adapter.d.mts +60 -87
  202. package/dist/plugins/organization/adapter.mjs +14 -10
  203. package/dist/plugins/organization/client.d.mts +108 -107
  204. package/dist/plugins/organization/client.mjs +9 -5
  205. package/dist/plugins/organization/error-codes.d.mts +61 -64
  206. package/dist/plugins/organization/has-permission.d.mts +2 -4
  207. package/dist/plugins/organization/has-permission.mjs +1 -1
  208. package/dist/plugins/organization/index.d.mts +1 -1
  209. package/dist/plugins/organization/organization.d.mts +20 -20
  210. package/dist/plugins/organization/organization.mjs +13 -8
  211. package/dist/plugins/organization/permission.d.mts +4 -5
  212. package/dist/plugins/organization/routes/crud-access-control.d.mts +28 -28
  213. package/dist/plugins/organization/routes/crud-invites.d.mts +64 -65
  214. package/dist/plugins/organization/routes/crud-invites.mjs +21 -18
  215. package/dist/plugins/organization/routes/crud-members.d.mts +53 -56
  216. package/dist/plugins/organization/routes/crud-members.mjs +23 -21
  217. package/dist/plugins/organization/routes/crud-org.d.mts +63 -65
  218. package/dist/plugins/organization/routes/crud-org.mjs +4 -2
  219. package/dist/plugins/organization/routes/crud-team.d.mts +65 -66
  220. package/dist/plugins/organization/routes/crud-team.mjs +4 -2
  221. package/dist/plugins/organization/schema.d.mts +33 -33
  222. package/dist/plugins/organization/schema.mjs +1 -1
  223. package/dist/plugins/organization/types.d.mts +16 -17
  224. package/dist/plugins/phone-number/client.d.mts +14 -16
  225. package/dist/plugins/phone-number/client.mjs +1 -1
  226. package/dist/plugins/phone-number/error-codes.d.mts +14 -17
  227. package/dist/plugins/phone-number/index.d.mts +48 -54
  228. package/dist/plugins/phone-number/schema.d.mts +2 -3
  229. package/dist/plugins/phone-number/types.d.mts +4 -5
  230. package/dist/plugins/siwe/client.d.mts +2 -4
  231. package/dist/plugins/siwe/index.d.mts +7 -9
  232. package/dist/plugins/siwe/index.mjs +1 -1
  233. package/dist/plugins/siwe/parse-message.mjs +1 -3
  234. package/dist/plugins/siwe/schema.d.mts +3 -4
  235. package/dist/plugins/siwe/types.d.mts +4 -4
  236. package/dist/plugins/test-utils/auth-helpers.mjs +4 -2
  237. package/dist/plugins/test-utils/index.d.mts +3 -5
  238. package/dist/plugins/test-utils/types.d.mts +7 -7
  239. package/dist/plugins/two-factor/backup-codes/index.d.mts +11 -14
  240. package/dist/plugins/two-factor/backup-codes/index.mjs +12 -6
  241. package/dist/plugins/two-factor/client.d.mts +16 -19
  242. package/dist/plugins/two-factor/client.mjs +1 -1
  243. package/dist/plugins/two-factor/constant.mjs +1 -1
  244. package/dist/plugins/two-factor/error-code.d.mts +15 -18
  245. package/dist/plugins/two-factor/index.d.mts +31 -35
  246. package/dist/plugins/two-factor/index.mjs +6 -3
  247. package/dist/plugins/two-factor/otp/index.d.mts +5 -8
  248. package/dist/plugins/two-factor/otp/index.mjs +159 -154
  249. package/dist/plugins/two-factor/schema.d.mts +2 -3
  250. package/dist/plugins/two-factor/totp/index.d.mts +7 -10
  251. package/dist/plugins/two-factor/totp/index.mjs +153 -148
  252. package/dist/plugins/two-factor/types.d.mts +6 -7
  253. package/dist/plugins/username/client.d.mts +12 -14
  254. package/dist/plugins/username/client.mjs +1 -1
  255. package/dist/plugins/username/error-codes.d.mts +11 -14
  256. package/dist/plugins/username/index.d.mts +26 -31
  257. package/dist/plugins/username/schema.d.mts +7 -10
  258. package/dist/state.d.mts +4 -5
  259. package/dist/test-utils/headers.d.mts +2 -3
  260. package/dist/test-utils/http-test-instance.d.mts +26 -29
  261. package/dist/test-utils/test-instance.d.mts +7 -6
  262. package/dist/test-utils/test-instance.mjs +4 -2
  263. package/dist/types/adapter.d.mts +1 -1
  264. package/dist/types/api.d.mts +4 -6
  265. package/dist/types/auth.d.mts +2 -4
  266. package/dist/types/helper.d.mts +11 -12
  267. package/dist/types/index.d.mts +2 -2
  268. package/dist/types/models.d.mts +4 -5
  269. package/dist/types/plugins.d.mts +7 -8
  270. package/dist/utils/hide-metadata.d.mts +2 -3
  271. package/dist/utils/index.d.mts +2 -1
  272. package/dist/utils/is-api-error.mjs +1 -2
  273. package/dist/utils/time.d.mts +4 -4
  274. package/dist/utils/url.d.mts +13 -15
  275. package/dist/utils/wildcard.mjs +5 -3
  276. package/package.json +13 -13
@@ -3,10 +3,7 @@ import { DeviceCode } from "./schema.mjs";
3
3
  import { DeviceCodeRedemptionAuthorization, DeviceCodeRedemptionResult, redeemDeviceCode } from "./routes.mjs";
4
4
  import { GenericEndpointContext, StandardSchemaV1 } from "@better-auth/core";
5
5
  import { DBFieldAttribute } from "@better-auth/core/db";
6
- import * as _$_better_auth_core_utils_error_codes0 from "@better-auth/core/utils/error-codes";
7
- import * as _$better_call0 from "better-call";
8
6
  import * as z from "zod";
9
-
10
7
  //#region src/plugins/device-authorization/index.d.ts
11
8
  declare module "@better-auth/core" {
12
9
  interface BetterAuthPluginRegistry<AuthOptions, Options> {
@@ -15,7 +12,7 @@ declare module "@better-auth/core" {
15
12
  };
16
13
  }
17
14
  }
18
- declare const deviceAuthorizationOptionsSchema: z.ZodObject<{
15
+ export declare const deviceAuthorizationOptionsSchema: z.ZodObject<{
19
16
  expiresIn: z.ZodDefault<z.ZodCustom<TimeString, TimeString>>;
20
17
  interval: z.ZodDefault<z.ZodCustom<TimeString, TimeString>>;
21
18
  deviceCodeLength: z.ZodDefault<z.ZodNumber>;
@@ -57,14 +54,14 @@ declare const deviceAuthorizationOptionsSchema: z.ZodObject<{
57
54
  } | undefined;
58
55
  }>>;
59
56
  }, z.core.$strip>;
60
- type DeviceAuthorizationOptions = z.infer<typeof deviceAuthorizationOptionsSchema>;
61
- interface DeviceAuthorizationRequest {
57
+ export type DeviceAuthorizationOptions = z.infer<typeof deviceAuthorizationOptionsSchema>;
58
+ export interface DeviceAuthorizationRequest {
62
59
  client_id?: string | undefined;
63
60
  user_id?: string | undefined;
64
61
  scope?: string | undefined;
65
62
  }
66
63
  /** The client binding and grant-owned fields produced by request authorization. */
67
- interface DeviceAuthorizationGrantAuthorization {
64
+ export interface DeviceAuthorizationGrantAuthorization {
68
65
  /** The client identifier that owns the device code. */
69
66
  clientId: string;
70
67
  /** Additional grant-owned fields persisted with the device code. */
@@ -74,7 +71,7 @@ interface DeviceAuthorizationGrantAuthorization {
74
71
  * A token grant that contributes its request state to device authorization
75
72
  * without expanding the standalone plugin's database or endpoint contracts.
76
73
  */
77
- interface DeviceAuthorizationGrant<RequestFields extends z.ZodRawShape = z.ZodRawShape, VerificationContext extends Record<string, unknown> = Record<string, unknown>> {
74
+ export interface DeviceAuthorizationGrant<RequestFields extends z.ZodRawShape = z.ZodRawShape, VerificationContext extends Record<string, unknown> = Record<string, unknown>> {
78
75
  /** Additional request fields accepted only when this grant is configured. */
79
76
  requestSchemaFields: RequestFields;
80
77
  /** Additional request errors introduced by the grant's protocol extensions. */
@@ -100,10 +97,11 @@ interface DeviceAuthorizationGrant<RequestFields extends z.ZodRawShape = z.ZodRa
100
97
  /** OpenAPI properties matching `getVerificationContext()`. */
101
98
  verificationOpenAPIProperties?: Record<string, Record<string, unknown>>;
102
99
  }
103
- type DeviceAuthorizationPluginOptions<Grant extends DeviceAuthorizationGrant | undefined = undefined> = Partial<DeviceAuthorizationOptions> & {
104
- /** Optional token grant that extends the device authorization flow. */grant?: Grant;
100
+ export type DeviceAuthorizationPluginOptions<Grant extends DeviceAuthorizationGrant | undefined = undefined> = Partial<DeviceAuthorizationOptions> & {
101
+ /** Optional token grant that extends the device authorization flow. */
102
+ grant?: Grant;
105
103
  };
106
- declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | undefined = undefined>(options?: DeviceAuthorizationPluginOptions<Grant>) => {
104
+ export declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | undefined = undefined>(options?: DeviceAuthorizationPluginOptions<Grant>) => {
107
105
  id: "device-authorization";
108
106
  version: string;
109
107
  schema: {
@@ -153,7 +151,7 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
153
151
  };
154
152
  };
155
153
  endpoints: {
156
- deviceCode: _$better_call0.StrictEndpoint<"/device/code", {
154
+ deviceCode: import("better-call").StrictEndpoint<"/device/code", {
157
155
  method: "POST";
158
156
  cloneRequest: true;
159
157
  body: z.ZodObject<(("scope" | "user_id" | "client_id") & keyof (Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
@@ -164,15 +162,15 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
164
162
  scope: z.ZodOptional<z.ZodString>;
165
163
  } & ((Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
166
164
  [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
167
- }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends infer T_1 ? { -readonly [P in keyof T_1]: T_1[P] } : never) : ({
165
+ }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends (infer T_1) ? { -readonly [P in keyof T_1]: T_1[P]; } : never) : ({
168
166
  client_id: z.ZodString;
169
167
  user_id: z.ZodOptional<z.ZodString>;
170
168
  scope: z.ZodOptional<z.ZodString>;
171
- } extends infer T_2 extends z.core.util.SomeObject ? { [K in keyof T_2 as K extends keyof (Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
169
+ } extends (infer T_2 extends z.core.util.SomeObject) ? { [K in keyof T_2 as K extends keyof (Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
172
170
  [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
173
- }>, Record<string, unknown>> ? RequestFields : Record<never, never>) ? never : K]: T_2[K] } : never) & (((Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
171
+ }>, Record<string, unknown>> ? RequestFields : Record<never, never>) ? never : K]: T_2[K]; } : never) & (((Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
174
172
  [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
175
- }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends infer T_4 ? { -readonly [P in keyof T_4]: T_4[P] } : never) extends infer T_3 extends z.core.util.SomeObject ? { [K_1 in keyof T_3]: T_3[K_1] } : never)) extends infer T ? { [k in keyof T]: T[k] } : never, z.core.$strip> | z.ZodObject<(("scope" | "user_id" | "client_id") & keyof (Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
173
+ }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends (infer T_4) ? { -readonly [P in keyof T_4]: T_4[P]; } : never) extends (infer T_3 extends z.core.util.SomeObject) ? { [K_1 in keyof T_3]: T_3[K_1]; } : never)) extends (infer T) ? { [k in keyof T]: T[k]; } : never, z.core.$strip> | z.ZodObject<(("scope" | "user_id" | "client_id") & keyof (Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
176
174
  [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
177
175
  }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends never ? {
178
176
  user_id: z.ZodOptional<z.ZodString>;
@@ -180,27 +178,24 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
180
178
  client_id: z.ZodOptional<z.ZodString>;
181
179
  } & ((Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
182
180
  [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
183
- }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends infer T_6 ? { -readonly [P in keyof T_6]: T_6[P] } : never) : ({
181
+ }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends (infer T_6) ? { -readonly [P in keyof T_6]: T_6[P]; } : never) : ({
184
182
  user_id: z.ZodOptional<z.ZodString>;
185
183
  scope: z.ZodOptional<z.ZodString>;
186
184
  client_id: z.ZodOptional<z.ZodString>;
187
- } extends infer T_7 extends z.core.util.SomeObject ? { [K_2 in keyof T_7 as K_2 extends keyof (Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
185
+ } extends (infer T_7 extends z.core.util.SomeObject) ? { [K_2 in keyof T_7 as K_2 extends keyof (Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
188
186
  [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
189
- }>, Record<string, unknown>> ? RequestFields : Record<never, never>) ? never : K_2]: T_7[K_2] } : never) & (((Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
187
+ }>, Record<string, unknown>> ? RequestFields : Record<never, never>) ? never : K_2]: T_7[K_2]; } : never) & (((Grant extends DeviceAuthorizationGrant<infer RequestFields extends Readonly<{
190
188
  [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
191
- }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends infer T_9 ? { -readonly [P in keyof T_9]: T_9[P] } : never) extends infer T_8 extends z.core.util.SomeObject ? { [K_1 in keyof T_8]: T_8[K_1] } : never)) extends infer T_5 ? { [k_1 in keyof T_5]: T_5[k_1] } : never, z.core.$strip>;
189
+ }>, Record<string, unknown>> ? RequestFields : Record<never, never>) extends (infer T_9) ? { -readonly [P in keyof T_9]: T_9[P]; } : never) extends (infer T_8 extends z.core.util.SomeObject) ? { [K_1 in keyof T_8]: T_8[K_1]; } : never)) extends (infer T_5) ? { [k_1 in keyof T_5]: T_5[k_1]; } : never, z.core.$strip>;
192
190
  error: z.ZodObject<{
193
191
  error: z.ZodEnum<{ [k_3 in (readonly ["invalid_request", "invalid_client", "unauthorized_client", "invalid_scope", ...Grant extends {
194
192
  requestErrorCodes: infer ErrorCodes extends readonly string[];
195
- } ? ErrorCodes : readonly [], "server_error"])[number]]: k_3 } extends infer T_10 ? { [k_2 in keyof T_10]: T_10[k_2] } : never>;
193
+ } ? ErrorCodes : readonly [], "server_error"])[number]]: k_3; } extends (infer T_10) ? { [k_2 in keyof T_10]: T_10[k_2]; } : never>;
196
194
  error_description: z.ZodString;
197
195
  }, z.core.$strip>;
198
- onValidationError: ({
199
- issues,
200
- message
201
- }: {
196
+ onValidationError: ({ issues, message }: {
202
197
  message: string;
203
- issues: readonly _$better_call0.StandardSchemaV1.Issue[];
198
+ issues: readonly import("better-call").StandardSchemaV1.Issue[];
204
199
  }) => never;
205
200
  metadata: {
206
201
  noStore: boolean;
@@ -297,7 +292,7 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
297
292
  expires_in: number;
298
293
  interval: number;
299
294
  }>;
300
- deviceToken: _$better_call0.StrictEndpoint<"/device/token", {
295
+ deviceToken: import("better-call").StrictEndpoint<"/device/token", {
301
296
  method: "POST";
302
297
  body: z.ZodObject<{
303
298
  grant_type: z.ZodLiteral<"urn:ietf:params:oauth:grant-type:device_code">;
@@ -366,7 +361,7 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
366
361
  expires_in: number;
367
362
  scope: string;
368
363
  }>;
369
- deviceVerify: _$better_call0.StrictEndpoint<"/device", {
364
+ deviceVerify: import("better-call").StrictEndpoint<"/device", {
370
365
  method: "GET";
371
366
  query: z.ZodObject<{
372
367
  user_code: z.ZodString;
@@ -421,7 +416,7 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
421
416
  } & Partial<Grant extends DeviceAuthorizationGrant<infer _RequestFields extends Readonly<{
422
417
  [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
423
418
  }>, infer VerificationContext extends Record<string, unknown>> ? VerificationContext : Record<never, never>>>;
424
- deviceApprove: _$better_call0.StrictEndpoint<"/device/approve", {
419
+ deviceApprove: import("better-call").StrictEndpoint<"/device/approve", {
425
420
  method: "POST";
426
421
  body: z.ZodObject<{
427
422
  userCode: z.ZodString;
@@ -462,7 +457,7 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
462
457
  }, {
463
458
  success: boolean;
464
459
  }>;
465
- deviceDeny: _$better_call0.StrictEndpoint<"/device/deny", {
460
+ deviceDeny: import("better-call").StrictEndpoint<"/device/deny", {
466
461
  method: "POST";
467
462
  body: z.ZodObject<{
468
463
  userCode: z.ZodString;
@@ -509,19 +504,19 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
509
504
  max: number;
510
505
  }[];
511
506
  $ERROR_CODES: {
512
- USER_NOT_FOUND: _$_better_auth_core_utils_error_codes0.RawError<"USER_NOT_FOUND">;
513
- FAILED_TO_CREATE_SESSION: _$_better_auth_core_utils_error_codes0.RawError<"FAILED_TO_CREATE_SESSION">;
514
- INVALID_DEVICE_CODE: _$_better_auth_core_utils_error_codes0.RawError<"INVALID_DEVICE_CODE">;
515
- EXPIRED_DEVICE_CODE: _$_better_auth_core_utils_error_codes0.RawError<"EXPIRED_DEVICE_CODE">;
516
- EXPIRED_USER_CODE: _$_better_auth_core_utils_error_codes0.RawError<"EXPIRED_USER_CODE">;
517
- AUTHORIZATION_PENDING: _$_better_auth_core_utils_error_codes0.RawError<"AUTHORIZATION_PENDING">;
518
- ACCESS_DENIED: _$_better_auth_core_utils_error_codes0.RawError<"ACCESS_DENIED">;
519
- INVALID_USER_CODE: _$_better_auth_core_utils_error_codes0.RawError<"INVALID_USER_CODE">;
520
- DEVICE_CODE_ALREADY_PROCESSED: _$_better_auth_core_utils_error_codes0.RawError<"DEVICE_CODE_ALREADY_PROCESSED">;
521
- DEVICE_CODE_NOT_CLAIMED: _$_better_auth_core_utils_error_codes0.RawError<"DEVICE_CODE_NOT_CLAIMED">;
522
- POLLING_TOO_FREQUENTLY: _$_better_auth_core_utils_error_codes0.RawError<"POLLING_TOO_FREQUENTLY">;
523
- INVALID_DEVICE_CODE_STATUS: _$_better_auth_core_utils_error_codes0.RawError<"INVALID_DEVICE_CODE_STATUS">;
524
- AUTHENTICATION_REQUIRED: _$_better_auth_core_utils_error_codes0.RawError<"AUTHENTICATION_REQUIRED">;
507
+ USER_NOT_FOUND: import("@better-auth/core/utils/error-codes").RawError<"USER_NOT_FOUND">;
508
+ FAILED_TO_CREATE_SESSION: import("@better-auth/core/utils/error-codes").RawError<"FAILED_TO_CREATE_SESSION">;
509
+ INVALID_DEVICE_CODE: import("@better-auth/core/utils/error-codes").RawError<"INVALID_DEVICE_CODE">;
510
+ EXPIRED_DEVICE_CODE: import("@better-auth/core/utils/error-codes").RawError<"EXPIRED_DEVICE_CODE">;
511
+ EXPIRED_USER_CODE: import("@better-auth/core/utils/error-codes").RawError<"EXPIRED_USER_CODE">;
512
+ AUTHORIZATION_PENDING: import("@better-auth/core/utils/error-codes").RawError<"AUTHORIZATION_PENDING">;
513
+ ACCESS_DENIED: import("@better-auth/core/utils/error-codes").RawError<"ACCESS_DENIED">;
514
+ INVALID_USER_CODE: import("@better-auth/core/utils/error-codes").RawError<"INVALID_USER_CODE">;
515
+ DEVICE_CODE_ALREADY_PROCESSED: import("@better-auth/core/utils/error-codes").RawError<"DEVICE_CODE_ALREADY_PROCESSED">;
516
+ DEVICE_CODE_NOT_CLAIMED: import("@better-auth/core/utils/error-codes").RawError<"DEVICE_CODE_NOT_CLAIMED">;
517
+ POLLING_TOO_FREQUENTLY: import("@better-auth/core/utils/error-codes").RawError<"POLLING_TOO_FREQUENTLY">;
518
+ INVALID_DEVICE_CODE_STATUS: import("@better-auth/core/utils/error-codes").RawError<"INVALID_DEVICE_CODE_STATUS">;
519
+ AUTHENTICATION_REQUIRED: import("@better-auth/core/utils/error-codes").RawError<"AUTHENTICATION_REQUIRED">;
525
520
  };
526
521
  options: {
527
522
  grant: DeviceAuthorizationGrant<Readonly<{
@@ -555,4 +550,4 @@ declare const deviceAuthorization: <Grant extends DeviceAuthorizationGrant | und
555
550
  };
556
551
  };
557
552
  //#endregion
558
- export { DeviceAuthorizationGrant, DeviceAuthorizationGrantAuthorization, DeviceAuthorizationOptions, DeviceAuthorizationPluginOptions, DeviceAuthorizationRequest, type DeviceCode, type DeviceCodeRedemptionAuthorization, type DeviceCodeRedemptionResult, TimeString, deviceAuthorization, deviceAuthorizationOptionsSchema, ms, redeemDeviceCode, sec };
553
+ export { type DeviceCode, type DeviceCodeRedemptionAuthorization, type DeviceCodeRedemptionResult, type TimeString, type ms, redeemDeviceCode, type sec };
@@ -28,12 +28,12 @@ const deviceAuthorizationOptionsSchema = z.object({
28
28
  verificationUri: z.string().optional().describe("The URI where users verify their device code. Can be an absolute URL (https://example.com/device) or relative path (/custom-path). This will be returned as verification_uri in the device code response. If not provided, defaults to /device."),
29
29
  schema: z.custom(() => true).optional()
30
30
  });
31
- const deviceAuthorizationRequestFields = new Set([
31
+ const deviceAuthorizationRequestFields = /* @__PURE__ */ new Set([
32
32
  "client_id",
33
33
  "user_id",
34
34
  "scope"
35
35
  ]);
36
- const deviceVerificationResponseFields = new Set([
36
+ const deviceVerificationResponseFields = /* @__PURE__ */ new Set([
37
37
  "user_code",
38
38
  "status",
39
39
  "client_id",
@@ -52,16 +52,17 @@ const deviceAuthorization = (options = {}) => {
52
52
  const grant = configuredGrant;
53
53
  const opts = deviceAuthorizationOptionsSchema.parse(deviceAuthorizationOptions);
54
54
  assertGrantFieldsAreAdditional(grant);
55
+ const grantSchema = { deviceCode: {
56
+ ...schema.deviceCode,
57
+ fields: {
58
+ ...schema.deviceCode.fields,
59
+ ...grant?.deviceCodeSchemaFields
60
+ }
61
+ } };
55
62
  return {
56
63
  id: "device-authorization",
57
64
  version: PACKAGE_VERSION,
58
- schema: mergeSchema({ deviceCode: {
59
- ...schema.deviceCode,
60
- fields: {
61
- ...schema.deviceCode.fields,
62
- ...grant?.deviceCodeSchemaFields
63
- }
64
- } }, options.schema),
65
+ schema: mergeSchema(grantSchema, options.schema),
65
66
  endpoints: {
66
67
  deviceCode: deviceCode(opts, grant),
67
68
  deviceToken: deviceToken(opts, grant),
@@ -1,15 +1,18 @@
1
1
  import { Where } from "../../types/adapter.mjs";
2
2
  import { User } from "../../types/models.mjs";
3
+ import "../../types/index.mjs";
3
4
  import { DeviceCode } from "./schema.mjs";
5
+ import "./index.mjs";
4
6
  import { GenericEndpointContext } from "@better-auth/core";
7
+ import "zod";
5
8
  //#region src/plugins/device-authorization/routes.d.ts
6
- interface DeviceCodeRedemptionAuthorization<AuthorizationContext> {
9
+ export interface DeviceCodeRedemptionAuthorization<AuthorizationContext> {
7
10
  /** Additional ownership predicate used by the atomic claim. */
8
11
  ownershipWhere: Where;
9
12
  /** Issuer-specific state that survives until token issuance. */
10
13
  context: AuthorizationContext;
11
14
  }
12
- interface DeviceCodeRedemptionResult<DeviceCodeFields extends Record<string, unknown>, AuthorizationContext, RedemptionContext> {
15
+ export interface DeviceCodeRedemptionResult<DeviceCodeFields extends Record<string, unknown>, AuthorizationContext, RedemptionContext> {
13
16
  claimedDeviceCode: DeviceCode & DeviceCodeFields & {
14
17
  userId: string;
15
18
  };
@@ -22,11 +25,10 @@ interface DeviceCodeRedemptionResult<DeviceCodeFields extends Record<string, unk
22
25
  * token issuer. Issuers supply ownership checks and grant-specific validation,
23
26
  * but cannot bypass expiry, polling, denial, or atomic consumption.
24
27
  */
25
- declare function redeemDeviceCode<DeviceCodeFields extends Record<string, unknown>, AuthorizationContext, RedemptionContext>(input: {
28
+ export declare function redeemDeviceCode<DeviceCodeFields extends Record<string, unknown>, AuthorizationContext, RedemptionContext>(input: {
26
29
  ctx: GenericEndpointContext;
27
30
  deviceCode: string;
28
31
  authorizeRedemption: (deviceCode: DeviceCode & DeviceCodeFields) => DeviceCodeRedemptionAuthorization<AuthorizationContext> | Promise<DeviceCodeRedemptionAuthorization<AuthorizationContext>>;
29
32
  prepareRedemption: (deviceCode: DeviceCode & DeviceCodeFields, authorizationContext: AuthorizationContext) => RedemptionContext | Promise<RedemptionContext>;
30
33
  }): Promise<DeviceCodeRedemptionResult<DeviceCodeFields, AuthorizationContext, RedemptionContext>>;
31
- //#endregion
32
- export { DeviceCodeRedemptionAuthorization, DeviceCodeRedemptionResult, redeemDeviceCode };
34
+ //#endregion
@@ -8,7 +8,7 @@ import * as z from "zod";
8
8
  //#region src/plugins/device-authorization/routes.ts
9
9
  const defaultCharset = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
10
10
  const MAX_DEVICE_CODE_GENERATION_ATTEMPTS = 3;
11
- const UNIQUE_CONSTRAINT_ERROR_IDENTIFIERS = new Set([
11
+ const UNIQUE_CONSTRAINT_ERROR_IDENTIFIERS = /* @__PURE__ */ new Set([
12
12
  "11000",
13
13
  "1062",
14
14
  "2067",
@@ -108,14 +108,15 @@ const deviceCode = (opts, grant) => {
108
108
  const requestSchema = (grant ? deviceCodeBodySchema.extend({ client_id: z.string().optional() }) : deviceCodeBodySchema).extend(requestFields);
109
109
  const requestErrorCodes = [...deviceCodeBaseErrorCodes, ...grant?.requestErrorCodes ?? []];
110
110
  const endpointErrorCodes = [...requestErrorCodes, "server_error"];
111
+ const requestErrorSchema = z.object({
112
+ error: z.enum(endpointErrorCodes).meta({ description: "Error code" }),
113
+ error_description: z.string().meta({ description: "Detailed error description" })
114
+ });
111
115
  return createAuthEndpoint("/device/code", {
112
116
  method: "POST",
113
117
  cloneRequest: true,
114
118
  body: requestSchema,
115
- error: z.object({
116
- error: z.enum(endpointErrorCodes).meta({ description: "Error code" }),
117
- error_description: z.string().meta({ description: "Detailed error description" })
118
- }),
119
+ error: requestErrorSchema,
119
120
  onValidationError: ({ issues, message }) => {
120
121
  grant?.onRequestValidationError?.(issues);
121
122
  throw new APIError("BAD_REQUEST", {
@@ -1,5 +1,4 @@
1
1
  import * as z from "zod";
2
-
3
2
  //#region src/plugins/device-authorization/schema.d.ts
4
3
  declare const deviceCode: z.ZodObject<{
5
4
  id: z.ZodString;
@@ -13,6 +12,6 @@ declare const deviceCode: z.ZodObject<{
13
12
  clientId: z.ZodOptional<z.ZodString>;
14
13
  scope: z.ZodOptional<z.ZodString>;
15
14
  }, z.core.$strip>;
16
- type DeviceCode = z.infer<typeof deviceCode>;
15
+ export type DeviceCode = z.infer<typeof deviceCode>;
17
16
  //#endregion
18
- export { DeviceCode };
17
+ export {};
@@ -1,9 +1,7 @@
1
1
  import { emailOTP } from "./index.mjs";
2
2
  import { EMAIL_OTP_ERROR_CODES } from "./error-codes.mjs";
3
- import * as _$_better_auth_core_utils_error_codes0 from "@better-auth/core/utils/error-codes";
4
-
5
3
  //#region src/plugins/email-otp/client.d.ts
6
- declare const emailOTPClient: () => {
4
+ export declare const emailOTPClient: () => {
7
5
  id: "email-otp";
8
6
  version: string;
9
7
  $InferServerPlugin: ReturnType<typeof emailOTP>;
@@ -12,10 +10,10 @@ declare const emailOTPClient: () => {
12
10
  signal: "$sessionSignal";
13
11
  }[];
14
12
  $ERROR_CODES: {
15
- OTP_EXPIRED: _$_better_auth_core_utils_error_codes0.RawError<"OTP_EXPIRED">;
16
- INVALID_OTP: _$_better_auth_core_utils_error_codes0.RawError<"INVALID_OTP">;
17
- TOO_MANY_ATTEMPTS: _$_better_auth_core_utils_error_codes0.RawError<"TOO_MANY_ATTEMPTS">;
13
+ OTP_EXPIRED: import("@better-auth/core/utils/error-codes").RawError<"OTP_EXPIRED">;
14
+ INVALID_OTP: import("@better-auth/core/utils/error-codes").RawError<"INVALID_OTP">;
15
+ TOO_MANY_ATTEMPTS: import("@better-auth/core/utils/error-codes").RawError<"TOO_MANY_ATTEMPTS">;
18
16
  };
19
17
  };
20
18
  //#endregion
21
- export { emailOTPClient };
19
+ export { EMAIL_OTP_ERROR_CODES };
@@ -14,4 +14,4 @@ const emailOTPClient = () => {
14
14
  };
15
15
  };
16
16
  //#endregion
17
- export { emailOTPClient };
17
+ export { EMAIL_OTP_ERROR_CODES, emailOTPClient };
@@ -1,10 +1,7 @@
1
- import * as _$_better_auth_core_utils_error_codes0 from "@better-auth/core/utils/error-codes";
2
-
3
1
  //#region src/plugins/email-otp/error-codes.d.ts
4
- declare const EMAIL_OTP_ERROR_CODES: {
5
- OTP_EXPIRED: _$_better_auth_core_utils_error_codes0.RawError<"OTP_EXPIRED">;
6
- INVALID_OTP: _$_better_auth_core_utils_error_codes0.RawError<"INVALID_OTP">;
7
- TOO_MANY_ATTEMPTS: _$_better_auth_core_utils_error_codes0.RawError<"TOO_MANY_ATTEMPTS">;
2
+ export declare const EMAIL_OTP_ERROR_CODES: {
3
+ OTP_EXPIRED: import("@better-auth/core/utils/error-codes").RawError<"OTP_EXPIRED">;
4
+ INVALID_OTP: import("@better-auth/core/utils/error-codes").RawError<"INVALID_OTP">;
5
+ TOO_MANY_ATTEMPTS: import("@better-auth/core/utils/error-codes").RawError<"TOO_MANY_ATTEMPTS">;
8
6
  };
9
- //#endregion
10
- export { EMAIL_OTP_ERROR_CODES };
7
+ //#endregion