@splashcodex/api-key-manager 2.0.0 → 4.0.0

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.
package/dist/index.js CHANGED
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  /**
3
- * Universal ApiKeyManager v2.0
4
- * Implements: Rotation, Circuit Breaker, Persistence, Exponential Backoff, Strategies
3
+ * Universal ApiKeyManager v4.0 — Mastermind Edition
4
+ * Implements: Rotation, Circuit Breaker, Persistence, Exponential Backoff, Strategies,
5
+ * Event Emitter, Fallback, execute(), Timeout, Auto-Retry, Provider Tags,
6
+ * Health Checks, Bulkhead/Concurrency
5
7
  * Gemini-Specific: finishReason handling, Safety blocks, RECITATION detection
6
8
  */
7
9
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ApiKeyManager = exports.LatencyStrategy = exports.WeightedStrategy = exports.StandardStrategy = void 0;
10
+ exports.ApiKeyManager = exports.SemanticCache = exports.LatencyStrategy = exports.WeightedStrategy = exports.StandardStrategy = exports.AllKeysExhaustedError = exports.BulkheadRejectionError = exports.TimeoutError = void 0;
11
+ const events_1 = require("events");
12
+ // ─── Config ──────────────────────────────────────────────────────────────────
9
13
  const CONFIG = {
10
14
  MAX_CONSECUTIVE_FAILURES: 5,
11
15
  COOLDOWN_TRANSIENT: 60 * 1000, // 1 minute
@@ -23,12 +27,33 @@ const ERROR_PATTERNS = {
23
27
  isTransient: /500|502|503|504|internal|unavailable|deadline|timeout|overloaded/i,
24
28
  isBadRequest: /400|invalid.?argument|failed.?precondition|malformed|not.?found|404/i,
25
29
  };
30
+ // ─── Custom Errors ───────────────────────────────────────────────────────────
31
+ class TimeoutError extends Error {
32
+ constructor(ms) {
33
+ super(`Request timed out after ${ms}ms`);
34
+ this.name = 'TimeoutError';
35
+ }
36
+ }
37
+ exports.TimeoutError = TimeoutError;
38
+ class BulkheadRejectionError extends Error {
39
+ constructor() {
40
+ super('Bulkhead capacity exceeded — too many concurrent requests');
41
+ this.name = 'BulkheadRejectionError';
42
+ }
43
+ }
44
+ exports.BulkheadRejectionError = BulkheadRejectionError;
45
+ class AllKeysExhaustedError extends Error {
46
+ constructor() {
47
+ super('All API keys exhausted — no healthy keys available');
48
+ this.name = 'AllKeysExhaustedError';
49
+ }
50
+ }
51
+ exports.AllKeysExhaustedError = AllKeysExhaustedError;
26
52
  /**
27
53
  * Standard Strategy: Least Failed > Least Recently Used
28
54
  */
29
55
  class StandardStrategy {
30
56
  next(candidates) {
31
- // Sort: Pristine > Fewest Failures > Least Recently Used
32
57
  candidates.sort((a, b) => {
33
58
  if (a.failCount !== b.failCount)
34
59
  return a.failCount - b.failCount;
@@ -64,31 +89,132 @@ class LatencyStrategy {
64
89
  next(candidates) {
65
90
  if (candidates.length === 0)
66
91
  return null;
67
- // Sort by averageLatency (lowest first)
68
- // If latency is 0 (untried), treat as high priority or neutral?
69
- // Let's treat 0 as "unknown, give it a shot" -> insert at top or mixed?
70
- // Simple: Sort ASC. 0 comes first.
71
92
  candidates.sort((a, b) => a.averageLatency - b.averageLatency);
72
93
  return candidates[0];
73
94
  }
74
95
  }
75
96
  exports.LatencyStrategy = LatencyStrategy;
76
- class ApiKeyManager {
97
+ // ─── Semantic Engine ─────────────────────────────────────────────────────────
98
+ /**
99
+ * High-performance Vanilla Semantic Cache
100
+ * Implements Cosine Similarity math from scratch.
101
+ */
102
+ class SemanticCache {
103
+ entries = [];
104
+ threshold;
105
+ ttlMs;
106
+ constructor(threshold = 0.95, ttlMs = 24 * 60 * 60 * 1000) {
107
+ this.threshold = threshold;
108
+ this.ttlMs = ttlMs;
109
+ }
110
+ set(prompt, vector, response) {
111
+ // Expire old entry for same prompt if exists
112
+ this.entries = this.entries.filter(e => e.prompt !== prompt);
113
+ this.entries.push({
114
+ prompt,
115
+ vector,
116
+ response,
117
+ timestamp: Date.now()
118
+ });
119
+ // Optional: Cap size to prevent memory leaks
120
+ if (this.entries.length > 500)
121
+ this.entries.shift();
122
+ }
123
+ get(vector) {
124
+ const now = Date.now();
125
+ let bestMatch = null;
126
+ let highestSimilarity = -1;
127
+ for (let i = this.entries.length - 1; i >= 0; i--) {
128
+ const entry = this.entries[i];
129
+ // Check TTL
130
+ if (now - entry.timestamp > this.ttlMs) {
131
+ this.entries.splice(i, 1);
132
+ continue;
133
+ }
134
+ const similarity = this.calculateCosineSimilarity(vector, entry.vector);
135
+ if (similarity >= this.threshold && similarity > highestSimilarity) {
136
+ highestSimilarity = similarity;
137
+ bestMatch = entry;
138
+ }
139
+ }
140
+ return bestMatch ? bestMatch.response : null;
141
+ }
142
+ /**
143
+ * Vanilla Cosine Similarity: (A·B) / (||A|| * ||B||)
144
+ */
145
+ calculateCosineSimilarity(vecA, vecB) {
146
+ if (vecA.length !== vecB.length)
147
+ return 0;
148
+ let dotProduct = 0;
149
+ let normA = 0;
150
+ let normB = 0;
151
+ for (let i = 0; i < vecA.length; i++) {
152
+ dotProduct += vecA[i] * vecB[i];
153
+ normA += vecA[i] * vecA[i];
154
+ normB += vecB[i] * vecB[i];
155
+ }
156
+ const denominator = Math.sqrt(normA) * Math.sqrt(normB);
157
+ return denominator === 0 ? 0 : dotProduct / denominator;
158
+ }
159
+ }
160
+ exports.SemanticCache = SemanticCache;
161
+ // ─── Main Class ──────────────────────────────────────────────────────────────
162
+ class ApiKeyManager extends events_1.EventEmitter {
77
163
  keys = [];
78
164
  storageKey = 'api_rotation_state_v2';
79
165
  storage;
80
166
  strategy;
81
- constructor(initialKeys, storage, strategy) {
82
- // Simple in-memory storage mock if none provided
83
- this.storage = storage || {
167
+ fallbackFn;
168
+ // Bulkhead state
169
+ maxConcurrency;
170
+ activeCalls = 0;
171
+ // Health check state
172
+ healthCheckFn;
173
+ healthCheckInterval;
174
+ // Semantic Cache v4
175
+ semanticCache;
176
+ getEmbeddingFn;
177
+ _isResolvingEmbedding = false; // Recursion guard
178
+ /**
179
+ * Constructor supports both legacy positional args and new options object.
180
+ *
181
+ * @example Legacy (v1/v2 — still works):
182
+ * new ApiKeyManager(['key1', 'key2'], storage, strategy)
183
+ *
184
+ * @example New (v3):
185
+ * new ApiKeyManager(keys, { storage, strategy, fallbackFn, concurrency })
186
+ */
187
+ constructor(initialKeys, storageOrOptions, strategy) {
188
+ super();
189
+ // Detect if second arg is options object or legacy storage
190
+ let options = {};
191
+ if (storageOrOptions && typeof storageOrOptions === 'object' && ('storage' in storageOrOptions || 'strategy' in storageOrOptions || 'fallbackFn' in storageOrOptions || 'concurrency' in storageOrOptions || 'semanticCache' in storageOrOptions)) {
192
+ // New v3 options object
193
+ options = storageOrOptions;
194
+ }
195
+ else {
196
+ // Legacy positional args
197
+ options = {
198
+ storage: storageOrOptions,
199
+ strategy: strategy,
200
+ };
201
+ }
202
+ this.storage = options.storage || {
84
203
  getItem: () => null,
85
204
  setItem: () => { },
86
205
  };
87
- this.strategy = strategy || new StandardStrategy();
206
+ this.strategy = options.strategy || new StandardStrategy();
207
+ this.fallbackFn = options.fallbackFn;
208
+ this.maxConcurrency = options.concurrency || Infinity;
209
+ // Init Semantic Cache if provided
210
+ if (options.semanticCache) {
211
+ this.semanticCache = new SemanticCache(options.semanticCache.threshold, options.semanticCache.ttlMs);
212
+ this.getEmbeddingFn = options.semanticCache.getEmbedding;
213
+ }
88
214
  // Normalize input to objects
89
215
  let inputKeys = [];
90
216
  if (initialKeys.length > 0 && typeof initialKeys[0] === 'string') {
91
- inputKeys = initialKeys.flatMap(k => k.split(',').map(s => ({ key: s.trim(), weight: 1.0 })));
217
+ inputKeys = initialKeys.flatMap(k => k.split(',').map(s => ({ key: s.trim(), weight: 1.0, provider: 'default' })));
92
218
  }
93
219
  else {
94
220
  inputKeys = initialKeys;
@@ -97,12 +223,12 @@ class ApiKeyManager {
97
223
  const uniqueMap = new Map();
98
224
  inputKeys.forEach(k => {
99
225
  if (k.key.length > 0)
100
- uniqueMap.set(k.key, k.weight ?? 1.0);
226
+ uniqueMap.set(k.key, { weight: k.weight ?? 1.0, provider: k.provider ?? 'default' });
101
227
  });
102
228
  if (uniqueMap.size < inputKeys.length) {
103
229
  console.warn(`[ApiKeyManager] Removed ${inputKeys.length - uniqueMap.size} duplicate/empty keys.`);
104
230
  }
105
- this.keys = Array.from(uniqueMap.entries()).map(([key, weight]) => ({
231
+ this.keys = Array.from(uniqueMap.entries()).map(([key, meta]) => ({
106
232
  key,
107
233
  failCount: 0,
108
234
  failedAt: null,
@@ -113,13 +239,15 @@ class ApiKeyManager {
113
239
  totalRequests: 0,
114
240
  halfOpenTestTime: null,
115
241
  customCooldown: null,
116
- weight: weight,
242
+ weight: meta.weight,
117
243
  averageLatency: 0,
118
244
  totalLatency: 0,
119
- latencySamples: 0
245
+ latencySamples: 0,
246
+ provider: meta.provider,
120
247
  }));
121
248
  this.loadState();
122
249
  }
250
+ // ─── Error Classification ────────────────────────────────────────────────
123
251
  /**
124
252
  * CLASSIFIES an error to determine handling strategy
125
253
  */
@@ -131,7 +259,11 @@ class ApiKeyManager {
131
259
  return { type: 'SAFETY', retryable: false, cooldownMs: 0, markKeyFailed: false, markKeyDead: false };
132
260
  if (finishReason === 'RECITATION')
133
261
  return { type: 'RECITATION', retryable: false, cooldownMs: 0, markKeyFailed: false, markKeyDead: false };
134
- // 2. Check HTTP status codes
262
+ // 2. Check timeout
263
+ if (error instanceof TimeoutError || error?.name === 'TimeoutError') {
264
+ return { type: 'TIMEOUT', retryable: true, cooldownMs: CONFIG.COOLDOWN_TRANSIENT, markKeyFailed: true, markKeyDead: false };
265
+ }
266
+ // 3. Check HTTP status codes
135
267
  if (status === 403 || ERROR_PATTERNS.isAuthError.test(message)) {
136
268
  return { type: 'AUTH', retryable: false, cooldownMs: Infinity, markKeyFailed: true, markKeyDead: true };
137
269
  }
@@ -167,6 +299,7 @@ class ApiKeyManager {
167
299
  return Math.max(0, date - Date.now());
168
300
  return null;
169
301
  }
302
+ // ─── Cooldown ────────────────────────────────────────────────────────────
170
303
  isOnCooldown(k) {
171
304
  if (k.circuitState === 'DEAD')
172
305
  return true;
@@ -174,6 +307,7 @@ class ApiKeyManager {
174
307
  if (k.circuitState === 'OPEN') {
175
308
  if (k.halfOpenTestTime && now >= k.halfOpenTestTime) {
176
309
  k.circuitState = 'HALF_OPEN';
310
+ this.emit('circuitHalfOpen', k.key);
177
311
  return false;
178
312
  }
179
313
  return true;
@@ -187,14 +321,17 @@ class ApiKeyManager {
187
321
  }
188
322
  return false;
189
323
  }
324
+ // ─── Key Selection ───────────────────────────────────────────────────────
190
325
  getKey() {
191
326
  // 1. Filter out dead and cooling down keys
192
327
  const candidates = this.keys.filter(k => k.circuitState !== 'DEAD' && !this.isOnCooldown(k));
193
328
  if (candidates.length === 0) {
194
329
  // FALLBACK: Return oldest failed key (excluding DEAD)
195
330
  const nonDead = this.keys.filter(k => k.circuitState !== 'DEAD');
196
- if (nonDead.length === 0)
331
+ if (nonDead.length === 0) {
332
+ this.emit('allKeysExhausted');
197
333
  return null;
334
+ }
198
335
  return nonDead.sort((a, b) => (a.failedAt || 0) - (b.failedAt || 0))[0]?.key || null;
199
336
  }
200
337
  // 2. Delegate to Strategy
@@ -206,9 +343,25 @@ class ApiKeyManager {
206
343
  }
207
344
  return null;
208
345
  }
346
+ /**
347
+ * Get a key filtered by provider tag
348
+ */
349
+ getKeyByProvider(provider) {
350
+ const candidates = this.keys.filter(k => k.provider === provider && k.circuitState !== 'DEAD' && !this.isOnCooldown(k));
351
+ if (candidates.length === 0)
352
+ return null;
353
+ const selected = this.strategy.next(candidates);
354
+ if (selected) {
355
+ selected.lastUsed = Date.now();
356
+ this.saveState();
357
+ return selected.key;
358
+ }
359
+ return null;
360
+ }
209
361
  getKeyCount() {
210
362
  return this.keys.filter(k => k.circuitState !== 'DEAD').length;
211
363
  }
364
+ // ─── Mark Success / Failed ───────────────────────────────────────────────
212
365
  /**
213
366
  * Mark success AND update latency stats
214
367
  * @param durationMs Duration of the request in milliseconds
@@ -217,8 +370,11 @@ class ApiKeyManager {
217
370
  const k = this.keys.find(x => x.key === key);
218
371
  if (!k)
219
372
  return;
220
- if (k.circuitState !== 'CLOSED' && k.circuitState !== 'DEAD')
373
+ const wasRecovering = k.circuitState !== 'CLOSED' && k.circuitState !== 'DEAD';
374
+ if (wasRecovering) {
221
375
  console.log(`[Key Recovered] ...${key.slice(-4)}`);
376
+ this.emit('keyRecovered', key);
377
+ }
222
378
  k.circuitState = 'CLOSED';
223
379
  k.failCount = 0;
224
380
  k.failedAt = null;
@@ -247,16 +403,19 @@ class ApiKeyManager {
247
403
  if (classification.markKeyDead) {
248
404
  k.circuitState = 'DEAD';
249
405
  console.error(`[Key DEAD] ...${key.slice(-4)} - Permanently removed`);
406
+ this.emit('keyDead', key);
250
407
  }
251
408
  else {
252
409
  // State Transitions
253
410
  if (k.circuitState === 'HALF_OPEN') {
254
411
  k.circuitState = 'OPEN';
255
412
  k.halfOpenTestTime = Date.now() + CONFIG.HALF_OPEN_TEST_DELAY;
413
+ this.emit('circuitOpen', key);
256
414
  }
257
415
  else if (k.failCount >= CONFIG.MAX_CONSECUTIVE_FAILURES || classification.type === 'QUOTA') {
258
416
  k.circuitState = 'OPEN';
259
417
  k.halfOpenTestTime = Date.now() + (classification.cooldownMs || CONFIG.HALF_OPEN_TEST_DELAY);
418
+ this.emit('circuitOpen', key);
260
419
  }
261
420
  }
262
421
  this.saveState();
@@ -270,12 +429,14 @@ class ApiKeyManager {
270
429
  markKeyDead: false,
271
430
  });
272
431
  }
432
+ // ─── Backoff ─────────────────────────────────────────────────────────────
273
433
  calculateBackoff(attempt) {
274
434
  const exponential = CONFIG.BASE_BACKOFF * Math.pow(2, attempt);
275
435
  const capped = Math.min(exponential, CONFIG.MAX_BACKOFF);
276
436
  const jitter = Math.random() * 1000;
277
437
  return capped + jitter;
278
438
  }
439
+ // ─── Stats ───────────────────────────────────────────────────────────────
279
440
  getStats() {
280
441
  const total = this.keys.length;
281
442
  const dead = this.keys.filter(k => k.circuitState === 'DEAD').length;
@@ -284,6 +445,177 @@ class ApiKeyManager {
284
445
  return { total, healthy, cooling, dead };
285
446
  }
286
447
  _getKeys() { return this.keys; }
448
+ // ─── execute() Wrapper ───────────────────────────────────────────────────
449
+ /**
450
+ * Wraps the entire API call lifecycle into a single method.
451
+ *
452
+ * @example
453
+ * const result = await manager.execute(
454
+ * (key) => fetch(`https://api.example.com?key=${key}`),
455
+ * { maxRetries: 3, timeoutMs: 5000 }
456
+ * );
457
+ */
458
+ async execute(fn, options) {
459
+ const maxRetries = options?.maxRetries ?? 0;
460
+ const timeoutMs = options?.timeoutMs;
461
+ const finishReason = options?.finishReason;
462
+ const prompt = options?.prompt;
463
+ const provider = options?.provider;
464
+ // 1. Semantic Cache Check (Mastermind Edition)
465
+ // Guard: skip cache if we're already resolving an embedding to prevent
466
+ // infinite recursion when getEmbeddingFn calls execute() internally.
467
+ let currentPromptVector = null;
468
+ if (this.semanticCache && this.getEmbeddingFn && prompt && !this._isResolvingEmbedding) {
469
+ try {
470
+ this._isResolvingEmbedding = true;
471
+ currentPromptVector = await this.getEmbeddingFn(prompt);
472
+ const cachedResponse = this.semanticCache.get(currentPromptVector);
473
+ if (cachedResponse !== null) {
474
+ console.log(`[Semantic Cache HIT] for prompt: "${prompt.slice(0, 30)}..."`);
475
+ this.emit('executeSuccess', 'CACHE_HIT', 0);
476
+ return cachedResponse;
477
+ }
478
+ }
479
+ catch (e) {
480
+ console.warn('[Semantic Cache Check Failed] Proceeding to live API', e);
481
+ }
482
+ finally {
483
+ this._isResolvingEmbedding = false;
484
+ }
485
+ }
486
+ // 2. Bulkhead check
487
+ if (this.activeCalls >= this.maxConcurrency) {
488
+ this.emit('bulkheadRejected');
489
+ throw new BulkheadRejectionError();
490
+ }
491
+ this.activeCalls++;
492
+ try {
493
+ const result = await this._executeWithRetry(fn, maxRetries, timeoutMs, finishReason, provider);
494
+ // 3. Store in Semantic Cache on success
495
+ if (this.semanticCache && prompt && currentPromptVector) {
496
+ this.semanticCache.set(prompt, currentPromptVector, result);
497
+ }
498
+ return result;
499
+ }
500
+ finally {
501
+ this.activeCalls--;
502
+ }
503
+ }
504
+ async _executeWithRetry(fn, maxRetries, timeoutMs, finishReason, provider) {
505
+ let lastError;
506
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
507
+ const key = provider ? this.getKeyByProvider(provider) : this.getKey();
508
+ if (!key) {
509
+ // All keys exhausted — try fallback
510
+ if (this.fallbackFn) {
511
+ this.emit('fallback', 'all keys exhausted');
512
+ return this.fallbackFn();
513
+ }
514
+ throw new AllKeysExhaustedError();
515
+ }
516
+ try {
517
+ const start = Date.now();
518
+ let result;
519
+ if (timeoutMs) {
520
+ result = await this._executeWithTimeout(fn, key, timeoutMs);
521
+ }
522
+ else {
523
+ result = await fn(key);
524
+ }
525
+ const duration = Date.now() - start;
526
+ this.markSuccess(key, duration);
527
+ this.emit('executeSuccess', key, duration);
528
+ return result;
529
+ }
530
+ catch (error) {
531
+ lastError = error;
532
+ const classification = this.classifyError(error, finishReason);
533
+ this.markFailed(key, classification);
534
+ this.emit('executeFailed', key, error);
535
+ if (!classification.retryable || attempt >= maxRetries) {
536
+ // Non-retryable or out of retries
537
+ if (this.fallbackFn && attempt >= maxRetries) {
538
+ this.emit('fallback', 'max retries exceeded');
539
+ return this.fallbackFn();
540
+ }
541
+ throw error;
542
+ }
543
+ // Retry with backoff
544
+ const delay = this.calculateBackoff(attempt);
545
+ this.emit('retry', key, attempt + 1, delay);
546
+ await this._sleep(delay);
547
+ }
548
+ }
549
+ // Should not reach here, but safety net
550
+ throw lastError;
551
+ }
552
+ async _executeWithTimeout(fn, key, timeoutMs) {
553
+ const controller = new AbortController();
554
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
555
+ try {
556
+ const result = await Promise.race([
557
+ fn(key, controller.signal),
558
+ new Promise((_, reject) => {
559
+ controller.signal.addEventListener('abort', () => {
560
+ reject(new TimeoutError(timeoutMs));
561
+ });
562
+ })
563
+ ]);
564
+ return result;
565
+ }
566
+ finally {
567
+ clearTimeout(timer);
568
+ }
569
+ }
570
+ _sleep(ms) {
571
+ return new Promise(resolve => setTimeout(resolve, ms));
572
+ }
573
+ // ─── Health Checks ───────────────────────────────────────────────────────
574
+ /**
575
+ * Set a health check function that tests if a key is operational
576
+ */
577
+ setHealthCheck(fn) {
578
+ this.healthCheckFn = fn;
579
+ }
580
+ /**
581
+ * Start periodic health checks
582
+ * @param intervalMs How often to run health checks (default: 60s)
583
+ */
584
+ startHealthChecks(intervalMs = 60_000) {
585
+ this.stopHealthChecks(); // Clear any existing interval
586
+ this.healthCheckInterval = setInterval(() => this._runHealthChecks(), intervalMs);
587
+ }
588
+ /**
589
+ * Stop periodic health checks
590
+ */
591
+ stopHealthChecks() {
592
+ if (this.healthCheckInterval) {
593
+ clearInterval(this.healthCheckInterval);
594
+ this.healthCheckInterval = undefined;
595
+ }
596
+ }
597
+ async _runHealthChecks() {
598
+ if (!this.healthCheckFn)
599
+ return;
600
+ // Check non-DEAD keys that are in OPEN or HALF_OPEN state
601
+ const keysToCheck = this.keys.filter(k => k.circuitState === 'OPEN' || k.circuitState === 'HALF_OPEN');
602
+ for (const k of keysToCheck) {
603
+ try {
604
+ const healthy = await this.healthCheckFn(k.key);
605
+ if (healthy) {
606
+ this.markSuccess(k.key);
607
+ this.emit('healthCheckPassed', k.key);
608
+ }
609
+ else {
610
+ this.emit('healthCheckFailed', k.key, new Error('Health check returned false'));
611
+ }
612
+ }
613
+ catch (error) {
614
+ this.emit('healthCheckFailed', k.key, error);
615
+ }
616
+ }
617
+ }
618
+ // ─── Persistence ─────────────────────────────────────────────────────────
287
619
  saveState() {
288
620
  if (!this.storage)
289
621
  return;
@@ -301,7 +633,8 @@ class ApiKeyManager {
301
633
  weight: k.weight,
302
634
  averageLatency: k.averageLatency,
303
635
  totalLatency: k.totalLatency,
304
- latencySamples: k.latencySamples
636
+ latencySamples: k.latencySamples,
637
+ provider: k.provider
305
638
  }
306
639
  }), {});
307
640
  this.storage.setItem(this.storageKey, JSON.stringify(state));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@splashcodex/api-key-manager",
3
- "version": "2.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "Universal API Key Rotation System for rate-limited APIs",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,7 +19,13 @@
19
19
  "rotation",
20
20
  "gemini",
21
21
  "rate-limit",
22
- "circuit-breaker"
22
+ "circuit-breaker",
23
+ "resilience",
24
+ "fallback",
25
+ "timeout",
26
+ "retry",
27
+ "gateway",
28
+ "load-balancing"
23
29
  ],
24
30
  "author": "Antigravity",
25
31
  "license": "ISC",