@robinmordasiewicz/f5xc-auth 1.2.0 → 1.3.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.
@@ -116,6 +116,10 @@ export declare class CredentialManager {
116
116
  * Build credentials object from profile data
117
117
  */
118
118
  private buildCredentials;
119
+ /**
120
+ * Check credential expiration and log warnings
121
+ */
122
+ private checkCredentialExpiration;
119
123
  /**
120
124
  * Load credentials with priority order:
121
125
  * 1. Environment variables (highest)
@@ -1 +1 @@
1
- {"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/auth/credential-manager.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,oBAAY,QAAQ;IAClB,kDAAkD;IAClD,IAAI,SAAS;IACb,+BAA+B;IAC/B,KAAK,UAAU;IACf,4CAA4C;IAC5C,WAAW,gBAAgB;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;CAUhB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iCAAiC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qCAAqC;IACrC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qCAAqC;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,wBAAwB;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sEAAsE;IACtE,WAAW,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAgBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2CrD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,WAAW,CAAS;;IAiB5B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;YACW,eAAe;IAmB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiGxB;;;;;OAKG;YACW,eAAe;IA4C7B;;;OAGG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,WAAW,IAAI,QAAQ;IAIvB;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB;;OAEG;IACH,MAAM,IAAI,MAAM,GAAG,IAAI;IAIvB;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B;;OAEG;IACH,cAAc,IAAI,QAAQ,CAAC,WAAW,CAAC;IAIvC;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAK9B"}
1
+ {"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/auth/credential-manager.ts"],"names":[],"mappings":"AA2BA;;GAEG;AACH,oBAAY,QAAQ;IAClB,kDAAkD;IAClD,IAAI,SAAS;IACb,+BAA+B;IAC/B,KAAK,UAAU;IACf,4CAA4C;IAC5C,WAAW,gBAAgB;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;CAUhB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iCAAiC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qCAAqC;IACrC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qCAAqC;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,wBAAwB;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sEAAsE;IACtE,WAAW,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAgBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2CrD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,WAAW,CAAS;;IAiB5B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;YACW,eAAe;IAmB7B;;OAEG;YACW,gBAAgB;IA+I9B;;OAEG;YACW,yBAAyB;IAuEvC;;;;;OAKG;YACW,eAAe;IA4C7B;;;OAGG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,WAAW,IAAI,QAAQ;IAIvB;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB;;OAEG;IACH,MAAM,IAAI,MAAM,GAAG,IAAI;IAIvB;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B;;OAEG;IACH,cAAc,IAAI,QAAQ,CAAC,WAAW,CAAC;IAIvC;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAK9B"}
@@ -13,9 +13,10 @@
13
13
  * @since 1.0.0
14
14
  * @packageDocumentation
15
15
  */
16
- import { readFileSync } from "fs";
16
+ import { readFile } from "fs/promises";
17
17
  import { logger } from "../utils/logging.js";
18
18
  import { getProfileManager } from "../profile/index.js";
19
+ import { validateFilePath, validateFilePaths, sanitizePathForLog, PathValidationError, } from "../utils/path-security.js";
19
20
  /**
20
21
  * Authentication modes supported by the server
21
22
  */
@@ -177,6 +178,8 @@ export class CredentialManager {
177
178
  return;
178
179
  this.credentials = await this.loadCredentials();
179
180
  this.initialized = true;
181
+ // Check credential expiration after loading
182
+ await this.checkCredentialExpiration();
180
183
  }
181
184
  /**
182
185
  * Load credentials from environment variables
@@ -227,7 +230,7 @@ export class CredentialManager {
227
230
  /**
228
231
  * Build credentials object from profile data
229
232
  */
230
- buildCredentials(profile) {
233
+ async buildCredentials(profile) {
231
234
  const apiUrl = profile.apiUrl;
232
235
  // Determine authentication mode
233
236
  let mode = AuthMode.NONE;
@@ -241,12 +244,19 @@ export class CredentialManager {
241
244
  // Load CA bundle if specified
242
245
  if (profile.caBundle) {
243
246
  try {
244
- caBundle = readFileSync(profile.caBundle);
245
- logger.info("Loaded CA bundle", { file: profile.caBundle });
247
+ const validatedPath = validateFilePath(profile.caBundle);
248
+ caBundle = await readFile(validatedPath);
249
+ logger.info("Loaded CA bundle", {
250
+ file: sanitizePathForLog(validatedPath, true),
251
+ });
246
252
  }
247
253
  catch (error) {
254
+ if (error instanceof PathValidationError) {
255
+ logger.error("Invalid CA bundle path", { error: error.message });
256
+ throw error;
257
+ }
248
258
  logger.warn("Failed to load CA bundle", {
249
- file: profile.caBundle,
259
+ file: sanitizePathForLog(profile.caBundle, true),
250
260
  error: error instanceof Error ? error.message : String(error),
251
261
  });
252
262
  }
@@ -261,21 +271,39 @@ export class CredentialManager {
261
271
  // P12 certificate authentication
262
272
  mode = AuthMode.CERTIFICATE;
263
273
  try {
264
- p12Certificate = readFileSync(profile.p12Bundle);
265
- logger.info("Loaded P12 certificate", { file: profile.p12Bundle });
274
+ const validatedPath = validateFilePath(profile.p12Bundle);
275
+ p12Certificate = await readFile(validatedPath);
276
+ logger.info("Loaded P12 certificate", {
277
+ file: sanitizePathForLog(validatedPath, true),
278
+ });
266
279
  }
267
280
  catch (error) {
268
- logger.error("Failed to load P12 certificate", {
269
- file: profile.p12Bundle,
270
- error: error instanceof Error ? error.message : String(error),
271
- });
272
- // Fall back to token auth if certificate load fails
273
- if (profile.apiToken) {
274
- mode = AuthMode.TOKEN;
275
- logger.info("Falling back to token authentication");
281
+ if (error instanceof PathValidationError) {
282
+ logger.error("Invalid P12 certificate path", {
283
+ error: error.message,
284
+ });
285
+ // Fall back to token auth if path validation fails
286
+ if (profile.apiToken) {
287
+ mode = AuthMode.TOKEN;
288
+ logger.info("Falling back to token authentication");
289
+ }
290
+ else {
291
+ mode = AuthMode.NONE;
292
+ }
276
293
  }
277
294
  else {
278
- mode = AuthMode.NONE;
295
+ logger.error("Failed to load P12 certificate", {
296
+ file: sanitizePathForLog(profile.p12Bundle, true),
297
+ error: error instanceof Error ? error.message : String(error),
298
+ });
299
+ // Fall back to token auth if certificate load fails
300
+ if (profile.apiToken) {
301
+ mode = AuthMode.TOKEN;
302
+ logger.info("Falling back to token authentication");
303
+ }
304
+ else {
305
+ mode = AuthMode.NONE;
306
+ }
279
307
  }
280
308
  }
281
309
  }
@@ -283,23 +311,46 @@ export class CredentialManager {
283
311
  // Certificate + key authentication
284
312
  mode = AuthMode.CERTIFICATE;
285
313
  try {
286
- cert = readFileSync(profile.cert, "utf-8");
287
- key = readFileSync(profile.key, "utf-8");
314
+ // Validate both paths before reading
315
+ const [validatedCert, validatedKey] = validateFilePaths([
316
+ profile.cert,
317
+ profile.key,
318
+ ]);
319
+ // Read both files in parallel for better performance
320
+ [cert, key] = await Promise.all([
321
+ readFile(validatedCert, "utf-8"),
322
+ readFile(validatedKey, "utf-8"),
323
+ ]);
288
324
  logger.info("Loaded certificate and key", {
289
- cert: profile.cert,
290
- key: profile.key,
325
+ cert: sanitizePathForLog(validatedCert),
326
+ key: sanitizePathForLog(validatedKey),
291
327
  });
292
328
  }
293
329
  catch (error) {
294
- logger.error("Failed to load certificate/key", {
295
- error: error instanceof Error ? error.message : String(error),
296
- });
297
- if (profile.apiToken) {
298
- mode = AuthMode.TOKEN;
299
- logger.info("Falling back to token authentication");
330
+ if (error instanceof PathValidationError) {
331
+ logger.error("Invalid certificate path", { error: error.message });
332
+ // Fall back to token auth if path validation fails
333
+ if (profile.apiToken) {
334
+ mode = AuthMode.TOKEN;
335
+ logger.info("Falling back to token authentication");
336
+ }
337
+ else {
338
+ mode = AuthMode.NONE;
339
+ }
300
340
  }
301
341
  else {
302
- mode = AuthMode.NONE;
342
+ logger.error("Failed to load certificate/key", {
343
+ cert: sanitizePathForLog(profile.cert),
344
+ key: sanitizePathForLog(profile.key),
345
+ error: error instanceof Error ? error.message : String(error),
346
+ });
347
+ if (profile.apiToken) {
348
+ mode = AuthMode.TOKEN;
349
+ logger.info("Falling back to token authentication");
350
+ }
351
+ else {
352
+ mode = AuthMode.NONE;
353
+ }
303
354
  }
304
355
  }
305
356
  }
@@ -319,6 +370,70 @@ export class CredentialManager {
319
370
  caBundle,
320
371
  };
321
372
  }
373
+ /**
374
+ * Check credential expiration and log warnings
375
+ */
376
+ async checkCredentialExpiration() {
377
+ // Skip if credentials are from environment variables
378
+ if (!this.activeProfileName || this.activeProfileName === "__env__") {
379
+ return;
380
+ }
381
+ try {
382
+ const profileManager = getProfileManager();
383
+ const profile = await profileManager.get(this.activeProfileName);
384
+ if (!profile?.metadata) {
385
+ return;
386
+ }
387
+ const { expiresAt, lastRotated, rotateAfterDays } = profile.metadata;
388
+ const now = new Date();
389
+ // Check explicit expiration
390
+ if (expiresAt) {
391
+ const expirationDate = new Date(expiresAt);
392
+ if (expirationDate < now) {
393
+ logger.warn("Credentials have expired", {
394
+ profile: profile.name,
395
+ expiresAt,
396
+ });
397
+ }
398
+ else {
399
+ // Calculate days until expiration
400
+ const daysUntilExpiration = Math.ceil((expirationDate.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
401
+ if (daysUntilExpiration <= 7) {
402
+ logger.info("Credentials expiring soon", {
403
+ profile: profile.name,
404
+ daysRemaining: daysUntilExpiration,
405
+ expiresAt,
406
+ });
407
+ }
408
+ }
409
+ }
410
+ // Check rotation schedule
411
+ if (lastRotated && rotateAfterDays) {
412
+ const rotationDate = new Date(lastRotated);
413
+ rotationDate.setDate(rotationDate.getDate() + rotateAfterDays);
414
+ const daysUntilRotation = Math.ceil((rotationDate.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
415
+ if (daysUntilRotation <= 0) {
416
+ logger.warn("Credentials should be rotated", {
417
+ profile: profile.name,
418
+ lastRotated,
419
+ rotateAfterDays,
420
+ });
421
+ }
422
+ else if (daysUntilRotation <= 7) {
423
+ logger.info("Credentials rotation approaching", {
424
+ profile: profile.name,
425
+ daysUntilRotation,
426
+ lastRotated,
427
+ });
428
+ }
429
+ }
430
+ }
431
+ catch (error) {
432
+ logger.debug("Failed to check credential expiration", {
433
+ error: error instanceof Error ? error.message : String(error),
434
+ });
435
+ }
436
+ }
322
437
  /**
323
438
  * Load credentials with priority order:
324
439
  * 1. Environment variables (highest)
@@ -329,7 +444,7 @@ export class CredentialManager {
329
444
  // Step 1: Check environment variables first (highest priority)
330
445
  const envCreds = this.loadFromEnvironment();
331
446
  if (envCreds.apiUrl && envCreds.hasAuth) {
332
- const credentials = this.buildCredentials(envCreds);
447
+ const credentials = await this.buildCredentials(envCreds);
333
448
  const tenant = credentials.apiUrl ? extractTenantFromUrl(credentials.apiUrl) : null;
334
449
  logger.info("Credentials loaded from environment variables", {
335
450
  mode: credentials.mode,
@@ -340,7 +455,7 @@ export class CredentialManager {
340
455
  // Step 2: Try active profile from ~/.config/f5xc/
341
456
  const profile = await this.loadFromProfile();
342
457
  if (profile) {
343
- const credentials = this.buildCredentials(profile);
458
+ const credentials = await this.buildCredentials(profile);
344
459
  if (credentials.mode !== AuthMode.NONE) {
345
460
  const tenant = credentials.apiUrl ? extractTenantFromUrl(credentials.apiUrl) : null;
346
461
  logger.info("Credentials loaded from profile", {
@@ -1 +1 @@
1
- {"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/auth/credential-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/auth/credential-manager.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAgB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,kDAAkD;IAClD,yBAAa,CAAA;IACb,+BAA+B;IAC/B,2BAAe,CAAA;IACf,4CAA4C;IAC5C,uCAA2B,CAAA;AAC7B,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,iBAAiB;IAC7B,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,UAAU;IACf,SAAS,EAAE,gBAAgB;IAC3B,oBAAoB;IACpB,YAAY,EAAE,mBAAmB;IACjC,SAAS,EAAE,gBAAgB;CACnB,CAAC;AA0BX;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,yEAAyE;IACzE,kBAAkB,EAAE,iDAAiD;IACrE,gFAAgF;IAChF,eAAe,EAAE,wCAAwC;IACzD,+FAA+F;IAC/F,YAAY,EAAE,kEAAkE;IAChF,mCAAmC;IACnC,gBAAgB,EAAE,kBAAkB;CACrC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,kBAAkB;IAClB,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAEvB,sBAAsB;IACtB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,GAAG,GAAG,WAAW,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,mDAAmD;IACnD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAErD,6EAA6E;IAC7E,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAChE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,GAAG,GAAG,WAAW,MAAM,sBAAsB,CAAC;QAC9C,sCAAsC;QACtC,OAAO,GAAG,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,2FAA2F;IAC3F,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAC1D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,GAAG,GAAG,WAAW,MAAM,0BAA0B,CAAC;IACpD,CAAC;IAED,qCAAqC;IACrC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,GAAG,GAAG,WAAW,MAAM,IAAI,OAAO,yBAAyB,CAAC;IAC9D,CAAC;IAED,qBAAqB;IACrB,OAAO,GAAG,GAAG,MAAM,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,oBAAoB;IACpB,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IACpB,WAAW,CAAc;IACzB,iBAAiB,GAAkB,IAAI,CAAC;IACxC,WAAW,GAAG,KAAK,CAAC;IAE5B;QACE,2DAA2D;QAC3D,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,IAAI;YACT,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,4CAA4C;QAC5C,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,mBAAmB;QAKzB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;QACtF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;QAE3D,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,QAAQ;YACR,SAAS;YACT,IAAI;YACJ,GAAG;YACH,gBAAgB;YAChB,OAAO;YACP,WAAW;YACX,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAExD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;gBACtC,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBACtD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,OAA+D;QAE/D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,gCAAgC;QAChC,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzB,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,cAAc,GAAkB,IAAI,CAAC;QACzC,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,GAAG,GAAkB,IAAI,CAAC;QAE9B,oBAAoB;QACpB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QACjD,IAAI,QAAQ,GAAkB,IAAI,CAAC;QAEnC,8BAA8B;QAC9B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACzD,QAAQ,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBAC9B,IAAI,EAAE,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC;iBAC9C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;oBACzC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjE,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;oBACtC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;oBAChD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CACT,0HAA0H,CAC3H,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YAExC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,iCAAiC;gBACjC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC1D,cAAc,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAC/C,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;wBACpC,IAAI,EAAE,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC;qBAC9C,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;4BAC3C,KAAK,EAAE,KAAK,CAAC,OAAO;yBACrB,CAAC,CAAC;wBACH,mDAAmD;wBACnD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;4BACtB,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;wBACtD,CAAC;6BAAM,CAAC;4BACN,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACvB,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;4BAC7C,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;4BACjD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC9D,CAAC,CAAC;wBACH,oDAAoD;wBACpD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;4BACtB,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;wBACtD,CAAC;6BAAM,CAAC;4BACN,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACvC,mCAAmC;gBACnC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAC5B,IAAI,CAAC;oBACH,qCAAqC;oBACrC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,iBAAiB,CAAC;wBACtD,OAAO,CAAC,IAAI;wBACZ,OAAO,CAAC,GAAG;qBACZ,CAAC,CAAC;oBAEH,qDAAqD;oBACrD,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;wBAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;qBAChC,CAAC,CAAC;oBAEH,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;wBACxC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC;wBACvC,GAAG,EAAE,kBAAkB,CAAC,YAAY,CAAC;qBACtC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACnE,mDAAmD;wBACnD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;4BACtB,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;wBACtD,CAAC;6BAAM,CAAC;4BACN,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACvB,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;4BAC7C,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC;4BACtC,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC;4BACpC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC9D,CAAC,CAAC;wBACH,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;4BACtB,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;wBACtD,CAAC;6BAAM,CAAC;4BACN,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAC/B,cAAc;YACd,IAAI;YACJ,GAAG;YACH,SAAS,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;YAC3C,WAAW;YACX,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB;QACrC,qDAAqD;QACrD,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEjE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;YACrE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YAEvB,4BAA4B;YAC5B,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,cAAc,GAAG,GAAG,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;wBACtC,OAAO,EAAE,OAAO,CAAC,IAAI;wBACrB,SAAS;qBACV,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,kCAAkC;oBAClC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CACnC,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CACnE,CAAC;oBAEF,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;wBAC7B,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;4BACvC,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,aAAa,EAAE,mBAAmB;4BAClC,SAAS;yBACV,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3C,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC;gBAE/D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CACjC,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CACjE,CAAC;gBAEF,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;wBAC3C,OAAO,EAAE,OAAO,CAAC,IAAI;wBACrB,WAAW;wBACX,eAAe;qBAChB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;wBAC9C,OAAO,EAAE,OAAO,CAAC,IAAI;wBACrB,iBAAiB;wBACjB,WAAW;qBACZ,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;gBACpD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,eAAe;QAC3B,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAmB,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;gBAC3D,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,MAAM;aACP,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,kDAAkD;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEzD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpF,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;oBAC7C,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,MAAM;oBACN,OAAO,EAAE,IAAI,CAAC,iBAAiB;iBAChC,CAAC,CAAC;gBACH,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,IAAI;YACT,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -16,6 +16,24 @@ export interface HttpClientConfig {
16
16
  headers?: Record<string, string>;
17
17
  /** Enable request/response logging */
18
18
  debug?: boolean;
19
+ /** Rate limiting configuration */
20
+ rateLimit?: {
21
+ /** Maximum requests per time window */
22
+ maxRequests?: number;
23
+ /** Time window in milliseconds */
24
+ perMilliseconds?: number;
25
+ /** Maximum concurrent requests */
26
+ maxConcurrent?: number;
27
+ };
28
+ /** Retry configuration */
29
+ retry?: {
30
+ /** Number of retry attempts */
31
+ retries?: number;
32
+ /** Retry delay strategy: 'exponential' or 'linear' */
33
+ retryDelay?: "exponential" | "linear";
34
+ /** HTTP status codes to retry on */
35
+ retryOn?: number[];
36
+ };
19
37
  }
20
38
  /**
21
39
  * API response wrapper with metadata
@@ -40,6 +58,82 @@ export declare class HttpClient {
40
58
  private client;
41
59
  private credentialManager;
42
60
  private config;
61
+ private rateLimiter;
62
+ private concurrentLimiter;
63
+ /**
64
+ * Creates an HTTP client for F5 Distributed Cloud API requests.
65
+ *
66
+ * The client automatically:
67
+ * - Injects authentication credentials from the credential manager
68
+ * - Adds required headers (User-Agent, Content-Type)
69
+ * - Configures SSL/TLS settings (including custom CA and insecure mode)
70
+ * - Applies rate limiting (10 req/sec, 5 concurrent by default)
71
+ * - Implements retry logic with exponential backoff (3 retries)
72
+ * - Transforms responses to typed ApiResponse objects
73
+ * - Handles common error scenarios with actionable guidance
74
+ *
75
+ * @param credentialManager - Manages authentication credentials and profiles.
76
+ * Must be initialized before creating the HTTP client.
77
+ * @param config - Optional HTTP client configuration
78
+ * @param config.timeout - Request timeout in milliseconds (default: 30000)
79
+ * @param config.headers - Additional headers to include in all requests
80
+ * @param config.debug - Enable request/response logging (default: false)
81
+ * @param config.rateLimit - Rate limiting configuration
82
+ * @param config.rateLimit.maxRequests - Maximum requests per time window (default: 10)
83
+ * @param config.rateLimit.perMilliseconds - Time window in milliseconds (default: 1000)
84
+ * @param config.rateLimit.maxConcurrent - Maximum concurrent requests (default: 5)
85
+ * @param config.retry - Retry configuration
86
+ * @param config.retry.retries - Number of retry attempts (default: 3)
87
+ * @param config.retry.retryDelay - Retry delay strategy: 'exponential' or 'linear' (default: 'exponential')
88
+ * @param config.retry.retryOn - HTTP status codes to retry on (default: [429, 500, 502, 503, 504])
89
+ *
90
+ * @example Basic usage
91
+ * ```typescript
92
+ * const cm = new CredentialManager();
93
+ * await cm.initialize();
94
+ *
95
+ * const client = new HttpClient(cm);
96
+ * const response = await client.get("/api/config/namespaces");
97
+ * console.log(response.data);
98
+ * ```
99
+ *
100
+ * @example Custom configuration
101
+ * ```typescript
102
+ * const client = new HttpClient(cm, {
103
+ * timeout: 60000,
104
+ * headers: { "X-Custom-Header": "value" },
105
+ * rateLimit: {
106
+ * maxRequests: 20,
107
+ * perMilliseconds: 1000,
108
+ * maxConcurrent: 10
109
+ * }
110
+ * });
111
+ * ```
112
+ *
113
+ * @example With request options
114
+ * ```typescript
115
+ * const response = await client.get<Namespace[]>(
116
+ * "/api/config/namespaces/system/virtual-hosts",
117
+ * { params: { filter: "active" } }
118
+ * );
119
+ * ```
120
+ *
121
+ * @example Custom retry configuration
122
+ * ```typescript
123
+ * const client = new HttpClient(cm, {
124
+ * retry: {
125
+ * retries: 5,
126
+ * retryDelay: "linear",
127
+ * retryOn: [429, 500, 503]
128
+ * }
129
+ * });
130
+ * ```
131
+ *
132
+ * @throws {AuthenticationError} If credentials are invalid or missing when making requests
133
+ * @throws {F5XCApiError} For API request failures (4xx, 5xx status codes)
134
+ * @throws {SSLCertificateError} For SSL/TLS certificate validation failures
135
+ * @throws {NetworkError} For network connectivity issues
136
+ */
43
137
  constructor(credentialManager: CredentialManager, config?: HttpClientConfig);
44
138
  /**
45
139
  * Build HTTPS agent options from credential manager TLS configuration
@@ -71,9 +165,21 @@ export declare class HttpClient {
71
165
  */
72
166
  delete<T = unknown>(path: string, config?: AxiosRequestConfig): Promise<ApiResponse<T>>;
73
167
  /**
74
- * Make a generic request
168
+ * Make a generic request with rate limiting and retry logic
75
169
  */
76
170
  private request;
171
+ /**
172
+ * Execute request with retry logic
173
+ */
174
+ private executeWithRetry;
175
+ /**
176
+ * Determine if request should be retried
177
+ */
178
+ private shouldRetryRequest;
179
+ /**
180
+ * Calculate retry delay based on strategy
181
+ */
182
+ private calculateRetryDelay;
77
183
  /**
78
184
  * Get the underlying Axios instance
79
185
  */
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/auth/http-client.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAc,EACZ,aAAa,EACb,kBAAkB,EAGnB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,iBAAiB,EAAY,MAAM,yBAAyB,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAWD;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,oBAAoB;IACpB,IAAI,EAAE,CAAC,CAAC;IACR,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAA6B;gBAE/B,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAqB;IAS/E;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAuJpB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1F;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1B;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1B;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI7F;;OAEG;YACW,OAAO;IAgCrB;;OAEG;IACH,gBAAgB,IAAI,aAAa,GAAG,IAAI;CAGzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,CAAC,EAAE,gBAAgB,GACxB,UAAU,CAEZ"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/auth/http-client.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAc,EACZ,aAAa,EACb,kBAAkB,EAGnB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,iBAAiB,EAAY,MAAM,yBAAyB,CAAC;AAKtE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,SAAS,CAAC,EAAE;QACV,uCAAuC;QACvC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kCAAkC;QAClC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,kCAAkC;QAClC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,0BAA0B;IAC1B,KAAK,CAAC,EAAE;QACN,+BAA+B;QAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,sDAAsD;QACtD,UAAU,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;QACtC,oCAAoC;QACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAqBD;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,oBAAoB;IACpB,IAAI,EAAE,CAAC,CAAC;IACR,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAuFD;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAoB;IAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyEG;gBACS,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAqB;IAuB/E;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAuJpB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1F;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1B;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1B;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI7F;;OAEG;YACW,OAAO;IA0BrB;;OAEG;YACW,gBAAgB;IAwC9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,gBAAgB,IAAI,aAAa,GAAG,IAAI;CAGzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,CAAC,EAAE,gBAAgB,GACxB,UAAU,CAEZ"}