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

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.js +6185 -0
  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/functions.d.ts +11 -9
  22. package/dist/component/functions.d.ts.map +1 -1
  23. package/dist/component/functions.js.map +1 -1
  24. package/dist/component/index.d.ts +7 -11
  25. package/dist/component/index.js +2 -3
  26. package/dist/component/model.d.ts +153 -0
  27. package/dist/component/model.d.ts.map +1 -0
  28. package/dist/component/model.js +349 -0
  29. package/dist/component/model.js.map +1 -0
  30. package/dist/component/providers/anonymous.d.ts +54 -0
  31. package/dist/component/providers/anonymous.d.ts.map +1 -0
  32. package/dist/component/providers/credentials.d.ts +5 -5
  33. package/dist/component/providers/credentials.d.ts.map +1 -1
  34. package/dist/component/providers/device.d.ts +67 -0
  35. package/dist/component/providers/device.d.ts.map +1 -0
  36. package/dist/component/providers/email.d.ts +62 -0
  37. package/dist/component/providers/email.d.ts.map +1 -0
  38. package/dist/component/providers/oauth.d.ts.map +1 -1
  39. package/dist/component/providers/oauth.js.map +1 -1
  40. package/dist/component/providers/passkey.d.ts +57 -0
  41. package/dist/component/providers/passkey.d.ts.map +1 -0
  42. package/dist/component/providers/password.d.ts +88 -0
  43. package/dist/component/providers/password.d.ts.map +1 -0
  44. package/dist/component/providers/phone.d.ts +48 -0
  45. package/dist/component/providers/phone.d.ts.map +1 -0
  46. package/dist/component/providers/sso.d.ts +50 -0
  47. package/dist/component/providers/sso.d.ts.map +1 -0
  48. package/dist/component/providers/totp.d.ts +45 -0
  49. package/dist/component/providers/totp.d.ts.map +1 -0
  50. package/dist/component/public/enterprise/audit.d.ts +73 -0
  51. package/dist/component/public/enterprise/audit.d.ts.map +1 -0
  52. package/dist/component/public/enterprise/audit.js +108 -0
  53. package/dist/component/public/enterprise/audit.js.map +1 -0
  54. package/dist/component/public/enterprise/core.d.ts +176 -0
  55. package/dist/component/public/enterprise/core.d.ts.map +1 -0
  56. package/dist/component/public/enterprise/core.js +292 -0
  57. package/dist/component/public/enterprise/core.js.map +1 -0
  58. package/dist/component/public/enterprise/domains.d.ts +174 -0
  59. package/dist/component/public/enterprise/domains.d.ts.map +1 -0
  60. package/dist/component/public/enterprise/domains.js +271 -0
  61. package/dist/component/public/enterprise/domains.js.map +1 -0
  62. package/dist/component/public/enterprise/scim.d.ts +245 -0
  63. package/dist/component/public/enterprise/scim.d.ts.map +1 -0
  64. package/dist/component/public/enterprise/scim.js +344 -0
  65. package/dist/component/public/enterprise/scim.js.map +1 -0
  66. package/dist/component/public/enterprise/secrets.d.ts +78 -0
  67. package/dist/component/public/enterprise/secrets.d.ts.map +1 -0
  68. package/dist/component/public/enterprise/secrets.js +118 -0
  69. package/dist/component/public/enterprise/secrets.js.map +1 -0
  70. package/dist/component/public/enterprise/webhooks.d.ts +211 -0
  71. package/dist/component/public/enterprise/webhooks.d.ts.map +1 -0
  72. package/dist/component/public/enterprise/webhooks.js +300 -0
  73. package/dist/component/public/enterprise/webhooks.js.map +1 -0
  74. package/dist/component/public/factors/devices.d.ts +157 -0
  75. package/dist/component/public/factors/devices.d.ts.map +1 -0
  76. package/dist/component/public/factors/devices.js +216 -0
  77. package/dist/component/public/factors/devices.js.map +1 -0
  78. package/dist/component/public/factors/passkeys.d.ts +175 -0
  79. package/dist/component/public/factors/passkeys.d.ts.map +1 -0
  80. package/dist/component/public/factors/passkeys.js +238 -0
  81. package/dist/component/public/factors/passkeys.js.map +1 -0
  82. package/dist/component/public/factors/totp.d.ts +189 -0
  83. package/dist/component/public/factors/totp.d.ts.map +1 -0
  84. package/dist/component/public/factors/totp.js +254 -0
  85. package/dist/component/public/factors/totp.js.map +1 -0
  86. package/dist/component/public/groups/core.d.ts +137 -0
  87. package/dist/component/public/groups/core.d.ts.map +1 -0
  88. package/dist/component/public/groups/core.js +321 -0
  89. package/dist/component/public/groups/core.js.map +1 -0
  90. package/dist/component/public/groups/invites.d.ts +217 -0
  91. package/dist/component/public/groups/invites.d.ts.map +1 -0
  92. package/dist/component/public/groups/invites.js +457 -0
  93. package/dist/component/public/groups/invites.js.map +1 -0
  94. package/dist/component/public/groups/members.d.ts +204 -0
  95. package/dist/component/public/groups/members.d.ts.map +1 -0
  96. package/dist/component/public/groups/members.js +355 -0
  97. package/dist/component/public/groups/members.js.map +1 -0
  98. package/dist/component/public/identity/accounts.d.ts +147 -0
  99. package/dist/component/public/identity/accounts.d.ts.map +1 -0
  100. package/dist/component/public/identity/accounts.js +200 -0
  101. package/dist/component/public/identity/accounts.js.map +1 -0
  102. package/dist/component/public/identity/codes.d.ts +104 -0
  103. package/dist/component/public/identity/codes.d.ts.map +1 -0
  104. package/dist/component/public/identity/codes.js +140 -0
  105. package/dist/component/public/identity/codes.js.map +1 -0
  106. package/dist/component/public/identity/sessions.d.ts +128 -0
  107. package/dist/component/public/identity/sessions.d.ts.map +1 -0
  108. package/dist/component/public/identity/sessions.js +192 -0
  109. package/dist/component/public/identity/sessions.js.map +1 -0
  110. package/dist/component/public/identity/tokens.d.ts +169 -0
  111. package/dist/component/public/identity/tokens.d.ts.map +1 -0
  112. package/dist/component/public/identity/tokens.js +227 -0
  113. package/dist/component/public/identity/tokens.js.map +1 -0
  114. package/dist/component/public/identity/users.d.ts +212 -0
  115. package/dist/component/public/identity/users.d.ts.map +1 -0
  116. package/dist/component/public/identity/users.js +311 -0
  117. package/dist/component/public/identity/users.js.map +1 -0
  118. package/dist/component/public/identity/verifiers.d.ts +116 -0
  119. package/dist/component/public/identity/verifiers.d.ts.map +1 -0
  120. package/dist/component/public/identity/verifiers.js +154 -0
  121. package/dist/component/public/identity/verifiers.js.map +1 -0
  122. package/dist/component/public/security/keys.d.ts +209 -0
  123. package/dist/component/public/security/keys.d.ts.map +1 -0
  124. package/dist/component/public/security/keys.js +319 -0
  125. package/dist/component/public/security/keys.js.map +1 -0
  126. package/dist/component/public/security/limits.d.ts +114 -0
  127. package/dist/component/public/security/limits.d.ts.map +1 -0
  128. package/dist/component/public/security/limits.js +169 -0
  129. package/dist/component/public/security/limits.js.map +1 -0
  130. package/dist/component/public.d.ts +24 -271
  131. package/dist/component/public.d.ts.map +1 -1
  132. package/dist/component/public.js +21 -1229
  133. package/dist/component/schema.d.ts +473 -110
  134. package/dist/component/schema.js +162 -73
  135. package/dist/component/schema.js.map +1 -1
  136. package/dist/component/server/auth.d.ts +318 -373
  137. package/dist/component/server/auth.d.ts.map +1 -1
  138. package/dist/component/server/auth.js +204 -123
  139. package/dist/component/server/auth.js.map +1 -1
  140. package/dist/component/server/authError.js +34 -0
  141. package/dist/component/server/authError.js.map +1 -0
  142. package/dist/component/server/{providers.js → config.js} +43 -12
  143. package/dist/component/server/config.js.map +1 -0
  144. package/dist/component/server/cookies.js +3 -0
  145. package/dist/component/server/cookies.js.map +1 -1
  146. package/dist/component/server/core.js +713 -0
  147. package/dist/component/server/core.js.map +1 -0
  148. package/dist/component/server/crypto.js +38 -0
  149. package/dist/component/server/crypto.js.map +1 -0
  150. package/dist/component/server/{implementation/db.js → db.js} +2 -1
  151. package/dist/component/server/db.js.map +1 -0
  152. package/dist/component/server/device.js +109 -0
  153. package/dist/component/server/device.js.map +1 -0
  154. package/dist/component/server/enterprise/config.js +46 -0
  155. package/dist/component/server/enterprise/config.js.map +1 -0
  156. package/dist/component/server/enterprise/domain.js +885 -0
  157. package/dist/component/server/enterprise/domain.js.map +1 -0
  158. package/dist/component/server/enterprise/http.js +766 -0
  159. package/dist/component/server/enterprise/http.js.map +1 -0
  160. package/dist/component/server/enterprise/oidc.js +248 -0
  161. package/dist/component/server/enterprise/oidc.js.map +1 -0
  162. package/dist/component/server/enterprise/policy.js +85 -0
  163. package/dist/component/server/enterprise/policy.js.map +1 -0
  164. package/dist/component/server/enterprise/saml.js +338 -0
  165. package/dist/component/server/enterprise/saml.js.map +1 -0
  166. package/dist/component/server/enterprise/scim.js +97 -0
  167. package/dist/component/server/enterprise/scim.js.map +1 -0
  168. package/dist/component/server/enterprise/shared.js +51 -0
  169. package/dist/component/server/enterprise/shared.js.map +1 -0
  170. package/dist/component/server/errors.d.ts +1 -0
  171. package/dist/component/server/errors.js +24 -16
  172. package/dist/component/server/errors.js.map +1 -1
  173. package/dist/component/server/http.js +288 -0
  174. package/dist/component/server/http.js.map +1 -0
  175. package/dist/component/server/identity.js +13 -0
  176. package/dist/component/server/identity.js.map +1 -0
  177. package/dist/{server/implementation → component/server}/keys.js +9 -31
  178. package/dist/component/server/keys.js.map +1 -0
  179. package/dist/component/server/limits.js +61 -0
  180. package/dist/component/server/limits.js.map +1 -0
  181. package/dist/component/server/mutations/account.js +44 -0
  182. package/dist/component/server/mutations/account.js.map +1 -0
  183. package/dist/component/server/{implementation/mutations → mutations}/code.js +7 -4
  184. package/dist/component/server/mutations/code.js.map +1 -0
  185. package/dist/component/server/mutations/invalidate.js +32 -0
  186. package/dist/component/server/mutations/invalidate.js.map +1 -0
  187. package/dist/component/server/mutations/oauth.js +110 -0
  188. package/dist/component/server/mutations/oauth.js.map +1 -0
  189. package/dist/component/server/mutations/refresh.js +119 -0
  190. package/dist/component/server/mutations/refresh.js.map +1 -0
  191. package/dist/component/server/mutations/register.js +83 -0
  192. package/dist/component/server/mutations/register.js.map +1 -0
  193. package/dist/component/server/mutations/retrieve.js +65 -0
  194. package/dist/component/server/mutations/retrieve.js.map +1 -0
  195. package/dist/component/server/mutations/signature.js +32 -0
  196. package/dist/component/server/mutations/signature.js.map +1 -0
  197. package/dist/component/server/{implementation/mutations → mutations}/signin.js +2 -2
  198. package/dist/component/server/mutations/signin.js.map +1 -0
  199. package/dist/component/server/mutations/signout.js +27 -0
  200. package/dist/component/server/mutations/signout.js.map +1 -0
  201. package/dist/component/server/mutations/store/refs.js +15 -0
  202. package/dist/component/server/mutations/store/refs.js.map +1 -0
  203. package/dist/component/server/mutations/store.js +85 -0
  204. package/dist/component/server/mutations/store.js.map +1 -0
  205. package/dist/component/server/mutations/verifier.js +18 -0
  206. package/dist/component/server/mutations/verifier.js.map +1 -0
  207. package/dist/component/server/mutations/verify.js +98 -0
  208. package/dist/component/server/mutations/verify.js.map +1 -0
  209. package/dist/component/server/oauth.js +106 -60
  210. package/dist/component/server/oauth.js.map +1 -1
  211. package/dist/component/server/passkey.js +328 -0
  212. package/dist/component/server/passkey.js.map +1 -0
  213. package/dist/{server/implementation → component/server}/redirects.js +13 -11
  214. package/dist/component/server/redirects.js.map +1 -0
  215. package/dist/component/server/refresh.js +96 -0
  216. package/dist/component/server/refresh.js.map +1 -0
  217. package/dist/component/server/runtime.d.ts +136 -0
  218. package/dist/component/server/runtime.d.ts.map +1 -0
  219. package/dist/component/server/runtime.js +413 -0
  220. package/dist/component/server/runtime.js.map +1 -0
  221. package/dist/{server/implementation → component/server}/sessions.js +14 -8
  222. package/dist/component/server/sessions.js.map +1 -0
  223. package/dist/component/server/signin.js +201 -0
  224. package/dist/component/server/signin.js.map +1 -0
  225. package/dist/component/server/tokens.js +17 -0
  226. package/dist/component/server/tokens.js.map +1 -0
  227. package/dist/component/server/totp.js +148 -0
  228. package/dist/component/server/totp.js.map +1 -0
  229. package/dist/component/server/types.d.ts +387 -298
  230. package/dist/component/server/types.d.ts.map +1 -1
  231. package/dist/component/server/{implementation/types.js → types.js} +1 -1
  232. package/dist/component/server/types.js.map +1 -0
  233. package/dist/component/server/{implementation/users.js → users.js} +54 -35
  234. package/dist/component/server/users.js.map +1 -0
  235. package/dist/component/server/utils.js +110 -4
  236. package/dist/component/server/utils.js.map +1 -1
  237. package/dist/core/types.d.ts +369 -0
  238. package/dist/core/types.d.ts.map +1 -0
  239. package/dist/factors/device.js +105 -0
  240. package/dist/factors/device.js.map +1 -0
  241. package/dist/factors/passkey.js +181 -0
  242. package/dist/factors/passkey.js.map +1 -0
  243. package/dist/factors/totp.js +122 -0
  244. package/dist/factors/totp.js.map +1 -0
  245. package/dist/providers/anonymous.d.ts +3 -9
  246. package/dist/providers/anonymous.d.ts.map +1 -1
  247. package/dist/providers/anonymous.js +1 -18
  248. package/dist/providers/anonymous.js.map +1 -1
  249. package/dist/providers/credentials.d.ts +8 -10
  250. package/dist/providers/credentials.d.ts.map +1 -1
  251. package/dist/providers/credentials.js +3 -5
  252. package/dist/providers/credentials.js.map +1 -1
  253. package/dist/providers/device.d.ts +18 -10
  254. package/dist/providers/device.d.ts.map +1 -1
  255. package/dist/providers/device.js +4 -8
  256. package/dist/providers/device.js.map +1 -1
  257. package/dist/providers/email.d.ts +50 -23
  258. package/dist/providers/email.d.ts.map +1 -1
  259. package/dist/providers/email.js +58 -34
  260. package/dist/providers/email.js.map +1 -1
  261. package/dist/providers/index.d.ts +7 -3
  262. package/dist/providers/index.js +4 -1
  263. package/dist/providers/oauth.d.ts.map +1 -1
  264. package/dist/providers/oauth.js.map +1 -1
  265. package/dist/providers/passkey.d.ts +12 -9
  266. package/dist/providers/passkey.d.ts.map +1 -1
  267. package/dist/providers/passkey.js +1 -7
  268. package/dist/providers/passkey.js.map +1 -1
  269. package/dist/providers/password.d.ts +6 -12
  270. package/dist/providers/password.d.ts.map +1 -1
  271. package/dist/providers/password.js +189 -89
  272. package/dist/providers/password.js.map +1 -1
  273. package/dist/providers/phone.d.ts +40 -11
  274. package/dist/providers/phone.d.ts.map +1 -1
  275. package/dist/providers/phone.js +52 -21
  276. package/dist/providers/phone.js.map +1 -1
  277. package/dist/providers/sso.d.ts +50 -0
  278. package/dist/providers/sso.d.ts.map +1 -0
  279. package/dist/providers/sso.js +34 -0
  280. package/dist/providers/sso.js.map +1 -0
  281. package/dist/providers/totp.d.ts +12 -9
  282. package/dist/providers/totp.d.ts.map +1 -1
  283. package/dist/providers/totp.js +1 -7
  284. package/dist/providers/totp.js.map +1 -1
  285. package/dist/runtime/browser.js +68 -0
  286. package/dist/runtime/browser.js.map +1 -0
  287. package/dist/runtime/invite.js +51 -0
  288. package/dist/runtime/invite.js.map +1 -0
  289. package/dist/runtime/proxy.js +70 -0
  290. package/dist/runtime/proxy.js.map +1 -0
  291. package/dist/runtime/storage.js +37 -0
  292. package/dist/runtime/storage.js.map +1 -0
  293. package/dist/server/auth.d.ts +335 -370
  294. package/dist/server/auth.d.ts.map +1 -1
  295. package/dist/server/auth.js +204 -123
  296. package/dist/server/auth.js.map +1 -1
  297. package/dist/server/authError.d.ts +46 -0
  298. package/dist/server/authError.d.ts.map +1 -0
  299. package/dist/server/authError.js +34 -0
  300. package/dist/server/authError.js.map +1 -0
  301. package/dist/server/config.d.ts +1 -0
  302. package/dist/server/{providers.js → config.js} +43 -12
  303. package/dist/server/config.js.map +1 -0
  304. package/dist/server/cookies.d.ts +1 -38
  305. package/dist/server/cookies.js +3 -0
  306. package/dist/server/cookies.js.map +1 -1
  307. package/dist/server/core.d.ts +1436 -0
  308. package/dist/server/core.d.ts.map +1 -0
  309. package/dist/server/core.js +713 -0
  310. package/dist/server/core.js.map +1 -0
  311. package/dist/server/crypto.d.ts +8 -0
  312. package/dist/server/crypto.d.ts.map +1 -0
  313. package/dist/server/crypto.js +38 -0
  314. package/dist/server/crypto.js.map +1 -0
  315. package/dist/server/db.d.ts +1 -0
  316. package/dist/server/{implementation/db.js → db.js} +2 -1
  317. package/dist/server/db.js.map +1 -0
  318. package/dist/server/device.d.ts +1 -0
  319. package/dist/server/device.js +109 -0
  320. package/dist/server/device.js.map +1 -0
  321. package/dist/server/enterprise/config.d.ts +1 -0
  322. package/dist/server/enterprise/config.js +46 -0
  323. package/dist/server/enterprise/config.js.map +1 -0
  324. package/dist/server/enterprise/domain.d.ts +409 -0
  325. package/dist/server/enterprise/domain.d.ts.map +1 -0
  326. package/dist/server/enterprise/domain.js +885 -0
  327. package/dist/server/enterprise/domain.js.map +1 -0
  328. package/dist/server/enterprise/http.d.ts +26 -0
  329. package/dist/server/enterprise/http.d.ts.map +1 -0
  330. package/dist/server/enterprise/http.js +766 -0
  331. package/dist/server/enterprise/http.js.map +1 -0
  332. package/dist/server/enterprise/oidc.d.ts +1 -0
  333. package/dist/server/enterprise/oidc.js +248 -0
  334. package/dist/server/enterprise/oidc.js.map +1 -0
  335. package/dist/server/enterprise/policy.d.ts +1 -0
  336. package/dist/server/enterprise/policy.js +85 -0
  337. package/dist/server/enterprise/policy.js.map +1 -0
  338. package/dist/server/enterprise/saml.d.ts +1 -0
  339. package/dist/server/enterprise/saml.js +338 -0
  340. package/dist/server/enterprise/saml.js.map +1 -0
  341. package/dist/server/enterprise/scim.d.ts +1 -0
  342. package/dist/server/enterprise/scim.js +97 -0
  343. package/dist/server/enterprise/scim.js.map +1 -0
  344. package/dist/server/enterprise/shared.d.ts +5 -0
  345. package/dist/server/enterprise/shared.d.ts.map +1 -0
  346. package/dist/server/enterprise/shared.js +51 -0
  347. package/dist/server/enterprise/shared.js.map +1 -0
  348. package/dist/server/enterprise/validators.d.ts +1 -0
  349. package/dist/server/enterprise/validators.js +60 -0
  350. package/dist/server/enterprise/validators.js.map +1 -0
  351. package/dist/server/errors.d.ts +33 -1
  352. package/dist/server/errors.d.ts.map +1 -1
  353. package/dist/server/errors.js +44 -1
  354. package/dist/server/errors.js.map +1 -1
  355. package/dist/server/http.d.ts +59 -0
  356. package/dist/server/http.d.ts.map +1 -0
  357. package/dist/server/http.js +288 -0
  358. package/dist/server/http.js.map +1 -0
  359. package/dist/server/identity.d.ts +1 -0
  360. package/dist/server/identity.js +13 -0
  361. package/dist/server/identity.js.map +1 -0
  362. package/dist/server/index.d.ts +4 -182
  363. package/dist/server/index.js +4 -376
  364. package/dist/server/keys.d.ts +1 -0
  365. package/dist/{component/server/implementation → server}/keys.js +9 -31
  366. package/dist/server/keys.js.map +1 -0
  367. package/dist/server/limits.d.ts +1 -0
  368. package/dist/server/limits.js +61 -0
  369. package/dist/server/limits.js.map +1 -0
  370. package/dist/server/mounts.d.ts +647 -0
  371. package/dist/server/mounts.d.ts.map +1 -0
  372. package/dist/server/mounts.js +643 -0
  373. package/dist/server/mounts.js.map +1 -0
  374. package/dist/server/mutations/account.d.ts +30 -0
  375. package/dist/server/mutations/account.d.ts.map +1 -0
  376. package/dist/server/mutations/account.js +44 -0
  377. package/dist/server/mutations/account.js.map +1 -0
  378. package/dist/server/mutations/code.d.ts +30 -0
  379. package/dist/server/mutations/code.d.ts.map +1 -0
  380. package/dist/server/{implementation/mutations → mutations}/code.js +7 -4
  381. package/dist/server/mutations/code.js.map +1 -0
  382. package/dist/server/mutations/index.d.ts +14 -0
  383. package/dist/server/mutations/index.js +15 -0
  384. package/dist/server/mutations/invalidate.d.ts +20 -0
  385. package/dist/server/mutations/invalidate.d.ts.map +1 -0
  386. package/dist/server/mutations/invalidate.js +32 -0
  387. package/dist/server/mutations/invalidate.js.map +1 -0
  388. package/dist/server/mutations/oauth.d.ts +28 -0
  389. package/dist/server/mutations/oauth.d.ts.map +1 -0
  390. package/dist/server/mutations/oauth.js +110 -0
  391. package/dist/server/mutations/oauth.js.map +1 -0
  392. package/dist/server/mutations/refresh.d.ts +21 -0
  393. package/dist/server/mutations/refresh.d.ts.map +1 -0
  394. package/dist/server/mutations/refresh.js +119 -0
  395. package/dist/server/mutations/refresh.js.map +1 -0
  396. package/dist/server/mutations/register.d.ts +38 -0
  397. package/dist/server/mutations/register.d.ts.map +1 -0
  398. package/dist/server/mutations/register.js +83 -0
  399. package/dist/server/mutations/register.js.map +1 -0
  400. package/dist/server/mutations/retrieve.d.ts +33 -0
  401. package/dist/server/mutations/retrieve.d.ts.map +1 -0
  402. package/dist/server/mutations/retrieve.js +65 -0
  403. package/dist/server/mutations/retrieve.js.map +1 -0
  404. package/dist/server/mutations/signature.d.ts +22 -0
  405. package/dist/server/mutations/signature.d.ts.map +1 -0
  406. package/dist/server/mutations/signature.js +32 -0
  407. package/dist/server/mutations/signature.js.map +1 -0
  408. package/dist/server/mutations/signin.d.ts +22 -0
  409. package/dist/server/mutations/signin.d.ts.map +1 -0
  410. package/dist/server/{implementation/mutations → mutations}/signin.js +2 -2
  411. package/dist/server/mutations/signin.js.map +1 -0
  412. package/dist/server/mutations/signout.d.ts +16 -0
  413. package/dist/server/mutations/signout.d.ts.map +1 -0
  414. package/dist/server/mutations/signout.js +27 -0
  415. package/dist/server/mutations/signout.js.map +1 -0
  416. package/dist/server/mutations/store/refs.d.ts +12 -0
  417. package/dist/server/mutations/store/refs.d.ts.map +1 -0
  418. package/dist/server/mutations/store/refs.js +15 -0
  419. package/dist/server/mutations/store/refs.js.map +1 -0
  420. package/dist/server/mutations/store.d.ts +306 -0
  421. package/dist/server/mutations/store.d.ts.map +1 -0
  422. package/dist/server/mutations/store.js +85 -0
  423. package/dist/server/mutations/store.js.map +1 -0
  424. package/dist/server/mutations/verifier.d.ts +13 -0
  425. package/dist/server/mutations/verifier.d.ts.map +1 -0
  426. package/dist/server/mutations/verifier.js +18 -0
  427. package/dist/server/mutations/verifier.js.map +1 -0
  428. package/dist/server/mutations/verify.d.ts +26 -0
  429. package/dist/server/mutations/verify.d.ts.map +1 -0
  430. package/dist/server/mutations/verify.js +98 -0
  431. package/dist/server/mutations/verify.js.map +1 -0
  432. package/dist/server/oauth.d.ts +1 -48
  433. package/dist/server/oauth.js +107 -64
  434. package/dist/server/oauth.js.map +1 -1
  435. package/dist/server/passkey.d.ts +27 -0
  436. package/dist/server/passkey.d.ts.map +1 -0
  437. package/dist/server/passkey.js +328 -0
  438. package/dist/server/passkey.js.map +1 -0
  439. package/dist/server/redirects.d.ts +1 -0
  440. package/dist/{component/server/implementation → server}/redirects.js +13 -11
  441. package/dist/server/redirects.js.map +1 -0
  442. package/dist/server/refresh.d.ts +1 -0
  443. package/dist/server/refresh.js +96 -0
  444. package/dist/server/refresh.js.map +1 -0
  445. package/dist/server/runtime.d.ts +136 -0
  446. package/dist/server/runtime.d.ts.map +1 -0
  447. package/dist/server/runtime.js +413 -0
  448. package/dist/server/runtime.js.map +1 -0
  449. package/dist/server/sessions.d.ts +1 -0
  450. package/dist/{component/server/implementation → server}/sessions.js +14 -8
  451. package/dist/server/sessions.js.map +1 -0
  452. package/dist/server/signin.d.ts +1 -0
  453. package/dist/server/signin.js +201 -0
  454. package/dist/server/signin.js.map +1 -0
  455. package/dist/server/ssr.d.ts +226 -0
  456. package/dist/server/ssr.d.ts.map +1 -0
  457. package/dist/server/ssr.js +786 -0
  458. package/dist/server/ssr.js.map +1 -0
  459. package/dist/server/templates.d.ts +1 -21
  460. package/dist/server/templates.js +2 -1
  461. package/dist/server/templates.js.map +1 -1
  462. package/dist/server/tokens.d.ts +1 -0
  463. package/dist/server/tokens.js +17 -0
  464. package/dist/server/tokens.js.map +1 -0
  465. package/dist/server/totp.d.ts +1 -0
  466. package/dist/server/totp.js +148 -0
  467. package/dist/server/totp.js.map +1 -0
  468. package/dist/server/types.d.ts +498 -306
  469. package/dist/server/types.d.ts.map +1 -1
  470. package/dist/server/types.js +108 -1
  471. package/dist/server/types.js.map +1 -0
  472. package/dist/server/users.d.ts +1 -0
  473. package/dist/server/{implementation/users.js → users.js} +54 -35
  474. package/dist/server/users.js.map +1 -0
  475. package/dist/server/utils.d.ts +1 -6
  476. package/dist/server/utils.js +110 -4
  477. package/dist/server/utils.js.map +1 -1
  478. package/package.json +49 -46
  479. package/src/authorization/index.ts +83 -0
  480. package/src/cli/bin.ts +5 -0
  481. package/src/cli/command.ts +6 -5
  482. package/src/cli/index.ts +456 -248
  483. package/src/cli/keys.ts +3 -0
  484. package/src/client/core/types.ts +437 -0
  485. package/src/client/factors/device.ts +160 -0
  486. package/src/client/factors/passkey.ts +282 -0
  487. package/src/client/factors/totp.ts +150 -0
  488. package/src/client/index.ts +745 -989
  489. package/src/client/runtime/browser.ts +112 -0
  490. package/src/client/runtime/invite.ts +65 -0
  491. package/src/client/runtime/proxy.ts +111 -0
  492. package/src/client/runtime/storage.ts +79 -0
  493. package/src/component/_generated/api.ts +42 -0
  494. package/src/component/_generated/component.ts +3123 -102
  495. package/src/component/functions.ts +38 -22
  496. package/src/component/index.ts +10 -20
  497. package/src/component/model.ts +449 -0
  498. package/src/component/public/enterprise/audit.ts +120 -0
  499. package/src/component/public/enterprise/core.ts +354 -0
  500. package/src/component/public/enterprise/domains.ts +323 -0
  501. package/src/component/public/enterprise/scim.ts +396 -0
  502. package/src/component/public/enterprise/secrets.ts +132 -0
  503. package/src/component/public/enterprise/webhooks.ts +306 -0
  504. package/src/component/public/factors/devices.ts +223 -0
  505. package/src/component/public/factors/passkeys.ts +242 -0
  506. package/src/component/public/factors/totp.ts +258 -0
  507. package/src/component/public/groups/core.ts +481 -0
  508. package/src/component/public/groups/invites.ts +602 -0
  509. package/src/component/public/groups/members.ts +409 -0
  510. package/src/component/public/identity/accounts.ts +206 -0
  511. package/src/component/public/identity/codes.ts +148 -0
  512. package/src/component/public/identity/sessions.ts +209 -0
  513. package/src/component/public/identity/tokens.ts +250 -0
  514. package/src/component/public/identity/users.ts +354 -0
  515. package/src/component/public/identity/verifiers.ts +157 -0
  516. package/src/component/public/security/keys.ts +365 -0
  517. package/src/component/public/security/limits.ts +173 -0
  518. package/src/component/public.ts +26 -1766
  519. package/src/component/schema.ts +273 -100
  520. package/src/providers/anonymous.ts +10 -20
  521. package/src/providers/credentials.ts +14 -22
  522. package/src/providers/device.ts +3 -14
  523. package/src/providers/email.ts +83 -47
  524. package/src/providers/index.ts +7 -0
  525. package/src/providers/oauth.ts +5 -3
  526. package/src/providers/passkey.ts +0 -13
  527. package/src/providers/password.ts +307 -130
  528. package/src/providers/phone.ts +81 -37
  529. package/src/providers/sso.ts +54 -0
  530. package/src/providers/totp.ts +0 -13
  531. package/src/samlify.d.ts +53 -0
  532. package/src/server/auth.ts +701 -247
  533. package/src/server/authError.ts +44 -0
  534. package/src/server/{providers.ts → config.ts} +84 -15
  535. package/src/server/cookies.ts +8 -1
  536. package/src/server/core.ts +2095 -0
  537. package/src/server/crypto.ts +88 -0
  538. package/src/server/{implementation/db.ts → db.ts} +90 -15
  539. package/src/server/device.ts +221 -0
  540. package/src/server/enterprise/config.ts +51 -0
  541. package/src/server/enterprise/domain.ts +1751 -0
  542. package/src/server/enterprise/http.ts +1324 -0
  543. package/src/server/enterprise/oidc.ts +500 -0
  544. package/src/server/enterprise/policy.ts +128 -0
  545. package/src/server/enterprise/saml.ts +578 -0
  546. package/src/server/enterprise/scim.ts +135 -0
  547. package/src/server/enterprise/shared.ts +134 -0
  548. package/src/server/enterprise/validators.ts +93 -0
  549. package/src/server/errors.ts +130 -119
  550. package/src/server/http.ts +531 -0
  551. package/src/server/identity.ts +18 -0
  552. package/src/server/index.ts +32 -650
  553. package/src/server/{implementation/keys.ts → keys.ts} +16 -44
  554. package/src/server/limits.ts +134 -0
  555. package/src/server/mounts.ts +948 -0
  556. package/src/server/mutations/account.ts +76 -0
  557. package/src/server/{implementation/mutations → mutations}/code.ts +22 -11
  558. package/src/server/mutations/index.ts +13 -0
  559. package/src/server/mutations/invalidate.ts +50 -0
  560. package/src/server/mutations/oauth.ts +237 -0
  561. package/src/server/mutations/refresh.ts +298 -0
  562. package/src/server/mutations/register.ts +200 -0
  563. package/src/server/mutations/retrieve.ts +109 -0
  564. package/src/server/mutations/signature.ts +50 -0
  565. package/src/server/{implementation/mutations → mutations}/signin.ts +9 -7
  566. package/src/server/mutations/signout.ts +43 -0
  567. package/src/server/mutations/store/refs.ts +10 -0
  568. package/src/server/mutations/store.ts +138 -0
  569. package/src/server/mutations/verifier.ts +34 -0
  570. package/src/server/mutations/verify.ts +202 -0
  571. package/src/server/oauth.ts +243 -131
  572. package/src/server/passkey.ts +784 -0
  573. package/src/server/{implementation/redirects.ts → redirects.ts} +21 -16
  574. package/src/server/refresh.ts +222 -0
  575. package/src/server/runtime.ts +880 -0
  576. package/src/server/{implementation/sessions.ts → sessions.ts} +33 -25
  577. package/src/server/signin.ts +438 -0
  578. package/src/server/ssr.ts +1764 -0
  579. package/src/server/templates.ts +8 -3
  580. package/src/server/{implementation/tokens.ts → tokens.ts} +11 -5
  581. package/src/server/totp.ts +349 -0
  582. package/src/server/types.ts +972 -207
  583. package/src/server/{implementation/users.ts → users.ts} +129 -75
  584. package/src/server/utils.ts +192 -5
  585. package/src/test.ts +28 -4
  586. package/dist/bin.cjs +0 -27757
  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,14 +1,80 @@
