{"_id":"@cueue/cloudflare-queues","_rev":"2-0850a269e1f1dfd6803e75d124a23e16","name":"@cueue/cloudflare-queues","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.0":{"name":"@cueue/cloudflare-queues","description":"","version":"0.0.0","author":{"name":"JacobLinCool","email":"jacoblincool@gmail.com","url":"https://jacoblin.cool"},"license":"MIT","keywords":[],"type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{"import":"./dist/index.js","require":"./dist/index.js","default":"./dist/index.js","types":"./dist/index.d.ts"},"dependencies":{"zod":"^3.22.4","@cueue/core":"^0.0.0"},"devDependencies":{"@cloudflare/workers-types":"^4.20231016.0","tsup":"^7.2.0","typedoc":"^0.25.2","typescript":"^5.2.2"},"peerDependencies":{"@cloudflare/workers-types":"*"},"repository":{"type":"git","url":"git+https://github.com/cueue-dev/cueue.git"},"bugs":{"url":"https://github.com/cueue-dev/cueue/issues"},"homepage":"https://cueue-dev.github.io/","scripts":{"build":"tsup","build:docs":"typedoc --out docs src"},"_id":"@cueue/cloudflare-queues@0.0.0","_integrity":"sha512-Xe/UL/MLDlJm08e7HMeadC1W3uwuG+GRDAG0fkyqyNymDwJsc9LkowGYzoWdXVhMvc5cJ38lQpastbYBf6vq/g==","_resolved":"/private/var/folders/lm/rm10hvfd0hx4h6m2nvyjwkpm0000gn/T/06700ccc788a43eed30494aea3976674/cueue-cloudflare-queues-0.0.0.tgz","_from":"file:cueue-cloudflare-queues-0.0.0.tgz","_nodeVersion":"20.8.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-Xe/UL/MLDlJm08e7HMeadC1W3uwuG+GRDAG0fkyqyNymDwJsc9LkowGYzoWdXVhMvc5cJ38lQpastbYBf6vq/g==","shasum":"30ca901224ae561897b56c1fd89604c30a2df198","tarball":"https://registry.npmjs.org/@cueue/cloudflare-queues/-/cloudflare-queues-0.0.0.tgz","fileCount":5,"unpackedSize":5234,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHj05H3ZjnjnwrcdLNuUwPrQcAyAXYqGXExNbg6Ab4USAiAk8ia769xLEPSMMxeF+N1Xmy4o5m/130mbJ+9FlSAdjw=="}]},"_npmUser":{"name":"jacoblincool","email":"jacoblincool@gmail.com"},"directories":{},"maintainers":[{"name":"jacoblincool","email":"jacoblincool@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cloudflare-queues_0.0.0_1697833260985_0.4260393274648575"},"_hasShrinkwrap":false},"0.0.1":{"name":"@cueue/cloudflare-queues","description":"## Example","version":"0.0.1","author":{"name":"JacobLinCool","email":"jacoblincool@gmail.com","url":"https://jacoblin.cool"},"license":"MIT","keywords":[],"type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{"import":"./dist/index.js","require":"./dist/index.js","default":"./dist/index.js","types":"./dist/index.d.ts"},"dependencies":{"zod":"^3.22.4","@cueue/core":"^0.0.1"},"devDependencies":{"@cloudflare/workers-types":"^4.20231016.0","tsup":"^7.2.0","typedoc":"^0.25.2","typescript":"^5.2.2"},"peerDependencies":{"@cloudflare/workers-types":"*"},"repository":{"type":"git","url":"git+https://github.com/cueue-dev/cueue.git"},"bugs":{"url":"https://github.com/cueue-dev/cueue/issues"},"homepage":"https://cueue-dev.github.io/","scripts":{"build":"tsup","build:docs":"typedoc --out docs src"},"_id":"@cueue/cloudflare-queues@0.0.1","_integrity":"sha512-QUPHzzLLeBUAbwmQByX2MizFbX+VpeXV+o0YxHOJDANstKOMLkGQ8FwpTpj2DXpDx7+5BneItAS/KaZPMLlNUQ==","_resolved":"/tmp/ff800cf605f3fc25a679ae03f81a59f6/cueue-cloudflare-queues-0.0.1.tgz","_from":"file:cueue-cloudflare-queues-0.0.1.tgz","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-QUPHzzLLeBUAbwmQByX2MizFbX+VpeXV+o0YxHOJDANstKOMLkGQ8FwpTpj2DXpDx7+5BneItAS/KaZPMLlNUQ==","shasum":"2656fd0aef75e8c3008f3191d2bbf08d3dd3e98c","tarball":"https://registry.npmjs.org/@cueue/cloudflare-queues/-/cloudflare-queues-0.0.1.tgz","fileCount":5,"unpackedSize":6863,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgPWdtcAU49vYYopNnJWDxNDqLLbwb8KzToefw+/6XrQIhAMsbUX89JEDYyAW4t+DsaojvUKeK6ox2lvqcSs3fb2Yv"}]},"_npmUser":{"name":"jacoblincool","email":"jacoblincool@gmail.com"},"directories":{},"maintainers":[{"name":"jacoblincool","email":"jacoblincool@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cloudflare-queues_0.0.1_1697913366438_0.692780455901695"},"_hasShrinkwrap":false},"0.0.2":{"name":"@cueue/cloudflare-queues","description":"## Example","version":"0.0.2","author":{"name":"JacobLinCool","email":"jacoblincool@gmail.com","url":"https://jacoblin.cool"},"license":"MIT","keywords":[],"type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{"import":"./dist/index.js","require":"./dist/index.js","default":"./dist/index.js","types":"./dist/index.d.ts"},"dependencies":{"zod":"^3.22.4","@cueue/core":"^0.0.2"},"devDependencies":{"@cloudflare/workers-types":"^4.20231016.0","tsup":"^7.2.0","typedoc":"^0.25.2","typescript":"^5.2.2"},"peerDependencies":{"@cloudflare/workers-types":"*"},"repository":{"type":"git","url":"git+https://github.com/cueue-dev/cueue.git"},"bugs":{"url":"https://github.com/cueue-dev/cueue/issues"},"homepage":"https://cueue-dev.github.io/","scripts":{"build":"tsup","build:docs":"typedoc --out docs src"},"_id":"@cueue/cloudflare-queues@0.0.2","_integrity":"sha512-pd0my3i7bx5xCr4HyfPBfCbiFcpgVypLMi0qo/bX1A98ou0qTGbiSfHwK4R88bQpRhQ7smFruK+DM280DxX6sg==","_resolved":"/tmp/359d73f19c542b313beb4a66e0513eb1/cueue-cloudflare-queues-0.0.2.tgz","_from":"file:cueue-cloudflare-queues-0.0.2.tgz","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-pd0my3i7bx5xCr4HyfPBfCbiFcpgVypLMi0qo/bX1A98ou0qTGbiSfHwK4R88bQpRhQ7smFruK+DM280DxX6sg==","shasum":"a489fc557cb06453dd7bafbbd0e74761d6ab9953","tarball":"https://registry.npmjs.org/@cueue/cloudflare-queues/-/cloudflare-queues-0.0.2.tgz","fileCount":5,"unpackedSize":6827,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5BtZ/BKHcUgW7Zr1I6FFxBu9WiVo54z9HXrPiYVOJNgIhAKvy1tvTX9Si7gyj+ZcQXipbIHLQmMRf0P8mmsQZQJLs"}]},"_npmUser":{"name":"jacoblincool","email":"jacoblincool@gmail.com"},"directories":{},"maintainers":[{"name":"jacoblincool","email":"jacoblincool@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cloudflare-queues_0.0.2_1698489267891_0.9144273243335659"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-20T20:21:00.864Z","0.0.0":"2023-10-20T20:21:01.258Z","modified":"2023-10-28T10:34:28.344Z","0.0.1":"2023-10-21T18:36:06.663Z","0.0.2":"2023-10-28T10:34:28.131Z"},"maintainers":[{"name":"jacoblincool","email":"jacoblincool@gmail.com"}],"homepage":"https://cueue-dev.github.io/","keywords":[],"repository":{"type":"git","url":"git+https://github.com/cueue-dev/cueue.git"},"author":{"name":"JacobLinCool","email":"jacoblincool@gmail.com","url":"https://jacoblin.cool"},"bugs":{"url":"https://github.com/cueue-dev/cueue/issues"},"license":"MIT","readme":"# @cueue/cloudflare-queues\n\n## Example\n\n```ts\n/**\n * This is an example of how to use Cueue with Cloudflare Queues to\n * download images from a URL and save them to R2, then send a Discord\n * message with the image.\n */\n\nimport { CloudflareCueue } from \"@cueue/cloudflare-queues\";\nimport type { Context } from \"@cueue/core\";\nimport { crawler } from \"./crawler\";\nimport { discord } from \"./discord\";\nimport { saver } from \"./saver\";\n\ninterface Env {\n    crawl: Queue<{ url: string }>;\n    save: Queue<{ image: string }>;\n    notify: Queue<{ webhook: string; message: string; filename: string }>;\n    r2: R2Bucket;\n    DISCORD_WEBHOOK: string;\n}\n\nfunction build(env: Env): CloudflareCueue {\n    return new CloudflareCueue()\n        .use(\"cueue-crawl-queue\", env.crawl, crawler(env))\n        .use(\"cueue-save-queue\", env.save, saver(env))\n        .use(\"cueue-notify-queue\", env.notify, discord(env));\n}\n\nexport default {\n    async fetch(req: Request, env: Env): Promise<Response> {\n        const search = new URL(req.url).searchParams;\n        const url = search.get(\"url\");\n        if (!url) {\n            return new Response(\"Missing URL\", { status: 400 });\n        }\n\n        try {\n            new URL(url);\n        } catch {\n            return new Response(\"Invalid URL\", { status: 400 });\n        }\n\n        await build(env).begin({ url });\n        return new Response(\"OK\");\n    },\n    async queue(batch: MessageBatch<Context>, env: Env): Promise<void> {\n        await build(env).take(batch);\n    },\n};\n```\n\nSee [examples/cloudflare-queues](../../examples/cloudflare-queues) for a full example.\n","readmeFilename":"README.md","description":"## Example"}