@robelest/convex-auth 0.0.3-preview → 0.0.3-preview.3

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 (304) hide show
  1. package/dist/bin.cjs +15 -15
  2. package/dist/client/index.d.ts +40 -12
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +73 -12
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/component/_generated/api.d.ts +2 -2
  7. package/dist/component/_generated/api.d.ts.map +1 -1
  8. package/dist/component/_generated/component.d.ts +1 -1
  9. package/dist/component/_generated/component.d.ts.map +1 -1
  10. package/dist/component/{portalBridge.d.ts → bridge.d.ts} +2 -2
  11. package/dist/component/bridge.d.ts.map +1 -0
  12. package/dist/component/{portalBridge.js → bridge.js} +2 -2
  13. package/dist/component/bridge.js.map +1 -0
  14. package/dist/component/index.d.ts +11 -4
  15. package/dist/component/index.d.ts.map +1 -1
  16. package/dist/component/index.js +8 -2
  17. package/dist/component/index.js.map +1 -1
  18. package/dist/component/public.d.ts +24 -17
  19. package/dist/component/public.d.ts.map +1 -1
  20. package/dist/component/public.js +23 -4
  21. package/dist/component/public.js.map +1 -1
  22. package/dist/component/schema.d.ts +11 -7
  23. package/dist/component/schema.d.ts.map +1 -1
  24. package/dist/component/schema.js +4 -1
  25. package/dist/component/schema.js.map +1 -1
  26. package/dist/providers/anonymous.d.ts +3 -0
  27. package/dist/providers/anonymous.d.ts.map +1 -1
  28. package/dist/providers/anonymous.js +3 -0
  29. package/dist/providers/anonymous.js.map +1 -1
  30. package/dist/providers/credentials.d.ts +3 -0
  31. package/dist/providers/credentials.d.ts.map +1 -1
  32. package/dist/providers/credentials.js +3 -0
  33. package/dist/providers/credentials.js.map +1 -1
  34. package/dist/providers/email.d.ts +3 -0
  35. package/dist/providers/email.d.ts.map +1 -1
  36. package/dist/providers/email.js +3 -0
  37. package/dist/providers/email.js.map +1 -1
  38. package/dist/providers/passkey.d.ts +7 -1
  39. package/dist/providers/passkey.d.ts.map +1 -1
  40. package/dist/providers/passkey.js +7 -1
  41. package/dist/providers/passkey.js.map +1 -1
  42. package/dist/providers/password.d.ts +3 -0
  43. package/dist/providers/password.d.ts.map +1 -1
  44. package/dist/providers/password.js +3 -0
  45. package/dist/providers/password.js.map +1 -1
  46. package/dist/providers/phone.d.ts +3 -0
  47. package/dist/providers/phone.d.ts.map +1 -1
  48. package/dist/providers/phone.js +3 -0
  49. package/dist/providers/phone.js.map +1 -1
  50. package/dist/providers/totp.d.ts +8 -0
  51. package/dist/providers/totp.d.ts.map +1 -1
  52. package/dist/providers/totp.js +8 -0
  53. package/dist/providers/totp.js.map +1 -1
  54. package/dist/server/{convex-auth.d.ts → auth.d.ts} +226 -36
  55. package/dist/server/auth.d.ts.map +1 -0
  56. package/dist/server/{convex-auth.js → auth.js} +287 -111
  57. package/dist/server/auth.js.map +1 -0
  58. package/dist/server/errors.d.ts +148 -0
  59. package/dist/server/errors.d.ts.map +1 -0
  60. package/dist/server/errors.js +179 -0
  61. package/dist/server/errors.js.map +1 -0
  62. package/dist/server/implementation/index.d.ts +170 -48
  63. package/dist/server/implementation/index.d.ts.map +1 -1
  64. package/dist/server/implementation/index.js +383 -167
  65. package/dist/server/implementation/index.js.map +1 -1
  66. package/dist/server/implementation/{apiKey.d.ts → keys.d.ts} +1 -1
  67. package/dist/server/implementation/keys.d.ts.map +1 -0
  68. package/dist/server/implementation/{apiKey.js → keys.js} +4 -5
  69. package/dist/server/implementation/keys.js.map +1 -0
  70. package/dist/server/implementation/mutations/{modifyAccount.d.ts → account.d.ts} +3 -3
  71. package/dist/server/implementation/mutations/account.d.ts.map +1 -0
  72. package/dist/server/implementation/mutations/{modifyAccount.js → account.js} +4 -3
  73. package/dist/server/implementation/mutations/account.js.map +1 -0
  74. package/dist/server/implementation/mutations/{createVerificationCode.d.ts → code.d.ts} +1 -1
  75. package/dist/server/implementation/mutations/code.d.ts.map +1 -0
  76. package/dist/server/implementation/mutations/{createVerificationCode.js → code.js} +2 -2
  77. package/dist/server/implementation/mutations/code.js.map +1 -0
  78. package/dist/server/implementation/mutations/index.d.ts +33 -33
  79. package/dist/server/implementation/mutations/index.d.ts.map +1 -1
  80. package/dist/server/implementation/mutations/index.js +22 -22
  81. package/dist/server/implementation/mutations/index.js.map +1 -1
  82. package/dist/server/implementation/mutations/{invalidateSessions.d.ts → invalidate.d.ts} +1 -1
  83. package/dist/server/implementation/mutations/invalidate.d.ts.map +1 -0
  84. package/dist/server/implementation/mutations/{invalidateSessions.js → invalidate.js} +2 -2
  85. package/dist/server/implementation/mutations/invalidate.js.map +1 -0
  86. package/dist/server/implementation/mutations/{userOAuth.d.ts → oauth.d.ts} +3 -3
  87. package/dist/server/implementation/mutations/oauth.d.ts.map +1 -0
  88. package/dist/server/implementation/mutations/{userOAuth.js → oauth.js} +4 -3
  89. package/dist/server/implementation/mutations/oauth.js.map +1 -0
  90. package/dist/server/implementation/mutations/{refreshSession.d.ts → refresh.d.ts} +1 -1
  91. package/dist/server/implementation/mutations/refresh.d.ts.map +1 -0
  92. package/dist/server/implementation/mutations/{refreshSession.js → refresh.js} +3 -3
  93. package/dist/server/implementation/mutations/refresh.js.map +1 -0
  94. package/dist/server/implementation/mutations/{createAccountFromCredentials.d.ts → register.d.ts} +4 -4
  95. package/dist/server/implementation/mutations/register.d.ts.map +1 -0
  96. package/dist/server/implementation/mutations/{createAccountFromCredentials.js → register.js} +4 -3
  97. package/dist/server/implementation/mutations/register.js.map +1 -0
  98. package/dist/server/implementation/mutations/{retrieveAccountWithCredentials.d.ts → retrieve.d.ts} +3 -3
  99. package/dist/server/implementation/mutations/retrieve.d.ts.map +1 -0
  100. package/dist/server/implementation/mutations/{retrieveAccountWithCredentials.js → retrieve.js} +3 -3
  101. package/dist/server/implementation/mutations/retrieve.js.map +1 -0
  102. package/dist/server/implementation/mutations/{verifierSignature.d.ts → signature.d.ts} +1 -1
  103. package/dist/server/implementation/mutations/signature.d.ts.map +1 -0
  104. package/dist/server/implementation/mutations/{verifierSignature.js → signature.js} +4 -3
  105. package/dist/server/implementation/mutations/signature.js.map +1 -0
  106. package/dist/server/implementation/mutations/{signIn.d.ts → signin.d.ts} +1 -1
  107. package/dist/server/implementation/mutations/{signIn.d.ts.map → signin.d.ts.map} +1 -1
  108. package/dist/server/implementation/mutations/{signIn.js → signin.js} +2 -2
  109. package/dist/server/implementation/mutations/{signIn.js.map → signin.js.map} +1 -1
  110. package/dist/server/implementation/mutations/{signOut.d.ts → signout.d.ts} +1 -1
  111. package/dist/server/implementation/mutations/{signOut.d.ts.map → signout.d.ts.map} +1 -1
  112. package/dist/server/implementation/mutations/{signOut.js → signout.js} +2 -2
  113. package/dist/server/implementation/mutations/{signOut.js.map → signout.js.map} +1 -1
  114. package/dist/server/implementation/mutations/{storeRef.d.ts → store.d.ts} +1 -1
  115. package/dist/server/implementation/mutations/store.d.ts.map +1 -0
  116. package/dist/server/implementation/mutations/{storeRef.js → store.js} +1 -1
  117. package/dist/server/implementation/mutations/store.js.map +1 -0
  118. package/dist/server/implementation/mutations/verifier.js +1 -1
  119. package/dist/server/implementation/mutations/verifier.js.map +1 -1
  120. package/dist/server/implementation/mutations/{verifyCodeAndSignIn.d.ts → verify.d.ts} +1 -1
  121. package/dist/server/implementation/mutations/verify.d.ts.map +1 -0
  122. package/dist/server/implementation/mutations/{verifyCodeAndSignIn.js → verify.js} +3 -3
  123. package/dist/server/implementation/mutations/verify.js.map +1 -0
  124. package/dist/server/implementation/passkey.d.ts.map +1 -1
  125. package/dist/server/implementation/passkey.js +47 -55
  126. package/dist/server/implementation/passkey.js.map +1 -1
  127. package/dist/server/implementation/provider.d.ts.map +1 -1
  128. package/dist/server/implementation/provider.js +5 -4
  129. package/dist/server/implementation/provider.js.map +1 -1
  130. package/dist/server/implementation/{rateLimit.d.ts → ratelimit.d.ts} +1 -1
  131. package/dist/server/implementation/{rateLimit.d.ts.map → ratelimit.d.ts.map} +1 -1
  132. package/dist/server/implementation/{rateLimit.js → ratelimit.js} +1 -1
  133. package/dist/server/implementation/{rateLimit.js.map → ratelimit.js.map} +1 -1
  134. package/dist/server/implementation/redirects.d.ts.map +1 -1
  135. package/dist/server/implementation/redirects.js +2 -1
  136. package/dist/server/implementation/redirects.js.map +1 -1
  137. package/dist/server/implementation/{refreshTokens.d.ts → refresh.d.ts} +1 -1
  138. package/dist/server/implementation/refresh.d.ts.map +1 -0
  139. package/dist/server/implementation/{refreshTokens.js → refresh.js} +3 -2
  140. package/dist/server/implementation/refresh.js.map +1 -0
  141. package/dist/server/implementation/sessions.js +1 -1
  142. package/dist/server/implementation/sessions.js.map +1 -1
  143. package/dist/server/implementation/{signIn.d.ts → signin.d.ts} +1 -1
  144. package/dist/server/implementation/{signIn.d.ts.map → signin.d.ts.map} +1 -1
  145. package/dist/server/implementation/{signIn.js → signin.js} +12 -8
  146. package/dist/server/implementation/signin.js.map +1 -0
  147. package/dist/server/implementation/totp.d.ts.map +1 -1
  148. package/dist/server/implementation/totp.js +29 -29
  149. package/dist/server/implementation/totp.js.map +1 -1
  150. package/dist/server/implementation/types.d.ts +131 -1
  151. package/dist/server/implementation/types.d.ts.map +1 -1
  152. package/dist/server/implementation/types.js +65 -1
  153. package/dist/server/implementation/types.js.map +1 -1
  154. package/dist/server/implementation/users.d.ts.map +1 -1
  155. package/dist/server/implementation/users.js +3 -2
  156. package/dist/server/implementation/users.js.map +1 -1
  157. package/dist/server/index.d.ts +131 -1
  158. package/dist/server/index.d.ts.map +1 -1
  159. package/dist/server/index.js +117 -1
  160. package/dist/server/index.js.map +1 -1
  161. package/dist/server/oauth/{authorizationUrl.d.ts → authorization.d.ts} +1 -1
  162. package/dist/server/oauth/authorization.d.ts.map +1 -0
  163. package/dist/server/oauth/{authorizationUrl.js → authorization.js} +4 -3
  164. package/dist/server/oauth/authorization.js.map +1 -0
  165. package/dist/server/oauth/callback.d.ts.map +1 -1
  166. package/dist/server/oauth/callback.js +7 -6
  167. package/dist/server/oauth/callback.js.map +1 -1
  168. package/dist/server/oauth/checks.d.ts.map +1 -1
  169. package/dist/server/oauth/checks.js +2 -1
  170. package/dist/server/oauth/checks.js.map +1 -1
  171. package/dist/server/oauth/{convexAuth.d.ts → helpers.d.ts} +1 -1
  172. package/dist/server/oauth/helpers.d.ts.map +1 -0
  173. package/dist/server/oauth/{convexAuth.js → helpers.js} +6 -5
  174. package/dist/server/oauth/helpers.js.map +1 -0
  175. package/dist/server/oauth/lib/utils/{customFetch.d.ts → fetch.d.ts} +1 -1
  176. package/dist/server/oauth/lib/utils/fetch.d.ts.map +1 -0
  177. package/dist/server/oauth/lib/utils/{customFetch.js → fetch.js} +1 -1
  178. package/dist/server/oauth/lib/utils/fetch.js.map +1 -0
  179. package/dist/server/{provider_utils.d.ts → providers.d.ts} +1 -1
  180. package/dist/server/providers.d.ts.map +1 -0
  181. package/dist/server/{provider_utils.js → providers.js} +1 -1
  182. package/dist/server/providers.js.map +1 -0
  183. package/dist/server/{email-templates.d.ts → templates.d.ts} +8 -1
  184. package/dist/server/templates.d.ts.map +1 -0
  185. package/dist/server/{portal-email.js → templates.js} +74 -3
  186. package/dist/server/templates.js.map +1 -0
  187. package/dist/server/types.d.ts +88 -5
  188. package/dist/server/types.d.ts.map +1 -1
  189. package/dist/server/utils.d.ts.map +1 -1
  190. package/dist/server/utils.js +2 -1
  191. package/dist/server/utils.js.map +1 -1
  192. package/dist/server/version.d.ts +1 -1
  193. package/dist/server/version.d.ts.map +1 -1
  194. package/dist/server/version.js +1 -1
  195. package/dist/server/version.js.map +1 -1
  196. package/package.json +5 -1
  197. package/src/cli/index.ts +5 -5
  198. package/src/cli/{portal-link.ts → link.ts} +1 -1
  199. package/src/cli/utils.ts +1 -1
  200. package/src/client/index.ts +102 -17
  201. package/src/component/_generated/api.ts +2 -2
  202. package/src/component/_generated/component.ts +1 -1
  203. package/src/component/{portalBridge.ts → bridge.ts} +2 -2
  204. package/src/component/index.ts +10 -2
  205. package/src/component/public.ts +25 -4
  206. package/src/component/schema.ts +4 -1
  207. package/src/providers/anonymous.ts +3 -0
  208. package/src/providers/credentials.ts +3 -0
  209. package/src/providers/email.ts +3 -0
  210. package/src/providers/passkey.ts +8 -1
  211. package/src/providers/password.ts +3 -0
  212. package/src/providers/phone.ts +3 -0
  213. package/src/providers/totp.ts +9 -0
  214. package/src/server/auth.ts +969 -0
  215. package/src/server/errors.ts +275 -0
  216. package/src/server/implementation/index.ts +370 -88
  217. package/src/server/implementation/{apiKey.ts → keys.ts} +7 -6
  218. package/src/server/implementation/mutations/{modifyAccount.ts → account.ts} +3 -4
  219. package/src/server/implementation/mutations/{createVerificationCode.ts → code.ts} +1 -1
  220. package/src/server/implementation/mutations/index.ts +22 -22
  221. package/src/server/implementation/mutations/{invalidateSessions.ts → invalidate.ts} +1 -1
  222. package/src/server/implementation/mutations/{userOAuth.ts → oauth.ts} +3 -2
  223. package/src/server/implementation/mutations/{refreshSession.ts → refresh.ts} +2 -2
  224. package/src/server/implementation/mutations/{createAccountFromCredentials.ts → register.ts} +3 -2
  225. package/src/server/implementation/mutations/{retrieveAccountWithCredentials.ts → retrieve.ts} +2 -2
  226. package/src/server/implementation/mutations/{verifierSignature.ts → signature.ts} +3 -2
  227. package/src/server/implementation/mutations/{signIn.ts → signin.ts} +1 -1
  228. package/src/server/implementation/mutations/{signOut.ts → signout.ts} +1 -1
  229. package/src/server/implementation/mutations/verifier.ts +1 -1
  230. package/src/server/implementation/mutations/{verifyCodeAndSignIn.ts → verify.ts} +2 -2
  231. package/src/server/implementation/passkey.ts +86 -116
  232. package/src/server/implementation/provider.ts +5 -8
  233. package/src/server/implementation/redirects.ts +2 -3
  234. package/src/server/implementation/{refreshTokens.ts → refresh.ts} +2 -1
  235. package/src/server/implementation/sessions.ts +1 -1
  236. package/src/server/implementation/{signIn.ts → signin.ts} +13 -11
  237. package/src/server/implementation/totp.ts +60 -84
  238. package/src/server/implementation/types.ts +316 -1
  239. package/src/server/implementation/users.ts +4 -7
  240. package/src/server/index.ts +142 -3
  241. package/src/server/oauth/{authorizationUrl.ts → authorization.ts} +3 -2
  242. package/src/server/oauth/callback.ts +7 -6
  243. package/src/server/oauth/checks.ts +3 -1
  244. package/src/server/oauth/{convexAuth.ts → helpers.ts} +8 -5
  245. package/src/server/{portal-email.ts → templates.ts} +78 -2
  246. package/src/server/types.ts +133 -4
  247. package/src/server/utils.ts +3 -1
  248. package/src/server/version.ts +1 -1
  249. package/dist/component/portalBridge.d.ts.map +0 -1
  250. package/dist/component/portalBridge.js.map +0 -1
  251. package/dist/server/convex-auth.d.ts.map +0 -1
  252. package/dist/server/convex-auth.js.map +0 -1
  253. package/dist/server/convex_types.d.ts +0 -17
  254. package/dist/server/convex_types.d.ts.map +0 -1
  255. package/dist/server/convex_types.js +0 -2
  256. package/dist/server/convex_types.js.map +0 -1
  257. package/dist/server/email-templates.d.ts.map +0 -1
  258. package/dist/server/email-templates.js +0 -74
  259. package/dist/server/email-templates.js.map +0 -1
  260. package/dist/server/implementation/apiKey.d.ts.map +0 -1
  261. package/dist/server/implementation/apiKey.js.map +0 -1
  262. package/dist/server/implementation/mutations/createAccountFromCredentials.d.ts.map +0 -1
  263. package/dist/server/implementation/mutations/createAccountFromCredentials.js.map +0 -1
  264. package/dist/server/implementation/mutations/createVerificationCode.d.ts.map +0 -1
  265. package/dist/server/implementation/mutations/createVerificationCode.js.map +0 -1
  266. package/dist/server/implementation/mutations/invalidateSessions.d.ts.map +0 -1
  267. package/dist/server/implementation/mutations/invalidateSessions.js.map +0 -1
  268. package/dist/server/implementation/mutations/modifyAccount.d.ts.map +0 -1
  269. package/dist/server/implementation/mutations/modifyAccount.js.map +0 -1
  270. package/dist/server/implementation/mutations/refreshSession.d.ts.map +0 -1
  271. package/dist/server/implementation/mutations/refreshSession.js.map +0 -1
  272. package/dist/server/implementation/mutations/retrieveAccountWithCredentials.d.ts.map +0 -1
  273. package/dist/server/implementation/mutations/retrieveAccountWithCredentials.js.map +0 -1
  274. package/dist/server/implementation/mutations/storeRef.d.ts.map +0 -1
  275. package/dist/server/implementation/mutations/storeRef.js.map +0 -1
  276. package/dist/server/implementation/mutations/userOAuth.d.ts.map +0 -1
  277. package/dist/server/implementation/mutations/userOAuth.js.map +0 -1
  278. package/dist/server/implementation/mutations/verifierSignature.d.ts.map +0 -1
  279. package/dist/server/implementation/mutations/verifierSignature.js.map +0 -1
  280. package/dist/server/implementation/mutations/verifyCodeAndSignIn.d.ts.map +0 -1
  281. package/dist/server/implementation/mutations/verifyCodeAndSignIn.js.map +0 -1
  282. package/dist/server/implementation/refreshTokens.d.ts.map +0 -1
  283. package/dist/server/implementation/refreshTokens.js.map +0 -1
  284. package/dist/server/implementation/signIn.js.map +0 -1
  285. package/dist/server/oauth/authorizationUrl.d.ts.map +0 -1
  286. package/dist/server/oauth/authorizationUrl.js.map +0 -1
  287. package/dist/server/oauth/convexAuth.d.ts.map +0 -1
  288. package/dist/server/oauth/convexAuth.js.map +0 -1
  289. package/dist/server/oauth/lib/utils/customFetch.d.ts.map +0 -1
  290. package/dist/server/oauth/lib/utils/customFetch.js.map +0 -1
  291. package/dist/server/portal-email.d.ts +0 -19
  292. package/dist/server/portal-email.d.ts.map +0 -1
  293. package/dist/server/portal-email.js.map +0 -1
  294. package/dist/server/provider_utils.d.ts.map +0 -1
  295. package/dist/server/provider_utils.js.map +0 -1
  296. package/src/server/convex-auth.ts +0 -602
  297. package/src/server/convex_types.ts +0 -55
  298. package/src/server/email-templates.ts +0 -77
  299. /package/src/cli/{generateKeys.ts → keys.ts} +0 -0
  300. /package/src/cli/{portal-upload.ts → upload.ts} +0 -0
  301. /package/src/server/implementation/mutations/{storeRef.ts → store.ts} +0 -0
  302. /package/src/server/implementation/{rateLimit.ts → ratelimit.ts} +0 -0
  303. /package/src/server/oauth/lib/utils/{customFetch.ts → fetch.ts} +0 -0
  304. /package/src/server/{provider_utils.ts → providers.ts} +0 -0