1
+ import _default from "../schema.js";
1
2
  import { OAuthProviderInstance } from "../providers/oauth.js";
2
- import { CredentialsUserConfig } from "../providers/credentials.js";
3
- import { AnyDataModel, DocumentByName, FunctionReference, GenericActionCtx, GenericDataModel, GenericMutationCtx, RegisteredAction, RegisteredMutation, RegisteredQuery, TableNamesInDataModel } from "convex/server";
4
- import { GenericId, Value } from "convex/values";
3
+ import { CredentialsConfig } from "../providers/credentials.js";
4
+ import { Password } from "../providers/password.js";
5
+ import { Passkey } from "../providers/passkey.js";
6
+ import { Totp } from "../providers/totp.js";
7
+ import { Anonymous } from "../providers/anonymous.js";
8
+ import { Device } from "../providers/device.js";
9
+ import { SSO } from "../providers/sso.js";
10
+ import { Email } from "../providers/email.js";
11
+ import { Phone } from "../providers/phone.js";
12
+ import "../model.js";
13
+ import { AnyDataModel, DataModelFromSchemaDefinition, DocumentByName, GenericActionCtx, GenericDataModel, GenericMutationCtx, GenericQueryCtx, TableNamesInDataModel } from "convex/server";
14
+ import { GenericId, Infer, Value } from "convex/values";
5
15
  import * as arctic0 from "arctic";
