{"_id":"@agnostic-cloud/pubsub","_rev":"4-c57554eab1bb7b1a29af4d6683c2e16d","name":"@agnostic-cloud/pubsub","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@agnostic-cloud/pubsub","version":"0.1.0","_id":"@agnostic-cloud/pubsub@0.1.0","maintainers":[{"name":"develasquez","email":"felipe.velasquezc@gmail.com"}],"dist":{"shasum":"fb2190e5306a40d0d4989def67e71fbac1e083b0","tarball":"https://registry.npmjs.org/@agnostic-cloud/pubsub/-/pubsub-0.1.0.tgz","fileCount":7,"integrity":"sha512-GRTpoBUzF1p6HUYMY1u3mR4LtXXh9hvBjcPnaEl40OO0Ux9d+02F9uJ15aFpLU2kqjWo2yO47tzoI4UXBiSBOg==","signatures":[{"sig":"MEUCIQDBB1Gn4+oKl/rR7BfWjL2771BAfibRuLiAun+ssO/SLgIgb+R0l8pxbvSmIRdt2oixl3Pkj3mwdqDoSCdxQIy8yRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65980},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":"^22.18.0 || ^24.0.0 || >=26.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs","publishConfig":{"access":"public"}}},"gitHead":"3c191069ba3e97bd0589ca68299bc731e947fb7e","scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"develasquez","email":"felipe.velasquezc@gmail.com"},"_npmVersion":"10.8.2","description":"Unified pub/sub interface for AWS SNS/SQS, GCP Pub/Sub, and Azure Event Grid/Event Hubs/Service Bus","directories":{},"_nodeVersion":"20.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0"},"peerDependencies":{"@azure/eventgrid":"^4.0.0","@azure/event-hubs":"^5.0.0","@azure/service-bus":"^7.0.0","@aws-sdk/client-sns":"^3.500.0","@aws-sdk/client-sqs":"^3.500.0","@google-cloud/pubsub":"^4.0.0"},"peerDependenciesMeta":{"@azure/eventgrid":{"optional":true},"@azure/event-hubs":{"optional":true},"@azure/service-bus":{"optional":true},"@aws-sdk/client-sns":{"optional":true},"@aws-sdk/client-sqs":{"optional":true},"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pubsub_0.1.0_1785135696425_0.47147028310760675","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@agnostic-cloud/pubsub","version":"0.1.1","_id":"@agnostic-cloud/pubsub@0.1.1","maintainers":[{"name":"develasquez","email":"felipe.velasquezc@gmail.com"}],"dist":{"shasum":"7f6b6a1985cfc22f27ebb3d6a1bd925e49a7dd53","tarball":"https://registry.npmjs.org/@agnostic-cloud/pubsub/-/pubsub-0.1.1.tgz","fileCount":8,"integrity":"sha512-GiKrO9h40FpioSUgiPnOwt/DDBNYvxis422oGV6ET1fQQ5r4U7i6zVdK2yN5De3+kWQUkie3hW11Pm1mJoxCtg==","signatures":[{"sig":"MEYCIQCaPF4KfQw7cA+4sP1m8LWfPjnqelybaAcgzD/DNT3pcAIhAMPMsM2LwM8YYT7u60TlDUxCdirjGwIy7MfcTopmEcgX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67412},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":"^22.18.0 || ^24.0.0 || >=26.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs","publishConfig":{"access":"public"}}},"gitHead":"7a8e53c29d14a9846f171645fc11820203807df9","scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"develasquez","email":"felipe.velasquezc@gmail.com"},"_npmVersion":"10.8.2","description":"Unified pub/sub interface for AWS SNS/SQS, GCP Pub/Sub, and Azure Event Grid/Event Hubs/Service Bus","directories":{},"_nodeVersion":"20.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0"},"peerDependencies":{"@azure/eventgrid":"^4.0.0","@azure/event-hubs":"^5.0.0","@azure/service-bus":"^7.0.0","@aws-sdk/client-sns":"^3.500.0","@aws-sdk/client-sqs":"^3.500.0","@google-cloud/pubsub":"^4.0.0"},"peerDependenciesMeta":{"@azure/eventgrid":{"optional":true},"@azure/event-hubs":{"optional":true},"@azure/service-bus":{"optional":true},"@aws-sdk/client-sns":{"optional":true},"@aws-sdk/client-sqs":{"optional":true},"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pubsub_0.1.1_1785136436284_0.4045002932611883","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@agnostic-cloud/pubsub","version":"0.1.2","_id":"@agnostic-cloud/pubsub@0.1.2","maintainers":[{"name":"develasquez","email":"felipe.velasquezc@gmail.com"}],"dist":{"shasum":"57d571d93ee0f20a19d3a0c869763dbb7bcf4fc2","tarball":"https://registry.npmjs.org/@agnostic-cloud/pubsub/-/pubsub-0.1.2.tgz","fileCount":8,"integrity":"sha512-RKxnHZrArG3aAIJ7pLXtgFa3XtTUCS0rHc58CfQqzeJYR9zpLcyCT4/UGldiycFSDzRWHe1XnblEeafL/U73mA==","signatures":[{"sig":"MEUCIQCAWo605B5FVSsLMdU5E8mMozvuVlLeKcom/EwXl/JgNAIgbKhrLt1qEbQzoJnlSOGa2MhIgc/9AbQm/neNpqdMvAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68306},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":"^22.18.0 || ^24.0.0 || >=26.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"191848009dc0a86d60b9ccb2df9dccbb61d30132","scripts":{"test":"vitest run","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"develasquez","email":"felipe.velasquezc@gmail.com"},"_npmVersion":"10.8.2","description":"Unified pub/sub interface for AWS SNS/SQS, GCP Pub/Sub, and Azure Event Grid/Event Hubs/Service Bus","directories":{},"_nodeVersion":"20.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0"},"peerDependencies":{"@azure/identity":"^4.13.1","@azure/eventgrid":"^4.15.0","@azure/event-hubs":"^5.12.2","@azure/service-bus":"^7.9.5","@aws-sdk/client-sns":"^3.1095.0","@aws-sdk/client-sqs":"^3.1095.0","@google-cloud/pubsub":"^4.11.0"},"peerDependenciesMeta":{"@azure/identity":{"optional":true},"@azure/eventgrid":{"optional":true},"@azure/event-hubs":{"optional":true},"@azure/service-bus":{"optional":true},"@aws-sdk/client-sns":{"optional":true},"@aws-sdk/client-sqs":{"optional":true},"@google-cloud/pubsub":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pubsub_0.1.2_1785506349841_0.1369372125269186","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agnostic-cloud/pubsub","version":"0.2.0","description":"Unified pub/sub interface for AWS SNS/SQS, GCP Pub/Sub, and Azure Event Grid/Event Hubs/Service Bus","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","publishConfig":{"access":"public"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup","test":"vitest run","coverage":"vitest run --coverage","typecheck":"tsc --noEmit"},"peerDependencies":{"@aws-sdk/client-sns":"^3.1095.0","@aws-sdk/client-sqs":"^3.1095.0","@azure/event-hubs":"^5.12.2","@azure/eventgrid":"^4.15.0","@azure/identity":"^4.13.1","@azure/service-bus":"^7.9.5","@google-cloud/pubsub":"^4.11.0","oci-sdk":"^2.137.0"},"peerDependenciesMeta":{"@aws-sdk/client-sns":{"optional":true},"@aws-sdk/client-sqs":{"optional":true},"@azure/event-hubs":{"optional":true},"@azure/eventgrid":{"optional":true},"@azure/identity":{"optional":true},"@azure/service-bus":{"optional":true},"@google-cloud/pubsub":{"optional":true},"oci-sdk":{"optional":true}},"devDependencies":{"tsup":"^8.0.0","typescript":"^5.5.0","vitest":"^2.0.0"},"engines":{"node":"^22.18.0 || ^24.0.0 || >=26.0.0"},"_id":"@agnostic-cloud/pubsub@0.2.0","gitHead":"046c4a83bfa6f8bab917a769ff894a4a7eb8df94","_nodeVersion":"20.18.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Vrnsj2DwBftbSRbDF894Fl/lVIKgp+6ny9kd3tldjyUdmDXVuYTf9czsmrqc49oZAR2wXnDfQQdeYSLykZG4ag==","shasum":"4b2a19d0222056ec8ea674d6d58007daf17c89e2","tarball":"https://registry.npmjs.org/@agnostic-cloud/pubsub/-/pubsub-0.2.0.tgz","fileCount":8,"unpackedSize":68380,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHGxRY+/MX6og3ZbGv9Wo+hoIJ3UtmtlnSoznFqhPdf8AiEAl4aEP+ZllJn+DDKTKbXwKuWR7WyoNcqX4rt3IhE/nyA="}]},"_npmUser":{"name":"develasquez","email":"felipe.velasquezc@gmail.com"},"directories":{},"maintainers":[{"name":"develasquez","email":"felipe.velasquezc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pubsub_0.2.0_1785539428870_0.6845255334207228"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-27T07:01:36.203Z","modified":"2026-07-31T23:10:29.202Z","0.1.0":"2026-07-27T07:01:36.804Z","0.1.1":"2026-07-27T07:13:56.434Z","0.1.2":"2026-07-31T13:59:09.997Z","0.2.0":"2026-07-31T23:10:29.019Z"},"description":"Unified pub/sub interface for AWS SNS/SQS, GCP Pub/Sub, and Azure Event Grid/Event Hubs/Service Bus","maintainers":[{"name":"develasquez","email":"felipe.velasquezc@gmail.com"}],"readme":"# @agnostic-cloud/pubsub\n\nUnified pub/sub messaging for AWS SNS/SQS, GCP Pub/Sub, and Azure Service Bus.\n\n## Installation\n\n```bash\nnpm install @agnostic-cloud/pubsub\n```\n\n> **Note on Peer Dependencies**: Provider SDKs are optional peer dependencies. You only need to install the SDK for the cloud provider(s) you use.\n\n### Supported Cloud Provider SDK Versions\n\n| Cloud Provider | Required SDK Package | Current / Tested Version | Installation Command |\n|---|---|---|---|\n| **AWS** | `@aws-sdk/client-sns`<br/>`@aws-sdk/client-sqs` | `^3.1095.0`<br/>`^3.1095.0` | `npm install @aws-sdk/client-sns @aws-sdk/client-sqs` |\n| **GCP** | `@google-cloud/pubsub` | `^4.11.0` | `npm install @google-cloud/pubsub` |\n| **Azure** | `@azure/service-bus`<br/>`@azure/eventgrid`<br/>`@azure/event-hubs`<br/>`@azure/identity` | `^7.9.5`<br/>`^4.15.0`<br/>`^5.12.2`<br/>`^4.13.1` | `npm install @azure/service-bus @azure/eventgrid @azure/event-hubs @azure/identity` |\n\n## Usage\n\n```typescript\nimport { createPubSub } from '@agnostic-cloud/pubsub'\n\nconst pubsub = createPubSub({\n  cloud: 'gcp',\n  region: 'us-central1',\n})\n\n// Publish\nconst result = await pubsub.publish('my-topic', {\n  data: Buffer.from('hello world'),\n  attributes: { source: 'api' },\n})\n\n// Subscribe\nconst subscription = await pubsub.subscribe('my-topic', async (message) => {\n  console.log('Received:', message.data.toString())\n  await pubsub.acknowledge(subscription, message)\n})\n\n// Later: unsubscribe\nawait subscription.unsubscribe()\n```\n\n## API\n\n### `createPubSub(config: PubSubConfig): PubSubStrategy`\n\n| Method | Signature |\n|--------|-----------|\n| `publish` | `(topic, message) => Promise<PublishResult>` |\n| `subscribe` | `(topic, handler, options?) => Promise<Subscription>` |\n| `acknowledge` | `(subscription, message) => Promise<void>` |\n\n## Configuration\n\n```typescript\ninterface PubSubConfig {\n  cloud?: 'aws' | 'gcp' | 'azure'\n  region?: string\n  config?: Record<string, any>\n  azureService?: 'event-grid' | 'event-hubs' | 'service-bus'\n}\n```\n\n## Documentation\n\nFull docs: https://develasquez.github.io/-agnostic-cloud/docs/next/packages/pubsub\n\nAPI reference: https://develasquez.github.io/-agnostic-cloud/docs/next/api/@agnostic-cloud/pubsub\n","readmeFilename":"README.md"}