{"_id":"@ai-workflow-pack/adapters","_rev":"2-a176317f9d7b1469c3949044865f2614","name":"@ai-workflow-pack/adapters","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@ai-workflow-pack/adapters","version":"1.0.0","keywords":["ai-workflow-pack","adapters","database","cache","queue","storage"],"author":{"name":"AI Workflow Team"},"license":"MIT","_id":"@ai-workflow-pack/adapters@1.0.0","maintainers":[{"name":"sampath1983jan","email":"sampath1983jan@gmail.com"}],"homepage":"https://github.com/ai-workflow-platform/ai-workflow-shared-adapters#readme","bugs":{"url":"https://github.com/ai-workflow-platform/ai-workflow-shared-adapters/issues"},"dist":{"shasum":"9c2271c5d58b7827329c3628374a7bef8aeacdeb","tarball":"https://registry.npmjs.org/@ai-workflow-pack/adapters/-/adapters-1.0.0.tgz","fileCount":64,"integrity":"sha512-58TX8MzMRmekwWW7y916V7rXGy9mOUDHnn+HMNRrqRVYxYWPmNan6w716Q6qzLLlY4+3w8bnquUQ3pYWqxODqQ==","signatures":[{"sig":"MEUCIQCS+w1WEFEiuS6VCbSmqqd3Q2RlYg4m9GJKCj/pOxTa/gIgJQWAYGyZSb2JNEEttJTqXD+VRKfiWymLj6zGF1QIpow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":427721},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"205c2f32c71ddb44c2ca54a25c239d7a4d98d535","scripts":{"lint":"eslint \"{src,tests}/**/*.ts\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint \"{src,tests}/**/*.ts\" --fix","test:cov":"jest --coverage","test:watch":"jest --watch","build:watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"sampath1983jan","email":"sampath1983jan@gmail.com"},"repository":{"url":"git+https://github.com/ai-workflow-platform/ai-workflow-shared-adapters.git","type":"git"},"_npmVersion":"11.6.2","description":"Infrastructure adapters (database, cache, queue, storage) for AI Workflow services","directories":{},"_nodeVersion":"24.11.1","dependencies":{"redis":"^4.6.0","amqplib":"^0.10.3","ioredis":"^5.3.0","kafkajs":"^2.2.4","mongodb":"^6.0.0","typeorm":"^0.3.0","sequelize":"^6.0.0","@aws-sdk/client-s3":"^3.450.0","@aws-sdk/client-sqs":"^3.450.0","@azure/storage-blob":"^12.17.0","@aws-sdk/s3-request-presigner":"^3.943.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","prettier":"^3.0.0","typescript":"^5.1.3","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/amqplib":"^0.10.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"mongodb":"^6.0.0","typeorm":"^0.3.0","sequelize":"^6.0.0"},"peerDependenciesMeta":{"mongodb":{"optional":true},"typeorm":{"optional":true},"sequelize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/adapters_1.0.0_1764965442798_0.18790249067991893","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@ai-workflow-pack/adapters","version":"1.0.1","description":"Infrastructure adapters (database, cache, queue, storage) for AI Workflow services","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watch","test:cov":"jest --coverage","lint":"eslint \"{src,tests}/**/*.ts\"","lint:fix":"eslint \"{src,tests}/**/*.ts\" --fix","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","prepublishOnly":"npm run build"},"keywords":["ai-workflow-pack","adapters","database","cache","queue","storage"],"author":{"name":"AI Workflow Team"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ai-workflow-platform/ai-workflow-shared-adapters.git"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"dependencies":{"@aws-sdk/client-s3":"^3.450.0","@aws-sdk/client-sqs":"^3.450.0","@aws-sdk/s3-request-presigner":"^3.943.0","@azure/storage-blob":"^12.17.0","amqplib":"^0.10.3","ioredis":"^5.3.0","kafkajs":"^2.2.4","mongodb":"^6.0.0","nats":"^2.16.0","redis":"^4.6.0","sequelize":"^6.0.0","typeorm":"^0.3.0"},"devDependencies":{"@types/amqplib":"^0.10.4","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.42.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","jest":"^29.5.0","prettier":"^3.0.0","ts-jest":"^29.1.0","typescript":"^5.1.3"},"peerDependencies":{"mongodb":"^6.0.0","sequelize":"^6.0.0","typeorm":"^0.3.0"},"peerDependenciesMeta":{"typeorm":{"optional":true},"sequelize":{"optional":true},"mongodb":{"optional":true}},"engines":{"node":">=18.0.0","npm":">=9.0.0"},"gitHead":"b81957b1d40c3caae53e01dbfeaf618ddfeb561b","_id":"@ai-workflow-pack/adapters@1.0.1","bugs":{"url":"https://github.com/ai-workflow-platform/ai-workflow-shared-adapters/issues"},"homepage":"https://github.com/ai-workflow-platform/ai-workflow-shared-adapters#readme","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-2/KRYE4vJnNk65M8CBJe0SjfAN0zZ7Eakefuldix/x4udk4womg5xIwCJWHsgnHF3biHHT3jNpC60PY1MjHrWw==","shasum":"8068545f11cbdde6508880094f670e880a20feea","tarball":"https://registry.npmjs.org/@ai-workflow-pack/adapters/-/adapters-1.0.1.tgz","fileCount":67,"unpackedSize":453146,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAwG4O0iiiDqVF312X1Nd2P0OefLO6zAi+csvVnwc188AiEAvdCSqPyUZESruzd2VLY3GIa1FAHBNIq7u5bll5S63+c="}]},"_npmUser":{"name":"sampath1983jan","email":"sampath1983jan@gmail.com"},"directories":{},"maintainers":[{"name":"sampath1983jan","email":"sampath1983jan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adapters_1.0.1_1765177757284_0.0194214822879053"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-05T20:10:42.560Z","modified":"2025-12-08T07:09:17.706Z","1.0.0":"2025-12-05T20:10:42.949Z","1.0.1":"2025-12-08T07:09:17.478Z"},"bugs":{"url":"https://github.com/ai-workflow-platform/ai-workflow-shared-adapters/issues"},"author":{"name":"AI Workflow Team"},"license":"MIT","homepage":"https://github.com/ai-workflow-platform/ai-workflow-shared-adapters#readme","keywords":["ai-workflow-pack","adapters","database","cache","queue","storage"],"repository":{"type":"git","url":"git+https://github.com/ai-workflow-platform/ai-workflow-shared-adapters.git"},"description":"Infrastructure adapters (database, cache, queue, storage) for AI Workflow services","maintainers":[{"name":"sampath1983jan","email":"sampath1983jan@gmail.com"}],"readme":"# @ai-workflow-pack/adapters\r\n\r\nInfrastructure adapters providing unified interfaces for databases, caching, queues, and storage across AI Workflow microservices.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @ai-workflow-pack/adapters\r\n```\r\n\r\n## Features\r\n\r\n- 🗄️ **Database Adapters**: TypeORM, Sequelize, MongoDB\r\n- ⚡ **Cache Adapters**: Redis, Memcached, In-Memory\r\n- 📬 **Queue Adapters**: RabbitMQ, Kafka, AWS SQS, **NATS**\r\n- 💾 **Storage Adapters**: AWS S3, Azure Blob, Local File System\r\n\r\n## Usage\r\n\r\n### Database Adapter\r\n\r\n```typescript\r\nimport { TypeORMAdapter, DatabaseConfig } from '@ai-workflow-pack/adapters';\r\n\r\nconst dbAdapter = new TypeORMAdapter({\r\n  type: 'postgres',\r\n  host: 'localhost',\r\n  port: 5432,\r\n  database: 'mydb',\r\n  username: 'user',\r\n  password: 'pass',\r\n});\r\n\r\nawait dbAdapter.connect();\r\nconst results = await dbAdapter.query('SELECT * FROM users');\r\nawait dbAdapter.disconnect();\r\n```\r\n\r\n### Cache Adapter\r\n\r\n```typescript\r\nimport { RedisAdapter } from '@ai-workflow-pack/adapters';\r\n\r\nconst cacheAdapter = new RedisAdapter({\r\n  host: 'localhost',\r\n  port: 6379,\r\n});\r\n\r\nawait cacheAdapter.set('key', 'value', 3600); // TTL in seconds\r\nconst value = await cacheAdapter.get('key');\r\nawait cacheAdapter.delete('key');\r\n```\r\n\r\n### Queue Adapter\r\n\r\n#### RabbitMQ\r\n```typescript\r\nimport { RabbitMQAdapter } from '@ai-workflow-pack/adapters';\r\n\r\nconst queueAdapter = new RabbitMQAdapter({\r\n  url: 'amqp://localhost:5672',\r\n});\r\n\r\nawait queueAdapter.connect();\r\nawait queueAdapter.publish('my-queue', { data: 'message' });\r\n\r\nawait queueAdapter.subscribe('my-queue', async (message) => {\r\n  console.log('Received:', message);\r\n});\r\n```\r\n\r\n#### NATS (Real-time Communication)\r\n```typescript\r\nimport { NatsAdapter } from '@ai-workflow-pack/adapters';\r\n\r\nconst natsAdapter = new NatsAdapter({\r\n  servers: 'nats://localhost:4222',\r\n});\r\n\r\nawait natsAdapter.connect();\r\n\r\n// Pub/Sub\r\nawait natsAdapter.publish('workflow.event', { workflowId: 123 });\r\nawait natsAdapter.subscribe('workflow.event', async (message) => {\r\n  console.log('Received:', message.data);\r\n});\r\n\r\n// Request-Reply\r\nawait natsAdapter.reply('workflow.status', async (data) => {\r\n  return { status: 'active' };\r\n});\r\nconst response = await natsAdapter.request('workflow.status', { workflowId: 123 });\r\n```\r\n\r\nSee [NATS_QUICK_START.md](./NATS_QUICK_START.md) for more details.\r\n\r\n### Storage Adapter\r\n\r\n```typescript\r\nimport { S3Adapter } from '@ai-workflow-pack/adapters';\r\n\r\nconst storageAdapter = new S3Adapter({\r\n  accessKeyId: 'key',\r\n  secretAccessKey: 'secret',\r\n  region: 'us-east-1',\r\n  bucket: 'my-bucket',\r\n});\r\n\r\nawait storageAdapter.upload('file.txt', buffer);\r\nconst file = await storageAdapter.download('file.txt');\r\nawait storageAdapter.delete('file.txt');\r\n```\r\n\r\n## Switching Implementations\r\n\r\nAll adapters implement common interfaces, making it easy to switch implementations:\r\n\r\n```typescript\r\n// Development: Use in-memory cache\r\nconst cache = new InMemoryCacheAdapter();\r\n\r\n// Production: Use Redis\r\nconst cache = new RedisAdapter({ host: 'redis', port: 6379 });\r\n\r\n// Same interface for both!\r\nawait cache.set('key', 'value');\r\nconst value = await cache.get('key');\r\n```\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}