6
16
 
7
17
  //#region src/server/types.d.ts
8
- /** A value that is either `T` or a `PromiseLike<T>`. */
18
+ /**
19
+ * A value that is either `T` or a `PromiseLike<T>`.
20
+ *
21
+ * @typeParam T - The underlying value type.
22
+ */
9
23
  type Awaitable<T> = T | PromiseLike<T>;
10
24
  /**
11
- * The config for the Convex Auth library, passed to `Auth`.
25
+ * A single role definition within the authorization config.
26
+ *
27
+ * Each role has an optional human-readable label and a list of grant strings
28
+ * that members with this role receive.
29
+ *
30
+ * @see {@link AuthAuthorizationConfig}
31
+ */
32
+ type AuthRoleDefinition = {
33
+ /** Optional stable identifier (defaults to the record key). */id?: string; /** Human-readable label for admin UIs. */
34
+ label?: string; /** Permission grant strings conferred by this role. */
35
+ grants: string[];
36
+ };
37
+ /**
38
+ * Authorization configuration mapping role IDs to {@link AuthRoleDefinition}s.
39
+ *
40
+ * Passed as `authorization.roles` in {@link ConvexAuthConfig}.
41
+ *
42
+ * @see {@link AuthRoleDefinition}
43
+ * @see {@link ConvexAuthConfig}
44
+ */
45
+ type AuthAuthorizationConfig = {
46
+ roles: Record<string, AuthRoleDefinition>;
47
+ };
48
+ /**
49
+ * Extracts the union of role ID strings from an authorization config.
50
+ *
51
+ * When `TAuthorization` is defined, this resolves to the literal key union
52
+ * of the `roles` record. Otherwise falls back to `string`.
53
+ *
54
+ * @typeParam TAuthorization - The authorization config type, or `undefined`.
55
+ *
56
+ * @see {@link AuthGrant}
57
+ */
58
+ type AuthRoleId<TAuthorization extends AuthAuthorizationConfig | undefined> = TAuthorization extends {
59
+ roles: infer TRoles extends Record<string, any>;
60
+ } ? keyof TRoles & string : string;
61
+ /**
62
+ * Extracts the union of grant strings from all roles in an authorization config.
63
+ *
64
+ * When `TAuthorization` is defined, this resolves to the literal union
65
+ * of all `grants` array elements across every role. Otherwise falls back to `string`.
66
+ *
67
+ * @typeParam TAuthorization - The authorization config type, or `undefined`.
68
+ *
69
+ * @see {@link AuthRoleId}
70
+ */
71
+ type AuthGrant<TAuthorization extends AuthAuthorizationConfig | undefined> = TAuthorization extends {
72
+ roles: infer TRoles extends Record<string, {
73
+ grants: readonly any[];
74
+ }>;
75
+ } ? TRoles[keyof TRoles]["grants"][number] & string : string;
76
+ /**
77
+ * The config for the Convex Auth library, passed to `createAuth`.
12
78
  */
