@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,406 +1,343 @@
1
- import { Doc, KeyDoc } from "./implementation/types.js";
2
- import { Auth as Auth$2 } from "./implementation/index.js";
3
- import { ComponentApi } from "../component/_generated/component.js";
4
- import { AuthProviderConfig, ConvexAuthConfig, CorsConfig, HttpKeyContext, KeyScope, ScopeChecker, UserOrderBy, UserWhere } from "./types.js";
5
- import * as convex_server0 from "convex/server";
1
+ import { AuthAuthorizationConfig, AuthGrant, AuthProviderConfig, AuthRoleId, ConvexAuthConfig, Doc, HasDeviceProvider, HasPasskeyProvider, HasSSO, HasTotpProvider } from "./types.js";
2
+ import { AuthApiRefs } from "../client/core/types.js";
3
+ import "../client/index.js";
4
+ import { Auth as Auth$1 } from "./runtime.js";
6
5
  import { UserIdentity } from "convex/server";
7
6
  import { GenericId } from "convex/values";
8
7
 
9
8
  //#region src/server/auth.d.ts
10
9
  /**
11
- * Config for the Auth class. Extends the standard auth config
10
+ * Config for auth setup. Extends the standard auth config
12
11
  * minus `component` (which is passed as the first constructor argument).
13
- *
14
- * When `email` is configured, the library auto-registers a
15
- * magic link provider (`id: "email"`) for user-facing sign-in.
16
12
  */
17
- type AuthClassConfig = Omit<ConvexAuthConfig, "component">;
13
+ type AuthConfig = Omit<ConvexAuthConfig, "component">;
14
+ type MemberApiWithAuthorization<TAuthorization extends AuthAuthorizationConfig | undefined> = Omit<ReturnType<typeof Auth$1>["auth"]["member"], "create" | "list" | "update" | "resolve"> & {
15
+ create: (ctx: Parameters<ReturnType<typeof Auth$1>["auth"]["member"]["create"]>[0], data: {
16
+ groupId: string;
17
+ userId: string;
18
+ roleIds?: AuthRoleId<TAuthorization>[];
19
+ status?: string;
20
+ extend?: Record<string, unknown>;
21
+ }) => Promise<{
22
+ ok: true;
23
+ memberId: string;
24
+ }>;
25
+ list: (ctx: Parameters<ReturnType<typeof Auth$1>["auth"]["member"]["list"]>[0], opts?: {
26
+ where?: {
27
+ groupId?: string;
28
+ userId?: string;
29
+ roleId?: AuthRoleId<TAuthorization>;
30
+ status?: string;
31
+ };
32
+ limit?: number;
33
+ cursor?: string | null;
34
+ orderBy?: "_creationTime" | "status";
35
+ order?: "asc" | "desc";
36
+ }) => ReturnType<ReturnType<typeof Auth$1>["auth"]["member"]["list"]>;
37
+ update: (ctx: Parameters<ReturnType<typeof Auth$1>["auth"]["member"]["update"]>[0], memberId: string, data: Record<string, unknown> & {
38
+ roleIds?: AuthRoleId<TAuthorization>[];
39
+ }) => Promise<{
40
+ ok: true;
41
+ memberId: string;
42
+ }>;
43
+ resolve: (ctx: Parameters<ReturnType<typeof Auth$1>["auth"]["member"]["resolve"]>[0], opts: {
44
+ userId: string;
45
+ groupId: string;
46
+ ancestry?: boolean;
47
+ roleIds?: AuthRoleId<TAuthorization>[];
48
+ grants?: AuthGrant<TAuthorization>[];
49
+ maxDepth?: number;
50
+ }) => ReturnType<ReturnType<typeof Auth$1>["auth"]["member"]["resolve"]>;
51
+ };
18
52
  /**
19
- * Main entry point for Convex Auth. Instantiate with your component
20
- * reference and config to get all the exports you need.
53
+ * The base auth API surface returned by {@link createAuth}.
21
54
  *
22
- * ```ts
23
- * export const auth = new Auth(components.auth, {
24
- * providers: [google, password],
25
- * email: {
26
- * from: "My App <noreply@example.com>",
27
- * send: (ctx, params) => resend.sendEmail(ctx, params),
28
- * },
29
- * });
30
- * export const { signIn, signOut, store } = auth;
31
- * ```
55
+ * Provides core namespaces — `signIn`, `signOut`, `user`, `session`,
56
+ * `member`, `invite`, `group`, `key`, and `http` — that are
57
+ * always available regardless of which providers are configured.
58
+ * Enterprise namespaces (`sso`, `scim`) are added conditionally by
59
+ * {@link AuthApi} when an SSO provider is present.
60
+ *
61
+ * Use this type when you want to describe code that only depends on the
62
+ * standard auth surface and should not assume enterprise features exist.
63
+ *
64
+ * @typeParam TAuthorization - The authorization config, used to narrow
65
+ * role IDs and grant strings on the `member` API.
32
66
  */
