{"_id":"@teliagen/cache","_rev":"31-afabf7478a9ad2ea31d29fba3ab9186a","name":"@teliagen/cache","dist-tags":{"latest":"0.4.3"},"versions":{"0.4.0":{"name":"@teliagen/cache","version":"0.4.0","author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"license":"Apache-2.0","_id":"@teliagen/cache@0.4.0","maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"homepage":"https://docs.teliagen.org","bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"dist":{"shasum":"78fc593aac640ae3c492b4ba6ef1859d20587f2f","tarball":"https://registry.npmjs.org/@teliagen/cache/-/cache-0.4.0.tgz","fileCount":43,"integrity":"sha512-FXYQnPxjBRRou03YtbG4SUsv24qJKC7h7M//xFQLEiRzd88cu263j1oDGvr9TQuvfsyMfHyi6Ehof5NFWg1Q1Q==","signatures":[{"sig":"MEUCIHDqIQPntEW4jJtWP+f12dYeeQUh3c7rs8TF/PMxAT7oAiEA/AdIVyHr+lFXEx9BjRy7NrSFib1UVr48ir52MkIsaDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81097},"main":"./dist/index.js","type":"module","_from":"file:teliagen-cache-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js","require":"./dist/utils/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","import":"./dist/drivers/index.js","default":"./dist/drivers/index.js","require":"./dist/drivers/index.js"},"./service":{"types":"./dist/service/index.d.ts","import":"./dist/service/index.js","default":"./dist/service/index.js","require":"./dist/service/index.js"},"./decorators":{"types":"./dist/decorators/index.d.ts","import":"./dist/decorators/index.js","default":"./dist/decorators/index.js","require":"./dist/decorators/index.js"},"./drivers/memory":{"types":"./dist/drivers/memory.d.ts","import":"./dist/drivers/memory.js","default":"./dist/drivers/memory.js","require":"./dist/drivers/memory.js"}},"private":false,"scripts":{"build":"tsc","watch":"tsc -w"},"_npmUser":{"name":"teliagen_off","email":"admin@teliagen.org"},"_resolved":"C:\\Users\\ABDOUL~1\\AppData\\Local\\Temp\\25c68e7112b4511e8840f46103be2e0f\\teliagen-cache-0.4.0.tgz","_integrity":"sha512-FXYQnPxjBRRou03YtbG4SUsv24qJKC7h7M//xFQLEiRzd88cu263j1oDGvr9TQuvfsyMfHyi6Ehof5NFWg1Q1Q==","repository":{"url":"git+https://github.com/teliagen/teliagen-framework.git","type":"git","directory":"packages/cache"},"_npmVersion":"11.6.2","description":"Teliagen official caching system with tagging and decorators","directories":{},"_nodeVersion":"24.12.0","dependencies":{"reflect-metadata":"^0.2.2","@teliagen/commons":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/cache_0.4.0_1770857894761_0.018097899585374888","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@teliagen/cache","version":"0.4.1","author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"license":"Apache-2.0","_id":"@teliagen/cache@0.4.1","maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"homepage":"https://docs.teliagen.org","bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"dist":{"shasum":"abbfc300cd3cd7f2143e89496ffd9d8c69e5c80f","tarball":"https://registry.npmjs.org/@teliagen/cache/-/cache-0.4.1.tgz","fileCount":43,"integrity":"sha512-KHxHZ7LJR1CY82QUbHDjnqXWQGksDjuCuByfjOwhjpwyjTJRoEPto0rZa6Kbu7EoKTjglRCMaXFbmXPCl/1tmQ==","signatures":[{"sig":"MEQCIGeDgrec1XzD+pLOsTuIfD2ClpqoWCqmu05drmXBxSzaAiBaBv1shCA9V6NayrOq23tAEc+dbNVJl0+6e7cPb8s9KQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81097},"main":"./dist/index.js","type":"module","_from":"file:teliagen-cache-0.4.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js","require":"./dist/utils/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","import":"./dist/drivers/index.js","default":"./dist/drivers/index.js","require":"./dist/drivers/index.js"},"./service":{"types":"./dist/service/index.d.ts","import":"./dist/service/index.js","default":"./dist/service/index.js","require":"./dist/service/index.js"},"./decorators":{"types":"./dist/decorators/index.d.ts","import":"./dist/decorators/index.js","default":"./dist/decorators/index.js","require":"./dist/decorators/index.js"},"./drivers/memory":{"types":"./dist/drivers/memory.d.ts","import":"./dist/drivers/memory.js","default":"./dist/drivers/memory.js","require":"./dist/drivers/memory.js"}},"private":false,"scripts":{"build":"tsc","watch":"tsc -w"},"_npmUser":{"name":"teliagen_off","email":"admin@teliagen.org"},"_resolved":"C:\\Users\\ABDOUL~1\\AppData\\Local\\Temp\\7d95bc07cde84321b83c3a84af1e0233\\teliagen-cache-0.4.1.tgz","_integrity":"sha512-KHxHZ7LJR1CY82QUbHDjnqXWQGksDjuCuByfjOwhjpwyjTJRoEPto0rZa6Kbu7EoKTjglRCMaXFbmXPCl/1tmQ==","repository":{"url":"git+https://github.com/teliagen/teliagen-framework.git","type":"git","directory":"packages/cache"},"_npmVersion":"11.6.2","description":"Teliagen official caching system with tagging and decorators","directories":{},"_nodeVersion":"24.12.0","dependencies":{"reflect-metadata":"^0.2.2","@teliagen/commons":"0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/cache_0.4.1_1770923624326_0.3012986804647835","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@teliagen/cache","version":"0.4.2","author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"license":"Apache-2.0","_id":"@teliagen/cache@0.4.2","maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"homepage":"https://docs.teliagen.org","bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"dist":{"shasum":"fda2d17ce13ebc879c2d3fb12c00b55b26946920","tarball":"https://registry.npmjs.org/@teliagen/cache/-/cache-0.4.2.tgz","fileCount":43,"integrity":"sha512-FbyXcvJu/x8NfIU/hCvL7lz8RTjU1OhSUxeEit3uNi1I4tMyLnyaDuy3i23fn84QsImGkYzWSDkk5W02QNGH9w==","signatures":[{"sig":"MEUCICfqRT5xJSmBZDVkvVxI8qdIDnpoovgGI6kN86+wCpf3AiEAwcB6jZu3WxFjeorWGyJQfUzHHAI2TQnmyFnFGMXUMyU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81097},"main":"./dist/index.js","type":"module","_from":"file:teliagen-cache-0.4.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js","require":"./dist/utils/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","import":"./dist/drivers/index.js","default":"./dist/drivers/index.js","require":"./dist/drivers/index.js"},"./service":{"types":"./dist/service/index.d.ts","import":"./dist/service/index.js","default":"./dist/service/index.js","require":"./dist/service/index.js"},"./decorators":{"types":"./dist/decorators/index.d.ts","import":"./dist/decorators/index.js","default":"./dist/decorators/index.js","require":"./dist/decorators/index.js"},"./drivers/memory":{"types":"./dist/drivers/memory.d.ts","import":"./dist/drivers/memory.js","default":"./dist/drivers/memory.js","require":"./dist/drivers/memory.js"}},"private":false,"scripts":{"build":"tsc","watch":"tsc -w"},"_npmUser":{"name":"teliagen_off","email":"admin@teliagen.org"},"_resolved":"C:\\Users\\ABDOUL~1\\AppData\\Local\\Temp\\f832bc21b37825b771f02e03cdf0718d\\teliagen-cache-0.4.2.tgz","_integrity":"sha512-FbyXcvJu/x8NfIU/hCvL7lz8RTjU1OhSUxeEit3uNi1I4tMyLnyaDuy3i23fn84QsImGkYzWSDkk5W02QNGH9w==","repository":{"url":"git+https://github.com/teliagen/teliagen-framework.git","type":"git","directory":"packages/cache"},"_npmVersion":"11.6.2","description":"Teliagen official caching system with tagging and decorators","directories":{},"_nodeVersion":"24.12.0","dependencies":{"reflect-metadata":"^0.2.2","@teliagen/commons":"0.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/cache_0.4.2_1770925174708_0.8760209205024385","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@teliagen/cache","version":"0.4.3","private":false,"publishConfig":{"access":"public"},"description":"Teliagen official caching system with tagging and decorators","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","import":"./dist/index.js","require":"./dist/index.js"},"./service":{"types":"./dist/service/index.d.ts","default":"./dist/service/index.js","import":"./dist/service/index.js","require":"./dist/service/index.js"},"./decorators":{"types":"./dist/decorators/index.d.ts","default":"./dist/decorators/index.js","import":"./dist/decorators/index.js","require":"./dist/decorators/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js","import":"./dist/drivers/index.js","require":"./dist/drivers/index.js"},"./drivers/memory":{"types":"./dist/drivers/memory.d.ts","default":"./dist/drivers/memory.js","import":"./dist/drivers/memory.js","require":"./dist/drivers/memory.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js","import":"./dist/utils/index.js","require":"./dist/utils/index.js"}},"author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"repository":{"type":"git","url":"git+https://github.com/teliagen/teliagen-framework.git","directory":"packages/cache"},"homepage":"https://docs.teliagen.org","bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"license":"Apache-2.0","dependencies":{"reflect-metadata":"^0.2.2","@teliagen/commons":"0.4.3"},"devDependencies":{"typescript":"^5.3.3"},"scripts":{"build":"tsc","watch":"tsc -w"},"_id":"@teliagen/cache@0.4.3","_integrity":"sha512-abFuuGLtCYRBUPxXVbk7ae0p52KdhL6WNk3JkUqPlxV4P3BH979mZkhoKp+sQqHohJmtWxBOGyZf5c3WTUXoaw==","_resolved":"C:\\Users\\ABDOUL~1\\AppData\\Local\\Temp\\b5aa415b1a10f5874949124918040740\\teliagen-cache-0.4.3.tgz","_from":"file:teliagen-cache-0.4.3.tgz","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-abFuuGLtCYRBUPxXVbk7ae0p52KdhL6WNk3JkUqPlxV4P3BH979mZkhoKp+sQqHohJmtWxBOGyZf5c3WTUXoaw==","shasum":"468c4e94a54c00e82832eca9bc5d3b8d6b93fe69","tarball":"https://registry.npmjs.org/@teliagen/cache/-/cache-0.4.3.tgz","fileCount":43,"unpackedSize":81179,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID8/xBS76fHLmBN3uGLKjCmJVqjHNKyqDsPqSH71R0emAiEA5mS7LPuaQ0iV5HwWnCNNGC0gKEO4dfJxG2XAiyzx0+s="}]},"_npmUser":{"name":"teliagen_off","email":"admin@teliagen.org"},"directories":{},"maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cache_0.4.3_1773049195873_0.42377409152878376"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-12T00:58:14.668Z","modified":"2026-03-09T09:39:56.167Z","0.1.0":"2026-01-19T19:17:19.148Z","0.1.1":"2026-01-19T19:55:46.411Z","0.1.2":"2026-01-19T21:14:18.995Z","0.1.3":"2026-01-19T21:27:18.396Z","0.1.4":"2026-01-25T07:47:16.721Z","0.1.5":"2026-01-25T16:04:13.828Z","0.1.6":"2026-01-25T16:42:02.522Z","0.1.7":"2026-01-25T16:46:55.446Z","0.1.8":"2026-01-25T18:22:00.223Z","0.1.9":"2026-01-25T19:33:25.453Z","0.1.10":"2026-01-25T23:49:18.602Z","0.1.11":"2026-01-26T00:07:11.212Z","0.1.12":"2026-01-26T00:10:44.949Z","0.1.13":"2026-01-26T00:14:11.041Z","0.1.14":"2026-01-26T00:18:26.580Z","0.1.15":"2026-01-26T00:39:42.524Z","0.1.16":"2026-01-26T00:52:34.379Z","0.1.17":"2026-01-26T00:56:49.737Z","0.1.19":"2026-01-26T01:17:11.971Z","0.1.20":"2026-01-26T01:21:44.339Z","0.1.21":"2026-01-26T01:42:47.943Z","0.1.22":"2026-01-26T02:16:35.340Z","0.1.23":"2026-01-26T02:25:58.593Z","0.4.0":"2026-02-12T00:58:14.892Z","0.4.1":"2026-02-12T19:13:44.489Z","0.4.2":"2026-02-12T19:39:34.914Z","0.4.3":"2026-03-09T09:39:56.024Z"},"bugs":{"url":"https://github.com/teliagen/teliagen-framework/issues"},"author":{"name":"Teliagen Team","email":"contact@teliagen.org"},"license":"Apache-2.0","homepage":"https://docs.teliagen.org","repository":{"type":"git","url":"git+https://github.com/teliagen/teliagen-framework.git","directory":"packages/cache"},"description":"Teliagen official caching system with tagging and decorators","maintainers":[{"name":"teliagen_off","email":"admin@teliagen.org"}],"readme":"# @teliagen/cache\r\n\r\n> Caching system for the Teliagen Framework.\r\n\r\n[![npm version](https://img.shields.io/npm/v/@teliagen/cache.svg)](https://www.npmjs.com/package/@teliagen/cache)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\r\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\r\n\r\n## Overview\r\n\r\n`@teliagen/cache` provides a flexible caching solution:\r\n\r\n- **In-Memory Cache** – Fast default cache\r\n- **TTL Support** – Time-to-live expiration\r\n- **Key Patterns** – Wildcard key invalidation\r\n- **Driver Interface** – Extensible for Redis, etc.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @teliagen/cache\r\n# or\r\npnpm add @teliagen/cache\r\n```\r\n\r\n## Quick Start\r\n\r\n```typescript\r\nimport { Cache } from '@teliagen/cache';\r\n\r\nconst cache = new Cache();\r\n\r\n// Set a value\r\nawait cache.set('user:123', { name: 'Alice', email: 'alice@example.com' });\r\n\r\n// Get a value\r\nconst user = await cache.get('user:123');\r\n\r\n// Set with TTL (60 seconds)\r\nawait cache.set('session:abc', { userId: '123' }, 60);\r\n\r\n// Delete\r\nawait cache.delete('user:123');\r\n```\r\n\r\n## API Reference\r\n\r\n### Cache Class\r\n\r\n```typescript\r\nclass Cache {\r\n  constructor(options?: CacheOptions);\r\n  \r\n  // Get value by key\r\n  get<T>(key: string): Promise<T | null>;\r\n  \r\n  // Set value with optional TTL (seconds)\r\n  set<T>(key: string, value: T, ttl?: number): Promise<void>;\r\n  \r\n  // Check if key exists\r\n  has(key: string): Promise<boolean>;\r\n  \r\n  // Delete by key\r\n  delete(key: string): Promise<boolean>;\r\n  \r\n  // Delete by pattern (e.g., 'user:*')\r\n  deletePattern(pattern: string): Promise<number>;\r\n  \r\n  // Clear all cache\r\n  clear(): Promise<void>;\r\n  \r\n  // Get or set (fetch if missing)\r\n  getOrSet<T>(key: string, factory: () => T | Promise<T>, ttl?: number): Promise<T>;\r\n}\r\n```\r\n\r\n## Configuration\r\n\r\n```typescript\r\ninterface CacheOptions {\r\n  // Default TTL in seconds (0 = no expiration)\r\n  defaultTTL?: number;\r\n  \r\n  // Maximum cache size (items)\r\n  maxSize?: number;\r\n  \r\n  // Cache driver\r\n  driver?: CacheDriver;\r\n}\r\n\r\nconst cache = new Cache({\r\n  defaultTTL: 3600,  // 1 hour default\r\n  maxSize: 10000\r\n});\r\n```\r\n\r\n## Usage Examples\r\n\r\n### Basic Caching\r\n\r\n```typescript\r\nimport { Cache } from '@teliagen/cache';\r\n\r\nconst cache = new Cache();\r\n\r\n// Cache database query results\r\nasync function getUser(id: string) {\r\n  const cacheKey = `user:${id}`;\r\n  \r\n  // Check cache first\r\n  let user = await cache.get(cacheKey);\r\n  \r\n  if (!user) {\r\n    // Fetch from database\r\n    user = await User.findById(id);\r\n    \r\n    // Cache for 5 minutes\r\n    await cache.set(cacheKey, user, 300);\r\n  }\r\n  \r\n  return user;\r\n}\r\n```\r\n\r\n### Get Or Set Pattern\r\n\r\n```typescript\r\n// Simpler version using getOrSet\r\nasync function getUser(id: string) {\r\n  return cache.getOrSet(\r\n    `user:${id}`,\r\n    () => User.findById(id),\r\n    300  // 5 minutes TTL\r\n  );\r\n}\r\n```\r\n\r\n### Cache Invalidation\r\n\r\n```typescript\r\n// Delete specific key\r\nawait cache.delete('user:123');\r\n\r\n// Delete all user cache\r\nawait cache.deletePattern('user:*');\r\n\r\n// Delete all cache\r\nawait cache.clear();\r\n```\r\n\r\n### In Actions\r\n\r\n```typescript\r\nimport { Action, ActionProvider, Input } from '@teliagen/commons';\r\nimport { Cache } from '@teliagen/cache';\r\n\r\nconst cache = new Cache({ defaultTTL: 600 });\r\n\r\n@ActionProvider('products', 'ProductActions')\r\nclass ProductActions {\r\n  @Action('getProduct')\r\n  async getProduct(@Input() input: { id: string }) {\r\n    return cache.getOrSet(\r\n      `product:${input.id}`,\r\n      () => Product.findById(input.id)\r\n    );\r\n  }\r\n\r\n  @Action('updateProduct')\r\n  async updateProduct(@Input() input: UpdateProductInput) {\r\n    const product = await Product.update(input.id, input);\r\n    \r\n    // Invalidate cache\r\n    await cache.delete(`product:${input.id}`);\r\n    await cache.deletePattern(`products:list:*`);\r\n    \r\n    return product;\r\n  }\r\n}\r\n```\r\n\r\n## With Framework Feature\r\n\r\nUse the `Cache` feature in your config:\r\n\r\n```typescript\r\n// teliagen.config.ts\r\nimport { defineConfig, Cache } from '@teliagen/commons';\r\n\r\nexport default defineConfig({\r\n  features: [\r\n    Cache({\r\n      enabled: true,\r\n      ttl: 3600\r\n    })\r\n  ]\r\n});\r\n```\r\n\r\nThen use `@Cacheable` decorator:\r\n\r\n```typescript\r\n@ActionProvider('products', 'ProductActions')\r\nclass ProductActions {\r\n  @Action('listProducts')\r\n  @Cacheable({ ttl: 300, key: 'products:list:{page}' })\r\n  async listProducts(@Input() input: { page: number }) {\r\n    return Product.findAll({ offset: input.page * 20, limit: 20 });\r\n  }\r\n}\r\n```\r\n\r\n## Custom Drivers\r\n\r\n### Redis Driver\r\n\r\n```typescript\r\nimport { Cache, CacheDriver } from '@teliagen/cache';\r\nimport Redis from 'ioredis';\r\n\r\nclass RedisDriver implements CacheDriver {\r\n  private client: Redis;\r\n  \r\n  constructor(options: RedisOptions) {\r\n    this.client = new Redis(options);\r\n  }\r\n  \r\n  async get<T>(key: string): Promise<T | null> {\r\n    const value = await this.client.get(key);\r\n    return value ? JSON.parse(value) : null;\r\n  }\r\n  \r\n  async set<T>(key: string, value: T, ttl?: number): Promise<void> {\r\n    const serialized = JSON.stringify(value);\r\n    if (ttl) {\r\n      await this.client.setex(key, ttl, serialized);\r\n    } else {\r\n      await this.client.set(key, serialized);\r\n    }\r\n  }\r\n  \r\n  async delete(key: string): Promise<boolean> {\r\n    const result = await this.client.del(key);\r\n    return result > 0;\r\n  }\r\n  \r\n  async deletePattern(pattern: string): Promise<number> {\r\n    const keys = await this.client.keys(pattern);\r\n    if (keys.length === 0) return 0;\r\n    return this.client.del(...keys);\r\n  }\r\n  \r\n  async clear(): Promise<void> {\r\n    await this.client.flushdb();\r\n  }\r\n}\r\n\r\n// Use it\r\nconst cache = new Cache({\r\n  driver: new RedisDriver({ host: 'localhost', port: 6379 })\r\n});\r\n```\r\n\r\n## Requirements\r\n\r\n- **Node.js** >= 18.0.0\r\n\r\n## Documentation\r\n\r\nFor full documentation, visit [docs.teliagen.org](https://docs.teliagen.org).\r\n\r\n## License\r\n\r\nApache-2.0\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n  <strong>Part of <a href=\"https://github.com/teliagen/teliagen-framework\">Teliagen</a></strong>\r\n</p>\r\n","readmeFilename":"README.md"}