13
79
  type ConvexAuthConfig = {
14
80
  /**
@@ -33,12 +99,16 @@ type ConvexAuthConfig = {
33
99
  * How long can a user session last without the user reauthenticating.
34
100
  *
35
101
  * Defaults to 30 days.
102
+ *
103
+ * @defaultValue 2_592_000_000
36
104
  */
37
105
  totalDurationMs?: number;
38
106
  /**
39
107
  * How long can a user session last without the user being active.
40
108
  *
41
109
  * Defaults to 30 days.
110
+ *
111
+ * @defaultValue 2_592_000_000
42
112
  */
43
113
  inactiveDurationMs?: number;
44
114
  };
@@ -50,6 +120,8 @@ type ConvexAuthConfig = {
50
120
  * How long is the JWT valid for after it is signed initially.
51
121
  *
52
122
  * Defaults to 1 hour.
123
+ *
124
+ * @defaultValue 3_600_000
53
125
  */
54
126
  durationMs?: number;
55
127
  };
@@ -63,63 +135,11 @@ type ConvexAuthConfig = {
63
135
  *
64
136
  * Defaults to 10 times per hour (that is 10 failed attempts, and then
65
137
  * allow another one every 6 minutes).
138
+ *
139
+ * @defaultValue 10
66
140
  */
67
- maxFailedAttempsPerHour?: number;
141
+ maxFailedAttemptsPerHour?: number;
68
142
  };