33
- declare class Auth {
34
- /** The inner `auth` helper object from AuthFactory() */
35
- private readonly _auth;
36
- /** The signIn action — export this from your convex/auth.ts */
37
- readonly signIn: ReturnType<typeof Auth$2>["signIn"];
38
- /** The signOut action — export this from your convex/auth.ts */
39
- readonly signOut: ReturnType<typeof Auth$2>["signOut"];
40
- /** The store internal mutation — export this from your convex/auth.ts */
41
- readonly store: ReturnType<typeof Auth$2>["store"];
42
- /** User helpers: `.current(ctx)`, `.require(ctx)`, `.get(ctx, userId)`, `.patch(ctx, userId, data)`, `.viewer(ctx)`, `.group.list(ctx, ...)`, `.group.get(ctx, ...)` */
43
- get user(): {
44
- current: (ctx: {
45
- auth: convex_server0.Auth;
46
- }) => Promise<GenericId<"user"> | null>;
47
- require: (ctx: {
48
- auth: convex_server0.Auth;
49
- }) => Promise<GenericId<"user">>;
50
- get: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, userId: string) => Promise<any>;
51
- list: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts?: {
52
- where?: UserWhere;
53
- limit?: number;
54
- cursor?: string | null;
55
- orderBy?: UserOrderBy;
56
- order?: "asc" | "desc";
57
- }) => Promise<any>;
58
- viewer: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery"> & {
59
- auth: convex_server0.Auth;
60
- }) => Promise<any>;
61
- patch: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, userId: string, data: Record<string, unknown>) => Promise<void>;
62
- group: {
63
- list: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts: {
64
- userId: string;
65
- limit?: number;
66
- cursor?: string | null;
67
- order?: "asc" | "desc";
68
- }) => Promise<any>;
69
- get: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts: {
70
- userId: string;
71
- groupId: string;
72
- }) => Promise<any>;
73
- };
74
- };
75
- /** Session helpers: `.current(ctx)`, `.invalidate(ctx, { userId, except? })` */
76
- get session(): {
77
- current: (ctx: {
78
- auth: convex_server0.Auth;
79
- }) => Promise<GenericId<"session"> | null>;
80
- invalidate: <DataModel extends convex_server0.GenericDataModel>(ctx: convex_server0.GenericActionCtx<DataModel>, args: {
81
- userId: GenericId<"user">;
82
- except?: GenericId<"session">[];
83
- }) => Promise<void>;
84
- };
85
- /** Provider helpers: `.signIn(ctx, provider, args)` */
86
- get provider(): {
87
- signIn: <DataModel extends convex_server0.GenericDataModel>(ctx: convex_server0.GenericActionCtx<DataModel>, provider: AuthProviderConfig, args: {
88
- accountId?: GenericId<"account">;
89
- params?: Record<string, unknown>;
90
- }) => Promise<{
91
- userId: GenericId<"user">;
92
- sessionId: GenericId<"session">;
93
- } | null>;
94
- };
95
- /** Account helpers: `.create(ctx, args)`, `.get(ctx, args)`, `.update(ctx, args)` */
96
- get account(): {
97
- create: <DataModel extends convex_server0.GenericDataModel>(ctx: convex_server0.GenericActionCtx<DataModel>, args: {
98
- provider: string;
99
- account: {
100
- id: string;
101
- secret?: string;
102
- };
103
- profile: Record<string, unknown>;
104
- shouldLinkViaEmail?: boolean;
105
- shouldLinkViaPhone?: boolean;
106
- }) => Promise<{
107
- account: Doc<"account">;
108
- user: Doc<"user">;
109
- }>;
110
- get: <DataModel extends convex_server0.GenericDataModel>(ctx: convex_server0.GenericActionCtx<DataModel>, args: {
111
- provider: string;
112
- account: {
113
- id: string;
114
- secret?: string;
67
+ type AuthApiBase<TAuthorization extends AuthAuthorizationConfig | undefined = undefined> = {
68
+ signIn: ReturnType<typeof Auth$1>["signIn"];
69
+ signOut: ReturnType<typeof Auth$1>["signOut"];
70
+ store: ReturnType<typeof Auth$1>["store"];
71
+ user: ReturnType<typeof Auth$1>["auth"]["user"];
72
+ session: ReturnType<typeof Auth$1>["auth"]["session"];
73
+ provider: ReturnType<typeof Auth$1>["auth"]["provider"];
74
+ account: ReturnType<typeof Auth$1>["auth"]["account"];
75
+ group: ReturnType<typeof Auth$1>["auth"]["group"];
76
+ member: MemberApiWithAuthorization<TAuthorization>;
77
+ invite: ReturnType<typeof Auth$1>["auth"]["invite"];
78
+ key: ReturnType<typeof Auth$1>["auth"]["key"];
79
+ http: ReturnType<typeof Auth$1>["auth"]["http"];
80
+ /**
81
+ * Resolve the current user's auth context. Framework-agnostic — use
82
+ * this in fluent-convex middleware, custom wrappers, or anywhere you
83
+ * need the resolved `{ userId, user, groupId, role, grants }` object.
84
+ *
85
+ * Returns `null` when unauthenticated. Does not throw.
86
+ *
87
+ * @param ctx - Convex query, mutation, or action context.
88
+ * @returns The resolved auth context, or `null`.
89
+ *
90
+ * @example fluent-convex middleware
91
+ * ```ts
92
+ * const withAuth = convex.createMiddleware(async (ctx, next) => {
93
+ * return next({ ...ctx, auth: await auth.resolve(ctx) });
94
+ * });
95
+ * ```
96
+ *
97
+ * @example Direct usage in a handler
98
+ * ```ts
99
+ * const resolved = await auth.resolve(ctx);
100
+ * if (!resolved) return { ok: false, code: "NOT_SIGNED_IN" };
101
+ * const { userId, grants } = resolved;
102
+ * ```
103
+ */
104
+ resolve: (ctx: any) => Promise<AuthResolvedContext | null>;
105
+ /**
106
+ * Context enrichment for convex-helpers `customQuery` / `customMutation` /
107
+ * `customAction`.
108
+ *
109
+ * Resolves the current user's identity, active group, membership role,
110
+ * and grants, then attaches them to `ctx.auth`. Returns a `Customization`
111
+ * object compatible with convex-helpers' custom function builders.
112
+ *
113
+ * `ctx.auth` is `{ userId, user, groupId, role, grants }` when
114
+ * authenticated, `null` when unauthenticated. No throwing — your
115
+ * handler decides how to respond.
116
+ *
117
+ * @returns A convex-helpers `Customization` object.
118
+ *
119
+ * @example One-time setup in `convex/functions.ts`
120
+ * ```ts
121
+ * import { query, mutation, action } from "./_generated/server";
122
+ * import { customQuery, customMutation, customAction } from "convex-helpers/server/customFunctions";
123
+ * import { auth } from "./auth";
124
+ *
125
+ * export const authQuery = customQuery(query, auth.ctx());
126
+ * export const authMutation = customMutation(mutation, auth.ctx());
127
+ * export const authAction = customAction(action, auth.ctx());
128
+ * ```
129
+ *
130
+ * @example Per-function usage
131
+ * ```ts
132
+ * import { authQuery } from "./functions";
133
+ *
134
+ * export const list = authQuery({
135
+ * args: { workspaceId: v.string() },
136
+ * handler: async (ctx, args) => {
137
+ * if (!ctx.auth) return [];
138
+ * const { userId, groupId, grants } = ctx.auth;
139
+ * // business logic
140
+ * },
141
+ * });
142
+ * ```
143
+ */
144
+ ctx: () => {
145
+ args: Record<string, never>;
146
+ input: (ctx: any) => Promise<{
147
+ ctx: {
148
+ auth: AuthResolvedContext | null;
115
149
  };
116
- }) => Promise<{
117
- account: Doc<"account">;
118
- user: Doc<"user">;
150
+ args: Record<string, never>;
119
151
  }>;
120
- update: <DataModel extends convex_server0.GenericDataModel>(ctx: convex_server0.GenericActionCtx<DataModel>, args: {
121
- provider: string;
122
- account: {
123
- id: string;
124
- secret: string;
125
- };
126
- }) => Promise<void>;
127
152
  };
128
- /** Group helpers: `.create(ctx, ...)`, `.get(ctx, id)`, `.list(ctx, ...)`, `.update(ctx, ...)`, `.delete(ctx, id)`, `.member.*` */
129
- get group(): {
130
- create: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, data: {
131
- name: string;
132
- slug?: string;
133
- type?: string;
134
- parentGroupId?: string;
135
- tags?: Array<{
136
- key: string;
137
- value: string;
153
+ };
154
+ /**
155
+ * Resolved auth context injected into `ctx.auth` by `auth.ctx()`.
156
+ *
157
+ * - `null` when unauthenticated.
158
+ * - `groupId` is `null` when the user has no active group set.
159
+ * - `role` / `grants` are `null` / `[]` when no active group or no membership.
160
+ */
161
+ type AuthResolvedContext = {
162
+ /** The authenticated user's document ID. */userId: string; /** The authenticated user's full document. */
163
+ user: any; /** The user's active group ID, or `null` if none set. */
164
+ groupId: string | null; /** The user's primary role in the active group, or `null`. */
165
+ role: string | null; /** Resolved grant strings from the user's role definitions. */
166
+ grants: string[];
167
+ };
168
+ type InternalSsoApi = ReturnType<typeof Auth$1>["auth"]["sso"];
169
+ type PublicSsoAdminApi = {
170
+ connection: InternalSsoApi["connection"] & {
171
+ domain: {
172
+ list: InternalSsoApi["domain"]["list"];
173
+ validate: InternalSsoApi["domain"]["validate"];
174
+ set: (ctx: Parameters<InternalSsoApi["connection"]["create"]>[0], enterpriseId: string, domains: Array<{
175
+ domain: string;
176
+ isPrimary?: boolean;
177
+ }>) => Promise<{
178
+ ok: true;
179
+ enterpriseId: string;
180
+ domains: Array<{
181
+ domainId: string;
182
+ domain: string;
183
+ isPrimary: boolean;
184
+ verified: boolean;
185
+ verifiedAt: number | null;
186
+ }>;
138
187
  }>;
139
- extend?: Record<string, unknown>;
140
- }) => Promise<string>;
141
- get: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, groupId: string) => Promise<any>;
142
- list: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts?: {
143
- where?: {
144
- slug?: string;
145
- type?: string;
146
- parentGroupId?: string;
147
- name?: string;
148
- isRoot?: boolean;
149
- tagsAll?: Array<{
150
- key: string;
151
- value: string;
188
+ verification: {
189
+ request: (ctx: Parameters<InternalSsoApi["connection"]["create"]>[0], args: {
190
+ enterpriseId: string;
191
+ domain: string;
192
+ }) => Promise<{
193
+ ok: true;
194
+ enterpriseId: string;
195
+ domain: string;
196
+ requestedAt: number;
197
+ expiresAt: number;
198
+ challenge: {
199
+ recordType: "TXT";
200
+ recordName: string;
201
+ recordValue: string;
202
+ };
152
203
  }>;
153
- tagsAny?: Array<{
154
- key: string;
155
- value: string;
204
+ confirm: (ctx: Parameters<InternalSsoApi["connection"]["create"]>[0], args: {
205
+ enterpriseId: string;
206
+ domain: string;
207
+ }) => Promise<{
208
+ ok: boolean;
209
+ enterpriseId: string;
210
+ domain: string;
211
+ verifiedAt?: number;
212
+ checks: Array<{
213
+ name: string;
214
+ ok: boolean;
215
+ message?: string;
216
+ }>;
156
217
  }>;
157
218
  };
158
- limit?: number;
159
- cursor?: string | null;
160
- orderBy?: "_creationTime" | "name" | "slug" | "type";
161
- order?: "asc" | "desc";
162
- }) => Promise<any>;
163
- update: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, groupId: string, data: Record<string, unknown>) => Promise<void>;
164
- delete: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, groupId: string) => Promise<void>;
165
- member: {
166
- add: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, data: {
167
- groupId: string;
168
- userId: string;
169
- role?: string;
170
- status?: string;
171
- extend?: Record<string, unknown>;
172
- }) => Promise<string>;
173
- get: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, memberId: string) => Promise<any>;
174
- list: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts?: {
175
- where?: {
176
- groupId?: string;
177
- userId?: string;
178
- role?: string;
179
- status?: string;
180
- };
181
- limit?: number;
182
- cursor?: string | null;
183
- orderBy?: "_creationTime" | "role" | "status";
184
- order?: "asc" | "desc";
185
- }) => Promise<any>;
186
- remove: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, memberId: string) => Promise<void>;
187
- update: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, memberId: string, data: Record<string, unknown>) => Promise<void>;
188
219
  };
189
220
  };
