{"version":3,"sources":["../../src/utils/idempotency.ts"],"names":[],"mappings":";AAEO,IAAM,yBAAN,MAAyD;AAAA,EAAzD,WAAA,GAAA;AACL,IAAA,IAAA,CAAQ,KAAA,uBAAY,GAAA,EAAqB;AACzC,IAAA,IAAA,CAAQ,GAAA,uBAAU,GAAA,EAAoB;AACtC,IAAA,IAAA,CAAiB,iBAAA,GAAoB,KAAA;AAAA,EAAA;AAAA,EAErC,MAAM,IAAI,EAAA,EAA8B;AACtC,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,GAAA,CAAI,EAAE,CAAA;AAC9B,IAAA,IAAI,MAAA,IAAU,IAAA,CAAK,GAAA,EAAI,GAAI,MAAA,EAAQ;AACjC,MAAA,IAAA,CAAK,KAAA,CAAM,OAAO,EAAE,CAAA;AACpB,MAAA,IAAA,CAAK,GAAA,CAAI,OAAO,EAAE,CAAA;AAClB,MAAA,OAAO,KAAA;AAAA,IACT;AACA,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,EAAE,CAAA;AAAA,EAC1B;AAAA,EAEA,MAAM,GAAA,CAAI,EAAA,EAAY,UAAA,GAAa,KAAK,iBAAA,EAAkC;AACxE,IAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,EAAA,EAAI,IAAI,CAAA;AACvB,IAAA,IAAA,CAAK,IAAI,GAAA,CAAI,EAAA,EAAI,KAAK,GAAA,EAAI,GAAI,aAAa,GAAI,CAAA;AAAA,EACjD;AACF;AAEO,SAAS,4BAAA,GAAuD;AACrE,EAAA,OAAO,IAAI,sBAAA,EAAuB;AACpC","file":"idempotency.mjs","sourcesContent":["import type { IdempotencyStore } from '../types/index.js';\n\nexport class MemoryIdempotencyStore implements IdempotencyStore {\n  private store = new Map<string, boolean>();\n  private ttl = new Map<string, number>();\n  private readonly defaultTtlSeconds = 86400;\n\n  async has(id: string): Promise<boolean> {\n    const expiry = this.ttl.get(id);\n    if (expiry && Date.now() > expiry) {\n      this.store.delete(id);\n      this.ttl.delete(id);\n      return false;\n    }\n    return this.store.has(id);\n  }\n\n  async set(id: string, ttlSeconds = this.defaultTtlSeconds): Promise<void> {\n    this.store.set(id, true);\n    this.ttl.set(id, Date.now() + ttlSeconds * 1000);\n  }\n}\n\nexport function createMemoryIdempotencyStore(): MemoryIdempotencyStore {\n  return new MemoryIdempotencyStore();\n}\n"]}