69
- /**
70
- * API key configuration for programmatic access.
71
- *
72
- * Enables `auth.key.*` helpers for creating, verifying, and managing
73
- * API keys with scoped permissions and optional per-key rate limiting.
74
- */
75
- apiKeys?: ApiKeyConfig;
76
- /**
77
- * Email transport configuration.
78
- *
79
- * Required for magic link authentication.
80
- * The library generates email content (subject, styled HTML); you
81
- * provide the delivery mechanism — Resend, SendGrid, SES, Postmark,
82
- * or any other provider.
83
- *
84
- * When configured, a magic link email provider (`id: "email"`) is
85
- * auto-registered — no need to add a separate Auth.js email provider
86
- * to `providers`.
87
- *
88
- * Works seamlessly with the `@convex-dev/resend` Convex component:
89
- *
90
- * ```ts
91
- * import { Resend } from "@convex-dev/resend";
92
- *
93
- * const resend = new Resend(components.resend, { testMode: false });
94
- *
95
- * const auth = new Auth(components.auth, {
96
- * providers: [google],
97
- * email: {
98
- * from: "My App <noreply@example.com>",
99
- * send: (ctx, params) => resend.sendEmail(ctx, params),
100
- * },
101
- * });
102
- * ```
103
- *
104
- * Or with any email API directly:
105
- *
106
- * ```ts
107
- * email: {
108
- * from: "My App <noreply@example.com>",
109
- * send: async (_ctx, { from, to, subject, html }) => {
110
- * await fetch("https://api.resend.com/emails", {
111
- * method: "POST",
112
- * headers: {
113
- * Authorization: `Bearer ${process.env.AUTH_RESEND_KEY}`,
114
- * "Content-Type": "application/json",
115
- * },
116
- * body: JSON.stringify({ from, to, subject, html }),
117
- * });
118
- * },
119
- * },
120
- * ```
121
- */
122
- email?: EmailTransport;
123
143
  /**
124
144
  * Lifecycle callbacks for customizing sign-in behavior.
125
145
  *
@@ -132,20 +152,21 @@ type ConvexAuthConfig = {
132
152
  * Control which URLs are allowed as a destination after OAuth sign-in
133
153
  * and for magic links:
134
154
  *
135
- * ```ts
136
- * import { Auth } from "@robelest/convex-auth/component";
137
- *
138
- * export const { auth, signIn, signOut, store } = Auth({
139
- * providers: [google],
140
- * callbacks: {
141
- * async redirect({ redirectTo }) {
142
- * // Check that redirectTo is valid
143
- * // and return the relative or absolute URL
144
- * // to redirect to.
145
- * },
146
- * },
147
- * });
148
- * ```
155
+ * ```ts
156
+ * import { createAuth } from "@robelest/convex-auth/component";
157
+ * import { components } from "./_generated/api";
158
+ *
159
+ * const auth = createAuth(components.auth, {
160
+ * providers: [google],
161
+ * callbacks: {
162
+ * async redirect({ redirectTo }) {
163
+ * // Check that redirectTo is valid
164
+ * // and return the relative or absolute URL
165
+ * // to redirect to.
166
+ * },
167
+ * },
168
+ * });
169
+ * ```
149
170
  *
150
171
  * Convex Auth performs redirect only during OAuth sign-in. By default,
151
172
  * it redirects back to the URL specified via the `SITE_URL` environment
@@ -186,7 +207,7 @@ type ConvexAuthConfig = {
186
207
  * If this is a sign-in to an existing account,
187
208
  * this is the existing user ID linked to that account.
188
209
  */
189
- existingUserId: GenericId<"user"> | null;
210
+ existingUserId: GenericId<"User"> | null;
190
211
  /**
191
212
  * The provider type or "verification" if this callback is called
192
213
  * after an email or phone token verification.
@@ -214,7 +235,7 @@ type ConvexAuthConfig = {
214
235
  * The `shouldLink` argument passed to `createAccount`.
215
236
  */
216
237
  shouldLink?: boolean;
217
- }) => Promise<GenericId<"user">>;
238
+ }) => Promise<GenericId<"User">>;
218
239
  /**
219
240
  * Perform additional writes after a user is created.
220
241
  *
@@ -233,12 +254,12 @@ type ConvexAuthConfig = {
233
254
  /**
234
255
  * The ID of the user that is being signed in.
235
256
  */
236
- userId: GenericId<"user">;
257
+ userId: GenericId<"User">;
237
258
  /**
238
259
  * If this is a sign-in to an existing account,
239
260
  * this is the existing user ID linked to that account.
240
261
  */
241
- existingUserId: GenericId<"user"> | null;
262
+ existingUserId: GenericId<"User"> | null;
242
263
  /**
243
264
  * The provider type or "verification" if this callback is called
244
265
  * after an email or phone token verification.
@@ -268,6 +289,15 @@ type ConvexAuthConfig = {
268
289
  shouldLink?: boolean;
269
290
  }) => Promise<void>;
270
291
  };
292
+ /**
293
+ * Application-defined role and grant model used by membership access checks.
294
+ */
295
+ authorization?: {
296
+ roles: Record<string, {
297
+ label?: string;
298
+ grants: string[];
299
+ }>;
300
+ };
271
301
  };
272
302
  /**
273
303
  * Union of all supported auth provider config types.
@@ -277,9 +307,105 @@ type ConvexAuthConfig = {
277
307
  * (WebAuthn), and TOTP (2FA). Each can be passed as a config object
278
308
  * or a factory function.
279
309
  */
280
- type AuthProviderConfig = OAuthProviderInstance | OAuthMaterializedConfig | ConvexCredentialsConfig | ((...args: any) => ConvexCredentialsConfig) | EmailConfig | ((...args: any) => EmailConfig) | PhoneConfig | ((...args: any) => PhoneConfig) | PasskeyProviderConfig | ((...args: any) => PasskeyProviderConfig) | TotpProviderConfig | ((...args: any) => TotpProviderConfig) | DeviceProviderConfig | ((...args: any) => DeviceProviderConfig);
310
+ type AuthProviderConfig = OAuthProviderInstance | Password | Passkey | Totp | Anonymous | Device | SSO | Email | Phone | OAuthMaterializedConfig | ConvexCredentialsConfig | ((...args: any) => ConvexCredentialsConfig) | EmailConfig | ((...args: any) => EmailConfig) | PhoneConfig | ((...args: any) => PhoneConfig) | PasskeyProviderConfig | ((...args: any) => PasskeyProviderConfig) | TotpProviderConfig | ((...args: any) => TotpProviderConfig) | DeviceProviderConfig | ((...args: any) => DeviceProviderConfig) | SSOProviderConfig;
311
+ /**
312
+ * Minimal config stored for the SSO provider at runtime.
313
+ * No options — enterprise configuration is entirely per-tenant runtime state.
314
+ */
315
+ interface SSOProviderConfig {
316
+ id: string;
317
+ type: "sso";
318
+ }
319
+ /**
320
+ * Account linking strategy for enterprise SSO sign-in.
321
+ *
322
+ * - `"verifiedEmail"` — link accounts when the IdP-provided email matches a verified email on an existing user.
323
+ * - `"none"` — never auto-link; always create a new account.
324
+ */
325
+ type EnterpriseAccountLinkingPolicy = "verifiedEmail" | "none";
326
+ /**
327
+ * Policy for reusing existing users during SCIM provisioning.
328
+ *
329
+ * - `"externalId"` — match by the SCIM `externalId` to reuse a previously provisioned user.
330
+ * - `"none"` — always create a new user for each SCIM provision request.
331
+ */
332
+ type EnterpriseScimReuseUserPolicy = "externalId" | "none";
333
+ /**
334
+ * Just-in-time provisioning mode for enterprise SSO.
335
+ *
336
+ * - `"off"` — no JIT provisioning; users must be pre-provisioned.
337
+ * - `"createUser"` — create a user record on first SSO sign-in.
338
+ * - `"createUserAndMembership"` — create a user and add them to the enterprise group on first SSO sign-in.
339
+ */
340
+ type EnterpriseJitProvisioningMode = "off" | "createUser" | "createUserAndMembership";
341
+ /**
342
+ * Deprovisioning strategy when a SCIM user is deleted.
343
+ *
344
+ * - `"soft"` — mark the user as inactive but preserve the record.
345
+ * - `"hard"` — permanently delete the user and associated data.
346
+ */
347
+ type EnterpriseDeprovisionMode = "soft" | "hard";
348
+ /**
349
+ * Effective enterprise policy document stored for an SSO/SCIM tenant.
350
+ *
351
+ * Controls account linking, JIT provisioning, SCIM reuse behavior,
352
+ * deprovisioning, and any app-defined extension metadata.
353
+ *
354
+ * @see {@link EnterprisePolicyPatch}
355
+ */
356
+ interface EnterprisePolicy {
357
+ version: 1;
358
+ identity: {
359
+ accountLinking: {
360
+ oidc: EnterpriseAccountLinkingPolicy;
361
+ saml: EnterpriseAccountLinkingPolicy;
362
+ };
363
+ };
364
+ provisioning: {
365
+ scimReuse: {
366
+ user: EnterpriseScimReuseUserPolicy;
367
+ };
368
+ jit: {
369
+ mode: EnterpriseJitProvisioningMode;
370
+ defaultRoleIds: string[];
371
+ };
372
+ deprovision: {
373
+ mode: EnterpriseDeprovisionMode;
374
+ };
375
+ };
376
+ extend?: Record<string, unknown>;
377
+ }
378
+ /**
379
+ * Partial update payload for {@link EnterprisePolicy}.
380
+ *
381
+ * Use this when patching only selected enterprise policy sections without
382
+ * replacing the entire stored policy document.
383
+ */
384
+ interface EnterprisePolicyPatch {
385
+ identity?: {
386
+ accountLinking?: {
387
+ oidc?: EnterpriseAccountLinkingPolicy;
388
+ saml?: EnterpriseAccountLinkingPolicy;
389
+ };
390
+ };
391
+ provisioning?: {
392
+ scimReuse?: {
393
+ user?: EnterpriseScimReuseUserPolicy;
394
+ };
395
+ jit?: {
396
+ mode?: EnterpriseJitProvisioningMode;
397
+ defaultRoleIds?: string[];
398
+ };
399
+ deprovision?: {
400
+ mode?: EnterpriseDeprovisionMode;
401
+ };
402
+ };
403
+ extend?: Record<string, unknown>;
404
+ }
281
405
  /**
282
406
  * Email provider config for magic link / OTP sign-in.
407
+ *
408
+ * @typeParam DataModel - The Convex data model for typed action contexts.
283
409
  */