190
- /** Invite helpers: `.create(ctx, ...)`, `.get(ctx, id)`, `.list(ctx, ...)`, `.accept(ctx, ...)`, `.revoke(ctx, id)` */
191
- get invite(): {
192
- create: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, data: {
193
- groupId?: string;
194
- invitedByUserId?: string;
195
- email?: string;
196
- tokenHash: string;
197
- role?: string;
198
- status: "pending" | "accepted" | "revoked" | "expired";
199
- expiresTime?: number;
200
- extend?: Record<string, unknown>;
201
- }) => Promise<string>;
202
- get: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, inviteId: string) => Promise<any>;
203
- list: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts?: {
204
- where?: {
205
- tokenHash?: string;
206
- groupId?: string;
207
- status?: "pending" | "accepted" | "revoked" | "expired";
208
- email?: string;
209
- invitedByUserId?: string;
210
- role?: string;
211
- acceptedByUserId?: string;
212
- };
213
- limit?: number;
214
- cursor?: string | null;
215
- orderBy?: "_creationTime" | "status" | "email" | "expiresTime" | "acceptedTime";
216
- order?: "asc" | "desc";
217
- }) => Promise<any>;
218
- accept: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, inviteId: string, acceptedByUserId?: string) => Promise<void>;
219
- revoke: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, inviteId: string) => Promise<void>;
220
- };
221
- /** Passkey helpers: `.list(ctx, { userId })`, `.rename(ctx, id, name)`, `.remove(ctx, id)` */
222
- get passkey(): {
223
- list: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts: {
224
- userId: string;
225
- }) => Promise<any>;
226
- rename: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, passkeyId: string, name: string) => Promise<void>;
227
- remove: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, passkeyId: string) => Promise<void>;
228
- };
229
- /** TOTP helpers: `.list(ctx, { userId })`, `.remove(ctx, id)` */
230
- get totp(): {
231
- list: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts: {
232
- userId: string;
233
- }) => Promise<any>;
234
- remove: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, totpId: string) => Promise<void>;
235
- };
236
- /** API key helpers: `.create(ctx, ...)`, `.verify(ctx, rawKey)`, `.list(ctx, ...)`, `.get(ctx, id)`, `.update(ctx, ...)`, `.revoke(ctx, id)`, `.remove(ctx, id)` */
237
- get key(): {
238
- create: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, opts: {
239
- userId: string;
240
- name: string;
241
- scopes: KeyScope[];
242
- rateLimit?: {
243
- maxRequests: number;
244
- windowMs: number;
245
- };
246
- expiresAt?: number;
247
- }) => Promise<{
248
- keyId: string;
249
- raw: string;
250
- }>;
251
- verify: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, rawKey: string) => Promise<{
252
- userId: string;
253
- keyId: string;
254
- scopes: ScopeChecker;
255
- }>;
256
- list: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, opts?: {
257
- where?: {
258
- userId?: string;
259
- revoked?: boolean;
260
- name?: string;
261
- prefix?: string;
262
- };
263
- limit?: number;
264
- cursor?: string | null;
265
- orderBy?: "_creationTime" | "name" | "lastUsedAt" | "expiresAt" | "revoked";
266
- order?: "asc" | "desc";
267
- }) => Promise<any>;
268
- get: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery">, keyId: string) => Promise<KeyDoc | null>;
269
- update: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, keyId: string, data: {
270
- name?: string;
271
- scopes?: KeyScope[];
272
- rateLimit?: {
273
- maxRequests: number;
274
- windowMs: number;
275
- };
276
- }) => Promise<void>;
277
- revoke: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, keyId: string) => Promise<void>;
278
- remove: (ctx: Pick<convex_server0.GenericActionCtx<convex_server0.GenericDataModel>, "runQuery" | "runMutation">, keyId: string) => Promise<void>;
221
+ oidc: Omit<InternalSsoApi["oidc"], "signIn">;
222
+ saml: Omit<InternalSsoApi["saml"], "metadata">;
223
+ policy: InternalSsoApi["policy"];
224
+ audit: {
225
+ list: InternalSsoApi["audit"]["list"];
279
226
  };
