@robelest/convex-auth 0.0.4-preview.21 → 0.0.4-preview.23

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 (310) hide show
  1. package/dist/authorization/index.d.ts +1 -1
  2. package/dist/authorization/index.js +1 -1
  3. package/dist/authorization/index.js.map +1 -1
  4. package/dist/client/index.d.ts +1 -2
  5. package/dist/client/index.d.ts.map +1 -1
  6. package/dist/client/index.js +36 -39
  7. package/dist/client/index.js.map +1 -1
  8. package/dist/component/client/index.d.ts +1 -2
  9. package/dist/component/convex.config.d.ts +2 -2
  10. package/dist/component/convex.config.d.ts.map +1 -1
  11. package/dist/component/model.d.ts +5 -5
  12. package/dist/component/model.d.ts.map +1 -1
  13. package/dist/component/public/enterprise/audit.d.ts.map +1 -1
  14. package/dist/component/public/enterprise/audit.js.map +1 -1
  15. package/dist/component/public/enterprise/core.d.ts.map +1 -1
  16. package/dist/component/public/enterprise/core.js.map +1 -1
  17. package/dist/component/public/enterprise/domains.d.ts.map +1 -1
  18. package/dist/component/public/enterprise/domains.js.map +1 -1
  19. package/dist/component/public/enterprise/scim.d.ts.map +1 -1
  20. package/dist/component/public/enterprise/scim.js.map +1 -1
  21. package/dist/component/public/enterprise/secrets.d.ts.map +1 -1
  22. package/dist/component/public/enterprise/secrets.js.map +1 -1
  23. package/dist/component/public/enterprise/webhooks.d.ts.map +1 -1
  24. package/dist/component/public/enterprise/webhooks.js.map +1 -1
  25. package/dist/component/public/factors/devices.d.ts.map +1 -1
  26. package/dist/component/public/factors/devices.js.map +1 -1
  27. package/dist/component/public/factors/passkeys.d.ts.map +1 -1
  28. package/dist/component/public/factors/passkeys.js.map +1 -1
  29. package/dist/component/public/factors/totp.d.ts.map +1 -1
  30. package/dist/component/public/factors/totp.js.map +1 -1
  31. package/dist/component/public/groups/core.js.map +1 -1
  32. package/dist/component/public/groups/invites.d.ts.map +1 -1
  33. package/dist/component/public/groups/invites.js.map +1 -1
  34. package/dist/component/public/groups/members.d.ts.map +1 -1
  35. package/dist/component/public/groups/members.js.map +1 -1
  36. package/dist/component/public/identity/accounts.d.ts.map +1 -1
  37. package/dist/component/public/identity/accounts.js.map +1 -1
  38. package/dist/component/public/identity/codes.d.ts.map +1 -1
  39. package/dist/component/public/identity/codes.js.map +1 -1
  40. package/dist/component/public/identity/sessions.d.ts.map +1 -1
  41. package/dist/component/public/identity/sessions.js.map +1 -1
  42. package/dist/component/public/identity/tokens.d.ts.map +1 -1
  43. package/dist/component/public/identity/tokens.js.map +1 -1
  44. package/dist/component/public/identity/users.d.ts.map +1 -1
  45. package/dist/component/public/identity/users.js.map +1 -1
  46. package/dist/component/public/identity/verifiers.d.ts.map +1 -1
  47. package/dist/component/public/identity/verifiers.js.map +1 -1
  48. package/dist/component/public/security/keys.d.ts.map +1 -1
  49. package/dist/component/public/security/keys.js.map +1 -1
  50. package/dist/component/public/security/limits.d.ts.map +1 -1
  51. package/dist/component/public/security/limits.js.map +1 -1
  52. package/dist/component/schema.d.ts +39 -39
  53. package/dist/component/server/auth.d.ts +95 -52
  54. package/dist/component/server/auth.d.ts.map +1 -1
  55. package/dist/component/server/auth.js +63 -43
  56. package/dist/component/server/auth.js.map +1 -1
  57. package/dist/component/server/core.js +116 -235
  58. package/dist/component/server/core.js.map +1 -1
  59. package/dist/component/server/crypto.js +25 -7
  60. package/dist/component/server/crypto.js.map +1 -1
  61. package/dist/component/server/device.js +58 -15
  62. package/dist/component/server/device.js.map +1 -1
  63. package/dist/component/server/enterprise/domain.js +148 -59
  64. package/dist/component/server/enterprise/domain.js.map +1 -1
  65. package/dist/component/server/enterprise/http.js +36 -15
  66. package/dist/component/server/enterprise/http.js.map +1 -1
  67. package/dist/component/server/enterprise/oidc.js +1 -1
  68. package/dist/component/server/http.js +26 -21
  69. package/dist/component/server/http.js.map +1 -1
  70. package/dist/component/server/identity.js +5 -2
  71. package/dist/component/server/identity.js.map +1 -1
  72. package/dist/component/server/limits.js +21 -30
  73. package/dist/component/server/limits.js.map +1 -1
  74. package/dist/component/server/mutations/account.js +12 -10
  75. package/dist/component/server/mutations/account.js.map +1 -1
  76. package/dist/component/server/mutations/code.js +5 -2
  77. package/dist/component/server/mutations/code.js.map +1 -1
  78. package/dist/component/server/mutations/invalidate.js +1 -1
  79. package/dist/component/server/mutations/invalidate.js.map +1 -1
  80. package/dist/component/server/mutations/oauth.js +10 -4
  81. package/dist/component/server/mutations/oauth.js.map +1 -1
  82. package/dist/component/server/mutations/refresh.js +2 -2
  83. package/dist/component/server/mutations/refresh.js.map +1 -1
  84. package/dist/component/server/mutations/register.js +46 -42
  85. package/dist/component/server/mutations/register.js.map +1 -1
  86. package/dist/component/server/mutations/retrieve.js +21 -25
  87. package/dist/component/server/mutations/retrieve.js.map +1 -1
  88. package/dist/component/server/mutations/signature.js +10 -4
  89. package/dist/component/server/mutations/signature.js.map +1 -1
  90. package/dist/component/server/mutations/signout.js.map +1 -1
  91. package/dist/component/server/mutations/store.js +9 -24
  92. package/dist/component/server/mutations/store.js.map +1 -1
  93. package/dist/component/server/mutations/verifier.js.map +1 -1
  94. package/dist/component/server/mutations/verify.js +1 -1
  95. package/dist/component/server/mutations/verify.js.map +1 -1
  96. package/dist/component/server/oauth.js +53 -16
  97. package/dist/component/server/oauth.js.map +1 -1
  98. package/dist/component/server/passkey.js +115 -31
  99. package/dist/component/server/passkey.js.map +1 -1
  100. package/dist/component/server/redirects.js +9 -3
  101. package/dist/component/server/redirects.js.map +1 -1
  102. package/dist/component/server/refresh.js +10 -7
  103. package/dist/component/server/refresh.js.map +1 -1
  104. package/dist/component/server/runtime.d.ts +3 -3
  105. package/dist/component/server/runtime.d.ts.map +1 -1
  106. package/dist/component/server/runtime.js +62 -20
  107. package/dist/component/server/runtime.js.map +1 -1
  108. package/dist/component/server/signin.js +34 -10
  109. package/dist/component/server/signin.js.map +1 -1
  110. package/dist/component/server/totp.js +79 -19
  111. package/dist/component/server/totp.js.map +1 -1
  112. package/dist/component/server/types.d.ts +12 -20
  113. package/dist/component/server/types.d.ts.map +1 -1
  114. package/dist/component/server/types.js.map +1 -1
  115. package/dist/component/server/users.js +6 -3
  116. package/dist/component/server/users.js.map +1 -1
  117. package/dist/component/server/utils.js +10 -4
  118. package/dist/component/server/utils.js.map +1 -1
  119. package/dist/core/types.d.ts +14 -22
  120. package/dist/core/types.d.ts.map +1 -1
  121. package/dist/factors/device.js +8 -9
  122. package/dist/factors/device.js.map +1 -1
  123. package/dist/factors/passkey.js +18 -21
  124. package/dist/factors/passkey.js.map +1 -1
  125. package/dist/providers/password.js +66 -81
  126. package/dist/providers/password.js.map +1 -1
  127. package/dist/runtime/invite.js +2 -8
  128. package/dist/runtime/invite.js.map +1 -1
  129. package/dist/server/auth.d.ts +95 -52
  130. package/dist/server/auth.d.ts.map +1 -1
  131. package/dist/server/auth.js +63 -43
  132. package/dist/server/auth.js.map +1 -1
  133. package/dist/server/core.d.ts +71 -159
  134. package/dist/server/core.d.ts.map +1 -1
  135. package/dist/server/core.js +116 -235
  136. package/dist/server/core.js.map +1 -1
  137. package/dist/server/crypto.d.ts.map +1 -1
  138. package/dist/server/crypto.js +25 -7
  139. package/dist/server/crypto.js.map +1 -1
  140. package/dist/server/device.js +58 -15
  141. package/dist/server/device.js.map +1 -1
  142. package/dist/server/enterprise/domain.d.ts +0 -8
  143. package/dist/server/enterprise/domain.d.ts.map +1 -1
  144. package/dist/server/enterprise/domain.js +148 -59
  145. package/dist/server/enterprise/domain.js.map +1 -1
  146. package/dist/server/enterprise/http.d.ts.map +1 -1
  147. package/dist/server/enterprise/http.js +35 -14
  148. package/dist/server/enterprise/http.js.map +1 -1
  149. package/dist/server/http.d.ts +2 -2
  150. package/dist/server/http.d.ts.map +1 -1
  151. package/dist/server/http.js +25 -20
  152. package/dist/server/http.js.map +1 -1
  153. package/dist/server/identity.js +5 -2
  154. package/dist/server/identity.js.map +1 -1
  155. package/dist/server/index.d.ts +2 -2
  156. package/dist/server/limits.js +21 -30
  157. package/dist/server/limits.js.map +1 -1
  158. package/dist/server/mounts.d.ts +26 -64
  159. package/dist/server/mounts.d.ts.map +1 -1
  160. package/dist/server/mounts.js +45 -106
  161. package/dist/server/mounts.js.map +1 -1
  162. package/dist/server/mutations/account.d.ts +8 -9
  163. package/dist/server/mutations/account.d.ts.map +1 -1
  164. package/dist/server/mutations/account.js +11 -9
  165. package/dist/server/mutations/account.js.map +1 -1
  166. package/dist/server/mutations/code.d.ts +13 -13
  167. package/dist/server/mutations/code.d.ts.map +1 -1
  168. package/dist/server/mutations/code.js +5 -2
  169. package/dist/server/mutations/code.js.map +1 -1
  170. package/dist/server/mutations/invalidate.d.ts +4 -4
  171. package/dist/server/mutations/invalidate.d.ts.map +1 -1
  172. package/dist/server/mutations/invalidate.js.map +1 -1
  173. package/dist/server/mutations/oauth.d.ts +12 -10
  174. package/dist/server/mutations/oauth.d.ts.map +1 -1
  175. package/dist/server/mutations/oauth.js +9 -3
  176. package/dist/server/mutations/oauth.js.map +1 -1
  177. package/dist/server/mutations/refresh.d.ts +3 -3
  178. package/dist/server/mutations/refresh.d.ts.map +1 -1
  179. package/dist/server/mutations/refresh.js +1 -1
  180. package/dist/server/mutations/refresh.js.map +1 -1
  181. package/dist/server/mutations/register.d.ts +11 -11
  182. package/dist/server/mutations/register.d.ts.map +1 -1
  183. package/dist/server/mutations/register.js +45 -41
  184. package/dist/server/mutations/register.js.map +1 -1
  185. package/dist/server/mutations/retrieve.d.ts +6 -6
  186. package/dist/server/mutations/retrieve.d.ts.map +1 -1
  187. package/dist/server/mutations/retrieve.js +20 -24
  188. package/dist/server/mutations/retrieve.js.map +1 -1
  189. package/dist/server/mutations/signature.d.ts +6 -7
  190. package/dist/server/mutations/signature.d.ts.map +1 -1
  191. package/dist/server/mutations/signature.js +9 -3
  192. package/dist/server/mutations/signature.js.map +1 -1
  193. package/dist/server/mutations/signin.d.ts +5 -5
  194. package/dist/server/mutations/signin.d.ts.map +1 -1
  195. package/dist/server/mutations/signout.js.map +1 -1
  196. package/dist/server/mutations/store.d.ts +97 -97
  197. package/dist/server/mutations/store.d.ts.map +1 -1
  198. package/dist/server/mutations/store.js +8 -23
  199. package/dist/server/mutations/store.js.map +1 -1
  200. package/dist/server/mutations/verifier.js.map +1 -1
  201. package/dist/server/mutations/verify.d.ts +10 -10
  202. package/dist/server/mutations/verify.d.ts.map +1 -1
  203. package/dist/server/mutations/verify.js.map +1 -1
  204. package/dist/server/oauth.js +53 -16
  205. package/dist/server/oauth.js.map +1 -1
  206. package/dist/server/passkey.d.ts +2 -2
  207. package/dist/server/passkey.d.ts.map +1 -1
  208. package/dist/server/passkey.js +114 -30
  209. package/dist/server/passkey.js.map +1 -1
  210. package/dist/server/redirects.js +9 -3
  211. package/dist/server/redirects.js.map +1 -1
  212. package/dist/server/refresh.js +10 -7
  213. package/dist/server/refresh.js.map +1 -1
  214. package/dist/server/runtime.d.ts +14 -14
  215. package/dist/server/runtime.d.ts.map +1 -1
  216. package/dist/server/runtime.js +61 -19
  217. package/dist/server/runtime.js.map +1 -1
  218. package/dist/server/signin.js +34 -10
  219. package/dist/server/signin.js.map +1 -1
  220. package/dist/server/ssr.d.ts.map +1 -1
  221. package/dist/server/ssr.js +175 -184
  222. package/dist/server/ssr.js.map +1 -1
  223. package/dist/server/totp.js +78 -18
  224. package/dist/server/totp.js.map +1 -1
  225. package/dist/server/types.d.ts +13 -21
  226. package/dist/server/types.d.ts.map +1 -1
  227. package/dist/server/types.js.map +1 -1
  228. package/dist/server/users.js +6 -3
  229. package/dist/server/users.js.map +1 -1
  230. package/dist/server/utils.js +10 -4
  231. package/dist/server/utils.js.map +1 -1
  232. package/package.json +2 -6
  233. package/src/authorization/index.ts +1 -1
  234. package/src/cli/index.ts +1 -1
  235. package/src/client/core/types.ts +14 -14
  236. package/src/client/factors/device.ts +10 -12
  237. package/src/client/factors/passkey.ts +23 -26
  238. package/src/client/index.ts +54 -64
  239. package/src/client/runtime/invite.ts +5 -7
  240. package/src/component/index.ts +1 -0
  241. package/src/component/public/enterprise/audit.ts +6 -1
  242. package/src/component/public/enterprise/core.ts +1 -0
  243. package/src/component/public/enterprise/domains.ts +5 -1
  244. package/src/component/public/enterprise/scim.ts +1 -0
  245. package/src/component/public/enterprise/secrets.ts +1 -0
  246. package/src/component/public/enterprise/webhooks.ts +1 -0
  247. package/src/component/public/factors/devices.ts +1 -0
  248. package/src/component/public/factors/passkeys.ts +1 -0
  249. package/src/component/public/factors/totp.ts +1 -0
  250. package/src/component/public/groups/core.ts +1 -1
  251. package/src/component/public/groups/invites.ts +7 -1
  252. package/src/component/public/groups/members.ts +1 -0
  253. package/src/component/public/identity/accounts.ts +1 -0
  254. package/src/component/public/identity/codes.ts +1 -0
  255. package/src/component/public/identity/sessions.ts +1 -0
  256. package/src/component/public/identity/tokens.ts +1 -0
  257. package/src/component/public/identity/users.ts +1 -0
  258. package/src/component/public/identity/verifiers.ts +1 -0
  259. package/src/component/public/security/keys.ts +1 -0
  260. package/src/component/public/security/limits.ts +1 -0
  261. package/src/providers/password.ts +89 -110
  262. package/src/server/auth.ts +177 -111
  263. package/src/server/core.ts +197 -233
  264. package/src/server/crypto.ts +31 -29
  265. package/src/server/device.ts +65 -32
  266. package/src/server/enterprise/domain.ts +158 -170
  267. package/src/server/enterprise/http.ts +46 -39
  268. package/src/server/http.ts +36 -30
  269. package/src/server/identity.ts +5 -5
  270. package/src/server/index.ts +2 -0
  271. package/src/server/limits.ts +53 -80
  272. package/src/server/mounts.ts +47 -74
  273. package/src/server/mutations/account.ts +22 -36
  274. package/src/server/mutations/code.ts +6 -6
  275. package/src/server/mutations/invalidate.ts +1 -1
  276. package/src/server/mutations/oauth.ts +14 -8
  277. package/src/server/mutations/refresh.ts +5 -4
  278. package/src/server/mutations/register.ts +87 -132
  279. package/src/server/mutations/retrieve.ts +44 -44
  280. package/src/server/mutations/signature.ts +13 -6
  281. package/src/server/mutations/signout.ts +1 -1
  282. package/src/server/mutations/store.ts +16 -31
  283. package/src/server/mutations/verifier.ts +1 -1
  284. package/src/server/mutations/verify.ts +3 -5
  285. package/src/server/oauth.ts +60 -69
  286. package/src/server/passkey.ts +567 -517
  287. package/src/server/redirects.ts +10 -6
  288. package/src/server/refresh.ts +14 -18
  289. package/src/server/runtime.ts +70 -55
  290. package/src/server/signin.ts +44 -37
  291. package/src/server/ssr.ts +390 -407
  292. package/src/server/totp.ts +85 -35
  293. package/src/server/types.ts +19 -22
  294. package/src/server/users.ts +7 -6
  295. package/src/server/utils.ts +10 -12
  296. package/dist/component/server/authError.js +0 -34
  297. package/dist/component/server/authError.js.map +0 -1
  298. package/dist/component/server/errors.d.ts +0 -1
  299. package/dist/component/server/errors.js +0 -137
  300. package/dist/component/server/errors.js.map +0 -1
  301. package/dist/server/authError.d.ts +0 -46
  302. package/dist/server/authError.d.ts.map +0 -1
  303. package/dist/server/authError.js +0 -34
  304. package/dist/server/authError.js.map +0 -1
  305. package/dist/server/errors.d.ts +0 -177
  306. package/dist/server/errors.d.ts.map +0 -1
  307. package/dist/server/errors.js +0 -212
  308. package/dist/server/errors.js.map +0 -1
  309. package/src/server/authError.ts +0 -44
  310. package/src/server/errors.ts +0 -290