284
410
  interface EmailConfig<DataModel extends GenericDataModel = GenericDataModel> {
285
411
  /** Provider identifier (e.g. `"email"`, `"resend"`). */
@@ -290,7 +416,11 @@ interface EmailConfig<DataModel extends GenericDataModel = GenericDataModel> {
290
416
  name?: string;
291
417
  /** Sender address (e.g. `"My App <noreply@example.com>"`). */
292
418
  from?: string;
293
- /** Token expiration in seconds. Defaults to 86 400 (24 hours). */
419
+ /**
420
+ * Token expiration in seconds. Defaults to 86 400 (24 hours).
421
+ *
422
+ * @defaultValue 86400
423
+ */
294
424
  maxAge?: number;
295
425
  /**
296
426
  * Send the verification token to the user.
@@ -328,17 +458,23 @@ interface EmailConfig<DataModel extends GenericDataModel = GenericDataModel> {
328
458
  /**
329
459
  * The values passed to the `signIn` function.
330
460
  */
331
- params: Record<string, Value | undefined>, account: GenericDoc<DataModel, "account">) => Promise<void>;
461
+ params: Record<string, Value | undefined>, account: GenericDoc<DataModel, "Account">) => Promise<void>;
332
462
  /** Raw user options before merging with defaults. */
333
463
  options: EmailUserConfig<DataModel>;
334
464
  }
335
465
  /**
336
- * Configurable options for an email provider config.
466
+ * User-facing configuration shape accepted by the email provider.
467
+ *
468
+ * Equivalent to `Partial<EmailConfig>` without internal runtime-only fields.
469
+ *
470
+ * @typeParam DataModel - The Convex data model.
337
471
  */
338
472
  type EmailUserConfig<DataModel extends GenericDataModel = GenericDataModel> = Omit<Partial<EmailConfig<DataModel>>, "options" | "type">;
339
473
  /**
340
474
  * Same as email provider config, but verifies
341
475
  * phone number instead of the email address.
476
+ *
477
+ * @typeParam DataModel - The Convex data model for typed action contexts.
342
478
  */
343
479
  interface PhoneConfig<DataModel extends GenericDataModel = GenericDataModel> {
344
480
  id: string;
@@ -387,17 +523,21 @@ interface PhoneConfig<DataModel extends GenericDataModel = GenericDataModel> {
387
523
  /**
388
524
  * The values passed to the `signIn` function.
389
525
  */
390
- params: Record<string, Value | undefined>, account: GenericDoc<DataModel, "account">) => Promise<void>;
526
+ params: Record<string, Value | undefined>, account: GenericDoc<DataModel, "Account">) => Promise<void>;
391
527
  options: PhoneUserConfig<DataModel>;
392
528
  }
393
529
  /**
394
- * Configurable options for a phone provider config.
530
+ * User-facing configuration shape accepted by the phone provider.
531
+ *
532
+ * Equivalent to `Partial<PhoneConfig>` without internal runtime-only fields.
533
+ *
534
+ * @typeParam DataModel - The Convex data model.
395
535
  */
396
536
  type PhoneUserConfig<DataModel extends GenericDataModel = GenericDataModel> = Omit<Partial<PhoneConfig<DataModel>>, "options" | "type">;
397
537
  /**
398
- * Similar to Auth.js Credentials config.
538
+ * Credentials provider config used by Convex Auth.
399
539
  */