280
- /**
281
- * @param component - The auth component reference from `components.auth`.
282
- * @param config - Auth configuration (providers, email transport, session, JWT, callbacks).
283
- */
284
- constructor(component: ComponentApi, config: AuthClassConfig);
285
- /** HTTP namespace — route registration and Bearer-authenticated endpoints. */
286
- get http(): {
287
- add: (http: convex_server0.HttpRouter) => void;
288
- action: (handler: (ctx: convex_server0.GenericActionCtx<convex_server0.GenericDataModel> & HttpKeyContext, request: Request) => Promise<Response | Record<string, unknown>>, options?: {
289
- scope?: {
290
- resource: string;
291
- action: string;
292
- };
293
- cors?: CorsConfig;
294
- }) => convex_server0.PublicHttpAction;
295
- route: (http: convex_server0.HttpRouter, routeConfig: {
296
- path: string;
297
- method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
298
- handler: (ctx: convex_server0.GenericActionCtx<convex_server0.GenericDataModel> & HttpKeyContext, request: Request) => Promise<Response | Record<string, unknown>>;
299
- scope?: {
300
- resource: string;
301
- action: string;
302
- };
303
- cors?: CorsConfig;
304
- }) => void;
227
+ webhook: {
228
+ endpoint: InternalSsoApi["webhook"]["endpoint"];
229
+ delivery: {
230
+ list: InternalSsoApi["webhook"]["delivery"]["list"];
231
+ };
305
232
  };
306
- }
233
+ };
234
+ type PublicSsoClientApi = {
235
+ signIn: InternalSsoApi["oidc"]["signIn"];
236
+ metadata: InternalSsoApi["saml"]["metadata"];
237
+ };
238
+ type PublicSsoApi = {
239
+ admin: PublicSsoAdminApi;
240
+ client: PublicSsoClientApi;
241
+ };
242
+ type PublicScimApi = {
243
+ admin: Omit<InternalSsoApi["scim"], "getConfigByToken" | "identity">;
244
+ };
307
245
  /**
308
- * The shape of a user document from the auth component's `user` table.
246
+ * Extended auth API that includes enterprise SSO and SCIM namespaces.
309
247
  *
310
- * Includes system fields (`_id`, `_creationTime`) plus the schema fields
311
- * (`name`, `email`, `image`, `extend`, etc.).
312
- */
313
- type UserDoc = Doc<"user">;
314
- /**
315
- * Configuration for auth context enrichment.
248
+ * This type is the union of {@link AuthApiBase} plus `sso` (SSO connection
249
+ * management, OIDC/SAML, domain verification, policies, audit, webhooks)
250
+ * and `scim` (SCIM provisioning configuration). It is returned by
251
+ * {@link createAuth} only when `new SSO()` is included in the providers
252
+ * array; otherwise the narrower {@link AuthApiBase} is returned instead.
253
+ * Attempting to access `auth.sso` or `auth.scim` without an SSO provider
254
+ * produces a compile-time error because the return type narrows back to
255
+ * {@link AuthApiBase}.
316
256
  *
317
- * @typeParam TResolve - The shape returned by the `resolve` callback.
318
- * Inferred automatically you usually don't need to supply this manually.
257
+ * @typeParam TAuthorization - The authorization config, forwarded to
258
+ * {@link AuthApiBase} for typed role IDs and grant strings.
319
259
  */
