@robelest/convex-auth 0.0.4-preview.2 → 0.0.4-preview.20

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 (798) hide show
  1. package/README.md +67 -26
  2. package/dist/authorization/index.d.ts +63 -0
  3. package/dist/authorization/index.d.ts.map +1 -0
  4. package/dist/authorization/index.js +63 -0
  5. package/dist/authorization/index.js.map +1 -0
  6. package/dist/bin.cjs +6033 -27606
  7. package/dist/client/core/types.d.ts +20 -0
  8. package/dist/client/core/types.d.ts.map +1 -0
  9. package/dist/client/index.d.ts +2 -299
  10. package/dist/client/index.d.ts.map +1 -1
  11. package/dist/client/index.js +407 -534
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/component/_generated/api.d.ts +42 -0
  14. package/dist/component/_generated/api.d.ts.map +1 -1
  15. package/dist/component/_generated/api.js.map +1 -1
  16. package/dist/component/_generated/component.d.ts +2546 -90
  17. package/dist/component/_generated/component.d.ts.map +1 -1
  18. package/dist/component/client/core/types.d.ts +2 -0
  19. package/dist/component/client/index.d.ts +2 -0
  20. package/dist/component/convex.config.d.ts +2 -2
  21. package/dist/component/convex.config.d.ts.map +1 -1
  22. package/dist/component/functions.d.ts +11 -9
  23. package/dist/component/functions.d.ts.map +1 -1
  24. package/dist/component/functions.js.map +1 -1
  25. package/dist/component/index.d.ts +7 -11
  26. package/dist/component/index.js +2 -3
  27. package/dist/component/model.d.ts +153 -0
  28. package/dist/component/model.d.ts.map +1 -0
  29. package/dist/component/model.js +349 -0
  30. package/dist/component/model.js.map +1 -0
  31. package/dist/component/providers/anonymous.d.ts +54 -0
  32. package/dist/component/providers/anonymous.d.ts.map +1 -0
  33. package/dist/component/providers/credentials.d.ts +5 -5
  34. package/dist/component/providers/credentials.d.ts.map +1 -1
  35. package/dist/component/providers/device.d.ts +67 -0
  36. package/dist/component/providers/device.d.ts.map +1 -0
  37. package/dist/component/providers/email.d.ts +62 -0
  38. package/dist/component/providers/email.d.ts.map +1 -0
  39. package/dist/component/providers/oauth.d.ts.map +1 -1
  40. package/dist/component/providers/oauth.js.map +1 -1
  41. package/dist/component/providers/passkey.d.ts +57 -0
  42. package/dist/component/providers/passkey.d.ts.map +1 -0
  43. package/dist/component/providers/password.d.ts +88 -0
  44. package/dist/component/providers/password.d.ts.map +1 -0
  45. package/dist/component/providers/phone.d.ts +48 -0
  46. package/dist/component/providers/phone.d.ts.map +1 -0
  47. package/dist/component/providers/sso.d.ts +50 -0
  48. package/dist/component/providers/sso.d.ts.map +1 -0
  49. package/dist/component/providers/totp.d.ts +45 -0
  50. package/dist/component/providers/totp.d.ts.map +1 -0
  51. package/dist/component/public/enterprise/audit.d.ts +73 -0
  52. package/dist/component/public/enterprise/audit.d.ts.map +1 -0
  53. package/dist/component/public/enterprise/audit.js +108 -0
  54. package/dist/component/public/enterprise/audit.js.map +1 -0
  55. package/dist/component/public/enterprise/core.d.ts +176 -0
  56. package/dist/component/public/enterprise/core.d.ts.map +1 -0
  57. package/dist/component/public/enterprise/core.js +292 -0
  58. package/dist/component/public/enterprise/core.js.map +1 -0
  59. package/dist/component/public/enterprise/domains.d.ts +174 -0
  60. package/dist/component/public/enterprise/domains.d.ts.map +1 -0
  61. package/dist/component/public/enterprise/domains.js +271 -0
  62. package/dist/component/public/enterprise/domains.js.map +1 -0
  63. package/dist/component/public/enterprise/scim.d.ts +245 -0
  64. package/dist/component/public/enterprise/scim.d.ts.map +1 -0
  65. package/dist/component/public/enterprise/scim.js +344 -0
  66. package/dist/component/public/enterprise/scim.js.map +1 -0
  67. package/dist/component/public/enterprise/secrets.d.ts +78 -0
  68. package/dist/component/public/enterprise/secrets.d.ts.map +1 -0
  69. package/dist/component/public/enterprise/secrets.js +118 -0
  70. package/dist/component/public/enterprise/secrets.js.map +1 -0
  71. package/dist/component/public/enterprise/webhooks.d.ts +211 -0
  72. package/dist/component/public/enterprise/webhooks.d.ts.map +1 -0
  73. package/dist/component/public/enterprise/webhooks.js +300 -0
  74. package/dist/component/public/enterprise/webhooks.js.map +1 -0
  75. package/dist/component/public/factors/devices.d.ts +157 -0
  76. package/dist/component/public/factors/devices.d.ts.map +1 -0
  77. package/dist/component/public/factors/devices.js +216 -0
  78. package/dist/component/public/factors/devices.js.map +1 -0
  79. package/dist/component/public/factors/passkeys.d.ts +175 -0
  80. package/dist/component/public/factors/passkeys.d.ts.map +1 -0
  81. package/dist/component/public/factors/passkeys.js +238 -0
  82. package/dist/component/public/factors/passkeys.js.map +1 -0
  83. package/dist/component/public/factors/totp.d.ts +189 -0
  84. package/dist/component/public/factors/totp.d.ts.map +1 -0
  85. package/dist/component/public/factors/totp.js +254 -0
  86. package/dist/component/public/factors/totp.js.map +1 -0
  87. package/dist/component/public/groups/core.d.ts +137 -0
  88. package/dist/component/public/groups/core.d.ts.map +1 -0
  89. package/dist/component/public/groups/core.js +321 -0
  90. package/dist/component/public/groups/core.js.map +1 -0
  91. package/dist/component/public/groups/invites.d.ts +217 -0
  92. package/dist/component/public/groups/invites.d.ts.map +1 -0
  93. package/dist/component/public/groups/invites.js +457 -0
  94. package/dist/component/public/groups/invites.js.map +1 -0
  95. package/dist/component/public/groups/members.d.ts +204 -0
  96. package/dist/component/public/groups/members.d.ts.map +1 -0
  97. package/dist/component/public/groups/members.js +355 -0
  98. package/dist/component/public/groups/members.js.map +1 -0
  99. package/dist/component/public/identity/accounts.d.ts +147 -0
  100. package/dist/component/public/identity/accounts.d.ts.map +1 -0
  101. package/dist/component/public/identity/accounts.js +200 -0
  102. package/dist/component/public/identity/accounts.js.map +1 -0
  103. package/dist/component/public/identity/codes.d.ts +104 -0
  104. package/dist/component/public/identity/codes.d.ts.map +1 -0
  105. package/dist/component/public/identity/codes.js +140 -0
  106. package/dist/component/public/identity/codes.js.map +1 -0
  107. package/dist/component/public/identity/sessions.d.ts +128 -0
  108. package/dist/component/public/identity/sessions.d.ts.map +1 -0
  109. package/dist/component/public/identity/sessions.js +192 -0
  110. package/dist/component/public/identity/sessions.js.map +1 -0
  111. package/dist/component/public/identity/tokens.d.ts +169 -0
  112. package/dist/component/public/identity/tokens.d.ts.map +1 -0
  113. package/dist/component/public/identity/tokens.js +227 -0
  114. package/dist/component/public/identity/tokens.js.map +1 -0
  115. package/dist/component/public/identity/users.d.ts +212 -0
  116. package/dist/component/public/identity/users.d.ts.map +1 -0
  117. package/dist/component/public/identity/users.js +311 -0
  118. package/dist/component/public/identity/users.js.map +1 -0
  119. package/dist/component/public/identity/verifiers.d.ts +116 -0
  120. package/dist/component/public/identity/verifiers.d.ts.map +1 -0
  121. package/dist/component/public/identity/verifiers.js +154 -0
  122. package/dist/component/public/identity/verifiers.js.map +1 -0
  123. package/dist/component/public/security/keys.d.ts +209 -0
  124. package/dist/component/public/security/keys.d.ts.map +1 -0
  125. package/dist/component/public/security/keys.js +319 -0
  126. package/dist/component/public/security/keys.js.map +1 -0
  127. package/dist/component/public/security/limits.d.ts +114 -0
  128. package/dist/component/public/security/limits.d.ts.map +1 -0
  129. package/dist/component/public/security/limits.js +169 -0
  130. package/dist/component/public/security/limits.js.map +1 -0
  131. package/dist/component/public.d.ts +24 -271
  132. package/dist/component/public.d.ts.map +1 -1
  133. package/dist/component/public.js +21 -1229
  134. package/dist/component/schema.d.ts +472 -109
  135. package/dist/component/schema.js +162 -73
  136. package/dist/component/schema.js.map +1 -1
  137. package/dist/component/server/auth.d.ts +318 -373
  138. package/dist/component/server/auth.d.ts.map +1 -1
  139. package/dist/component/server/auth.js +204 -123
  140. package/dist/component/server/auth.js.map +1 -1
  141. package/dist/component/server/authError.js +34 -0
  142. package/dist/component/server/authError.js.map +1 -0
  143. package/dist/{server/providers.js → component/server/config.js} +43 -12
  144. package/dist/component/server/config.js.map +1 -0
  145. package/dist/component/server/cookies.js +3 -0
  146. package/dist/component/server/cookies.js.map +1 -1
  147. package/dist/component/server/core.js +713 -0
  148. package/dist/component/server/core.js.map +1 -0
  149. package/dist/component/server/crypto.js +38 -0
  150. package/dist/component/server/crypto.js.map +1 -0
  151. package/dist/{server/implementation → component/server}/db.js +2 -1
  152. package/dist/component/server/db.js.map +1 -0
  153. package/dist/component/server/device.js +109 -0
  154. package/dist/component/server/device.js.map +1 -0
  155. package/dist/component/server/enterprise/config.js +46 -0
  156. package/dist/component/server/enterprise/config.js.map +1 -0
  157. package/dist/component/server/enterprise/domain.js +885 -0
  158. package/dist/component/server/enterprise/domain.js.map +1 -0
  159. package/dist/component/server/enterprise/http.js +766 -0
  160. package/dist/component/server/enterprise/http.js.map +1 -0
  161. package/dist/component/server/enterprise/oidc.js +248 -0
  162. package/dist/component/server/enterprise/oidc.js.map +1 -0
  163. package/dist/component/server/enterprise/policy.js +85 -0
  164. package/dist/component/server/enterprise/policy.js.map +1 -0
  165. package/dist/component/server/enterprise/saml.js +338 -0
  166. package/dist/component/server/enterprise/saml.js.map +1 -0
  167. package/dist/component/server/enterprise/scim.js +97 -0
  168. package/dist/component/server/enterprise/scim.js.map +1 -0
  169. package/dist/component/server/enterprise/shared.js +51 -0
  170. package/dist/component/server/enterprise/shared.js.map +1 -0
  171. package/dist/component/server/errors.d.ts +1 -0
  172. package/dist/component/server/errors.js +24 -16
  173. package/dist/component/server/errors.js.map +1 -1
  174. package/dist/component/server/http.js +288 -0
  175. package/dist/component/server/http.js.map +1 -0
  176. package/dist/component/server/identity.js +13 -0
  177. package/dist/component/server/identity.js.map +1 -0
  178. package/dist/component/server/{implementation/keys.js → keys.js} +9 -31
  179. package/dist/component/server/keys.js.map +1 -0
  180. package/dist/component/server/limits.js +61 -0
  181. package/dist/component/server/limits.js.map +1 -0
  182. package/dist/component/server/mutations/account.js +44 -0
  183. package/dist/component/server/mutations/account.js.map +1 -0
  184. package/dist/component/server/{implementation/mutations → mutations}/code.js +7 -4
  185. package/dist/component/server/mutations/code.js.map +1 -0
  186. package/dist/component/server/mutations/invalidate.js +32 -0
  187. package/dist/component/server/mutations/invalidate.js.map +1 -0
  188. package/dist/component/server/mutations/oauth.js +110 -0
  189. package/dist/component/server/mutations/oauth.js.map +1 -0
  190. package/dist/component/server/mutations/refresh.js +119 -0
  191. package/dist/component/server/mutations/refresh.js.map +1 -0
  192. package/dist/component/server/mutations/register.js +83 -0
  193. package/dist/component/server/mutations/register.js.map +1 -0
  194. package/dist/component/server/mutations/retrieve.js +65 -0
  195. package/dist/component/server/mutations/retrieve.js.map +1 -0
  196. package/dist/component/server/mutations/signature.js +32 -0
  197. package/dist/component/server/mutations/signature.js.map +1 -0
  198. package/dist/component/server/{implementation/mutations → mutations}/signin.js +2 -2
  199. package/dist/component/server/mutations/signin.js.map +1 -0
  200. package/dist/component/server/mutations/signout.js +27 -0
  201. package/dist/component/server/mutations/signout.js.map +1 -0
  202. package/dist/component/server/mutations/store/refs.js +15 -0
  203. package/dist/component/server/mutations/store/refs.js.map +1 -0
  204. package/dist/component/server/mutations/store.js +85 -0
  205. package/dist/component/server/mutations/store.js.map +1 -0
  206. package/dist/component/server/mutations/verifier.js +18 -0
  207. package/dist/component/server/mutations/verifier.js.map +1 -0
  208. package/dist/component/server/mutations/verify.js +98 -0
  209. package/dist/component/server/mutations/verify.js.map +1 -0
  210. package/dist/component/server/oauth.js +106 -60
  211. package/dist/component/server/oauth.js.map +1 -1
  212. package/dist/component/server/passkey.js +328 -0
  213. package/dist/component/server/passkey.js.map +1 -0
  214. package/dist/component/server/{implementation/redirects.js → redirects.js} +13 -11
  215. package/dist/component/server/redirects.js.map +1 -0
  216. package/dist/component/server/refresh.js +96 -0
  217. package/dist/component/server/refresh.js.map +1 -0
  218. package/dist/component/server/runtime.d.ts +136 -0
  219. package/dist/component/server/runtime.d.ts.map +1 -0
  220. package/dist/component/server/runtime.js +413 -0
  221. package/dist/component/server/runtime.js.map +1 -0
  222. package/dist/{server/implementation → component/server}/sessions.js +14 -8
  223. package/dist/component/server/sessions.js.map +1 -0
  224. package/dist/component/server/signin.js +201 -0
  225. package/dist/component/server/signin.js.map +1 -0
  226. package/dist/component/server/tokens.js +17 -0
  227. package/dist/component/server/tokens.js.map +1 -0
  228. package/dist/component/server/totp.js +148 -0
  229. package/dist/component/server/totp.js.map +1 -0
  230. package/dist/component/server/types.d.ts +387 -298
  231. package/dist/component/server/types.d.ts.map +1 -1
  232. package/dist/component/server/{implementation/types.js → types.js} +1 -1
  233. package/dist/component/server/types.js.map +1 -0
  234. package/dist/{server/implementation → component/server}/users.js +54 -35
  235. package/dist/component/server/users.js.map +1 -0
  236. package/dist/component/server/utils.js +110 -4
  237. package/dist/component/server/utils.js.map +1 -1
  238. package/dist/core/types.d.ts +369 -0
  239. package/dist/core/types.d.ts.map +1 -0
  240. package/dist/factors/device.js +105 -0
  241. package/dist/factors/device.js.map +1 -0
  242. package/dist/factors/passkey.js +181 -0
  243. package/dist/factors/passkey.js.map +1 -0
  244. package/dist/factors/totp.js +122 -0
  245. package/dist/factors/totp.js.map +1 -0
  246. package/dist/providers/anonymous.d.ts +3 -9
  247. package/dist/providers/anonymous.d.ts.map +1 -1
  248. package/dist/providers/anonymous.js +1 -18
  249. package/dist/providers/anonymous.js.map +1 -1
  250. package/dist/providers/credentials.d.ts +8 -10
  251. package/dist/providers/credentials.d.ts.map +1 -1
  252. package/dist/providers/credentials.js +3 -5
  253. package/dist/providers/credentials.js.map +1 -1
  254. package/dist/providers/device.d.ts +18 -10
  255. package/dist/providers/device.d.ts.map +1 -1
  256. package/dist/providers/device.js +4 -8
  257. package/dist/providers/device.js.map +1 -1
  258. package/dist/providers/email.d.ts +50 -23
  259. package/dist/providers/email.d.ts.map +1 -1
  260. package/dist/providers/email.js +58 -34
  261. package/dist/providers/email.js.map +1 -1
  262. package/dist/providers/index.d.ts +7 -3
  263. package/dist/providers/index.js +4 -1
  264. package/dist/providers/oauth.d.ts.map +1 -1
  265. package/dist/providers/oauth.js.map +1 -1
  266. package/dist/providers/passkey.d.ts +12 -9
  267. package/dist/providers/passkey.d.ts.map +1 -1
  268. package/dist/providers/passkey.js +1 -7
  269. package/dist/providers/passkey.js.map +1 -1
  270. package/dist/providers/password.d.ts +6 -12
  271. package/dist/providers/password.d.ts.map +1 -1
  272. package/dist/providers/password.js +189 -89
  273. package/dist/providers/password.js.map +1 -1
  274. package/dist/providers/phone.d.ts +40 -11
  275. package/dist/providers/phone.d.ts.map +1 -1
  276. package/dist/providers/phone.js +52 -21
  277. package/dist/providers/phone.js.map +1 -1
  278. package/dist/providers/sso.d.ts +50 -0
  279. package/dist/providers/sso.d.ts.map +1 -0
  280. package/dist/providers/sso.js +34 -0
  281. package/dist/providers/sso.js.map +1 -0
  282. package/dist/providers/totp.d.ts +12 -9
  283. package/dist/providers/totp.d.ts.map +1 -1
  284. package/dist/providers/totp.js +1 -7
  285. package/dist/providers/totp.js.map +1 -1
  286. package/dist/runtime/browser.js +68 -0
  287. package/dist/runtime/browser.js.map +1 -0
  288. package/dist/runtime/invite.js +51 -0
  289. package/dist/runtime/invite.js.map +1 -0
  290. package/dist/runtime/proxy.js +70 -0
  291. package/dist/runtime/proxy.js.map +1 -0
  292. package/dist/runtime/storage.js +37 -0
  293. package/dist/runtime/storage.js.map +1 -0
  294. package/dist/server/auth.d.ts +335 -370
  295. package/dist/server/auth.d.ts.map +1 -1
  296. package/dist/server/auth.js +204 -123
  297. package/dist/server/auth.js.map +1 -1
  298. package/dist/server/authError.d.ts +46 -0
  299. package/dist/server/authError.d.ts.map +1 -0
  300. package/dist/server/authError.js +34 -0
  301. package/dist/server/authError.js.map +1 -0
  302. package/dist/server/config.d.ts +1 -0
  303. package/dist/{component/server/providers.js → server/config.js} +43 -12
  304. package/dist/server/config.js.map +1 -0
  305. package/dist/server/cookies.d.ts +1 -38
  306. package/dist/server/cookies.js +3 -0
  307. package/dist/server/cookies.js.map +1 -1
  308. package/dist/server/core.d.ts +1436 -0
  309. package/dist/server/core.d.ts.map +1 -0
  310. package/dist/server/core.js +713 -0
  311. package/dist/server/core.js.map +1 -0
  312. package/dist/server/crypto.d.ts +8 -0
  313. package/dist/server/crypto.d.ts.map +1 -0
  314. package/dist/server/crypto.js +38 -0
  315. package/dist/server/crypto.js.map +1 -0
  316. package/dist/server/db.d.ts +1 -0
  317. package/dist/{component/server/implementation → server}/db.js +2 -1
  318. package/dist/server/db.js.map +1 -0
  319. package/dist/server/device.d.ts +1 -0
  320. package/dist/server/device.js +109 -0
  321. package/dist/server/device.js.map +1 -0
  322. package/dist/server/enterprise/config.d.ts +1 -0
  323. package/dist/server/enterprise/config.js +46 -0
  324. package/dist/server/enterprise/config.js.map +1 -0
  325. package/dist/server/enterprise/domain.d.ts +409 -0
  326. package/dist/server/enterprise/domain.d.ts.map +1 -0
  327. package/dist/server/enterprise/domain.js +885 -0
  328. package/dist/server/enterprise/domain.js.map +1 -0
  329. package/dist/server/enterprise/http.d.ts +26 -0
  330. package/dist/server/enterprise/http.d.ts.map +1 -0
  331. package/dist/server/enterprise/http.js +766 -0
  332. package/dist/server/enterprise/http.js.map +1 -0
  333. package/dist/server/enterprise/oidc.d.ts +1 -0
  334. package/dist/server/enterprise/oidc.js +248 -0
  335. package/dist/server/enterprise/oidc.js.map +1 -0
  336. package/dist/server/enterprise/policy.d.ts +1 -0
  337. package/dist/server/enterprise/policy.js +85 -0
  338. package/dist/server/enterprise/policy.js.map +1 -0
  339. package/dist/server/enterprise/saml.d.ts +1 -0
  340. package/dist/server/enterprise/saml.js +338 -0
  341. package/dist/server/enterprise/saml.js.map +1 -0
  342. package/dist/server/enterprise/scim.d.ts +1 -0
  343. package/dist/server/enterprise/scim.js +97 -0
  344. package/dist/server/enterprise/scim.js.map +1 -0
  345. package/dist/server/enterprise/shared.d.ts +5 -0
  346. package/dist/server/enterprise/shared.d.ts.map +1 -0
  347. package/dist/server/enterprise/shared.js +51 -0
  348. package/dist/server/enterprise/shared.js.map +1 -0
  349. package/dist/server/enterprise/validators.d.ts +1 -0
  350. package/dist/server/enterprise/validators.js +60 -0
  351. package/dist/server/enterprise/validators.js.map +1 -0
  352. package/dist/server/errors.d.ts +33 -1
  353. package/dist/server/errors.d.ts.map +1 -1
  354. package/dist/server/errors.js +44 -1
  355. package/dist/server/errors.js.map +1 -1
  356. package/dist/server/http.d.ts +59 -0
  357. package/dist/server/http.d.ts.map +1 -0
  358. package/dist/server/http.js +288 -0
  359. package/dist/server/http.js.map +1 -0
  360. package/dist/server/identity.d.ts +1 -0
  361. package/dist/server/identity.js +13 -0
  362. package/dist/server/identity.js.map +1 -0
  363. package/dist/server/index.d.ts +4 -182
  364. package/dist/server/index.js +4 -376
  365. package/dist/server/keys.d.ts +1 -0
  366. package/dist/server/{implementation/keys.js → keys.js} +9 -31
  367. package/dist/server/keys.js.map +1 -0
  368. package/dist/server/limits.d.ts +1 -0
  369. package/dist/server/limits.js +61 -0
  370. package/dist/server/limits.js.map +1 -0
  371. package/dist/server/mounts.d.ts +647 -0
  372. package/dist/server/mounts.d.ts.map +1 -0
  373. package/dist/server/mounts.js +643 -0
  374. package/dist/server/mounts.js.map +1 -0
  375. package/dist/server/mutations/account.d.ts +30 -0
  376. package/dist/server/mutations/account.d.ts.map +1 -0
  377. package/dist/server/mutations/account.js +44 -0
  378. package/dist/server/mutations/account.js.map +1 -0
  379. package/dist/server/mutations/code.d.ts +30 -0
  380. package/dist/server/mutations/code.d.ts.map +1 -0
  381. package/dist/server/{implementation/mutations → mutations}/code.js +7 -4
  382. package/dist/server/mutations/code.js.map +1 -0
  383. package/dist/server/mutations/index.d.ts +14 -0
  384. package/dist/server/mutations/index.js +15 -0
  385. package/dist/server/mutations/invalidate.d.ts +20 -0
  386. package/dist/server/mutations/invalidate.d.ts.map +1 -0
  387. package/dist/server/mutations/invalidate.js +32 -0
  388. package/dist/server/mutations/invalidate.js.map +1 -0
  389. package/dist/server/mutations/oauth.d.ts +28 -0
  390. package/dist/server/mutations/oauth.d.ts.map +1 -0
  391. package/dist/server/mutations/oauth.js +110 -0
  392. package/dist/server/mutations/oauth.js.map +1 -0
  393. package/dist/server/mutations/refresh.d.ts +21 -0
  394. package/dist/server/mutations/refresh.d.ts.map +1 -0
  395. package/dist/server/mutations/refresh.js +119 -0
  396. package/dist/server/mutations/refresh.js.map +1 -0
  397. package/dist/server/mutations/register.d.ts +38 -0
  398. package/dist/server/mutations/register.d.ts.map +1 -0
  399. package/dist/server/mutations/register.js +83 -0
  400. package/dist/server/mutations/register.js.map +1 -0
  401. package/dist/server/mutations/retrieve.d.ts +33 -0
  402. package/dist/server/mutations/retrieve.d.ts.map +1 -0
  403. package/dist/server/mutations/retrieve.js +65 -0
  404. package/dist/server/mutations/retrieve.js.map +1 -0
  405. package/dist/server/mutations/signature.d.ts +22 -0
  406. package/dist/server/mutations/signature.d.ts.map +1 -0
  407. package/dist/server/mutations/signature.js +32 -0
  408. package/dist/server/mutations/signature.js.map +1 -0
  409. package/dist/server/mutations/signin.d.ts +22 -0
  410. package/dist/server/mutations/signin.d.ts.map +1 -0
  411. package/dist/server/{implementation/mutations → mutations}/signin.js +2 -2
  412. package/dist/server/mutations/signin.js.map +1 -0
  413. package/dist/server/mutations/signout.d.ts +16 -0
  414. package/dist/server/mutations/signout.d.ts.map +1 -0
  415. package/dist/server/mutations/signout.js +27 -0
  416. package/dist/server/mutations/signout.js.map +1 -0
  417. package/dist/server/mutations/store/refs.d.ts +12 -0
  418. package/dist/server/mutations/store/refs.d.ts.map +1 -0
  419. package/dist/server/mutations/store/refs.js +15 -0
  420. package/dist/server/mutations/store/refs.js.map +1 -0
  421. package/dist/server/mutations/store.d.ts +306 -0
  422. package/dist/server/mutations/store.d.ts.map +1 -0
  423. package/dist/server/mutations/store.js +85 -0
  424. package/dist/server/mutations/store.js.map +1 -0
  425. package/dist/server/mutations/verifier.d.ts +13 -0
  426. package/dist/server/mutations/verifier.d.ts.map +1 -0
  427. package/dist/server/mutations/verifier.js +18 -0
  428. package/dist/server/mutations/verifier.js.map +1 -0
  429. package/dist/server/mutations/verify.d.ts +26 -0
  430. package/dist/server/mutations/verify.d.ts.map +1 -0
  431. package/dist/server/mutations/verify.js +98 -0
  432. package/dist/server/mutations/verify.js.map +1 -0
  433. package/dist/server/oauth.d.ts +1 -48
  434. package/dist/server/oauth.js +107 -64
  435. package/dist/server/oauth.js.map +1 -1
  436. package/dist/server/passkey.d.ts +27 -0
  437. package/dist/server/passkey.d.ts.map +1 -0
  438. package/dist/server/passkey.js +328 -0
  439. package/dist/server/passkey.js.map +1 -0
  440. package/dist/server/redirects.d.ts +1 -0
  441. package/dist/server/{implementation/redirects.js → redirects.js} +13 -11
  442. package/dist/server/redirects.js.map +1 -0
  443. package/dist/server/refresh.d.ts +1 -0
  444. package/dist/server/refresh.js +96 -0
  445. package/dist/server/refresh.js.map +1 -0
  446. package/dist/server/runtime.d.ts +136 -0
  447. package/dist/server/runtime.d.ts.map +1 -0
  448. package/dist/server/runtime.js +413 -0
  449. package/dist/server/runtime.js.map +1 -0
  450. package/dist/server/sessions.d.ts +1 -0
  451. package/dist/{component/server/implementation → server}/sessions.js +14 -8
  452. package/dist/server/sessions.js.map +1 -0
  453. package/dist/server/signin.d.ts +1 -0
  454. package/dist/server/signin.js +201 -0
  455. package/dist/server/signin.js.map +1 -0
  456. package/dist/server/ssr.d.ts +226 -0
  457. package/dist/server/ssr.d.ts.map +1 -0
  458. package/dist/server/ssr.js +786 -0
  459. package/dist/server/ssr.js.map +1 -0
  460. package/dist/server/templates.d.ts +1 -21
  461. package/dist/server/templates.js +2 -1
  462. package/dist/server/templates.js.map +1 -1
  463. package/dist/server/tokens.d.ts +1 -0
  464. package/dist/server/tokens.js +17 -0
  465. package/dist/server/tokens.js.map +1 -0
  466. package/dist/server/totp.d.ts +1 -0
  467. package/dist/server/totp.js +148 -0
  468. package/dist/server/totp.js.map +1 -0
  469. package/dist/server/types.d.ts +498 -306
  470. package/dist/server/types.d.ts.map +1 -1
  471. package/dist/server/types.js +108 -1
  472. package/dist/server/types.js.map +1 -0
  473. package/dist/server/users.d.ts +1 -0
  474. package/dist/{component/server/implementation → server}/users.js +54 -35
  475. package/dist/server/users.js.map +1 -0
  476. package/dist/server/utils.d.ts +1 -6
  477. package/dist/server/utils.js +110 -4
  478. package/dist/server/utils.js.map +1 -1
  479. package/package.json +49 -46
  480. package/src/authorization/index.ts +83 -0
  481. package/src/cli/bin.ts +5 -0
  482. package/src/cli/command.ts +6 -5
  483. package/src/cli/index.ts +456 -248
  484. package/src/cli/keys.ts +3 -0
  485. package/src/client/core/types.ts +437 -0
  486. package/src/client/factors/device.ts +160 -0
  487. package/src/client/factors/passkey.ts +282 -0
  488. package/src/client/factors/totp.ts +150 -0
  489. package/src/client/index.ts +745 -989
  490. package/src/client/runtime/browser.ts +112 -0
  491. package/src/client/runtime/invite.ts +65 -0
  492. package/src/client/runtime/proxy.ts +111 -0
  493. package/src/client/runtime/storage.ts +79 -0
  494. package/src/component/_generated/api.ts +42 -0
  495. package/src/component/_generated/component.ts +3123 -102
  496. package/src/component/functions.ts +38 -22
  497. package/src/component/index.ts +10 -20
  498. package/src/component/model.ts +449 -0
  499. package/src/component/public/enterprise/audit.ts +120 -0
  500. package/src/component/public/enterprise/core.ts +354 -0
  501. package/src/component/public/enterprise/domains.ts +323 -0
  502. package/src/component/public/enterprise/scim.ts +396 -0
  503. package/src/component/public/enterprise/secrets.ts +132 -0
  504. package/src/component/public/enterprise/webhooks.ts +306 -0
  505. package/src/component/public/factors/devices.ts +223 -0
  506. package/src/component/public/factors/passkeys.ts +242 -0
  507. package/src/component/public/factors/totp.ts +258 -0
  508. package/src/component/public/groups/core.ts +481 -0
  509. package/src/component/public/groups/invites.ts +602 -0
  510. package/src/component/public/groups/members.ts +409 -0
  511. package/src/component/public/identity/accounts.ts +206 -0
  512. package/src/component/public/identity/codes.ts +148 -0
  513. package/src/component/public/identity/sessions.ts +209 -0
  514. package/src/component/public/identity/tokens.ts +250 -0
  515. package/src/component/public/identity/users.ts +354 -0
  516. package/src/component/public/identity/verifiers.ts +157 -0
  517. package/src/component/public/security/keys.ts +365 -0
  518. package/src/component/public/security/limits.ts +173 -0
  519. package/src/component/public.ts +26 -1766
  520. package/src/component/schema.ts +273 -100
  521. package/src/providers/anonymous.ts +10 -20
  522. package/src/providers/credentials.ts +14 -22
  523. package/src/providers/device.ts +3 -14
  524. package/src/providers/email.ts +83 -47
  525. package/src/providers/index.ts +7 -0
  526. package/src/providers/oauth.ts +5 -3
  527. package/src/providers/passkey.ts +0 -13
  528. package/src/providers/password.ts +307 -130
  529. package/src/providers/phone.ts +81 -37
  530. package/src/providers/sso.ts +54 -0
  531. package/src/providers/totp.ts +0 -13
  532. package/src/samlify.d.ts +53 -0
  533. package/src/server/auth.ts +701 -247
  534. package/src/server/authError.ts +44 -0
  535. package/src/server/{providers.ts → config.ts} +84 -15
  536. package/src/server/cookies.ts +8 -1
  537. package/src/server/core.ts +2095 -0
  538. package/src/server/crypto.ts +88 -0
  539. package/src/server/{implementation/db.ts → db.ts} +90 -15
  540. package/src/server/device.ts +221 -0
  541. package/src/server/enterprise/config.ts +51 -0
  542. package/src/server/enterprise/domain.ts +1751 -0
  543. package/src/server/enterprise/http.ts +1324 -0
  544. package/src/server/enterprise/oidc.ts +500 -0
  545. package/src/server/enterprise/policy.ts +128 -0
  546. package/src/server/enterprise/saml.ts +578 -0
  547. package/src/server/enterprise/scim.ts +135 -0
  548. package/src/server/enterprise/shared.ts +134 -0
  549. package/src/server/enterprise/validators.ts +93 -0
  550. package/src/server/errors.ts +130 -119
  551. package/src/server/http.ts +531 -0
  552. package/src/server/identity.ts +18 -0
  553. package/src/server/index.ts +32 -650
  554. package/src/server/{implementation/keys.ts → keys.ts} +16 -44
  555. package/src/server/limits.ts +134 -0
  556. package/src/server/mounts.ts +948 -0
  557. package/src/server/mutations/account.ts +76 -0
  558. package/src/server/{implementation/mutations → mutations}/code.ts +22 -11
  559. package/src/server/mutations/index.ts +13 -0
  560. package/src/server/mutations/invalidate.ts +50 -0
  561. package/src/server/mutations/oauth.ts +237 -0
  562. package/src/server/mutations/refresh.ts +298 -0
  563. package/src/server/mutations/register.ts +200 -0
  564. package/src/server/mutations/retrieve.ts +109 -0
  565. package/src/server/mutations/signature.ts +50 -0
  566. package/src/server/{implementation/mutations → mutations}/signin.ts +9 -7
  567. package/src/server/mutations/signout.ts +43 -0
  568. package/src/server/mutations/store/refs.ts +10 -0
  569. package/src/server/mutations/store.ts +138 -0
  570. package/src/server/mutations/verifier.ts +34 -0
  571. package/src/server/mutations/verify.ts +202 -0
  572. package/src/server/oauth.ts +243 -131
  573. package/src/server/passkey.ts +784 -0
  574. package/src/server/{implementation/redirects.ts → redirects.ts} +21 -16
  575. package/src/server/refresh.ts +222 -0
  576. package/src/server/runtime.ts +880 -0
  577. package/src/server/{implementation/sessions.ts → sessions.ts} +33 -25
  578. package/src/server/signin.ts +438 -0
  579. package/src/server/ssr.ts +1764 -0
  580. package/src/server/templates.ts +8 -3
  581. package/src/server/{implementation/tokens.ts → tokens.ts} +11 -5
  582. package/src/server/totp.ts +349 -0
  583. package/src/server/types.ts +972 -207
  584. package/src/server/{implementation/users.ts → users.ts} +129 -75
  585. package/src/server/utils.ts +192 -5
  586. package/src/test.ts +28 -4
  587. package/dist/component/providers/email.js +0 -47
  588. package/dist/component/providers/email.js.map +0 -1
  589. package/dist/component/public.js.map +0 -1
  590. package/dist/component/server/implementation/db.js.map +0 -1
  591. package/dist/component/server/implementation/device.js +0 -135
  592. package/dist/component/server/implementation/device.js.map +0 -1
  593. package/dist/component/server/implementation/index.d.ts +0 -870
  594. package/dist/component/server/implementation/index.d.ts.map +0 -1
  595. package/dist/component/server/implementation/index.js +0 -610
  596. package/dist/component/server/implementation/index.js.map +0 -1
  597. package/dist/component/server/implementation/keys.js.map +0 -1
  598. package/dist/component/server/implementation/mutations/account.js +0 -39
  599. package/dist/component/server/implementation/mutations/account.js.map +0 -1
  600. package/dist/component/server/implementation/mutations/code.js.map +0 -1
  601. package/dist/component/server/implementation/mutations/index.js +0 -70
  602. package/dist/component/server/implementation/mutations/index.js.map +0 -1
  603. package/dist/component/server/implementation/mutations/invalidate.js +0 -29
  604. package/dist/component/server/implementation/mutations/invalidate.js.map +0 -1
  605. package/dist/component/server/implementation/mutations/oauth.js +0 -51
  606. package/dist/component/server/implementation/mutations/oauth.js.map +0 -1
  607. package/dist/component/server/implementation/mutations/refresh.js +0 -85
  608. package/dist/component/server/implementation/mutations/refresh.js.map +0 -1
  609. package/dist/component/server/implementation/mutations/register.js +0 -65
  610. package/dist/component/server/implementation/mutations/register.js.map +0 -1
  611. package/dist/component/server/implementation/mutations/retrieve.js +0 -50
  612. package/dist/component/server/implementation/mutations/retrieve.js.map +0 -1
  613. package/dist/component/server/implementation/mutations/signature.js +0 -27
  614. package/dist/component/server/implementation/mutations/signature.js.map +0 -1
  615. package/dist/component/server/implementation/mutations/signin.js.map +0 -1
  616. package/dist/component/server/implementation/mutations/signout.js +0 -27
  617. package/dist/component/server/implementation/mutations/signout.js.map +0 -1
  618. package/dist/component/server/implementation/mutations/store.js +0 -12
  619. package/dist/component/server/implementation/mutations/store.js.map +0 -1
  620. package/dist/component/server/implementation/mutations/verifier.js +0 -16
  621. package/dist/component/server/implementation/mutations/verifier.js.map +0 -1
  622. package/dist/component/server/implementation/mutations/verify.js +0 -105
  623. package/dist/component/server/implementation/mutations/verify.js.map +0 -1
  624. package/dist/component/server/implementation/passkey.js +0 -307
  625. package/dist/component/server/implementation/passkey.js.map +0 -1
  626. package/dist/component/server/implementation/provider.js +0 -19
  627. package/dist/component/server/implementation/provider.js.map +0 -1
  628. package/dist/component/server/implementation/ratelimit.js +0 -48
  629. package/dist/component/server/implementation/ratelimit.js.map +0 -1
  630. package/dist/component/server/implementation/redirects.js.map +0 -1
  631. package/dist/component/server/implementation/refresh.js +0 -109
  632. package/dist/component/server/implementation/refresh.js.map +0 -1
  633. package/dist/component/server/implementation/sessions.js.map +0 -1
  634. package/dist/component/server/implementation/signin.js +0 -148
  635. package/dist/component/server/implementation/signin.js.map +0 -1
  636. package/dist/component/server/implementation/tokens.js +0 -15
  637. package/dist/component/server/implementation/tokens.js.map +0 -1
  638. package/dist/component/server/implementation/totp.js +0 -142
  639. package/dist/component/server/implementation/totp.js.map +0 -1
  640. package/dist/component/server/implementation/types.d.ts +0 -42
  641. package/dist/component/server/implementation/types.d.ts.map +0 -1
  642. package/dist/component/server/implementation/types.js.map +0 -1
  643. package/dist/component/server/implementation/users.js.map +0 -1
  644. package/dist/component/server/implementation/utils.js +0 -56
  645. package/dist/component/server/implementation/utils.js.map +0 -1
  646. package/dist/component/server/providers.js.map +0 -1
  647. package/dist/component/server/templates.js +0 -84
  648. package/dist/component/server/templates.js.map +0 -1
  649. package/dist/server/cookies.d.ts.map +0 -1
  650. package/dist/server/implementation/db.d.ts +0 -86
  651. package/dist/server/implementation/db.d.ts.map +0 -1
  652. package/dist/server/implementation/db.js.map +0 -1
  653. package/dist/server/implementation/device.d.ts +0 -30
  654. package/dist/server/implementation/device.d.ts.map +0 -1
  655. package/dist/server/implementation/device.js +0 -135
  656. package/dist/server/implementation/device.js.map +0 -1
  657. package/dist/server/implementation/index.d.ts +0 -870
  658. package/dist/server/implementation/index.d.ts.map +0 -1
  659. package/dist/server/implementation/index.js +0 -610
  660. package/dist/server/implementation/index.js.map +0 -1
  661. package/dist/server/implementation/keys.d.ts +0 -66
  662. package/dist/server/implementation/keys.d.ts.map +0 -1
  663. package/dist/server/implementation/keys.js.map +0 -1
  664. package/dist/server/implementation/mutations/account.d.ts +0 -27
  665. package/dist/server/implementation/mutations/account.d.ts.map +0 -1
  666. package/dist/server/implementation/mutations/account.js +0 -39
  667. package/dist/server/implementation/mutations/account.js.map +0 -1
  668. package/dist/server/implementation/mutations/code.d.ts +0 -29
  669. package/dist/server/implementation/mutations/code.d.ts.map +0 -1
  670. package/dist/server/implementation/mutations/code.js.map +0 -1
  671. package/dist/server/implementation/mutations/index.d.ts +0 -310
  672. package/dist/server/implementation/mutations/index.d.ts.map +0 -1
  673. package/dist/server/implementation/mutations/index.js +0 -70
  674. package/dist/server/implementation/mutations/index.js.map +0 -1
  675. package/dist/server/implementation/mutations/invalidate.d.ts +0 -18
  676. package/dist/server/implementation/mutations/invalidate.d.ts.map +0 -1
  677. package/dist/server/implementation/mutations/invalidate.js +0 -29
  678. package/dist/server/implementation/mutations/invalidate.js.map +0 -1
  679. package/dist/server/implementation/mutations/oauth.d.ts +0 -23
  680. package/dist/server/implementation/mutations/oauth.d.ts.map +0 -1
  681. package/dist/server/implementation/mutations/oauth.js +0 -51
  682. package/dist/server/implementation/mutations/oauth.js.map +0 -1
  683. package/dist/server/implementation/mutations/refresh.d.ts +0 -20
  684. package/dist/server/implementation/mutations/refresh.d.ts.map +0 -1
  685. package/dist/server/implementation/mutations/refresh.js +0 -85
  686. package/dist/server/implementation/mutations/refresh.js.map +0 -1
  687. package/dist/server/implementation/mutations/register.d.ts +0 -37
  688. package/dist/server/implementation/mutations/register.d.ts.map +0 -1
  689. package/dist/server/implementation/mutations/register.js +0 -65
  690. package/dist/server/implementation/mutations/register.js.map +0 -1
  691. package/dist/server/implementation/mutations/retrieve.d.ts +0 -31
  692. package/dist/server/implementation/mutations/retrieve.d.ts.map +0 -1
  693. package/dist/server/implementation/mutations/retrieve.js +0 -50
  694. package/dist/server/implementation/mutations/retrieve.js.map +0 -1
  695. package/dist/server/implementation/mutations/signature.d.ts +0 -19
  696. package/dist/server/implementation/mutations/signature.d.ts.map +0 -1
  697. package/dist/server/implementation/mutations/signature.js +0 -27
  698. package/dist/server/implementation/mutations/signature.js.map +0 -1
  699. package/dist/server/implementation/mutations/signin.d.ts +0 -21
  700. package/dist/server/implementation/mutations/signin.d.ts.map +0 -1
  701. package/dist/server/implementation/mutations/signin.js.map +0 -1
  702. package/dist/server/implementation/mutations/signout.d.ts +0 -14
  703. package/dist/server/implementation/mutations/signout.d.ts.map +0 -1
  704. package/dist/server/implementation/mutations/signout.js +0 -27
  705. package/dist/server/implementation/mutations/signout.js.map +0 -1
  706. package/dist/server/implementation/mutations/store.d.ts +0 -11
  707. package/dist/server/implementation/mutations/store.d.ts.map +0 -1
  708. package/dist/server/implementation/mutations/store.js +0 -12
  709. package/dist/server/implementation/mutations/store.js.map +0 -1
  710. package/dist/server/implementation/mutations/verifier.d.ts +0 -11
  711. package/dist/server/implementation/mutations/verifier.d.ts.map +0 -1
  712. package/dist/server/implementation/mutations/verifier.js +0 -16
  713. package/dist/server/implementation/mutations/verifier.js.map +0 -1
  714. package/dist/server/implementation/mutations/verify.d.ts +0 -25
  715. package/dist/server/implementation/mutations/verify.d.ts.map +0 -1
  716. package/dist/server/implementation/mutations/verify.js +0 -105
  717. package/dist/server/implementation/mutations/verify.js.map +0 -1
  718. package/dist/server/implementation/passkey.d.ts +0 -24
  719. package/dist/server/implementation/passkey.d.ts.map +0 -1
  720. package/dist/server/implementation/passkey.js +0 -307
  721. package/dist/server/implementation/passkey.js.map +0 -1
  722. package/dist/server/implementation/provider.d.ts +0 -10
  723. package/dist/server/implementation/provider.d.ts.map +0 -1
  724. package/dist/server/implementation/provider.js +0 -19
  725. package/dist/server/implementation/provider.js.map +0 -1
  726. package/dist/server/implementation/ratelimit.d.ts +0 -10
  727. package/dist/server/implementation/ratelimit.d.ts.map +0 -1
  728. package/dist/server/implementation/ratelimit.js +0 -48
  729. package/dist/server/implementation/ratelimit.js.map +0 -1
  730. package/dist/server/implementation/redirects.d.ts +0 -10
  731. package/dist/server/implementation/redirects.d.ts.map +0 -1
  732. package/dist/server/implementation/redirects.js.map +0 -1
  733. package/dist/server/implementation/refresh.d.ts +0 -37
  734. package/dist/server/implementation/refresh.d.ts.map +0 -1
  735. package/dist/server/implementation/refresh.js +0 -109
  736. package/dist/server/implementation/refresh.js.map +0 -1
  737. package/dist/server/implementation/sessions.d.ts +0 -29
  738. package/dist/server/implementation/sessions.d.ts.map +0 -1
  739. package/dist/server/implementation/sessions.js.map +0 -1
  740. package/dist/server/implementation/signin.d.ts +0 -55
  741. package/dist/server/implementation/signin.d.ts.map +0 -1
  742. package/dist/server/implementation/signin.js +0 -148
  743. package/dist/server/implementation/signin.js.map +0 -1
  744. package/dist/server/implementation/tokens.d.ts +0 -11
  745. package/dist/server/implementation/tokens.d.ts.map +0 -1
  746. package/dist/server/implementation/tokens.js +0 -15
  747. package/dist/server/implementation/tokens.js.map +0 -1
  748. package/dist/server/implementation/totp.d.ts +0 -31
  749. package/dist/server/implementation/totp.d.ts.map +0 -1
  750. package/dist/server/implementation/totp.js +0 -142
  751. package/dist/server/implementation/totp.js.map +0 -1
  752. package/dist/server/implementation/types.d.ts +0 -189
  753. package/dist/server/implementation/types.d.ts.map +0 -1
  754. package/dist/server/implementation/types.js +0 -97
  755. package/dist/server/implementation/types.js.map +0 -1
  756. package/dist/server/implementation/users.d.ts +0 -30
  757. package/dist/server/implementation/users.d.ts.map +0 -1
  758. package/dist/server/implementation/users.js.map +0 -1
  759. package/dist/server/implementation/utils.d.ts +0 -19
  760. package/dist/server/implementation/utils.d.ts.map +0 -1
  761. package/dist/server/implementation/utils.js +0 -56
  762. package/dist/server/implementation/utils.js.map +0 -1
  763. package/dist/server/index.d.ts.map +0 -1
  764. package/dist/server/index.js.map +0 -1
  765. package/dist/server/oauth.d.ts.map +0 -1
  766. package/dist/server/providers.d.ts +0 -72
  767. package/dist/server/providers.d.ts.map +0 -1
  768. package/dist/server/providers.js.map +0 -1
  769. package/dist/server/templates.d.ts.map +0 -1
  770. package/dist/server/utils.d.ts.map +0 -1
  771. package/dist/server/version.d.ts +0 -5
  772. package/dist/server/version.d.ts.map +0 -1
  773. package/dist/server/version.js +0 -6
  774. package/dist/server/version.js.map +0 -1
  775. package/src/cli/utils.ts +0 -248
  776. package/src/server/implementation/device.ts +0 -307
  777. package/src/server/implementation/index.ts +0 -1583
  778. package/src/server/implementation/mutations/account.ts +0 -50
  779. package/src/server/implementation/mutations/index.ts +0 -157
  780. package/src/server/implementation/mutations/invalidate.ts +0 -42
  781. package/src/server/implementation/mutations/oauth.ts +0 -73
  782. package/src/server/implementation/mutations/refresh.ts +0 -175
  783. package/src/server/implementation/mutations/register.ts +0 -100
  784. package/src/server/implementation/mutations/retrieve.ts +0 -79
  785. package/src/server/implementation/mutations/signature.ts +0 -39
  786. package/src/server/implementation/mutations/signout.ts +0 -35
  787. package/src/server/implementation/mutations/store.ts +0 -7
  788. package/src/server/implementation/mutations/verifier.ts +0 -24
  789. package/src/server/implementation/mutations/verify.ts +0 -194
  790. package/src/server/implementation/passkey.ts +0 -620
  791. package/src/server/implementation/provider.ts +0 -36
  792. package/src/server/implementation/ratelimit.ts +0 -79
  793. package/src/server/implementation/refresh.ts +0 -172
  794. package/src/server/implementation/signin.ts +0 -296
  795. package/src/server/implementation/totp.ts +0 -342
  796. package/src/server/implementation/types.ts +0 -444
  797. package/src/server/implementation/utils.ts +0 -91
  798. package/src/server/version.ts +0 -2
