@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,870 +0,0 @@
1
- import { AuthProviderConfig, ConvexAuthConfig, CorsConfig, FunctionReferenceFromExport, HttpKeyContext, KeyScope, ScopeChecker, UserOrderBy, UserWhere } from "../types.js";
2
- import { Doc, KeyDoc, Tokens } from "./types.js";
3
- import * as convex_server16 from "convex/server";
4
- import { GenericActionCtx, GenericDataModel, HttpRouter } from "convex/server";
5
- import { GenericId } from "convex/values";
6
-
7
- //#region src/server/implementation/index.d.ts
8
- /**
9
- * The type of the signIn Convex Action returned from the auth() helper.
10
- *
11
- * This type is exported for implementors of other client integrations.
12
- * However it is not stable, and may change until this library reaches 1.0.
13
- */
14
- type SignInAction = FunctionReferenceFromExport<ReturnType<typeof Auth>["signIn"]>;
15
- /**
16
- * The type of the signOut Convex Action returned from the auth() helper.
17
- *
18
- * This type is exported for implementors of other client integrations.
19
- * However it is not stable, and may change until this library reaches 1.0.
20
- */
21
- type SignOutAction = FunctionReferenceFromExport<ReturnType<typeof Auth>["signOut"]>;
22
- /**
23
- * Configure the Convex Auth library. Returns an object with
24
- * functions and `auth` helper. You must export the functions
25
- * from `convex/auth.ts` to make them callable:
26
- *
27
- * ```ts filename="convex/auth.ts"
28
- * import { Auth } from "@robelest/convex-auth/component";
29
- * import { components } from "./_generated/api";
30
- *
31
- * export const { auth, signIn, signOut, store } = Auth({
32
- * component: components.auth,
33
- * providers: [],
34
- * });
35
- * ```
36
- *
37
- * @returns An object with fields you should reexport from your
38
- * `convex/auth.ts` file.
39
- */
40
- declare function Auth(config_: ConvexAuthConfig): {
41
- /**
42
- * Helper for configuring HTTP actions.
43
- */
44
- auth: {
45
- user: {
46
- /**
47
- * Get the current user's ID from the auth context, or `null` if
48
- * not signed in.
49
- *
50
- * @param ctx - Any Convex context with an `auth` field (query, mutation, or action).
51
- * @returns The user's `Id<"user">`, or `null` when unauthenticated.
52
- */
53
- current: (ctx: {
54
- auth: Auth;
55
- }) => Promise<GenericId<"user"> | null>;
56
- /**
57
- * Get the current user's ID, or throw if not signed in.
58
- * Use this when authentication is required.
59
- *
60
- * @param ctx - Any Convex context with an `auth` field.
61
- * @returns The user's `Id<"user">`.
62
- * @throws `ConvexError` with code `NOT_SIGNED_IN` when unauthenticated.
63
- */
64
- require: (ctx: {
65
- auth: Auth;
66
- }) => Promise<GenericId<"user">>;
67
- /**
68
- * Retrieve a user document by their ID.
69
- *
70
- * @param ctx - Convex context with `runQuery`.
71
- * @param userId - The user document ID.
72
- * @returns The user document, or `null` if not found.
73
- */
74
- get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, userId: string) => Promise<any>;
75
- /**
76
- * List users with optional filters, sorting, and pagination.
77
- *
78
- * @param opts.where - Optional filters (email, phone, name, anonymous).
79
- * @param opts.limit - Max users to return (default 50).
80
- * @param opts.cursor - Pagination cursor from a previous page.
81
- * @param opts.orderBy - Sort field.
82
- * @param opts.order - Sort direction.
83
- * @returns `{ items, nextCursor }`.
84
- */
85
- list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
86
- where?: UserWhere;
87
- limit?: number;
88
- cursor?: string | null;
89
- orderBy?: UserOrderBy;
90
- order?: "asc" | "desc";
91
- }) => Promise<any>;
92
- /**
93
- * Get the currently signed-in user's document, or `null` if not
94
- * signed in. Convenience combining `current()` + `get()`.
95
- *
96
- * @param ctx - Convex context with `auth` and `runQuery`.
97
- * @returns The user document, or `null` when unauthenticated.
98
- */
99
- viewer: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery"> & {
100
- auth: Auth;
101
- }) => Promise<any>;
102
- /**
103
- * Update a user document with partial data.
104
- *
105
- * @param ctx - Convex context with `runMutation`.
106
- * @param userId - The user document ID.
107
- * @param data - Partial data to merge into the user document.
108
- */
109
- patch: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, userId: string, data: Record<string, unknown>) => Promise<void>;
110
- /**
111
- * Query a user's group memberships.
112
- */
113
- group: {
114
- /**
115
- * List all groups a user belongs to. Returns member records which
116
- * include the `groupId`, `role`, `status`, and `extend` for each.
117
- *
118
- * This is a convenience wrapper around `auth.group.member.list`
119
- * with `where: { userId }`.
120
- */
121
- list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts: {
122
- userId: string;
123
- limit?: number;
124
- cursor?: string | null;
125
- order?: "asc" | "desc";
126
- }) => Promise<any>;
127
- /**
128
- * Look up a user's membership in a specific group. Returns the member
129
- * record (with role, status, extend) or `null` if the user is not
130
- * a member.
131
- */
132
- get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts: {
133
- userId: string;
134
- groupId: string;
135
- }) => Promise<any>;
136
- };
137
- };
138
- session: {
139
- /**
140
- * Get the current session ID from the auth context, or `null` if
141
- * not signed in.
142
- *
143
- * @param ctx - Any Convex context with an `auth` field.
144
- * @returns The session's `Id<"session">`, or `null` when unauthenticated.
145
- */
146
- current: (ctx: {
147
- auth: Auth;
148
- }) => Promise<GenericId<"session"> | null>;
149
- /**
150
- * Invalidate sessions for a user, optionally preserving specific sessions.
151
- *
152
- * @param ctx - Convex action context.
153
- * @param args.userId - The user whose sessions to invalidate.
154
- * @param args.except - Session IDs to preserve (e.g. the current session).
155
- */
156
- invalidate: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
157
- userId: GenericId<"user">;
158
- except?: GenericId<"session">[];
159
- }) => Promise<void>;
160
- };
161
- account: {
162
- /**
163
- * Create an account and user for a credentials provider.
164
- *
165
- * @param ctx - Convex action context.
166
- * @param args - Provider ID, account credentials, profile data, and link flags.
167
- * @returns `{ account, user }` — the created account and user documents.
168
- */
169
- create: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
170
- provider: string;
171
- account: {
172
- id: string;
173
- secret?: string;
174
- };
175
- profile: Record<string, unknown>;
176
- shouldLinkViaEmail?: boolean;
177
- shouldLinkViaPhone?: boolean;
178
- }) => Promise<{
179
- account: Doc<"account">;
180
- user: Doc<"user">;
181
- }>;
182
- /**
183
- * Retrieve an account and user for a credentials provider.
184
- *
185
- * @param ctx - Convex action context.
186
- * @param args - Provider ID and account credentials (id, optional secret).
187
- * @returns `{ account, user }` — the matched account and user documents.
188
- * @throws `ConvexError` with code `ACCOUNT_NOT_FOUND` when no match exists.
189
- */
190
- get: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
191
- provider: string;
192
- account: {
193
- id: string;
194
- secret?: string;
195
- };
196
- }) => Promise<{
197
- account: Doc<"account">;
198
- user: Doc<"user">;
199
- }>;
200
- /**
201
- * Update account credentials (secret) for an existing account.
202
- *
203
- * @param ctx - Convex action context.
204
- * @param args - Provider ID and new account credentials (id + secret).
205
- */
206
- update: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
207
- provider: string;
208
- account: {
209
- id: string;
210
- secret: string;
211
- };
212
- }) => Promise<void>;
213
- };
214
- provider: {
215
- /**
216
- * Sign in via another provider, typically from a credentials flow.
217
- *
218
- * @param ctx - Convex action context.
219
- * @param provider - The provider config to sign in with.
220
- * @param args - Optional account ID and params.
221
- * @returns `{ userId, sessionId }` on success, or `null`.
222
- */
223
- signIn: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, provider: AuthProviderConfig, args: {
224
- accountId?: GenericId<"account">;
225
- params?: Record<string, unknown>;
226
- }) => Promise<{
227
- userId: GenericId<"user">;
228
- sessionId: GenericId<"session">;
229
- } | null>;
230
- };
231
- /**
232
- * Hierarchical group management. Groups can nest arbitrarily deep
233
- * via `parentGroupId`. A root group has no parent.
234
- *
235
- * ```ts
236
- * const groupId = await auth.group.create(ctx, { name: "Acme Corp" });
237
- * const subGroupId = await auth.group.create(ctx, {
238
- * name: "Engineering",
239
- * parentGroupId: groupId,
240
- * });
241
- * ```
242
- */
243
- group: {
244
- /**
245
- * Create a new group. Omit `parentGroupId` for a root-level group,
246
- * or provide it to create a nested group.
247
- *
248
- * @returns The ID of the newly created group.
249
- */
250
- create: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: {
251
- name: string;
252
- slug?: string;
253
- type?: string;
254
- parentGroupId?: string;
255
- tags?: Array<{
256
- key: string;
257
- value: string;
258
- }>;
259
- extend?: Record<string, unknown>;
260
- }) => Promise<string>;
261
- /**
262
- * Retrieve a group by its ID. Returns `null` if not found.
263
- */
264
- get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, groupId: string) => Promise<any>;
265
- /**
266
- * List groups with optional filtering, sorting, and pagination.
267
- *
268
- * Empty `where` returns **all** groups.
269
- *
270
- * ```ts
271
- * // All groups of type "team"
272
- * await auth.group.list(ctx, { where: { type: "team" } });
273
- *
274
- * // Paginated
275
- * const page1 = await auth.group.list(ctx, { limit: 10 });
276
- * const page2 = await auth.group.list(ctx, { limit: 10, cursor: page1.nextCursor });
277
- * ```
278
- */
279
- list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
280
- where?: {
281
- slug?: string;
282
- type?: string;
283
- parentGroupId?: string;
284
- name?: string;
285
- isRoot?: boolean;
286
- tagsAll?: Array<{
287
- key: string;
288
- value: string;
289
- }>;
290
- tagsAny?: Array<{
291
- key: string;
292
- value: string;
293
- }>;
294
- };
295
- limit?: number;
296
- cursor?: string | null;
297
- orderBy?: "_creationTime" | "name" | "slug" | "type";
298
- order?: "asc" | "desc";
299
- }) => Promise<any>;
300
- /**
301
- * Update a group's fields (name, slug, tags, extend, parentGroupId).
302
- */
303
- update: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, groupId: string, data: Record<string, unknown>) => Promise<void>;
304
- /**
305
- * Delete a group and cascade to all descendants. Deletes child groups
306
- * (recursively), all members, and all invites for this group and its
307
- * descendants.
308
- */
309
- delete: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, groupId: string) => Promise<void>;
310
- /**
311
- * Manage group membership. A member links a user to a group with an
312
- * application-defined role string (e.g. "owner", "admin", "member").
313
- *
314
- * The auth component stores roles but does not enforce access control.
315
- * Your application defines what each role means.
316
- */
317
- member: {
318
- /**
319
- * Add a user as a member of a group.
320
- *
321
- * @param data.groupId - The group to add the member to.
322
- * @param data.userId - The user to add.
323
- * @param data.role - Application-defined role (e.g. "owner", "admin", "member").
324
- * @param data.status - Optional membership status (e.g. "active", "suspended").
325
- * @param data.extend - Optional arbitrary JSON extension data.
326
- * @throws ConvexError with code `DUPLICATE_MEMBERSHIP` if the user is
327
- * already a member of the target group.
328
- * @returns The ID of the new member record.
329
- */
330
- add: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: {
331
- groupId: string;
332
- userId: string;
333
- role?: string;
334
- status?: string;
335
- extend?: Record<string, unknown>;
336
- }) => Promise<string>;
337
- /**
338
- * Retrieve a member record by its ID. Returns `null` if not found.
339
- */
340
- get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, memberId: string) => Promise<any>;
341
- /**
342
- * List members with optional filtering, sorting, and pagination.
343
- *
344
- * ```ts
345
- * // All members of a group
346
- * await auth.group.member.list(ctx, { where: { groupId } });
347
- *
348
- * // Admins only
349
- * await auth.group.member.list(ctx, { where: { groupId, role: "admin" } });
350
- * ```
351
- */
352
- list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
353
- where?: {
354
- groupId?: string;
355
- userId?: string;
356
- role?: string;
357
- status?: string;
358
- };
359
- limit?: number;
360
- cursor?: string | null;
361
- orderBy?: "_creationTime" | "role" | "status";
362
- order?: "asc" | "desc";
363
- }) => Promise<any>;
364
- /**
365
- * Remove a member from a group by deleting the member record.
366
- */
367
- remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, memberId: string) => Promise<void>;
368
- /**
369
- * Update a member's fields (role, status, extend).
370
- *
371
- * ```ts
372
- * await auth.group.member.update(ctx, memberId, { role: "admin" });
373
- * ```
374
- */
375
- update: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, memberId: string, data: Record<string, unknown>) => Promise<void>;
376
- };
377
- };
378
- /**
379
- * Manage platform-level invitations.
380
- *
381
- * Invites can optionally target a group by setting `groupId`, but they do
382
- * not require groups and can be used in apps with user-only collaboration.
383
- */
384
- invite: {
385
- /**
386
- * Create a new invitation.
387
- *
388
- * @param data.groupId - Optional group to invite the user into.
389
- * @param data.invitedByUserId - Optional user sending the invitation
390
- * (omit for CLI-generated invites).
391
- * @param data.email - Optional email of the invitee (omit for
392
- * CLI-generated invite links where the email is unknown upfront).
393
- * @param data.tokenHash - Hashed token for secure acceptance.
394
- * @param data.role - Optional role to assign on acceptance.
395
- * @param data.status - Initial status (typically "pending").
396
- * @param data.expiresTime - Optional expiration timestamp (omit for
397
- * single-use, non-expiring invites).
398
- * @param data.extend - Optional arbitrary JSON extension data.
399
- * @throws ConvexError with code `DUPLICATE_INVITE` if a pending invite
400
- * already exists for this email and scope.
401
- * @returns The ID of the new invite record.
402
- */
403
- create: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: {
404
- groupId?: string;
405
- invitedByUserId?: string;
406
- email?: string;
407
- tokenHash: string;
408
- role?: string;
409
- status: "pending" | "accepted" | "revoked" | "expired";
410
- expiresTime?: number;
411
- extend?: Record<string, unknown>;
412
- }) => Promise<string>;
413
- /**
414
- * Retrieve an invite by its ID. Returns `null` if not found.
415
- */
416
- get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, inviteId: string) => Promise<any>;
417
- /**
418
- * List invites with optional filtering, sorting, and pagination.
419
- *
420
- * ```ts
421
- * // Pending invites for a group
422
- * await auth.invite.list(ctx, { where: { groupId, status: "pending" } });
423
- * ```
424
- */
425
- list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
426
- where?: {
427
- tokenHash?: string;
428
- groupId?: string;
429
- status?: "pending" | "accepted" | "revoked" | "expired";
430
- email?: string;
431
- invitedByUserId?: string;
432
- role?: string;
433
- acceptedByUserId?: string;
434
- };
435
- limit?: number;
436
- cursor?: string | null;
437
- orderBy?: "_creationTime" | "status" | "email" | "expiresTime" | "acceptedTime";
438
- order?: "asc" | "desc";
439
- }) => Promise<any>;
440
- /**
441
- * Accept an invitation. Marks the invite as "accepted" and records
442
- * the timestamp. If the invite has a group, the caller is responsible
443
- * for creating the member record via `auth.group.member.add` in the
444
- * same Convex mutation for transactional safety.
445
- *
446
- * @param ctx - Convex context with `runMutation`.
447
- * @param inviteId - The invite document ID.
448
- * @param acceptedByUserId - User accepting the invite (recorded for audit).
449
- * @throws `ConvexError` with code `INVITE_NOT_FOUND` when the invite does not exist.
450
- * @throws `ConvexError` with code `INVITE_NOT_PENDING` when the invite is not in `pending` status.
451
- *
452
- * @example
453
- * ```ts
454
- * export const acceptInvite = mutation({
455
- * args: { inviteId: v.string() },
456
- * handler: async (ctx, { inviteId }) => {
457
- * const userId = await auth.user.require(ctx);
458
- * const invite = await auth.invite.get(ctx, inviteId);
459
- * if (!invite) throw new Error("Invite not found");
460
- *
461
- * await auth.invite.accept(ctx, inviteId);
462
- * if (invite.groupId) {
463
- * await auth.group.member.add(ctx, {
464
- * groupId: invite.groupId,
465
- * userId,
466
- * role: invite.role,
467
- * });
468
- * }
469
- * },
470
- * });
471
- * ```
472
- */
473
- accept: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, inviteId: string, acceptedByUserId?: string) => Promise<void>;
474
- /**
475
- * Revoke a pending invitation.
476
- *
477
- * @param ctx - Convex context with `runMutation`.
478
- * @param inviteId - The invite document ID.
479
- * @throws `ConvexError` with code `INVITE_NOT_FOUND` when the invite does not exist.
480
- * @throws `ConvexError` with code `INVITE_NOT_PENDING` when the invite is not in `pending` status.
481
- */
482
- revoke: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, inviteId: string) => Promise<void>;
483
- };
484
- /**
485
- * Manage passkey credentials for users.
486
- *
487
- * ```ts
488
- * const passkeys = await auth.passkey.list(ctx, { userId });
489
- * await auth.passkey.rename(ctx, passkeyId, "MacBook Touch ID");
490
- * await auth.passkey.remove(ctx, passkeyId);
491
- * ```
492
- */
493
- passkey: {
494
- /**
495
- * List all passkeys for a user.
496
- *
497
- * @param opts.userId - The user whose passkeys to list.
498
- * @returns Array of passkey records with credentialId, name, deviceType,
499
- * backedUp, createdAt, and lastUsedAt.
500
- */
501
- list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts: {
502
- userId: string;
503
- }) => Promise<any>;
504
- /**
505
- * Rename a passkey (set a user-friendly display name).
506
- *
507
- * @param passkeyId - The passkey document ID.
508
- * @param name - New display name (e.g. "MacBook Touch ID").
509
- */
510
- rename: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, passkeyId: string, name: string) => Promise<void>;
511
- /**
512
- * Delete a passkey credential.
513
- *
514
- * @param passkeyId - The passkey document ID to remove.
515
- */
516
- remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, passkeyId: string) => Promise<void>;
517
- };
518
- /**
519
- * Manage TOTP two-factor authentication enrollments for users.
520
- *
521
- * ```ts
522
- * const enrollments = await auth.totp.list(ctx, { userId });
523
- * await auth.totp.remove(ctx, totpId);
524
- * ```
525
- */
526
- totp: {
527
- /**
528
- * List all TOTP enrollments for a user.
529
- *
530
- * @param opts.userId - The user whose enrollments to list.
531
- * @returns Array of TOTP enrollment records.
532
- */
533
- list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts: {
534
- userId: string;
535
- }) => Promise<any>;
536
- /**
537
- * Delete a TOTP enrollment.
538
- *
539
- * @param totpId - The TOTP document ID to remove.
540
- */
541
- remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, totpId: string) => Promise<void>;
542
- };
543
- /**
544
- * Manage API keys for programmatic access.
545
- *
546
- * Keys use SHA-256 hashing (via `@oslojs/crypto`) and support
547
- * scoped resource:action permissions with optional per-key rate limiting.
548
- *
549
- * ```ts
550
- * const { keyId, raw } = await auth.key.create(ctx, {
551
- * userId,
552
- * name: "CI Pipeline",
553
- * scopes: [{ resource: "users", actions: ["read", "list"] }],
554
- * });
555
- * // raw = "sk_live_abc123..." — show once, never stored
556
- *
557
- * const result = await auth.key.verify(ctx, rawKey);
558
- * result.scopes.can("users", "read"); // true
559
- * ```
560
- */
561
- key: {
562
- /**
563
- * Create a new API key. Returns the raw key **once** — it cannot
564
- * be retrieved again after creation.
565
- *
566
- * @param opts.userId - The user this key belongs to.
567
- * @param opts.name - Human-readable name (e.g. "CI Pipeline").
568
- * @param opts.scopes - Resource:action permissions for this key.
569
- * @param opts.rateLimit - Optional per-key rate limit override.
570
- * @param opts.expiresAt - Optional expiration timestamp.
571
- * @returns `{ keyId, raw }` where `raw` is the full key string.
572
- */
573
- create: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, opts: {
574
- userId: string;
575
- name: string;
576
- scopes: KeyScope[];
577
- rateLimit?: {
578
- maxRequests: number;
579
- windowMs: number;
580
- };
581
- expiresAt?: number;
582
- }) => Promise<{
583
- keyId: string;
584
- raw: string;
585
- }>;
586
- /**
587
- * Verify a raw API key string. Returns the userId and a scope checker
588
- * if the key is valid, not revoked, not expired, and not rate-limited.
589
- *
590
- * Also updates `lastUsedAt` and rate limit state as a side effect.
591
- *
592
- * @throws Error if the key is invalid, revoked, expired, or rate-limited.
593
- */
594
- verify: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, rawKey: string) => Promise<{
595
- userId: string;
596
- keyId: string;
597
- scopes: ScopeChecker;
598
- }>;
599
- /**
600
- * List API keys with optional filtering, sorting, and pagination.
601
- * Never includes the raw key — only the display prefix.
602
- *
603
- * ```ts
604
- * // All keys for a user
605
- * await auth.key.list(ctx, { where: { userId } });
606
- *
607
- * // Only active (non-revoked)
608
- * await auth.key.list(ctx, { where: { userId, revoked: false } });
609
- * ```
610
- */
611
- list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
612
- where?: {
613
- userId?: string;
614
- revoked?: boolean;
615
- name?: string;
616
- prefix?: string;
617
- };
618
- limit?: number;
619
- cursor?: string | null;
620
- orderBy?: "_creationTime" | "name" | "lastUsedAt" | "expiresAt" | "revoked";
621
- order?: "asc" | "desc";
622
- }) => Promise<any>;
623
- /**
624
- * Get a single API key by its document ID.
625
- * Returns `null` if not found.
626
- */
627
- get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, keyId: string) => Promise<KeyDoc | null>;
628
- /**
629
- * Update an API key's metadata (name, scopes, rate limit).
630
- */
631
- update: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, keyId: string, data: {
632
- name?: string;
633
- scopes?: KeyScope[];
634
- rateLimit?: {
635
- maxRequests: number;
636
- windowMs: number;
637
- };
638
- }) => Promise<void>;
639
- /**
640
- * Revoke an API key (soft delete). The key record is preserved
641
- * for audit purposes but can no longer be used for authentication.
642
- */
643
- revoke: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, keyId: string) => Promise<void>;
644
- /**
645
- * Hard delete an API key record.
646
- */
647
- remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, keyId: string) => Promise<void>;
648
- };
649
- /**
650
- * HTTP namespace — route registration and Bearer-authenticated endpoints.
651
- */
652
- http: {
653
- /**
654
- * Register core HTTP routes for JWT verification and OAuth sign-in.
655
- *
656
- * ```ts
657
- * import { httpRouter } from "convex/server";
658
- * import { auth } from "./auth";
659
- *
660
- * const http = httpRouter();
661
- *
662
- * auth.http.add(http);
663
- *
664
- * export default http;
665
- * ```
666
- *
667
- * The following routes are handled always:
668
- *
669
- * - `/.well-known/openid-configuration`
670
- * - `/.well-known/jwks.json`
671
- *
672
- * The following routes are handled if OAuth is configured:
673
- *
674
- * - `/api/auth/signin/*`
675
- * - `/api/auth/callback/*`
676
- *
677
- * @param http your HTTP router
678
- */
679
- add: (http: HttpRouter) => void;
680
- /**
681
- * Wrap an HTTP action handler with Bearer token authentication.
682
- *
683
- * Extracts the `Authorization: Bearer <key>` header, verifies the
684
- * API key via `auth.key.verify()`, and injects `ctx.key` with the
685
- * verified key info. Returns structured JSON error responses for
686
- * missing/invalid/revoked/expired/rate-limited keys.
687
- *
688
- * If the handler returns a plain object, it is auto-wrapped in a
689
- * `200 JSON` response. If it returns a `Response`, CORS headers
690
- * are merged and the response is passed through.
691
- *
692
- * ```ts
693
- * const handler = auth.http.action(async (ctx, request) => {
694
- * const data = await ctx.runQuery(api.data.get, { userId: ctx.key.userId });
695
- * return { data };
696
- * });
697
- * http.route({ path: "/api/data", method: "GET", handler });
698
- * ```
699
- *
700
- * @param handler - Receives enriched `ctx` (with `ctx.key`) and the raw `Request`.
701
- * @param options.scope - Optional scope check; returns 403 if the key lacks permission.
702
- * @param options.cors - CORS config; defaults to permissive (`*`).
703
- */
704
- action: (handler: (ctx: GenericActionCtx<GenericDataModel> & HttpKeyContext, request: Request) => Promise<Response | Record<string, unknown>>, options?: {
705
- scope?: {
706
- resource: string;
707
- action: string;
708
- };
709
- cors?: CorsConfig;
710
- }) => convex_server16.PublicHttpAction;
711
- /**
712
- * Register a Bearer-authenticated route **and** its OPTIONS preflight
713
- * in a single call.
714
- *
715
- * ```ts
716
- * auth.http.route(http, {
717
- * path: "/api/messages",
718
- * method: "POST",
719
- * handler: async (ctx, request) => {
720
- * const { body } = await request.json();
721
- * await ctx.runMutation(internal.messages.sendAsUser, {
722
- * userId: ctx.key.userId,
723
- * body,
724
- * });
725
- * return { success: true };
726
- * },
727
- * });
728
- * ```
729
- *
730
- * @param http - The Convex HTTP router.
731
- * @param routeConfig.path - The URL path to match.
732
- * @param routeConfig.method - HTTP method (GET, POST, PUT, PATCH, DELETE).
733
- * @param routeConfig.handler - Receives enriched `ctx` (with `ctx.key`) and the raw `Request`.
734
- * @param routeConfig.scope - Optional scope check; returns 403 if the key lacks permission.
735
- * @param routeConfig.cors - CORS config; defaults to permissive (`*`).
736
- */
737
- route: (http: HttpRouter, routeConfig: {
738
- path: string;
739
- method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
740
- handler: (ctx: GenericActionCtx<GenericDataModel> & HttpKeyContext, request: Request) => Promise<Response | Record<string, unknown>>;
741
- scope?: {
742
- resource: string;
743
- action: string;
744
- };
745
- cors?: CorsConfig;
746
- }) => void;
747
- };
748
- };
749
- /**
750
- * Action called by the client to sign the user in.
751
- *
752
- * Also used for refreshing the session.
753
- */
754
- signIn: convex_server16.RegisteredAction<"public", {
755
- provider?: string | undefined;
756
- verifier?: string | undefined;
757
- params?: any;
758
- refreshToken?: string | undefined;
759
- calledBy?: string | undefined;
760
- }, Promise<{
761
- redirect?: string;
762
- verifier?: string;
763
- tokens?: Tokens | null;
764
- started?: boolean;
765
- options?: Record<string, any>;
766
- totpRequired?: boolean;
767
- totpSetup?: {
768
- uri: string;
769
- secret: string;
770
- totpId: string;
771
- };
772
- deviceCode?: {
773
- deviceCode: string;
774
- userCode: string;
775
- verificationUri: string;
776
- verificationUriComplete: string;
777
- expiresIn: number;
778
- interval: number;
779
- };
780
- }>>;
781
- /**
782
- * Action called by the client to invalidate the current session.
783
- */
784
- signOut: convex_server16.RegisteredAction<"public", {}, Promise<void>>;
785
- /**
786
- * Internal mutation used by the library to read and write
787
- * to the database during signin and signout.
788
- */
789
- store: convex_server16.RegisteredMutation<"internal", {
790
- args: {
791
- sessionId?: string | undefined;
792
- type: "signIn";
793
- userId: string;
794
- generateTokens: boolean;
795
- } | {
796
- type: "signOut";
797
- } | {
798
- type: "refreshSession";
799
- refreshToken: string;
800
- } | {
801
- provider?: string | undefined;
802
- verifier?: string | undefined;
803
- type: "verifyCodeAndSignIn";
804
- params: any;
805
- generateTokens: boolean;
806
- allowExtraProviders: boolean;
807
- } | {
808
- type: "verifier";
809
- } | {
810
- type: "verifierSignature";
811
- verifier: string;
812
- signature: string;
813
- } | {
814
- type: "userOAuth";
815
- provider: string;
816
- providerAccountId: string;
817
- signature: string;
818
- profile: any;
819
- } | {
820
- email?: string | undefined;
821
- phone?: string | undefined;
822
- accountId?: string | undefined;
823
- type: "createVerificationCode";
824
- expirationTime: number;
825
- provider: string;
826
- code: string;
827
- allowExtraProviders: boolean;
828
- } | {
829
- shouldLinkViaEmail?: boolean | undefined;
830
- shouldLinkViaPhone?: boolean | undefined;
831
- type: "createAccountFromCredentials";
832
- provider: string;
833
- account: {
834
- secret?: string | undefined;
835
- id: string;
836
- };
837
- profile: any;
838
- } | {
839
- type: "retrieveAccountWithCredentials";
840
- provider: string;
841
- account: {
842
- secret?: string | undefined;
843
- id: string;
844
- };
845
- } | {
846
- type: "modifyAccount";
847
- provider: string;
848
- account: {
849
- id: string;
850
- secret: string;
851
- };
852
- } | {
853
- except?: string[] | undefined;
854
- type: "invalidateSessions";
855
- userId: string;
856
- };
857
- }, Promise<string | void | {
858
- userId: GenericId<"user">;
859
- sessionId: GenericId<"session">;
860
- } | {
861
- token: string;
862
- refreshToken: string;
863
- } | {
864
- account: Doc<"account">;
865
- user: Doc<"user">;
866
- } | null>>;
867
- };
868
- //#endregion
869
- export { Auth, SignInAction, SignOutAction };
870
- //# sourceMappingURL=index.d.ts.map