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