opencode-openai-codex-auth-multi 4.3.0-multiaccount.1 → 4.3.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 (70) hide show
  1. package/LICENSE +37 -37
  2. package/README.md +461 -79
  3. package/assets/opencode-logo-ornate-dark.svg +18 -18
  4. package/assets/readme-hero.svg +31 -31
  5. package/config/README.md +98 -98
  6. package/config/minimal-opencode.json +11 -11
  7. package/config/opencode-legacy.json +568 -568
  8. package/config/opencode-modern.json +236 -236
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +368 -133
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/accounts.d.ts +78 -11
  14. package/dist/lib/accounts.d.ts.map +1 -1
  15. package/dist/lib/accounts.js +303 -66
  16. package/dist/lib/accounts.js.map +1 -1
  17. package/dist/lib/auth/auth.d.ts.map +1 -1
  18. package/dist/lib/auth/auth.js +19 -12
  19. package/dist/lib/auth/auth.js.map +1 -1
  20. package/dist/lib/auth/browser.d.ts.map +1 -1
  21. package/dist/lib/auth/browser.js +9 -2
  22. package/dist/lib/auth/browser.js.map +1 -1
  23. package/dist/lib/auth/server.d.ts.map +1 -1
  24. package/dist/lib/auth/server.js +11 -4
  25. package/dist/lib/auth/server.js.map +1 -1
  26. package/dist/lib/cli.d.ts +1 -0
  27. package/dist/lib/cli.d.ts.map +1 -1
  28. package/dist/lib/cli.js +10 -6
  29. package/dist/lib/cli.js.map +1 -1
  30. package/dist/lib/config.d.ts +5 -7
  31. package/dist/lib/config.d.ts.map +1 -1
  32. package/dist/lib/config.js +49 -6
  33. package/dist/lib/config.js.map +1 -1
  34. package/dist/lib/constants.d.ts +7 -0
  35. package/dist/lib/constants.d.ts.map +1 -1
  36. package/dist/lib/constants.js +7 -0
  37. package/dist/lib/constants.js.map +1 -1
  38. package/dist/lib/index.d.ts +13 -0
  39. package/dist/lib/index.d.ts.map +1 -0
  40. package/dist/lib/index.js +13 -0
  41. package/dist/lib/index.js.map +1 -0
  42. package/dist/lib/oauth-success.html +712 -712
  43. package/dist/lib/prompts/codex-opencode-bridge.js +121 -121
  44. package/dist/lib/prompts/codex.d.ts +5 -0
  45. package/dist/lib/prompts/codex.d.ts.map +1 -1
  46. package/dist/lib/prompts/codex.js +114 -93
  47. package/dist/lib/prompts/codex.js.map +1 -1
  48. package/dist/lib/request/fetch-helpers.d.ts +2 -3
  49. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  50. package/dist/lib/request/fetch-helpers.js +24 -27
  51. package/dist/lib/request/fetch-helpers.js.map +1 -1
  52. package/dist/lib/request/rate-limit-backoff.d.ts +13 -0
  53. package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -0
  54. package/dist/lib/request/rate-limit-backoff.js +54 -0
  55. package/dist/lib/request/rate-limit-backoff.js.map +1 -0
  56. package/dist/lib/request/request-transformer.d.ts.map +1 -1
  57. package/dist/lib/request/request-transformer.js +3 -2
  58. package/dist/lib/request/request-transformer.js.map +1 -1
  59. package/dist/lib/request/response-handler.js +1 -1
  60. package/dist/lib/request/response-handler.js.map +1 -1
  61. package/dist/lib/storage.d.ts +72 -4
  62. package/dist/lib/storage.d.ts.map +1 -1
  63. package/dist/lib/storage.js +189 -19
  64. package/dist/lib/storage.js.map +1 -1
  65. package/dist/lib/types.d.ts +37 -1
  66. package/dist/lib/types.d.ts.map +1 -1
  67. package/package.json +85 -71
  68. package/scripts/install-opencode-codex-auth.js +191 -191
  69. package/scripts/test-all-models.sh +258 -258
  70. package/scripts/validate-model-map.sh +97 -97
@@ -1,6 +1,7 @@
1
1
  import { decodeJWT } from "./auth/auth.js";