@@ -1,5 +1,3 @@
1
- import { AuthError } from "./authError.js";
2
- import { errorMessage } from "./utils.js";
3
1
  import { authDb } from "./db.js";
4
2
  import { Fx } from "@robelest/fx";
5
3
 
@@ -16,45 +14,38 @@ const isSignInRateLimited = (ctx, identifier, config) => getRateLimitState(ctx,
16
14
  * If a record exists, decrement; otherwise create.
17
15
  */
18
16
  /** @internal */
19
- const recordFailedSignIn = (ctx, identifier, config) => getRateLimitState(ctx, identifier, config).pipe(Fx.chain((state) => state !== null ? Fx.from({
20
- ok: () => authDb(ctx, config).rateLimits.patch(state.limit._id, {
17
+ const recordFailedSignIn = (ctx, identifier, config) => Fx.gen(function* () {
18
+ const state = yield* getRateLimitState(ctx, identifier, config);
19
+ if (state !== null) yield* Fx.promise(() => authDb(ctx, config).rateLimits.patch(state.limit._id, {
21
20
  attemptsLeft: state.attemptsLeft - 1,
22
21
  lastAttemptTime: Date.now()
23
- }),
24
- err: (e) => new AuthError("INTERNAL_ERROR", `Failed to patch rate limit: ${errorMessage(e)}`)
25
- }) : Fx.from({
26
- ok: () => authDb(ctx, config).rateLimits.create({
22
+ }));
23
+ else yield* Fx.promise(() => authDb(ctx, config).rateLimits.create({
27
24
  identifier,
28
25
  attemptsLeft: (config.signIn?.maxFailedAttemptsPerHour ?? DEFAULT_MAX_SIGN_IN_ATTEMPTS_PER_HOUR) - 1,
29
26
  lastAttemptTime: Date.now()
30
- }),
31
- err: (e) => new AuthError("INTERNAL_ERROR", `Failed to create rate limit: ${errorMessage(e)}`)
32
- })), Fx.map(() => void 0));
27
+ }));
28
+ });
33
29
  /**
34
30
  * Reset the rate limit for the given identifier (e.g. after successful sign-in).
35
31
  */
36
32
  /** @internal */
37
- const resetSignInRateLimit = (ctx, identifier, config) => getRateLimitState(ctx, identifier, config).pipe(Fx.chain((state) => state !== null ? Fx.from({
38
- ok: () => authDb(ctx, config).rateLimits.delete(state.limit._id),
39
- err: (e) => new AuthError("INTERNAL_ERROR", `Failed to delete rate limit: ${errorMessage(e)}`)
40
- }) : Fx.unit));
41
- const getRateLimitState = (ctx, identifier, config) => {
33
+ const resetSignInRateLimit = (ctx, identifier, config) => Fx.gen(function* () {
34
+ const state = yield* getRateLimitState(ctx, identifier, config);
35
+ if (state !== null) yield* Fx.promise(() => authDb(ctx, config).rateLimits.delete(state.limit._id));
36
+ });
37
+ const getRateLimitState = (ctx, identifier, config) => Fx.gen(function* () {
42
38
  const now = Date.now();
43
39
  const maxAttemptsPerHour = config.signIn?.maxFailedAttemptsPerHour ?? DEFAULT_MAX_SIGN_IN_ATTEMPTS_PER_HOUR;
44
- return Fx.from({
45
- ok: () => authDb(ctx, config).rateLimits.get(identifier),
46
- err: (e) => new AuthError("INTERNAL_ERROR", `Failed to get rate limit: ${errorMessage(e)}`)
47
- }).pipe(Fx.map((raw) => {
48
- const limit = raw;
49
- if (limit === null) return null;
50
- const elapsed = now - limit.lastAttemptTime;
51
- const maxAttemptsPerMs = maxAttemptsPerHour / (3600 * 1e3);
52
- return {
53
- limit,
54
- attemptsLeft: Math.min(maxAttemptsPerHour, limit.attemptsLeft + elapsed * maxAttemptsPerMs)
55
- };
56
- }));
57
- };
40
+ const limit = yield* Fx.promise(() => authDb(ctx, config).rateLimits.get(identifier));
41
+ if (limit === null) return null;
42
+ const elapsed = now - limit.lastAttemptTime;
43
+ const maxAttemptsPerMs = maxAttemptsPerHour / (3600 * 1e3);
44
+ return {
45
+ limit,
46
+ attemptsLeft: Math.min(maxAttemptsPerHour, limit.attemptsLeft + elapsed * maxAttemptsPerMs)
47
+ };
48
+ });
58
49
 
59
50
  //#endregion
60
51
  export { isSignInRateLimited, recordFailedSignIn, resetSignInRateLimit };
@@ -1 +1 @@
1
- {"version":3,"file":"limits.js","names":[],"sources":["../../src/server/limits.ts"],"sourcesContent":["import { Fx } from \"@robelest/fx\";\n\nimport { authDb } from \"./db\";\nimport { AuthError } from \"./authError\";\nimport { Doc, MutationCtx } from \"./types\";\nimport { ConvexAuthConfig } from \"./types\";\nimport { errorMessage } from \"./utils\";\n\nconst DEFAULT_MAX_SIGN_IN_ATTEMPTS_PER_HOUR = 10;\n\n/**\n * Check whether the given identifier is currently rate-limited.\n */\n/** @internal */\nexport const isSignInRateLimited = (\n ctx: MutationCtx,\n identifier: string,\n config: ConvexAuthConfig,\n): Fx<boolean, AuthError> =>\n getRateLimitState(ctx, identifier, config).pipe(\n Fx.map((state) => state !== null && state.attemptsLeft < 1),\n );\n\n/**\n * Record a failed sign-in attempt for the given identifier.\n *\n * If a record exists, decrement; otherwise create.\n */\n/** @internal */\nexport const recordFailedSignIn = (\n ctx: MutationCtx,\n identifier: string,\n config: ConvexAuthConfig,\n): Fx<void, AuthError> =>\n getRateLimitState(ctx, identifier, config).pipe(\n Fx.chain((state) =>\n state !== null\n ? Fx.from({\n ok: () =>\n authDb(ctx, config).rateLimits.patch(state.limit._id, {\n attemptsLeft: state.attemptsLeft - 1,\n lastAttemptTime: Date.now(),\n }),\n err: (e) =>\n new AuthError(\n \"INTERNAL_ERROR\",\n `Failed to patch rate limit: ${errorMessage(e)}`,\n ),\n })\n : Fx.from({\n ok: () =>\n authDb(ctx, config).rateLimits.create({\n identifier,\n attemptsLeft:\n (config.signIn?.maxFailedAttemptsPerHour ??\n DEFAULT_MAX_SIGN_IN_ATTEMPTS_PER_HOUR) - 1,\n lastAttemptTime: Date.now(),\n }),\n err: (e) =>\n new AuthError(\n \"INTERNAL_ERROR\",\n `Failed to create rate limit: ${errorMessage(e)}`,\n ),\n }),\n ),\n Fx.map(() => undefined),\n );\n\n/**\n * Reset the rate limit for the given identifier (e.g. after successful sign-in).\n */\n/** @internal */\nexport const resetSignInRateLimit = (\n ctx: MutationCtx,\n identifier: string,\n config: ConvexAuthConfig,\n): Fx<void, AuthError> =>\n getRateLimitState(ctx, identifier, config).pipe(\n Fx.chain((state) =>\n state !== null\n ? Fx.from({\n ok: () => authDb(ctx, config).rateLimits.delete(state.limit._id),\n err: (e) =>\n new AuthError(\n \"INTERNAL_ERROR\",\n `Failed to delete rate limit: ${errorMessage(e)}`,\n ),\n })\n : Fx.unit,\n ),\n );\n\n// ---------------------------------------------------------------------------\n// Internal\n// ---------------------------------------------------------------------------\n\ntype RateLimitState = {\n limit: Doc<\"RateLimit\"> & { attemptsLeft: number; lastAttemptTime: number };\n attemptsLeft: number;\n} | null;\n\nconst getRateLimitState = (\n ctx: MutationCtx,\n identifier: string,\n config: ConvexAuthConfig,\n): Fx<RateLimitState, AuthError> => {\n const now = Date.now();\n const maxAttemptsPerHour =\n config.signIn?.maxFailedAttemptsPerHour ??\n DEFAULT_MAX_SIGN_IN_ATTEMPTS_PER_HOUR;\n\n return Fx.from({\n ok: () => authDb(ctx, config).rateLimits.get(identifier),\n err: (e) =>\n new AuthError(\n \"INTERNAL_ERROR\",\n `Failed to get rate limit: ${errorMessage(e)}`,\n ),\n }).pipe(\n Fx.map((raw) => {\n const limit = raw as\n | (Doc<\"RateLimit\"> & { attemptsLeft: number; lastAttemptTime: number })\n | null;\n if (limit === null) return null;\n const elapsed = now - limit.lastAttemptTime;\n const maxAttemptsPerMs = maxAttemptsPerHour / (60 * 60 * 1000);\n const attemptsLeft = Math.min(\n maxAttemptsPerHour,\n limit.attemptsLeft + elapsed * maxAttemptsPerMs,\n );\n return { limit, attemptsLeft };\n }),\n );\n};\n"],"mappings":";;;;;;AAQA,MAAM,wCAAwC;;;;;AAM9C,MAAa,uBACX,KACA,YACA,WAEA,kBAAkB,KAAK,YAAY,OAAO,CAAC,KACzC,GAAG,KAAK,UAAU,UAAU,QAAQ,MAAM,eAAe,EAAE,CAC5D;;;;;;;AAQH,MAAa,sBACX,KACA,YACA,WAEA,kBAAkB,KAAK,YAAY,OAAO,CAAC,KACzC,GAAG,OAAO,UACR,UAAU,OACN,GAAG,KAAK;CACN,UACE,OAAO,KAAK,OAAO,CAAC,WAAW,MAAM,MAAM,MAAM,KAAK;EACpD,cAAc,MAAM,eAAe;EACnC,iBAAiB,KAAK,KAAK;EAC5B,CAAC;CACJ,MAAM,MACJ,IAAI,UACF,kBACA,+BAA+B,aAAa,EAAE,GAC/C;CACJ,CAAC,GACF,GAAG,KAAK;CACN,UACE,OAAO,KAAK,OAAO,CAAC,WAAW,OAAO;EACpC;EACA,eACG,OAAO,QAAQ,4BACd,yCAAyC;EAC7C,iBAAiB,KAAK,KAAK;EAC5B,CAAC;CACJ,MAAM,MACJ,IAAI,UACF,kBACA,gCAAgC,aAAa,EAAE,GAChD;CACJ,CAAC,CACP,EACD,GAAG,UAAU,OAAU,CACxB;;;;;AAMH,MAAa,wBACX,KACA,YACA,WAEA,kBAAkB,KAAK,YAAY,OAAO,CAAC,KACzC,GAAG,OAAO,UACR,UAAU,OACN,GAAG,KAAK;CACN,UAAU,OAAO,KAAK,OAAO,CAAC,WAAW,OAAO,MAAM,MAAM,IAAI;CAChE,MAAM,MACJ,IAAI,UACF,kBACA,gCAAgC,aAAa,EAAE,GAChD;CACJ,CAAC,GACF,GAAG,KACR,CACF;AAWH,MAAM,qBACJ,KACA,YACA,WACkC;CAClC,MAAM,MAAM,KAAK,KAAK;CACtB,MAAM,qBACJ,OAAO,QAAQ,4BACf;AAEF,QAAO,GAAG,KAAK;EACb,UAAU,OAAO,KAAK,OAAO,CAAC,WAAW,IAAI,WAAW;EACxD,MAAM,MACJ,IAAI,UACF,kBACA,6BAA6B,aAAa,EAAE,GAC7C;EACJ,CAAC,CAAC,KACD,GAAG,KAAK,QAAQ;EACd,MAAM,QAAQ;AAGd,MAAI,UAAU,KAAM,QAAO;EAC3B,MAAM,UAAU,MAAM,MAAM;EAC5B,MAAM,mBAAmB,sBAAsB,OAAU;AAKzD,SAAO;GAAE;GAAO,cAJK,KAAK,IACxB,oBACA,MAAM,eAAe,UAAU,iBAChC;GAC6B;GAC9B,CACH"}
1
+ {"version":3,"file":"limits.js","names":[],"sources":["../../src/server/limits.ts"],"sourcesContent":["import { Fx } from \"@robelest/fx\";\nimport { ConvexError } from \"convex/values\";\n\nimport { authDb } from \"./db\";\nimport { Doc, MutationCtx } from \"./types\";\nimport { ConvexAuthConfig } from \"./types\";\n\nconst DEFAULT_MAX_SIGN_IN_ATTEMPTS_PER_HOUR = 10;\n\n/**\n * Check whether the given identifier is currently rate-limited.\n */\n/** @internal */\nexport const isSignInRateLimited = (\n ctx: MutationCtx,\n identifier: string,\n config: ConvexAuthConfig,\n): Fx<boolean, ConvexError<any>> =>\n getRateLimitState(ctx, identifier, config).pipe(\n Fx.map((state) => state !== null && state.attemptsLeft < 1),\n );\n\n/**\n * Record a failed sign-in attempt for the given identifier.\n *\n * If a record exists, decrement; otherwise create.\n */\n/** @internal */\nexport const recordFailedSignIn = (\n ctx: MutationCtx,\n identifier: string,\n config: ConvexAuthConfig,\n): Fx<void, ConvexError<any>> =>\n Fx.gen(function* () {\n const state = yield* getRateLimitState(ctx, identifier, config);\n if (state !== null) {\n yield* Fx.promise(() =>\n authDb(ctx, config).rateLimits.patch(state.limit._id, {\n attemptsLeft: state.attemptsLeft - 1,\n lastAttemptTime: Date.now(),\n }),\n );\n } else {\n yield* Fx.promise(() =>\n authDb(ctx, config).rateLimits.create({\n identifier,\n attemptsLeft:\n (config.signIn?.maxFailedAttemptsPerHour ??\n DEFAULT_MAX_SIGN_IN_ATTEMPTS_PER_HOUR) - 1,\n lastAttemptTime: Date.now(),\n }),\n );\n }\n });\n\n/**\n * Reset the rate limit for the given identifier (e.g. after successful sign-in).\n */\n/** @internal */\nexport const resetSignInRateLimit = (\n ctx: MutationCtx,\n identifier: string,\n config: ConvexAuthConfig,\n): Fx<void, ConvexError<any>> =>\n Fx.gen(function* () {\n const state = yield* getRateLimitState(ctx, identifier, config);\n if (state !== null) {\n yield* Fx.promise(() =>\n authDb(ctx, config).rateLimits.delete(state.limit._id),\n );\n }\n });\n\n// ---------------------------------------------------------------------------\n// Internal\n// ---------------------------------------------------------------------------\n\ntype RateLimitState = {\n limit: Doc<\"RateLimit\"> & { attemptsLeft: number; lastAttemptTime: number };\n attemptsLeft: number;\n} | null;\n\nconst getRateLimitState = (\n ctx: MutationCtx,\n identifier: string,\n config: ConvexAuthConfig,\n): Fx<RateLimitState, ConvexError<any>> =>\n Fx.gen(function* () {\n const now = Date.now();\n const maxAttemptsPerHour =\n config.signIn?.maxFailedAttemptsPerHour ??\n DEFAULT_MAX_SIGN_IN_ATTEMPTS_PER_HOUR;\n\n const limit = (yield* Fx.promise(() =>\n authDb(ctx, config).rateLimits.get(identifier),\n )) as\n | (Doc<\"RateLimit\"> & { attemptsLeft: number; lastAttemptTime: number })\n | null;\n if (limit === null) return null;\n const elapsed = now - limit.lastAttemptTime;\n const maxAttemptsPerMs = maxAttemptsPerHour / (60 * 60 * 1000);\n const attemptsLeft = Math.min(\n maxAttemptsPerHour,\n limit.attemptsLeft + elapsed * maxAttemptsPerMs,\n );\n return { limit, attemptsLeft };\n });\n"],"mappings":";;;;AAOA,MAAM,wCAAwC;;;;;AAM9C,MAAa,uBACX,KACA,YACA,WAEA,kBAAkB,KAAK,YAAY,OAAO,CAAC,KACzC,GAAG,KAAK,UAAU,UAAU,QAAQ,MAAM,eAAe,EAAE,CAC5D;;;;;;;AAQH,MAAa,sBACX,KACA,YACA,WAEA,GAAG,IAAI,aAAa;CAClB,MAAM,QAAQ,OAAO,kBAAkB,KAAK,YAAY,OAAO;AAC/D,KAAI,UAAU,KACZ,QAAO,GAAG,cACR,OAAO,KAAK,OAAO,CAAC,WAAW,MAAM,MAAM,MAAM,KAAK;EACpD,cAAc,MAAM,eAAe;EACnC,iBAAiB,KAAK,KAAK;EAC5B,CAAC,CACH;KAED,QAAO,GAAG,cACR,OAAO,KAAK,OAAO,CAAC,WAAW,OAAO;EACpC;EACA,eACG,OAAO,QAAQ,4BACd,yCAAyC;EAC7C,iBAAiB,KAAK,KAAK;EAC5B,CAAC,CACH;EAEH;;;;;AAMJ,MAAa,wBACX,KACA,YACA,WAEA,GAAG,IAAI,aAAa;CAClB,MAAM,QAAQ,OAAO,kBAAkB,KAAK,YAAY,OAAO;AAC/D,KAAI,UAAU,KACZ,QAAO,GAAG,cACR,OAAO,KAAK,OAAO,CAAC,WAAW,OAAO,MAAM,MAAM,IAAI,CACvD;EAEH;AAWJ,MAAM,qBACJ,KACA,YACA,WAEA,GAAG,IAAI,aAAa;CAClB,MAAM,MAAM,KAAK,KAAK;CACtB,MAAM,qBACJ,OAAO,QAAQ,4BACf;CAEF,MAAM,QAAS,OAAO,GAAG,cACvB,OAAO,KAAK,OAAO,CAAC,WAAW,IAAI,WAAW,CAC/C;AAGD,KAAI,UAAU,KAAM,QAAO;CAC3B,MAAM,UAAU,MAAM,MAAM;CAC5B,MAAM,mBAAmB,sBAAsB,OAAU;AAKzD,QAAO;EAAE;EAAO,cAJK,KAAK,IACxB,oBACA,MAAM,eAAe,UAAU,iBAChC;EAC6B;EAC9B"}
@@ -36,11 +36,11 @@ type EnterpriseAdminAuthorizationInput = {
36
36
  /**
37
37
  * App-defined authorization hook for mounted enterprise admin APIs.
38
38
  *
39
- * Return `void` (or resolve) to allow the operation, or `{ ok: false }` to deny it.
39
+ * Return `void` (or resolve) to allow the operation, or throw to deny it.
40
40
  *
41
41
  * @param ctx - Convex context with `ctx.auth` for identity checks.
42
42
  * @param input - The {@link EnterpriseAdminAuthorizationInput} describing who is doing what.
43
- * @returns `void` to allow, `{ ok: false }` to deny.
43
+ * @returns `void` to allow; throw to deny.
44
44
  *
45
45
  * @example
46
46
  * ```ts
@@ -48,16 +48,14 @@ type EnterpriseAdminAuthorizationInput = {
48
48
  *
49
49
  * const authorized: EnterpriseAuthorizer = async (ctx, input) => {
50
50
  * const identity = await ctx.auth.getUserIdentity();
51
- * if (!identity) return { ok: false };
51
+ * if (!identity) throw new Error("Forbidden");
52
52
  * // Allow all admin ops for the org owner
53
53
  * };
54
54
  * ```
55
55
  */
56
56
  type EnterpriseAuthorizer = (ctx: {
57
57
  auth: convex_server0.Auth;
58
- }, input: EnterpriseAdminAuthorizationInput) => Promise<void | {
59
- ok: false;
60
- }>;
58
+ }, input: EnterpriseAdminAuthorizationInput) => Promise<void>;
61
59
  type RoleRef<TRoleId extends string> = {
62
60
  id: TRoleId;
63
61
  };
