@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
@@ -0,0 +1,13 @@
1
+ import { AuthError } from "./authError.js";
2
+
3
+ //#region src/server/identity.ts
4
+ /** @internal */
5
+ function userIdFromIdentitySubject(subject) {
6
+ const [userId, ...rest] = subject.split("|");
7
+ if (typeof userId !== "string" || userId.length === 0 || rest.length === 0 || rest.some((segment) => segment.length === 0)) throw new AuthError("INTERNAL_ERROR", "Authenticated identity subject is malformed.");
8
+ return userId;
9
+ }
10
+
11
+ //#endregion
12
+ export { userIdFromIdentitySubject };
13
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","names":[],"sources":["../../src/server/identity.ts"],"sourcesContent":["import { AuthError } from \"./authError\";\n\n/** @internal */\nexport function userIdFromIdentitySubject(subject: string): string {\n const [userId, ...rest] = subject.split(\"|\");\n if (\n typeof userId !== \"string\" ||\n userId.length === 0 ||\n rest.length === 0 ||\n rest.some((segment) => segment.length === 0)\n ) {\n throw new AuthError(\n \"INTERNAL_ERROR\",\n \"Authenticated identity subject is malformed.\",\n );\n }\n return userId;\n}\n"],"mappings":";;;;AAGA,SAAgB,0BAA0B,SAAyB;CACjE,MAAM,CAAC,QAAQ,GAAG,QAAQ,QAAQ,MAAM,IAAI;AAC5C,KACE,OAAO,WAAW,YAClB,OAAO,WAAW,KAClB,KAAK,WAAW,KAChB,KAAK,MAAM,YAAY,QAAQ,WAAW,EAAE,CAE5C,OAAM,IAAI,UACR,kBACA,+CACD;AAEH,QAAO"}
@@ -1,182 +1,4 @@
1
- //#region src/server/index.d.ts
2
- /** Cookie lifetime configuration for auth tokens. */
3
- type AuthCookieConfig = {
4
- /** Maximum age in seconds, or `null` for session cookies. */maxAge: number | null;
5
- };
6
- /** Raw cookie values extracted from a request. */
7
- type AuthCookies = {
8
- /** The JWT access token, or `null` when absent. */token: string | null; /** The refresh token, or `null` when absent. */
9
- refreshToken: string | null; /** The OAuth PKCE verifier, or `null` when absent. */
10
- verifier: string | null;
11
- };
12
- /** A structured cookie ready to be set via any framework's cookie API. */
13
- type AuthCookie = {
14
- name: string;
15
- value: string;
16
- options: {
17
- path: string;
18
- httpOnly: boolean;
19
- secure: boolean;
20
- sameSite: "lax" | "strict" | "none";
21
- maxAge?: number;
22
- expires?: Date;
23
- };
24
- };
25
- /**
26
- * Options for the SSR auth helper returned by {@link server}.
27
- */
28
- type ServerOptions = {
29
- /** Convex deployment URL (e.g. `https://your-app.convex.cloud`). */url: string;
30
- /**
31
- * Path the client POSTs auth actions to. Defaults to `"/api/auth"`.
32
- * Must match the `proxy` option on the client.
33
- */
34
- apiRoute?: string; /** Cookie `maxAge` in seconds, or `null` for session cookies. */
35
- cookieMaxAge?: number | null; /** Enable verbose debug logging for token refresh and cookie operations. */
36
- verbose?: boolean;
37
- /**
38
- * Control whether `refresh()` handles OAuth `?code=` query parameters.
39
- *
40
- * - `true` (default): always exchange the code on GET requests with `text/html` accept.
41
- * - `false`: never exchange — useful when only the client handles codes.
42
- * - A function: called with the `Request` for per-request decisions.
43
- */
44
- shouldHandleCode?: ((request: Request) => boolean | Promise<boolean>) | boolean;
45
- };
46
- type RefreshResult = {
47
- /** Structured cookies to set on the response. */cookies: AuthCookie[]; /** URL to redirect to (set after OAuth code exchange). */
48
- redirect?: string; /** JWT for SSR hydration, or `null` if not authenticated. */
49
- token: string | null;
50
- };
51
- /**
52
- * Derive the cookie names used for auth tokens.
53
- *
54
- * On localhost the names are unprefixed; on production hosts they
55
- * use the `__Host-` prefix for tighter security.
56
- *
57
- * @param host - The `Host` header value. Omit to use unprefixed names.
58
- * @returns An object with `token`, `refreshToken`, and `verifier` cookie names.
59
- */
60
- declare function authCookieNames(host?: string): {
61
- token: string;
62
- refreshToken: string;
63
- verifier: string;
64
- };
65
- /**
66
- * Parse auth cookie values from a raw `Cookie` header string.
67
- *
68
- * @param cookieHeader - The raw `Cookie` header, or `null`/`undefined`.
69
- * @param host - The `Host` header, used to determine cookie name prefixes.
70
- * @returns Parsed {@link AuthCookies} with `token`, `refreshToken`, and `verifier`.
71
- */
72
- declare function parseAuthCookies(cookieHeader: string | null | undefined, host?: string): AuthCookies;
73
- /**
74
- * Serialize auth cookies into `Set-Cookie` header strings.
75
- *
76
- * Nulled-out values produce deletion cookies (maxAge 0, expired date).
77
- *
78
- * @param cookies - The auth cookie values to serialize.
79
- * @param host - The `Host` header, used for cookie name prefixes and `Secure` flag.
80
- * @param config - Cookie lifetime config. Defaults to session cookies.
81
- * @returns An array of three `Set-Cookie` header strings.
82
- */
83
- declare function serializeAuthCookies(cookies: AuthCookies, host?: string, config?: AuthCookieConfig): string[];
84
- /**
85
- * Build structured cookie objects for any SSR framework.
86
- *
87
- * Use with SvelteKit's `event.cookies.set()`, TanStack Start's `setCookie()`,
88
- * Next.js's `cookies().set()`, or any other framework cookie API.
89
- */
90
- declare function structuredAuthCookies(cookies: AuthCookies, host?: string, config?: AuthCookieConfig): AuthCookie[];
91
- /**
92
- * Check whether a request pathname matches the auth proxy route.
93
- *
94
- * Handles trailing-slash ambiguity: both `/api/auth` and `/api/auth/`
95
- * match regardless of how `apiRoute` is configured.
96
- *
97
- * @param pathname - The request URL pathname.
98
- * @param apiRoute - The configured proxy route (e.g. `"/api/auth"`).
99
- * @returns `true` when the pathname matches the proxy route.
100
- */
101
- declare function shouldProxyAuthAction(pathname: string, apiRoute: string): boolean;
102
- /**
103
- * Create an SSR auth helper for server-side frameworks.
104
- *
105
- * Handles cookie-based token management, OAuth code exchange,
106
- * and automatic JWT refresh on page loads. Works with any
107
- * framework that gives you a `Request` object — SvelteKit,
108
- * TanStack Start, Remix, Next.js, etc.
109
- *
110
- * @param options - SSR configuration (Convex URL, proxy route, cookie lifetime).
111
- * @returns An object with `token`, `verify`, `proxy`, and `refresh` methods.
112
- *
113
- * @example SvelteKit hooks
114
- * ```ts
115
- * // src/hooks.server.ts
116
- * import { server } from '@robelest/convex-auth/server';
117
- *
118
- * const auth = server({ url: CONVEX_URL });
119
- *
120
- * export const handle = async ({ event, resolve }) => {
121
- * const { cookies, token } = await auth.refresh(event.request);
122
- * for (const c of cookies) event.cookies.set(c.name, c.value, c.options);
123
- * event.locals.token = token;
124
- * return resolve(event);
125
- * };
126
- * ```
127
- *
128
- * @example Generic proxy endpoint
129
- * ```ts
130
- * if (shouldProxyAuthAction(url.pathname, '/api/auth')) {
131
- * return auth.proxy(request);
132
- * }
133
- * ```
134
- */
135
- declare function server(options: ServerOptions): {
136
- /**
137
- * Read the JWT from the request cookies without any validation.
138
- *
139
- * @param request - The incoming HTTP request.
140
- * @returns The raw JWT string, or `null` when no token cookie exists.
141
- */
142
- token(request: Request): string | null;
143
- /**
144
- * Check whether the request carries a non-expired JWT.
145
- *
146
- * Performs local expiration checking only (no network call).
147
- * Use for lightweight auth guards in middleware.
148
- *
149
- * @param request - The incoming HTTP request.
150
- * @returns `true` when a valid, non-expired JWT exists in the cookies.
151
- */
152
- verify(request: Request): Promise<boolean>;
153
- /**
154
- * Handle a proxied `signIn` or `signOut` POST from the client.
155
- *
156
- * Validates the route, method, and origin, then forwards the
157
- * action to Convex and returns a `Response` with updated
158
- * `Set-Cookie` headers. The client never sees the real
159
- * refresh token — it stays in httpOnly cookies.
160
- *
161
- * @param request - The incoming POST request from the client.
162
- * @returns A JSON `Response` with auth result and cookie headers.
163
- */
164
- proxy(request: Request): Promise<Response>;
165
- /**
166
- * Refresh auth tokens on page load.
167
- *
168
- * Call this in your server hooks/middleware on every request.
169
- * It handles three scenarios:
170
- *
171
- * 1. **OAuth code exchange** — exchanges a `?code=` query param for tokens and returns a redirect URL.
172
- * 2. **Token refresh** — refreshes the JWT if it's close to expiry.
173
- * 3. **No-op** — returns the existing token when no refresh is needed.
174
- *
175
- * @param request - The incoming HTTP request.
176
- * @returns Structured cookies to set on the response, an optional redirect URL, and the current JWT.
177
- */
178
- refresh(request: Request): Promise<RefreshResult>;
179
- };
180
- //#endregion
181
- export { AuthCookie, AuthCookieConfig, AuthCookies, RefreshResult, ServerOptions, authCookieNames, parseAuthCookies, serializeAuthCookies, server, shouldProxyAuthAction, structuredAuthCookies };
182
- //# sourceMappingURL=index.d.ts.map
1
+ import { AuthApi, AuthApiBase, AuthConfig, AuthCtx, ConvexAuthResult, InferAuth, InferClientApi, UserDoc, createAuth } from "./auth.js";
2
+ import { EnterpriseAdminAuthorizationInput, EnterpriseAdminPermission, EnterpriseAuthorizer, EnterpriseMountOptions, enterprise, scim, sso } from "./mounts.js";
3
+ import { AuthCookie, AuthCookieConfig, AuthCookies, RefreshResult, ServerOptions, authCookieNames, parseAuthCookies, serializeAuthCookies, server, shouldProxyAuthAction, structuredAuthCookies } from "./ssr.js";
4
+ export { type AuthApi, type AuthApiBase, type AuthConfig, type AuthCookie, type AuthCookieConfig, type AuthCookies, AuthCtx, type ConvexAuthResult, type EnterpriseAdminAuthorizationInput, type EnterpriseAdminPermission, type EnterpriseAuthorizer, type EnterpriseMountOptions, type InferAuth, type InferClientApi, type RefreshResult, type ServerOptions, type UserDoc, authCookieNames, createAuth, enterprise, parseAuthCookies, scim, serializeAuthCookies, server, shouldProxyAuthAction, sso, structuredAuthCookies };
@@ -1,377 +1,5 @@
1
- import { isLocalHost } from "./utils.js";
2
- import { ConvexError } from "convex/values";
3
- import { parse, serialize } from "cookie";
4
- import { ConvexHttpClient } from "convex/browser";
5
- import { jwtDecode } from "jwt-decode";
1
+ import { AuthCtx, createAuth } from "./auth.js";
2
+ import { enterprise, scim, sso } from "./mounts.js";
3
+ import { authCookieNames, parseAuthCookies, serializeAuthCookies, server, shouldProxyAuthAction, structuredAuthCookies } from "./ssr.js";
6
4
 
