{"version":3,"sources":["../../../src/types/main.ts","../../../src/types/bus.ts"],"sourcesContent":["import type { CacheDriver } from './driver';\nimport type { MasterCache } from '../mastercache';\nimport type { BusDriver, BusOptions } from './bus';\n\nexport * from './bus';\nexport * from './events';\nexport * from './driver';\nexport * from './helpers';\nexport * from './provider';\nexport * from './options/options';\nexport * from './options/drivers-options';\nexport * from './options/methods-options';\n\n/**\n * Interface for a L1 cache driver. Probably a memory driver\n */\nexport interface L1CacheDriver extends CacheDriver<false> {\n  type: 'l1'\n  getRemainingTtl(key: string): number | undefined\n}\n\n/**\n * Interface for a L2, distributed cache driver.\n */\nexport interface L2CacheDriver extends CacheDriver<true> {\n  type: 'l2'\n}\n\n/**\n * Factory result for a cache driver\n */\nexport interface CreateDriverResult<T extends L1CacheDriver | L2CacheDriver> {\n  options: Record<string, any>\n  factory: (config: any) => T\n}\n\n/**\n * Contract for a bus driver factory\n */\nexport interface CreateBusDriverResult {\n  options: BusOptions\n  factory: (config: any) => BusDriver\n}\n\n/**\n * Cache serializer contract\n */\nexport interface CacheSerializer {\n  serialize: (value: any) => string\n  deserialize: (value: any) => any\n}\n\n/**\n * Stack of cache drivers\n */\nexport interface CacheStackDrivers {\n  l1Driver?: L1CacheDriver\n  l2Driver?: L2CacheDriver\n  busDriver?: BusDriver\n  busOptions?: BusOptions\n}\n\n/**\n * A Mastercache Plugin\n */\nexport interface MasterCachePlugin {\n  register(mastercache: MasterCache<any>): void\n}\n\n/**\n * Dialect available for the SQL driver\n */\nexport type DialectName = 'pg' | 'mysql2' | 'better-sqlite3' | 'sqlite3'\n","import type { Transport } from '@boringnode/bus/types/main';\n\nimport type { Duration } from './helpers';\n\n/**\n * Interface for the bus driver\n */\nexport type BusDriver = Transport\n\n/**\n * Message sent over the cache bus\n */\nexport type CacheBusMessage = {\n  keys: string[]\n  type: CacheBusMessageType\n  namespace?: string\n}\n\nexport enum CacheBusMessageType {\n  /**\n   * An item was set in the cache\n   */\n  Set = 'set',\n\n  /**\n   * Whole cache was cleared\n   */\n  Clear = 'clear',\n\n  /**\n   * An item was deleted from the cache\n   */\n  Delete = 'delete',\n}\n\nexport type BusOptions = {\n  /**\n   * Configuration for the bus retry queue\n   */\n  retryQueue?: {\n    /**\n     * If we should retry sending messages that failed to be sent\n     */\n    enabled?: boolean\n\n    /**\n     * Maximum number of messages to keep in the retry queue. Older\n     * messages will be discarded when the queue is full.\n     */\n    maxSize?: number\n\n    /**\n     * The interval between each retry attempt\n     */\n    retryInterval?: Duration | false\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACkBO,IAAK,sBAAL,kBAAKA,yBAAL;AAIL,EAAAA,qBAAA,SAAM;AAKN,EAAAA,qBAAA,WAAQ;AAKR,EAAAA,qBAAA,YAAS;AAdC,SAAAA;AAAA,GAAA;","names":["CacheBusMessageType"]}