2
2
  import { JWT_CLAIM_PATH } from "./constants.js";
3
3
  import { loadAccounts, saveAccounts, } from "./storage.js";
4
+ import { MODEL_FAMILIES } from "./prompts/codex.js";
4
5
  function nowMs() {
5
6
  return Date.now();
6
7
  }
@@ -10,6 +11,17 @@ function clampNonNegativeInt(value, fallback) {
10
11
  }
11
12
  return value < 0 ? 0 : Math.floor(value);
12
13
  }
14
+ function getQuotaKey(family, model) {
15
+ if (model) {
16
+ return `${family}:${model}`;
17
+ }
18
+ return family;
19
+ }
20
+ /**
21
+ * Extracts the ChatGPT account ID from a JWT access token.
22
+ * @param accessToken - JWT access token from OAuth flow
23
+ * @returns Account ID string or undefined if not found
24
+ */
13
25
  export function extractAccountId(accessToken) {
14
26
  if (!accessToken)
15
27
  return undefined;
@@ -17,30 +29,104 @@ export function extractAccountId(accessToken) {
17
29
  const accountId = decoded?.[JWT_CLAIM_PATH]?.chatgpt_account_id;
18
30
  return typeof accountId === "string" && accountId.trim() ? accountId : undefined;
19
31
  }
20
- function isRateLimited(account) {
21
- if (typeof account.rateLimitResetTime !== "number")
22
- return false;
23
- return nowMs() < account.rateLimitResetTime;
32
+ /**
33
+ * Extracts the email address from a JWT access token.
34
+ * Checks multiple claim paths for compatibility.
35
+ * @param accessToken - JWT access token from OAuth flow
36
+ * @returns Email string or undefined if not found
37
+ */
38
+ export function extractAccountEmail(accessToken) {
39
+ if (!accessToken)
40
+ return undefined;
41
+ const decoded = decodeJWT(accessToken);
42
+ const nested = decoded?.[JWT_CLAIM_PATH];
43
+ const candidate = nested?.email ??
44
+ nested?.chatgpt_user_email ??
45
+ decoded?.email ??
46
+ decoded?.preferred_username;
47
+ if (typeof candidate === "string" && candidate.includes("@") && candidate.trim()) {
48
+ return candidate;
49
+ }
50
+ return undefined;
51
+ }
52
+ /**
53
+ * Sanitizes an email address by trimming whitespace and lowercasing.
54
+ * @param email - Email string to sanitize
55
+ * @returns Sanitized email or undefined if invalid
56
+ */
57
+ export function sanitizeEmail(email) {
58
+ if (!email)
59
+ return undefined;
60
+ const trimmed = email.trim();
61
+ if (!trimmed || !trimmed.includes("@"))
62
+ return undefined;
63
+ return trimmed.toLowerCase();
24
64
  }
25
- function clearExpiredRateLimit(account) {
26
- if (typeof account.rateLimitResetTime !== "number")
27
- return;
28
- if (nowMs() >= account.rateLimitResetTime) {
29
- delete account.rateLimitResetTime;
65
+ function clearExpiredRateLimits(account) {
66
+ const now = nowMs();
67
+ const keys = Object.keys(account.rateLimitResetTimes);
68
+ for (const key of keys) {
69
+ const resetTime = account.rateLimitResetTimes[key];
70
+ if (resetTime !== undefined && now >= resetTime) {
71
+ delete account.rateLimitResetTimes[key];
72
+ }
73
+ }
74
+ }
75
+ function isRateLimitedForQuotaKey(account, key) {
76
+ const resetTime = account.rateLimitResetTimes[key];
77
+ return resetTime !== undefined && nowMs() < resetTime;
78
+ }
79
+ function isRateLimitedForFamily(account, family, model) {
80
+ clearExpiredRateLimits(account);
81
+ if (model) {
82
+ const modelKey = getQuotaKey(family, model);
83
+ if (isRateLimitedForQuotaKey(account, modelKey)) {
84
+ return true;
85
+ }
30
86
  }
87
+ const baseKey = getQuotaKey(family);
88
+ return isRateLimitedForQuotaKey(account, baseKey);
31
89
  }
90
+ /**
91
+ * Manages multiple OAuth accounts with automatic rotation on rate limits.
92
+ * Tracks per-family active indices, rate limit reset times, and cooldowns.
93
+ */
32
94
  export class AccountManager {
33
95
  accounts = [];
34
- cursor = 0;
35
- activeIndex = -1;
96
+ // Per-family cursors for true round-robin rotation
97
+ cursorByFamily = {
98
+ "gpt-5.2-codex": 0,
99
+ "codex-max": 0,
100
+ codex: 0,
101
+ "gpt-5.2": 0,
102
+ "gpt-5.1": 0,
103
+ };
104
+ currentAccountIndexByFamily = {
105
+ "gpt-5.2-codex": -1,
106
+ "codex-max": -1,
107
+ codex: -1,
108
+ "gpt-5.2": -1,
109
+ "gpt-5.1": -1,
110
+ };
36
111
  lastToastAccountIndex = -1;
37
112
  lastToastTime = 0;
113
+ saveDebounceTimer = null;
114
+ pendingSave = null;
115
+ /**
116
+ * Loads account manager from disk storage with optional auth fallback.
117
+ * @param authFallback - Current OAuth auth to use if storage is empty
118
+ * @returns New AccountManager instance
119
+ */
38
120
  static async loadFromDisk(authFallback) {
39
121
  const stored = await loadAccounts();
40
122
  return new AccountManager(authFallback, stored);
41
123
  }
124
+ hasRefreshToken(refreshToken) {
125
+ return this.accounts.some((account) => account.refreshToken === refreshToken);
126
+ }
42
127
  constructor(authFallback, stored) {
43
128
  const fallbackAccountId = extractAccountId(authFallback?.access);
129
+ const fallbackAccountEmail = extractAccountEmail(authFallback?.access);
44
130
  if (stored && stored.accounts.length > 0) {
45
131
  const baseNow = nowMs();
46
132
  this.accounts = stored.accounts
@@ -51,19 +137,20 @@ export class AccountManager {
51
137
  const matchesFallback = !!authFallback &&
52
138
  ((fallbackAccountId && account.accountId === fallbackAccountId) ||
53
139
  account.refreshToken === authFallback.refresh);
54
- const refreshToken = matchesFallback
55
- ? authFallback.refresh
56
- : account.refreshToken;
140
+ const refreshToken = matchesFallback && authFallback ? authFallback.refresh : account.refreshToken;
57
141
  return {
58
142
  index,
59
143
  accountId: matchesFallback ? fallbackAccountId ?? account.accountId : account.accountId,
144
+ email: matchesFallback
145
+ ? sanitizeEmail(fallbackAccountEmail) ?? sanitizeEmail(account.email)
146
+ : sanitizeEmail(account.email),
60
147
  refreshToken,
61
- access: matchesFallback ? authFallback.access : undefined,
62
- expires: matchesFallback ? authFallback.expires : undefined,
148
+ access: matchesFallback && authFallback ? authFallback.access : undefined,
149
+ expires: matchesFallback && authFallback ? authFallback.expires : undefined,
63
150
  addedAt: clampNonNegativeInt(account.addedAt, baseNow),
64
151
  lastUsed: clampNonNegativeInt(account.lastUsed, 0),
65
152
  lastSwitchReason: account.lastSwitchReason,
66
- rateLimitResetTime: account.rateLimitResetTime,
153
+ rateLimitResetTimes: account.rateLimitResetTimes ?? {},
67
154
  coolingDownUntil: account.coolingDownUntil,
68
155
  cooldownReason: account.cooldownReason,
69
156
  };
@@ -77,18 +164,24 @@ export class AccountManager {
77
164
  this.accounts.push({
78
165
  index: this.accounts.length,
79
166
  accountId: fallbackAccountId,
167
+ email: sanitizeEmail(fallbackAccountEmail),
80
168
  refreshToken: authFallback.refresh,
81
169
  access: authFallback.access,
82
170
  expires: authFallback.expires,
83
171
  addedAt: now,
84
172
  lastUsed: now,
85
173
  lastSwitchReason: "initial",
174
+ rateLimitResetTimes: {},
86
175
  });
87
176
  }
88
177
  if (this.accounts.length > 0) {
89
- const nextIndex = clampNonNegativeInt(stored.activeIndex, 0);
90
- this.activeIndex = nextIndex % this.accounts.length;
91
- this.cursor = this.activeIndex;
178
+ const defaultIndex = clampNonNegativeInt(stored.activeIndex, 0) % this.accounts.length;
179
+ for (const family of MODEL_FAMILIES) {
180
+ const rawIndex = stored.activeIndexByFamily?.[family];
181
+ const nextIndex = clampNonNegativeInt(rawIndex, defaultIndex) % this.accounts.length;
182
+ this.currentAccountIndexByFamily[family] = nextIndex;
183
+ this.cursorByFamily[family] = nextIndex;
184
+ }
92
185
  }
93
186
  return;
94
187
  }
@@ -98,26 +191,40 @@ export class AccountManager {
98
191
  {
99
192
  index: 0,
100
193
  accountId: fallbackAccountId,
194
+ email: sanitizeEmail(fallbackAccountEmail),
101
195
  refreshToken: authFallback.refresh,
102
196
  access: authFallback.access,
103
197
  expires: authFallback.expires,
104
198
  addedAt: now,
105
199
  lastUsed: 0,
106
200
  lastSwitchReason: "initial",
201
+ rateLimitResetTimes: {},
107
202
  },
108
203
  ];
109
- this.activeIndex = 0;
110
- this.cursor = 0;
204
+ for (const family of MODEL_FAMILIES) {
205
+ this.currentAccountIndexByFamily[family] = 0;
206
+ this.cursorByFamily[family] = 0;
207
+ }
111
208
  }
112
209
  }
113
210
  getAccountCount() {
114
211
  return this.accounts.length;
115
212
  }
116
213
  getActiveIndex() {
117
- return this.activeIndex;
214
+ return this.getActiveIndexForFamily("codex");
215
+ }
216
+ getActiveIndexForFamily(family) {
217
+ const index = this.currentAccountIndexByFamily[family];
218
+ if (index < 0 || index >= this.accounts.length) {
219
+ return this.accounts.length > 0 ? 0 : -1;
220
+ }
221
+ return index;
118
222
  }
119
223
  getAccountsSnapshot() {
120
- return this.accounts.map((account) => ({ ...account }));
224
+ return this.accounts.map((account) => ({
225
+ ...account,
226
+ rateLimitResetTimes: { ...account.rateLimitResetTimes },
227
+ }));
121
228
  }
122
229
  setActiveIndex(index) {
123
230
  if (!Number.isFinite(index))
@@ -127,54 +234,84 @@ export class AccountManager {
127
234
  const account = this.accounts[index];
128
235
  if (!account)
129
236
  return null;
130
- this.activeIndex = index;
237
+ for (const family of MODEL_FAMILIES) {
238
+ this.currentAccountIndexByFamily[family] = index;
239
+ this.cursorByFamily[family] = index;
240
+ }
131
241
  account.lastUsed = nowMs();
132
242
  account.lastSwitchReason = "rotation";
133
243
  return account;
134
244
  }
135
245
  getCurrentAccount() {
136
- if (this.activeIndex < 0 || this.activeIndex >= this.accounts.length) {
246
+ return this.getCurrentAccountForFamily("codex");
247
+ }
248
+ getCurrentAccountForFamily(family) {
249
+ const index = this.currentAccountIndexByFamily[family];
250
+ if (index < 0 || index >= this.accounts.length) {
137
251
  return null;
138
252
  }
139
- return this.accounts[this.activeIndex] ?? null;
253
+ return this.accounts[index] ?? null;
140
254
  }
141
255
  getCurrentOrNext() {
142
- const current = this.getCurrentAccount();
143
- if (current) {
144
- clearExpiredRateLimit(current);
145
- if (!isRateLimited(current) && !this.isAccountCoolingDown(current)) {
146
- current.lastUsed = nowMs();
147
- return current;
256
+ return this.getCurrentOrNextForFamily("codex");
257
+ }
258
+ getCurrentOrNextForFamily(family, model) {
259
+ const count = this.accounts.length;
260
+ if (count === 0)
261
+ return null;
262
+ // True round-robin: always advance cursor and pick next available account
263
+ const cursor = this.cursorByFamily[family];
264
+ for (let i = 0; i < count; i++) {
265
+ const idx = (cursor + i) % count;
266
+ const account = this.accounts[idx];
267
+ if (!account)
268
+ continue;
269
+ clearExpiredRateLimits(account);
270
+ if (isRateLimitedForFamily(account, family, model) || this.isAccountCoolingDown(account)) {
271
+ continue;
148
272
  }
273
+ // Found available account - advance cursor for next request
274
+ this.cursorByFamily[family] = (idx + 1) % count;
275
+ this.currentAccountIndexByFamily[family] = idx;
276
+ account.lastUsed = nowMs();
277
+ return account;
149
278
  }
150
- const next = this.getNextAvailable();
151
- if (next) {
152
- this.activeIndex = next.index;
153
- }
154
- return next;
279
+ // All accounts blocked
280
+ return null;
155
281
  }
156
- getNextAvailable() {
157
- const available = this.accounts.filter((account) => {
158
- clearExpiredRateLimit(account);
159
- return !isRateLimited(account) && !this.isAccountCoolingDown(account);
160
- });
161
- if (available.length === 0) {
282
+ getNextForFamily(family, model) {
283
+ const count = this.accounts.length;
284
+ if (count === 0)
162
285
  return null;
286
+ const cursor = this.cursorByFamily[family];
287
+ for (let i = 0; i < count; i++) {
288
+ const idx = (cursor + i) % count;
289
+ const account = this.accounts[idx];
290
+ if (!account)
291
+ continue;
292
+ clearExpiredRateLimits(account);
293
+ if (isRateLimitedForFamily(account, family, model) || this.isAccountCoolingDown(account)) {
294
+ continue;
295
+ }
296
+ this.cursorByFamily[family] = (idx + 1) % count;
297
+ account.lastUsed = nowMs();
298
+ return account;
163
299
  }
164
- const account = available[this.cursor % available.length];
165
- if (!account)
166
- return null;
167
- this.cursor += 1;
168
- account.lastUsed = nowMs();
169
- return account;
300
+ return null;
170
301
  }
171
- markSwitched(account, reason) {
302
+ markSwitched(account, reason, family) {
172
303
  account.lastSwitchReason = reason;
173
- this.activeIndex = account.index;
304
+ this.currentAccountIndexByFamily[family] = account.index;
174
305
  }
175
- markRateLimited(account, retryAfterMs) {
306
+ markRateLimited(account, retryAfterMs, family, model) {
176
307
  const retryMs = Math.max(0, Math.floor(retryAfterMs));
177
- account.rateLimitResetTime = nowMs() + retryMs;
308
+ const resetAt = nowMs() + retryMs;
309
+ const baseKey = getQuotaKey(family);
310
+ account.rateLimitResetTimes[baseKey] = resetAt;
311
+ if (model) {
312
+ const modelKey = getQuotaKey(family, model);
313
+ account.rateLimitResetTimes[modelKey] = resetAt;
314
+ }
178
315
  }
179
316
  markAccountCoolingDown(account, cooldownMs, reason) {
180
317
  const ms = Math.max(0, Math.floor(cooldownMs));
@@ -210,6 +347,7 @@ export class AccountManager {
210
347
  account.access = auth.access;
211
348
  account.expires = auth.expires;
212
349
  account.accountId = extractAccountId(auth.access) ?? account.accountId;
350
+ account.email = sanitizeEmail(extractAccountEmail(auth.access)) ?? account.email;
213
351
  }
214
352
  toAuthDetails(account) {
215
353
  return {
@@ -220,17 +358,29 @@ export class AccountManager {
220
358
  };
221
359
  }
222
360
  getMinWaitTime() {
361
+ return this.getMinWaitTimeForFamily("codex");
362
+ }
363
+ getMinWaitTimeForFamily(family, model) {
223
364
  const now = nowMs();
224
365
  const available = this.accounts.filter((account) => {
225
- clearExpiredRateLimit(account);
226
- return !isRateLimited(account) && !this.isAccountCoolingDown(account);
366
+ clearExpiredRateLimits(account);
367
+ return !isRateLimitedForFamily(account, family, model) && !this.isAccountCoolingDown(account);
227
368
  });
228
369
  if (available.length > 0)
229
370
  return 0;
230
371
  const waitTimes = [];
372
+ const baseKey = getQuotaKey(family);
373
+ const modelKey = model ? getQuotaKey(family, model) : null;
231
374
  for (const account of this.accounts) {
232
- if (typeof account.rateLimitResetTime === "number") {
233
- waitTimes.push(Math.max(0, account.rateLimitResetTime - now));
375
+ const baseResetAt = account.rateLimitResetTimes[baseKey];
376
+ if (typeof baseResetAt === "number") {
377
+ waitTimes.push(Math.max(0, baseResetAt - now));
378
+ }
379
+ if (modelKey) {
380
+ const modelResetAt = account.rateLimitResetTimes[modelKey];
381
+ if (typeof modelResetAt === "number") {
382
+ waitTimes.push(Math.max(0, modelResetAt - now));
383
+ }
234
384
  }
235
385
  if (typeof account.coolingDownUntil === "number") {
236
386
  waitTimes.push(Math.max(0, account.coolingDownUntil - now));
@@ -238,30 +388,111 @@ export class AccountManager {
238
388
  }
239
389
  return waitTimes.length > 0 ? Math.min(...waitTimes) : 0;
240
390
  }
391
+ removeAccount(account) {
392
+ const idx = this.accounts.indexOf(account);
393
+ if (idx < 0) {
394
+ return false;
395
+ }
396
+ this.accounts.splice(idx, 1);
397
+ this.accounts.forEach((acc, index) => {
398
+ acc.index = index;
399
+ });
400
+ if (this.accounts.length === 0) {
401
+ for (const family of MODEL_FAMILIES) {
402
+ this.cursorByFamily[family] = 0;
403
+ this.currentAccountIndexByFamily[family] = -1;
404
+ }
405
+ return true;
406
+ }
407
+ const cursor = this.cursorByFamily["codex"];
408
+ if (cursor > idx) {
409
+ for (const family of MODEL_FAMILIES) {
410
+ this.cursorByFamily[family] = Math.max(0, this.cursorByFamily[family] - 1);
411
+ }
412
+ }
413
+ for (const family of MODEL_FAMILIES) {
414
+ this.cursorByFamily[family] = this.cursorByFamily[family] % this.accounts.length;
415
+ }
416
+ for (const family of MODEL_FAMILIES) {
417
+ if (this.currentAccountIndexByFamily[family] > idx) {
418
+ this.currentAccountIndexByFamily[family] -= 1;
419
+ }
420
+ if (this.currentAccountIndexByFamily[family] >= this.accounts.length) {
421
+ this.currentAccountIndexByFamily[family] = -1;
422
+ }
423
+ }
424
+ return true;
425
+ }
241
426
  async saveToDisk() {
427
+ const activeIndexByFamily = {};
428
+ for (const family of MODEL_FAMILIES) {
429
+ const raw = this.currentAccountIndexByFamily[family];
430
+ activeIndexByFamily[family] = clampNonNegativeInt(raw, 0);
431
+ }
432
+ const activeIndex = clampNonNegativeInt(activeIndexByFamily.codex, 0);
242
433
  const storage = {
243
- version: 1,
434
+ version: 3,
244
435
  accounts: this.accounts.map((account) => ({
245
436
  accountId: account.accountId,
437
+ email: account.email,
246
438
  refreshToken: account.refreshToken,
247
439
  addedAt: account.addedAt,
248
440
  lastUsed: account.lastUsed,
249
441
  lastSwitchReason: account.lastSwitchReason,
250
- rateLimitResetTime: account.rateLimitResetTime,
442
+ rateLimitResetTimes: Object.keys(account.rateLimitResetTimes).length > 0 ? account.rateLimitResetTimes : undefined,
251
443
  coolingDownUntil: account.coolingDownUntil,
252
444
  cooldownReason: account.cooldownReason,
253
445
  })),
254
- activeIndex: Math.max(0, this.activeIndex),
446
+ activeIndex,
447
+ activeIndexByFamily,
255
448
  };
256
449
  await saveAccounts(storage);
257
450
  }
451
+ saveToDiskDebounced(delayMs = 500) {
452
+ if (this.saveDebounceTimer) {
453
+ clearTimeout(this.saveDebounceTimer);
454
+ }
455
+ this.saveDebounceTimer = setTimeout(() => {
456
+ this.saveDebounceTimer = null;
457
+ this.pendingSave = this.saveToDisk().finally(() => {
458
+ this.pendingSave = null;
459
+ });
460
+ }, delayMs);
461
+ }
462
+ async flushPendingSave() {
463
+ if (this.saveDebounceTimer) {
464
+ clearTimeout(this.saveDebounceTimer);
465
+ this.saveDebounceTimer = null;
466
+ await this.saveToDisk();
467
+ }
468
+ if (this.pendingSave) {
469
+ await this.pendingSave;
470
+ }
471
+ }
258
472
  }
259
- export function formatAccountLabel(accountId, index) {
260
- if (!accountId)
261
- return `Account ${index + 1}`;
262
- const suffix = accountId.length > 6 ? accountId.slice(-6) : accountId;
263
- return `Account ${index + 1} (${suffix})`;
473
+ /**
474
+ * Formats a human-readable label for an account (e.g., "Account 1 (user@email.com)").
475
+ * @param account - Account with optional email and accountId
476
+ * @param index - Zero-based account index
477
+ * @returns Formatted label string
478
+ */
479
+ export function formatAccountLabel(account, index) {
480
+ const email = account?.email?.trim();
481
+ const accountId = account?.accountId?.trim();
482
+ const idSuffix = accountId ? (accountId.length > 6 ? accountId.slice(-6) : accountId) : null;
483
+ if (email && idSuffix)
484
+ return `Account ${index + 1} (${email}, id:${idSuffix})`;
485
+ if (email)
486
+ return `Account ${index + 1} (${email})`;
487
+ if (idSuffix)
488
+ return `Account ${index + 1} (${idSuffix})`;
489
+ return `Account ${index + 1}`;
264
490
  }
491
+ /**
492
+ * Formats milliseconds as a human-readable wait time (e.g., "2m 30s").
493
+ * @param ms - Duration in milliseconds
494
+ * @returns Formatted string like "2m 30s" or "45s"
495
+ */
265
496
  export function formatWaitTime(ms) {
266
497
  const totalSeconds = Math.max(0, Math.floor(ms / 1000));
267
498
  const minutes = Math.floor(totalSeconds / 60);
@@ -270,6 +501,12 @@ export function formatWaitTime(ms) {
270
501
  return `${minutes}m ${seconds}s`;
271
502
  return `${seconds}s`;
272
503
  }
504
+ /**
505
+ * Formats cooldown status for an account if currently cooling down.
506
+ * @param account - Account with optional cooldown state
507
+ * @param now - Current timestamp (defaults to Date.now())
508
+ * @returns Formatted cooldown string or null if not cooling down
509
+ */
273
510
  export function formatCooldown(account, now = nowMs()) {
274
511
  if (typeof account.coolingDownUntil !== "number")
275
512
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../lib/accounts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,YAAY,GAIb,MAAM,cAAc,CAAC;AAiBtB,SAAS,KAAK;IACZ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,QAAgB;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAoB;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC;IAChE,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,CAAC;AAED,SAAS,aAAa,CAAC,OAAuB;IAC5C,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjE,OAAO,KAAK,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAuB;IACpD,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ;QAAE,OAAO;IAC3D,IAAI,KAAK,EAAE,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC,kBAAkB,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,QAAQ,GAAqB,EAAE,CAAC;IAChC,MAAM,GAAG,CAAC,CAAC;IACX,WAAW,GAAG,CAAC,CAAC,CAAC;IACjB,qBAAqB,GAAG,CAAC,CAAC,CAAC;IAC3B,aAAa,GAAG,CAAC,CAAC;IAE1B,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,YAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QACpC,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,YAAY,YAA+B,EAAE,MAAgC;QAC3E,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAEjE,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;iBAC5B,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAyB,EAAE;gBAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;oBACtE,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,eAAe,GACnB,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,iBAAiB,IAAI,OAAO,CAAC,SAAS,KAAK,iBAAiB,CAAC;wBAC7D,OAAO,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEnD,MAAM,YAAY,GAAG,eAAe;oBAClC,CAAC,CAAC,YAAY,CAAC,OAAO;oBACtB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;gBAEzB,OAAO;oBACL,KAAK;oBACL,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,iBAAiB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;oBACvF,YAAY;oBACZ,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oBACzD,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBAC3D,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;oBACtD,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAClD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;oBAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,cAAc,EAAE,OAAO,CAAC,cAAc;iBACvC,CAAC;YACJ,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,OAAO,EAA6B,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;YAEpE,MAAM,mBAAmB,GACvB,CAAC,CAAC,YAAY;gBACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO;oBAC7C,CAAC,iBAAiB,IAAI,OAAO,CAAC,SAAS,KAAK,iBAAiB,CAAC,CACjE,CAAC;YAEJ,IAAI,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzC,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAC3B,SAAS,EAAE,iBAAiB;oBAC5B,YAAY,EAAE,YAAY,CAAC,OAAO;oBAClC,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,OAAO,EAAE,GAAG;oBACZ,QAAQ,EAAE,GAAG;oBACb,gBAAgB,EAAE,SAAS;iBAC5B,CAAC,CAAC;YACL,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YACjC,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG;gBACd;oBACE,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE,iBAAiB;oBAC5B,YAAY,EAAE,YAAY,CAAC,OAAO;oBAClC,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,OAAO,EAAE,GAAG;oBACZ,QAAQ,EAAE,CAAC;oBACX,gBAAgB,EAAE,SAAS;iBAC5B;aACF,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,OAAO,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,gBAAgB;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,OAAO,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC;gBAC3B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YACjD,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,CACV,OAAuB,EACvB,MAA6C;QAE7C,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IACnC,CAAC;IAED,eAAe,CAAC,OAAuB,EAAE,YAAoB;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,kBAAkB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACjD,CAAC;IAED,sBAAsB,CACpB,OAAuB,EACvB,UAAkB,EAClB,MAAsB;QAEtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC;QACxC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,oBAAoB,CAAC,OAAuB;QAC1C,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACzD,IAAI,KAAK,EAAE,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,OAAuB;QAC1C,OAAO,OAAO,CAAC,gBAAgB,CAAC;QAChC,OAAO,OAAO,CAAC,cAAc,CAAC;IAChC,CAAC;IAED,sBAAsB,CAAC,YAAoB,EAAE,UAAU,GAAG,KAAK;QAC7D,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QACpB,IAAI,YAAY,KAAK,IAAI,CAAC,qBAAqB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,EAAE,CAAC;YACzF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,YAAoB;QACjC,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,OAAuB,EAAE,IAAsB;QAC5D,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/B,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;IACzE,CAAC;IAED,aAAa,CAAC,OAAuB;QACnC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAC5B,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YACjD,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAEnC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;gBACnD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;gBACjD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAqB;YAChC,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACxC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;gBAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,cAAc,EAAE,OAAO,CAAC,cAAc;aACvC,CAAC,CAAC;YACH,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;SAC3C,CAAC;QACF,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,SAA6B,EAAE,KAAa;IAC7E,IAAI,CAAC,SAAS;QAAE,OAAO,WAAW,KAAK,GAAG,CAAC,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,OAAO,WAAW,KAAK,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAClC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,CAAC;IAClD,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAuB,EAAE,GAAG,GAAG,KAAK,EAAE;IACnE,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,GAAG,CAAC;IACjD,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../lib/accounts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../lib/auth/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzG,eAAO,MAAM,SAAS,iCAAiC,CAAC;AACxD,eAAO,MAAM,aAAa,4CAA4C,CAAC;AACvE,eAAO,MAAM,SAAS,wCAAwC,CAAC;AAC/D,eAAO,MAAM,YAAY,wCAAwC,CAAC;AAClE,eAAO,MAAM,KAAK,wCAAwC,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAwBtE;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAqB,GAChC,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAU1D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkDnF;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAiB1E"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../lib/auth/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzG,eAAO,MAAM,SAAS,iCAAiC,CAAC;AACxD,eAAO,MAAM,aAAa,4CAA4C,CAAC;AACvE,eAAO,MAAM,SAAS,wCAAwC,CAAC;AAC/D,eAAO,MAAM,YAAY,wCAAwC,CAAC;AAClE,eAAO,MAAM,KAAK,wCAAwC,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CA0BtE;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAqB,GAChC,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAe1D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoDnF;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAiB1E"}