@robelest/convex-auth 0.0.2 → 0.0.3-preview.1

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 (173) hide show
  1. package/dist/bin.cjs +1 -1
  2. package/dist/client/index.d.ts +33 -9
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +79 -13
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/component/_generated/component.d.ts +48 -0
  7. package/dist/component/_generated/component.d.ts.map +1 -1
  8. package/dist/component/index.d.ts +10 -4
  9. package/dist/component/index.d.ts.map +1 -1
  10. package/dist/component/index.js +8 -3
  11. package/dist/component/index.js.map +1 -1
  12. package/dist/component/public.d.ts +163 -3
  13. package/dist/component/public.d.ts.map +1 -1
  14. package/dist/component/public.js +124 -0
  15. package/dist/component/public.js.map +1 -1
  16. package/dist/component/schema.d.ts +81 -2
  17. package/dist/component/schema.d.ts.map +1 -1
  18. package/dist/component/schema.js +45 -0
  19. package/dist/component/schema.js.map +1 -1
  20. package/dist/providers/anonymous.d.ts +3 -0
  21. package/dist/providers/anonymous.d.ts.map +1 -1
  22. package/dist/providers/anonymous.js +3 -0
  23. package/dist/providers/anonymous.js.map +1 -1
  24. package/dist/providers/credentials.d.ts +3 -0
  25. package/dist/providers/credentials.d.ts.map +1 -1
  26. package/dist/providers/credentials.js +3 -0
  27. package/dist/providers/credentials.js.map +1 -1
  28. package/dist/providers/email.d.ts +3 -0
  29. package/dist/providers/email.d.ts.map +1 -1
  30. package/dist/providers/email.js +3 -0
  31. package/dist/providers/email.js.map +1 -1
  32. package/dist/providers/passkey.d.ts +7 -1
  33. package/dist/providers/passkey.d.ts.map +1 -1
  34. package/dist/providers/passkey.js +7 -1
  35. package/dist/providers/passkey.js.map +1 -1
  36. package/dist/providers/password.d.ts +3 -0
  37. package/dist/providers/password.d.ts.map +1 -1
  38. package/dist/providers/password.js +3 -0
  39. package/dist/providers/password.js.map +1 -1
  40. package/dist/providers/phone.d.ts +3 -0
  41. package/dist/providers/phone.d.ts.map +1 -1
  42. package/dist/providers/phone.js +3 -0
  43. package/dist/providers/phone.js.map +1 -1
  44. package/dist/providers/totp.d.ts +8 -0
  45. package/dist/providers/totp.d.ts.map +1 -1
  46. package/dist/providers/totp.js +8 -0
  47. package/dist/providers/totp.js.map +1 -1
  48. package/dist/server/convex-auth.d.ts +185 -25
  49. package/dist/server/convex-auth.d.ts.map +1 -1
  50. package/dist/server/convex-auth.js +317 -58
  51. package/dist/server/convex-auth.js.map +1 -1
  52. package/dist/server/email-templates.d.ts +18 -0
  53. package/dist/server/email-templates.d.ts.map +1 -0
  54. package/dist/server/email-templates.js +74 -0
  55. package/dist/server/email-templates.js.map +1 -0
  56. package/dist/server/errors.d.ts +146 -0
  57. package/dist/server/errors.d.ts.map +1 -0
  58. package/dist/server/errors.js +176 -0
  59. package/dist/server/errors.js.map +1 -0
  60. package/dist/server/implementation/apiKey.d.ts +74 -0
  61. package/dist/server/implementation/apiKey.d.ts.map +1 -0
  62. package/dist/server/implementation/apiKey.js +139 -0
  63. package/dist/server/implementation/apiKey.js.map +1 -0
  64. package/dist/server/implementation/index.d.ts +151 -14
  65. package/dist/server/implementation/index.d.ts.map +1 -1
  66. package/dist/server/implementation/index.js +216 -24
  67. package/dist/server/implementation/index.js.map +1 -1
  68. package/dist/server/implementation/mutations/createAccountFromCredentials.d.ts.map +1 -1
  69. package/dist/server/implementation/mutations/createAccountFromCredentials.js +2 -1
  70. package/dist/server/implementation/mutations/createAccountFromCredentials.js.map +1 -1
  71. package/dist/server/implementation/mutations/createVerificationCode.d.ts +2 -2
  72. package/dist/server/implementation/mutations/index.d.ts +6 -6
  73. package/dist/server/implementation/mutations/modifyAccount.d.ts.map +1 -1
  74. package/dist/server/implementation/mutations/modifyAccount.js +2 -1
  75. package/dist/server/implementation/mutations/modifyAccount.js.map +1 -1
  76. package/dist/server/implementation/mutations/userOAuth.d.ts.map +1 -1
  77. package/dist/server/implementation/mutations/userOAuth.js +2 -1
  78. package/dist/server/implementation/mutations/userOAuth.js.map +1 -1
  79. package/dist/server/implementation/mutations/verifierSignature.d.ts.map +1 -1
  80. package/dist/server/implementation/mutations/verifierSignature.js +2 -1
  81. package/dist/server/implementation/mutations/verifierSignature.js.map +1 -1
  82. package/dist/server/implementation/passkey.d.ts.map +1 -1
  83. package/dist/server/implementation/passkey.js +28 -29
  84. package/dist/server/implementation/passkey.js.map +1 -1
  85. package/dist/server/implementation/provider.d.ts.map +1 -1
  86. package/dist/server/implementation/provider.js +5 -4
  87. package/dist/server/implementation/provider.js.map +1 -1
  88. package/dist/server/implementation/redirects.d.ts.map +1 -1
  89. package/dist/server/implementation/redirects.js +2 -1
  90. package/dist/server/implementation/redirects.js.map +1 -1
  91. package/dist/server/implementation/refreshTokens.d.ts.map +1 -1
  92. package/dist/server/implementation/refreshTokens.js +2 -1
  93. package/dist/server/implementation/refreshTokens.js.map +1 -1
  94. package/dist/server/implementation/signIn.d.ts.map +1 -1
  95. package/dist/server/implementation/signIn.js +8 -18
  96. package/dist/server/implementation/signIn.js.map +1 -1
  97. package/dist/server/implementation/totp.d.ts.map +1 -1
  98. package/dist/server/implementation/totp.js +16 -17
  99. package/dist/server/implementation/totp.js.map +1 -1
  100. package/dist/server/implementation/users.d.ts.map +1 -1
  101. package/dist/server/implementation/users.js +3 -2
  102. package/dist/server/implementation/users.js.map +1 -1
  103. package/dist/server/index.d.ts +157 -3
  104. package/dist/server/index.d.ts.map +1 -1
  105. package/dist/server/index.js +180 -17
  106. package/dist/server/index.js.map +1 -1
  107. package/dist/server/oauth/authorizationUrl.d.ts.map +1 -1
  108. package/dist/server/oauth/authorizationUrl.js +2 -1
  109. package/dist/server/oauth/authorizationUrl.js.map +1 -1
  110. package/dist/server/oauth/callback.d.ts.map +1 -1
  111. package/dist/server/oauth/callback.js +5 -4
  112. package/dist/server/oauth/callback.js.map +1 -1
  113. package/dist/server/oauth/checks.d.ts.map +1 -1
  114. package/dist/server/oauth/checks.js +2 -1
  115. package/dist/server/oauth/checks.js.map +1 -1
  116. package/dist/server/oauth/convexAuth.d.ts.map +1 -1
  117. package/dist/server/oauth/convexAuth.js +3 -2
  118. package/dist/server/oauth/convexAuth.js.map +1 -1
  119. package/dist/server/provider_utils.d.ts +2 -0
  120. package/dist/server/provider_utils.d.ts.map +1 -1
  121. package/dist/server/types.d.ts +240 -5
  122. package/dist/server/types.d.ts.map +1 -1
  123. package/dist/server/utils.d.ts.map +1 -1
  124. package/dist/server/utils.js +2 -1
  125. package/dist/server/utils.js.map +1 -1
  126. package/dist/server/version.d.ts +2 -0
  127. package/dist/server/version.d.ts.map +1 -0
  128. package/dist/server/version.js +3 -0
  129. package/dist/server/version.js.map +1 -0
  130. package/package.json +7 -2
  131. package/src/cli/index.ts +1 -1
  132. package/src/cli/utils.ts +248 -0
  133. package/src/client/index.ts +105 -15
  134. package/src/component/_generated/component.ts +61 -0
  135. package/src/component/index.ts +11 -2
  136. package/src/component/public.ts +142 -0
  137. package/src/component/schema.ts +52 -0
  138. package/src/providers/anonymous.ts +3 -0
  139. package/src/providers/credentials.ts +3 -0
  140. package/src/providers/email.ts +3 -0
  141. package/src/providers/passkey.ts +8 -1
  142. package/src/providers/password.ts +3 -0
  143. package/src/providers/phone.ts +3 -0
  144. package/src/providers/totp.ts +9 -0
  145. package/src/server/convex-auth.ts +385 -73
  146. package/src/server/email-templates.ts +77 -0
  147. package/src/server/errors.ts +269 -0
  148. package/src/server/implementation/apiKey.ts +186 -0
  149. package/src/server/implementation/index.ts +288 -28
  150. package/src/server/implementation/mutations/createAccountFromCredentials.ts +2 -1
  151. package/src/server/implementation/mutations/modifyAccount.ts +2 -3
  152. package/src/server/implementation/mutations/userOAuth.ts +2 -1
  153. package/src/server/implementation/mutations/verifierSignature.ts +2 -1
  154. package/src/server/implementation/passkey.ts +33 -35
  155. package/src/server/implementation/provider.ts +5 -8
  156. package/src/server/implementation/redirects.ts +2 -3
  157. package/src/server/implementation/refreshTokens.ts +2 -1
  158. package/src/server/implementation/signIn.ts +9 -18
  159. package/src/server/implementation/totp.ts +18 -21
  160. package/src/server/implementation/users.ts +4 -7
  161. package/src/server/index.ts +240 -37
  162. package/src/server/oauth/authorizationUrl.ts +2 -1
  163. package/src/server/oauth/callback.ts +5 -4
  164. package/src/server/oauth/checks.ts +3 -1
  165. package/src/server/oauth/convexAuth.ts +6 -3
  166. package/src/server/types.ts +254 -5
  167. package/src/server/utils.ts +3 -1
  168. package/src/server/version.ts +2 -0
  169. package/dist/server/portal.d.ts +0 -116
  170. package/dist/server/portal.d.ts.map +0 -1
  171. package/dist/server/portal.js +0 -294
  172. package/dist/server/portal.js.map +0 -1
  173. package/src/server/portal.ts +0 -375