400
- type ConvexCredentialsConfig = CredentialsUserConfig<any> & {
540
+ type ConvexCredentialsConfig = CredentialsConfig<any> & {
401
541
  type: "credentials";
402
542
  id: string;
403
543
  };
@@ -410,12 +550,37 @@ interface PasskeyProviderConfig {
410
550
  options: {
411
551
  /** Relying Party display name. Defaults to SITE_URL hostname. */rpName?: string; /** Relying Party ID (hostname). Defaults to SITE_URL hostname. */
412
552
  rpId?: string; /** Allowed origins for credential verification. Defaults to SITE_URL. */
413
- origin?: string | string[]; /** Attestation conveyance preference. Defaults to "none". */
414
- attestation?: "none" | "direct"; /** User verification requirement. Defaults to "required". */
415
- userVerification?: "required" | "preferred" | "discouraged"; /** Resident key (discoverable credential) preference. Defaults to "preferred". */
553
+ origin?: string | string[];
554
+ /**
555
+ * Attestation conveyance preference. Defaults to "none".
556
+ *
557
+ * @defaultValue "none"
558
+ */
559
+ attestation?: "none" | "direct";
560
+ /**
561
+ * User verification requirement. Defaults to "required".
562
+ *
563
+ * @defaultValue "required"
564
+ */
565
+ userVerification?: "required" | "preferred" | "discouraged";
566
+ /**
567
+ * Resident key (discoverable credential) preference. Defaults to "preferred".
568
+ *
569
+ * @defaultValue "preferred"
570
+ */
416
571
  residentKey?: "required" | "preferred" | "discouraged"; /** Restrict to platform or cross-platform authenticators. */
417
- authenticatorAttachment?: "platform" | "cross-platform"; /** Supported COSE algorithms. Defaults to [-7 (ES256), -257 (RS256)]. */
418
- algorithms?: number[]; /** Challenge expiration in ms. Defaults to 300_000 (5 minutes). */
572
+ authenticatorAttachment?: "platform" | "cross-platform";
573
+ /**
574
+ * Supported COSE algorithms. Defaults to [-7 (ES256), -257 (RS256)].
575
+ *
576
+ * @defaultValue [-7, -257]
577
+ */
578
+ algorithms?: number[];
579
+ /**
580
+ * Challenge expiration in ms. Defaults to 300_000 (5 minutes).
581
+ *
582
+ * @defaultValue 300_000
583
+ */
419
584
  challengeExpirationMs?: number;
420
585
  };
421
586
  }
@@ -426,8 +591,18 @@ interface TotpProviderConfig {
426
591
  id: string;
427
592
  type: "totp";
428
593
  options: {
429
- /** Issuer name shown in authenticator apps (e.g. "My App"). */issuer: string; /** Number of digits in each code (default: 6). */
430
- digits: number; /** Time period in seconds for code rotation (default: 30). */
594
+ /** Issuer name shown in authenticator apps (e.g. "My App"). */issuer: string;
595
+ /**
596
+ * Number of digits in each code (default: 6).
597
+ *
598
+ * @defaultValue 6
599
+ */
600
+ digits: number;
601
+ /**
602
+ * Time period in seconds for code rotation (default: 30).
603
+ *
604
+ * @defaultValue 30
605
+ */
431
606
  period: number;
432
607
  };
433
608
  }
@@ -477,37 +652,89 @@ type AuthUpdateAccountArgs = {
477
652
  };
478
653
  /** Arguments for `auth.session.invalidate()`. */
479
654
  type AuthInvalidateSessionsArgs = {
480
- userId: GenericId<"user">;
481
- except?: GenericId<"session">[];
655
+ userId: GenericId<"User">;
656
+ except?: GenericId<"Session">[];
482
657
  };
483
658
  /** Arguments for `auth.provider.signIn()`. */
484
659
  type AuthProviderSignInArgs = {
485
- accountId?: GenericId<"account">;
660
+ accountId?: GenericId<"Account">;
486
661
  params?: Record<string, Value | undefined>;
487
662
  };
488
663
  /** Return type of `auth.provider.signIn()` — user and session IDs, or `null` on failure. */
489
664
  type AuthProviderSignInResult = {
490
- userId: GenericId<"user">;
491
- sessionId: GenericId<"session">;
665
+ userId: GenericId<"User">;
666
+ sessionId: GenericId<"Session">;
492
667
  } | null;
493
- /** Server-side auth helpers available on enriched action contexts. */
668
+ /** Arguments for `auth.member.resolve()`. */
669
+ type AuthMemberResolveArgs = {
670
+ userId: GenericId<"User">;
671
+ groupId: GenericId<"Group">;
672
+ ancestry?: boolean;
673
+ roleIds?: string[];
674
+ grants?: string[];
675
+ maxDepth?: number;
676
+ };
677
+ /** Result of `auth.member.resolve()` — membership check with role and grant details. */
678
+ type AuthMemberResolveResult = {
679
+ ok: boolean;
680
+ membership: GenericDoc<GenericDataModel, "GroupMember"> | null;
681
+ matchedGroupId: GenericId<"Group"> | null;
682
+ roleIds: string[];
683
+ grants: string[];
684
+ missingGrants: string[];
685
+ depth: number | null;
686
+ isDirect: boolean;
687
+ isInherited: boolean;
688
+ traversedGroupIds: GenericId<"Group">[];
689
+ code?: "INVALID_ROLE_IDS";
690
+ invalidRoleIds?: string[];
691
+ };
692
+ /**
693
+ * Server-side auth helper methods injected into `ctx.auth` within provider actions.
694
+ *
695
+ * Provides programmatic access to account management, session lifecycle,
696
+ * membership resolution, and provider sign-in from within Convex actions
697
+ * that use {@link GenericActionCtxWithAuthConfig}.
698
+ *
699
+ * @see {@link GenericActionCtxWithAuthConfig}
700
+ *
701
+ * @example
702
+ * ```ts
703
+ * // Inside a credentials provider's authorize callback:
704
+ * const { account, user } = await ctx.auth.account.get(ctx, {
705
+ * provider: "password",
706
+ * account: { id: email },
707
+ * });
708
+ * ```
709
+ */
494
710
  type AuthServerHelpers = {
495
- account: {
711
+ /** Account management: create, retrieve, and update provider-linked accounts. */account: {
496
712
  create: (ctx: GenericActionCtx<any>, args: AuthCreateAccountArgs) => Promise<{
497
- account: GenericDoc<GenericDataModel, "account">;
498
- user: GenericDoc<GenericDataModel, "user">;
713
+ ok: true;
714
+ account: GenericDoc<GenericDataModel, "Account">;
715
+ user: GenericDoc<GenericDataModel, "User">;
499
716
  }>;
500
717
  get: (ctx: GenericActionCtx<any>, args: AuthRetrieveAccountArgs) => Promise<{
501
- account: GenericDoc<GenericDataModel, "account">;
502
- user: GenericDoc<GenericDataModel, "user">;
718
+ account: GenericDoc<GenericDataModel, "Account">;
719
+ user: GenericDoc<GenericDataModel, "User">;
720
+ }>;
721
+ update: (ctx: GenericActionCtx<any>, args: AuthUpdateAccountArgs) => Promise<{
722
+ ok: true;
723
+ accountId: GenericId<"Account">;
503
724
  }>;
504
- update: (ctx: GenericActionCtx<any>, args: AuthUpdateAccountArgs) => Promise<void>;
505
725
  };
506
726
  session: {
507
727
  current: (ctx: {
508
728
  auth: GenericActionCtx<GenericDataModel>["auth"];
509
- }) => Promise<GenericId<"session"> | null>;
510
- invalidate: (ctx: GenericActionCtx<any>, args: AuthInvalidateSessionsArgs) => Promise<void>;
729
+ }) => Promise<GenericId<"Session"> | null>;
730
+ invalidate: (ctx: GenericActionCtx<any>, args: AuthInvalidateSessionsArgs) => Promise<{
731
+ ok: true;
732
+ userId: GenericId<"User">;
733
+ except: GenericId<"Session">[];
734
+ }>;
735
+ };
736
+ member: {
737
+ resolve: (ctx: GenericActionCtx<any>, args: AuthMemberResolveArgs) => Promise<AuthMemberResolveResult>;
511
738
  };
512
739
  provider: {
513
740
  signIn: (ctx: GenericActionCtx<any>, provider: AuthProviderConfig, args: AuthProviderSignInArgs) => Promise<AuthProviderSignInResult>;
@@ -515,7 +742,9 @@ type AuthServerHelpers = {
515
742
  };
516
743
  /**
517
744
  * Your `ActionCtx` enriched with `ctx.auth.config` field with
518
- * the config passed to `Auth`.
745
+ * the config passed to `createAuth`.
746
+ *
747
+ * @typeParam DataModel - The Convex data model.
519
748
  */
520
749
  type GenericActionCtxWithAuthConfig<DataModel extends GenericDataModel> = GenericActionCtx<DataModel> & {
521
750
  auth: GenericActionCtx<DataModel>["auth"] & {
@@ -523,34 +752,51 @@ type GenericActionCtxWithAuthConfig<DataModel extends GenericDataModel> = Generi
523
752
  } & AuthServerHelpers;
524
753
  };
525
754
  /**
526
- * The config for the Convex Auth library, passed to `Auth`,
755
+ * The config for the Convex Auth library, passed to `createAuth`,
527
756
  * with defaults and initialized providers.
528
757
  *
529
758
  * See {@link ConvexAuthConfig}
530
759
  */
531
760
  type ConvexAuthMaterializedConfig = {
532
761
  providers: AuthProviderMaterializedConfig[];
533
- } & Pick<ConvexAuthConfig, "component" | "session" | "jwt" | "signIn" | "callbacks">;
762
+ } & Pick<ConvexAuthConfig, "component" | "session" | "jwt" | "signIn" | "callbacks" | "authorization">;
534
763
  /**
535
764
  * Materialized OAuth provider config (Arctic-based).
536
765
  *
537
766
  * Carries the Arctic provider instance along with scopes and profile config.
538
- * Produced by materializing an `OAuthProviderInstance` during `configDefaults`.
767
+ * Produced by materializing an `OAuthProviderInstance` during `configDefaults`.
539
768
  */
540
769
  interface OAuthMaterializedConfig {
770
+ /**
771
+ * Provider identifier (e.g. `"google"`, `"github"`).
772
+ * @readonly
773
+ */
541
774
  readonly id: string;
775
+ /**
776
+ * Discriminant for provider type routing.
777
+ * @readonly
778
+ */
542
779
  readonly type: "oauth";
543
- /** The Arctic provider instance. */
780
+ /**
781
+ * The Arctic provider instance.
782
+ * @readonly
783
+ */
544
784
  readonly provider: any;
545
- /** OAuth scopes to request. */
785
+ /**
786
+ * OAuth scopes to request.
787
+ * @readonly
788
+ */
546
789
  readonly scopes: string[];
547
- /** User-provided profile extraction callback. */
790
+ /**
791
+ * User-provided profile extraction callback.
792
+ * @readonly
793
+ */
548
794
  readonly profile?: (tokens: arctic0.OAuth2Tokens) => Promise<OAuthProfile>;
549
795
  /**
550
- * Allow linking accounts by email even if the email is unverified.
551
- * Use with caution — only enable for providers you trust.
796
+ * Account-linking policy for OAuth identities. Defaults to verified email linking.
797
+ * @readonly
552
798
  */
553
- readonly allowDangerousEmailAccountLinking?: boolean;
799
+ readonly accountLinking?: "verifiedEmail" | "none";
554
800
  }
555
801
  /**
556
802
  * Device authorization provider config (RFC 8628).
@@ -580,49 +826,14 @@ interface DeviceProviderConfig {
580
826
  /**
581
827
  * Materialized auth provider config — the fully resolved form stored at runtime.
582
828
  */
583
- type AuthProviderMaterializedConfig = OAuthMaterializedConfig | EmailConfig | PhoneConfig | ConvexCredentialsConfig | PasskeyProviderConfig | TotpProviderConfig | DeviceProviderConfig;
829
+ type AuthProviderMaterializedConfig = OAuthMaterializedConfig | EmailConfig | PhoneConfig | ConvexCredentialsConfig | PasskeyProviderConfig | TotpProviderConfig | DeviceProviderConfig | SSOProviderConfig;
584
830
  /**
585
- * Email delivery parameters passed to `EmailTransport.send`.
586
- */
587
- interface EmailMessage {
588
- /** Sender address (from `email.from` in your Auth config). */
589
- from: string;
590
- /** Recipient email address. */
591
- to: string;
592
- /** Email subject line. */
593
- subject: string;
594
- /** HTML body content. */
595
- html: string;
596
- }
597
- /**
598
- * Email transport configuration for the Auth library.
831
+ * Resolves to `true` when the providers list includes `SSO`, otherwise `false`.
599
832
  *
600
- * Provides a delivery mechanism for library-generated emails.
601
- * The library owns the email content; you provide the transport.
833
+ * Used to make `auth.sso` conditionally present on the `createAuth`
834
+ * return type it only appears when `new SSO()` is in the providers array.
602
835
  */
603
- interface EmailTransport {
604
- /** Sender address shown in the From field (e.g. "My App \<noreply@example.com\>"). */
605
- from: string;
606
- /**
607
- * Deliver an email. Called by the library for magic links.
608
- *
609
- * Receives the Convex action context as the first argument, enabling
610
- * use with Convex components like `@convex-dev/resend`:
611
- *
612
- * ```ts
613
- * send: (ctx, params) => resend.sendEmail(ctx, params)
614
- * ```
615
- *
616
- * For plain HTTP email APIs, ignore the `ctx` parameter:
617
- *
618
- * ```ts
619
- * send: async (_ctx, { from, to, subject, html }) => {
620
- * await fetch("https://api.resend.com/emails", { ... });
621
- * }
622
- * ```
623
- */
624
- send: (ctx: GenericActionCtx<any>, params: EmailMessage) => Promise<void>;
625
- }
836
+ type HasSSO<P extends AuthProviderConfig[]> = SSO extends P[number] ? true : false;
626
837
  /**
627
838
  * A single scope entry stored per API key.
628
839
  * Uses a resource:action pattern for structured permissions.
@@ -652,41 +863,6 @@ interface ScopeChecker {
652
863
  /** The raw scope entries from the key. */
653
864
  scopes: KeyScope[];
654
865
  }
655
- /**
656
- * Configuration for API key support on the Auth class.
657
- *
658
- * ```ts
659
- * const auth = new Auth(components.auth, {
660
- * providers: [github],
661
- * apiKeys: {
662
- * scopes: {
663
- * users: ["read", "list", "create", "delete"],
664
- * messages: ["read", "write"],
665
- * },
666
- * defaultRateLimit: { maxRequests: 1000, windowMs: 3600000 },
667
- * },
668
- * });
669
- * ```
670
- */
671
- interface ApiKeyConfig {
672
- /**
673
- * Define the available resource:action scopes for your API keys.
674
- * Keys can only be created with scopes that are a subset of these.
675
- */
676
- scopes?: Record<string, string[]>;
677
- /**
678
- * Default rate limit applied to new keys when not specified per-key.
679
- * Uses a token-bucket algorithm.
680
- */
681
- defaultRateLimit?: {
682
- maxRequests: number;
683
- windowMs: number;
684
- };
685
- /**
686
- * Key prefix. Defaults to `"sk_live_"`.
687
- */
688
- prefix?: string;
689
- }
690
866
  /**
691
867
  * An API key record as returned by `auth.key.list()` and `auth.key.get()`.
692
868
  * Never includes the raw key material — only the display prefix.
@@ -696,7 +872,7 @@ interface KeyRecord {
696
872
  _id: string;
697
873
  /** Owner user ID. */
698
874
  userId: string;