320
- type AuthCtxConfig<TResolve extends Record<string, unknown> = Record<string, never>> = {
321
- /**
322
- * When `true`, unauthenticated requests set `ctx.auth.userId` and
323
- * `ctx.auth.user` to `null` instead of throwing.
324
- *
325
- * @default false
326
- */
327
- optional?: boolean;
328
- /**
329
- * Resolve additional context after authentication succeeds (e.g.
330
- * group/role for multi-tenant apps). The returned object is spread
331
- * into `ctx.auth`.
332
- */
333
- resolve?: (ctx: any, user: UserDoc) => Promise<TResolve> | TResolve;
260
+ type AuthApi<TAuthorization extends AuthAuthorizationConfig | undefined = undefined> = AuthApiBase<TAuthorization> & {
261
+ sso: PublicSsoApi;
262
+ scim: PublicScimApi;
334
263
  };
335
264
  /**
336
- * Create a `convex-helpers`–compatible customization object that
337
- * enriches `ctx.auth` with the authenticated user's data.
338
- *
339
- * Standalone function (not a class method) because Convex's bundler
340
- * can trace `export const x = fn(instance)` but not `instance.method()`.
341
- *
342
- * ### Basic usage (with `convex-helpers`)
343
- *
344
- * ```ts
345
- * // convex/functions.ts
346
- * import { customQuery, customMutation } from "convex-helpers/server/customFunctions";
347
- * import { query as rawQuery, mutation as rawMutation } from "./_generated/server";
348
- * import { AuthCtx } from "\@robelest/convex-auth/component";
349
- * import { auth } from "./auth";
265
+ * The return type of {@link createAuth}.
350
266
  *
351
- * const authCtx = AuthCtx(auth);
267
+ * Resolves to {@link AuthApi} (with `sso` and `scim` namespaces) when
268
+ * `new SSO()` is present in the providers array, or to the narrower
269
+ * {@link AuthApiBase} otherwise. This conditional type ensures that
270
+ * enterprise-only APIs are only accessible when the SSO provider is
271
+ * configured, producing a compile-time error if you try to access
272
+ * `auth.sso` without it.
273
+ * This lets application code keep a single `createAuth()` call while still
274
+ * getting provider-aware typing on the resulting API object.
352
275
  *
353
- * export const query = customQuery(rawQuery, authCtx);
354
- * export const mutation = customMutation(rawMutation, authCtx);
355
- * ```
276
+ * @typeParam P - The tuple of provider configs passed to `createAuth`.
277
+ * @typeParam TAuthorization - Optional authorization config for typed roles/grants.
278
+ */
279
+ type ConvexAuthResult<P extends AuthProviderConfig[], TAuthorization extends AuthAuthorizationConfig | undefined = undefined> = HasSSO<P> extends true ? AuthApi<TAuthorization> : AuthApiBase<TAuthorization>;
280
+ /**
281
+ * Infer the typed `AuthApiRefs` for the client SDK from a `createAuth` call.
356
282
  *
357
- * Then in any function file:
283
+ * Use this as the generic parameter for `client()` on the frontend:
358
284
  *
359
285
  * ```ts
360
- * // convex/messages.ts
361
- * import { query, mutation } from "./functions";
286
+ * // convex/auth.ts
287
+ * export const auth = createAuth(components.auth, { providers: [...] });
362
288
  *
363
- * export const list = query({
364
- * args: {},
365
- * handler: async (ctx) => {
366
- * // ctx.auth.userId and ctx.auth.user are already resolved
367
- * return ctx.db.query("messages").collect();
368
- * },
369
- * });
289
+ * // Frontend
290
+ * import type { auth } from "../convex/auth";
291
+ * import type { InferClientApi } from "@robelest/convex-auth/server";
292
+ * const c = client<InferClientApi<typeof auth>>({ convex, api: api.auth });
370
293
  * ```
371
294
  *
372
- * ### Optional auth (public routes)
295
+ * @typeParam T - A ConvexAuthResult to extract the client API from.
296
+ */
297
+ type InferClientApi<T> = T extends ConvexAuthResult<infer P> ? AuthApiRefs<HasPasskeyProvider<P>, HasTotpProvider<P>, HasDeviceProvider<P>> : AuthApiRefs;
298
+ declare function createAuth<P extends AuthProviderConfig[], TAuthorization extends AuthAuthorizationConfig | undefined = undefined>(component: ConvexAuthConfig["component"], config: Omit<AuthConfig, "providers" | "authorization"> & {
299
+ providers: P;
300
+ authorization?: TAuthorization;
301
+ }): ConvexAuthResult<P, TAuthorization>;
302
+ /** Canonical user document type exposed by Convex Auth. */
303
+ type UserDoc = Doc<"User">;
304
+ /**
305
+ * Configuration for {@link AuthCtx} context enrichment.
306
+ *
307
+ * @typeParam TResolve - Extra fields returned from `resolve()` and merged into
308
+ * the resulting `ctx.auth` object.
309
+ */
310
+ type AuthCtxConfig<TResolve extends Record<string, unknown> = Record<string, never>> = {
311
+ /** Allow unauthenticated callers and return `userId: null` / `user: null`. */optional?: boolean;
312
+ /**
313
+ * Attach additional derived fields to the auth context after the user is resolved.
314
+ */
315
+ resolve?: (ctx: any, user: UserDoc) => Promise<TResolve> | TResolve;
316
+ };
317
+ /**
318
+ * Create a context enrichment for `customQuery` / `customMutation` — optional auth.
373
319
  *
374
- * ```ts
375
- * export const publicQuery = customQuery(rawQuery, AuthCtx(auth, { optional: true }));
376
- * // ctx.auth.userId is null when unauthenticated
377
- * ```
320
+ * When `optional: true` is set, unauthenticated requests are allowed.
321
+ * The enriched `ctx.auth` will have `userId: null` and `user: null`
322
+ * for unauthenticated callers.
378
323
  *
379
- * ### Multi-tenant with group resolution
324
+ * @param auth - The auth API object returned by {@link createAuth}.
325
+ * @param config - Configuration with `optional: true` and an optional
326
+ * `resolve` callback for attaching extra fields to the auth context.
327
+ * @returns An object with `args` and `input` compatible with Convex
328
+ * custom function builders.
380
329
  *
330
+ * @example
381
331
  * ```ts
382
332
  * const authCtx = AuthCtx(auth, {
383
- * resolve: async (ctx, user) => {
384
- * const groupId = user?.extend?.lastActiveGroup;
385
- * const membership = await auth.user.group.get(ctx, {
386
- * userId: user._id,
387
- * groupId,
388
- * });
389
- * return { groupId, role: membership?.role ?? "member" };
390
- * },
333
+ * optional: true,
334
+ * resolve: async (_ctx, user) => ({ plan: user?.extend?.plan ?? null }),
391
335
  * });
392
- * // ctx.auth.groupId and ctx.auth.role available in handlers
393
336
  * ```
394
337
  *
395
- * @param auth - The `Auth` class instance from your `convex/auth.ts`.
396
- * @param config - Optional configuration for optional auth and group resolution.
397
- * @returns A `{ args, input }` customization object compatible with
398
- * `customQuery` / `customMutation` from `convex-helpers`.
338
+ * @see {@link createAuth}
399
339
  */
400
- /**
401
- * Overload: optional auth — `userId` and `user` may be `null`.
402
- */
403
- declare function AuthCtx<TResolve extends Record<string, unknown> = Record<string, never>>(auth: Auth, config: AuthCtxConfig<TResolve> & {
340
+ declare function AuthCtx<TResolve extends Record<string, unknown> = Record<string, never>>(auth: AuthLike, config: AuthCtxConfig<TResolve> & {
404
341
  optional: true;
405
342
  }): {
406
343
  args: {};
@@ -408,7 +345,7 @@ declare function AuthCtx<TResolve extends Record<string, unknown> = Record<strin
408
345
  ctx: {
409
346
  auth: {
410
347
  getUserIdentity: () => Promise<UserIdentity | null>;
411
- userId: GenericId<"user"> | null;
348
+ userId: GenericId<"User"> | null;
412
349
  user: UserDoc | null;
413
350
  } & TResolve;
414
351
  };
@@ -416,15 +353,35 @@ declare function AuthCtx<TResolve extends Record<string, unknown> = Record<strin
416
353
  }>;
417
354
  };
418
355
  /**
419
- * Overload: required auth (default) `userId` and `user` are never `null`.
356
+ * Create a context enrichment for `customQuery` / `customMutation` required auth (default).
357
+ *
358
+ * When `optional` is omitted or `false`, the inferred type is the authenticated
359
+ * auth shape. At runtime this helper still resolves instead of throwing, so if
360
+ * no user is signed in the returned `ctx.auth.userId` and `ctx.auth.user` are
361
+ * `null`.
362
+ *
363
+ * @param auth - The auth API object returned by {@link createAuth}.
364
+ * @param config - Optional configuration with a `resolve` callback
365
+ * for attaching extra fields to the auth context.
366
+ * @returns An object with `args` and `input` compatible with Convex
367
+ * custom function builders.
368
+ *
369
+ * @example
370
+ * ```ts
371
+ * const authCtx = AuthCtx(auth, {
372
+ * resolve: async (_ctx, user) => ({ email: user.email }),
373
+ * });
374
+ * ```
375
+ *
376
+ * @see {@link createAuth}
420
377
  */
421
- declare function AuthCtx<TResolve extends Record<string, unknown> = Record<string, never>>(auth: Auth, config?: AuthCtxConfig<TResolve>): {
378
+ declare function AuthCtx<TResolve extends Record<string, unknown> = Record<string, never>>(auth: AuthLike, config?: AuthCtxConfig<TResolve>): {
422
379
  args: {};
423
380
  input: (ctx: any, _args: any, _extra?: any) => Promise<{
424
381
  ctx: {
425
382
  auth: {
426
383
  getUserIdentity: () => Promise<UserIdentity | null>;
427
- userId: GenericId<"user">;
384
+ userId: GenericId<"User">;
428
385
  user: UserDoc;
429
386
  } & TResolve;
430
387
  };
@@ -432,19 +389,27 @@ declare function AuthCtx<TResolve extends Record<string, unknown> = Record<strin
432
389
  }>;
433
390
  };
434
391
  /**
435
- * Extract the `ctx.auth` shape from an {@link AuthCtx} result.
392
+ * Extract the resolved `auth` context type from an {@link AuthCtx} instance.
393
+ *
394
+ * Use this to type function parameters or variables that receive the
395
+ * enriched auth context produced by `AuthCtx`. The inferred type includes
396
+ * `userId`, `user`, `getUserIdentity`, and any additional fields added
397
+ * by the `resolve` callback. This is the generic utility for reusing the
398
+ * enriched auth shape without manually duplicating conditional auth types.
436
399
  *
437
- * Follows the same pattern as `Infer<typeof validator>` in Convex
438
- * and `z.infer<typeof schema>` in Zod.
400
+ * @typeParam T - An `AuthCtx` return value (must have an `input` method
401
+ * that returns `{ ctx: { auth: ... } }`).
439
402
  *
440
403
  * @example
441
404
  * ```ts
442
405
  * const authCtx = AuthCtx(auth, {
443
- * resolve: async (ctx, user) => ({ groupId: "abc", role: "admin" }),
406
+ * resolve: async (ctx, user) => ({ orgId: user.orgId }),
444
407
  * });
445
- * type MyAuth = InferAuth<typeof authCtx>;
446
- * // { getUserIdentity, userId, user, groupId: string, role: string }
408
+ * type Auth = InferAuth<typeof authCtx>;
409
+ * // Auth = { userId: Id<"User">; user: UserDoc; getUserIdentity: ...; orgId: string }
447
410
  * ```
411
+ *
412
+ * @see {@link createAuth}
448
413
  */
449
414
  type InferAuth<T extends {
450
415
  input: (...args: any[]) => Promise<{
@@ -454,5 +419,5 @@ type InferAuth<T extends {
454
419
  }>;
455
420
  }> = Awaited<ReturnType<T["input"]>>["ctx"]["auth"];
456
421
  //#endregion
457
- export { Auth, AuthClassConfig, AuthCtx, AuthCtxConfig, InferAuth, UserDoc };
422
+ export { AuthApi, AuthApiBase, AuthConfig, AuthCtx, AuthCtxConfig, AuthResolvedContext, ConvexAuthResult, InferAuth, InferClientApi, UserDoc, createAuth };
458
423
  //# sourceMappingURL=auth.d.ts.map