@@ -1,5 +1,6 @@
1
1
  import { actionGeneric, httpActionGeneric, internalMutationGeneric, } from "convex/server";
2
2
  import { ConvexError, v } from "convex/values";
3
+ import { throwAuthError, isAuthError } from "../errors.js";
3
4
  import { parse as parseCookies, serialize as serializeCookie } from "cookie";
4
5
  import { redirectToParamCookie, useRedirectToParam } from "../cookies.js";
5
6
  import { configDefaults, listAvailableProviders, materializeProvider, } from "../provider_utils.js";
@@ -8,6 +9,7 @@ import { LOG_LEVELS, TOKEN_SUB_CLAIM_DIVIDER, logError, logWithLevel, } from "./
8
9
  import { callCreateAccountFromCredentials, callInvalidateSessions, callModifyAccount, callRetreiveAccountWithCredentials, callSignOut, callUserOAuth, callVerifierSignature, storeArgs, storeImpl, } from "./mutations/index.js";
9
10
  import { signInImpl } from "./signIn.js";
10
11
  import { redirectAbsoluteUrl, setURLSearchParam } from "./redirects.js";
12
+ import { generateApiKey, hashApiKey, buildScopeChecker, validateScopes, checkKeyRateLimit, } from "./apiKey.js";
11
13
  import { getAuthorizationUrl } from "../oauth/authorizationUrl.js";