699
- /** Display prefix (e.g. `"sk_live_abc1"`). Safe to show in UIs. */
875
+ /** Display prefix (e.g. `"sk_abc1"`). Safe to show in UIs. */
700
876
  prefix: string;
701
877
  /** Human-readable name (e.g. "CI Pipeline"). */
702
878
  name: string;
@@ -715,16 +891,9 @@ interface KeyRecord {
715
891
  createdAt: number;
716
892
  /** `true` when the key has been revoked (soft-deleted). */
717
893
  revoked: boolean;
894
+ /** Arbitrary app-specific metadata attached to the key. */
895
+ metadata?: Record<string, unknown>;
718
896
  }
719
- /** Filter fields for `auth.user.list()`. All optional. */
720
- type UserWhere = {
721
- email?: string;
722
- phone?: string;
723
- isAnonymous?: boolean;
724
- name?: string;
725
- };
726
- /** Sortable fields for `auth.user.list()`. */
727
- type UserOrderBy = "_creationTime" | "name" | "email" | "phone";
728
897
  /**
729
898
  * Context injected into `auth.http.action()` and `auth.http.route()` handlers.
730
899
  *
@@ -760,95 +929,6 @@ interface CorsConfig {
760
929
  /** Allowed request headers. Defaults to `"Content-Type,Authorization"`. */
761
930
  headers?: string;
762
931
  }
763
- /**
764
- * Component function references required by core auth runtime.
765
- *
766
- * @internal Consumers should not depend on this shape — it may change
767
- * between minor versions. Pass `components.auth` directly to the `Auth` constructor.
768
- */
769
- type AuthComponentApi = {
770
- public: {
771
- userGetById: FunctionReference<"query", "internal">;
772
- userList: FunctionReference<"query", "internal">;
773
- userFindByVerifiedEmail: FunctionReference<"query", "internal">;
774
- userFindByVerifiedPhone: FunctionReference<"query", "internal">;
775
- userInsert: FunctionReference<"mutation", "internal">;
776
- userUpsert: FunctionReference<"mutation", "internal">;
777
- userPatch: FunctionReference<"mutation", "internal">;
778
- accountGet: FunctionReference<"query", "internal">;
779
- accountGetById: FunctionReference<"query", "internal">;
780
- accountInsert: FunctionReference<"mutation", "internal">;
781
- accountPatch: FunctionReference<"mutation", "internal">;
782
- accountDelete: FunctionReference<"mutation", "internal">;
783
- sessionCreate: FunctionReference<"mutation", "internal">;
784
- sessionGetById: FunctionReference<"query", "internal">;
785
- sessionDelete: FunctionReference<"mutation", "internal">;
786
- sessionListByUser: FunctionReference<"query", "internal">;
787
- verifierCreate: FunctionReference<"mutation", "internal">;
788
- verifierGetById: FunctionReference<"query", "internal">;
789
- verifierGetBySignature: FunctionReference<"query", "internal">;
790
- verifierPatch: FunctionReference<"mutation", "internal">;
791
- verifierDelete: FunctionReference<"mutation", "internal">;
792
- verificationCodeGetByAccountId: FunctionReference<"query", "internal">;
793
- verificationCodeGetByCode: FunctionReference<"query", "internal">;
794
- verificationCodeCreate: FunctionReference<"mutation", "internal">;
795
- verificationCodeDelete: FunctionReference<"mutation", "internal">;
796
- refreshTokenCreate: FunctionReference<"mutation", "internal">;
797
- refreshTokenGetById: FunctionReference<"query", "internal">;
798
- refreshTokenPatch: FunctionReference<"mutation", "internal">;
799
- refreshTokenGetChildren: FunctionReference<"query", "internal">;
800
- refreshTokenListBySession: FunctionReference<"query", "internal">;
801
- refreshTokenDeleteAll: FunctionReference<"mutation", "internal">;
802
- refreshTokenGetActive: FunctionReference<"query", "internal">;
803
- rateLimitGet: FunctionReference<"query", "internal">;
804
- rateLimitCreate: FunctionReference<"mutation", "internal">;
805
- rateLimitPatch: FunctionReference<"mutation", "internal">;
806
- rateLimitDelete: FunctionReference<"mutation", "internal">;
807
- groupCreate: FunctionReference<"mutation", "internal">;
808
- groupGet: FunctionReference<"query", "internal">;
809
- groupList: FunctionReference<"query", "internal">;
810
- groupUpdate: FunctionReference<"mutation", "internal">;
811
- groupDelete: FunctionReference<"mutation", "internal">;
812
- memberAdd: FunctionReference<"mutation", "internal">;
813
- memberGet: FunctionReference<"query", "internal">;
814
- memberList: FunctionReference<"query", "internal">;
815
- memberListByUser: FunctionReference<"query", "internal">;
816
- memberGetByGroupAndUser: FunctionReference<"query", "internal">;
817
- memberRemove: FunctionReference<"mutation", "internal">;
818
- memberUpdate: FunctionReference<"mutation", "internal">;
819
- inviteCreate: FunctionReference<"mutation", "internal">;
820
- inviteGet: FunctionReference<"query", "internal">;
821
- inviteList: FunctionReference<"query", "internal">;
822
- inviteAccept: FunctionReference<"mutation", "internal">;
823
- inviteRevoke: FunctionReference<"mutation", "internal">;
824
- keyInsert: FunctionReference<"mutation", "internal">;
825
- keyGetByHashedKey: FunctionReference<"query", "internal">;
826
- keyGetById: FunctionReference<"query", "internal">;
827
- keyList: FunctionReference<"query", "internal">;
828
- keyListByUserId: FunctionReference<"query", "internal">;
829
- keyPatch: FunctionReference<"mutation", "internal">;
830
- keyDelete: FunctionReference<"mutation", "internal">;
831
- passkeyInsert: FunctionReference<"mutation", "internal">;
832
- passkeyGetByCredentialId: FunctionReference<"query", "internal">;
833
- passkeyListByUserId: FunctionReference<"query", "internal">;
834
- passkeyUpdateCounter: FunctionReference<"mutation", "internal">;
835
- passkeyUpdateMeta: FunctionReference<"mutation", "internal">;
836
- passkeyDelete: FunctionReference<"mutation", "internal">;
837
- totpInsert: FunctionReference<"mutation", "internal", any, any>;
838
- totpGetVerifiedByUserId: FunctionReference<"query", "internal", any, any>;
839
- totpListByUserId: FunctionReference<"query", "internal", any, any>;
840
- totpGetById: FunctionReference<"query", "internal", any, any>;
841
- totpMarkVerified: FunctionReference<"mutation", "internal", any, any>;
842
- totpUpdateLastUsed: FunctionReference<"mutation", "internal", any, any>;
843
- totpDelete: FunctionReference<"mutation", "internal", any, any>;
844
- deviceInsert: FunctionReference<"mutation", "internal", any, any>;
845
- deviceGetByCodeHash: FunctionReference<"query", "internal", any, any>;
846
- deviceGetByUserCode: FunctionReference<"query", "internal", any, any>;
847
- deviceAuthorize: FunctionReference<"mutation", "internal", any, any>;
848
- deviceUpdateLastPolled: FunctionReference<"mutation", "internal", any, any>;
849
- deviceDelete: FunctionReference<"mutation", "internal", any, any>;
850
- };
851
- };
852
932
  /**
853
933
  * Convex document from a given table.
854
934
  */
@@ -856,12 +936,21 @@ type GenericDoc<DataModel extends GenericDataModel, TableName extends TableNames
856
936
  _id: GenericId<TableName>;
857
937
  _creationTime: number;
858
938
  };
859
- /**
860
- * @internal
861
- */
862
- type FunctionReferenceFromExport<Export> = Export extends RegisteredQuery<infer Visibility, infer Args, infer Output> ? FunctionReference<"query", Visibility, Args, ConvertReturnType<Output>> : Export extends RegisteredMutation<infer Visibility, infer Args, infer Output> ? FunctionReference<"mutation", Visibility, Args, ConvertReturnType<Output>> : Export extends RegisteredAction<infer Visibility, infer Args, infer Output> ? FunctionReference<"action", Visibility, Args, ConvertReturnType<Output>> : never;
863
- type ConvertReturnType<T> = UndefinedToNull<Awaited<T>>;
864
- type UndefinedToNull<T> = T extends void ? null : T;
939
+ /** Data model derived from the component schema. */
940
+ type AuthDataModel = DataModelFromSchemaDefinition<typeof _default>;
941
+ /** A document from any table in the auth component schema. */
942
+ type Doc<T extends TableNamesInDataModel<AuthDataModel>> = GenericDoc<AuthDataModel, T>;
943
+ /** A pair of JWT access token and refresh token. */
944
+ type Tokens = {
945
+ token: string;
946
+ refreshToken: string;
947
+ };
948
+ /** Session information returned after authentication. */
949
+ type SessionInfo = {
950
+ userId: GenericId<"User">;
951
+ sessionId: GenericId<"Session">;
952
+ tokens: Tokens | null;
953
+ };
865
954
  //#endregion
866
- export { ApiKeyConfig, AuthProviderConfig, AuthProviderMaterializedConfig, ConvexAuthConfig, ConvexAuthMaterializedConfig, ConvexCredentialsConfig, CorsConfig, DeviceProviderConfig, EmailConfig, EmailUserConfig, FunctionReferenceFromExport, GenericActionCtxWithAuthConfig, GenericDoc, HttpKeyContext, KeyRecord, KeyScope, OAuthProfile, PhoneConfig, PhoneUserConfig, ScopeChecker, UserOrderBy, UserWhere };
955
+ export { AuthAuthorizationConfig, AuthGrant, AuthProviderConfig, AuthRoleId, ConvexAuthConfig, ConvexCredentialsConfig, CorsConfig, DeviceProviderConfig, Doc, EmailConfig, EmailUserConfig, EnterprisePolicy, EnterprisePolicyPatch, GenericActionCtxWithAuthConfig, GenericDoc, HasSSO, HttpKeyContext, KeyRecord, KeyScope, OAuthProfile, PhoneConfig, PhoneUserConfig, ScopeChecker, SessionInfo };
867
956
  //# sourceMappingURL=types.d.ts.map