├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── src └── index.ts ├── tsconfig.json └── wrangler.toml /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: asrvd 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /dist 3 | **/*.rs.bk 4 | Cargo.lock 5 | bin/ 6 | pkg/ 7 | wasm-pack.log 8 | worker/ 9 | node_modules/ 10 | .cargo-ok -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 ashish 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | you can use this worker to set emoji favicons for your web app easily using `` or `` tags. 2 | 3 | example - 4 | ```html 5 | ... 6 | 7 | 8 | 9 | ... 10 | ``` 11 | 12 | it converts the emoji passed as query to twemoji and sends it as svg response. 13 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "favmoji", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "favmoji", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "twemoji-parser": "^14.0.0", 13 | "wrangler": "^2.0.8" 14 | }, 15 | "devDependencies": { 16 | "@cloudflare/workers-types": "^3.11.0", 17 | "@types/twemoji-parser": "^13.1.1", 18 | "typescript": "^4.7.3" 19 | } 20 | }, 21 | "node_modules/@cloudflare/workers-types": { 22 | "version": "3.11.0", 23 | "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-3.11.0.tgz", 24 | "integrity": "sha512-XmKgZZHrCdPsoVQkdd365R7GvwTwDVJsMyEG3Dq/Tgxz6vgrps2c8PXBqEutguwvl0zDAF0AL0e2Z8WG9Dffjw==", 25 | "dev": true 26 | }, 27 | "node_modules/@esbuild-plugins/node-globals-polyfill": { 28 | "version": "0.1.1", 29 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz", 30 | "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==", 31 | "peerDependencies": { 32 | "esbuild": "*" 33 | } 34 | }, 35 | "node_modules/@esbuild-plugins/node-modules-polyfill": { 36 | "version": "0.1.4", 37 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz", 38 | "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==", 39 | "dependencies": { 40 | "escape-string-regexp": "^4.0.0", 41 | "rollup-plugin-node-polyfills": "^0.2.1" 42 | }, 43 | "peerDependencies": { 44 | "esbuild": "*" 45 | } 46 | }, 47 | "node_modules/@iarna/toml": { 48 | "version": "2.2.5", 49 | "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", 50 | "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" 51 | }, 52 | "node_modules/@miniflare/cache": { 53 | "version": "2.5.0", 54 | "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.5.0.tgz", 55 | "integrity": "sha512-tJuDbWwzYsk4pJvPPJzdlfdGFqNnn1IN3JVrGDCq8UwOXm0K8hFiSwq2nMjjT+Z/9X2FfimgaXOx81zjPL+FjQ==", 56 | "dependencies": { 57 | "@miniflare/core": "2.5.0", 58 | "@miniflare/shared": "2.5.0", 59 | "http-cache-semantics": "^4.1.0", 60 | "undici": "5.3.0" 61 | }, 62 | "engines": { 63 | "node": ">=16.7" 64 | } 65 | }, 66 | "node_modules/@miniflare/cli-parser": { 67 | "version": "2.5.0", 68 | "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.5.0.tgz", 69 | "integrity": "sha512-aY/wQ4Rwy8x0Awtb8TzhKFYp4g1Y8xBhtKFfHOZpYCEFCVfKtgdk0pHPKctf/ClK0qJdT3siJKeXxsH2GRAMXg==", 70 | "dependencies": { 71 | "@miniflare/shared": "2.5.0", 72 | "kleur": "^4.1.4" 73 | }, 74 | "engines": { 75 | "node": ">=16.7" 76 | } 77 | }, 78 | "node_modules/@miniflare/core": { 79 | "version": "2.5.0", 80 | "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.5.0.tgz", 81 | "integrity": "sha512-BtMRi17DiimcpmDjQiIU6mIYSo/h21lVGC082n5G3JTF7AcGFAs7N2Fz2YLiYuc3zYc6qJx/NIjDoOqL2gfp3A==", 82 | "dependencies": { 83 | "@iarna/toml": "^2.2.5", 84 | "@miniflare/shared": "2.5.0", 85 | "@miniflare/watcher": "2.5.0", 86 | "busboy": "^1.6.0", 87 | "dotenv": "^10.0.0", 88 | "kleur": "^4.1.4", 89 | "set-cookie-parser": "^2.4.8", 90 | "undici": "5.3.0", 91 | "urlpattern-polyfill": "^4.0.3" 92 | }, 93 | "engines": { 94 | "node": ">=16.7" 95 | } 96 | }, 97 | "node_modules/@miniflare/durable-objects": { 98 | "version": "2.5.0", 99 | "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.5.0.tgz", 100 | "integrity": "sha512-HJuP5Lsm/CCaSx3dePZiywAniGqTpU1ocCEqV6kE4zX1C0uGplfjPPXo5xsVc2NXkD+0ZL65rJzcj2tfrwKZlg==", 101 | "dependencies": { 102 | "@miniflare/core": "2.5.0", 103 | "@miniflare/shared": "2.5.0", 104 | "@miniflare/storage-memory": "2.5.0", 105 | "undici": "5.3.0" 106 | }, 107 | "engines": { 108 | "node": ">=16.7" 109 | } 110 | }, 111 | "node_modules/@miniflare/html-rewriter": { 112 | "version": "2.5.0", 113 | "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.5.0.tgz", 114 | "integrity": "sha512-bV2lQ/2clPeBmDth+cMnCBFYk8xtGs83S6PhfwmNNd24rzHvOEch1h/VCtEUy8k+rtgDSpc9pVkd31k0tMsyxQ==", 115 | "dependencies": { 116 | "@miniflare/core": "2.5.0", 117 | "@miniflare/shared": "2.5.0", 118 | "html-rewriter-wasm": "^0.4.1", 119 | "undici": "5.3.0" 120 | }, 121 | "engines": { 122 | "node": ">=16.7" 123 | } 124 | }, 125 | "node_modules/@miniflare/http-server": { 126 | "version": "2.5.0", 127 | "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.5.0.tgz", 128 | "integrity": "sha512-+sRPgNq0Q4Q6t1k94ncYzgcf/UNIv0Bz4ubUu6InJy4kMaJKeJPOLlU55lTXJSYfBZM/L4NvAui2i5vA9g2BrA==", 129 | "dependencies": { 130 | "@miniflare/core": "2.5.0", 131 | "@miniflare/shared": "2.5.0", 132 | "@miniflare/web-sockets": "2.5.0", 133 | "kleur": "^4.1.4", 134 | "selfsigned": "^2.0.0", 135 | "undici": "5.3.0", 136 | "ws": "^8.2.2", 137 | "youch": "^2.2.2" 138 | }, 139 | "engines": { 140 | "node": ">=16.7" 141 | } 142 | }, 143 | "node_modules/@miniflare/kv": { 144 | "version": "2.5.0", 145 | "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.5.0.tgz", 146 | "integrity": "sha512-5dzcUMMOKl8u75FXbpy2BHp38uafjzo3RW2HEm6EY8QoM/vHw6RChFzJ9YEPJDbvcHR8gdMpgC65LYPTjifc3g==", 147 | "dependencies": { 148 | "@miniflare/shared": "2.5.0" 149 | }, 150 | "engines": { 151 | "node": ">=16.7" 152 | } 153 | }, 154 | "node_modules/@miniflare/runner-vm": { 155 | "version": "2.5.0", 156 | "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.5.0.tgz", 157 | "integrity": "sha512-0n85cOBq91D7roqsIqJESDnj0oRi+xNVjDfd5uDIT1dW1qo5asA5Mwx6ntzCJB1BcB4khNatUIwpO3ZT+kT/YQ==", 158 | "dependencies": { 159 | "@miniflare/shared": "2.5.0" 160 | }, 161 | "engines": { 162 | "node": ">=16.7" 163 | } 164 | }, 165 | "node_modules/@miniflare/scheduler": { 166 | "version": "2.5.0", 167 | "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.5.0.tgz", 168 | "integrity": "sha512-+a/I2QLp3UaZpKVobzFH3eHsi5ubhBp8q/AH/sCDwcZmatbCp2+oDrjMgTqhF6Fm8ryR4BYkHQOgkGZ5l7gQjw==", 169 | "dependencies": { 170 | "@miniflare/core": "2.5.0", 171 | "@miniflare/shared": "2.5.0", 172 | "cron-schedule": "^3.0.4" 173 | }, 174 | "engines": { 175 | "node": ">=16.7" 176 | } 177 | }, 178 | "node_modules/@miniflare/shared": { 179 | "version": "2.5.0", 180 | "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.5.0.tgz", 181 | "integrity": "sha512-2oPxhnCGg8DNoo0NzUdc2BylGGeHQQvFJ6mDODjxbSXybeQC0+Ul5Ujv/FyU9W/eTbUEWNqKBycINyuXqSnJ/w==", 182 | "dependencies": { 183 | "ignore": "^5.1.8", 184 | "kleur": "^4.1.4" 185 | }, 186 | "engines": { 187 | "node": ">=16.7" 188 | } 189 | }, 190 | "node_modules/@miniflare/sites": { 191 | "version": "2.5.0", 192 | "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.5.0.tgz", 193 | "integrity": "sha512-AwYZb6ppP00YLkVNJnCe0lzJJemCDwibFjJywECY+aXFFNRo80sLpePPOXytplaUpen1uxnxUc8vdKBFVoB5cQ==", 194 | "dependencies": { 195 | "@miniflare/kv": "2.5.0", 196 | "@miniflare/shared": "2.5.0", 197 | "@miniflare/storage-file": "2.5.0" 198 | }, 199 | "engines": { 200 | "node": ">=16.7" 201 | } 202 | }, 203 | "node_modules/@miniflare/storage-file": { 204 | "version": "2.5.0", 205 | "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.5.0.tgz", 206 | "integrity": "sha512-ytwWZEIn3eMBnI2FdqvM5+mJVuI2aIBeZNjhZFuF5/AW3v1uslqY55Qd5Fnfn+2C7z6ivVaUv/TlEwot9ZDUnw==", 207 | "dependencies": { 208 | "@miniflare/shared": "2.5.0", 209 | "@miniflare/storage-memory": "2.5.0" 210 | }, 211 | "engines": { 212 | "node": ">=16.7" 213 | } 214 | }, 215 | "node_modules/@miniflare/storage-memory": { 216 | "version": "2.5.0", 217 | "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.5.0.tgz", 218 | "integrity": "sha512-cydVKLY0cZe2Sah0jV3s9MK3gmYLrQQcpCdMHMBEUz+nRfjfnuzs4WXzzUXCWwNT+WFC0V2WvDp2sMt+lVsmsA==", 219 | "dependencies": { 220 | "@miniflare/shared": "2.5.0" 221 | }, 222 | "engines": { 223 | "node": ">=16.7" 224 | } 225 | }, 226 | "node_modules/@miniflare/watcher": { 227 | "version": "2.5.0", 228 | "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.5.0.tgz", 229 | "integrity": "sha512-6ECE7po8NBxLmr2M00f7TWLEp1dMaAm3swf4D3ZU2xy3IqSBZE3QbOBuczYEYUIk7F+kXgaREISQg4e5QdECXQ==", 230 | "dependencies": { 231 | "@miniflare/shared": "2.5.0" 232 | }, 233 | "engines": { 234 | "node": ">=16.7" 235 | } 236 | }, 237 | "node_modules/@miniflare/web-sockets": { 238 | "version": "2.5.0", 239 | "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.5.0.tgz", 240 | "integrity": "sha512-nnLBtbHdmgGUNTxP0IeAz1B4UGCO/6W+4edzjogtz3JJumKQE+ink5+SIrmL0C1Pitrc2+kO2WYsQzWh3a2Amg==", 241 | "dependencies": { 242 | "@miniflare/core": "2.5.0", 243 | "@miniflare/shared": "2.5.0", 244 | "undici": "5.3.0", 245 | "ws": "^8.2.2" 246 | }, 247 | "engines": { 248 | "node": ">=16.7" 249 | } 250 | }, 251 | "node_modules/@types/stack-trace": { 252 | "version": "0.0.29", 253 | "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", 254 | "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==" 255 | }, 256 | "node_modules/@types/twemoji-parser": { 257 | "version": "13.1.1", 258 | "resolved": "https://registry.npmjs.org/@types/twemoji-parser/-/twemoji-parser-13.1.1.tgz", 259 | "integrity": "sha512-KhGr5xLxf8XCITgMMG8CIHpnZ5EzbVFPmStoEPd6KqtX7Lc7pc7OZyicfcWJgPv68lq/+y52zu+S5A58oOdVJw==", 260 | "dev": true 261 | }, 262 | "node_modules/blake3-wasm": { 263 | "version": "2.1.5", 264 | "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 265 | "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==" 266 | }, 267 | "node_modules/buffer-from": { 268 | "version": "1.1.2", 269 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 270 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" 271 | }, 272 | "node_modules/busboy": { 273 | "version": "1.6.0", 274 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 275 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 276 | "dependencies": { 277 | "streamsearch": "^1.1.0" 278 | }, 279 | "engines": { 280 | "node": ">=10.16.0" 281 | } 282 | }, 283 | "node_modules/cookie": { 284 | "version": "0.4.2", 285 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", 286 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", 287 | "engines": { 288 | "node": ">= 0.6" 289 | } 290 | }, 291 | "node_modules/cron-schedule": { 292 | "version": "3.0.6", 293 | "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz", 294 | "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==" 295 | }, 296 | "node_modules/dotenv": { 297 | "version": "10.0.0", 298 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", 299 | "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", 300 | "engines": { 301 | "node": ">=10" 302 | } 303 | }, 304 | "node_modules/esbuild": { 305 | "version": "0.14.34", 306 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.34.tgz", 307 | "integrity": "sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==", 308 | "hasInstallScript": true, 309 | "bin": { 310 | "esbuild": "bin/esbuild" 311 | }, 312 | "engines": { 313 | "node": ">=12" 314 | }, 315 | "optionalDependencies": { 316 | "esbuild-android-64": "0.14.34", 317 | "esbuild-android-arm64": "0.14.34", 318 | "esbuild-darwin-64": "0.14.34", 319 | "esbuild-darwin-arm64": "0.14.34", 320 | "esbuild-freebsd-64": "0.14.34", 321 | "esbuild-freebsd-arm64": "0.14.34", 322 | "esbuild-linux-32": "0.14.34", 323 | "esbuild-linux-64": "0.14.34", 324 | "esbuild-linux-arm": "0.14.34", 325 | "esbuild-linux-arm64": "0.14.34", 326 | "esbuild-linux-mips64le": "0.14.34", 327 | "esbuild-linux-ppc64le": "0.14.34", 328 | "esbuild-linux-riscv64": "0.14.34", 329 | "esbuild-linux-s390x": "0.14.34", 330 | "esbuild-netbsd-64": "0.14.34", 331 | "esbuild-openbsd-64": "0.14.34", 332 | "esbuild-sunos-64": "0.14.34", 333 | "esbuild-windows-32": "0.14.34", 334 | "esbuild-windows-64": "0.14.34", 335 | "esbuild-windows-arm64": "0.14.34" 336 | } 337 | }, 338 | "node_modules/esbuild-android-64": { 339 | "version": "0.14.34", 340 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz", 341 | "integrity": "sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==", 342 | "cpu": [ 343 | "x64" 344 | ], 345 | "optional": true, 346 | "os": [ 347 | "android" 348 | ], 349 | "engines": { 350 | "node": ">=12" 351 | } 352 | }, 353 | "node_modules/esbuild-android-arm64": { 354 | "version": "0.14.34", 355 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz", 356 | "integrity": "sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==", 357 | "cpu": [ 358 | "arm64" 359 | ], 360 | "optional": true, 361 | "os": [ 362 | "android" 363 | ], 364 | "engines": { 365 | "node": ">=12" 366 | } 367 | }, 368 | "node_modules/esbuild-darwin-64": { 369 | "version": "0.14.34", 370 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz", 371 | "integrity": "sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==", 372 | "cpu": [ 373 | "x64" 374 | ], 375 | "optional": true, 376 | "os": [ 377 | "darwin" 378 | ], 379 | "engines": { 380 | "node": ">=12" 381 | } 382 | }, 383 | "node_modules/esbuild-darwin-arm64": { 384 | "version": "0.14.34", 385 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz", 386 | "integrity": "sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==", 387 | "cpu": [ 388 | "arm64" 389 | ], 390 | "optional": true, 391 | "os": [ 392 | "darwin" 393 | ], 394 | "engines": { 395 | "node": ">=12" 396 | } 397 | }, 398 | "node_modules/esbuild-freebsd-64": { 399 | "version": "0.14.34", 400 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz", 401 | "integrity": "sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==", 402 | "cpu": [ 403 | "x64" 404 | ], 405 | "optional": true, 406 | "os": [ 407 | "freebsd" 408 | ], 409 | "engines": { 410 | "node": ">=12" 411 | } 412 | }, 413 | "node_modules/esbuild-freebsd-arm64": { 414 | "version": "0.14.34", 415 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz", 416 | "integrity": "sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==", 417 | "cpu": [ 418 | "arm64" 419 | ], 420 | "optional": true, 421 | "os": [ 422 | "freebsd" 423 | ], 424 | "engines": { 425 | "node": ">=12" 426 | } 427 | }, 428 | "node_modules/esbuild-linux-32": { 429 | "version": "0.14.34", 430 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz", 431 | "integrity": "sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==", 432 | "cpu": [ 433 | "ia32" 434 | ], 435 | "optional": true, 436 | "os": [ 437 | "linux" 438 | ], 439 | "engines": { 440 | "node": ">=12" 441 | } 442 | }, 443 | "node_modules/esbuild-linux-64": { 444 | "version": "0.14.34", 445 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz", 446 | "integrity": "sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==", 447 | "cpu": [ 448 | "x64" 449 | ], 450 | "optional": true, 451 | "os": [ 452 | "linux" 453 | ], 454 | "engines": { 455 | "node": ">=12" 456 | } 457 | }, 458 | "node_modules/esbuild-linux-arm": { 459 | "version": "0.14.34", 460 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz", 461 | "integrity": "sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==", 462 | "cpu": [ 463 | "arm" 464 | ], 465 | "optional": true, 466 | "os": [ 467 | "linux" 468 | ], 469 | "engines": { 470 | "node": ">=12" 471 | } 472 | }, 473 | "node_modules/esbuild-linux-arm64": { 474 | "version": "0.14.34", 475 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz", 476 | "integrity": "sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==", 477 | "cpu": [ 478 | "arm64" 479 | ], 480 | "optional": true, 481 | "os": [ 482 | "linux" 483 | ], 484 | "engines": { 485 | "node": ">=12" 486 | } 487 | }, 488 | "node_modules/esbuild-linux-mips64le": { 489 | "version": "0.14.34", 490 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz", 491 | "integrity": "sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==", 492 | "cpu": [ 493 | "mips64el" 494 | ], 495 | "optional": true, 496 | "os": [ 497 | "linux" 498 | ], 499 | "engines": { 500 | "node": ">=12" 501 | } 502 | }, 503 | "node_modules/esbuild-linux-ppc64le": { 504 | "version": "0.14.34", 505 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz", 506 | "integrity": "sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==", 507 | "cpu": [ 508 | "ppc64" 509 | ], 510 | "optional": true, 511 | "os": [ 512 | "linux" 513 | ], 514 | "engines": { 515 | "node": ">=12" 516 | } 517 | }, 518 | "node_modules/esbuild-linux-riscv64": { 519 | "version": "0.14.34", 520 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz", 521 | "integrity": "sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==", 522 | "cpu": [ 523 | "riscv64" 524 | ], 525 | "optional": true, 526 | "os": [ 527 | "linux" 528 | ], 529 | "engines": { 530 | "node": ">=12" 531 | } 532 | }, 533 | "node_modules/esbuild-linux-s390x": { 534 | "version": "0.14.34", 535 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz", 536 | "integrity": "sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==", 537 | "cpu": [ 538 | "s390x" 539 | ], 540 | "optional": true, 541 | "os": [ 542 | "linux" 543 | ], 544 | "engines": { 545 | "node": ">=12" 546 | } 547 | }, 548 | "node_modules/esbuild-netbsd-64": { 549 | "version": "0.14.34", 550 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz", 551 | "integrity": "sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==", 552 | "cpu": [ 553 | "x64" 554 | ], 555 | "optional": true, 556 | "os": [ 557 | "netbsd" 558 | ], 559 | "engines": { 560 | "node": ">=12" 561 | } 562 | }, 563 | "node_modules/esbuild-openbsd-64": { 564 | "version": "0.14.34", 565 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz", 566 | "integrity": "sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==", 567 | "cpu": [ 568 | "x64" 569 | ], 570 | "optional": true, 571 | "os": [ 572 | "openbsd" 573 | ], 574 | "engines": { 575 | "node": ">=12" 576 | } 577 | }, 578 | "node_modules/esbuild-sunos-64": { 579 | "version": "0.14.34", 580 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz", 581 | "integrity": "sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==", 582 | "cpu": [ 583 | "x64" 584 | ], 585 | "optional": true, 586 | "os": [ 587 | "sunos" 588 | ], 589 | "engines": { 590 | "node": ">=12" 591 | } 592 | }, 593 | "node_modules/esbuild-windows-32": { 594 | "version": "0.14.34", 595 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz", 596 | "integrity": "sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==", 597 | "cpu": [ 598 | "ia32" 599 | ], 600 | "optional": true, 601 | "os": [ 602 | "win32" 603 | ], 604 | "engines": { 605 | "node": ">=12" 606 | } 607 | }, 608 | "node_modules/esbuild-windows-64": { 609 | "version": "0.14.34", 610 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz", 611 | "integrity": "sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==", 612 | "cpu": [ 613 | "x64" 614 | ], 615 | "optional": true, 616 | "os": [ 617 | "win32" 618 | ], 619 | "engines": { 620 | "node": ">=12" 621 | } 622 | }, 623 | "node_modules/esbuild-windows-arm64": { 624 | "version": "0.14.34", 625 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz", 626 | "integrity": "sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==", 627 | "cpu": [ 628 | "arm64" 629 | ], 630 | "optional": true, 631 | "os": [ 632 | "win32" 633 | ], 634 | "engines": { 635 | "node": ">=12" 636 | } 637 | }, 638 | "node_modules/escape-string-regexp": { 639 | "version": "4.0.0", 640 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 641 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 642 | "engines": { 643 | "node": ">=10" 644 | }, 645 | "funding": { 646 | "url": "https://github.com/sponsors/sindresorhus" 647 | } 648 | }, 649 | "node_modules/estree-walker": { 650 | "version": "0.6.1", 651 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 652 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" 653 | }, 654 | "node_modules/fsevents": { 655 | "version": "2.3.2", 656 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 657 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 658 | "hasInstallScript": true, 659 | "optional": true, 660 | "os": [ 661 | "darwin" 662 | ], 663 | "engines": { 664 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 665 | } 666 | }, 667 | "node_modules/html-rewriter-wasm": { 668 | "version": "0.4.1", 669 | "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz", 670 | "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==" 671 | }, 672 | "node_modules/http-cache-semantics": { 673 | "version": "4.1.0", 674 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", 675 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" 676 | }, 677 | "node_modules/ignore": { 678 | "version": "5.2.0", 679 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 680 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 681 | "engines": { 682 | "node": ">= 4" 683 | } 684 | }, 685 | "node_modules/kleur": { 686 | "version": "4.1.4", 687 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", 688 | "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", 689 | "engines": { 690 | "node": ">=6" 691 | } 692 | }, 693 | "node_modules/magic-string": { 694 | "version": "0.25.9", 695 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 696 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 697 | "dependencies": { 698 | "sourcemap-codec": "^1.4.8" 699 | } 700 | }, 701 | "node_modules/miniflare": { 702 | "version": "2.5.0", 703 | "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.5.0.tgz", 704 | "integrity": "sha512-3IR+n/kLBA7zQ20HDjnA0HufQlr197krD8jPsaYO5wTrkIUCTvrilbI0sCo0X9CP/I3BCIl8fiZc1Jf7+MX7jQ==", 705 | "dependencies": { 706 | "@miniflare/cache": "2.5.0", 707 | "@miniflare/cli-parser": "2.5.0", 708 | "@miniflare/core": "2.5.0", 709 | "@miniflare/durable-objects": "2.5.0", 710 | "@miniflare/html-rewriter": "2.5.0", 711 | "@miniflare/http-server": "2.5.0", 712 | "@miniflare/kv": "2.5.0", 713 | "@miniflare/runner-vm": "2.5.0", 714 | "@miniflare/scheduler": "2.5.0", 715 | "@miniflare/shared": "2.5.0", 716 | "@miniflare/sites": "2.5.0", 717 | "@miniflare/storage-file": "2.5.0", 718 | "@miniflare/storage-memory": "2.5.0", 719 | "@miniflare/web-sockets": "2.5.0", 720 | "kleur": "^4.1.4", 721 | "semiver": "^1.1.0", 722 | "source-map-support": "^0.5.20", 723 | "undici": "5.3.0" 724 | }, 725 | "bin": { 726 | "miniflare": "bootstrap.js" 727 | }, 728 | "engines": { 729 | "node": ">=16.7" 730 | }, 731 | "peerDependencies": { 732 | "@miniflare/storage-redis": "2.5.0", 733 | "cron-schedule": "^3.0.4", 734 | "ioredis": "^4.27.9" 735 | }, 736 | "peerDependenciesMeta": { 737 | "@miniflare/storage-redis": { 738 | "optional": true 739 | }, 740 | "cron-schedule": { 741 | "optional": true 742 | }, 743 | "ioredis": { 744 | "optional": true 745 | } 746 | } 747 | }, 748 | "node_modules/mustache": { 749 | "version": "4.2.0", 750 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 751 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 752 | "bin": { 753 | "mustache": "bin/mustache" 754 | } 755 | }, 756 | "node_modules/nanoid": { 757 | "version": "3.3.4", 758 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 759 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 760 | "bin": { 761 | "nanoid": "bin/nanoid.cjs" 762 | }, 763 | "engines": { 764 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 765 | } 766 | }, 767 | "node_modules/node-forge": { 768 | "version": "1.3.1", 769 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 770 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", 771 | "engines": { 772 | "node": ">= 6.13.0" 773 | } 774 | }, 775 | "node_modules/path-to-regexp": { 776 | "version": "6.2.1", 777 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", 778 | "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" 779 | }, 780 | "node_modules/rollup-plugin-inject": { 781 | "version": "3.0.2", 782 | "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", 783 | "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", 784 | "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", 785 | "dependencies": { 786 | "estree-walker": "^0.6.1", 787 | "magic-string": "^0.25.3", 788 | "rollup-pluginutils": "^2.8.1" 789 | } 790 | }, 791 | "node_modules/rollup-plugin-node-polyfills": { 792 | "version": "0.2.1", 793 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", 794 | "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", 795 | "dependencies": { 796 | "rollup-plugin-inject": "^3.0.0" 797 | } 798 | }, 799 | "node_modules/rollup-pluginutils": { 800 | "version": "2.8.2", 801 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 802 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 803 | "dependencies": { 804 | "estree-walker": "^0.6.1" 805 | } 806 | }, 807 | "node_modules/selfsigned": { 808 | "version": "2.0.1", 809 | "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", 810 | "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", 811 | "dependencies": { 812 | "node-forge": "^1" 813 | }, 814 | "engines": { 815 | "node": ">=10" 816 | } 817 | }, 818 | "node_modules/semiver": { 819 | "version": "1.1.0", 820 | "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", 821 | "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", 822 | "engines": { 823 | "node": ">=6" 824 | } 825 | }, 826 | "node_modules/set-cookie-parser": { 827 | "version": "2.5.0", 828 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.0.tgz", 829 | "integrity": "sha512-cHMAtSXilfyBePduZEBVPTCftTQWz6ehWJD5YNUg4mqvRosrrjKbo4WS8JkB0/RxonMoohHm7cOGH60mDkRQ9w==" 830 | }, 831 | "node_modules/source-map": { 832 | "version": "0.6.1", 833 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 834 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 835 | "engines": { 836 | "node": ">=0.10.0" 837 | } 838 | }, 839 | "node_modules/source-map-support": { 840 | "version": "0.5.21", 841 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 842 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 843 | "dependencies": { 844 | "buffer-from": "^1.0.0", 845 | "source-map": "^0.6.0" 846 | } 847 | }, 848 | "node_modules/sourcemap-codec": { 849 | "version": "1.4.8", 850 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 851 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 852 | }, 853 | "node_modules/stack-trace": { 854 | "version": "0.0.10", 855 | "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", 856 | "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", 857 | "engines": { 858 | "node": "*" 859 | } 860 | }, 861 | "node_modules/streamsearch": { 862 | "version": "1.1.0", 863 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 864 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", 865 | "engines": { 866 | "node": ">=10.0.0" 867 | } 868 | }, 869 | "node_modules/twemoji-parser": { 870 | "version": "14.0.0", 871 | "resolved": "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-14.0.0.tgz", 872 | "integrity": "sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA==" 873 | }, 874 | "node_modules/typescript": { 875 | "version": "4.7.3", 876 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", 877 | "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", 878 | "dev": true, 879 | "bin": { 880 | "tsc": "bin/tsc", 881 | "tsserver": "bin/tsserver" 882 | }, 883 | "engines": { 884 | "node": ">=4.2.0" 885 | } 886 | }, 887 | "node_modules/undici": { 888 | "version": "5.3.0", 889 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.3.0.tgz", 890 | "integrity": "sha512-8LxC/xmR2GCE4q1heE1sJxVnnf5S6yQ2dObvMFBBWkB8aQlaqNuWovgRFWRMB7KUdLPGZfOTTmUeeLEJYX56iQ==", 891 | "engines": { 892 | "node": ">=12.18" 893 | } 894 | }, 895 | "node_modules/urlpattern-polyfill": { 896 | "version": "4.0.3", 897 | "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz", 898 | "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==" 899 | }, 900 | "node_modules/wrangler": { 901 | "version": "2.0.8", 902 | "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.0.8.tgz", 903 | "integrity": "sha512-htum4L3ikiuATiU7YsmCnEF68PtTlov2LSymZPA2S/JNjiUhwcePnDRzT/ajOqiR5cd7kxf3u+0ykc/ZdD1rbg==", 904 | "dependencies": { 905 | "@esbuild-plugins/node-globals-polyfill": "^0.1.1", 906 | "@esbuild-plugins/node-modules-polyfill": "^0.1.4", 907 | "blake3-wasm": "^2.1.5", 908 | "esbuild": "0.14.34", 909 | "miniflare": "^2.5.0", 910 | "nanoid": "^3.3.3", 911 | "path-to-regexp": "^6.2.0", 912 | "selfsigned": "^2.0.1", 913 | "semiver": "^1.1.0", 914 | "xxhash-wasm": "^1.0.1" 915 | }, 916 | "bin": { 917 | "wrangler": "bin/wrangler.js", 918 | "wrangler2": "bin/wrangler.js" 919 | }, 920 | "engines": { 921 | "node": ">=16.7.0" 922 | }, 923 | "optionalDependencies": { 924 | "fsevents": "~2.3.2" 925 | } 926 | }, 927 | "node_modules/ws": { 928 | "version": "8.8.0", 929 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", 930 | "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", 931 | "engines": { 932 | "node": ">=10.0.0" 933 | }, 934 | "peerDependencies": { 935 | "bufferutil": "^4.0.1", 936 | "utf-8-validate": "^5.0.2" 937 | }, 938 | "peerDependenciesMeta": { 939 | "bufferutil": { 940 | "optional": true 941 | }, 942 | "utf-8-validate": { 943 | "optional": true 944 | } 945 | } 946 | }, 947 | "node_modules/xxhash-wasm": { 948 | "version": "1.0.1", 949 | "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.1.tgz", 950 | "integrity": "sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==" 951 | }, 952 | "node_modules/youch": { 953 | "version": "2.2.2", 954 | "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", 955 | "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", 956 | "dependencies": { 957 | "@types/stack-trace": "0.0.29", 958 | "cookie": "^0.4.1", 959 | "mustache": "^4.2.0", 960 | "stack-trace": "0.0.10" 961 | } 962 | } 963 | }, 964 | "dependencies": { 965 | "@cloudflare/workers-types": { 966 | "version": "3.11.0", 967 | "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-3.11.0.tgz", 968 | "integrity": "sha512-XmKgZZHrCdPsoVQkdd365R7GvwTwDVJsMyEG3Dq/Tgxz6vgrps2c8PXBqEutguwvl0zDAF0AL0e2Z8WG9Dffjw==", 969 | "dev": true 970 | }, 971 | "@esbuild-plugins/node-globals-polyfill": { 972 | "version": "0.1.1", 973 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz", 974 | "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==", 975 | "requires": {} 976 | }, 977 | "@esbuild-plugins/node-modules-polyfill": { 978 | "version": "0.1.4", 979 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz", 980 | "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==", 981 | "requires": { 982 | "escape-string-regexp": "^4.0.0", 983 | "rollup-plugin-node-polyfills": "^0.2.1" 984 | } 985 | }, 986 | "@iarna/toml": { 987 | "version": "2.2.5", 988 | "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", 989 | "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" 990 | }, 991 | "@miniflare/cache": { 992 | "version": "2.5.0", 993 | "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.5.0.tgz", 994 | "integrity": "sha512-tJuDbWwzYsk4pJvPPJzdlfdGFqNnn1IN3JVrGDCq8UwOXm0K8hFiSwq2nMjjT+Z/9X2FfimgaXOx81zjPL+FjQ==", 995 | "requires": { 996 | "@miniflare/core": "2.5.0", 997 | "@miniflare/shared": "2.5.0", 998 | "http-cache-semantics": "^4.1.0", 999 | "undici": "5.3.0" 1000 | } 1001 | }, 1002 | "@miniflare/cli-parser": { 1003 | "version": "2.5.0", 1004 | "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.5.0.tgz", 1005 | "integrity": "sha512-aY/wQ4Rwy8x0Awtb8TzhKFYp4g1Y8xBhtKFfHOZpYCEFCVfKtgdk0pHPKctf/ClK0qJdT3siJKeXxsH2GRAMXg==", 1006 | "requires": { 1007 | "@miniflare/shared": "2.5.0", 1008 | "kleur": "^4.1.4" 1009 | } 1010 | }, 1011 | "@miniflare/core": { 1012 | "version": "2.5.0", 1013 | "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.5.0.tgz", 1014 | "integrity": "sha512-BtMRi17DiimcpmDjQiIU6mIYSo/h21lVGC082n5G3JTF7AcGFAs7N2Fz2YLiYuc3zYc6qJx/NIjDoOqL2gfp3A==", 1015 | "requires": { 1016 | "@iarna/toml": "^2.2.5", 1017 | "@miniflare/shared": "2.5.0", 1018 | "@miniflare/watcher": "2.5.0", 1019 | "busboy": "^1.6.0", 1020 | "dotenv": "^10.0.0", 1021 | "kleur": "^4.1.4", 1022 | "set-cookie-parser": "^2.4.8", 1023 | "undici": "5.3.0", 1024 | "urlpattern-polyfill": "^4.0.3" 1025 | } 1026 | }, 1027 | "@miniflare/durable-objects": { 1028 | "version": "2.5.0", 1029 | "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.5.0.tgz", 1030 | "integrity": "sha512-HJuP5Lsm/CCaSx3dePZiywAniGqTpU1ocCEqV6kE4zX1C0uGplfjPPXo5xsVc2NXkD+0ZL65rJzcj2tfrwKZlg==", 1031 | "requires": { 1032 | "@miniflare/core": "2.5.0", 1033 | "@miniflare/shared": "2.5.0", 1034 | "@miniflare/storage-memory": "2.5.0", 1035 | "undici": "5.3.0" 1036 | } 1037 | }, 1038 | "@miniflare/html-rewriter": { 1039 | "version": "2.5.0", 1040 | "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.5.0.tgz", 1041 | "integrity": "sha512-bV2lQ/2clPeBmDth+cMnCBFYk8xtGs83S6PhfwmNNd24rzHvOEch1h/VCtEUy8k+rtgDSpc9pVkd31k0tMsyxQ==", 1042 | "requires": { 1043 | "@miniflare/core": "2.5.0", 1044 | "@miniflare/shared": "2.5.0", 1045 | "html-rewriter-wasm": "^0.4.1", 1046 | "undici": "5.3.0" 1047 | } 1048 | }, 1049 | "@miniflare/http-server": { 1050 | "version": "2.5.0", 1051 | "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.5.0.tgz", 1052 | "integrity": "sha512-+sRPgNq0Q4Q6t1k94ncYzgcf/UNIv0Bz4ubUu6InJy4kMaJKeJPOLlU55lTXJSYfBZM/L4NvAui2i5vA9g2BrA==", 1053 | "requires": { 1054 | "@miniflare/core": "2.5.0", 1055 | "@miniflare/shared": "2.5.0", 1056 | "@miniflare/web-sockets": "2.5.0", 1057 | "kleur": "^4.1.4", 1058 | "selfsigned": "^2.0.0", 1059 | "undici": "5.3.0", 1060 | "ws": "^8.2.2", 1061 | "youch": "^2.2.2" 1062 | } 1063 | }, 1064 | "@miniflare/kv": { 1065 | "version": "2.5.0", 1066 | "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.5.0.tgz", 1067 | "integrity": "sha512-5dzcUMMOKl8u75FXbpy2BHp38uafjzo3RW2HEm6EY8QoM/vHw6RChFzJ9YEPJDbvcHR8gdMpgC65LYPTjifc3g==", 1068 | "requires": { 1069 | "@miniflare/shared": "2.5.0" 1070 | } 1071 | }, 1072 | "@miniflare/runner-vm": { 1073 | "version": "2.5.0", 1074 | "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.5.0.tgz", 1075 | "integrity": "sha512-0n85cOBq91D7roqsIqJESDnj0oRi+xNVjDfd5uDIT1dW1qo5asA5Mwx6ntzCJB1BcB4khNatUIwpO3ZT+kT/YQ==", 1076 | "requires": { 1077 | "@miniflare/shared": "2.5.0" 1078 | } 1079 | }, 1080 | "@miniflare/scheduler": { 1081 | "version": "2.5.0", 1082 | "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.5.0.tgz", 1083 | "integrity": "sha512-+a/I2QLp3UaZpKVobzFH3eHsi5ubhBp8q/AH/sCDwcZmatbCp2+oDrjMgTqhF6Fm8ryR4BYkHQOgkGZ5l7gQjw==", 1084 | "requires": { 1085 | "@miniflare/core": "2.5.0", 1086 | "@miniflare/shared": "2.5.0", 1087 | "cron-schedule": "^3.0.4" 1088 | } 1089 | }, 1090 | "@miniflare/shared": { 1091 | "version": "2.5.0", 1092 | "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.5.0.tgz", 1093 | "integrity": "sha512-2oPxhnCGg8DNoo0NzUdc2BylGGeHQQvFJ6mDODjxbSXybeQC0+Ul5Ujv/FyU9W/eTbUEWNqKBycINyuXqSnJ/w==", 1094 | "requires": { 1095 | "ignore": "^5.1.8", 1096 | "kleur": "^4.1.4" 1097 | } 1098 | }, 1099 | "@miniflare/sites": { 1100 | "version": "2.5.0", 1101 | "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.5.0.tgz", 1102 | "integrity": "sha512-AwYZb6ppP00YLkVNJnCe0lzJJemCDwibFjJywECY+aXFFNRo80sLpePPOXytplaUpen1uxnxUc8vdKBFVoB5cQ==", 1103 | "requires": { 1104 | "@miniflare/kv": "2.5.0", 1105 | "@miniflare/shared": "2.5.0", 1106 | "@miniflare/storage-file": "2.5.0" 1107 | } 1108 | }, 1109 | "@miniflare/storage-file": { 1110 | "version": "2.5.0", 1111 | "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.5.0.tgz", 1112 | "integrity": "sha512-ytwWZEIn3eMBnI2FdqvM5+mJVuI2aIBeZNjhZFuF5/AW3v1uslqY55Qd5Fnfn+2C7z6ivVaUv/TlEwot9ZDUnw==", 1113 | "requires": { 1114 | "@miniflare/shared": "2.5.0", 1115 | "@miniflare/storage-memory": "2.5.0" 1116 | } 1117 | }, 1118 | "@miniflare/storage-memory": { 1119 | "version": "2.5.0", 1120 | "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.5.0.tgz", 1121 | "integrity": "sha512-cydVKLY0cZe2Sah0jV3s9MK3gmYLrQQcpCdMHMBEUz+nRfjfnuzs4WXzzUXCWwNT+WFC0V2WvDp2sMt+lVsmsA==", 1122 | "requires": { 1123 | "@miniflare/shared": "2.5.0" 1124 | } 1125 | }, 1126 | "@miniflare/watcher": { 1127 | "version": "2.5.0", 1128 | "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.5.0.tgz", 1129 | "integrity": "sha512-6ECE7po8NBxLmr2M00f7TWLEp1dMaAm3swf4D3ZU2xy3IqSBZE3QbOBuczYEYUIk7F+kXgaREISQg4e5QdECXQ==", 1130 | "requires": { 1131 | "@miniflare/shared": "2.5.0" 1132 | } 1133 | }, 1134 | "@miniflare/web-sockets": { 1135 | "version": "2.5.0", 1136 | "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.5.0.tgz", 1137 | "integrity": "sha512-nnLBtbHdmgGUNTxP0IeAz1B4UGCO/6W+4edzjogtz3JJumKQE+ink5+SIrmL0C1Pitrc2+kO2WYsQzWh3a2Amg==", 1138 | "requires": { 1139 | "@miniflare/core": "2.5.0", 1140 | "@miniflare/shared": "2.5.0", 1141 | "undici": "5.3.0", 1142 | "ws": "^8.2.2" 1143 | } 1144 | }, 1145 | "@types/stack-trace": { 1146 | "version": "0.0.29", 1147 | "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", 1148 | "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==" 1149 | }, 1150 | "@types/twemoji-parser": { 1151 | "version": "13.1.1", 1152 | "resolved": "https://registry.npmjs.org/@types/twemoji-parser/-/twemoji-parser-13.1.1.tgz", 1153 | "integrity": "sha512-KhGr5xLxf8XCITgMMG8CIHpnZ5EzbVFPmStoEPd6KqtX7Lc7pc7OZyicfcWJgPv68lq/+y52zu+S5A58oOdVJw==", 1154 | "dev": true 1155 | }, 1156 | "blake3-wasm": { 1157 | "version": "2.1.5", 1158 | "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 1159 | "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==" 1160 | }, 1161 | "buffer-from": { 1162 | "version": "1.1.2", 1163 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 1164 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" 1165 | }, 1166 | "busboy": { 1167 | "version": "1.6.0", 1168 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 1169 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 1170 | "requires": { 1171 | "streamsearch": "^1.1.0" 1172 | } 1173 | }, 1174 | "cookie": { 1175 | "version": "0.4.2", 1176 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", 1177 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" 1178 | }, 1179 | "cron-schedule": { 1180 | "version": "3.0.6", 1181 | "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz", 1182 | "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==" 1183 | }, 1184 | "dotenv": { 1185 | "version": "10.0.0", 1186 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", 1187 | "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" 1188 | }, 1189 | "esbuild": { 1190 | "version": "0.14.34", 1191 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.34.tgz", 1192 | "integrity": "sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==", 1193 | "requires": { 1194 | "esbuild-android-64": "0.14.34", 1195 | "esbuild-android-arm64": "0.14.34", 1196 | "esbuild-darwin-64": "0.14.34", 1197 | "esbuild-darwin-arm64": "0.14.34", 1198 | "esbuild-freebsd-64": "0.14.34", 1199 | "esbuild-freebsd-arm64": "0.14.34", 1200 | "esbuild-linux-32": "0.14.34", 1201 | "esbuild-linux-64": "0.14.34", 1202 | "esbuild-linux-arm": "0.14.34", 1203 | "esbuild-linux-arm64": "0.14.34", 1204 | "esbuild-linux-mips64le": "0.14.34", 1205 | "esbuild-linux-ppc64le": "0.14.34", 1206 | "esbuild-linux-riscv64": "0.14.34", 1207 | "esbuild-linux-s390x": "0.14.34", 1208 | "esbuild-netbsd-64": "0.14.34", 1209 | "esbuild-openbsd-64": "0.14.34", 1210 | "esbuild-sunos-64": "0.14.34", 1211 | "esbuild-windows-32": "0.14.34", 1212 | "esbuild-windows-64": "0.14.34", 1213 | "esbuild-windows-arm64": "0.14.34" 1214 | } 1215 | }, 1216 | "esbuild-android-64": { 1217 | "version": "0.14.34", 1218 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz", 1219 | "integrity": "sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==", 1220 | "optional": true 1221 | }, 1222 | "esbuild-android-arm64": { 1223 | "version": "0.14.34", 1224 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz", 1225 | "integrity": "sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==", 1226 | "optional": true 1227 | }, 1228 | "esbuild-darwin-64": { 1229 | "version": "0.14.34", 1230 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz", 1231 | "integrity": "sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==", 1232 | "optional": true 1233 | }, 1234 | "esbuild-darwin-arm64": { 1235 | "version": "0.14.34", 1236 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz", 1237 | "integrity": "sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==", 1238 | "optional": true 1239 | }, 1240 | "esbuild-freebsd-64": { 1241 | "version": "0.14.34", 1242 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz", 1243 | "integrity": "sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==", 1244 | "optional": true 1245 | }, 1246 | "esbuild-freebsd-arm64": { 1247 | "version": "0.14.34", 1248 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz", 1249 | "integrity": "sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==", 1250 | "optional": true 1251 | }, 1252 | "esbuild-linux-32": { 1253 | "version": "0.14.34", 1254 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz", 1255 | "integrity": "sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==", 1256 | "optional": true 1257 | }, 1258 | "esbuild-linux-64": { 1259 | "version": "0.14.34", 1260 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz", 1261 | "integrity": "sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==", 1262 | "optional": true 1263 | }, 1264 | "esbuild-linux-arm": { 1265 | "version": "0.14.34", 1266 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz", 1267 | "integrity": "sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==", 1268 | "optional": true 1269 | }, 1270 | "esbuild-linux-arm64": { 1271 | "version": "0.14.34", 1272 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz", 1273 | "integrity": "sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==", 1274 | "optional": true 1275 | }, 1276 | "esbuild-linux-mips64le": { 1277 | "version": "0.14.34", 1278 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz", 1279 | "integrity": "sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==", 1280 | "optional": true 1281 | }, 1282 | "esbuild-linux-ppc64le": { 1283 | "version": "0.14.34", 1284 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz", 1285 | "integrity": "sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==", 1286 | "optional": true 1287 | }, 1288 | "esbuild-linux-riscv64": { 1289 | "version": "0.14.34", 1290 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz", 1291 | "integrity": "sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==", 1292 | "optional": true 1293 | }, 1294 | "esbuild-linux-s390x": { 1295 | "version": "0.14.34", 1296 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz", 1297 | "integrity": "sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==", 1298 | "optional": true 1299 | }, 1300 | "esbuild-netbsd-64": { 1301 | "version": "0.14.34", 1302 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz", 1303 | "integrity": "sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==", 1304 | "optional": true 1305 | }, 1306 | "esbuild-openbsd-64": { 1307 | "version": "0.14.34", 1308 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz", 1309 | "integrity": "sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==", 1310 | "optional": true 1311 | }, 1312 | "esbuild-sunos-64": { 1313 | "version": "0.14.34", 1314 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz", 1315 | "integrity": "sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==", 1316 | "optional": true 1317 | }, 1318 | "esbuild-windows-32": { 1319 | "version": "0.14.34", 1320 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz", 1321 | "integrity": "sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==", 1322 | "optional": true 1323 | }, 1324 | "esbuild-windows-64": { 1325 | "version": "0.14.34", 1326 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz", 1327 | "integrity": "sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==", 1328 | "optional": true 1329 | }, 1330 | "esbuild-windows-arm64": { 1331 | "version": "0.14.34", 1332 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz", 1333 | "integrity": "sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==", 1334 | "optional": true 1335 | }, 1336 | "escape-string-regexp": { 1337 | "version": "4.0.0", 1338 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1339 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" 1340 | }, 1341 | "estree-walker": { 1342 | "version": "0.6.1", 1343 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 1344 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" 1345 | }, 1346 | "fsevents": { 1347 | "version": "2.3.2", 1348 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1349 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1350 | "optional": true 1351 | }, 1352 | "html-rewriter-wasm": { 1353 | "version": "0.4.1", 1354 | "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz", 1355 | "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==" 1356 | }, 1357 | "http-cache-semantics": { 1358 | "version": "4.1.0", 1359 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", 1360 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" 1361 | }, 1362 | "ignore": { 1363 | "version": "5.2.0", 1364 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 1365 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" 1366 | }, 1367 | "kleur": { 1368 | "version": "4.1.4", 1369 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", 1370 | "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==" 1371 | }, 1372 | "magic-string": { 1373 | "version": "0.25.9", 1374 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 1375 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 1376 | "requires": { 1377 | "sourcemap-codec": "^1.4.8" 1378 | } 1379 | }, 1380 | "miniflare": { 1381 | "version": "2.5.0", 1382 | "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.5.0.tgz", 1383 | "integrity": "sha512-3IR+n/kLBA7zQ20HDjnA0HufQlr197krD8jPsaYO5wTrkIUCTvrilbI0sCo0X9CP/I3BCIl8fiZc1Jf7+MX7jQ==", 1384 | "requires": { 1385 | "@miniflare/cache": "2.5.0", 1386 | "@miniflare/cli-parser": "2.5.0", 1387 | "@miniflare/core": "2.5.0", 1388 | "@miniflare/durable-objects": "2.5.0", 1389 | "@miniflare/html-rewriter": "2.5.0", 1390 | "@miniflare/http-server": "2.5.0", 1391 | "@miniflare/kv": "2.5.0", 1392 | "@miniflare/runner-vm": "2.5.0", 1393 | "@miniflare/scheduler": "2.5.0", 1394 | "@miniflare/shared": "2.5.0", 1395 | "@miniflare/sites": "2.5.0", 1396 | "@miniflare/storage-file": "2.5.0", 1397 | "@miniflare/storage-memory": "2.5.0", 1398 | "@miniflare/web-sockets": "2.5.0", 1399 | "kleur": "^4.1.4", 1400 | "semiver": "^1.1.0", 1401 | "source-map-support": "^0.5.20", 1402 | "undici": "5.3.0" 1403 | } 1404 | }, 1405 | "mustache": { 1406 | "version": "4.2.0", 1407 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 1408 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" 1409 | }, 1410 | "nanoid": { 1411 | "version": "3.3.4", 1412 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1413 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" 1414 | }, 1415 | "node-forge": { 1416 | "version": "1.3.1", 1417 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 1418 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" 1419 | }, 1420 | "path-to-regexp": { 1421 | "version": "6.2.1", 1422 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", 1423 | "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" 1424 | }, 1425 | "rollup-plugin-inject": { 1426 | "version": "3.0.2", 1427 | "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", 1428 | "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", 1429 | "requires": { 1430 | "estree-walker": "^0.6.1", 1431 | "magic-string": "^0.25.3", 1432 | "rollup-pluginutils": "^2.8.1" 1433 | } 1434 | }, 1435 | "rollup-plugin-node-polyfills": { 1436 | "version": "0.2.1", 1437 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", 1438 | "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", 1439 | "requires": { 1440 | "rollup-plugin-inject": "^3.0.0" 1441 | } 1442 | }, 1443 | "rollup-pluginutils": { 1444 | "version": "2.8.2", 1445 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 1446 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 1447 | "requires": { 1448 | "estree-walker": "^0.6.1" 1449 | } 1450 | }, 1451 | "selfsigned": { 1452 | "version": "2.0.1", 1453 | "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", 1454 | "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", 1455 | "requires": { 1456 | "node-forge": "^1" 1457 | } 1458 | }, 1459 | "semiver": { 1460 | "version": "1.1.0", 1461 | "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", 1462 | "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" 1463 | }, 1464 | "set-cookie-parser": { 1465 | "version": "2.5.0", 1466 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.0.tgz", 1467 | "integrity": "sha512-cHMAtSXilfyBePduZEBVPTCftTQWz6ehWJD5YNUg4mqvRosrrjKbo4WS8JkB0/RxonMoohHm7cOGH60mDkRQ9w==" 1468 | }, 1469 | "source-map": { 1470 | "version": "0.6.1", 1471 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1472 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 1473 | }, 1474 | "source-map-support": { 1475 | "version": "0.5.21", 1476 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 1477 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 1478 | "requires": { 1479 | "buffer-from": "^1.0.0", 1480 | "source-map": "^0.6.0" 1481 | } 1482 | }, 1483 | "sourcemap-codec": { 1484 | "version": "1.4.8", 1485 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1486 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 1487 | }, 1488 | "stack-trace": { 1489 | "version": "0.0.10", 1490 | "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", 1491 | "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" 1492 | }, 1493 | "streamsearch": { 1494 | "version": "1.1.0", 1495 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 1496 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" 1497 | }, 1498 | "twemoji-parser": { 1499 | "version": "14.0.0", 1500 | "resolved": "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-14.0.0.tgz", 1501 | "integrity": "sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA==" 1502 | }, 1503 | "typescript": { 1504 | "version": "4.7.3", 1505 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", 1506 | "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", 1507 | "dev": true 1508 | }, 1509 | "undici": { 1510 | "version": "5.3.0", 1511 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.3.0.tgz", 1512 | "integrity": "sha512-8LxC/xmR2GCE4q1heE1sJxVnnf5S6yQ2dObvMFBBWkB8aQlaqNuWovgRFWRMB7KUdLPGZfOTTmUeeLEJYX56iQ==" 1513 | }, 1514 | "urlpattern-polyfill": { 1515 | "version": "4.0.3", 1516 | "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz", 1517 | "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==" 1518 | }, 1519 | "wrangler": { 1520 | "version": "2.0.8", 1521 | "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.0.8.tgz", 1522 | "integrity": "sha512-htum4L3ikiuATiU7YsmCnEF68PtTlov2LSymZPA2S/JNjiUhwcePnDRzT/ajOqiR5cd7kxf3u+0ykc/ZdD1rbg==", 1523 | "requires": { 1524 | "@esbuild-plugins/node-globals-polyfill": "^0.1.1", 1525 | "@esbuild-plugins/node-modules-polyfill": "^0.1.4", 1526 | "blake3-wasm": "^2.1.5", 1527 | "esbuild": "0.14.34", 1528 | "fsevents": "~2.3.2", 1529 | "miniflare": "^2.5.0", 1530 | "nanoid": "^3.3.3", 1531 | "path-to-regexp": "^6.2.0", 1532 | "selfsigned": "^2.0.1", 1533 | "semiver": "^1.1.0", 1534 | "xxhash-wasm": "^1.0.1" 1535 | } 1536 | }, 1537 | "ws": { 1538 | "version": "8.8.0", 1539 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", 1540 | "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", 1541 | "requires": {} 1542 | }, 1543 | "xxhash-wasm": { 1544 | "version": "1.0.1", 1545 | "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.1.tgz", 1546 | "integrity": "sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==" 1547 | }, 1548 | "youch": { 1549 | "version": "2.2.2", 1550 | "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", 1551 | "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", 1552 | "requires": { 1553 | "@types/stack-trace": "0.0.29", 1554 | "cookie": "^0.4.1", 1555 | "mustache": "^4.2.0", 1556 | "stack-trace": "0.0.10" 1557 | } 1558 | } 1559 | } 1560 | } 1561 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "favmoji", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "twemoji-parser": "^14.0.0", 14 | "wrangler": "^2.0.8" 15 | }, 16 | "devDependencies": { 17 | "@cloudflare/workers-types": "^3.11.0", 18 | "@types/twemoji-parser": "^13.1.1", 19 | "typescript": "^4.7.3" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { parse } from "twemoji-parser"; 2 | 3 | export interface Env {} 4 | 5 | export default { 6 | async fetch( 7 | request: Request, 8 | env: Env, 9 | ctx: ExecutionContext 10 | ): Promise { 11 | const url = new URL(request.url); 12 | const path = decodeURIComponent(url.pathname).replace("/", ""); 13 | if (path.length === 0) { 14 | return new Response( 15 | ` 16 | 17 | favmoji 18 | 19 | 20 | 21 | 22 |
23 |             

example request: https://favmoji.asheeshh.ga/🌸

24 |

example usage as favicon: <link rel="icon" href="https://favmoji.asheeshh.ga/🌸" />

25 |
26 | 27 | 32 | `, 33 | { 34 | headers: { 35 | "content-type": "text/html; charset=utf-8", 36 | }, 37 | } 38 | ); 39 | } 40 | const emoji = parse(path); 41 | if (emoji.length === 0) { 42 | return new Response("No emoji found in given request", { 43 | status: 404, 44 | }); 45 | } else { 46 | return fetch(emoji[0].url); 47 | } 48 | }, 49 | }; 50 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2021" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | "lib": [ 16 | "es2021" 17 | ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, 18 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 19 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 20 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 21 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ 22 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 23 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ 24 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ 25 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 26 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 27 | 28 | /* Modules */ 29 | "module": "es2022" /* Specify what module code is generated. */, 30 | // "rootDir": "./", /* Specify the root folder within your source files. */ 31 | "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, 32 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 33 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 34 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 35 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ 36 | "types": [ 37 | "@cloudflare/workers-types" 38 | ] /* Specify type package names to be included without being referenced in a source file. */, 39 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 40 | "resolveJsonModule": true /* Enable importing .json files */, 41 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ 42 | 43 | /* JavaScript Support */ 44 | "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, 45 | "checkJs": true /* Enable error reporting in type-checked JavaScript files. */, 46 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ 47 | 48 | /* Emit */ 49 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 50 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 51 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 52 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 53 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ 54 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 55 | // "removeComments": true, /* Disable emitting comments. */ 56 | "noEmit": true /* Disable emitting files from a compilation. */, 57 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 58 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ 59 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 60 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 61 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 62 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 63 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 64 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 65 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 66 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ 67 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ 68 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 69 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ 70 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 71 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 72 | 73 | /* Interop Constraints */ 74 | "isolatedModules": true /* Ensure that each file can be safely transpiled without relying on other imports. */, 75 | "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, 76 | // "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, 77 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 78 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 79 | 80 | /* Type Checking */ 81 | "strict": true /* Enable all strict type-checking options. */, 82 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ 83 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ 84 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 85 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ 86 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 87 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ 88 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ 89 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 90 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ 91 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ 92 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 93 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 94 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 95 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 96 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 97 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ 98 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 99 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 100 | 101 | /* Completeness */ 102 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 103 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "favmoji" 2 | main = "src/index.ts" 3 | compatibility_date = "2022-06-10" 4 | --------------------------------------------------------------------------------