{"version":3,"file":"helpers.mjs","sources":["../../src/helpers.ts"],"sourcesContent":["const uuidRegex =\n  /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n\nexport function isValidUuid(uuid: string) {\n  return uuidRegex.test(uuid);\n}\n\n/**\n * Exponential backoff with full jitter and a minimum delay floor.\n *\n * - Uses exponential growth capped at maxDelayMs\n * - Applies full jitter to spread retries uniformly across the window\n * - Enforces a minimum delay to avoid tight retry loops\n *\n * Example (baseDelayMs = 1000):\n *   Try 1:   250ms – 1,000ms\n *   Try 2:   250ms – 2,000ms\n *   Try 3:   250ms – 4,000ms\n *   Try 4:   250ms – 8,000ms\n *   Try 5+:  250ms – maxDelayMs\n */\nexport function exponentialBackoffFullJitter(\n  tries: number,\n  {\n    baseDelayMs,\n    maxDelayMs,\n    minDelayMs = 250,\n  }: {\n    baseDelayMs: number;\n    maxDelayMs: number;\n    minDelayMs?: number;\n  },\n): number {\n  const exponentialDelay = Math.min(\n    maxDelayMs,\n    baseDelayMs * Math.pow(2, Math.max(0, tries - 1)),\n  );\n\n  if (exponentialDelay <= minDelayMs) {\n    return minDelayMs;\n  }\n\n  const jitterRange = exponentialDelay - minDelayMs;\n  return minDelayMs + Math.floor(Math.random() * jitterRange);\n}\n"],"names":["uuidRegex","isValidUuid","uuid","exponentialBackoffFullJitter","tries","baseDelayMs","maxDelayMs","minDelayMs","exponentialDelay","jitterRange"],"mappings":"AAAA,MAAMA,IACJ;AAEK,SAASC,EAAYC,GAAc;AACjC,SAAAF,EAAU,KAAKE,CAAI;AAC5B;AAgBO,SAASC,EACdC,GACA;AAAA,EACE,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC,IAAa;AACf,GAKQ;AACR,QAAMC,IAAmB,KAAK;AAAA,IAC5BF;AAAA,IACAD,IAAc,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGD,IAAQ,CAAC,CAAC;AAAA,EAClD;AAEA,MAAII,KAAoBD;AACf,WAAAA;AAGT,QAAME,IAAcD,IAAmBD;AACvC,SAAOA,IAAa,KAAK,MAAM,KAAK,WAAWE,CAAW;AAC5D;"}