@@ -1,9 +1,11 @@
1
+ import { Fx } from "@robelest/fx";
1
2
  import { GenericId } from "convex/values";
3
+
4
+ import { authDb } from "./db";
5
+ import { AuthError } from "./authError";
2
6
  import { Doc, MutationCtx } from "./types";
3
- import { AuthProviderMaterializedConfig, ConvexAuthConfig } from "../types";
7
+ import { AuthProviderMaterializedConfig, ConvexAuthConfig } from "./types";
4
8
  import { LOG_LEVELS, logWithLevel } from "./utils";
5
- import { authDb } from "./db";
6
- import { throwAuthError } from "../errors";
7
9
 
8
10
  type CreateOrUpdateUserArgs = {
9
11
  type: "oauth" | "credentials" | "email" | "phone" | "verification";
@@ -14,24 +16,43 @@ type CreateOrUpdateUserArgs = {
14
16
  emailVerified?: boolean;
15
17
  phoneVerified?: boolean;
16
18
  };
19
+ accountExtend?: Record<string, unknown>;
17
20
  shouldLinkViaEmail?: boolean;
18
21
  shouldLinkViaPhone?: boolean;
19
22
  };
20
23
 
24
+ function mergeExtend(
25
+ existing: unknown,
26
+ incoming: Record<string, unknown> | undefined,
27
+ ) {
28
+ if (!incoming) {
29
+ return undefined;
30
+ }
31
+ const existingRecord =
32
+ typeof existing === "object" &&
33
+ existing !== null &&
34
+ !Array.isArray(existing)
35
+ ? (existing as Record<string, unknown>)
36
+ : undefined;
37
+ return existingRecord ? { ...existingRecord, ...incoming } : incoming;
38
+ }
39
+
40
+ /** @internal */
21
41
  export async function upsertUserAndAccount(
22
42
  ctx: MutationCtx,
23
- sessionId: GenericId<"session"> | null,
43
+ sessionId: GenericId<"Session"> | null,
24
44
  account:
25
- | { existingAccount: Doc<"account"> }
45
+ | { existingAccount: Doc<"Account"> }
26
46
  | {
27
47
  providerAccountId: string;
28
48
  secret?: string;
29
49
  },
30
50
  args: CreateOrUpdateUserArgs,
31
51
  config: ConvexAuthConfig,
52
+ opts?: { existingUserId?: GenericId<"User"> },
32
53
  ): Promise<{
33
- userId: GenericId<"user">;
34
- accountId: GenericId<"account">;
54
+ userId: GenericId<"User">;
55
+ accountId: GenericId<"Account">;
35
56
  }> {
36
57
  const userId = await defaultCreateOrUpdateUser(
37
58
  ctx,
@@ -39,17 +60,25 @@ export async function upsertUserAndAccount(
39
60
  "existingAccount" in account ? account.existingAccount : null,
40
61
  args,
41
62
  config,
63
+ opts?.existingUserId ?? null,
64
+ );
65
+ const accountId = await createOrUpdateAccount(
66
+ ctx,
67
+ userId,
68
+ account,
69
+ args,
70
+ config,
42
71
  );
43
- const accountId = await createOrUpdateAccount(ctx, userId, account, args, config);
44
72
  return { userId, accountId };
45
73
  }
46
74
 
47
75
  async function defaultCreateOrUpdateUser(
48
76
  ctx: MutationCtx,
49
- existingSessionId: GenericId<"session"> | null,
50
- existingAccount: Doc<"account"> | null,
77
+ existingSessionId: GenericId<"Session"> | null,
78
+ existingAccount: Doc<"Account"> | null,
51
79
  args: CreateOrUpdateUserArgs,
52
80
  config: ConvexAuthConfig,
81
+ existingUserIdOverride: GenericId<"User"> | null,
53
82
  ) {
54
83
  logWithLevel(LOG_LEVELS.DEBUG, "defaultCreateOrUpdateUser args:", {
55
84
  existingAccountId: existingAccount?._id,
@@ -69,6 +98,7 @@ async function defaultCreateOrUpdateUser(
69
98
  const {
70
99
  provider,
71
100
  profile: {
101
+ id: _profileId,
72
102
  emailVerified: profileEmailVerified,
73
103
  phoneVerified: profilePhoneVerified,
74
104
  ...profile
@@ -76,57 +106,76 @@ async function defaultCreateOrUpdateUser(
76
106
  } = args;
77
107
  const emailVerified =
78
108
  profileEmailVerified ??
79
- (provider.type === "oauth" &&
80
- provider.allowDangerousEmailAccountLinking !== false);
109
+ (provider.type === "oauth" && provider.accountLinking !== "none");
81
110
  const phoneVerified = profilePhoneVerified ?? false;
82
111
  const shouldLinkViaEmail =
83
112
  args.shouldLinkViaEmail || emailVerified || provider.type === "email";
84
113
  const shouldLinkViaPhone =
85
114
  args.shouldLinkViaPhone || phoneVerified || provider.type === "phone";
86
115
 
87
- let userId = existingUserId;
116
+ let userId = existingUserId ?? existingUserIdOverride;
88
117
  if (existingUserId === null) {
89
118
  const existingUserWithVerifiedEmailId =
90
119
  typeof profile.email === "string" && shouldLinkViaEmail
91
- ? (await uniqueUserWithVerifiedEmail(ctx, profile.email, config))?._id ??
92
- null
120
+ ? ((await uniqueUserWithVerifiedEmail(ctx, profile.email, config))
121
+ ?._id ?? null)
93
122
  : null;
94
123
 
95
124
  const existingUserWithVerifiedPhoneId =
96
125
  typeof profile.phone === "string" && shouldLinkViaPhone
97
- ? (await uniqueUserWithVerifiedPhone(ctx, profile.phone, config))?._id ??
98
- null
126
+ ? ((await uniqueUserWithVerifiedPhone(ctx, profile.phone, config))
127
+ ?._id ?? null)
99
128
  : null;
100
- // If there is both email and phone verified user
101
- // already we can't link.
102
- if (
103
- existingUserWithVerifiedEmailId !== null &&
104
- existingUserWithVerifiedPhoneId !== null
105
- ) {
106
- logWithLevel(
107
- LOG_LEVELS.DEBUG,
108
- `Found existing email and phone verified users, so not linking: email: ${existingUserWithVerifiedEmailId}, phone: ${existingUserWithVerifiedPhoneId}`,
109
- );
110
- userId = null;
111
- } else if (existingUserWithVerifiedEmailId !== null) {
112
- logWithLevel(
113
- LOG_LEVELS.DEBUG,
114
- `Found existing email verified user, linking: ${existingUserWithVerifiedEmailId}`,
115
- );
116
- userId = existingUserWithVerifiedEmailId;
117
- } else if (existingUserWithVerifiedPhoneId !== null) {
118
- logWithLevel(
119
- LOG_LEVELS.DEBUG,
120
- `Found existing phone verified user, linking: ${existingUserWithVerifiedPhoneId}`,
121
- );
122
- userId = existingUserWithVerifiedPhoneId;
123
- } else {
124
- logWithLevel(
125
- LOG_LEVELS.DEBUG,
126
- "No existing verified users found, creating new user",
127
- );
128
- userId = null;
129
- }
129
+ const linkDispatch = {
130
+ tag:
131
+ existingUserWithVerifiedEmailId !== null &&
132
+ existingUserWithVerifiedPhoneId !== null
133
+ ? "both"
134
+ : existingUserWithVerifiedEmailId !== null
135
+ ? "email"
136
+ : existingUserWithVerifiedPhoneId !== null
137
+ ? "phone"
138
+ : "none",
139
+ existingUserWithVerifiedEmailId,
140
+ existingUserWithVerifiedPhoneId,
141
+ } as const;
142
+
143
+ const linkHandlers = {
144
+ both: () =>
145
+ Fx.sync(() => {
146
+ logWithLevel(
147
+ LOG_LEVELS.DEBUG,
148
+ `Found existing email and phone verified users, so not linking: email: ${linkDispatch.existingUserWithVerifiedEmailId}, phone: ${linkDispatch.existingUserWithVerifiedPhoneId}`,
149
+ );
150
+ return null;
151
+ }),
152
+ email: () =>
153
+ Fx.sync(() => {
154
+ logWithLevel(
155
+ LOG_LEVELS.DEBUG,
156
+ `Found existing email verified user, linking: ${linkDispatch.existingUserWithVerifiedEmailId}`,
157
+ );
158
+ return linkDispatch.existingUserWithVerifiedEmailId;
159
+ }),
160
+ phone: () =>
161
+ Fx.sync(() => {
162
+ logWithLevel(
163
+ LOG_LEVELS.DEBUG,
164
+ `Found existing phone verified user, linking: ${linkDispatch.existingUserWithVerifiedPhoneId}`,
165
+ );
166
+ return linkDispatch.existingUserWithVerifiedPhoneId;
167
+ }),
168
+ none: () =>
169
+ Fx.sync(() => {
170
+ logWithLevel(
171
+ LOG_LEVELS.DEBUG,
172
+ "No existing verified users found, creating new user",
173
+ );
174
+ return null;
175
+ }),
176
+ } as const;
177
+
178
+ userId = await Fx.run(linkHandlers[linkDispatch.tag]());
130
179
  }
131
180
  const userData = {
132
181
  ...(emailVerified ? { emailVerificationTime: Date.now() } : null),
@@ -135,16 +184,21 @@ async function defaultCreateOrUpdateUser(
135
184
  };
136
185
  const existingOrLinkedUserId = userId;
137
186
  if (userId !== null) {
138
- try {
139
- await db.users.patch(userId, userData);
140
- } catch (error) {
141
- throwAuthError("USER_UPDATE_FAILED", `Could not update user document with ID \`${userId}\`, ` +
142
- `either the user has been deleted but their account has not, ` +
143
- `or the profile data doesn't match the \`users\` table schema: ` +
144
- `${(error as Error).message}`);
145
- }
187
+ await Fx.run(
188
+ Fx.from({
189
+ ok: () => db.users.patch(userId!, userData),
190
+ err: (error) =>
191
+ new AuthError(
192
+ "USER_UPDATE_FAILED",
193
+ `Could not update user document with ID \`${userId}\`, ` +
194
+ `either the user has been deleted but their account has not, ` +
195
+ `or the profile data doesn't match the \`users\` table schema: ` +
196
+ `${(error as Error).message}`,
197
+ ),
198
+ }).pipe(Fx.recover((e) => Fx.fatal(e.toConvexError()))),
199
+ );
146
200
  } else {
147
- userId = (await db.users.insert(userData)) as GenericId<"user">;
201
+ userId = (await db.users.insert(userData)) as GenericId<"User">;
148
202
  }
149
203
  const afterUserCreatedOrUpdated = config.callbacks?.afterUserCreatedOrUpdated;
150
204
  if (afterUserCreatedOrUpdated !== undefined) {
@@ -172,7 +226,7 @@ async function uniqueUserWithVerifiedEmail(
172
226
  config: ConvexAuthConfig,
173
227
  ) {
174
228
  const db = authDb(ctx, config);
175
- return (await db.users.findByVerifiedEmail(email)) as Doc<"user"> | null;
229
+ return (await db.users.findByVerifiedEmail(email)) as Doc<"User"> | null;
176
230
  }
177
231
 
178
232
  async function uniqueUserWithVerifiedPhone(
@@ -181,14 +235,14 @@ async function uniqueUserWithVerifiedPhone(
181
235
  config: ConvexAuthConfig,
182
236
  ) {
183
237
  const db = authDb(ctx, config);
184
- return (await db.users.findByVerifiedPhone(phone)) as Doc<"user"> | null;
238
+ return (await db.users.findByVerifiedPhone(phone)) as Doc<"User"> | null;
185
239
  }
186
240
 
187
241
  async function createOrUpdateAccount(
188
242
  ctx: MutationCtx,
189
- userId: GenericId<"user">,
243
+ userId: GenericId<"User">,
190
244
  account:
191
- | { existingAccount: Doc<"account"> }
245
+ | { existingAccount: Doc<"Account"> }
192
246
  | {
193
247
  providerAccountId: string;
194
248
  secret?: string;
@@ -197,6 +251,10 @@ async function createOrUpdateAccount(
197
251
  config: ConvexAuthConfig,
198
252
  ) {
199
253
  const db = authDb(ctx, config);
254
+ const mergedExtend =
255
+ "existingAccount" in account
256
+ ? mergeExtend(account.existingAccount.extend, args.accountExtend)
257
+ : args.accountExtend;
200
258
  const accountId =
201
259
  "existingAccount" in account
202
260
  ? account.existingAccount._id
@@ -205,7 +263,8 @@ async function createOrUpdateAccount(
205
263
  provider: args.provider.id,
206
264
  providerAccountId: account.providerAccountId,
207
265
  secret: account.secret,
208
- })) as GenericId<"account">);
266
+ extend: mergedExtend,
267
+ })) as GenericId<"Account">);
209
268
  // This is never used with the default `createOrUpdateUser` implementation,
210
269
  // but it is used for manual linking via custom `createOrUpdateUser`:
211
270
  if (
@@ -214,23 +273,18 @@ async function createOrUpdateAccount(
214
273
  ) {
215
274
  await db.accounts.patch(accountId, { userId });
216
275
  }
276
+ const accountPatchData: Record<string, unknown> = {};
277
+ if (mergedExtend) {
278
+ accountPatchData.extend = mergedExtend;
279
+ }
217
280
  if (args.profile.emailVerified) {
218
- await db.accounts.patch(accountId, { emailVerified: args.profile.email });
281
+ accountPatchData.emailVerified = args.profile.email;
219
282
  }
220
283
  if (args.profile.phoneVerified) {
221
- await db.accounts.patch(accountId, { phoneVerified: args.profile.phone });
284
+ accountPatchData.phoneVerified = args.profile.phone;
222
285
  }
223
- return accountId;
224
- }
225
-
226
- export async function getAccountOrThrow(
227
- ctx: MutationCtx,
228
- existingAccountId: GenericId<"account">,
229
- config: ConvexAuthConfig,
230
- ) {
231
- const existingAccount = await authDb(ctx, config).accounts.getById(existingAccountId);
232
- if (existingAccount === null) {
233
- throwAuthError("ACCOUNT_NOT_FOUND", `Expected an account to exist for ID "${existingAccountId}"`);
286
+ if (Object.keys(accountPatchData).length > 0) {
287
+ await db.accounts.patch(accountId, accountPatchData);
234
288
  }
235
- return existingAccount;
289
+ return accountId;
236
290
  }
@@ -1,14 +1,201 @@
1
- import { throwAuthError } from "./errors";
1
+ import {
2
+ RandomReader,
3
+ generateRandomString as osloGenerateRandomString,
4
+ } from "@oslojs/crypto/random";
5
+ import { sha256 as rawSha256 } from "@oslojs/crypto/sha2";
6
+ import {
7
+ decodeBase64urlIgnorePadding,
8
+ encodeBase64urlNoPadding,
9
+ encodeHexLowerCase,
10
+ } from "@oslojs/encoding";
2
11
 
12
+ import { AuthError } from "./authError";
13
+
14
+ /**
15
+ * Require an environment variable to be set, throwing at config time if missing.
16
+ *
17
+ * Uses `AuthError.toConvexError()` directly since this is a synchronous guard
18
+ * called inline in many expressions — not suitable for Fx pipeline wrapping.
19
+ */
20
+ /** @internal */
3
21
  export function requireEnv(name: string) {
4
22
  const value = process.env[name];
5
23
  if (value === undefined) {
6
- throwAuthError("MISSING_ENV_VAR", `Missing environment variable \`${name}\``, { variable: name });
24
+ throw new AuthError(
25
+ "MISSING_ENV_VAR",
26
+ `Missing environment variable \`${name}\``,
27
+ { variable: name },
28
+ ).toConvexError();
7
29
  }
8
30
  return value;
9
31
  }
10
32
 
33
+ /** @internal */
11
34
  export function isLocalHost(host?: string) {
12
- return /(localhost|127\.0\.0\.1):\d+/.test(
13
- host ?? "");
14
- }
35
+ if (host === undefined) {
36
+ return false;
37
+ }
38
+ const raw = host.includes("://") ? host : `http://${host}`;
39
+ let url: URL;
40
+ try {
41
+ url = new URL(raw);
42
+ } catch {
43
+ return false;
44
+ }
45
+ return (
46
+ url.hostname === "localhost" ||
47
+ url.hostname === "127.0.0.1" ||
48
+ url.hostname === "::1"
49
+ );
50
+ }
51
+
52
+ // Internal server utilities (merged from former internalUtils.ts)
53
+
54
+ /** @internal */
55
+ export const TOKEN_SUB_CLAIM_DIVIDER = "|";
56
+ /** @internal */
57
+ export const REFRESH_TOKEN_DIVIDER = "|";
58
+
59
+ /** @internal */
60
+ export async function sha256(input: string) {
61
+ return encodeHexLowerCase(rawSha256(new TextEncoder().encode(input)));
62
+ }
63
+
64
+ /** @internal */
65
+ export function generateRandomString(length: number, alphabet: string) {
66
+ const random: RandomReader = {
67
+ read(bytes) {
68
+ crypto.getRandomValues(bytes as Uint8Array<ArrayBuffer>);
69
+ },
70
+ };
71
+
72
+ return osloGenerateRandomString(random, alphabet, length);
73
+ }
74
+
75
+ /** @internal */
76
+ export function errorMessage(error: unknown) {
77
+ return error instanceof Error ? error.message : String(error);
78
+ }
79
+
80
+ /** @internal */
81
+ export function logError(error: unknown) {
82
+ logWithLevel(
83
+ LOG_LEVELS.ERROR,
84
+ error instanceof Error
85
+ ? error.message + "\n" + error.stack?.replace("\\n", "\n")
86
+ : error,
87
+ );
88
+ }
89
+
90
+ /** @internal */
91
+ export const LOG_LEVELS = {
92
+ ERROR: "ERROR",
93
+ WARN: "WARN",
94
+ INFO: "INFO",
95
+ DEBUG: "DEBUG",
96
+ } as const;
97
+ type LogLevel = keyof typeof LOG_LEVELS;
98
+
99
+ /** @internal */
100
+ export function logWithLevel(level: LogLevel, ...args: unknown[]) {
101
+ const configuredLogLevel =
102
+ LOG_LEVELS[
103
+ (process.env.AUTH_LOG_LEVEL as LogLevel | undefined) ?? "INFO"
104
+ ] ?? "INFO";
105
+ switch (level) {
106
+ case "ERROR":
107
+ console.error(...args);
108
+ break;
109
+ case "WARN":
110
+ if (configuredLogLevel !== "ERROR") {
111
+ console.warn(...args);
112
+ }
113
+ break;
114
+ case "INFO":
115
+ if (configuredLogLevel === "INFO" || configuredLogLevel === "DEBUG") {
116
+ console.info(...args);
117
+ }
118
+ break;
119
+ case "DEBUG":
120
+ if (configuredLogLevel === "DEBUG") {
121
+ console.debug(...args);
122
+ }
123
+ break;
124
+ }
125
+ }
126
+
127
+ const UNREDACTED_LENGTH = 5;
128
+ /** @internal */
129
+ export function maybeRedact(value: string) {
130
+ if (value === "") {
131
+ return "";
132
+ }
133
+ const shouldRedact = process.env.AUTH_LOG_SECRETS !== "true";
134
+ if (shouldRedact) {
135
+ if (value.length < UNREDACTED_LENGTH * 2) {
136
+ return "<redacted>";
137
+ }
138
+ return (
139
+ value.substring(0, UNREDACTED_LENGTH) +
140
+ "<redacted>" +
141
+ value.substring(value.length - UNREDACTED_LENGTH)
142
+ );
143
+ } else {
144
+ return value;
145
+ }
146
+ }
147
+
148
+ const SECRET_KEY_ENV = "AUTH_SECRET_ENCRYPTION_KEY";
149
+ const SECRET_IV_LENGTH = 12;
150
+
151
+ function toArrayBuffer(bytes: Uint8Array) {
152
+ return bytes.buffer.slice(
153
+ bytes.byteOffset,
154
+ bytes.byteOffset + bytes.byteLength,
155
+ ) as ArrayBuffer;
156
+ }
157
+
158
+ async function getSecretCryptoKey() {
159
+ const material = requireEnv(SECRET_KEY_ENV);
160
+ const rawKey = rawSha256(new TextEncoder().encode(material));
161
+ return await crypto.subtle.importKey(
162
+ "raw",
163
+ toArrayBuffer(rawKey),
164
+ { name: "AES-GCM" },
165
+ false,
166
+ ["encrypt", "decrypt"],
167
+ );
168
+ }
169
+
170
+ /** @internal */
171
+ export async function encryptSecret(value: string) {
172
+ const key = await getSecretCryptoKey();
173
+ const iv = crypto.getRandomValues(new Uint8Array(SECRET_IV_LENGTH));
174
+ const encrypted = await crypto.subtle.encrypt(
175
+ { name: "AES-GCM", iv: toArrayBuffer(iv) },
176
+ key,
177
+ toArrayBuffer(new TextEncoder().encode(value)),
178
+ );
179
+ return `${encodeBase64urlNoPadding(iv)}.${encodeBase64urlNoPadding(new Uint8Array(encrypted))}`;
180
+ }
181
+
182
+ /** @internal */
183
+ export async function decryptSecret(ciphertext: string) {
184
+ const [ivEncoded, payloadEncoded] = ciphertext.split(".");
185
+ if (!ivEncoded || !payloadEncoded) {
186
+ throw new AuthError(
187
+ "INVALID_PARAMETERS",
188
+ "Stored enterprise secret is malformed.",
189
+ ).toConvexError();
190
+ }
191
+ const key = await getSecretCryptoKey();
192
+ const decrypted = await crypto.subtle.decrypt(
193
+ {
194
+ name: "AES-GCM",
195
+ iv: toArrayBuffer(decodeBase64urlIgnorePadding(ivEncoded)),
196
+ },
197
+ key,
198
+ toArrayBuffer(decodeBase64urlIgnorePadding(payloadEncoded)),
199
+ );
200
+ return new TextDecoder().decode(decrypted);
201
+ }
package/src/test.ts CHANGED
@@ -1,15 +1,33 @@
1
- import type { GenericSchema, SchemaDefinition } from "convex/server";
2
1
  import type { TestConvex } from "convex-test";
2
+ import type { GenericSchema, SchemaDefinition } from "convex/server";
3
+
3
4
  import schema from "./component/schema";
4
5
 
5
6
  type ImportMetaWithGlob = ImportMeta & {
6
7
  glob: (pattern: string) => Record<string, () => Promise<unknown>>;
7
8
  };
8
9
 
9
- const modules = (import.meta as ImportMetaWithGlob).glob(
10
- "./component/**/*.ts",
11
- );
10
+ const modules = (import.meta as ImportMetaWithGlob).glob("./component/**/*.ts");
12
11
 
12
+ /**
13
+ * Register the Convex Auth component in a `convex-test` environment.
14
+ *
15
+ * Use this in tests to mount the bundled auth component under a chosen
16
+ * component name before invoking its functions.
17
+ *
18
+ * @param t - The `convex-test` test harness.
19
+ * @param name - Component mount name. Defaults to `"auth"`.
20
+ * @returns Nothing.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { convexTest } from "convex-test";
25
+ * import { register } from "@robelest/convex-auth/test";
26
+ *
27
+ * const t = convexTest(schema);
28
+ * register(t);
29
+ * ```
30
+ */
13
31
  export function register(
14
32
  t: TestConvex<SchemaDefinition<GenericSchema, boolean>>,
15
33
  name: string = "auth",
@@ -17,6 +35,12 @@ export function register(
17
35
  t.registerComponent(name, schema, modules);
18
36
  }
19
37
 
38
+ /**
39
+ * Test helpers bundled for `convex-test` setups.
40
+ *
41
+ * Exposes the auth component `schema`, lazily discovered `modules`, and the
42
+ * `register()` helper as a convenience default export.
43
+ */
20
44
  export default {
21
45
  register,
22
46
  schema,
@@ -1,47 +0,0 @@
1
- //#region src/providers/email.ts
2
- /**
3
- * Email providers send a token to the user's email address
4
- * for sign-in.
5
- *
6
- * When you use this function to create your config, by default it
7
- * checks that there is an `email` field during token verification
8
- * that matches the `email` used during the initial `signIn` call.
9
- *
10
- * If you want the "magic link behavior", where only the token is needed,
11
- * you can override the `authorize` method to skip the check:
12
- *
13
- * ```ts
14
- * import email from "@robelest/convex-auth/providers/email";
15
- * import { Auth } from "@robelest/convex-auth/component";
16
- *
17
- * export const { auth, signIn, signOut, store } = Auth({
18
- * providers: [
19
- * email({ authorize: undefined }),
20
- * ],
21
- * });
22
- * ```
23
- *
24
- * Make sure the token has high enough entropy to be secure.
25
- *
26
- * @param config - Email provider options including `sendVerificationRequest`.
27
- * @returns An `EmailConfig` to include in your `providers` array.
28
- */
29
- function email(config) {
30
- return {
31
- id: "email",
32
- type: "email",
33
- name: "Email",
34
- from: "Auth.js <no-reply@authjs.dev>",
35
- maxAge: 3600,
36
- authorize: async (params, account) => {
37
- if (typeof params.email !== "string") throw new Error("Token verification requires an `email` in params of `signIn`.");
38
- if (account.providerAccountId !== params.email) throw new Error("Short verification code requires a matching `email` in params of `signIn`.");
39
- },
40
- sendVerificationRequest: config.sendVerificationRequest,
41
- options: config
42
- };
43
- }
44
-
45
- //#endregion
46
- export { email as default };
47
- //# sourceMappingURL=email.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email.js","names":[],"sources":["../../../src/providers/email.ts"],"sourcesContent":["/**\n * Simplifies creating custom email providers, such as for sending OTPs.\n *\n * @module\n */\n\nimport { GenericDataModel } from \"convex/server\";\nimport { EmailConfig, EmailUserConfig } from \"../server/types\";\n\n/**\n * Email providers send a token to the user's email address\n * for sign-in.\n *\n * When you use this function to create your config, by default it\n * checks that there is an `email` field during token verification\n * that matches the `email` used during the initial `signIn` call.\n *\n * If you want the \"magic link behavior\", where only the token is needed,\n * you can override the `authorize` method to skip the check:\n *\n * ```ts\n * import email from \"@robelest/convex-auth/providers/email\";\n * import { Auth } from \"@robelest/convex-auth/component\";\n *\n * export const { auth, signIn, signOut, store } = Auth({\n * providers: [\n * email({ authorize: undefined }),\n * ],\n * });\n * ```\n *\n * Make sure the token has high enough entropy to be secure.\n *\n * @param config - Email provider options including `sendVerificationRequest`.\n * @returns An `EmailConfig` to include in your `providers` array.\n */\nexport default function email<DataModel extends GenericDataModel>(\n config: EmailUserConfig<DataModel> &\n Pick<EmailConfig, \"sendVerificationRequest\">,\n): EmailConfig<DataModel> {\n return {\n id: \"email\",\n type: \"email\",\n name: \"Email\",\n from: \"Auth.js <no-reply@authjs.dev>\",\n maxAge: 60 * 60, // 1 hour\n authorize: async (params, account) => {\n if (typeof params.email !== \"string\") {\n throw new Error(\n \"Token verification requires an `email` in params of `signIn`.\",\n );\n }\n if (account.providerAccountId !== params.email) {\n throw new Error(\n \"Short verification code requires a matching `email` \" +\n \"in params of `signIn`.\",\n );\n }\n },\n sendVerificationRequest: config.sendVerificationRequest,\n options: config,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,SAAwB,MACtB,QAEwB;AACxB,QAAO;EACL,IAAI;EACJ,MAAM;EACN,MAAM;EACN,MAAM;EACN,QAAQ;EACR,WAAW,OAAO,QAAQ,YAAY;AACpC,OAAI,OAAO,OAAO,UAAU,SAC1B,OAAM,IAAI,MACR,gEACD;AAEH,OAAI,QAAQ,sBAAsB,OAAO,MACvC,OAAM,IAAI,MACR,6EAED;;EAGL,yBAAyB,OAAO;EAChC,SAAS;EACV"}