@@ -130,10 +128,10 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
130
128
  admin: {
131
129
  connection: {
132
130
  create: convex_server0.RegisteredMutation<"public", {
133
- status?: "draft" | "active" | "disabled" | undefined;
131
+ groupId?: string | undefined;
134
132
  name?: string | undefined;
135
133
  slug?: string | undefined;
136
- groupId?: string | undefined;
134
+ status?: "draft" | "active" | "disabled" | undefined;
137
135
  domain?: string | undefined;
138
136
  }, Promise<any>>;
139
137
  get: convex_server0.RegisteredQuery<"public", {
@@ -146,12 +144,12 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
146
144
  domain: string;
147
145
  }, Promise<any>>;
148
146
  list: convex_server0.RegisteredQuery<"public", {
147
+ limit?: number | undefined;
149
148
  where?: {
150
- status?: "draft" | "active" | "disabled" | undefined;
151
- slug?: string | undefined;
152
149
  groupId?: string | undefined;
150
+ slug?: string | undefined;
151
+ status?: "draft" | "active" | "disabled" | undefined;
153
152
  } | undefined;
154
- limit?: number | undefined;
155
153
  cursor?: string | null | undefined;
156
154
  orderBy?: string | undefined;
157
155
  order?: "asc" | "desc" | undefined;
@@ -159,18 +157,12 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
159
157
  update: convex_server0.RegisteredMutation<"public", {
160
158
  enterpriseId: string;
161
159
  data: {
162
- status?: "draft" | "active" | "disabled" | undefined;
163
160
  name?: string | undefined;
164
161
  slug?: string | undefined;
162
+ status?: "draft" | "active" | "disabled" | undefined;
165
163
  };
166
164
  }, Promise<{
167
- ok: false;
168
- code: "NOT_SIGNED_IN" | "FORBIDDEN";
169
- enterpriseId?: undefined;
170
- } | {
171
- ok: true;
172
165
  enterpriseId: string;
173
- code?: undefined;
174
166
  }>>;
175
167
  delete: convex_server0.RegisteredMutation<"public", {
176
168
  enterpriseId: string;
@@ -194,12 +186,12 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
194
186
  }, Promise<any>>;
195
187
  verification: {
196
188
  request: convex_server0.RegisteredMutation<"public", {
197
- enterpriseId: string;
198
189
  domain: string;
190
+ enterpriseId: string;
199
191
  }, Promise<any>>;
200
192
  confirm: convex_server0.RegisteredAction<"public", {
201
- enterpriseId: string;
202
193
  domain: string;
194
+ enterpriseId: string;
203
195
  }, Promise<any>>;
204
196
  };
205
197
  };
@@ -231,8 +223,8 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
231
223
  metadataUrl?: string | undefined;
232
224
  signAuthnRequests?: boolean | undefined;
233
225
  attributeMapping?: {
234
- email?: string | undefined;
235
226
  name?: string | undefined;
227
+ email?: string | undefined;
236
228
  subject?: string | undefined;
237
229
  firstName?: string | undefined;
238
230
  lastName?: string | undefined;
@@ -288,8 +280,8 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
288
280
  audit: {
289
281
  list: convex_server0.RegisteredQuery<"public", {
290
282
  groupId?: string | undefined;
291
- enterpriseId?: string | undefined;
292
283
  limit?: number | undefined;
284
+ enterpriseId?: string | undefined;
293
285
  }, Promise<any>>;
294
286
  };
295
287
  webhook: {
@@ -307,16 +299,6 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
307
299
  url: string;
308
300
  subscriptions: string[];
309
301
  }, Promise<{
310
- ok: false;
311
- code: "NOT_SIGNED_IN" | "FORBIDDEN";
312
- _id?: undefined;
313
- enterpriseId?: undefined;
314
- url?: undefined;
315
- subscriptions?: undefined;
316
- createdByUserId?: undefined;
317
- status?: undefined;
318
- failureCount?: undefined;
319
- } | {
320
302
  _id: any;
321
303
  enterpriseId: string;
322
304
  url: string;
@@ -324,8 +306,6 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
324
306
  createdByUserId: string;
325
307
  status: string;
326
308
  failureCount: number;
327
- ok?: undefined;
328
- code?: undefined;
329
309
  }>>;
330
310
  list: convex_server0.RegisteredQuery<"public", {
331
311
  enterpriseId: string;
@@ -338,9 +318,9 @@ declare function sso<TAuthorization extends AuthAuthorizationConfig | undefined
338
318
  };
339
319
  client: {
340
320
  signIn: convex_server0.RegisteredQuery<"public", {
321
+ domain?: string | undefined;
341
322
  email?: string | undefined;
342
323
  enterpriseId?: string | undefined;
343
- domain?: string | undefined;
344
324
  redirectTo?: string | undefined;
345
325
  }, Promise<any>>;
346
326
  metadata: convex_server0.RegisteredQuery<"public", {
@@ -432,10 +412,10 @@ declare function scim<TAuthorization extends AuthAuthorizationConfig | undefined
432
412
  */
433
413
  declare function enterprise<TAuthorization extends AuthAuthorizationConfig | undefined = undefined>(auth: Pick<AuthApi<TAuthorization>, "group" | "member" | "scim" | "sso" | "user">, options: EnterpriseMountOptions<AuthRoleId<TAuthorization>>): {
434
414
  createConnection: convex_server0.RegisteredMutation<"public", {
435
- status?: "draft" | "active" | "disabled" | undefined;
415
+ groupId?: string | undefined;
436
416
  name?: string | undefined;
437
417
  slug?: string | undefined;
438
- groupId?: string | undefined;
418
+ status?: "draft" | "active" | "disabled" | undefined;
439
419
  domain?: string | undefined;
440
420
  }, Promise<any>>;
441
421
  getConnection: convex_server0.RegisteredQuery<"public", {
@@ -448,12 +428,12 @@ declare function enterprise<TAuthorization extends AuthAuthorizationConfig | und
448
428
  domain: string;
449
429
  }, Promise<any>>;
450
430
  listConnections: convex_server0.RegisteredQuery<"public", {
431
+ limit?: number | undefined;
451
432
  where?: {
452
- status?: "draft" | "active" | "disabled" | undefined;
453
- slug?: string | undefined;
454
433
  groupId?: string | undefined;
434
+ slug?: string | undefined;
435
+ status?: "draft" | "active" | "disabled" | undefined;
455
436
  } | undefined;
456
- limit?: number | undefined;
457
437
  cursor?: string | null | undefined;
458
438
  orderBy?: string | undefined;
459
439
  order?: "asc" | "desc" | undefined;
@@ -461,18 +441,12 @@ declare function enterprise<TAuthorization extends AuthAuthorizationConfig | und
461
441
  updateConnection: convex_server0.RegisteredMutation<"public", {
462
442
  enterpriseId: string;
463
443
  data: {
464
- status?: "draft" | "active" | "disabled" | undefined;
465
444
  name?: string | undefined;
466
445
  slug?: string | undefined;
446
+ status?: "draft" | "active" | "disabled" | undefined;
467
447
  };
468
448
  }, Promise<{
469
- ok: false;
470
- code: "NOT_SIGNED_IN" | "FORBIDDEN";
471
- enterpriseId?: undefined;
472
- } | {
473
- ok: true;
474
449
  enterpriseId: string;
475
- code?: undefined;
476
450
  }>>;
477
451
  deleteConnection: convex_server0.RegisteredMutation<"public", {
478
452
  enterpriseId: string;
@@ -494,12 +468,12 @@ declare function enterprise<TAuthorization extends AuthAuthorizationConfig | und
494
468
  }[];
495
469
  }, Promise<any>>;
496
470
  requestDomainVerification: convex_server0.RegisteredMutation<"public", {
497
- enterpriseId: string;
498
471
  domain: string;
472
+ enterpriseId: string;
499
473
  }, Promise<any>>;
500
474
  confirmDomainVerification: convex_server0.RegisteredAction<"public", {
501
- enterpriseId: string;
502
475
  domain: string;
476
+ enterpriseId: string;
503
477
  }, Promise<any>>;
504
478
  configureOidc: convex_server0.RegisteredMutation<"public", {
505
479
  scopes?: string[] | undefined;
@@ -525,8 +499,8 @@ declare function enterprise<TAuthorization extends AuthAuthorizationConfig | und
525
499
  metadataUrl?: string | undefined;
526
500
  signAuthnRequests?: boolean | undefined;
527
501
  attributeMapping?: {
528
- email?: string | undefined;
529
502
  name?: string | undefined;
503
+ email?: string | undefined;
530
504
  subject?: string | undefined;
531
505
  firstName?: string | undefined;
532
506
  lastName?: string | undefined;
@@ -578,8 +552,8 @@ declare function enterprise<TAuthorization extends AuthAuthorizationConfig | und
578
552
  }, Promise<any>>;
579
553
  listAudit: convex_server0.RegisteredQuery<"public", {
580
554
  groupId?: string | undefined;
581
- enterpriseId?: string | undefined;
582
555
  limit?: number | undefined;
556
+ enterpriseId?: string | undefined;
583
557
  }, Promise<any>>;
584
558
  createWebhookEndpoint: convex_server0.RegisteredMutation<"public", {
585
559
  createdByUserId?: string | undefined;
@@ -588,16 +562,6 @@ declare function enterprise<TAuthorization extends AuthAuthorizationConfig | und
588
562
  url: string;
589
563
  subscriptions: string[];
590
564
  }, Promise<{
591
- ok: false;
592
- code: "NOT_SIGNED_IN" | "FORBIDDEN";
593
- _id?: undefined;
594
- enterpriseId?: undefined;
595
- url?: undefined;
596
- subscriptions?: undefined;
597
- createdByUserId?: undefined;
598
- status?: undefined;
599
- failureCount?: undefined;
600
- } | {
601
565
  _id: any;
602
566
  enterpriseId: string;
603
567
  url: string;
@@ -605,8 +569,6 @@ declare function enterprise<TAuthorization extends AuthAuthorizationConfig | und
605
569
  createdByUserId: string;
606
570
  status: string;
607
571
  failureCount: number;
608
- ok?: undefined;
609
- code?: undefined;
610
572
  }>>;
611
573
  listWebhookEndpoints: convex_server0.RegisteredQuery<"public", {
612
574
  enterpriseId: string;
@@ -630,9 +592,9 @@ declare function enterprise<TAuthorization extends AuthAuthorizationConfig | und
630
592
  enterpriseId: string;
631
593
  }, Promise<any>>;
632
594
  signIn: convex_server0.RegisteredQuery<"public", {
595
+ domain?: string | undefined;
633
596
  email?: string | undefined;
634
597
  enterpriseId?: string | undefined;
635
- domain?: string | undefined;
636
598
  redirectTo?: string | undefined;
637
599
  }, Promise<any>>;
638
600
  metadata: convex_server0.RegisteredQuery<"public", {
@@ -1 +1 @@
1
- {"version":3,"file":"mounts.d.ts","names":[],"sources":["../../src/server/mounts.ts"],"mappings":";;;;;;;;AA+BA;;;;;AAiBA;;;;;;;;KAjBY,yBAAA;;;;AAkDZ;;;KAjCY,iCAAA;EAmCH,2DAjCP,MAAA,UAkCU;EAhCV,UAAA,EAAY,yBAAA,EA8BL;EA5BP,YAAA,WA4BA;EA1BA,OAAA,WA2BA;EAzBA,eAAA;AAAA;;;AA0BiC;;;;;;;;;AAEiB;;;;;;;;;KALxC,oBAAA,IACV,GAAA;EAAO,IAAA,EADuB,cAAA,CACO,IAAA;AAAA,GACrC,KAAA,EAAO,iCAAA,KACJ,OAAA;EAAiB,EAAA;AAAA;AAAA,KAEjB,OAAA;EAAoC,EAAA,EAAI,OAAA;AAAA;AAAA,KAExC,wBAAA;EACH,KAAA;IACE,UAAA,GAAa,oBAAA;IACb,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAA,CAAQ,OAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;AA6KpC;KArJY,sBAAA;EACV,KAAA;IACE,UAAA,EAAY,oBAAA;IACZ,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAA,CAAQ,OAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkJpB,GAAA,wBACS,uBAAA,yBAAA,CAEvB,IAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,cAAA,yCACnB,OAAA,GAAU,wBAAA,CAAyB,UAAA,CAAW,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8hBhC,IAAA,wBACS,uBAAA,yBAAA,CAEvB,IAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,cAAA,6BACnB,OAAA,GAAU,wBAAA,CAAyB,UAAA,CAAW,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkFhC,UAAA,wBACS,uBAAA,yBAAA,CAEvB,IAAA,EAAM,IAAA,CACJ,OAAA,CAAQ,cAAA,kDAGV,OAAA,EAAS,sBAAA,CAAuB,UAAA,CAAW,cAAA"}
1
+ {"version":3,"file":"mounts.d.ts","names":[],"sources":["../../src/server/mounts.ts"],"mappings":";;;;;;;;AAgCA;;;;;AAiBA;;;;;;;;KAjBY,yBAAA;;;;AAkDZ;;;KAjCY,iCAAA;EAmCH,2DAjCP,MAAA,UAkCU;EAhCV,UAAA,EAAY,yBAAA,EA8BL;EA5BP,YAAA,WA4BA;EA1BA,OAAA,WA2BA;EAzBA,eAAA;AAAA;;AA0BiB;;;;;;;;;AAEiC;;;;;;;;;;KALxC,oBAAA,IACV,GAAA;EAAO,IAAA,EADuB,cAAA,CACO,IAAA;AAAA,GACrC,KAAA,EAAO,iCAAA,KACJ,OAAA;AAAA,KAEA,OAAA;EAAoC,EAAA,EAAI,OAAA;AAAA;AAAA,KAExC,wBAAA;EACH,KAAA;IACE,UAAA,GAAa,oBAAA;IACb,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAA,CAAQ,OAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;KAwBxB,sBAAA;EACV,KAAA;IACE,UAAA,EAAY,oBAAA;IACZ,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAA,CAAQ,OAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqJpB,GAAA,wBACS,uBAAA,yBAAA,CAEvB,IAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,cAAA,yCACnB,OAAA,GAAU,wBAAA,CAAyB,UAAA,CAAW,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkgBhC,IAAA,wBACS,uBAAA,yBAAA,CAEvB,IAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,cAAA,6BACnB,OAAA,GAAU,wBAAA,CAAyB,UAAA,CAAW,cAAA;;;;;;;;;;;;;;;;AAJhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmFgB,UAAA,wBACS,uBAAA,yBAAA,CAEvB,IAAA,EAAM,IAAA,CACJ,OAAA,CAAQ,cAAA,kDAGV,OAAA,EAAS,sBAAA,CAAuB,UAAA,CAAW,cAAA"}