{"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,6BAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B,EAAA;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,qBAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB,IAAA;AACF,EAAA;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd,EAAA;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B,EAAA;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF,CAAA;AAEO,MAAMG,qBAAwBC,kBAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,+BAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF,EAAA;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB,EAAA;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C,EAAA;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB,EAAA;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"slidingCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n  size: number;\n  ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n  constructor(protected readonly value: T) {\n    super();\n  }\n\n  static {\n    this.register();\n  }\n\n  destructor() {\n    if (this.value instanceof Task) {\n      this.value.destructor();\n    }\n  }\n\n  unwrap(): T {\n    return this.value;\n  }\n\n  createSnapshot() {\n    return { value: this.value };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    Object.assign(this, snapshot);\n  }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n  protected readonly provider;\n\n  constructor(input: SlidingCacheInput) {\n    super();\n    this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n  }\n\n  static {\n    this.register();\n  }\n\n  async get(key: string) {\n    const value = this.provider.get(key);\n    return value?.unwrap?.();\n  }\n\n  async has(key: string) {\n    return this.provider.has(key);\n  }\n\n  async clear() {\n    this.provider.clear();\n  }\n\n  async delete(key: string) {\n    return this.provider.delete(key);\n  }\n\n  async set(key: string, value: T) {\n    this.provider.set(key, new SlidingCacheEntry(value));\n  }\n\n  async size() {\n    return this.provider.size;\n  }\n\n  createSnapshot() {\n    return {\n      enabled: this.enabled,\n      provider: this.provider,\n    };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    Object.assign(this, snapshot);\n  }\n}\n"]}