From 0443ca88192c89d7f8080cbd55fef24226e9c857 Mon Sep 17 00:00:00 2001 From: Niceygy Date: Sat, 2 Mar 2024 14:47:03 +0000 Subject: [PATCH] forgot to push.... --- .editorconfig | 13 + .prettierrc | 6 + bun.lockb | Bin 38711 -> 0 bytes package-lock.json | 357 +++++++++++++++++---------- package.json | 7 +- src/worker.js | 388 +++++++++++++++--------------- wrangler.toml | 34 ++- yarn.lock | 598 ---------------------------------------------- 8 files changed, 478 insertions(+), 925 deletions(-) create mode 100644 .editorconfig create mode 100644 .prettierrc delete mode 100755 bun.lockb delete mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..64ab260 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = tab +tab_width = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.yml] +indent_style = space diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..5c7b5d3 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 1f75cd8ee017b61ed24375f780a7368ae30f4a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38711 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" } }, - "node_modules/@cloudflare/workers-types": { - "version": "4.20230914.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230914.0.tgz", - "integrity": "sha512-OVeN4lFVu1O0PJGZ2d0FwpK8lelFcr33qYOgCh77ErEYmEBO4adwnIxcIsdQbFbhF0ffN6joiVcljD4zakdaeQ==", - "dev": true + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } }, "node_modules/@esbuild-plugins/node-globals-polyfill": { "version": "0.2.3", @@ -482,10 +486,62 @@ "node": ">=12" } }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@types/node": { + "version": "20.11.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", + "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -495,9 +551,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" @@ -552,24 +608,6 @@ "node": ">=8" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, "node_modules/capnp-ts": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/capnp-ts/-/capnp-ts-0.7.0.tgz", @@ -581,16 +619,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -603,6 +635,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -732,6 +767,15 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-source": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", @@ -760,6 +804,18 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -772,6 +828,18 @@ "node": ">=8" } }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -824,24 +892,27 @@ } }, "node_modules/miniflare": { - "version": "3.20230918.0", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20230918.0.tgz", - "integrity": "sha512-Dd29HB7ZlT1CXB2tPH8nW6fBOOXi/m7qFZHjKm2jGS+1OaGfrv0PkT5UspWW5jQi8rWI87xtordAUiIJkwWqRw==", + "version": "3.20240223.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20240223.0.tgz", + "integrity": "sha512-8T/36FEfvsL4aMF7SLZ28v+PQL0jsUlVw/u114GYcdobkyPax9E6Ahn0XePOHEqLxQSndwPee+eS1phHANFePA==", "dev": true, "dependencies": { + "@cspotcode/source-map-support": "0.8.1", "acorn": "^8.8.0", "acorn-walk": "^8.2.0", "capnp-ts": "^0.7.0", "exit-hook": "^2.2.1", "glob-to-regexp": "^0.4.1", - "source-map-support": "0.5.21", "stoppable": "^1.1.0", - "undici": "^5.22.1", - "workerd": "1.20230904.0", + "undici": "^5.28.2", + "workerd": "1.20240223.1", "ws": "^8.11.0", "youch": "^3.2.2", "zod": "^3.20.6" }, + "bin": { + "miniflare": "bootstrap.js" + }, "engines": { "node": ">=16.13" } @@ -862,9 +933,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -897,6 +968,12 @@ "node": ">=0.10.0" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, "node_modules/path-to-regexp": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", @@ -933,6 +1010,32 @@ "node": ">=8.10.0" } }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/rollup-plugin-inject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", @@ -964,11 +1067,12 @@ } }, "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, "dependencies": { + "@types/node-forge": "^1.3.0", "node-forge": "^1" }, "engines": { @@ -984,16 +1088,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", @@ -1021,13 +1115,16 @@ "npm": ">=6" } }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "engines": { - "node": ">=10.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/to-regex-range": { @@ -1048,35 +1145,28 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/undici": { - "version": "5.25.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz", - "integrity": "sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw==", + "version": "5.28.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", + "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", "dev": true, "dependencies": { - "busboy": "^1.6.0" + "@fastify/busboy": "^2.0.0" }, "engines": { "node": ">=14.0" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/workerd": { - "version": "1.20230904.0", - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20230904.0.tgz", - "integrity": "sha512-t9znszH0rQGK4mJGvF9L3nN0qKEaObAGx0JkywFtAwH8OkSn+YfQbHNZE+YsJ4qa1hOz1DCNEk08UDFRBaYq4g==", + "version": "1.20240223.1", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20240223.1.tgz", + "integrity": "sha512-Mo1fwdp6DLva4/fWdL09ZdYllkO45I4YpWG5PbF/YUGFlu2aMk24fmU6Pd6fo5/cWek4F+n3LmYEKKHfqjiJIA==", "dev": true, "hasInstallScript": true, "bin": { @@ -1086,31 +1176,32 @@ "node": ">=16" }, "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20230904.0", - "@cloudflare/workerd-darwin-arm64": "1.20230904.0", - "@cloudflare/workerd-linux-64": "1.20230904.0", - "@cloudflare/workerd-linux-arm64": "1.20230904.0", - "@cloudflare/workerd-windows-64": "1.20230904.0" + "@cloudflare/workerd-darwin-64": "1.20240223.1", + "@cloudflare/workerd-darwin-arm64": "1.20240223.1", + "@cloudflare/workerd-linux-64": "1.20240223.1", + "@cloudflare/workerd-linux-arm64": "1.20240223.1", + "@cloudflare/workerd-windows-64": "1.20240223.1" } }, "node_modules/wrangler": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.9.0.tgz", - "integrity": "sha512-Ho1A76KxbqfcRgCsuN6xGar3BVPyn4oVWM9zx0HvEVhT9wQ7n/LvB6GlPdXKABqEBYhVe/oTH72S5TgWl0DgaA==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.30.1.tgz", + "integrity": "sha512-cT6Ezx8h2v5QiI0HWhnHVy32ng4omdMVdhaMQLuMnyMIHmyDoRg7pmrbhtZfj0663gExLdVtE4ucK//yncVTwg==", "dev": true, "dependencies": { - "@cloudflare/kv-asset-handler": "^0.2.0", + "@cloudflare/kv-asset-handler": "0.3.1", "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "blake3-wasm": "^2.1.5", "chokidar": "^3.5.3", "esbuild": "0.17.19", - "miniflare": "3.20230918.0", + "miniflare": "3.20240223.0", "nanoid": "^3.3.3", "path-to-regexp": "^6.2.0", + "resolve": "^1.22.8", + "resolve.exports": "^2.0.2", "selfsigned": "^2.0.1", "source-map": "0.6.1", - "source-map-support": "0.5.21", "xxhash-wasm": "^1.0.1" }, "bin": { @@ -1118,16 +1209,24 @@ "wrangler2": "bin/wrangler.js" }, "engines": { - "node": ">=16.13.0" + "node": ">=16.17.0" }, "optionalDependencies": { "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@cloudflare/workers-types": "^4.20230914.0" + }, + "peerDependenciesMeta": { + "@cloudflare/workers-types": { + "optional": true + } } }, "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, "engines": { "node": ">=10.0.0" @@ -1152,9 +1251,9 @@ "dev": true }, "node_modules/youch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.2.tgz", - "integrity": "sha512-9cwz/z7abtcHOIuH45nzmUFCZbyJA1nLqlirKvyNRx4wDMhqsBaifAJzBej7L4fsVPjFxYq3NK3GAcfvZsydFw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.3.tgz", + "integrity": "sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==", "dev": true, "dependencies": { "cookie": "^0.5.0", @@ -1163,9 +1262,9 @@ } }, "node_modules/zod": { - "version": "3.22.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.2.tgz", - "integrity": "sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==", + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", "dev": true, "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index f759ff3..15ce2cb 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,13 @@ { - "name": "DownloadRecorder", - "version": "1.1.0", + "name": "download_recorder", + "version": "0.0.0", "private": true, "scripts": { "deploy": "wrangler deploy", + "dev": "wrangler dev", "start": "wrangler dev" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20230419.0", - "typescript": "^5.0.4", "wrangler": "^3.0.0" } } \ No newline at end of file diff --git a/src/worker.js b/src/worker.js index dc79579..2e0b0fa 100644 --- a/src/worker.js +++ b/src/worker.js @@ -1,198 +1,212 @@ /** - * The scheduled function for sending data weekly. - * @param {env} env The ENV object, used for KV - * @param {*} sendMsg Whether or not to send the message to Discord. If false, it will send the message. If true, it will return the message. - * @returns Either a message or a response + * Sends a message to a Discord channel with the download and page view stats + * @param {env} env - The environment variables + * @param {boolean} sendMsg - Whether to send the message to Discord or return it + * @returns {null} */ async function cron(env, sendMsg) { - console.log("Cron func is running..."); - const KV1 = env.WDR; - const KV2 = env.WVR; - const webhookURL = env.url; - var repos = []; - var pages = []; - - //DOWNLOADS ######################################################################## - - const Dlist = await KV1.list(); - console.log("Key list aquired for downloads"); - var Dtotal = 0; - var i = 0; - var len = Dlist.keys.length; - for (const { name, expiration } of Dlist.keys) { - console.log(`Getting value for ${name} (${i}/${len})`); - const value = await KV1.get(name); - if (name == "total" | name == undefined | name == "undefined") { - console.log("Invalid Repo, skipping"); - } else { - repos.push({ name: name, count: parseInt(value) }); - Dtotal += parseInt(value); - } - } - repos.sort((a, b) => b.count - a.count); // Sort repos by count in descending order - //PAGE VISITS ######################################################################## - - const Plist = await KV2.list(); - console.log("Key list aquired for pages"); - var Ptotal = 0; - var i = 0; - var len = Plist.keys.length; - for (const { name, expiration } of Plist.keys) { - i++; - console.log(`Getting value for ${name} (${i}/${len})`); - const value = await KV2.get(name); - if (name == "total" | name == undefined | name == "undefined") { - console.log("Invalid page, skipping"); - } else { - pages.push({ name: name, count: parseInt(value) }); - Ptotal += parseInt(value); - } - } - pages.sort((a, b) => b.count - a.count); // Sort repos by count in descending order - let currentDate = new Date(); - - //MESSAGE ######################################################################## - var message1 = "# Downloads as of " + currentDate.toUTCString() + "\n\n" + repos.map((repo) => `Repo: ${repo.name}, Count: ${repo.count} - `).join(""); - var message1 = message1 + "\n\nTotal downloads: " + Dtotal; - var message2 = "# Page visits as of " + currentDate.toUTCString() + "\n\n" + pages.map((page) => `Page: ${page.name}, Count: ${page.count} - `).join(""); - var message = message2 + "\n\nTotal page visits: " + Ptotal; - console.log("Message generated. Sending to Discord..."); - console.log(message); - if (sendMsg == false) { - console.log("Sending data to " + env.url) - //split messages to avoid limit - await fetch(env.url, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify({ - content: message1 - }) - }).then((response) => { - console.log('Status:', response.status); - // return response.text(); - }) - .then((body) => console.log('Body:', body)) - .catch((error) => console.error(error)); - await fetch(env.url, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify({ - content: message2 - }) - }).then((response) => { - console.log('Status:', response.status); - // return response.text(); - }) - .then((body) => console.log('Body:', body)) - .catch((error) => console.error(error)); - console.log("Message sent to Discord"); - return "Complete! Message sent."; - } else { - console.log("Returning mesage"); - return message; - } + console.log('Cron func is running...'); + const KV1 = env.WDR; //WDR: WorkerDownloadRecorder + const KV2 = env.WVR; //WVR: WorkerVisitRecorder + var repos = []; + var pages = []; + const Dlist = await KV1.list(); //Dlist = Download list + console.log('Key list aquired for downloads'); + var Dtotal = 0; + var i = 0; + var len = Dlist.keys.length; + for (const { name, expiration } of Dlist.keys) { + i++; + console.log(`Getting value for ${name} (${i}/${len})`); + const value = await KV1.get(name); + if (!name || name == 'total') { + console.log('Invalid Repo, skipping'); + } else { + repos.push({ name, count: parseInt(value) }); + Dtotal += parseInt(value); //calc total downloads + } + } + repos.sort((a, b) => b.count - a.count); //sort by count (high > low) + const Plist = await KV2.list(); //Plist = Page list + console.log('Key list aquired for pages'); + var Ptotal = 0; + var i = 0; + var len = Plist.keys.length; + for (const { name, expiration } of Plist.keys) { + i++; + console.log(`Getting value for ${name} (${i}/${len})`); + const value = await KV2.get(name); + if (!name) { + console.log('Invalid page, skipping'); + } else { + pages.push({ name, count: parseInt(value) }); + Ptotal += parseInt(value); + } + } + pages.sort((a, b) => b.count - a.count); //sort by count (high > low) + let currentDate = /* @__PURE__ */ new Date(); + var message1 = + '# Downloads as of ' + + currentDate.toUTCString() + + '\n\n' + + repos + .map( + (repo) => `Repo: ${repo.name}, Count: ${repo.count} +` + ) + .join(''); + var message1 = message1 + '\n\nTotal downloads: ' + Dtotal; + var message2 = + '# Page visits as of ' + + currentDate.toUTCString() + + '\n\n' + + pages + .map( + (page) => `Page: ${page.name}, Count: ${page.count} +` + ) + .join(''); + var message = message2 + '\n\nTotal page visits: ' + Ptotal; + console.log('Message generated. Sending to Discord...'); + console.log(message); + if (sendMsg == false) { + console.log('Sending data to ' + env.url); + //split messages to avoid limit + await fetch(env.url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + content: message1, + }), + }) + .then((response) => { + console.log('Status:', response.status); + }) + .then((body) => console.log('Body:', body)) + .catch((error) => console.error(error)); + await fetch(env.url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + content: message2, + }), + }) + .then((response) => { + console.log('Status:', response.status); + // return response.text(); + }) + .then((body) => console.log('Body:', body)) + .catch((error) => console.error(error)); + console.log('Message sent to Discord'); + return 'Complete! Message sent.'; + } else { + console.log('Returning mesage'); + return message1 + '\n\n' + message2; + } } - -/** - * Function for recording a download. - * @param {URL} url The requested url. From request.url - * @param {env} env The ENV object, used for KV - * @returns Error or redirect - */ async function recordDownload(url, env) { - console.log("Recording download"); - const KV = env.WDR; - console.log("Handling request for " + url); - const packNameRaw = url.toString().split("/reder?url=")[1]; //pack name will include username & file part of url, e.g niceygylive/example - const fileName = url.toString().split("?file=")[1]; //e.g V1.1.2/download.zip - var packName = packNameRaw.split("?file=")[0]; //removes file part of url, leaving "niceygylive/example" - if (packName == undefined | fileName == undefined) { - console.log("Invalid request, redirecting to 404") - return Response.redirect("https://thealiendoctor.com/404", 301); - } - - console.log("Parsed! Pack name is " + packName + " and file name is " + fileName); - - var oldNum = await KV.get(packName); - if (oldNum / oldNum != 1) { - console.log("Repo not found in KV"); - await KV.put(packName, 1); - console.log(packName + " added to KV"); - } else { - console.log("Found in KV"); - var newCount = oldNum * 1 + 1; - await KV.put(packName, newCount); - console.log(packName + " now has " + newCount + " downloads"); - } - - let oldTotal = await KV.get("total"); - await KV.put("total", oldTotal * 1 + 1);//for *1 is to make sure it is treated as a number - - // Redirect the user to the requested URL. - console.log("Redirecting the user to https://github.com/" + packName + "/releases/download/" + fileName) - return Response.redirect( - "https://github.com/" + packName + "/releases/download/" + fileName, - 301, - { - headers: { - "Cache-Control": "no-store", - }, - } - ); + console.log('Recording download'); + const KV = env.WDR; + console.log('Handling request for ' + url); + var urltmp = url.toString().replace('%2F', '/'); + var urltmp = urltmp.replace('%3F', '?'); + const packNameRaw = urltmp.toString().split('/reder?url=')[1]; + const fileName = urltmp.toString().split('?file=')[1]; + var packName = packNameRaw.split('?file=')[0]; + if (!packName) { + console.log('Invalid request, redirecting to 404'); + return Response.redirect('https://thealiendoctor.com/404', 301); + } + console.log('Parsed! Pack name is ' + packName + ' and file name is ' + fileName); + var oldNum = await KV.get(packName); + if (oldNum / oldNum != 1) { + console.log('Repo not found in KV'); + await KV.put(packName, 1); + console.log(packName + ' added to KV'); + } else { + console.log('Found in KV'); + var newCount = oldNum * 1 + 1; + await KV.put(packName, newCount); + console.log(packName + ' now has ' + newCount + ' downloads'); + } + let oldTotal = await KV.get('total'); + await KV.put('total', oldTotal * 1 + 1); + console.log('Redirecting the user to https://github.com/' + packName + '/releases/download/' + fileName); + return Response.redirect( + 'https://github.com/' + packName + '/releases/download/' + fileName, + 301, + // @ts-ignore + { + headers: { + 'Cache-Control': 'no-store', + }, + } + ); } - -/** - * The function for recording a visit to a page. - * @param {string} url The url from request.url - * @param {object} env The ENV object, used for KV - * @returns Error or redirect - */ async function recordVisit(url, env) { - let page = url.split("?page=")[1]; - if (page == void 0) { - return new Response("No page specified", { status: 400 }); - } - let count = await env.WVR.get(page); - if (count == null) { - count = 0; - } - count++; - await env.WVR.put(page, count); - return new Response("OK", { status: 200 }); + let page = url.split('?page=')[1]; + if (page == void 0) { + return new Response('No page specified', { status: 400 }); + } + let count = await env.WVR.get(page); + if (count == null) { + count = 0; + } + count++; + await env.WVR.put(page, count); + return new Response('OK', { status: 200 }); } +var worker_default = { + /** + * Incoming requests will trigger this method. + * Decides what to do with the request (download, page view or invalid request) + */ + async fetch(request, env, ctx) { + console.log('Worker is running...'); + var url = new URL(request.url).toString(); + // Replace encoded characters + url = url.replace('%2F', '/'); + url = url.replace('%3F', '?'); + url = url.replace('%3D', '='); + console.log('Processing request for ' + url); -export default { - async fetch(request, env, ctx) { - console.log("Worker is running..."); - console.log("Processing request for " + request.url); - const url = request.url; - if (url.includes("test/cron")) { return new Response(await cron(env, true, false)) } - if (url.includes("test/db")) { return new Response(await cron(env, true, true)) } - if (url.includes("favicon.ico")) { return new Response(null, { status: 404 }) } - if (url.length < 1 | url == void 0) { - console.log("Invalid request, redirecting to 404"); - return Response.redirect("https://thealiendoctor.com/404", 301); - } - if (url.includes("/reder?url=")) { - console.log("Request is for a download."); - return await recordDownload(request.url, env); - } else if (url.includes("?page=")) { - console.log("Request is for a page."); - return await recordVisit(url, env); - } else { - console.log("Invalid request, redirecting to 404"); - return Response.redirect("https://thealiendoctor.com/404", 301); - } - - }, - async scheduled(event, env, ctx) { - ctx.waitUntil(cron(env, false)); - } + // Check if the request is for a download, page view or invalid + if (url.includes('test/cron')) { + //Run cron tests manually, used for debug + return new Response(await cron(env, true, false)); + } + if (url.includes('favicon.ico')) { + //Ignore favicon requests + return new Response(null, { status: 404 }); + } + if (!url) { + //Ignore empty requests + console.log('Invalid request, redirecting to 404'); + return Response.redirect('https://thealiendoctor.com/404', 301); + } + if (url.includes('/reder?url=')) { + //Download req + console.log('Request is for a download.'); + return await recordDownload(request.url, env); + } else if (url.includes('?page=')) { + //Page view req + console.log('Request is for a page.'); + return await recordVisit(url, env); + } else { + //Invalid req + console.log('Invalid request, redirecting to 404'); + return Response.redirect('https://thealiendoctor.com/404', 301); + } + }, + async scheduled(event, env, ctx) { + console.log('Scheduled event is running...'); + ctx.waitUntil(await cron(env, false)); + }, }; +export { worker_default as default }; +//# sourceMappingURL=worker.js.map diff --git a/wrangler.toml b/wrangler.toml index 802b163..1a7f907 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -1,17 +1,37 @@ name = "download_recorder" main = "src/worker.js" compatibility_date = "2023-09-24" +workers_dev = true -kv_namespaces = [ - { binding = "WDR", id = "c25ceddd69d046ffb315f74ed1f3de33" }, - { binding = "WVR", id = "8946e1721893497689df9b9e99a5ded2" } -] +[[routes]] +pattern = "download.thealiendoctor.com" +zone_name = "thealiendoctor.com" +custom_domain = true + +[[routes]] +pattern = "stats.thealiendoctor.com" +zone_name = "thealiendoctor.com" +custom_domain = true + +[placement] +mode = "smart" [triggers] -crons = ["0 12 * * sat"] +crons = [ "0 12 * * sat" ] + +# [unsafe] +# [[unsafe.bindings]] +# database_id = "eafc6a3b-97a7-4c08-94d9-7a10d4c28cb0" +# name = "DB" +# type = "d1" [vars] url = "https://discord.com/api/webhooks/1156259064595087521/fLfxylc8D6oe15-ZsnTxhpjwUkmjUIXM08ncj0GYV2pX3yykMM3hMZgbRn36qsvhd9FG" -[placement] -mode = "smart" \ No newline at end of file +[[kv_namespaces]] +id = "c25ceddd69d046ffb315f74ed1f3de33" +binding = "WDR" + +[[kv_namespaces]] +id = "8946e1721893497689df9b9e99a5ded2" +binding = "WVR" diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 4c1364d..0000000 --- a/yarn.lock +++ /dev/null @@ -1,598 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@cloudflare/kv-asset-handler@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz#c9959bbd7a1c40bd7c674adae98aa8c8d0e5ca68" - integrity sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A== - dependencies: - mime "^3.0.0" - -"@cloudflare/workerd-darwin-64@1.20231025.0": - version "1.20231025.0" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20231025.0.tgz#13ec8fede25271647f8e4e926a5d8bd5435fd1c8" - integrity sha512-MYRYTbSl+tjGg6su7savlLIb8cOcKJfdGpA+WdtgqT2OF7O+89Lag0l1SA/iyVlUkT31Jc6OLHqvzsXgmg+niQ== - -"@cloudflare/workerd-darwin-arm64@1.20231025.0": - version "1.20231025.0" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20231025.0.tgz#d2644a6ef702635fb1c57a51c6503b8f411cee0d" - integrity sha512-BszjtBDR84TVa6oWe74dePJSAukWlTmLw9zR4KeWuwZLJGV7RMm6AmwGStetjnwZrecZaaOFELfBCAHtsebV0Q== - -"@cloudflare/workerd-linux-64@1.20231025.0": - version "1.20231025.0" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20231025.0.tgz#cdb58bbebc3401c35a90ebd3320cf81d4f5f55de" - integrity sha512-AT9dxgKXOa9xZxZ3k2a432axPJJ58KpoNWnPiPYGpuAuLoWnfcYwwh6mr9sZVcTdAdTAK9Xu9c81tp0YABanUw== - -"@cloudflare/workerd-linux-arm64@1.20231025.0": - version "1.20231025.0" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20231025.0.tgz#8b17cf2a724d29377dbb4b16dbf9c0209872a3f5" - integrity sha512-EIjex5o2k80YZWPix1btGybL/vNZ3o6vqKX9ptS0JcFkHV5aFX5/kcMwSBRjiIC+w04zVjmGQx3N1Vh3njuncg== - -"@cloudflare/workerd-windows-64@1.20231025.0": - version "1.20231025.0" - resolved "https://registry.yarnpkg.com/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20231025.0.tgz#a585467c9f2ffee23148f7ed7ad36e565a6b403f" - integrity sha512-7vtq0mO22A2v0OOsKXa760r9a84Gg8CK0gDu5uNWlj6hojmt011iz7jJt76I7oo/XrVwVlVfu69GnA3ljx6U8w== - -"@cloudflare/workers-types@^4.20230419.0": - version "4.20231025.0" - resolved "https://registry.yarnpkg.com/@cloudflare/workers-types/-/workers-types-4.20231025.0.tgz#ac4d7e6a346670774a7d36cce1444786607f8dfe" - integrity sha512-TkcZkntUTOcvJ4vgmwpNfLTclpMbmbClZCe62B25/VTukmyv91joRa4eKzSjzCZUXTbFHNmVdOpmGaaJU2U3+A== - -"@esbuild-plugins/node-globals-polyfill@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz#0e4497a2b53c9e9485e149bc92ddb228438d6bcf" - integrity sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw== - -"@esbuild-plugins/node-modules-polyfill@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz#cefa3dc0bd1c16277a8338b52833420c94987327" - integrity sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA== - dependencies: - escape-string-regexp "^4.0.0" - rollup-plugin-node-polyfills "^0.2.1" - -"@esbuild/android-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" - integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== - -"@esbuild/android-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" - integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== - -"@esbuild/android-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" - integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== - -"@esbuild/darwin-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" - integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== - -"@esbuild/darwin-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" - integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== - -"@esbuild/freebsd-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" - integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== - -"@esbuild/freebsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" - integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== - -"@esbuild/linux-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" - integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== - -"@esbuild/linux-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" - integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== - -"@esbuild/linux-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" - integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== - -"@esbuild/linux-loong64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" - integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== - -"@esbuild/linux-mips64el@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" - integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== - -"@esbuild/linux-ppc64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" - integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== - -"@esbuild/linux-riscv64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" - integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== - -"@esbuild/linux-s390x@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" - integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== - -"@esbuild/linux-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" - integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== - -"@esbuild/netbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" - integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== - -"@esbuild/openbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" - integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== - -"@esbuild/sunos-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" - integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== - -"@esbuild/win32-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" - integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== - -"@esbuild/win32-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" - integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== - -"@esbuild/win32-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" - integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== - -"@fastify/busboy@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8" - integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ== - -"@types/node-forge@^1.3.0": - version "1.3.9" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.9.tgz#0fe4a7ba69c0b173f56e6de65d0eae2c1dd4bbfe" - integrity sha512-meK88cx/sTalPSLSoCzkiUB4VPIFHmxtXm5FaaqRDqBX2i/Sy8bJ4odsan0b20RBjPh06dAQ+OTTdnyQyhJZyQ== - dependencies: - "@types/node" "*" - -"@types/node@*": - version "20.9.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" - integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== - dependencies: - undici-types "~5.26.4" - -acorn-walk@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" - integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== - -acorn@^8.8.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -as-table@^1.0.36: - version "1.0.55" - resolved "https://registry.yarnpkg.com/as-table/-/as-table-1.0.55.tgz#dc984da3937745de902cea1d45843c01bdbbec4f" - integrity sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ== - dependencies: - printable-characters "^1.0.42" - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -blake3-wasm@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/blake3-wasm/-/blake3-wasm-2.1.5.tgz#b22dbb84bc9419ed0159caa76af4b1b132e6ba52" - integrity sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g== - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -capnp-ts@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/capnp-ts/-/capnp-ts-0.7.0.tgz#16fd8e76b667d002af8fcf4bf92bf15d1a7b54a9" - integrity sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g== - dependencies: - debug "^4.3.1" - tslib "^2.2.0" - -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -cookie@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -data-uri-to-buffer@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz#d296973d5a4897a5dbe31716d118211921f04770" - integrity sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA== - -debug@^4.3.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -esbuild@0.17.19: - version "0.17.19" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" - integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== - optionalDependencies: - "@esbuild/android-arm" "0.17.19" - "@esbuild/android-arm64" "0.17.19" - "@esbuild/android-x64" "0.17.19" - "@esbuild/darwin-arm64" "0.17.19" - "@esbuild/darwin-x64" "0.17.19" - "@esbuild/freebsd-arm64" "0.17.19" - "@esbuild/freebsd-x64" "0.17.19" - "@esbuild/linux-arm" "0.17.19" - "@esbuild/linux-arm64" "0.17.19" - "@esbuild/linux-ia32" "0.17.19" - "@esbuild/linux-loong64" "0.17.19" - "@esbuild/linux-mips64el" "0.17.19" - "@esbuild/linux-ppc64" "0.17.19" - "@esbuild/linux-riscv64" "0.17.19" - "@esbuild/linux-s390x" "0.17.19" - "@esbuild/linux-x64" "0.17.19" - "@esbuild/netbsd-x64" "0.17.19" - "@esbuild/openbsd-x64" "0.17.19" - "@esbuild/sunos-x64" "0.17.19" - "@esbuild/win32-arm64" "0.17.19" - "@esbuild/win32-ia32" "0.17.19" - "@esbuild/win32-x64" "0.17.19" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -exit-hook@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-2.2.1.tgz#007b2d92c6428eda2b76e7016a34351586934593" - integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-source@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/get-source/-/get-source-2.0.12.tgz#0b47d57ea1e53ce0d3a69f4f3d277eb8047da944" - integrity sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w== - dependencies: - data-uri-to-buffer "^2.0.0" - source-map "^0.6.1" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -magic-string@^0.25.3: - version "0.25.9" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - dependencies: - sourcemap-codec "^1.4.8" - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -miniflare@3.20231025.0: - version "3.20231025.0" - resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-3.20231025.0.tgz#1b27c21b6cdc6f927da77ddc96fe2e0a5e0fa248" - integrity sha512-pFcr2BRaGIQ26UfdDo8BMJ6kkd/Jo/FkQ/4K7UG/eORlDepsLrR/sTJddcSSIGl07MA+MGjhzopFTPpFskkS+g== - dependencies: - acorn "^8.8.0" - acorn-walk "^8.2.0" - capnp-ts "^0.7.0" - exit-hook "^2.2.1" - glob-to-regexp "^0.4.1" - source-map-support "0.5.21" - stoppable "^1.1.0" - undici "^5.22.1" - workerd "1.20231025.0" - ws "^8.11.0" - youch "^3.2.2" - zod "^3.20.6" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mustache@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" - integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== - -nanoid@^3.3.3: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -path-to-regexp@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" - integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -printable-characters@^1.0.42: - version "1.0.42" - resolved "https://registry.yarnpkg.com/printable-characters/-/printable-characters-1.0.42.tgz#3f18e977a9bd8eb37fcc4ff5659d7be90868b3d8" - integrity sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -resolve.exports@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== - -rollup-plugin-inject@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" - integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== - dependencies: - estree-walker "^0.6.1" - magic-string "^0.25.3" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-polyfills@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" - integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== - dependencies: - rollup-plugin-inject "^3.0.0" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -selfsigned@^2.0.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== - dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - -source-map-support@0.5.21: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -stacktracey@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/stacktracey/-/stacktracey-2.1.8.tgz#bf9916020738ce3700d1323b32bd2c91ea71199d" - integrity sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw== - dependencies: - as-table "^1.0.36" - get-source "^2.0.12" - -stoppable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" - integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tslib@^2.2.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -typescript@^5.0.4: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici@^5.22.1: - version "5.27.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411" - integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ== - dependencies: - "@fastify/busboy" "^2.0.0" - -workerd@1.20231025.0: - version "1.20231025.0" - resolved "https://registry.yarnpkg.com/workerd/-/workerd-1.20231025.0.tgz#de9bf6e5945c9e67eb272cec5c86232a602ac924" - integrity sha512-W1PFtpMFfvmm+ozBf+u70TE3Pviv7WA4qzDeejHDC4z+PFDq4+3KJCkgffaGBO86h+akWO0hSsc0uXL2zAqofQ== - optionalDependencies: - "@cloudflare/workerd-darwin-64" "1.20231025.0" - "@cloudflare/workerd-darwin-arm64" "1.20231025.0" - "@cloudflare/workerd-linux-64" "1.20231025.0" - "@cloudflare/workerd-linux-arm64" "1.20231025.0" - "@cloudflare/workerd-windows-64" "1.20231025.0" - -wrangler@^3.0.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/wrangler/-/wrangler-3.15.0.tgz#8b5d6d9b01f75273b50b14ed0b1fa9013f26aa6a" - integrity sha512-kxzK62rD+LRrDeZZzw8cP6FBub71vJCbfAAb594XobXajgXYh3pFjv18Vm8YLxHzoGMhmAOJPA5b4DHq4HEUCw== - dependencies: - "@cloudflare/kv-asset-handler" "^0.2.0" - "@esbuild-plugins/node-globals-polyfill" "^0.2.3" - "@esbuild-plugins/node-modules-polyfill" "^0.2.2" - blake3-wasm "^2.1.5" - chokidar "^3.5.3" - esbuild "0.17.19" - miniflare "3.20231025.0" - nanoid "^3.3.3" - path-to-regexp "^6.2.0" - resolve.exports "^2.0.2" - selfsigned "^2.0.1" - source-map "0.6.1" - source-map-support "0.5.21" - xxhash-wasm "^1.0.1" - optionalDependencies: - fsevents "~2.3.2" - -ws@^8.11.0: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== - -xxhash-wasm@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz#ecc0f813219b727af4d5f3958ca6becee2f2f1ff" - integrity sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A== - -youch@^3.2.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/youch/-/youch-3.3.3.tgz#50cfdf5bc395ce664a5073e31b712ff4a859d928" - integrity sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA== - dependencies: - cookie "^0.5.0" - mustache "^4.2.0" - stacktracey "^2.1.8" - -zod@^3.20.6: - version "3.22.4" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" - integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==