12
14
  import { defaultCookiesOptions, oAuthConfigToInternalProvider, } from "../oauth/convexAuth.js";
13
15
  import { handleOAuth } from "../oauth/callback.js";
@@ -41,10 +43,10 @@ export function Auth(config_) {
41
43
  const getProviderOrThrow = (id, allowExtraProviders = false) => {
42
44
  const provider = getProvider(id, allowExtraProviders);
43
45
  if (provider === undefined) {
44
- const message = `Provider \`${id}\` is not configured, ` +
46
+ const detail = `Provider \`${id}\` is not configured, ` +
45
47
  `available providers are ${listAvailableProviders(config, allowExtraProviders)}.`;
46
- logWithLevel(LOG_LEVELS.ERROR, message);
47
- throw new Error(message);
48
+ logWithLevel(LOG_LEVELS.ERROR, detail);
49
+ throwAuthError("PROVIDER_NOT_CONFIGURED", detail, { provider: id });
48
50
  }
49
51
  return provider;
50
52
  };
@@ -53,6 +55,9 @@ export function Auth(config_) {
53
55
  /**
54
56
  * Get the current user's ID from the auth context, or `null` if
55
57
  * not signed in.
58
+ *
59
+ * @param ctx - Any Convex context with an `auth` field (query, mutation, or action).
60
+ * @returns The user's `Id<"user">`, or `null` when unauthenticated.
56
61
  */
57
62
  current: async (ctx) => {
58
63
  const identity = await ctx.auth.getUserIdentity();
@@ -65,24 +70,35 @@ export function Auth(config_) {
65
70
  /**
66
71
  * Get the current user's ID, or throw if not signed in.
67
72
  * Use this when authentication is required.
73
+ *
74
+ * @param ctx - Any Convex context with an `auth` field.
75
+ * @returns The user's `Id<"user">`.
76
+ * @throws `ConvexError` with code `NOT_SIGNED_IN` when unauthenticated.
68
77
  */
69
78
  require: async (ctx) => {
70
79
  const identity = await ctx.auth.getUserIdentity();
71
80
  if (identity === null) {
72
- throw new Error("Not signed in");
81
+ throwAuthError("NOT_SIGNED_IN");
73
82
  }
74
83
  const [userId] = identity.subject.split(TOKEN_SUB_CLAIM_DIVIDER);
75
84
  return userId;
76
85
  },
77
86
  /**
78
87
  * Retrieve a user document by their ID.
88
+ *
89
+ * @param ctx - Convex context with `runQuery`.
90
+ * @param userId - The user document ID.
91
+ * @returns The user document, or `null` if not found.
79
92
  */
80
93
  get: async (ctx, userId) => {
81
94
  return await ctx.runQuery(config.component.public.userGetById, { userId });
82
95
  },
83
96
  /**
84
97
  * Get the currently signed-in user's document, or `null` if not
85
- * signed in. Convenience method combining `current` + `get`.
98
+ * signed in. Convenience combining `current()` + `get()`.
99
+ *
100
+ * @param ctx - Convex context with `auth` and `runQuery`.
101
+ * @returns The user document, or `null` when unauthenticated.
86
102
  */
87
103
  viewer: async (ctx) => {
88
104
  const userId = await auth.user.current(ctx);
@@ -91,6 +107,19 @@ export function Auth(config_) {
91
107
  }
92
108
  return await ctx.runQuery(config.component.public.userGetById, { userId });
93
109
  },
110
+ /**
111
+ * Update a user document with partial data.
112
+ *
113
+ * @param ctx - Convex context with `runMutation`.
114
+ * @param userId - The user document ID.
115
+ * @param data - Partial data to merge into the user document.
116
+ */
117
+ patch: async (ctx, userId, data) => {
118
+ await ctx.runMutation(config.component.public.userPatch, {
119
+ userId,
120
+ data,
121
+ });
122
+ },
94
123
  /**
95
124
  * Query a user's group memberships.
96
125
  */
@@ -116,6 +145,9 @@ export function Auth(config_) {
116
145
  /**
117
146
  * Get the current session ID from the auth context, or `null` if
118
147
  * not signed in.
148
+ *
149
+ * @param ctx - Any Convex context with an `auth` field.
150
+ * @returns The session's `Id<"session">`, or `null` when unauthenticated.
119
151
  */
120
152
  current: async (ctx) => {
121
153
  const identity = await ctx.auth.getUserIdentity();
@@ -127,6 +159,10 @@ export function Auth(config_) {
127
159
  },
128
160
  /**
129
161
  * Invalidate sessions for a user, optionally preserving specific sessions.
162
+ *
163
+ * @param ctx - Convex action context.
164
+ * @param args.userId - The user whose sessions to invalidate.
165
+ * @param args.except - Session IDs to preserve (e.g. the current session).
130
166
  */
131
167
  invalidate: async (ctx, args) => {
132
168
  const actionCtx = ctx;
@@ -136,6 +172,10 @@ export function Auth(config_) {
136
172
  account: {
137
173
  /**
138
174
  * Create an account and user for a credentials provider.
175
+ *
176
+ * @param ctx - Convex action context.
177
+ * @param args - Provider ID, account credentials, profile data, and link flags.
178
+ * @returns `{ account, user }` — the created account and user documents.
139
179
  */
140
180
  create: async (ctx, args) => {
141
181
  const actionCtx = ctx;
@@ -143,17 +183,25 @@ export function Auth(config_) {
143
183
  },
144
184
  /**
145
185
  * Retrieve an account and user for a credentials provider.
186
+ *
187
+ * @param ctx - Convex action context.
188
+ * @param args - Provider ID and account credentials (id, optional secret).
189
+ * @returns `{ account, user }` — the matched account and user documents.
190
+ * @throws `ConvexError` with code `ACCOUNT_NOT_FOUND` when no match exists.
146
191
  */
147
192
  get: async (ctx, args) => {
148
193
  const actionCtx = ctx;
149
194
  const result = await callRetreiveAccountWithCredentials(actionCtx, args);
150
195
  if (typeof result === "string") {
151
- throw new Error(result);
196
+ throwAuthError("ACCOUNT_NOT_FOUND", result);
152
197
  }
153
198
  return result;
154
199
  },
155
200
  /**
156
- * Update credentials for an existing account.
201
+ * Update credentials (secret) for an existing account.
202
+ *
203
+ * @param ctx - Convex action context.
204
+ * @param args - Provider ID and new account credentials (id + secret).
157
205
  */
158
206
  updateCredentials: async (ctx, args) => {
159
207
  const actionCtx = ctx;
@@ -163,6 +211,11 @@ export function Auth(config_) {
163
211
  provider: {
164
212
  /**
165
213
  * Sign in via another provider, typically from a credentials flow.
214
+ *
215
+ * @param ctx - Convex action context.
216
+ * @param provider - The provider config to sign in with.
217
+ * @param args - Optional account ID and params.
218
+ * @returns `{ userId, sessionId }` on success, or `null`.
166
219
  */
167
220
  signIn: async (ctx, provider, args) => {
168
221
  const result = await signInImpl(enrichCtx(ctx), materializeProvider(provider), args, {
@@ -337,15 +390,17 @@ export function Auth(config_) {
337
390
  * the timestamp. If the invite has a group, the caller is responsible
338
391
  * for creating the member record via `auth.group.member.add` in the
339
392
  * same Convex mutation for transactional safety.
340
- *
341
- * @throws ConvexError with code `INVITE_NOT_FOUND` when the invite does
342
- * not exist.
343
- * @throws ConvexError with code `INVITE_NOT_PENDING` when the invite is
344
- * not in `pending` status.
345
393
  *
394
+ * @param ctx - Convex context with `runMutation`.
395
+ * @param inviteId - The invite document ID.
396
+ * @param acceptedByUserId - User accepting the invite (recorded for audit).
397
+ * @throws `ConvexError` with code `INVITE_NOT_FOUND` when the invite does not exist.
398
+ * @throws `ConvexError` with code `INVITE_NOT_PENDING` when the invite is not in `pending` status.
399
+ *
400
+ * @example
346
401
  * ```ts
347
- * export const acceptInvite = mutation({
348
- * args: { inviteId: v.string() },
402
+ * export const acceptInvite = mutation({
403
+ * args: { inviteId: v.string() },
349
404
  * handler: async (ctx, { inviteId }) => {
350
405
  * const userId = await auth.user.require(ctx);
351
406
  * const invite = await auth.invite.get(ctx, inviteId);
@@ -372,10 +427,10 @@ export function Auth(config_) {
372
427
  /**
373
428
  * Revoke a pending invitation.
374
429
  *
375
- * @throws ConvexError with code `INVITE_NOT_FOUND` when the invite does
376
- * not exist.
377
- * @throws ConvexError with code `INVITE_NOT_PENDING` when the invite is
378
- * not in `pending` status.
430
+ * @param ctx - Convex context with `runMutation`.
431
+ * @param inviteId - The invite document ID.
432
+ * @throws `ConvexError` with code `INVITE_NOT_FOUND` when the invite does not exist.
433
+ * @throws `ConvexError` with code `INVITE_NOT_PENDING` when the invite is not in `pending` status.
379
434
  */
380
435
  revoke: async (ctx, inviteId) => {
381
436
  await ctx.runMutation(config.component.public.inviteRevoke, { inviteId });
@@ -446,6 +501,137 @@ export function Auth(config_) {
446
501
  await ctx.runMutation(config.component.public.totpDelete, { totpId });
447
502
  },
448
503
  },
504
+ /**
505
+ * Manage API keys for programmatic access.
506
+ *
507
+ * Keys use SHA-256 hashing (via `@oslojs/crypto`) and support
508
+ * scoped resource:action permissions with optional per-key rate limiting.
509
+ *
510
+ * ```ts
511
+ * const { keyId, raw } = await auth.key.create(ctx, {
512
+ * userId,
513
+ * name: "CI Pipeline",
514
+ * scopes: [{ resource: "users", actions: ["read", "list"] }],
515
+ * });
516
+ * // raw = "sk_live_abc123..." — show once, never stored
517
+ *
518
+ * const result = await auth.key.verify(ctx, rawKey);
519
+ * result.scopes.can("users", "read"); // true
520
+ * ```
521
+ */
522
+ key: {
523
+ /**
524
+ * Create a new API key. Returns the raw key **once** — it cannot
525
+ * be retrieved again after creation.
526
+ *
527
+ * @param opts.userId - The user this key belongs to.
528
+ * @param opts.name - Human-readable name (e.g. "CI Pipeline").
529
+ * @param opts.scopes - Resource:action permissions for this key.
530
+ * @param opts.rateLimit - Optional per-key rate limit override.
531
+ * @param opts.expiresAt - Optional expiration timestamp.
532
+ * @returns `{ keyId, raw }` where `raw` is the full key string.
533
+ */
534
+ create: async (ctx, opts) => {
535
+ const prefix = config.apiKeys?.prefix ?? "sk_live_";
536
+ // Validate scopes against config if defined
537
+ validateScopes(opts.scopes, config.apiKeys?.scopes);
538
+ const { raw, hashedKey, displayPrefix } = await generateApiKey(prefix);
539
+ const keyId = await ctx.runMutation(config.component.public.keyInsert, {
540
+ userId: opts.userId,
541
+ prefix: displayPrefix,
542
+ hashedKey,
543
+ name: opts.name,
544
+ scopes: opts.scopes,
545
+ rateLimit: opts.rateLimit ?? config.apiKeys?.defaultRateLimit,
546
+ expiresAt: opts.expiresAt,
547
+ });
548
+ return { keyId: keyId, raw };
549
+ },
550
+ /**
551
+ * Verify a raw API key string. Returns the userId and a scope checker
552
+ * if the key is valid, not revoked, not expired, and not rate-limited.
553
+ *
554
+ * Also updates `lastUsedAt` and rate limit state as a side effect.
555
+ *
556
+ * @throws Error if the key is invalid, revoked, expired, or rate-limited.
557
+ */
558
+ verify: async (ctx, rawKey) => {
559
+ const hashedKey = await hashApiKey(rawKey);
560
+ const key = await ctx.runQuery(config.component.public.keyGetByHashedKey, { hashedKey });
561
+ if (!key) {
562
+ throwAuthError("INVALID_API_KEY");
563
+ }
564
+ if (key.revoked) {
565
+ throwAuthError("API_KEY_REVOKED");
566
+ }
567
+ if (key.expiresAt && key.expiresAt < Date.now()) {
568
+ throwAuthError("API_KEY_EXPIRED");
569
+ }
570
+ // Check per-key rate limit
571
+ const patchData = { lastUsedAt: Date.now() };
572
+ if (key.rateLimit) {
573
+ const { limited, newState } = checkKeyRateLimit(key.rateLimit, key.rateLimitState ?? undefined);
574
+ if (limited) {
575
+ throwAuthError("API_KEY_RATE_LIMITED");
576
+ }
577
+ patchData.rateLimitState = newState;
578
+ }
579
+ // Update lastUsedAt (and rate limit state if applicable)
580
+ await ctx.runMutation(config.component.public.keyPatch, {
581
+ keyId: key._id,
582
+ data: patchData,
583
+ });
584
+ return {
585
+ userId: key.userId,
586
+ keyId: key._id,
587
+ scopes: buildScopeChecker(key.scopes),
588
+ };
589
+ },
590
+ /**
591
+ * List all API keys for a user.
592
+ * Never includes the raw key — only the display prefix.
593
+ */
594
+ list: async (ctx, opts) => {
595
+ return await ctx.runQuery(config.component.public.keyListByUserId, { userId: opts.userId });
596
+ },
597
+ /**
598
+ * Get a single API key by its document ID.
599
+ * Returns `null` if not found.
600
+ */
601
+ get: async (ctx, keyId) => {
602
+ return await ctx.runQuery(config.component.public.keyGetById, { keyId: keyId });
603
+ },
604
+ /**
605
+ * Update an API key's metadata (name, scopes, rate limit).
606
+ */
607
+ update: async (ctx, keyId, data) => {
608
+ if (data.scopes) {
609
+ validateScopes(data.scopes, config.apiKeys?.scopes);
610
+ }
611
+ await ctx.runMutation(config.component.public.keyPatch, {
612
+ keyId: keyId,
613
+ data,
614
+ });
615
+ },
616
+ /**
617
+ * Revoke an API key (soft delete). The key record is preserved
618
+ * for audit purposes but can no longer be used for authentication.
619
+ */
620
+ revoke: async (ctx, keyId) => {
621
+ await ctx.runMutation(config.component.public.keyPatch, {
622
+ keyId: keyId,
623
+ data: { revoked: true },
624
+ });
625
+ },
626
+ /**
627
+ * Hard delete an API key record.
628
+ */
629
+ remove: async (ctx, keyId) => {
630
+ await ctx.runMutation(config.component.public.keyDelete, {
631
+ keyId: keyId,
632
+ });
633
+ },
634
+ },
449
635
  /**
450
636
  * Add HTTP actions for JWT verification and OAuth sign-in.
451
637
  *
@@ -512,11 +698,11 @@ export function Auth(config_) {
512
698
  const pathParts = url.pathname.split("/");
513
699
  const providerId = pathParts.at(-1);
514
700
  if (providerId === null) {
515
- throw new Error("Missing provider id");
701
+ throwAuthError("OAUTH_MISSING_PROVIDER");
516
702
  }
517
703
  const verifier = url.searchParams.get("code");
518
704
  if (verifier === null) {
519
- throw new Error("Missing sign-in verifier");
705
+ throwAuthError("OAUTH_MISSING_VERIFIER");
520
706
  }
521
707
  const provider = getProviderOrThrow(providerId);
522
708
  const { redirect, cookies, signature } = await getAuthorizationUrl({
@@ -568,7 +754,7 @@ export function Auth(config_) {
568
754
  });
569
755
  const { id, ...profileFromCallback } = await provider.profile(profile, tokens);
570
756
  if (typeof id !== "string") {
571
- throw new Error(`The profile method of the ${providerId} config must return a string ID`);
757
+ throwAuthError("OAUTH_INVALID_PROFILE", `The profile method of the ${providerId} config must return a string ID`, { provider: providerId });
572
758
  }
573
759
  const verificationCode = await callUserOAuth(ctx, {
574
760
  provider: providerId,
@@ -657,7 +843,7 @@ export function Auth(config_) {
657
843
  return { totpSetup: { uri: result.uri, secret: result.secret, totpId: result.totpId }, verifier: result.verifier };
658
844
  default: {
659
845
  const _typecheck = result;
660
- throw new Error(`Unexpected result from signIn, ${result}`);
846
+ throwAuthError("INTERNAL_ERROR", `Unexpected result from signIn, ${result}`);
661
847
  }
662
848
  }
663
849
  },
@@ -689,10 +875,16 @@ function convertErrorsToResponse(errorStatusCode, action) {
689
875
  return await action(ctx, request);
690
876
  }
691
877
  catch (error) {
692
- if (error instanceof ConvexError) {
878
+ if (isAuthError(error)) {
879
+ return new Response(JSON.stringify({ code: error.data.code, message: error.data.message }), {
880
+ status: errorStatusCode,
881
+ headers: { "Content-Type": "application/json" },
882
+ });
883
+ }
884
+ else if (error instanceof ConvexError) {
693
885
  return new Response(null, {
694
886
  status: errorStatusCode,
695
- statusText: error.data,
887
+ statusText: typeof error.data === "string" ? error.data : "Error",
696
888
  });
697
889
  }
698
890
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/implementation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/implementation/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createAccountFromCredentials.d.ts","sourceRoot":"","sources":["../../../../src/server/implementation/mutations/createAccountFromCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAK,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAQ3C,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;wJAM3C,CAAC;AAEH,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEjE,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,KAAK,CAAC,OAAO,gCAAgC,CAAC,EACpD,kBAAkB,EAAE,QAAQ,CAAC,sBAAsB,EACnD,MAAM,EAAE,QAAQ,CAAC,MAAM,GACtB,OAAO,CAAC,UAAU,CAAC,CA6DrB;AAED,eAAO,MAAM,gCAAgC,GAC3C,KAAK,SAAS,EACd,MAAM,KAAK,CAAC,OAAO,gCAAgC,CAAC,KACnD,OAAO,CAAC,UAAU,CAOpB,CAAC"}
1
+ {"version":3,"file":"createAccountFromCredentials.d.ts","sourceRoot":"","sources":["../../../../src/server/implementation/mutations/createAccountFromCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAK,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAS3C,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;wJAM3C,CAAC;AAEH,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEjE,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,KAAK,CAAC,OAAO,gCAAgC,CAAC,EACpD,kBAAkB,EAAE,QAAQ,CAAC,sBAAsB,EACnD,MAAM,EAAE,QAAQ,CAAC,MAAM,GACtB,OAAO,CAAC,UAAU,CAAC,CA6DrB;AAED,eAAO,MAAM,gCAAgC,GAC3C,KAAK,SAAS,EACd,MAAM,KAAK,CAAC,OAAO,gCAAgC,CAAC,KACnD,OAAO,CAAC,UAAU,CAOpB,CAAC"}
@@ -5,6 +5,7 @@ import { getAuthSessionId } from "../sessions.js";
5
5
  import { LOG_LEVELS, logWithLevel, maybeRedact } from "../utils.js";
6
6
  import { authDb } from "../db.js";
7
7
  import { AUTH_STORE_REF } from "./storeRef.js";
8
+ import { throwAuthError } from "../../errors.js";
8
9
  export const createAccountFromCredentialsArgs = v.object({
9
10
  provider: v.string(),
10
11
  account: v.object({ id: v.string(), secret: v.optional(v.string()) }),
@@ -27,7 +28,7 @@ export async function createAccountFromCredentialsImpl(ctx, args, getProviderOrT
27
28
  if (existingAccount !== null) {
28
29
  if (account.secret !== undefined &&
29
30
  !(await Provider.verify(provider, account.secret, existingAccount.secret ?? ""))) {
30
- throw new Error(`Account ${account.id} already exists`);
31
+ throwAuthError("ACCOUNT_ALREADY_EXISTS", `Account ${account.id} already exists`);
31
32
  }
32
33
  return {
33
34
  account: existingAccount,
@@ -1 +1 @@
1
- {"version":3,"file":"createAccountFromCredentials.js","sourceRoot":"","sources":["../../../../src/server/implementation/mutations/createAccountFromCredentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createAccountFromCredentials.js","sourceRoot":"","sources":["../../../../src/server/implementation/mutations/createAccountFromCredentials.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@ export declare const createVerificationCodeArgs: import("convex/values").VObject
5
5
  email?: string | undefined;
6
6
  phone?: string | undefined;
7
7
  accountId?: string | undefined;
8
+ code: string;
8
9
  expirationTime: number;
9
10
  provider: string;
10
- code: string;
11
11
  allowExtraProviders: boolean;
12
12
  }, {
13
13
  accountId: import("convex/values").VString<string | undefined, "optional">;
@@ -17,7 +17,7 @@ export declare const createVerificationCodeArgs: import("convex/values").VObject
17
17
  code: import("convex/values").VString<string, "required">;
18
18
  expirationTime: import("convex/values").VFloat64<number, "required">;
19
19
  allowExtraProviders: import("convex/values").VBoolean<boolean, "required">;
20
- }, "required", "email" | "phone" | "expirationTime" | "provider" | "accountId" | "code" | "allowExtraProviders">;
20
+ }, "required", "code" | "email" | "phone" | "expirationTime" | "provider" | "accountId" | "allowExtraProviders">;
21
21
  type ReturnType = string;
22
22
  export declare function createVerificationCodeImpl(ctx: MutationCtx, args: Infer<typeof createVerificationCodeArgs>, getProviderOrThrow: Provider.GetProviderOrThrowFunc, config: Provider.Config): Promise<ReturnType>;
23
23
  export declare const callCreateVerificationCode: (ctx: ActionCtx, args: Infer<typeof createVerificationCodeArgs>) => Promise<ReturnType>;
@@ -47,10 +47,10 @@ export declare const storeArgs: import("convex/values").VObject<{
47
47
  email?: string | undefined;
48
48
  phone?: string | undefined;
49
49
  accountId?: string | undefined;
50
+ code: string;
50
51
  type: "createVerificationCode";
51
52
  expirationTime: number;
52
53
  provider: string;
53
- code: string;
54
54
  allowExtraProviders: boolean;
55
55
  } | {
56
56
  shouldLinkViaEmail?: boolean | undefined;
@@ -115,10 +115,10 @@ export declare const storeArgs: import("convex/values").VObject<{
115
115
  email?: string | undefined;
116
116
  phone?: string | undefined;
117
117
  accountId?: string | undefined;
118
+ code: string;
118
119
  type: "createVerificationCode";
119
120
  expirationTime: number;
120
121
  provider: string;
121
- code: string;
122
122
  allowExtraProviders: boolean;
123
123
  } | {
124
124
  shouldLinkViaEmail?: boolean | undefined;
@@ -210,10 +210,10 @@ export declare const storeArgs: import("convex/values").VObject<{
210
210
  email?: string | undefined;
211
211
  phone?: string | undefined;
212
212
  accountId?: string | undefined;
213
+ code: string;
213
214
  type: "createVerificationCode";
214
215
  expirationTime: number;
215
216
  provider: string;
216
- code: string;
217
217
  allowExtraProviders: boolean;
218
218
  }, {
219
219
  accountId: import("convex/values").VString<string | undefined, "optional">;
@@ -224,7 +224,7 @@ export declare const storeArgs: import("convex/values").VObject<{
224
224
  expirationTime: import("convex/values").VFloat64<number, "required">;
225
225
  allowExtraProviders: import("convex/values").VBoolean<boolean, "required">;
226
226
  type: import("convex/values").VLiteral<"createVerificationCode", "required">;
227
- }, "required", "type" | "email" | "phone" | "expirationTime" | "provider" | "accountId" | "code" | "allowExtraProviders">, import("convex/values").VObject<{
227
+ }, "required", "code" | "type" | "email" | "phone" | "expirationTime" | "provider" | "accountId" | "allowExtraProviders">, import("convex/values").VObject<{
228
228
  shouldLinkViaEmail?: boolean | undefined;
229
229
  shouldLinkViaPhone?: boolean | undefined;
230
230
  type: "createAccountFromCredentials";
@@ -289,8 +289,8 @@ export declare const storeArgs: import("convex/values").VObject<{
289
289
  userId: import("convex/values").VString<string, "required">;
290
290
  except: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
291
291
  type: import("convex/values").VLiteral<"invalidateSessions", "required">;
292
- }, "required", "type" | "userId" | "except">], "required", "type" | "profile" | "account" | "email" | "phone" | "userId" | "expirationTime" | "provider" | "providerAccountId" | "sessionId" | "accountId" | "code" | "verifier" | "signature" | "generateTokens" | "refreshToken" | "params" | "allowExtraProviders" | `params.${string}` | `profile.${string}` | "shouldLinkViaEmail" | "shouldLinkViaPhone" | "account.id" | "account.secret" | "except">;
293
- }, "required", "args" | "args.type" | "args.profile" | "args.account" | "args.email" | "args.phone" | "args.userId" | "args.expirationTime" | "args.provider" | "args.providerAccountId" | "args.sessionId" | "args.accountId" | "args.code" | "args.verifier" | "args.signature" | "args.generateTokens" | "args.refreshToken" | "args.params" | "args.allowExtraProviders" | `args.params.${string}` | `args.profile.${string}` | "args.shouldLinkViaEmail" | "args.shouldLinkViaPhone" | "args.account.id" | "args.account.secret" | "args.except">;
292
+ }, "required", "type" | "userId" | "except">], "required", "code" | "type" | "profile" | "account" | "email" | "phone" | "userId" | "expirationTime" | "provider" | "providerAccountId" | "sessionId" | "accountId" | "verifier" | "signature" | "generateTokens" | "refreshToken" | "params" | "allowExtraProviders" | `params.${string}` | `profile.${string}` | "shouldLinkViaEmail" | "shouldLinkViaPhone" | "account.id" | "account.secret" | "except">;
293
+ }, "required", "args" | "args.code" | "args.type" | "args.profile" | "args.account" | "args.email" | "args.phone" | "args.userId" | "args.expirationTime" | "args.provider" | "args.providerAccountId" | "args.sessionId" | "args.accountId" | "args.verifier" | "args.signature" | "args.generateTokens" | "args.refreshToken" | "args.params" | "args.allowExtraProviders" | `args.params.${string}` | `args.profile.${string}` | "args.shouldLinkViaEmail" | "args.shouldLinkViaPhone" | "args.account.id" | "args.account.secret" | "args.except">;
294
294
  export declare const storeImpl: (ctx: MutationCtx, fnArgs: Infer<typeof storeArgs>, getProviderOrThrow: Provider.GetProviderOrThrowFunc, config: Provider.Config) => Promise<string | void | {
295
295
  userId: import("convex/values").GenericId<"user">;
296
296
  sessionId: import("convex/values").GenericId<"session">;
@@ -1 +1 @@
1
- {"version":3,"file":"modifyAccount.d.ts","sourceRoot":"","sources":["../../../../src/server/implementation/mutations/modifyAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAK,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAQ,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAI3C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;wEAG5B,CAAC;AAEH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,KAAK,CAAC,OAAO,iBAAiB,CAAC,EACrC,kBAAkB,EAAE,sBAAsB,EAC1C,MAAM,EAAE,QAAQ,CAAC,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,eAAO,MAAM,iBAAiB,GAC5B,KAAK,SAAS,EACd,MAAM,KAAK,CAAC,OAAO,iBAAiB,CAAC,KACpC,OAAO,CAAC,IAAI,CAOd,CAAC"}
1
+ {"version":3,"file":"modifyAccount.d.ts","sourceRoot":"","sources":["../../../../src/server/implementation/mutations/modifyAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAK,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAQ,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAK3C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;wEAG5B,CAAC;AAEH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,KAAK,CAAC,OAAO,iBAAiB,CAAC,EACrC,kBAAkB,EAAE,sBAAsB,EAC1C,MAAM,EAAE,QAAQ,CAAC,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,eAAO,MAAM,iBAAiB,GAC5B,KAAK,SAAS,EACd,MAAM,KAAK,CAAC,OAAO,iBAAiB,CAAC,KACpC,OAAO,CAAC,IAAI,CAOd,CAAC"}
@@ -3,6 +3,7 @@ import { hash } from "../provider.js";
3
3
  import { LOG_LEVELS, logWithLevel, maybeRedact } from "../utils.js";
4
4
  import { authDb } from "../db.js";
5
5
  import { AUTH_STORE_REF } from "./storeRef.js";
6
+ import { throwAuthError } from "../../errors.js";
6
7
  export const modifyAccountArgs = v.object({
7
8
  provider: v.string(),
8
9
  account: v.object({ id: v.string(), secret: v.string() }),
@@ -19,7 +20,7 @@ export async function modifyAccountImpl(ctx, args, getProviderOrThrow, config) {
19
20
  });
20
21
  const existingAccount = await db.accounts.get(provider, account.id);
21
22
  if (existingAccount === null) {
22
- throw new Error(`Cannot modify account with ID ${account.id} because it does not exist`);
23
+ throwAuthError("ACCOUNT_NOT_FOUND", `Cannot modify account with ID ${account.id} because it does not exist`);
23
24
  }
24
25
  await db.accounts.patch(existingAccount._id, {
25
26
  secret: await hash(getProviderOrThrow(provider), account.secret),
@@ -1 +1 @@
1
- {"version":3,"file":"modifyAccount.js","sourceRoot":"","sources":["../../../../src/server/implementation/mutations/modifyAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,CAAC,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAA0B,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAgB,EAChB,IAAqC,EACrC,kBAA0C,EAC1C,MAAuB;IAEvB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,0CAA0C,EAAE;QACzE,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE;YACP,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;SAC1C;KACF,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,iCAAiC,OAAO,CAAC,EAAE,4BAA4B,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QAC3C,MAAM,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;KACjE,CAAC,CAAC;IACH,OAAO;AACT,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,GAAc,EACd,IAAqC,EACtB,EAAE;IACjB,OAAO,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,eAAe;YACrB,GAAG,IAAI;SACR;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"modifyAccount.js","sourceRoot":"","sources":["../../../../src/server/implementation/mutations/modifyAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,CAAC,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAA0B,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAgB,EAChB,IAAqC,EACrC,kBAA0C,EAC1C,MAAuB;IAEvB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,0CAA0C,EAAE;QACzE,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE;YACP,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;SAC1C;KACF,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,cAAc,CAAC,mBAAmB,EAAE,iCAAiC,OAAO,CAAC,EAAE,4BAA4B,CAAC,CAAC;IAC/G,CAAC;IACD,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QAC3C,MAAM,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;KACjE,CAAC,CAAC;IACH,OAAO;AACT,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,GAAc,EACd,IAAqC,EACtB,EAAE;IACjB,OAAO,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,eAAe;YACrB,GAAG,IAAI;SACR;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}