7
- //#region src/server/index.ts
8
- /**
9
- * Derive the cookie names used for auth tokens.
10
- *
11
- * On localhost the names are unprefixed; on production hosts they
12
- * use the `__Host-` prefix for tighter security.
13
- *
14
- * @param host - The `Host` header value. Omit to use unprefixed names.
15
- * @returns An object with `token`, `refreshToken`, and `verifier` cookie names.
16
- */
17
- function authCookieNames(host) {
18
- const prefix = isLocalHost(host) ? "" : "__Host-";
19
- return {
20
- token: `${prefix}__convexAuthJWT`,
21
- refreshToken: `${prefix}__convexAuthRefreshToken`,
22
- verifier: `${prefix}__convexAuthOAuthVerifier`
23
- };
24
- }
25
- /**
26
- * Parse auth cookie values from a raw `Cookie` header string.
27
- *
28
- * @param cookieHeader - The raw `Cookie` header, or `null`/`undefined`.
29
- * @param host - The `Host` header, used to determine cookie name prefixes.
30
- * @returns Parsed {@link AuthCookies} with `token`, `refreshToken`, and `verifier`.
31
- */
32
- function parseAuthCookies(cookieHeader, host) {
33
- const names = authCookieNames(host);
34
- const parsed = parse(cookieHeader ?? "");
35
- return {
36
- token: parsed[names.token] ?? null,
37
- refreshToken: parsed[names.refreshToken] ?? null,
38
- verifier: parsed[names.verifier] ?? null
39
- };
40
- }
41
- /**
42
- * Serialize auth cookies into `Set-Cookie` header strings.
43
- *
44
- * Nulled-out values produce deletion cookies (maxAge 0, expired date).
45
- *
46
- * @param cookies - The auth cookie values to serialize.
47
- * @param host - The `Host` header, used for cookie name prefixes and `Secure` flag.
48
- * @param config - Cookie lifetime config. Defaults to session cookies.
49
- * @returns An array of three `Set-Cookie` header strings.
50
- */
51
- function serializeAuthCookies(cookies, host, config = { maxAge: null }) {
52
- const names = authCookieNames(host);
53
- const base = {
54
- path: "/",
55
- httpOnly: true,
56
- sameSite: "lax",
57
- secure: !isLocalHost(host)
58
- };
59
- const maxAge = config.maxAge ?? void 0;
60
- return [
61
- serialize(names.token, cookies.token ?? "", {
62
- ...base,
63
- maxAge: cookies.token === null ? 0 : maxAge,
64
- expires: cookies.token === null ? /* @__PURE__ */ new Date(0) : void 0
65
- }),
66
- serialize(names.refreshToken, cookies.refreshToken ?? "", {
67
- ...base,
68
- maxAge: cookies.refreshToken === null ? 0 : maxAge,
69
- expires: cookies.refreshToken === null ? /* @__PURE__ */ new Date(0) : void 0
70
- }),
71
- serialize(names.verifier, cookies.verifier ?? "", {
72
- ...base,
73
- maxAge: cookies.verifier === null ? 0 : maxAge,
74
- expires: cookies.verifier === null ? /* @__PURE__ */ new Date(0) : void 0
75
- })
76
- ];
77
- }
78
- /**
79
- * Build structured cookie objects for any SSR framework.
80
- *
81
- * Use with SvelteKit's `event.cookies.set()`, TanStack Start's `setCookie()`,
82
- * Next.js's `cookies().set()`, or any other framework cookie API.
83
- */
84
- function structuredAuthCookies(cookies, host, config = { maxAge: null }) {
85
- const names = authCookieNames(host);
86
- const base = {
87
- path: "/",
88
- httpOnly: true,
89
- secure: !isLocalHost(host),
90
- sameSite: "lax"
91
- };
92
- const maxAge = config.maxAge ?? void 0;
93
- return [
94
- {
95
- name: names.token,
96
- value: cookies.token ?? "",
97
- options: {
98
- ...base,
99
- maxAge: cookies.token === null ? 0 : maxAge,
100
- expires: cookies.token === null ? /* @__PURE__ */ new Date(0) : void 0
101
- }
102
- },
103
- {
104
- name: names.refreshToken,
105
- value: cookies.refreshToken ?? "",
106
- options: {
107
- ...base,
108
- maxAge: cookies.refreshToken === null ? 0 : maxAge,
109
- expires: cookies.refreshToken === null ? /* @__PURE__ */ new Date(0) : void 0
110
- }
111
- },
112
- {
113
- name: names.verifier,
114
- value: cookies.verifier ?? "",
115
- options: {
116
- ...base,
117
- maxAge: cookies.verifier === null ? 0 : maxAge,
118
- expires: cookies.verifier === null ? /* @__PURE__ */ new Date(0) : void 0
119
- }
120
- }
121
- ];
122
- }
123
- /**
124
- * Check whether a request pathname matches the auth proxy route.
125
- *
126
- * Handles trailing-slash ambiguity: both `/api/auth` and `/api/auth/`
127
- * match regardless of how `apiRoute` is configured.
128
- *
129
- * @param pathname - The request URL pathname.
130
- * @param apiRoute - The configured proxy route (e.g. `"/api/auth"`).
131
- * @returns `true` when the pathname matches the proxy route.
132
- */
133
- function shouldProxyAuthAction(pathname, apiRoute) {
134
- if (apiRoute.endsWith("/")) return pathname === apiRoute || pathname === apiRoute.slice(0, -1);
135
- return pathname === apiRoute || pathname === `${apiRoute}/`;
136
- }
137
- const REQUIRED_TOKEN_LIFETIME_MS = 6e4;
138
- const MINIMUM_REQUIRED_TOKEN_LIFETIME_MS = 1e4;
139
- /**
140
- * Create an SSR auth helper for server-side frameworks.
141
- *
142
- * Handles cookie-based token management, OAuth code exchange,
143
- * and automatic JWT refresh on page loads. Works with any
144
- * framework that gives you a `Request` object — SvelteKit,
145
- * TanStack Start, Remix, Next.js, etc.
146
- *
147
- * @param options - SSR configuration (Convex URL, proxy route, cookie lifetime).
148
- * @returns An object with `token`, `verify`, `proxy`, and `refresh` methods.
149
- *
150
- * @example SvelteKit hooks
151
- * ```ts
152
- * // src/hooks.server.ts
153
- * import { server } from '@robelest/convex-auth/server';
154
- *
155
- * const auth = server({ url: CONVEX_URL });
156
- *
157
- * export const handle = async ({ event, resolve }) => {
158
- * const { cookies, token } = await auth.refresh(event.request);
159
- * for (const c of cookies) event.cookies.set(c.name, c.value, c.options);
160
- * event.locals.token = token;
161
- * return resolve(event);
162
- * };
163
- * ```
164
- *
165
- * @example Generic proxy endpoint
166
- * ```ts
167
- * if (shouldProxyAuthAction(url.pathname, '/api/auth')) {
168
- * return auth.proxy(request);
169
- * }
170
- * ```
171
- */
172
- function server(options) {
173
- const convexUrl = options.url;
174
- const apiRoute = options.apiRoute ?? "/api/auth";
175
- const cookieConfig = { maxAge: options.cookieMaxAge ?? null };
176
- const verbose = options.verbose ?? false;
177
- const logVerbose = (message) => {
178
- if (!verbose) return;
179
- console.debug(`${(/* @__PURE__ */ new Date()).toISOString()} [convex-auth/server] ${message}`);
180
- };
181
- const cookieHost = (request) => {
182
- return request.headers.get("host") ?? new URL(request.url).host;
183
- };
184
- const parseRequestCookies = (request) => {
185
- return parseAuthCookies(request.headers.get("cookie"), cookieHost(request));
186
- };
187
- const attachCookies = (response, cookies) => {
188
- for (const value of cookies) response.headers.append("Set-Cookie", value);
189
- return response;
190
- };
191
- const jsonResponse = (body, status = 200) => {
192
- return new Response(JSON.stringify(body), {
193
- status,
194
- headers: { "Content-Type": "application/json" }
195
- });
196
- };
197
- const isCorsRequest = (request) => {
198
- const originHeader = request.headers.get("origin");
199
- if (originHeader === null) return false;
200
- const requestUrl = new URL(request.url);
201
- const originUrl = new URL(originHeader);
202
- return originUrl.host !== requestUrl.host || originUrl.protocol !== requestUrl.protocol;
203
- };
204
- const decodeToken = (token) => {
205
- try {
206
- return jwtDecode(token);
207
- } catch {
208
- return null;
209
- }
210
- };
211
- const convexClient = (token) => {
212
- const client = new ConvexHttpClient(convexUrl);
213
- if (token !== void 0 && token !== null) client.setAuth(token);
214
- return client;
215
- };
216
- const refreshTokens = async (request) => {
217
- const { token, refreshToken } = parseRequestCookies(request);
218
- if (refreshToken === null && token === null) {
219
- logVerbose("No auth cookies found, skipping refresh");
220
- return;
221
- }
222
- if (refreshToken === null || token === null) {
223
- logVerbose("Only one auth cookie present, clearing auth cookies");
224
- return null;
225
- }
226
- const decodedToken = decodeToken(token);
227
- if (decodedToken?.exp === void 0 || decodedToken.iat === void 0) {
228
- logVerbose("Failed to decode token, clearing auth cookies");
229
- return null;
230
- }
231
- const totalTokenLifetimeMs = decodedToken.exp * 1e3 - decodedToken.iat * 1e3;
232
- const minimumExpiration = Date.now() + Math.min(REQUIRED_TOKEN_LIFETIME_MS, Math.max(MINIMUM_REQUIRED_TOKEN_LIFETIME_MS, totalTokenLifetimeMs / 10));
233
- if (decodedToken.exp * 1e3 > minimumExpiration) {
234
- logVerbose("Token valid long enough, skipping refresh");
235
- return;
236
- }
237
- try {
238
- const result = await convexClient().action("auth:signIn", { refreshToken });
239
- if (result.tokens === void 0) throw new Error("Invalid `auth:signIn` result for token refresh");
240
- logVerbose(`Refreshed tokens, null=${result.tokens === null}`);
241
- return result.tokens;
242
- } catch (error) {
243
- console.error(error);
244
- logVerbose("Token refresh failed, clearing auth cookies");
245
- return null;
246
- }
247
- };
248
- return {
249
- token(request) {
250
- return parseRequestCookies(request).token;
251
- },
252
- async verify(request) {
253
- const token = parseRequestCookies(request).token;
254
- if (token === null) return false;
255
- const decodedToken = decodeToken(token);
256
- if (decodedToken?.exp === void 0) return false;
257
- return decodedToken.exp * 1e3 > Date.now();
258
- },
259
- async proxy(request) {
260
- if (!shouldProxyAuthAction(new URL(request.url).pathname, apiRoute)) return new Response("Invalid route", { status: 404 });
261
- if (request.method !== "POST") return new Response("Invalid method", { status: 405 });
262
- if (isCorsRequest(request)) return new Response("Invalid origin", { status: 403 });
263
- const body = await request.json();
264
- const action = body.action;
265
- const args = body.args ?? {};
266
- if (action !== "auth:signIn" && action !== "auth:signOut") return new Response("Invalid action", { status: 400 });
267
- const currentCookies = parseRequestCookies(request);
268
- const host = cookieHost(request);
269
- if (action === "auth:signIn") {
270
- if (args.refreshToken !== void 0) {
271
- if (currentCookies.refreshToken === null) return jsonResponse({ tokens: null });
272
- args.refreshToken = currentCookies.refreshToken;
273
- }
274
- const client = convexClient(args.refreshToken !== void 0 || args.params?.code !== void 0 ? null : currentCookies.token);
275
- try {
276
- const result = await client.action("auth:signIn", args);
277
- if (result.redirect !== void 0) return attachCookies(jsonResponse({ redirect: result.redirect }), serializeAuthCookies({
278
- ...currentCookies,
279
- verifier: result.verifier ?? null
280
- }, host, cookieConfig));
281
- if (result.tokens !== void 0) return attachCookies(jsonResponse({ tokens: result.tokens === null ? null : {
282
- token: result.tokens.token,
283
- refreshToken: "dummy"
284
- } }), serializeAuthCookies({
285
- token: result.tokens?.token ?? null,
286
- refreshToken: result.tokens?.refreshToken ?? null,
287
- verifier: null
288
- }, host, cookieConfig));
289
- return jsonResponse(result);
290
- } catch (error) {
291
- return attachCookies(jsonResponse(error instanceof ConvexError && typeof error.data === "object" && error.data !== null && "code" in error.data ? {
292
- error: error.data.message ?? String(error),
293
- authError: error.data
294
- } : { error: error instanceof Error ? error.message : String(error) }, 400), serializeAuthCookies({
295
- token: null,
296
- refreshToken: null,
297
- verifier: null
298
- }, host, cookieConfig));
299
- }
300
- }
301
- try {
302
- await convexClient(currentCookies.token).action("auth:signOut");
303
- } catch (error) {
304
- console.error(error);
305
- }
306
- return attachCookies(jsonResponse(null), serializeAuthCookies({
307
- token: null,
308
- refreshToken: null,
309
- verifier: null
310
- }, host, cookieConfig));
311
- },
312
- async refresh(request) {
313
- const host = cookieHost(request);
314
- const currentToken = parseRequestCookies(request).token;
315
- if (isCorsRequest(request)) return {
316
- cookies: structuredAuthCookies({
317
- token: null,
318
- refreshToken: null,
319
- verifier: null
320
- }, host, cookieConfig),
321
- token: null
322
- };
323
- const requestUrl = new URL(request.url);
324
- const code = requestUrl.searchParams.get("code");
325
- const shouldHandleCode = options.shouldHandleCode === void 0 ? true : typeof options.shouldHandleCode === "function" ? await options.shouldHandleCode(request) : options.shouldHandleCode;
326
- if (code !== null && request.method === "GET" && request.headers.get("accept")?.includes("text/html") && shouldHandleCode) {
327
- const requestCookies = parseRequestCookies(request);
328
- const redirectUrl = new URL(requestUrl);
329
- redirectUrl.searchParams.delete("code");
330
- try {
331
- const result = await convexClient().action("auth:signIn", {
332
- params: { code },
333
- verifier: requestCookies.verifier ?? void 0
334
- });
335
- if (result.tokens === void 0) throw new Error("Invalid `auth:signIn` result for code exchange");
336
- return {
337
- cookies: structuredAuthCookies({
338
- token: result.tokens?.token ?? null,
339
- refreshToken: result.tokens?.refreshToken ?? null,
340
- verifier: null
341
- }, host, cookieConfig),
342
- redirect: redirectUrl.toString(),
343
- token: result.tokens?.token ?? null
344
- };
345
- } catch (error) {
346
- console.error(error);
347
- return {
348
- cookies: structuredAuthCookies({
349
- token: null,
350
- refreshToken: null,
351
- verifier: null
352
- }, host, cookieConfig),
353
- redirect: redirectUrl.toString(),
354
- token: null
355
- };
356
- }
357
- }
358
- const tokens = await refreshTokens(request);
359
- if (tokens === void 0) return {
360
- cookies: [],
361
- token: currentToken
362
- };
363
- return {
364
- cookies: structuredAuthCookies({
365
- token: tokens?.token ?? null,
366
- refreshToken: tokens?.refreshToken ?? null,
367
- verifier: null
368
- }, host, cookieConfig),
369
- token: tokens?.token ?? null
370
- };
371
- }
372
- };
373
- }
374
-
375
- //#endregion
376
- export { authCookieNames, parseAuthCookies, serializeAuthCookies, server, shouldProxyAuthAction, structuredAuthCookies };
377
- //# sourceMappingURL=index.js.map
5
+ export { AuthCtx, authCookieNames, createAuth, enterprise, parseAuthCookies, scim, serializeAuthCookies, server, shouldProxyAuthAction, sso, structuredAuthCookies };
@@ -0,0 +1 @@
1
+ export { };
@@ -1,22 +1,12 @@
1
- import { throwAuthError } from "../errors.js";
2
1
  import { generateRandomString, sha256 } from "./utils.js";
