From 9b42f9384fbf163e2140235ca41b38653d8759d0 Mon Sep 17 00:00:00 2001 From: Tyler Hall Date: Fri, 26 Jan 2024 16:08:01 +0000 Subject: [PATCH] feat(queue): add BullMQ adapter #6 --- app/deps.ts | 1 + app/mod.ts | 44 ++++++++---- deno.lock | 195 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 225 insertions(+), 15 deletions(-) diff --git a/app/deps.ts b/app/deps.ts index 81a81f3..eef7b1c 100644 --- a/app/deps.ts +++ b/app/deps.ts @@ -15,4 +15,5 @@ export { default as mongodb } from 'https://raw.githubusercontent.com/hyper63/hy export { default as redis } from 'https://raw.githubusercontent.com/hyper63/hyper-adapter-redis/v3.2.2/mod.js'; export { default as elasticsearch } from 'https://raw.githubusercontent.com/hyper63/hyper-adapter-elasticsearch/v2.0.3/mod.js'; export { default as minio } from 'https://raw.githubusercontent.com/hyper63/hyper-adapter-minio/v1.0.2/mod.js'; +export { default as bullmq } from 'https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/mod.ts'; export { default as hooks } from 'https://raw.githubusercontent.com/hyper63/hyper-adapter-hooks/v1.0.6/mod.js'; diff --git a/app/mod.ts b/app/mod.ts index e3dfb60..b895a9c 100644 --- a/app/mod.ts +++ b/app/mod.ts @@ -1,4 +1,4 @@ -import { app, elasticsearch, type express, hyper, minio, mongodb, redis } from './deps.ts'; +import { app, bullmq, elasticsearch, type express, hyper, minio, mongodb, redis } from './deps.ts'; import { env, verifyAuthorizationHeader } from './utils.ts'; /** @@ -35,38 +35,52 @@ const authMiddleware = return app; }; +const MONGO_URL = `mongodb://${env('MONGO_USERNAME')}:${env('MONGO_PASSWORD')}@${ + env('MONGO_HOST') +}`; +const REDIS_URL = `http://${env('REDIS_HOST')}:${env('REDIS_PORT')}`; +const ELASTICSEARCH_URL = `http://${env('ELASTICSEARCH_HOST')}`; +// Use the public url, so presigned url signatures match +const MINIO_URL = `https://${env('MINIO_USERNAME')}:${env('MINIO_PASSWORD')}@${ + env('MINIO_HOST') +}.onrender.com`; + export default hyper({ app, adapters: [ { port: 'data', - plugins: [ - mongodb({ - url: `mongodb://${env('MONGO_USERNAME')}:${env('MONGO_PASSWORD')}@${env('MONGO_HOST')}`, - }), - ], + plugins: [mongodb({ url: MONGO_URL })], }, { port: 'cache', - plugins: [ - // @ts-ignore incorrect types in the adapter, so safe to ignore for now - redis({ hostname: env('REDIS_HOST'), port: env('REDIS_PORT') }), - ], + plugins: [redis({ url: REDIS_URL })], + }, + { + port: 'search', + plugins: [elasticsearch({ url: ELASTICSEARCH_URL })], }, - { port: 'search', plugins: [elasticsearch({ url: `http://${env('ELASTICSEARCH_HOST')}` })] }, - // Use the public url, so presigned url signatures match { port: 'storage', plugins: [ minio({ - url: `https://${env('MINIO_USERNAME')}:${env('MINIO_PASSWORD')}@${ - env('MINIO_HOST') - }.onrender.com`, + url: MINIO_URL, bucketPrefix: 'hyper', useNamespacedBucket: false, }), ], }, + { + port: 'queue', + plugins: [ + bullmq({ + url: REDIS_URL, + options: { + keyPrefix: 'hyper', + }, + }), + ], + }, ], middleware: [authMiddleware({ sub: env('SUB'), secret: env('SECRET') })], }); diff --git a/deno.lock b/deno.lock index c5a605d..78e3d42 100644 --- a/deno.lock +++ b/deno.lock @@ -8,11 +8,13 @@ "npm:@types/ramda@^0.29.9": "npm:@types/ramda@0.29.10", "npm:body-parser@1.20.2": "npm:body-parser@1.20.2", "npm:bson@6.2.0": "npm:bson@6.2.0", + "npm:bullmq@5.1.3": "npm:bullmq@5.1.3", "npm:cors@2.8.5": "npm:cors@2.8.5", "npm:crocks@0.12.4": "npm:crocks@0.12.4", "npm:cuid@3.0.0": "npm:cuid@3.0.0", "npm:express@4.18.2": "npm:express@4.18.2", "npm:helmet@7.1.0": "npm:helmet@7.1.0", + "npm:ioredis@5.3.2": "npm:ioredis@5.3.2", "npm:minio@7.1.3": "npm:minio@7.1.3", "npm:mongodb-memory-server-core@9.1.1": "npm:mongodb-memory-server-core@9.1.1", "npm:mongodb@6.3.0": "npm:mongodb@6.3.0", @@ -22,12 +24,40 @@ "npm:readable-web-to-node-stream@3.0.2": "npm:readable-web-to-node-stream@3.0.2" }, "npm": { + "@ioredis/commands@1.2.0": { + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", + "dependencies": {} + }, "@mongodb-js/saslprep@1.1.4": { "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", "dependencies": { "sparse-bitfield": "sparse-bitfield@3.0.3" } }, + "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": { + "integrity": "sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==", + "dependencies": {} + }, + "@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2": { + "integrity": "sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==", + "dependencies": {} + }, + "@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2": { + "integrity": "sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==", + "dependencies": {} + }, + "@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2": { + "integrity": "sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==", + "dependencies": {} + }, + "@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2": { + "integrity": "sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==", + "dependencies": {} + }, + "@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2": { + "integrity": "sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==", + "dependencies": {} + }, "@types/body-parser@1.19.5": { "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dependencies": { @@ -170,6 +200,10 @@ "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", "dependencies": {} }, + "balanced-match@1.0.2": { + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dependencies": {} + }, "block-stream2@2.1.0": { "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", "dependencies": { @@ -210,6 +244,12 @@ "unpipe": "unpipe@1.0.0" } }, + "brace-expansion@2.0.1": { + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "balanced-match@1.0.2" + } + }, "browser-or-node@2.1.1": { "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==", "dependencies": {} @@ -230,6 +270,20 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dependencies": {} }, + "bullmq@5.1.3": { + "integrity": "sha512-safpGwiwKHsNPW01Wk8FPxdWbPS2mA0HZKqIhdQB10J4wWRSDWPeQE2p+YYnAmqEsk0FwJdZnzVcwCfn7w5cVA==", + "dependencies": { + "cron-parser": "cron-parser@4.9.0", + "glob": "glob@8.1.0", + "ioredis": "ioredis@5.3.2", + "lodash": "lodash@4.17.21", + "msgpackr": "msgpackr@1.10.1", + "node-abort-controller": "node-abort-controller@3.1.1", + "semver": "semver@7.5.4", + "tslib": "tslib@2.6.2", + "uuid": "uuid@9.0.1" + } + }, "busboy@0.2.14": { "integrity": "sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg==", "dependencies": { @@ -253,6 +307,10 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dependencies": {} }, + "cluster-key-slot@1.1.2": { + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "dependencies": {} + }, "commondir@1.0.1": { "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dependencies": {} @@ -299,6 +357,12 @@ "integrity": "sha512-paln6xJUrR9e/OWMFsyTi4dLyr+q99C5f7PQbGgSDHtwsfW0sCNZvnpHzvniI2dAE0uoBgeIP1Ukmme8Z0HxxA==", "dependencies": {} }, + "cron-parser@4.9.0": { + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "dependencies": { + "luxon": "luxon@3.4.4" + } + }, "cuid@3.0.0": { "integrity": "sha512-WZYYkHdIDnaxdeP8Misq3Lah5vFjJwGuItJuV+tvMafosMzw0nF297T7mrm8IOWiPJkV6gc7sa8pzx27+w25Zg==", "dependencies": {} @@ -327,6 +391,10 @@ "has-property-descriptors": "has-property-descriptors@1.0.1" } }, + "denque@2.1.0": { + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dependencies": {} + }, "depd@2.0.0": { "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dependencies": {} @@ -459,6 +527,10 @@ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dependencies": {} }, + "fs.realpath@1.0.0": { + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dependencies": {} + }, "function-bind@1.1.2": { "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dependencies": {} @@ -472,6 +544,16 @@ "hasown": "hasown@2.0.0" } }, + "glob@8.1.0": { + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "fs.realpath@1.0.0", + "inflight": "inflight@1.0.6", + "inherits": "inherits@2.0.4", + "minimatch": "minimatch@5.1.6", + "once": "once@1.4.0" + } + }, "gopd@1.0.1": { "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { @@ -531,10 +613,31 @@ "safer-buffer": "safer-buffer@2.1.2" } }, + "inflight@1.0.6": { + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "once@1.4.0", + "wrappy": "wrappy@1.0.2" + } + }, "inherits@2.0.4": { "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dependencies": {} }, + "ioredis@5.3.2": { + "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", + "dependencies": { + "@ioredis/commands": "@ioredis/commands@1.2.0", + "cluster-key-slot": "cluster-key-slot@1.1.2", + "debug": "debug@4.3.4", + "denque": "denque@2.1.0", + "lodash.defaults": "lodash.defaults@4.2.0", + "lodash.isarguments": "lodash.isarguments@3.1.0", + "redis-errors": "redis-errors@1.2.0", + "redis-parser": "redis-parser@3.0.0", + "standard-as-callback": "standard-as-callback@2.1.0" + } + }, "ip@2.0.0": { "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dependencies": {} @@ -588,6 +691,14 @@ "p-locate": "p-locate@4.1.0" } }, + "lodash.defaults@4.2.0": { + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dependencies": {} + }, + "lodash.isarguments@3.1.0": { + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "dependencies": {} + }, "lodash@4.17.21": { "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dependencies": {} @@ -598,6 +709,10 @@ "yallist": "yallist@4.0.0" } }, + "luxon@3.4.4": { + "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", + "dependencies": {} + }, "make-dir@3.1.0": { "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dependencies": { @@ -634,6 +749,12 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dependencies": {} }, + "minimatch@5.1.6": { + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "brace-expansion@2.0.1" + } + }, "minimist@1.2.8": { "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dependencies": {} @@ -722,6 +843,24 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dependencies": {} }, + "msgpackr-extract@3.0.2": { + "integrity": "sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==", + "dependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-arm": "@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-x64": "@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2", + "@msgpackr-extract/msgpackr-extract-win32-x64": "@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2", + "node-gyp-build-optional-packages": "node-gyp-build-optional-packages@5.0.7" + } + }, + "msgpackr@1.10.1": { + "integrity": "sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==", + "dependencies": { + "msgpackr-extract": "msgpackr-extract@3.0.2" + } + }, "multer@1.4.4": { "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", "dependencies": { @@ -745,6 +884,14 @@ "debug": "debug@4.3.4" } }, + "node-abort-controller@3.1.1": { + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dependencies": {} + }, + "node-gyp-build-optional-packages@5.0.7": { + "integrity": "sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==", + "dependencies": {} + }, "object-assign@4.1.1": { "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dependencies": {} @@ -759,6 +906,12 @@ "ee-first": "ee-first@1.1.1" } }, + "once@1.4.0": { + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "wrappy@1.0.2" + } + }, "p-limit@2.3.0": { "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dependencies": { @@ -896,6 +1049,16 @@ "readable-stream": "readable-stream@3.6.2" } }, + "redis-errors@1.2.0": { + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "dependencies": {} + }, + "redis-parser@3.0.0": { + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "dependencies": { + "redis-errors": "redis-errors@1.2.0" + } + }, "safe-buffer@5.1.2": { "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dependencies": {} @@ -992,6 +1155,10 @@ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", "dependencies": {} }, + "standard-as-callback@2.1.0": { + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", + "dependencies": {} + }, "statuses@2.0.1": { "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dependencies": {} @@ -1108,6 +1275,10 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dependencies": {} }, + "uuid@9.0.1": { + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dependencies": {} + }, "vary@1.1.2": { "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dependencies": {} @@ -1147,6 +1318,10 @@ "has-tostringtag": "has-tostringtag@1.0.0" } }, + "wrappy@1.0.2": { + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dependencies": {} + }, "xml2js@0.5.0": { "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dependencies": { @@ -1417,6 +1592,9 @@ "https://deno.land/std@0.85.0/encoding/hex.ts": "f952e0727bddb3b2fd2e6889d104eacbd62e92091f540ebd6459317a61932d9b", "https://deno.land/std@0.85.0/hash/sha256.ts": "2a06afd9c27942b87ffc8a93b3270065b5fe4ea144fe0939e5d050bfb86d40db", "https://deno.land/std@0.85.0/hash/sha512.ts": "879e99a4c20d10ddadbe02a643a69565dfbabffc5fa7ddacff3ebcdb664b554c", + "https://deno.land/x/base64@v0.2.1/base.ts": "47dc8d68f07dc91524bdd6db36eccbe59cf4d935b5fc09f27357a3944bb3ff7b", + "https://deno.land/x/base64@v0.2.1/base64url.ts": "18bbf879b31f1f32cca8adaa2b6885ae325c2cec6a66c5817b684ca12c46ad5e", + "https://deno.land/x/base64@v0.2.1/mod.ts": "1cbdc4ba7229d3c6d1763fecdb9d46844777c7e153abb6dabea8b0dd01448db4", "https://deno.land/x/cuid@v1.0.0/fingerprint.js": "34d45895441ad08a1ce2c76da4b72da24c00b68346e9bb3c8dfd10eb5774d74e", "https://deno.land/x/cuid@v1.0.0/getRandomValue.js": "52545634d1e62836ed44aeea057caa2d054ea979090049ea8facb2ececa23385", "https://deno.land/x/cuid@v1.0.0/index.js": "7313248002e361977e2801d0cbfd6b7d20926dd59c880f1698672a4fdefe999e", @@ -1445,6 +1623,8 @@ "https://deno.land/x/god_crypto@v1.4.9/src/rsa/rsassa_pss.ts": "14987aab6b69fb5d9056bf260c722cc91376e34edb53ee30f38541ab5f7a2260", "https://deno.land/x/god_crypto@v1.4.9/src/utility/asn1.ts": "91b4d357a3b3bca4c0c0d26e876061bf803e04e5f0bd418d35426d1858f9aaf8", "https://deno.land/x/god_crypto@v1.4.9/src/utility/encode.ts": "2865eb23bceea73fde3e0d1c13254bc30d9144606fda30ae009fbf33e5c881a3", + "https://deno.land/x/hmac@v2.0.1/deps.ts": "c2cb0fb44389a76b253cc27a1cadfbe9f03ede2ddea0d940b5389d683940217c", + "https://deno.land/x/hmac@v2.0.1/mod.ts": "83590b95de468d0cf5398b7631b4fb62a64226786247fe265482045d799e8f97", "https://deno.land/x/ms@v0.1.0/ms.ts": "13014fdf12808df48f6e557cc3be22d24db5b8e29b687d710f9012df3428d2c8", "https://deno.land/x/redis@v0.32.1/backoff.ts": "33e4a6e245f8743fbae0ce583993a671a3ac2ecee433a3e7f0bd77b5dd541d84", "https://deno.land/x/redis@v0.32.1/command.ts": "aa2312d4093ec7c72d61d32a71d3d13a33cc6302ca78c8f026e1994e76541e6e", @@ -1500,6 +1680,13 @@ "https://deno.land/x/zod@v3.20.5/locales/en.ts": "ac7210faad6e67ec4f6dbe7062886f04db79ce91ae5ee6c9f64cbdf6221bc80e", "https://deno.land/x/zod@v3.20.5/mod.ts": "64e55237cb4410e17d968cd08975566059f27638ebb0b86048031b987ba251c4", "https://deno.land/x/zod@v3.20.5/types.ts": "6ddc4608e70d75f2e06f9cc14aa406df4d80f420c0eef64f2f02d429853c0c38", + "https://denopkg.com/chiefbiiko/sha1@v2.0.0/deps.ts": "434b70f37ed145ca5259353c96fdee1e7d1cd8c6a32baad9dce2aedc79d0a3bc", + "https://denopkg.com/chiefbiiko/sha1@v2.0.0/mod.ts": "146a101c9776cc9c807053c93f23e4b321ade5251f65745df418f4a75d5fd27b", + "https://denopkg.com/chiefbiiko/sha256@v2.0.0/deps.ts": "434b70f37ed145ca5259353c96fdee1e7d1cd8c6a32baad9dce2aedc79d0a3bc", + "https://denopkg.com/chiefbiiko/sha256@v2.0.0/mod.ts": "f109aa5eeb201a0cbfaf44950b70a429838b187e8a84c5b810c1ac84953427cc", + "https://denopkg.com/chiefbiiko/sha512@v2.0.0/deps.ts": "434b70f37ed145ca5259353c96fdee1e7d1cd8c6a32baad9dce2aedc79d0a3bc", + "https://denopkg.com/chiefbiiko/sha512@v2.0.0/mod.ts": "33190babd4c0e748bb2568fd003444487c8798c8c3a618f6593098c12805fe15", + "https://denopkg.com/chiefbiiko/std-encoding@v1.1.1/mod.ts": "e61017da4cef146863d614a961b4e61f1df14b72c906092bd02161f913e76522", "https://esm.sh/cluster-key-slot@1.1.0/lib/index.js": "8a65917f68cab2c7e62be6e590f63f7d411d09884eda38c628b85376ac3b51f7", "https://esm.sh/lodash-es@4.17.21/sample.js": "a610d43cde20339dff46a05a8ff095a9ddd28ac406505ad7b06753e0796eab9c", "https://esm.sh/lodash-es@4.17.21/shuffle.js": "abef73d417e92c2aff3a6cf584643bd46baa0712e67dfaa0465405dd5bfb0c39", @@ -1508,6 +1695,14 @@ "https://esm.sh/v135/lodash-es@4.17.21/denonext/sample.js": "9adf6cac2ce6f92fa7fa3d7513e691346800adf80cb79525bfa47d0fc1260f79", "https://esm.sh/v135/lodash-es@4.17.21/denonext/shuffle.js": "d18452c9fc8930456ab65874e8780fa4d8537d9c7292b10f77fc1bbbbc46cce1", "https://esm.sh/v135/lodash-es@4.17.21/denonext/uniqBy.js": "33a56f6bac7703f74918856e36b05902b37126283dc21637ce1f6de535bf5b56", + "https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/adapter.ts": "a12942e8d90de77fe0f20963a1618e6a4308e76104995cb0df2ab51526cdf3b4", + "https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/deps.ts": "d40b81f0fdff529366bc6a85ade9e600ae88e3d81d429af1b2e8b0729b0a2996", + "https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/lib/queue.ts": "d4132fb236b4fc6bb314cb4d104902ba65a34278c38ded688a65e1772a301621", + "https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/lib/utils.ts": "3c3eda5f8da6e0318abb448aa23abc69f957bbf76eb49907c580e38dc55e5b36", + "https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/lib/worker.ts": "f8a547d1366d72f210c3560cfb9b39a8a6764d17314680011357c85788ba7d08", + "https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/mod.ts": "5844271e52d71bd241f917b0d36c802a897708403c7b402679edda43f00dbfe0", + "https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/port_name.ts": "ca69468d002f469eb3e9a7ee65b7ccae84d2da102345446e528542fb78dc4b29", + "https://raw.githubusercontent.com/hyper63/hyper-adapter-bullmq/v1.0.1/types.ts": "b10a29cf4c8d8322dc02505e897be6cee58661636879a6f73db2f09b5cd1c039", "https://raw.githubusercontent.com/hyper63/hyper-adapter-elasticsearch/v2.0.3/adapter.js": "03231c6461d31b334c51a7d963e56ceee2557a00e252f58e8ce4bd36dea2b0a8", "https://raw.githubusercontent.com/hyper63/hyper-adapter-elasticsearch/v2.0.3/async-fetch.js": "5f026b01000906ddee6f917b12aa6a9a1f2231083efc66ab536f03fba9fc161d", "https://raw.githubusercontent.com/hyper63/hyper-adapter-elasticsearch/v2.0.3/deps.js": "544f52fe1b1f726117a398daf0683634e3d4644c0e73278608fb30217474d019",