@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,620 +0,0 @@
1
- /**
2
- * Server-side WebAuthn ceremony logic for passkey authentication.
3
- *
4
- * Handles the four phases of the WebAuthn flow:
5
- * 1. register-options — generate PublicKeyCredentialCreationOptions
6
- * 2. register-verify — verify attestation and store credential
7
- * 3. auth-options — generate PublicKeyCredentialRequestOptions
8
- * 4. auth-verify — verify assertion signature and sign in
9
- *
10
- * Uses `@oslojs/webauthn` for attestation/assertion parsing and
11
- * `@oslojs/crypto` for signature verification.
12
- */
13
-
14
- import {
15
- parseAttestationObject,
16
- parseClientDataJSON,
17
- parseAuthenticatorData,
18
- createAssertionSignatureMessage,
19
- ClientDataType,
20
- coseAlgorithmES256,
21
- coseAlgorithmRS256,
22
- COSEKeyType,
23
- } from "@oslojs/webauthn";
24
- import {
25
- p256,
26
- verifyECDSASignature,
27
- decodeSEC1PublicKey,
28
- decodePKIXECDSASignature,
29
- } from "@oslojs/crypto/ecdsa";
30
- import {
31
- RSAPublicKey,
32
- decodePKCS1RSAPublicKey,
33
- sha256ObjectIdentifier,
34
- verifyRSASSAPKCS1v15Signature,
35
- } from "@oslojs/crypto/rsa";
36
- import { sha256 } from "@oslojs/crypto/sha2";
37
- import {
38
- encodeBase64urlNoPadding,
39
- decodeBase64urlIgnorePadding,
40
- } from "@oslojs/encoding";
41
- import {
42
- PasskeyProviderConfig,
43
- GenericActionCtxWithAuthConfig,
44
- } from "../types";
45
- import {
46
- AuthDataModel,
47
- SessionInfo,
48
- queryUserById,
49
- queryUserByVerifiedEmail,
50
- queryPasskeysByUserId,
51
- queryPasskeyByCredentialId,
52
- queryVerifierById,
53
- mutatePasskeyInsert,
54
- mutatePasskeyUpdateCounter,
55
- mutateVerifierDelete,
56
- } from "./types";
57
- import { callSignIn, callVerifier } from "./mutations/index";
58
- import { callVerifierSignature } from "./mutations/signature";
59
- import { authDb } from "./db";
60
- import { throwAuthError } from "../errors";
61
-
62
-
63
- type EnrichedActionCtx = GenericActionCtxWithAuthConfig<AuthDataModel>;
64
-
65
- /**
66
- * Resolve passkey relying party options from provider config and environment.
67
- */
68
- function resolveRpOptions(provider: PasskeyProviderConfig) {
69
- // WebAuthn RP ID and origin must match the *frontend* domain, not the
70
- // Convex backend. SITE_URL is the canonical frontend URL
71
- // (e.g. "http://localhost:3000" in dev, "https://myapp.com" in prod).
72
- // CONVEX_SITE_URL points to the Convex cloud HTTP actions endpoint and
73
- // must NOT be used here — the browser would reject the credential
74
- // because the RP ID wouldn't match the page origin.
75
- const siteUrl = process.env.SITE_URL;
76
- if (!siteUrl && !provider.options.rpId) {
77
- throwAuthError(
78
- "PASSKEY_MISSING_CONFIG",
79
- "Passkey provider requires SITE_URL env var (your frontend URL) " +
80
- "or explicit rpId / origin in the provider config. " +
81
- "CONVEX_SITE_URL cannot be used because WebAuthn RP ID must match the frontend domain.",
82
- );
83
- }
84
- const siteHostname = siteUrl ? new URL(siteUrl).hostname : undefined;
85
-
86
- return {
87
- rpName: provider.options.rpName ?? siteHostname ?? "localhost",
88
- rpId: provider.options.rpId ?? siteHostname ?? "localhost",
89
- origin: provider.options.origin ?? siteUrl ?? "http://localhost",
90
- attestation: provider.options.attestation ?? "none",
91
- userVerification: provider.options.userVerification ?? "required",
92
- residentKey: provider.options.residentKey ?? "preferred",
93
- authenticatorAttachment: provider.options.authenticatorAttachment,
94
- algorithms: provider.options.algorithms ?? [coseAlgorithmES256, coseAlgorithmRS256],
95
- challengeExpirationMs: provider.options.challengeExpirationMs ?? 300_000,
96
- };
97
- }
98
-
99
- /**
100
- * Generate a cryptographically random challenge.
101
- */
102
- function generateChallenge(): Uint8Array {
103
- const challenge = new Uint8Array(32);
104
- crypto.getRandomValues(challenge);
105
- return challenge;
106
- }
107
-
108
- /**
109
- * Hash a challenge for storage in the verifier table's `signature` field.
110
- */
111
- function hashChallenge(challenge: Uint8Array): string {
112
- return encodeBase64urlNoPadding(new Uint8Array(sha256(challenge)));
113
- }
114
-
115
- // ============================================================================
116
- // Registration flow
117
- // ============================================================================
118
-
119
- /**
120
- * Phase 1: Generate registration options.
121
- *
122
- * Requires an authenticated user — passkey registration always adds a
123
- * credential to an existing account. The userId is taken from the
124
- * current session identity.
125
- */
126
- async function handleRegisterOptions(
127
- ctx: EnrichedActionCtx,
128
- provider: PasskeyProviderConfig,
129
- params: Record<string, any>,
130
- ): Promise<{
131
- kind: "passkeyOptions";
132
- options: Record<string, any>;
133
- verifier: string;
134
- }> {
135
- // Passkey registration requires an authenticated user
136
- const identity = await ctx.auth.getUserIdentity();
137
- if (identity === null) {
138
- throwAuthError("PASSKEY_AUTH_REQUIRED");
139
- }
140
- const [userId] = identity.subject.split("|");
141
-
142
- const rp = resolveRpOptions(provider);
143
- const challenge = generateChallenge();
144
- const challengeHash = hashChallenge(challenge);
145
-
146
- // Store the challenge hash in the verifier table
147
- const verifier = await callVerifier(ctx);
148
- await callVerifierSignature(ctx, {
149
- verifier,
150
- signature: challengeHash,
151
- });
152
-
153
- // Get the user's profile for credential metadata
154
- const user = await queryUserById(ctx, userId!);
155
- const userName = params.userName ?? user?.email ?? "user";
156
- const userDisplayName = params.userDisplayName ?? user?.name ?? userName;
157
-
158
- // Collect existing credentials to prevent re-registration
159
- const existing = await queryPasskeysByUserId(ctx, userId!);
160
- const excludeCredentials = existing.map((pk) => ({
161
- id: pk.credentialId,
162
- transports: pk.transports,
163
- }));
164
-
165
- // User handle is derived from the Convex userId
166
- const userHandle = encodeBase64urlNoPadding(
167
- new TextEncoder().encode(userId!),
168
- );
169
-
170
- const options = {
171
- rp: {
172
- name: rp.rpName,
173
- id: rp.rpId,
174
- },
175
- user: {
176
- id: userHandle,
177
- name: userName,
178
- displayName: userDisplayName,
179
- },
180
- challenge: encodeBase64urlNoPadding(challenge),
181
- pubKeyCredParams: rp.algorithms.map((alg) => ({
182
- type: "public-key" as const,
183
- alg,
184
- })),
185
- timeout: rp.challengeExpirationMs,
186
- attestation: rp.attestation,
187
- authenticatorSelection: {
188
- residentKey: rp.residentKey,
189
- requireResidentKey: rp.residentKey === "required",
190
- userVerification: rp.userVerification,
191
- ...(rp.authenticatorAttachment
192
- ? { authenticatorAttachment: rp.authenticatorAttachment }
193
- : {}),
194
- },
195
- excludeCredentials,
196
- };
197
-
198
- return { kind: "passkeyOptions", options, verifier };
199
- }
200
-
201
- /**
202
- * Phase 2: Verify registration attestation and store the credential.
203
- *
204
- * Requires an authenticated user. Parses the attestation, verifies the
205
- * challenge, extracts the public key, creates an account + passkey record
206
- * linked to the current user, and returns auth tokens.
207
- */
208
- async function handleRegisterVerify(
209
- ctx: EnrichedActionCtx,
210
- provider: PasskeyProviderConfig,
211
- params: Record<string, any>,
212
- verifierValue: string | undefined,
213
- ): Promise<{ kind: "signedIn"; signedIn: SessionInfo | null }> {
214
- // Passkey registration requires an authenticated user
215
- const identity = await ctx.auth.getUserIdentity();
216
- if (identity === null) {
217
- throwAuthError("PASSKEY_AUTH_REQUIRED");
218
- }
219
- const [userId] = identity.subject.split("|");
220
-
221
- const rp = resolveRpOptions(provider);
222
-
223
- if (!verifierValue) {
224
- throwAuthError("PASSKEY_MISSING_VERIFIER");
225
- }
226
-
227
- // Decode client data
228
- const clientDataJSON = decodeBase64urlIgnorePadding(params.clientDataJSON);
229
- const clientData = parseClientDataJSON(clientDataJSON);
230
-
231
- // Verify client data type is "webauthn.create"
232
- if (clientData.type !== ClientDataType.Create) {
233
- throwAuthError("PASSKEY_INVALID_CLIENT_DATA", "Invalid client data type: expected webauthn.create");
234
- }
235
-
236
- // Verify origin
237
- const allowedOrigins = Array.isArray(rp.origin) ? rp.origin : [rp.origin];
238
- if (!allowedOrigins.includes(clientData.origin)) {
239
- throwAuthError(
240
- "PASSKEY_INVALID_ORIGIN",
241
- `Invalid origin: ${clientData.origin}, expected one of: ${allowedOrigins.join(", ")}`,
242
- );
243
- }
244
-
245
- // Verify challenge matches the stored verifier
246
- const challengeHash = encodeBase64urlNoPadding(
247
- new Uint8Array(sha256(clientData.challenge)),
248
- );
249
- const verifierDoc = await queryVerifierById(ctx, verifierValue);
250
- if (!verifierDoc || verifierDoc.signature !== challengeHash) {
251
- throwAuthError("PASSKEY_INVALID_CHALLENGE");
252
- }
253
-
254
- // Clean up the verifier
255
- await mutateVerifierDelete(ctx, verifierValue);
256
-
257
- // Parse attestation object
258
- const attestationObjectBytes = decodeBase64urlIgnorePadding(params.attestationObject);
259
- const attestation = parseAttestationObject(attestationObjectBytes);
260
- const authenticatorData = attestation.authenticatorData;
261
-
262
- // Verify RP ID hash
263
- if (!authenticatorData.verifyRelyingPartyIdHash(rp.rpId)) {
264
- throwAuthError("PASSKEY_RP_MISMATCH");
265
- }
266
-
267
- // Verify user presence and verification flags
268
- if (!authenticatorData.userPresent) {
269
- throwAuthError("PASSKEY_USER_PRESENCE");
270
- }
271
- if (rp.userVerification === "required" && !authenticatorData.userVerified) {
272
- throwAuthError("PASSKEY_USER_VERIFICATION");
273
- }
274
-
275
- // Extract credential
276
- const credential = authenticatorData.credential;
277
- if (!credential) {
278
- throwAuthError("PASSKEY_NO_CREDENTIAL");
279
- }
280
-
281
- const credentialId = encodeBase64urlNoPadding(credential.id);
282
- const publicKey = credential.publicKey;
283
-
284
- // Determine algorithm and encode the public key for storage
285
- let algorithm: number;
286
- let publicKeyBytes: Uint8Array;
287
-
288
- if (publicKey.isAlgorithmDefined()) {
289
- algorithm = publicKey.algorithm();
290
- } else {
291
- const keyType = publicKey.type();
292
- algorithm =
293
- keyType === COSEKeyType.EC2
294
- ? coseAlgorithmES256
295
- : keyType === COSEKeyType.RSA
296
- ? coseAlgorithmRS256
297
- : coseAlgorithmES256;
298
- }
299
-
300
- if (algorithm === coseAlgorithmES256) {
301
- const ec2 = publicKey.ec2();
302
- // Encode as SEC1 uncompressed point (0x04 || x || y)
303
- const xBytes = bigintToBytes(ec2.x, 32);
304
- const yBytes = bigintToBytes(ec2.y, 32);
305
- publicKeyBytes = new Uint8Array(65);
306
- publicKeyBytes[0] = 0x04;
307
- publicKeyBytes.set(xBytes, 1);
308
- publicKeyBytes.set(yBytes, 33);
309
- } else if (algorithm === coseAlgorithmRS256) {
310
- const rsa = publicKey.rsa();
311
- const rsaPubKey = new RSAPublicKey(rsa.n, rsa.e);
312
- publicKeyBytes = rsaPubKey.encodePKCS1();
313
- } else {
314
- throwAuthError("PASSKEY_UNSUPPORTED_ALGORITHM", `Unsupported algorithm: ${algorithm}`);
315
- }
316
-
317
- const deviceType = params.deviceType ?? "single-device";
318
- const backedUp = params.backedUp ?? false;
319
-
320
- // Create an account record linking the passkey to the current user.
321
- // Unlike unauthenticated flows, we don't create a new user — we
322
- // attach the passkey credential to the existing authenticated user.
323
- const db = authDb(ctx, ctx.auth.config);
324
- await db.accounts.create({
325
- userId: userId!,
326
- provider: provider.id,
327
- providerAccountId: credentialId,
328
- });
329
-
330
- // Store the passkey credential
331
- await mutatePasskeyInsert(ctx, {
332
- userId: userId!,
333
- credentialId,
334
- publicKey: publicKeyBytes.buffer.slice(
335
- publicKeyBytes.byteOffset,
336
- publicKeyBytes.byteOffset + publicKeyBytes.byteLength,
337
- ),
338
- algorithm,
339
- counter: authenticatorData.signatureCounter,
340
- transports: params.transports,
341
- deviceType,
342
- backedUp,
343
- name: params.passkeyName,
344
- createdAt: Date.now(),
345
- });
346
-
347
- // Return tokens for the existing session
348
- const signInResult = await callSignIn(ctx, {
349
- userId: userId!,
350
- generateTokens: true,
351
- });
352
-
353
- return { kind: "signedIn", signedIn: signInResult };
354
- }
355
-
356
- // ============================================================================
357
- // Authentication flow
358
- // ============================================================================
359
-
360
- /**
361
- * Phase 3: Generate authentication options.
362
- *
363
- * Creates a challenge and returns PublicKeyCredentialRequestOptions.
364
- * If an email is provided, scopes allowCredentials to that user's passkeys.
365
- */
366
- async function handleAuthOptions(
367
- ctx: EnrichedActionCtx,
368
- provider: PasskeyProviderConfig,
369
- params: Record<string, any>,
370
- ): Promise<{
371
- kind: "passkeyOptions";
372
- options: Record<string, any>;
373
- verifier: string;
374
- }> {
375
- const rp = resolveRpOptions(provider);
376
- const challenge = generateChallenge();
377
- const challengeHash = hashChallenge(challenge);
378
-
379
- // Store the challenge hash in the verifier table
380
- const verifier = await callVerifier(ctx);
381
- await callVerifierSignature(ctx, {
382
- verifier,
383
- signature: challengeHash,
384
- });
385
-
386
- // Build allowCredentials if email is provided
387
- let allowCredentials: Array<{ type: string; id: string; transports?: string[] }> | undefined;
388
- if (params.email) {
389
- // Look up user by email, then find their passkeys
390
- const user = await queryUserByVerifiedEmail(ctx, params.email);
391
- if (user) {
392
- const passkeys = await queryPasskeysByUserId(ctx, user._id);
393
- if (passkeys.length > 0) {
394
- allowCredentials = passkeys.map((pk) => ({
395
- type: "public-key",
396
- id: pk.credentialId,
397
- transports: pk.transports,
398
- }));
399
- }
400
- }
401
- }
402
-
403
- const options: Record<string, any> = {
404
- challenge: encodeBase64urlNoPadding(challenge),
405
- timeout: rp.challengeExpirationMs,
406
- rpId: rp.rpId,
407
- userVerification: rp.userVerification,
408
- };
409
-
410
- if (allowCredentials) {
411
- options.allowCredentials = allowCredentials;
412
- }
413
-
414
- return { kind: "passkeyOptions", options, verifier };
415
- }
416
-
417
- /**
418
- * Phase 4: Verify authentication assertion and sign in.
419
- *
420
- * Verifies the signature against the stored public key, checks the counter,
421
- * and creates a session.
422
- */
423
- async function handleAuthVerify(
424
- ctx: EnrichedActionCtx,
425
- provider: PasskeyProviderConfig,
426
- params: Record<string, any>,
427
- verifierValue: string | undefined,
428
- ): Promise<{ kind: "signedIn"; signedIn: SessionInfo | null }> {
429
- const rp = resolveRpOptions(provider);
430
-
431
- if (!verifierValue) {
432
- throwAuthError("PASSKEY_MISSING_VERIFIER");
433
- }
434
-
435
- // Decode client data
436
- const clientDataJSON = decodeBase64urlIgnorePadding(params.clientDataJSON);
437
- const clientData = parseClientDataJSON(clientDataJSON);
438
-
439
- // Verify client data type is "webauthn.get"
440
- if (clientData.type !== ClientDataType.Get) {
441
- throwAuthError("PASSKEY_INVALID_CLIENT_DATA", "Invalid client data type: expected webauthn.get");
442
- }
443
-
444
- // Verify origin
445
- const allowedOrigins = Array.isArray(rp.origin) ? rp.origin : [rp.origin];
446
- if (!allowedOrigins.includes(clientData.origin)) {
447
- throwAuthError(
448
- "PASSKEY_INVALID_ORIGIN",
449
- `Invalid origin: ${clientData.origin}, expected one of: ${allowedOrigins.join(", ")}`,
450
- );
451
- }
452
-
453
- // Verify challenge matches the stored verifier
454
- const challengeHash = encodeBase64urlNoPadding(
455
- new Uint8Array(sha256(clientData.challenge)),
456
- );
457
- const verifierDoc = await queryVerifierById(ctx, verifierValue);
458
- if (!verifierDoc || verifierDoc.signature !== challengeHash) {
459
- throwAuthError("PASSKEY_INVALID_CHALLENGE");
460
- }
461
-
462
- // Clean up the verifier
463
- await mutateVerifierDelete(ctx, verifierValue);
464
-
465
- // Look up the credential
466
- const credentialId = params.credentialId;
467
- if (!credentialId) {
468
- throwAuthError("PASSKEY_UNKNOWN_CREDENTIAL", "Missing credential ID");
469
- }
470
-
471
- const passkey = await queryPasskeyByCredentialId(ctx, credentialId);
472
- if (!passkey) {
473
- throwAuthError("PASSKEY_UNKNOWN_CREDENTIAL", "Unknown credential");
474
- }
475
-
476
- // Parse authenticator data
477
- const authenticatorDataBytes = decodeBase64urlIgnorePadding(params.authenticatorData);
478
- const authenticatorData = parseAuthenticatorData(authenticatorDataBytes);
479
-
480
- // Verify RP ID hash
481
- if (!authenticatorData.verifyRelyingPartyIdHash(rp.rpId)) {
482
- throwAuthError("PASSKEY_RP_MISMATCH");
483
- }
484
-
485
- // Verify user presence
486
- if (!authenticatorData.userPresent) {
487
- throwAuthError("PASSKEY_USER_PRESENCE");
488
- }
489
- if (rp.userVerification === "required" && !authenticatorData.userVerified) {
490
- throwAuthError("PASSKEY_USER_VERIFICATION");
491
- }
492
-
493
- // Verify signature
494
- const signature = decodeBase64urlIgnorePadding(params.signature);
495
- const signatureMessage = createAssertionSignatureMessage(
496
- authenticatorDataBytes,
497
- clientDataJSON,
498
- );
499
- const messageHash = sha256(signatureMessage);
500
-
501
- const storedPublicKeyBytes = new Uint8Array(passkey.publicKey);
502
-
503
- if (passkey.algorithm === coseAlgorithmES256) {
504
- // EC P-256 verification
505
- const ecPublicKey = decodeSEC1PublicKey(p256, storedPublicKeyBytes);
506
- // WebAuthn signatures for EC keys are DER/ASN.1 (PKIX) encoded
507
- const ecdsaSignature = decodePKIXECDSASignature(signature);
508
- const valid = verifyECDSASignature(
509
- ecPublicKey,
510
- messageHash,
511
- ecdsaSignature,
512
- );
513
- if (!valid) {
514
- throwAuthError("PASSKEY_INVALID_SIGNATURE");
515
- }
516
- } else if (passkey.algorithm === coseAlgorithmRS256) {
517
- // RSA PKCS#1 v1.5 with SHA-256 verification
518
- // Decode the stored PKCS#1 public key
519
- const rsaPublicKey = decodePKCS1RSAPublicKey(storedPublicKeyBytes);
520
- const valid = verifyRSASSAPKCS1v15Signature(
521
- rsaPublicKey,
522
- sha256ObjectIdentifier,
523
- messageHash,
524
- signature,
525
- );
526
- if (!valid) {
527
- throwAuthError("PASSKEY_INVALID_SIGNATURE");
528
- }
529
- } else {
530
- throwAuthError("PASSKEY_UNSUPPORTED_ALGORITHM", `Unsupported algorithm: ${passkey.algorithm}`);
531
- }
532
-
533
- // Verify counter (clone detection)
534
- // Counter of 0 means the authenticator doesn't support counters
535
- if (
536
- passkey.counter !== 0 &&
537
- authenticatorData.signatureCounter !== 0 &&
538
- authenticatorData.signatureCounter <= passkey.counter
539
- ) {
540
- throwAuthError("PASSKEY_COUNTER_ERROR");
541
- }
542
-
543
- // Update counter and last used timestamp
544
- await mutatePasskeyUpdateCounter(
545
- ctx,
546
- passkey._id,
547
- authenticatorData.signatureCounter,
548
- Date.now(),
549
- );
550
-
551
- // Sign in the user
552
- const signInResult = await callSignIn(ctx, {
553
- userId: passkey.userId,
554
- generateTokens: true,
555
- });
556
-
557
- return { kind: "signedIn", signedIn: signInResult };
558
- }
559
-
560
- // ============================================================================
561
- // Main dispatch
562
- // ============================================================================
563
-
564
- /**
565
- * Main passkey handler dispatched from signIn.ts.
566
- *
567
- * Routes to the appropriate phase based on `params.flow`.
568
- */
569
- export async function handlePasskey(
570
- ctx: EnrichedActionCtx,
571
- provider: PasskeyProviderConfig,
572
- args: {
573
- params?: Record<string, any>;
574
- verifier?: string;
575
- },
576
- ): Promise<
577
- | { kind: "signedIn"; signedIn: SessionInfo | null }
578
- | { kind: "passkeyOptions"; options: Record<string, any>; verifier: string }
579
- > {
580
- const flow = args.params?.flow;
581
- if (!flow) {
582
- throwAuthError(
583
- "PASSKEY_MISSING_FLOW",
584
- "Missing `flow` parameter. Expected one of: register-options, register-verify, auth-options, auth-verify",
585
- );
586
- }
587
-
588
- switch (flow) {
589
- case "register-options":
590
- return handleRegisterOptions(ctx, provider, args.params ?? {});
591
- case "register-verify":
592
- return handleRegisterVerify(ctx, provider, args.params ?? {}, args.verifier);
593
- case "auth-options":
594
- return handleAuthOptions(ctx, provider, args.params ?? {});
595
- case "auth-verify":
596
- return handleAuthVerify(ctx, provider, args.params ?? {}, args.verifier);
597
- default:
598
- throwAuthError(
599
- "PASSKEY_UNKNOWN_FLOW",
600
- `Unknown passkey flow: ${flow}. Expected one of: register-options, register-verify, auth-options, auth-verify`,
601
- );
602
- }
603
- }
604
-
605
- // ============================================================================
606
- // Helpers
607
- // ============================================================================
608
-
609
- /**
610
- * Convert a bigint to a fixed-size big-endian byte array.
611
- */
612
- function bigintToBytes(value: bigint, length: number): Uint8Array {
613
- const bytes = new Uint8Array(length);
614
- let v = value;
615
- for (let i = length - 1; i >= 0; i--) {
616
- bytes[i] = Number(v & 0xffn);
617
- v >>= 8n;
618
- }
619
- return bytes;
620
- }
@@ -1,36 +0,0 @@
1
- import { AuthProviderMaterializedConfig } from "../types";
2
- import { ConvexAuthMaterializedConfig } from "../types";
3
- import { throwAuthError } from "../errors";
4
-
5
- export async function hash(provider: any, secret: string) {
6
- if (provider.type !== "credentials") {
7
- throwAuthError("INVALID_CREDENTIALS_PROVIDER", `Provider ${provider.id} is not a credentials provider`, { provider: provider.id });
8
- }
9
- const hashSecretFn = provider.crypto?.hashSecret;
10
- if (hashSecretFn === undefined) {
11
- throwAuthError("MISSING_CRYPTO_FUNCTION", `Provider ${provider.id} does not have a \`crypto.hashSecret\` function`, { provider: provider.id });
12
- }
13
- return await hashSecretFn(secret);
14
- }
15
-
16
- export async function verify(
17
- provider: AuthProviderMaterializedConfig,
18
- secret: string,
19
- hash: string,
20
- ) {
21
- if (provider.type !== "credentials") {
22
- throwAuthError("INVALID_CREDENTIALS_PROVIDER", `Provider ${provider.id} is not a credentials provider`, { provider: provider.id });
23
- }
24
- const verifySecretFn = provider.crypto?.verifySecret;
25
- if (verifySecretFn === undefined) {
26
- throwAuthError("MISSING_CRYPTO_FUNCTION", `Provider ${provider.id} does not have a \`crypto.verifySecret\` function`, { provider: provider.id });
27
- }
28
- return await verifySecretFn(secret, hash);
29
- }
30
-
31
- export type GetProviderOrThrowFunc = (
32
- provider: string,
33
- allowExtraProviders?: boolean,
34
- ) => AuthProviderMaterializedConfig;
35
-
36
- export type Config = ConvexAuthMaterializedConfig;