@@ -10,6 +10,7 @@
10
10
 
11
11
  import { sha256, generateRandomString } from "./utils.js";
12
12
  import type { KeyScope, ScopeChecker } from "../types.js";
13
+ import { throwAuthError } from "../errors.js";
13
14
 
14
15
  // ============================================================================
15
16
  // Constants
@@ -110,16 +111,16 @@ export function validateScopes(
110
111
  for (const scope of requested) {
111
112
  const allowedActions = allowed[scope.resource];
112
113
  if (!allowedActions) {
113
- throw new Error(
114
- `Unknown resource "${scope.resource}" in API key scopes. ` +
115
- `Allowed resources: ${Object.keys(allowed).join(", ")}`,
114
+ throwAuthError(
115
+ "API_KEY_INVALID_SCOPE",
116
+ `Unknown resource "${scope.resource}" in API key scopes. Allowed resources: ${Object.keys(allowed).join(", ")}`,
116
117
  );
117
118
  }
118
119
  for (const action of scope.actions) {
119
120
  if (action !== "*" && !allowedActions.includes(action)) {
120
- throw new Error(
121
- `Unknown action "${action}" for resource "${scope.resource}". ` +
122
- `Allowed actions: ${allowedActions.join(", ")}`,
121
+ throwAuthError(
122
+ "API_KEY_INVALID_SCOPE",
123
+ `Unknown action "${action}" for resource "${scope.resource}". Allowed actions: ${allowedActions.join(", ")}`,
123
124
  );
124
125
  }
125
126
  }
@@ -4,7 +4,8 @@ import { GetProviderOrThrowFunc, hash } from "../provider.js";
4
4
  import { LOG_LEVELS, logWithLevel, maybeRedact } from "../utils.js";
5
5
  import * as Provider from "../provider.js";
6
6
  import { authDb } from "../db.js";
7
- import { AUTH_STORE_REF } from "./storeRef.js";
7
+ import { AUTH_STORE_REF } from "./store.js";
8
+ import { throwAuthError } from "../../errors.js";
8
9
 
9
10
  export const modifyAccountArgs = v.object({
10
11
  provider: v.string(),
@@ -28,9 +29,7 @@ export async function modifyAccountImpl(
28
29
  });
29
30
  const existingAccount = await db.accounts.get(provider, account.id);
30
31
  if (existingAccount === null) {
31
- throw new Error(
32
- `Cannot modify account with ID ${account.id} because it does not exist`,
33
- );
32
+ throwAuthError("ACCOUNT_NOT_FOUND", `Cannot modify account with ID ${account.id} because it does not exist`);
34
33
  }
35
34
  await db.accounts.patch(existingAccount._id, {
36
35
  secret: await hash(getProviderOrThrow(provider), account.secret),
@@ -6,7 +6,7 @@ import { getAccountOrThrow, upsertUserAndAccount } from "../users.js";
6
6
  import { getAuthSessionId } from "../sessions.js";
7
7
  import { LOG_LEVELS, logWithLevel, sha256 } from "../utils.js";
8
8
  import { authDb } from "../db.js";
9
- import { AUTH_STORE_REF } from "./storeRef.js";
9
+ import { AUTH_STORE_REF } from "./store.js";
10
10
 
11
11
  export const createVerificationCodeArgs = v.object({
12
12
  accountId: v.optional(v.string()),
@@ -1,49 +1,49 @@
1
1
  import { Infer, v } from "convex/values";
2
2
  import { MutationCtx } from "../types.js";
3
- import { signInArgs, signInImpl } from "./signIn.js";
4
- import { signOutImpl } from "./signOut.js";
5
- import { refreshSessionArgs, refreshSessionImpl } from "./refreshSession.js";
3
+ import { signInArgs, signInImpl } from "./signin.js";
4
+ import { signOutImpl } from "./signout.js";
5
+ import { refreshSessionArgs, refreshSessionImpl } from "./refresh.js";
6
6
  import {
7
7
  verifyCodeAndSignInArgs,
8
8
  verifyCodeAndSignInImpl,
9
- } from "./verifyCodeAndSignIn.js";
9
+ } from "./verify.js";
10
10
  import {
11
11
  verifierSignatureArgs,
12
12
  verifierSignatureImpl,
13
- } from "./verifierSignature.js";
14
- import { userOAuthArgs, userOAuthImpl } from "./userOAuth.js";
13
+ } from "./signature.js";
14
+ import { userOAuthArgs, userOAuthImpl } from "./oauth.js";
15
15
  import {
16
16
  createVerificationCodeArgs,
17
17
  createVerificationCodeImpl,
18
- } from "./createVerificationCode.js";
18
+ } from "./code.js";
19
19
  import {
20
20
  createAccountFromCredentialsArgs,
21
21
  createAccountFromCredentialsImpl,
22
- } from "./createAccountFromCredentials.js";
22
+ } from "./register.js";
23
23
  import {
24
24
  retrieveAccountWithCredentialsArgs,
25
25
  retrieveAccountWithCredentialsImpl,
26
- } from "./retrieveAccountWithCredentials.js";
27
- import { modifyAccountArgs, modifyAccountImpl } from "./modifyAccount.js";
26
+ } from "./retrieve.js";
27
+ import { modifyAccountArgs, modifyAccountImpl } from "./account.js";
28
28
  import {
29
29
  invalidateSessionsArgs,
30
30
  invalidateSessionsImpl,
31
- } from "./invalidateSessions.js";
31
+ } from "./invalidate.js";
32
32
  import * as Provider from "../provider.js";
33
33
  import { verifierImpl } from "./verifier.js";
34
34
  import { LOG_LEVELS, logWithLevel } from "../utils.js";
35
- export { callInvalidateSessions } from "./invalidateSessions.js";
36
- export { callModifyAccount } from "./modifyAccount.js";
37
- export { callRetreiveAccountWithCredentials } from "./retrieveAccountWithCredentials.js";
38
- export { callCreateAccountFromCredentials } from "./createAccountFromCredentials.js";
39
- export { callCreateVerificationCode } from "./createVerificationCode.js";
40
- export { callUserOAuth } from "./userOAuth.js";
41
- export { callVerifierSignature } from "./verifierSignature.js";
42
- export { callVerifyCodeAndSignIn } from "./verifyCodeAndSignIn.js";
35
+ export { callInvalidateSessions } from "./invalidate.js";
36
+ export { callModifyAccount } from "./account.js";
37
+ export { callRetreiveAccountWithCredentials } from "./retrieve.js";
38
+ export { callCreateAccountFromCredentials } from "./register.js";
39
+ export { callCreateVerificationCode } from "./code.js";
40
+ export { callUserOAuth } from "./oauth.js";
41
+ export { callVerifierSignature } from "./signature.js";
42
+ export { callVerifyCodeAndSignIn } from "./verify.js";
43
43
  export { callVerifier } from "./verifier.js";
44
- export { callRefreshSession } from "./refreshSession.js";
45
- export { callSignOut } from "./signOut.js";
46
- export { callSignIn } from "./signIn.js";
44
+ export { callRefreshSession } from "./refresh.js";
45
+ export { callSignOut } from "./signout.js";
46
+ export { callSignIn } from "./signin.js";
47
47
 
48
48
  export const storeArgs = v.object({
49
49
  args: v.union(
@@ -4,7 +4,7 @@ import { ActionCtx, MutationCtx } from "../types.js";
4
4
  import { LOG_LEVELS, logWithLevel } from "../utils.js";
5
5
  import * as Provider from "../provider.js";
6
6
  import { authDb } from "../db.js";
7
- import { AUTH_STORE_REF } from "./storeRef.js";
7
+ import { AUTH_STORE_REF } from "./store.js";
8
8
 
9
9
  export const invalidateSessionsArgs = v.object({
10
10
  userId: v.string(),
@@ -5,7 +5,8 @@ import { OAuthConfig } from "@auth/core/providers/oauth.js";
5
5
  import { upsertUserAndAccount } from "../users.js";
6
6
  import { generateRandomString, logWithLevel, sha256 } from "../utils.js";
7
7
  import { authDb } from "../db.js";
8
- import { AUTH_STORE_REF } from "./storeRef.js";
8
+ import { AUTH_STORE_REF } from "./store.js";
9
+ import { throwAuthError } from "../../errors.js";
9
10
 
10
11
  const OAUTH_SIGN_IN_EXPIRATION_MS = 1000 * 60 * 2; // 2 minutes
11
12
 
@@ -32,7 +33,7 @@ export async function userOAuthImpl(
32
33
 
33
34
  const verifier = await db.verifiers.getBySignature(signature);
34
35
  if (verifier === null) {
35
- throw new Error("Invalid state");
36
+ throwAuthError("OAUTH_INVALID_STATE");
36
37
  }
37
38
 
38
39
  const { accountId } = await upsertUserAndAccount(
@@ -9,10 +9,10 @@ import {
9
9
  parseRefreshToken,
10
10
  REFRESH_TOKEN_REUSE_WINDOW_MS,
11
11
  refreshTokenIfValid,
12
- } from "../refreshTokens.js";
12
+ } from "../refresh.js";
13
13
  import { generateTokensForSession } from "../sessions.js";
14
14
  import { authDb } from "../db.js";
15
- import { AUTH_STORE_REF } from "./storeRef.js";
15
+ import { AUTH_STORE_REF } from "./store.js";
16
16
 
17
17
  export const refreshSessionArgs = v.object({
18
18
  refreshToken: v.string(),
@@ -6,7 +6,8 @@ import { upsertUserAndAccount } from "../users.js";
6
6
  import { getAuthSessionId } from "../sessions.js";
7
7
  import { LOG_LEVELS, logWithLevel, maybeRedact } from "../utils.js";
8
8
  import { authDb } from "../db.js";
9
- import { AUTH_STORE_REF } from "./storeRef.js";
9
+ import { AUTH_STORE_REF } from "./store.js";
10
+ import { throwAuthError } from "../../errors.js";
10
11
 
11
12
  export const createAccountFromCredentialsArgs = v.object({
12
13
  provider: v.string(),
@@ -53,7 +54,7 @@ export async function createAccountFromCredentialsImpl(
53
54
  existingAccount.secret ?? "",
54
55
  ))
55
56
  ) {
56
- throw new Error(`Account ${account.id} already exists`);
57
+ throwAuthError("ACCOUNT_ALREADY_EXISTS", `Account ${account.id} already exists`);
57
58
  }
58
59
  return {
59
60
  account: existingAccount,
@@ -4,11 +4,11 @@ import {
4
4
  isSignInRateLimited,
5
5
  recordFailedSignIn,
6
6
  resetSignInRateLimit,
7
- } from "../rateLimit.js";
7
+ } from "../ratelimit.js";
8
8
  import * as Provider from "../provider.js";
9
9
  import { LOG_LEVELS, logWithLevel, maybeRedact } from "../utils.js";
10
10
  import { authDb } from "../db.js";
11
- import { AUTH_STORE_REF } from "./storeRef.js";
11
+ import { AUTH_STORE_REF } from "./store.js";
12
12
 
13
13
  export const retrieveAccountWithCredentialsArgs = v.object({
14
14
  provider: v.string(),
@@ -2,7 +2,8 @@ import { GenericId, Infer, v } from "convex/values";
2
2
  import { ActionCtx, MutationCtx } from "../types.js";
3
3
  import * as Provider from "../provider.js";
4
4
  import { authDb } from "../db.js";
5
- import { AUTH_STORE_REF } from "./storeRef.js";
5
+ import { AUTH_STORE_REF } from "./store.js";
6
+ import { throwAuthError } from "../../errors.js";
6
7
 
7
8
  export const verifierSignatureArgs = v.object({
8
9
  verifier: v.string(),
@@ -20,7 +21,7 @@ export async function verifierSignatureImpl(
20
21
  const db = authDb(ctx, config);
21
22
  const verifierDoc = await db.verifiers.getById(verifier as GenericId<"verifier">);
22
23
  if (verifierDoc === null) {
23
- throw new Error("Invalid verifier");
24
+ throwAuthError("INVALID_VERIFIER");
24
25
  }
25
26
  return await db.verifiers.patch(verifierDoc._id, { signature });
26
27
  }
@@ -6,7 +6,7 @@ import {
6
6
  maybeGenerateTokensForSession,
7
7
  } from "../sessions.js";
8
8
  import { LOG_LEVELS, logWithLevel } from "../utils.js";
9
- import { AUTH_STORE_REF } from "./storeRef.js";
9
+ import { AUTH_STORE_REF } from "./store.js";
10
10
 
11
11
  export const signInArgs = v.object({
12
12
  userId: v.string(),
@@ -3,7 +3,7 @@ import { ActionCtx, MutationCtx } from "../types.js";
3
3
  import { deleteSession, getAuthSessionId } from "../sessions.js";
4
4
  import * as Provider from "../provider.js";
5
5
  import { authDb } from "../db.js";
6
- import { AUTH_STORE_REF } from "./storeRef.js";
6
+ import { AUTH_STORE_REF } from "./store.js";
7
7
 
8
8
  type ReturnType = {
9
9
  userId: GenericId<"user">;
@@ -3,7 +3,7 @@ import { ActionCtx, MutationCtx } from "../types.js";
3
3
  import { getAuthSessionId } from "../sessions.js";
4
4
  import * as Provider from "../provider.js";
5
5
  import { authDb } from "../db.js";
6
- import { AUTH_STORE_REF } from "./storeRef.js";
6
+ import { AUTH_STORE_REF } from "./store.js";
7
7
 
8
8
  type ReturnType = GenericId<"verifier">;
9
9
 
@@ -4,7 +4,7 @@ import {
4
4
  isSignInRateLimited,
5
5
  recordFailedSignIn,
6
6
  resetSignInRateLimit,
7
- } from "../rateLimit.js";
7
+ } from "../ratelimit.js";
8
8
  import * as Provider from "../provider.js";
9
9
  import {
10
10
  createNewAndDeleteExistingSession,
@@ -15,7 +15,7 @@ import { ConvexAuthConfig } from "../../types.js";
15
15
  import { LOG_LEVELS, logWithLevel, sha256 } from "../utils.js";
16
16
  import { upsertUserAndAccount } from "../users.js";
17
17
  import { authDb } from "../db.js";
18
- import { AUTH_STORE_REF } from "./storeRef.js";
18
+ import { AUTH_STORE_REF } from "./store.js";
19
19
 
20
20
  export const verifyCodeAndSignInArgs = v.object({
21
21
  params: v.any(),