{"_id":"@anyq/core","_rev":"7-9dbc815f61809ba93e5041b13e6956ea","name":"@anyq/core","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@anyq/core","version":"0.1.0","keywords":["queue","message-queue","typescript","kafka","rabbitmq","sqs","redis","nats","pubsub"],"license":"MIT","_id":"@anyq/core@0.1.0","maintainers":[{"name":"sns45","email":"notifyshantanu@gmail.com"}],"homepage":"https://github.com/yourusername/anyq#readme","bugs":{"url":"https://github.com/yourusername/anyq/issues"},"dist":{"shasum":"bbe4cbcb31c3729c397d94fc97f42484d82aee1b","tarball":"https://registry.npmjs.org/@anyq/core/-/core-0.1.0.tgz","fileCount":40,"integrity":"sha512-VJNrHqab/9NbWReHPXVnckBkdrPStn94SD6LC2gHbIAgqkxOH/7peoNwoQ9vZooPP+u3hotdW6RI58yLxfkoAw==","signatures":[{"sig":"MEQCIEJcB69VQo2+C0T3x1U/VIyZBsa5hsDQefBNLYYKUsyUAiBC+0/DJO0FCl3OvofryVtuKJT4ZIw5zFb4ClCbgpN5Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93707},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js"},"./serialization":{"types":"./dist/serialization/index.d.ts","import":"./dist/serialization/index.js"}},"gitHead":"1210b51fe4a55144ebf5bc798db0732b4c89ddba","scripts":{"dev":"bun build ./src/index.ts --outdir ./dist --target bun --watch","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun && bun run build:types","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:types":"tsc --emitDeclarationOnly --outDir dist"},"_npmUser":{"name":"sns45","email":"notifyshantanu@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/anyq.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.2","description":"Core interfaces and utilities for anyq - Universal Queue Library","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1765990882495_0.05371506391956027","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anyq/core","version":"0.1.1","keywords":["queue","message-queue","typescript","kafka","rabbitmq","sqs","redis","nats","pubsub"],"license":"MIT","_id":"@anyq/core@0.1.1","maintainers":[{"name":"sns45","email":"notifyshantanu@gmail.com"}],"homepage":"https://github.com/sns45/anyq#readme","bugs":{"url":"https://github.com/sns45/anyq/issues"},"dist":{"shasum":"8f173dcf66df1bcd98133b695efe92785b70e7a5","tarball":"https://registry.npmjs.org/@anyq/core/-/core-0.1.1.tgz","fileCount":41,"integrity":"sha512-87K7whNMwvJ+WQEYyIpeysprh8ygRmXu5npBOX6Hbj3vF6ZF4ZyZpTQpEs3MvzHpYbowxKqMf6ln9YMhLtegRA==","signatures":[{"sig":"MEQCHyMAZA1pWtmhy/GwgmL1aIw+2me0yKCxORUyNd170c0CIQC0bTxCSiP3ujkGfvnfHnHEy8cuZHFfCCXlnmO0Aakc0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95996},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js"},"./serialization":{"types":"./dist/serialization/index.d.ts","import":"./dist/serialization/index.js"}},"gitHead":"30128d564178a5a1d25b736b605bf69644178a0f","scripts":{"dev":"bun build ./src/index.ts --outdir ./dist --target bun --watch","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun && bun run build:types","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:types":"tsc --emitDeclarationOnly --outDir dist"},"_npmUser":{"name":"sns45","email":"notifyshantanu@gmail.com"},"repository":{"url":"git+https://github.com/sns45/anyq.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.2","description":"Core interfaces and utilities for anyq - Universal Queue Library","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.1_1765991297852_0.889040093092754","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@anyq/core","version":"0.3.0","keywords":["queue","message-queue","typescript","kafka","rabbitmq","sqs","redis","nats","pubsub"],"author":"Shantanu Sharma","license":"MIT","_id":"@anyq/core@0.3.0","maintainers":[{"name":"sns45","email":"notifyshantanu@gmail.com"}],"homepage":"https://github.com/sns45/anyq#readme","bugs":{"url":"https://github.com/sns45/anyq/issues"},"dist":{"shasum":"3c244d0316e64db443cf8f663c54d6c2768aa66b","tarball":"https://registry.npmjs.org/@anyq/core/-/core-0.3.0.tgz","fileCount":47,"integrity":"sha512-Y1/Y198jVrf5RncmhCHS/8kmDt76klThFf2PDhVxgyB9xcFt3uhHbRnwhHZE06wi05daU1pq7e9XBRKnFpjX0g==","signatures":[{"sig":"MEUCIHT9jKYHkKfQ6dsjqiH7i7wbE9PrwOlq5jEq6Q28lYEQAiEA0Ea4X+sbM0//2b2szrc2TLStsYY5dO+0fpfHM07upnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118634},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"3c244d0316e64db443cf8f663c54d6c2768aa66b","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js"},"./serialization":{"types":"./dist/serialization/index.d.ts","import":"./dist/serialization/index.js"}},"scripts":{"dev":"bun build ./src/index.ts --outdir ./dist --target bun --watch","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun && bun run build:types","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:types":"tsc --emitDeclarationOnly --outDir dist"},"_npmUser":{"name":"sns45","email":"notifyshantanu@gmail.com"},"_integrity":"sha512-Y1/Y198jVrf5RncmhCHS/8kmDt76klThFf2PDhVxgyB9xcFt3uhHbRnwhHZE06wi05daU1pq7e9XBRKnFpjX0g==","repository":{"url":"https://github.com/sns45/anyq","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Core interfaces and utilities for anyq - Universal Queue Library","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0_1781961965693_0.9135266668899462","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@anyq/core","version":"0.3.1","keywords":["queue","message-queue","typescript","kafka","rabbitmq","sqs","redis","nats","pubsub"],"author":"Shantanu Sharma","license":"MIT","_id":"@anyq/core@0.3.1","maintainers":[{"name":"sns45","email":"notifyshantanu@gmail.com"}],"homepage":"https://github.com/sns45/anyq#readme","bugs":{"url":"https://github.com/sns45/anyq/issues"},"dist":{"shasum":"52dd8405a40132e17171219d5702a9fbf2e5c0f6","tarball":"https://registry.npmjs.org/@anyq/core/-/core-0.3.1.tgz","fileCount":47,"integrity":"sha512-2SRknlIT82KzwJSngHJpjY1wpP3aY8Tjk8L0FgPp7kfn3rlvmXSA9C00CEjlk4OAL0YvB2kqzfbSWjROk6g8ug==","signatures":[{"sig":"MEQCIFUE8hOjaQO1B68nUf7nuC0CCaQ6xffuoPR3XeviB0KCAiBiRdM/nphQY8Lvl36LiA+z/vB/4gHXSFqVB2N9ykA1Cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124871},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"52dd8405a40132e17171219d5702a9fbf2e5c0f6","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js"},"./serialization":{"types":"./dist/serialization/index.d.ts","import":"./dist/serialization/index.js"}},"scripts":{"dev":"bun build ./src/index.ts --outdir ./dist --target bun --watch","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun && bun run build:types","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:types":"tsc --emitDeclarationOnly --outDir dist"},"_npmUser":{"name":"sns45","email":"notifyshantanu@gmail.com"},"_integrity":"sha512-2SRknlIT82KzwJSngHJpjY1wpP3aY8Tjk8L0FgPp7kfn3rlvmXSA9C00CEjlk4OAL0YvB2kqzfbSWjROk6g8ug==","repository":{"url":"https://github.com/sns45/anyq","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Core interfaces and utilities for anyq - Universal Queue Library","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.1_1782054590944_0.6266920420468924","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@anyq/core","version":"0.3.2","keywords":["queue","message-queue","typescript","kafka","rabbitmq","sqs","redis","nats","pubsub"],"author":"Shantanu Sharma","license":"MIT","_id":"@anyq/core@0.3.2","maintainers":[{"name":"sns45","email":"notifyshantanu@gmail.com"}],"homepage":"https://github.com/sns45/anyq#readme","bugs":{"url":"https://github.com/sns45/anyq/issues"},"dist":{"shasum":"11c8b82384bbf663e842a2d508b2371121e897bc","tarball":"https://registry.npmjs.org/@anyq/core/-/core-0.3.2.tgz","fileCount":47,"integrity":"sha512-79AX+4kGMM65rqgfHHQBOxm/6bXlQCjUt2gd9fUU3jCTI+7jRjthJZsVVEyHVbJomRmIc/mOfzLzY7iOse6mBA==","signatures":[{"sig":"MEQCICxlzVErFE4m/H+P7+sHmHWnVHvZriC4noh6XrxBk3CJAiAS46FdHB4tqgW3Of5eSzAjDPPWnbzeWszYQCsVZCXm6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125497},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"11c8b82384bbf663e842a2d508b2371121e897bc","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js"},"./serialization":{"types":"./dist/serialization/index.d.ts","import":"./dist/serialization/index.js"}},"scripts":{"dev":"bun build ./src/index.ts --outdir ./dist --target bun --watch","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun && bun run build:types","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:types":"tsc --emitDeclarationOnly --outDir dist"},"_npmUser":{"name":"sns45","email":"notifyshantanu@gmail.com"},"_integrity":"sha512-79AX+4kGMM65rqgfHHQBOxm/6bXlQCjUt2gd9fUU3jCTI+7jRjthJZsVVEyHVbJomRmIc/mOfzLzY7iOse6mBA==","repository":{"url":"https://github.com/sns45/anyq","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Core interfaces and utilities for anyq - Universal Queue Library","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.2_1784910257154_0.5630542095256774","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@anyq/core","version":"0.4.0","keywords":["queue","message-queue","typescript","kafka","rabbitmq","sqs","redis","nats","pubsub"],"author":"Shantanu Sharma","license":"Apache-2.0","_id":"@anyq/core@0.4.0","maintainers":[{"name":"sns45","email":"notifyshantanu@gmail.com"}],"homepage":"https://github.com/sns45/anyq#readme","bugs":{"url":"https://github.com/sns45/anyq/issues"},"dist":{"shasum":"ddca364b28d4de9dd67c70a88fe83e8eb3a65719","tarball":"https://registry.npmjs.org/@anyq/core/-/core-0.4.0.tgz","fileCount":49,"integrity":"sha512-4IJ6nBXyTA8xGfH7JcqEb+hzDe3YiG1iFaFSZFiM2OeTYy5aS87u/G4ZeLWGFLrrHqsttvNB/QBGhsP06cizBg==","signatures":[{"sig":"MEUCIQD4t0asDHBDxFR1TG/YYePQZocp1LVC71tropIP2pPXygIgTaneED16IhAi6rT6lrT37ByBdfILUuwtVPJiFrvEbpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137515},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"ddca364b28d4de9dd67c70a88fe83e8eb3a65719","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js"},"./serialization":{"types":"./dist/serialization/index.d.ts","import":"./dist/serialization/index.js"}},"scripts":{"dev":"bun build ./src/index.ts --outdir ./dist --target bun --watch","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun && bun run build:types","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:types":"tsc --emitDeclarationOnly --outDir dist"},"_npmUser":{"name":"sns45","email":"notifyshantanu@gmail.com"},"_integrity":"sha512-4IJ6nBXyTA8xGfH7JcqEb+hzDe3YiG1iFaFSZFiM2OeTYy5aS87u/G4ZeLWGFLrrHqsttvNB/QBGhsP06cizBg==","repository":{"url":"https://github.com/sns45/anyq","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Core interfaces and utilities for anyq - Universal Queue Library","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.4.0_1787860559875_0.8393717749351997","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@anyq/core","version":"0.5.0","description":"Core interfaces and utilities for anyq - Universal Queue Library","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./types":{"import":"./dist/types/index.js","types":"./dist/types/index.d.ts"},"./middleware":{"import":"./dist/middleware/index.js","types":"./dist/middleware/index.d.ts"},"./serialization":{"import":"./dist/serialization/index.js","types":"./dist/serialization/index.d.ts"},"./utils":{"import":"./dist/utils/index.js","types":"./dist/utils/index.d.ts"}},"scripts":{"build":"bun build ./src/index.ts --outdir ./dist --target bun && bun run build:types","build:types":"tsc --emitDeclarationOnly --outDir dist","dev":"bun build ./src/index.ts --outdir ./dist --target bun --watch","test":"bun test","test:watch":"bun test --watch","typecheck":"tsc --noEmit","clean":"rm -rf dist coverage"},"peerDependencies":{"typescript":"^5.0.0"},"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0"},"keywords":["queue","message-queue","typescript","kafka","rabbitmq","sqs","redis","nats","pubsub"],"license":"Apache-2.0","author":"Shantanu Sharma","repository":{"type":"git","url":"https://github.com/sns45/anyq","directory":"packages/core"},"homepage":"https://github.com/sns45/anyq#readme","bugs":{"url":"https://github.com/sns45/anyq/issues"},"publishConfig":{"access":"public"},"_id":"@anyq/core@0.5.0","_integrity":"sha512-XM+YLdA8kRj35Wplo3DAy8Fwnwdmneolt9VSEIC+U/TCk860qPebGvaYMAsddNFL2UftWKOrGETHYiLoh1+KXQ==","_nodeVersion":"26.3.0","_npmVersion":"10.8.3","shasum":"dc0c17ae138606eba8fc96e25f93fa760343adba","dist":{"integrity":"sha512-XM+YLdA8kRj35Wplo3DAy8Fwnwdmneolt9VSEIC+U/TCk860qPebGvaYMAsddNFL2UftWKOrGETHYiLoh1+KXQ==","shasum":"dc0c17ae138606eba8fc96e25f93fa760343adba","tarball":"https://registry.npmjs.org/@anyq/core/-/core-0.5.0.tgz","fileCount":49,"unpackedSize":138391,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCoLHs8oqJihNaBCxGL0ZU5ggSfMElbUAH5Noie/4T8YAIgWHCZvzCwChksQ0Ggg8FjeEUNgIK1USPPiQwMfzVnNT8="}]},"_npmUser":{"name":"sns45","email":"notifyshantanu@gmail.com"},"directories":{},"maintainers":[{"name":"sns45","email":"notifyshantanu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.5.0_1788808986035_0.8183172793682543"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-17T17:01:22.403Z","modified":"2026-09-07T19:23:06.344Z","0.1.0":"2025-12-17T17:01:22.655Z","0.1.1":"2025-12-17T17:08:17.993Z","0.3.0":"2026-06-20T13:26:05.824Z","0.3.1":"2026-06-21T15:09:51.067Z","0.3.2":"2026-07-24T16:24:17.317Z","0.4.0":"2026-08-27T19:56:00.039Z","0.5.0":"2026-09-07T19:23:06.177Z"},"bugs":{"url":"https://github.com/sns45/anyq/issues"},"author":"Shantanu Sharma","license":"Apache-2.0","homepage":"https://github.com/sns45/anyq#readme","keywords":["queue","message-queue","typescript","kafka","rabbitmq","sqs","redis","nats","pubsub"],"repository":{"type":"git","url":"https://github.com/sns45/anyq","directory":"packages/core"},"description":"Core interfaces and utilities for anyq - Universal Queue Library","maintainers":[{"name":"sns45","email":"notifyshantanu@gmail.com"}],"readme":"# @anyq/core\n\nCore interfaces and utilities for **anyq** - a Universal Message Queue Library.\n\n## Installation\n\n```bash\nnpm install @anyq/core\n```\n\n## Overview\n\nThis package provides the foundational types, interfaces, and utilities used by all anyq adapters:\n\n- **IProducer** - Interface for publishing messages\n- **IConsumer** - Interface for consuming messages\n- **IMessage** - Standard message format across all adapters\n- **Middleware** - Circuit breaker, retry with exponential backoff\n- **Serialization** - JSON serializer with schema support\n\n## Usage\n\n```typescript\nimport {\n  IProducer,\n  IConsumer,\n  IMessage,\n  CircuitBreaker,\n  RetryWithBackoff,\n  JsonSerializer\n} from '@anyq/core';\n```\n\n## Interfaces\n\n### IProducer\n\n```typescript\ninterface IProducer<T = unknown> {\n  publish(message: T, options?: PublishOptions): Promise<PublishResult>;\n  publishBatch(messages: T[], options?: PublishOptions): Promise<PublishResult[]>;\n  connect(): Promise<void>;\n  disconnect(): Promise<void>;\n}\n```\n\n### IConsumer\n\n```typescript\ninterface IConsumer<T = unknown> {\n  subscribe(handler: MessageHandler<T>, options?: SubscribeOptions): Promise<void>;\n  unsubscribe(): Promise<void>;\n  connect(): Promise<void>;\n  disconnect(): Promise<void>;\n}\n```\n\n### IMessage\n\n```typescript\ninterface IMessage<T = unknown> {\n  id: string;\n  data: T;\n  timestamp: Date;\n  headers?: Record<string, string>;\n  ack(): Promise<void>;\n  nack(requeue?: boolean): Promise<void>;\n  extend?(seconds: number): Promise<void>;\n}\n```\n\n## Retry Strategies (0.3.0)\n\nPluggable, per-message error handling for consumers. A `RetryStrategy` maps an `(error, message, attempt)` triple to a decision: `ack`, `retry`, `requeue`, `deadLetter`, `park`, or `fail`. The feature is **opt-in**: when no `strategy` is set on the queue config, every adapter keeps its existing catch-block behavior byte-for-byte.\n\n```typescript\nimport {\n  retryThenDeadLetter,\n  logAndSkip,\n  deadLetterImmediate,\n  backpressurePause,\n  custom,\n} from '@anyq/core';\n\nconst consumer = new MemoryConsumer({\n  driver: 'memory',\n  queueName: 'orders',\n  // Retry retryable errors with backoff; dead-letter after maxAttempts.\n  strategy: retryThenDeadLetter({ maxAttempts: 5 }),\n});\n```\n\nBuilt-in factories:\n\n- `retryThenDeadLetter({ maxAttempts?, backoff?, isRetryable? })` -- retry transient infrastructure failures in-process, dead-letter the rest.\n- `deadLetterImmediate()` -- poison messages; no retry.\n- `logAndSkip()` / `logAndFail()` -- ack-and-drop or crash the consumer loop.\n- `backpressurePause({ pauseMs?, isRateLimited? })` -- on rate/quota errors, pause the consumer and resume after a delay.\n- `custom(name, fn)` -- wrap any `(ctx) => RetryDecision` function.\n\nAdapters that natively support delayed redelivery (memory, sqs, nats) honor the `park` action via their broker primitives (setTimeout re-enqueue, SQS `DelaySeconds`, NATS `nak(delay)`). On adapters without native delay, `park` downgrades to in-process retry with a warning.\n\n> Note: future minor versions may add new `RetryDecision` variants. Custom strategies that switch on `decision.action` should include a `default` branch.\n\n## Adapters\n\nUse @anyq/core with these adapters:\n\n- [@anyq/memory](https://www.npmjs.com/package/@anyq/memory) - In-memory (testing)\n- [@anyq/redis-streams](https://www.npmjs.com/package/@anyq/redis-streams) - Redis Streams\n- [@anyq/rabbitmq](https://www.npmjs.com/package/@anyq/rabbitmq) - RabbitMQ\n- [@anyq/sqs](https://www.npmjs.com/package/@anyq/sqs) - AWS SQS\n- [@anyq/sns](https://www.npmjs.com/package/@anyq/sns) - AWS SNS\n- [@anyq/kafka](https://www.npmjs.com/package/@anyq/kafka) - Apache Kafka\n- [@anyq/nats](https://www.npmjs.com/package/@anyq/nats) - NATS JetStream\n- [@anyq/google-pubsub](https://www.npmjs.com/package/@anyq/google-pubsub) - Google Pub/Sub\n- [@anyq/azure-servicebus](https://www.npmjs.com/package/@anyq/azure-servicebus) - Azure Service Bus\n\n## License\n\nApache License 2.0. See [LICENSE](https://github.com/sns45/anyq/blob/main/LICENSE).\n","readmeFilename":"README.md"}