3
2
 
4
- //#region src/server/implementation/keys.ts
5
- /**
6
- * API Key crypto utilities.
7
- *
8
- * Uses `@oslojs/crypto` primitives for key generation and hashing:
9
- * - SHA-256 for hashing keys (API keys have high entropy, no need for bcrypt)
10
- * - Cryptographically secure random generation for key material
11
- *
12
- * @module
13
- */
14
- const DEFAULT_KEY_PREFIX = "sk_live_";
3
+ //#region src/server/keys.ts
4
+ const DEFAULT_KEY_PREFIX = "sk_";
15
5
  const KEY_RANDOM_LENGTH = 32;
16
6
  const KEY_RANDOM_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
17
7
  /**
18
8
  * How many characters of the full key to store as the visible prefix.
19
- * Includes the prefix string (e.g. "sk_live_") plus a few random chars.
9
+ * Includes the prefix string (e.g. "sk_") plus a few random chars.
20
10
  */
21
11
  const VISIBLE_PREFIX_EXTRA_CHARS = 4;
22
12
  /**
@@ -25,9 +15,10 @@ const VISIBLE_PREFIX_EXTRA_CHARS = 4;
25
15
  * Returns the raw key (to be shown once to the user) and metadata for storage.
26
16
  * The raw key is `{prefix}{32 random alphanumeric chars}`.
27
17
  *
28
- * @param prefix - Key prefix, defaults to "sk_live_"
18
+ * @param prefix - Key prefix, defaults to "sk_"
29
19
  * @returns `{ raw, hashedKey, displayPrefix }`
30
20
  */
21
+ /** @internal */
31
22
  async function generateApiKey(prefix = DEFAULT_KEY_PREFIX) {
32
23
  const raw = `${prefix}${generateRandomString(KEY_RANDOM_LENGTH, KEY_RANDOM_ALPHABET)}`;
33
24
  return {
@@ -41,6 +32,7 @@ async function generateApiKey(prefix = DEFAULT_KEY_PREFIX) {
41
32
  *
42
33
  * Used during Bearer token verification to find the stored key record.
43
34
  */
35
+ /** @internal */
44
36
  async function hashApiKey(rawKey) {
45
37
  return sha256(rawKey);
46
38
  }
@@ -53,6 +45,7 @@ async function hashApiKey(rawKey) {
53
45
  * A wildcard action `"*"` grants all actions on that resource.
54
46
  * A wildcard resource `"*"` grants the action on all resources.
55
47
  */
48
+ /** @internal */
56
49
  function buildScopeChecker(scopes) {
57
50
  return {
58
51
  scopes,
@@ -62,22 +55,6 @@ function buildScopeChecker(scopes) {
62
55
  };
63
56
  }
64
57
  /**
65
- * Validate that requested scopes are a subset of the allowed scopes
66
- * defined in the API key config.
67
- *
68
- * @param requested - Scopes the user wants on the new key.
69
- * @param allowed - The scope definition from `apiKeys.scopes` config.
70
- * @throws Error if any requested scope is not in the allowed set.
71
- */
72
- function validateScopes(requested, allowed) {
73
- if (!allowed) return;
74
- for (const scope of requested) {
75
- const allowedActions = allowed[scope.resource];
76
- if (!allowedActions) throwAuthError("API_KEY_INVALID_SCOPE", `Unknown resource "${scope.resource}" in API key scopes. Allowed resources: ${Object.keys(allowed).join(", ")}`);
77
- for (const action of scope.actions) if (action !== "*" && !allowedActions.includes(action)) throwAuthError("API_KEY_INVALID_SCOPE", `Unknown action "${action}" for resource "${scope.resource}". Allowed actions: ${allowedActions.join(", ")}`);
78
- }
79
- }
80
- /**
81
58
  * Check whether a key is rate-limited based on its stored state.
82
59
  *
83
60
  * Uses the same token-bucket algorithm as sign-in rate limiting:
@@ -85,6 +62,7 @@ function validateScopes(requested, allowed) {
85
62
  *
86
63
  * @returns `{ limited: boolean; newState: { attemptsLeft, lastAttemptTime } }`
87
64
  */
65
+ /** @internal */
88
66
  function checkKeyRateLimit(rateLimit, state) {
89
67
  const now = Date.now();
90
68
  if (!state) return {
@@ -114,5 +92,5 @@ function checkKeyRateLimit(rateLimit, state) {
114
92
  }
115
93
 
116
94
  //#endregion
117
- export { buildScopeChecker, checkKeyRateLimit, generateApiKey, hashApiKey, validateScopes };
95
+ export { buildScopeChecker, checkKeyRateLimit, generateApiKey, hashApiKey };
118
96
  //# sourceMappingURL=keys.js.map