From 291b1a98093fe6a8e9bb7b5c4a89f7c793ba760f Mon Sep 17 00:00:00 2001 From: Kristian Freeman Date: Thu, 13 Apr 2023 16:26:20 -0500 Subject: [PATCH 1/3] Add Cloudflare Workers example --- .../.assets/example.png | Bin 0 -> 126797 bytes cloudflare-workers-example/.gitignore | 171 ++ cloudflare-workers-example/README.md | 25 + cloudflare-workers-example/package-lock.json | 2722 +++++++++++++++++ cloudflare-workers-example/package.json | 16 + cloudflare-workers-example/src/ai-plugin.ts | 18 + cloudflare-workers-example/src/index.ts | 56 + cloudflare-workers-example/src/openapi.ts | 46 + cloudflare-workers-example/wrangler.toml | 3 + 9 files changed, 3057 insertions(+) create mode 100644 cloudflare-workers-example/.assets/example.png create mode 100644 cloudflare-workers-example/.gitignore create mode 100644 cloudflare-workers-example/README.md create mode 100644 cloudflare-workers-example/package-lock.json create mode 100644 cloudflare-workers-example/package.json create mode 100644 cloudflare-workers-example/src/ai-plugin.ts create mode 100644 cloudflare-workers-example/src/index.ts create mode 100644 cloudflare-workers-example/src/openapi.ts create mode 100644 cloudflare-workers-example/wrangler.toml diff --git a/cloudflare-workers-example/.assets/example.png b/cloudflare-workers-example/.assets/example.png new file mode 100644 index 0000000000000000000000000000000000000000..95422315dd87b19133bb70c22d534a3a2ad1c27a GIT binary patch literal 126797 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" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz", + "integrity": "sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.15.tgz", + "integrity": "sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz", + "integrity": "sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz", + "integrity": "sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz", + "integrity": "sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz", + "integrity": "sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz", + "integrity": "sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz", + "integrity": "sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz", + "integrity": "sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz", + "integrity": "sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz", + "integrity": "sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz", + "integrity": "sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz", + "integrity": "sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz", + "integrity": "sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz", + "integrity": "sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz", + "integrity": "sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz", + "integrity": "sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz", + "integrity": "sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz", + "integrity": "sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz", + "integrity": "sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz", + "integrity": "sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "node_modules/@miniflare/cache": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.11.0.tgz", + "integrity": "sha512-L/kc9AzidPwFuk2fwHpAEePi0kNBk6FWUq3ln+9beRCDrPEpfVrDRFpNleF1NFZz5//oeVMuo8F0IVUQGzR7+Q==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.11.0", + "@miniflare/shared": "2.11.0", + "http-cache-semantics": "^4.1.0", + "undici": "5.9.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/cli-parser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.11.0.tgz", + "integrity": "sha512-JUmyRzEGAS6CouvXJwBh8p44onfw3KRpfq5JGXEuHModOGjTp6li7PQyCTNPV2Hv/7StAXWnTFGXeAqyDHuTig==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.11.0", + "kleur": "^4.1.4" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/core": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.11.0.tgz", + "integrity": "sha512-UFMFiCG0co36VpZkgFrSBnrxo71uf1x+cjlzzJi3khmMyDlnLu4RuIQsAqvKbYom6fi3G9Q8lTgM7JuOXFyjhw==", + "dev": true, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@miniflare/queues": "2.11.0", + "@miniflare/shared": "2.11.0", + "@miniflare/watcher": "2.11.0", + "busboy": "^1.6.0", + "dotenv": "^10.0.0", + "kleur": "^4.1.4", + "set-cookie-parser": "^2.4.8", + "undici": "5.9.1", + "urlpattern-polyfill": "^4.0.3" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/d1": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/d1/-/d1-2.11.0.tgz", + "integrity": "sha512-aDdBVQZ2C0Zs3+Y9ZbRctmuQxozPfpumwJ/6NG6fBadANvune/hW7ddEoxyteIEU9W3IgzVj8s4by4VvasX90A==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.11.0", + "@miniflare/shared": "2.11.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/durable-objects": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.11.0.tgz", + "integrity": "sha512-0cKJaMgraTEU1b4kqK8cjD2oTeOjA6QU3Y+lWiZT/k1PMHZULovrSFnjii7qZ8npf4VHSIN6XYPxhyxRyEM65Q==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.11.0", + "@miniflare/shared": "2.11.0", + "@miniflare/storage-memory": "2.11.0", + "undici": "5.9.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/html-rewriter": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.11.0.tgz", + "integrity": "sha512-olTqmuYTHnoTNtiA0vjQ/ixRfbwgPzDrAUbtXDCYW45VFbHfDVJrJGZX3Jg0HpSlxy86Zclle1SUxGbVDzxsBg==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.11.0", + "@miniflare/shared": "2.11.0", + "html-rewriter-wasm": "^0.4.1", + "undici": "5.9.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/http-server": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.11.0.tgz", + "integrity": "sha512-sMLcrDFzqqAvnQmAUH0hRTo8sBjW79VZYfnIH5FAGSGcKX6kdAGs9RStdYZ4CftQCBAEQScX0KBsMx5FwJRe9Q==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.11.0", + "@miniflare/shared": "2.11.0", + "@miniflare/web-sockets": "2.11.0", + "kleur": "^4.1.4", + "selfsigned": "^2.0.0", + "undici": "5.9.1", + "ws": "^8.2.2", + "youch": "^2.2.2" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/kv": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.11.0.tgz", + "integrity": "sha512-3m9dL2HBBN170V1JvwjjucR5zl4G3mlcsV6C1E7A2wLl2Z2TWvIx/tSY9hrhkD96dFnejwJ9qmPMbXMMuynhjg==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.11.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/queues": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/queues/-/queues-2.11.0.tgz", + "integrity": "sha512-fLHjdrNLKhn0LZM/aii/9GsAttFd+lWlGzK8HOg1R0vhfKBwEub4zntjMmOfFbDm1ntc21tdMK7n3ldUphwh5w==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.11.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/r2": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/r2/-/r2-2.11.0.tgz", + "integrity": "sha512-MKuyJ/gGNsK3eWbGdygvozqcyaZhM3C6NGHvoaZwH503dwN569j5DpatTWiHGFeDeSu64VqcIsGehz05GDUaag==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.11.0", + "undici": "5.9.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/runner-vm": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.11.0.tgz", + "integrity": "sha512-bkVSuvCf5+VylqN8lTiLxIYqYcKFbl+BywZGwGQndPC/3wh42J00mM0jw4hRbvXgwuBhlUyCVpEXtYlftFFT/g==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.11.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/scheduler": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.11.0.tgz", + "integrity": "sha512-DPdzINhdWeS99eIicGoluMsD4pLTTAWNQbgCv3CTwgdKA3dxdvMSCkNqZzQLiALzvk9+rSfj46FlH++HE7o7/w==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.11.0", + "@miniflare/shared": "2.11.0", + "cron-schedule": "^3.0.4" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/shared": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.11.0.tgz", + "integrity": "sha512-fWMqq3ZkWAg+k7CnyzMV/rZHugwn+/JxvVzCxrtvxzwotTN547THlOxgZe8JAP23U9BiTxOfpTfnLvFEjAmegw==", + "dev": true, + "dependencies": { + "@types/better-sqlite3": "^7.6.0", + "kleur": "^4.1.4", + "npx-import": "^1.1.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/sites": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.11.0.tgz", + "integrity": "sha512-qbefKdWZUJgsdLf+kCw03sn3h/92LZgJAbkOpP6bCrfWkXlJ37EQXO4KWdhn4Ghc7A6GwU1s1I/mdB64B3AewQ==", + "dev": true, + "dependencies": { + "@miniflare/kv": "2.11.0", + "@miniflare/shared": "2.11.0", + "@miniflare/storage-file": "2.11.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/storage-file": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.11.0.tgz", + "integrity": "sha512-beWF/lTX74x7AiaSB+xQxywPSNdhtEKvqDkRui8eOJ5kqN2o4UaleLKQGgqmCw3WyHRIsckV7If1qpbNiLtWMw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.11.0", + "@miniflare/storage-memory": "2.11.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/storage-memory": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.11.0.tgz", + "integrity": "sha512-s0AhPww7fq/Jz80NbPb+ffhcVRKnfPi7H1dHTRTre2Ud23EVJjAWl2gat42x8NOT/Fu3/o/7A72DWQQJqfO98A==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.11.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/watcher": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.11.0.tgz", + "integrity": "sha512-RUfjz2iYcsQXLcGySemJl98CJ2iierbWsPGWZhIVZI+NNhROkEy77g/Q+lvP2ATwexG3/dUSfdJ3P8aH+sI4Ig==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.11.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@miniflare/web-sockets": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.11.0.tgz", + "integrity": "sha512-NC8RKrmxrO0hZmwpzn5g4hPGA2VblnFTIBobmWoxuK95eW49zfs7dtE/PyFs+blsGv3CjTIjHVSQ782K+C6HFA==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.11.0", + "@miniflare/shared": "2.11.0", + "undici": "5.9.1", + "ws": "^8.2.2" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@types/better-sqlite3": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.4.tgz", + "integrity": "sha512-dzrRZCYPXIXfSR1/surNbJ/grU3scTaygS0OMzjlGf71i9sc2fGyHPXXiXmEvNIoE0cGwsanEFMVJxPXmco9Eg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "dev": true + }, + "node_modules/@types/stack-trace": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", + "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==", + "dev": true + }, + "node_modules/@vitest/expect": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.8.tgz", + "integrity": "sha512-xlcVXn5I5oTq6NiZSY3ykyWixBxr5mG8HYtjvpgg6KaqHm0mvhX18xuwl5YGxIRNt/A5jidd7CWcNHrSvgaQqQ==", + "dev": true, + "dependencies": { + "@vitest/spy": "0.29.8", + "@vitest/utils": "0.29.8", + "chai": "^4.3.7" + } + }, + "node_modules/@vitest/runner": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.8.tgz", + "integrity": "sha512-FzdhnRDwEr/A3Oo1jtIk/B952BBvP32n1ObMEb23oEJNO+qO5cBet6M2XWIDQmA7BDKGKvmhUf2naXyp/2JEwQ==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.29.8", + "p-limit": "^4.0.0", + "pathe": "^1.1.0" + } + }, + "node_modules/@vitest/spy": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.8.tgz", + "integrity": "sha512-VdjBe9w34vOMl5I5mYEzNX8inTxrZ+tYUVk9jxaZJmHFwmDFC/GV3KBFTA/JKswr3XHvZL+FE/yq5EVhb6pSAw==", + "dev": true, + "dependencies": { + "tinyspy": "^1.0.2" + } + }, + "node_modules/@vitest/utils": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.8.tgz", + "integrity": "sha512-qGzuf3vrTbnoY+RjjVVIBYfuWMjn3UMUqyQtdGNZ6ZIIyte7B37exj6LaVkrZiUTvzSadVvO/tJm8AEgbGCBPg==", + "dev": true, + "dependencies": { + "cli-truncate": "^3.1.0", + "diff": "^5.1.0", + "loupe": "^2.3.6", + "pretty-format": "^27.5.1" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blake3-wasm": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "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/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "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/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cron-schedule": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz", + "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz", + "integrity": "sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.15", + "@esbuild/android-arm64": "0.17.15", + "@esbuild/android-x64": "0.17.15", + "@esbuild/darwin-arm64": "0.17.15", + "@esbuild/darwin-x64": "0.17.15", + "@esbuild/freebsd-arm64": "0.17.15", + "@esbuild/freebsd-x64": "0.17.15", + "@esbuild/linux-arm": "0.17.15", + "@esbuild/linux-arm64": "0.17.15", + "@esbuild/linux-ia32": "0.17.15", + "@esbuild/linux-loong64": "0.17.15", + "@esbuild/linux-mips64el": "0.17.15", + "@esbuild/linux-ppc64": "0.17.15", + "@esbuild/linux-riscv64": "0.17.15", + "@esbuild/linux-s390x": "0.17.15", + "@esbuild/linux-x64": "0.17.15", + "@esbuild/netbsd-x64": "0.17.15", + "@esbuild/openbsd-x64": "0.17.15", + "@esbuild/sunos-x64": "0.17.15", + "@esbuild/win32-arm64": "0.17.15", + "@esbuild/win32-ia32": "0.17.15", + "@esbuild/win32-x64": "0.17.15" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.51.tgz", + "integrity": "sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.51.tgz", + "integrity": "sha512-vBtp//5VVkZWmYYvHsqBRCMMi1MzKuMIn5XDScmnykMTu9+TD9v0NMEDqQxvtFToeYmojdo5UCV2vzMQWJcJ4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.51.tgz", + "integrity": "sha512-YFmXPIOvuagDcwCejMRtCDjgPfnDu+bNeh5FU2Ryi68ADDVlWEpbtpAbrtf/lvFTWPexbgyKgzppNgsmLPr8PA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.51.tgz", + "integrity": "sha512-juYD0QnSKwAMfzwKdIF6YbueXzS6N7y4GXPDeDkApz/1RzlT42mvX9jgNmyOlWKN7YzQAYbcUEJmZJYQGdf2ow==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.51.tgz", + "integrity": "sha512-cLEI/aXjb6vo5O2Y8rvVSQ7smgLldwYY5xMxqh/dQGfWO+R1NJOFsiax3IS4Ng300SVp7Gz3czxT6d6qf2cw0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.51.tgz", + "integrity": "sha512-TcWVw/rCL2F+jUgRkgLa3qltd5gzKjIMGhkVybkjk6PJadYInPtgtUBp1/hG+mxyigaT7ib+od1Xb84b+L+1Mg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.51.tgz", + "integrity": "sha512-RFqpyC5ChyWrjx8Xj2K0EC1aN0A37H6OJfmUXIASEqJoHcntuV3j2Efr9RNmUhMfNE6yEj2VpYuDteZLGDMr0w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.51.tgz", + "integrity": "sha512-dxjhrqo5i7Rq6DXwz5v+MEHVs9VNFItJmHBe1CxROWNf4miOGoQhqSG8StStbDkQ1Mtobg6ng+4fwByOhoQoeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.51.tgz", + "integrity": "sha512-LsJynDxYF6Neg7ZC7748yweCDD+N8ByCv22/7IAZglIEniEkqdF4HCaa49JNDLw1UQGlYuhOB8ZT/MmcSWzcWg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.51.tgz", + "integrity": "sha512-D9rFxGutoqQX3xJPxqd6o+kvYKeIbM0ifW2y0bgKk5HPgQQOo2k9/2Vpto3ybGYaFPCE5qTGtqQta9PoP6ZEzw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.51.tgz", + "integrity": "sha512-vS54wQjy4IinLSlb5EIlLoln8buh1yDgliP4CuEHumrPk4PvvP4kTRIG4SzMXm6t19N0rIfT4bNdAxzJLg2k6A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.51.tgz", + "integrity": "sha512-xcdd62Y3VfGoyphNP/aIV9LP+RzFw5M5Z7ja+zdpQHHvokJM7d0rlDRMN+iSSwvUymQkqZO+G/xjb4/75du8BQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.51.tgz", + "integrity": "sha512-syXHGak9wkAnFz0gMmRBoy44JV0rp4kVCEA36P5MCeZcxFq8+fllBC2t6sKI23w3qd8Vwo9pTADCgjTSf3L3rA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.51.tgz", + "integrity": "sha512-kFAJY3dv+Wq8o28K/C7xkZk/X34rgTwhknSsElIqoEo8armCOjMJ6NsMxm48KaWY2h2RUYGtQmr+RGuUPKBhyw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.51.tgz", + "integrity": "sha512-ZZBI7qrR1FevdPBVHz/1GSk1x5GDL/iy42Zy8+neEm/HA7ma+hH/bwPEjeHXKWUDvM36CZpSL/fn1/y9/Hb+1A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.51.tgz", + "integrity": "sha512-7R1/p39M+LSVQVgDVlcY1KKm6kFKjERSX1lipMG51NPcspJD1tmiZSmmBXoY5jhHIu6JL1QkFDTx94gMYK6vfA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.51.tgz", + "integrity": "sha512-HoHaCswHxLEYN8eBTtyO0bFEWvA3Kdb++hSQ/lLG7TyKF69TeSG0RNoBRAs45x/oCeWaTDntEZlYwAfQlhEtJA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.51.tgz", + "integrity": "sha512-4rtwSAM35A07CBt1/X8RWieDj3ZUHQqUOaEo5ZBs69rt5WAFjP4aqCIobdqOy4FdhYw1yF8Z0xFBTyc9lgPtEg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.51.tgz", + "integrity": "sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.51.tgz", + "integrity": "sha512-JQDqPjuOH7o+BsKMSddMfmVJXrnYZxXDHsoLHc0xgmAZkOOCflRmC43q31pk79F9xuyWY45jDBPolb5ZgGOf9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/hono": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/hono/-/hono-3.1.5.tgz", + "integrity": "sha512-ypFLhNYoXXtep4I9zJt3VpB5/Ze3p9BLU4dpnAp7fxHOmSg8lu/Wwjs5sTJnb2GwVdfjbt9KFB9alA4Zt/P0jw==", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/html-rewriter-wasm": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz", + "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "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", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/miniflare": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.11.0.tgz", + "integrity": "sha512-QA18I1VQXdCo4nBtPJUcUDxW8c9xbc5ex5F61jwhkGVOISSnYdEheolESmjr8MYk28xwi0XD1ozS4rLaTONd+w==", + "dev": true, + "dependencies": { + "@miniflare/cache": "2.11.0", + "@miniflare/cli-parser": "2.11.0", + "@miniflare/core": "2.11.0", + "@miniflare/d1": "2.11.0", + "@miniflare/durable-objects": "2.11.0", + "@miniflare/html-rewriter": "2.11.0", + "@miniflare/http-server": "2.11.0", + "@miniflare/kv": "2.11.0", + "@miniflare/queues": "2.11.0", + "@miniflare/r2": "2.11.0", + "@miniflare/runner-vm": "2.11.0", + "@miniflare/scheduler": "2.11.0", + "@miniflare/shared": "2.11.0", + "@miniflare/sites": "2.11.0", + "@miniflare/storage-file": "2.11.0", + "@miniflare/storage-memory": "2.11.0", + "@miniflare/web-sockets": "2.11.0", + "kleur": "^4.1.4", + "semiver": "^1.1.0", + "source-map-support": "^0.5.20", + "undici": "5.9.1" + }, + "bin": { + "miniflare": "bootstrap.js" + }, + "engines": { + "node": ">=16.13" + }, + "peerDependencies": { + "@miniflare/storage-redis": "2.11.0", + "cron-schedule": "^3.0.4", + "ioredis": "^4.27.9" + }, + "peerDependenciesMeta": { + "@miniflare/storage-redis": { + "optional": true + }, + "cron-schedule": { + "optional": true + }, + "ioredis": { + "optional": true + } + } + }, + "node_modules/mlly": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz", + "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "pathe": "^1.1.0", + "pkg-types": "^1.0.2", + "ufo": "^1.1.1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, + "bin": { + "mustache": "bin/mustache" + } + }, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npx-import": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz", + "integrity": "sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==", + "dev": true, + "dependencies": { + "execa": "^6.1.0", + "parse-package-name": "^1.0.0", + "semver": "^7.3.7", + "validate-npm-package-name": "^4.0.0" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-package-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz", + "integrity": "sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "node_modules/pathe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", + "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz", + "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.1.1", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.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/rollup": { + "version": "3.20.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.2.tgz", + "integrity": "sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-inject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", + "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "node_modules/rollup-plugin-node-polyfills": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", + "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", + "dev": true, + "dependencies": { + "rollup-plugin-inject": "^3.0.0" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "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", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz", + "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==", + "dev": true + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "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": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tinybench": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz", + "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz", + "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", + "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ufo": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", + "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", + "dev": true + }, + "node_modules/undici": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.9.1.tgz", + "integrity": "sha512-6fB3a+SNnWEm4CJbgo0/CWR8RGcOCQP68SF4X0mxtYTq2VNN8T88NYrWVBAeSX+zb7bny2dx2iYhP3XHi00omg==", + "dev": true, + "engines": { + "node": ">=12.18" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz", + "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==", + "dev": true + }, + "node_modules/validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/vite": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz", + "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.18.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.8.tgz", + "integrity": "sha512-b6OtCXfk65L6SElVM20q5G546yu10/kNrhg08afEoWlFRJXFq9/6glsvSVY+aI6YeC1tu2TtAqI2jHEQmOmsFw==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.1.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.16.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/vitest": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.8.tgz", + "integrity": "sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.4", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.29.8", + "@vitest/runner": "0.29.8", + "@vitest/spy": "0.29.8", + "@vitest/utils": "0.29.8", + "acorn": "^8.8.1", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.7", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "source-map": "^0.6.1", + "std-env": "^3.3.1", + "strip-literal": "^1.0.0", + "tinybench": "^2.3.1", + "tinypool": "^0.4.0", + "tinyspy": "^1.0.2", + "vite": "^3.0.0 || ^4.0.0", + "vite-node": "0.29.8", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.16.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrangler": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.9.0.tgz", + "integrity": "sha512-5nyyR4bXKG/Rwz0dH+nOx4SWvJWmTZVSbceLyTV+ZOH1sd2vvPnnW14NUzTNEjY3XaT93XH+28mc5+UNSYsFHw==", + "dev": true, + "dependencies": { + "@cloudflare/kv-asset-handler": "^0.2.0", + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@esbuild-plugins/node-modules-polyfill": "^0.1.4", + "@miniflare/core": "2.11.0", + "@miniflare/d1": "2.11.0", + "@miniflare/durable-objects": "2.11.0", + "blake3-wasm": "^2.1.5", + "chokidar": "^3.5.3", + "esbuild": "0.14.51", + "miniflare": "2.11.0", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.2.0", + "selfsigned": "^2.0.1", + "source-map": "^0.7.4", + "xxhash-wasm": "^1.0.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/wrangler/node_modules/esbuild": { + "version": "0.14.51", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.51.tgz", + "integrity": "sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.51", + "esbuild-android-arm64": "0.14.51", + "esbuild-darwin-64": "0.14.51", + "esbuild-darwin-arm64": "0.14.51", + "esbuild-freebsd-64": "0.14.51", + "esbuild-freebsd-arm64": "0.14.51", + "esbuild-linux-32": "0.14.51", + "esbuild-linux-64": "0.14.51", + "esbuild-linux-arm": "0.14.51", + "esbuild-linux-arm64": "0.14.51", + "esbuild-linux-mips64le": "0.14.51", + "esbuild-linux-ppc64le": "0.14.51", + "esbuild-linux-riscv64": "0.14.51", + "esbuild-linux-s390x": "0.14.51", + "esbuild-netbsd-64": "0.14.51", + "esbuild-openbsd-64": "0.14.51", + "esbuild-sunos-64": "0.14.51", + "esbuild-windows-32": "0.14.51", + "esbuild-windows-64": "0.14.51", + "esbuild-windows-arm64": "0.14.51" + } + }, + "node_modules/wrangler/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xxhash-wasm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", + "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/youch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", + "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", + "dev": true, + "dependencies": { + "@types/stack-trace": "0.0.29", + "cookie": "^0.4.1", + "mustache": "^4.2.0", + "stack-trace": "0.0.10" + } + } + } +} diff --git a/cloudflare-workers-example/package.json b/cloudflare-workers-example/package.json new file mode 100644 index 00000000..888b2f6e --- /dev/null +++ b/cloudflare-workers-example/package.json @@ -0,0 +1,16 @@ +{ + "name": "cloudflare-workers-chatgpt-plugin-example", + "version": "0.0.1", + "devDependencies": { + "@cloudflare/workers-types": "^4.20230404.0", + "wrangler": "2.9.0" + }, + "private": true, + "scripts": { + "start": "wrangler dev", + "deploy": "wrangler publish" + }, + "dependencies": { + "hono": "^3.1.5" + } +} \ No newline at end of file diff --git a/cloudflare-workers-example/src/ai-plugin.ts b/cloudflare-workers-example/src/ai-plugin.ts new file mode 100644 index 00000000..8aad5766 --- /dev/null +++ b/cloudflare-workers-example/src/ai-plugin.ts @@ -0,0 +1,18 @@ +export default { + "schema_version": "v1", + "name_for_human": "GitHub Repositories Search", + "name_for_model": "github_repositories_search", + "description_for_human": "GitHub Repositories Search plugin for ChatGPT", + "description_for_model": "GitHub Repositories Search plugin for ChatGPT. You can search for GitHub repositories using this plugin.", + "auth": { + "type": "none" + }, + "api": { + "type": "openapi", + "url": "https://repoai.examples.workers.dev/openapi.yaml", + "is_user_authenticated": false + }, + "logo_url": "https://workers.cloudflare.com/resources/logo/logo.svg", + "contact_email": "support@example.com", + "legal_info_url": "http://www.example.com/legal" +} \ No newline at end of file diff --git a/cloudflare-workers-example/src/index.ts b/cloudflare-workers-example/src/index.ts new file mode 100644 index 00000000..13aaacee --- /dev/null +++ b/cloudflare-workers-example/src/index.ts @@ -0,0 +1,56 @@ +import { Hono } from 'hono' + +import aiPlugin from './ai-plugin' +import openapi from './openapi' + +const app = new Hono({ strict: false }) + +// The OpenAPI specification for the plugin +app.get('/openapi.yaml', async (c) => { + return c.text(openapi, { + headers: { 'Content-Type': 'text/yaml' } + }) +}) + +// Set up the AI plugin configuration endpoint +app.get('/.well-known/ai-plugin.json', async (c) => c.json(aiPlugin)) + +// The search endpoint, which is used by the ChatGPT client +app.get('/search', async (c) => { + const query = c.req.query('q') || 'cloudflare workers' + const url = `https://api.github.com/search/repositories?q=${query}` + + const resp = await fetch(url, { + headers: { + 'Accept': 'application/vnd.github.v3+json', + 'User-Agent': 'RepoAI - Cloudflare Workers ChatGPT Plugin Example' + } + }) + + if (!resp.ok) { + throw new Error(await resp.text()) + } + + const json = await resp.json() + const repos = json.items.map((item: any) => ({ + name: item.name, + description: item.description, + stars: item.stargazers_count, + url: item.html_url + })) + + return c.json({ repos }) +}) + +// Handle errors +// This will log the error to the console and return a 500 status code to the browser +// You can view errors in the Cloudflare Workers dashboard or using `wrangler tail` +app.onError((err, c) => { + console.error(`${err}`) + return c.text('Something went wrong', 500) +}) + +// A simple health check endpoint +app.get("/", c => c.text('OK')) + +export default app \ No newline at end of file diff --git a/cloudflare-workers-example/src/openapi.ts b/cloudflare-workers-example/src/openapi.ts new file mode 100644 index 00000000..5ac0009a --- /dev/null +++ b/cloudflare-workers-example/src/openapi.ts @@ -0,0 +1,46 @@ +export default ` +openapi: 3.0.1 +info: + title: GitHub Repositories Search API + description: A plugin that allows the user to search for GitHub repositories using ChatGPT. + version: 'v0.0.1' +servers: + - url: https://repoai.examples.workers.dev +paths: + /search: + get: + operationId: searchRepos + summary: Search repositories by a query parameter + parameters: + - name: q + in: query + description: The query to search for + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/getSearchResponse' +components: + schemas: + getSearchResponse: + type: object + properties: + repos: + type: array + items: + type: object + properties: + name: + type: string + description: + type: string + stars: + type: number + url: + type: string +` \ No newline at end of file diff --git a/cloudflare-workers-example/wrangler.toml b/cloudflare-workers-example/wrangler.toml new file mode 100644 index 00000000..d65c181a --- /dev/null +++ b/cloudflare-workers-example/wrangler.toml @@ -0,0 +1,3 @@ +name = "cloudflare-workers-chatgpt-plugin-example" +main = "src/index.ts" +compatibility_date = "2023-04-07" From 5d6c1bf8c37a80d764e7ff4c44f188c68a3e83ed Mon Sep 17 00:00:00 2001 From: Gabriel Massadas Date: Fri, 14 Apr 2023 16:13:58 +0100 Subject: [PATCH 2/3] Refactor example plugin to use @cloudflare/itty-router-openapi library --- cloudflare-workers-example/package-lock.json | 2722 ------------------ cloudflare-workers-example/package.json | 6 +- cloudflare-workers-example/src/ai-plugin.ts | 18 - cloudflare-workers-example/src/index.ts | 79 +- cloudflare-workers-example/src/openapi.ts | 46 - cloudflare-workers-example/src/search.ts | 57 + 6 files changed, 87 insertions(+), 2841 deletions(-) delete mode 100644 cloudflare-workers-example/package-lock.json delete mode 100644 cloudflare-workers-example/src/ai-plugin.ts delete mode 100644 cloudflare-workers-example/src/openapi.ts create mode 100644 cloudflare-workers-example/src/search.ts diff --git a/cloudflare-workers-example/package-lock.json b/cloudflare-workers-example/package-lock.json deleted file mode 100644 index eb41f708..00000000 --- a/cloudflare-workers-example/package-lock.json +++ /dev/null @@ -1,2722 +0,0 @@ -{ - "name": "repoai", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "repoai", - "version": "0.0.0", - "dependencies": { - "hono": "^3.1.5" - }, - "devDependencies": { - "@cloudflare/workers-types": "^4.20230404.0", - "vitest": "^0.29.8", - "wrangler": "2.9.0" - } - }, - "node_modules/@cloudflare/kv-asset-handler": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", - "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", - "dev": true, - "dependencies": { - "mime": "^3.0.0" - } - }, - "node_modules/@cloudflare/workers-types": { - "version": "4.20230404.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230404.0.tgz", - "integrity": "sha512-fG3oaJX1icfsGV74nhx1+AC6opvZsGqnpx6FvrcVqQaBmCNkjKNqDRFrpasXWFiOIvysBXHKQAzsAJkBZgnM+A==", - "dev": true - }, - "node_modules/@esbuild-plugins/node-globals-polyfill": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz", - "integrity": "sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==", - "dev": true, - "peerDependencies": { - "esbuild": "*" - } - }, - "node_modules/@esbuild-plugins/node-modules-polyfill": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz", - "integrity": "sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^4.0.0", - "rollup-plugin-node-polyfills": "^0.2.1" - }, - "peerDependencies": { - "esbuild": "*" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.15.tgz", - "integrity": "sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz", - "integrity": "sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.15.tgz", - "integrity": "sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz", - "integrity": "sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz", - "integrity": "sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz", - "integrity": "sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz", - "integrity": "sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz", - "integrity": "sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz", - "integrity": "sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz", - "integrity": "sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz", - "integrity": "sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz", - "integrity": "sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz", - "integrity": "sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz", - "integrity": "sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz", - "integrity": "sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz", - "integrity": "sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz", - "integrity": "sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz", - "integrity": "sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz", - "integrity": "sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz", - "integrity": "sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz", - "integrity": "sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz", - "integrity": "sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@iarna/toml": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", - "dev": true - }, - "node_modules/@miniflare/cache": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.11.0.tgz", - "integrity": "sha512-L/kc9AzidPwFuk2fwHpAEePi0kNBk6FWUq3ln+9beRCDrPEpfVrDRFpNleF1NFZz5//oeVMuo8F0IVUQGzR7+Q==", - "dev": true, - "dependencies": { - "@miniflare/core": "2.11.0", - "@miniflare/shared": "2.11.0", - "http-cache-semantics": "^4.1.0", - "undici": "5.9.1" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/cli-parser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.11.0.tgz", - "integrity": "sha512-JUmyRzEGAS6CouvXJwBh8p44onfw3KRpfq5JGXEuHModOGjTp6li7PQyCTNPV2Hv/7StAXWnTFGXeAqyDHuTig==", - "dev": true, - "dependencies": { - "@miniflare/shared": "2.11.0", - "kleur": "^4.1.4" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/core": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.11.0.tgz", - "integrity": "sha512-UFMFiCG0co36VpZkgFrSBnrxo71uf1x+cjlzzJi3khmMyDlnLu4RuIQsAqvKbYom6fi3G9Q8lTgM7JuOXFyjhw==", - "dev": true, - "dependencies": { - "@iarna/toml": "^2.2.5", - "@miniflare/queues": "2.11.0", - "@miniflare/shared": "2.11.0", - "@miniflare/watcher": "2.11.0", - "busboy": "^1.6.0", - "dotenv": "^10.0.0", - "kleur": "^4.1.4", - "set-cookie-parser": "^2.4.8", - "undici": "5.9.1", - "urlpattern-polyfill": "^4.0.3" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/d1": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/d1/-/d1-2.11.0.tgz", - "integrity": "sha512-aDdBVQZ2C0Zs3+Y9ZbRctmuQxozPfpumwJ/6NG6fBadANvune/hW7ddEoxyteIEU9W3IgzVj8s4by4VvasX90A==", - "dev": true, - "dependencies": { - "@miniflare/core": "2.11.0", - "@miniflare/shared": "2.11.0" - }, - "engines": { - "node": ">=16.7" - } - }, - "node_modules/@miniflare/durable-objects": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.11.0.tgz", - "integrity": "sha512-0cKJaMgraTEU1b4kqK8cjD2oTeOjA6QU3Y+lWiZT/k1PMHZULovrSFnjii7qZ8npf4VHSIN6XYPxhyxRyEM65Q==", - "dev": true, - "dependencies": { - "@miniflare/core": "2.11.0", - "@miniflare/shared": "2.11.0", - "@miniflare/storage-memory": "2.11.0", - "undici": "5.9.1" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/html-rewriter": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.11.0.tgz", - "integrity": "sha512-olTqmuYTHnoTNtiA0vjQ/ixRfbwgPzDrAUbtXDCYW45VFbHfDVJrJGZX3Jg0HpSlxy86Zclle1SUxGbVDzxsBg==", - "dev": true, - "dependencies": { - "@miniflare/core": "2.11.0", - "@miniflare/shared": "2.11.0", - "html-rewriter-wasm": "^0.4.1", - "undici": "5.9.1" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/http-server": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.11.0.tgz", - "integrity": "sha512-sMLcrDFzqqAvnQmAUH0hRTo8sBjW79VZYfnIH5FAGSGcKX6kdAGs9RStdYZ4CftQCBAEQScX0KBsMx5FwJRe9Q==", - "dev": true, - "dependencies": { - "@miniflare/core": "2.11.0", - "@miniflare/shared": "2.11.0", - "@miniflare/web-sockets": "2.11.0", - "kleur": "^4.1.4", - "selfsigned": "^2.0.0", - "undici": "5.9.1", - "ws": "^8.2.2", - "youch": "^2.2.2" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/kv": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.11.0.tgz", - "integrity": "sha512-3m9dL2HBBN170V1JvwjjucR5zl4G3mlcsV6C1E7A2wLl2Z2TWvIx/tSY9hrhkD96dFnejwJ9qmPMbXMMuynhjg==", - "dev": true, - "dependencies": { - "@miniflare/shared": "2.11.0" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/queues": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/queues/-/queues-2.11.0.tgz", - "integrity": "sha512-fLHjdrNLKhn0LZM/aii/9GsAttFd+lWlGzK8HOg1R0vhfKBwEub4zntjMmOfFbDm1ntc21tdMK7n3ldUphwh5w==", - "dev": true, - "dependencies": { - "@miniflare/shared": "2.11.0" - }, - "engines": { - "node": ">=16.7" - } - }, - "node_modules/@miniflare/r2": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/r2/-/r2-2.11.0.tgz", - "integrity": "sha512-MKuyJ/gGNsK3eWbGdygvozqcyaZhM3C6NGHvoaZwH503dwN569j5DpatTWiHGFeDeSu64VqcIsGehz05GDUaag==", - "dev": true, - "dependencies": { - "@miniflare/shared": "2.11.0", - "undici": "5.9.1" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/runner-vm": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.11.0.tgz", - "integrity": "sha512-bkVSuvCf5+VylqN8lTiLxIYqYcKFbl+BywZGwGQndPC/3wh42J00mM0jw4hRbvXgwuBhlUyCVpEXtYlftFFT/g==", - "dev": true, - "dependencies": { - "@miniflare/shared": "2.11.0" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/scheduler": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.11.0.tgz", - "integrity": "sha512-DPdzINhdWeS99eIicGoluMsD4pLTTAWNQbgCv3CTwgdKA3dxdvMSCkNqZzQLiALzvk9+rSfj46FlH++HE7o7/w==", - "dev": true, - "dependencies": { - "@miniflare/core": "2.11.0", - "@miniflare/shared": "2.11.0", - "cron-schedule": "^3.0.4" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/shared": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.11.0.tgz", - "integrity": "sha512-fWMqq3ZkWAg+k7CnyzMV/rZHugwn+/JxvVzCxrtvxzwotTN547THlOxgZe8JAP23U9BiTxOfpTfnLvFEjAmegw==", - "dev": true, - "dependencies": { - "@types/better-sqlite3": "^7.6.0", - "kleur": "^4.1.4", - "npx-import": "^1.1.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/sites": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.11.0.tgz", - "integrity": "sha512-qbefKdWZUJgsdLf+kCw03sn3h/92LZgJAbkOpP6bCrfWkXlJ37EQXO4KWdhn4Ghc7A6GwU1s1I/mdB64B3AewQ==", - "dev": true, - "dependencies": { - "@miniflare/kv": "2.11.0", - "@miniflare/shared": "2.11.0", - "@miniflare/storage-file": "2.11.0" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/storage-file": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.11.0.tgz", - "integrity": "sha512-beWF/lTX74x7AiaSB+xQxywPSNdhtEKvqDkRui8eOJ5kqN2o4UaleLKQGgqmCw3WyHRIsckV7If1qpbNiLtWMw==", - "dev": true, - "dependencies": { - "@miniflare/shared": "2.11.0", - "@miniflare/storage-memory": "2.11.0" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/storage-memory": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.11.0.tgz", - "integrity": "sha512-s0AhPww7fq/Jz80NbPb+ffhcVRKnfPi7H1dHTRTre2Ud23EVJjAWl2gat42x8NOT/Fu3/o/7A72DWQQJqfO98A==", - "dev": true, - "dependencies": { - "@miniflare/shared": "2.11.0" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/watcher": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.11.0.tgz", - "integrity": "sha512-RUfjz2iYcsQXLcGySemJl98CJ2iierbWsPGWZhIVZI+NNhROkEy77g/Q+lvP2ATwexG3/dUSfdJ3P8aH+sI4Ig==", - "dev": true, - "dependencies": { - "@miniflare/shared": "2.11.0" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@miniflare/web-sockets": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.11.0.tgz", - "integrity": "sha512-NC8RKrmxrO0hZmwpzn5g4hPGA2VblnFTIBobmWoxuK95eW49zfs7dtE/PyFs+blsGv3CjTIjHVSQ782K+C6HFA==", - "dev": true, - "dependencies": { - "@miniflare/core": "2.11.0", - "@miniflare/shared": "2.11.0", - "undici": "5.9.1", - "ws": "^8.2.2" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/@types/better-sqlite3": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.4.tgz", - "integrity": "sha512-dzrRZCYPXIXfSR1/surNbJ/grU3scTaygS0OMzjlGf71i9sc2fGyHPXXiXmEvNIoE0cGwsanEFMVJxPXmco9Eg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", - "dev": true - }, - "node_modules/@types/chai-subset": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", - "dev": true - }, - "node_modules/@types/stack-trace": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", - "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==", - "dev": true - }, - "node_modules/@vitest/expect": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.8.tgz", - "integrity": "sha512-xlcVXn5I5oTq6NiZSY3ykyWixBxr5mG8HYtjvpgg6KaqHm0mvhX18xuwl5YGxIRNt/A5jidd7CWcNHrSvgaQqQ==", - "dev": true, - "dependencies": { - "@vitest/spy": "0.29.8", - "@vitest/utils": "0.29.8", - "chai": "^4.3.7" - } - }, - "node_modules/@vitest/runner": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.8.tgz", - "integrity": "sha512-FzdhnRDwEr/A3Oo1jtIk/B952BBvP32n1ObMEb23oEJNO+qO5cBet6M2XWIDQmA7BDKGKvmhUf2naXyp/2JEwQ==", - "dev": true, - "dependencies": { - "@vitest/utils": "0.29.8", - "p-limit": "^4.0.0", - "pathe": "^1.1.0" - } - }, - "node_modules/@vitest/spy": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.8.tgz", - "integrity": "sha512-VdjBe9w34vOMl5I5mYEzNX8inTxrZ+tYUVk9jxaZJmHFwmDFC/GV3KBFTA/JKswr3XHvZL+FE/yq5EVhb6pSAw==", - "dev": true, - "dependencies": { - "tinyspy": "^1.0.2" - } - }, - "node_modules/@vitest/utils": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.8.tgz", - "integrity": "sha512-qGzuf3vrTbnoY+RjjVVIBYfuWMjn3UMUqyQtdGNZ6ZIIyte7B37exj6LaVkrZiUTvzSadVvO/tJm8AEgbGCBPg==", - "dev": true, - "dependencies": { - "cli-truncate": "^3.1.0", - "diff": "^5.1.0", - "loupe": "^2.3.6", - "pretty-format": "^27.5.1" - } - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/blake3-wasm": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", - "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", - "dev": true - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "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/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "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/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cron-schedule": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/cron-schedule/-/cron-schedule-3.0.6.tgz", - "integrity": "sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz", - "integrity": "sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.15", - "@esbuild/android-arm64": "0.17.15", - "@esbuild/android-x64": "0.17.15", - "@esbuild/darwin-arm64": "0.17.15", - "@esbuild/darwin-x64": "0.17.15", - "@esbuild/freebsd-arm64": "0.17.15", - "@esbuild/freebsd-x64": "0.17.15", - "@esbuild/linux-arm": "0.17.15", - "@esbuild/linux-arm64": "0.17.15", - "@esbuild/linux-ia32": "0.17.15", - "@esbuild/linux-loong64": "0.17.15", - "@esbuild/linux-mips64el": "0.17.15", - "@esbuild/linux-ppc64": "0.17.15", - "@esbuild/linux-riscv64": "0.17.15", - "@esbuild/linux-s390x": "0.17.15", - "@esbuild/linux-x64": "0.17.15", - "@esbuild/netbsd-x64": "0.17.15", - "@esbuild/openbsd-x64": "0.17.15", - "@esbuild/sunos-x64": "0.17.15", - "@esbuild/win32-arm64": "0.17.15", - "@esbuild/win32-ia32": "0.17.15", - "@esbuild/win32-x64": "0.17.15" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.51.tgz", - "integrity": "sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.51.tgz", - "integrity": "sha512-vBtp//5VVkZWmYYvHsqBRCMMi1MzKuMIn5XDScmnykMTu9+TD9v0NMEDqQxvtFToeYmojdo5UCV2vzMQWJcJ4A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.51.tgz", - "integrity": "sha512-YFmXPIOvuagDcwCejMRtCDjgPfnDu+bNeh5FU2Ryi68ADDVlWEpbtpAbrtf/lvFTWPexbgyKgzppNgsmLPr8PA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.51.tgz", - "integrity": "sha512-juYD0QnSKwAMfzwKdIF6YbueXzS6N7y4GXPDeDkApz/1RzlT42mvX9jgNmyOlWKN7YzQAYbcUEJmZJYQGdf2ow==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.51.tgz", - "integrity": "sha512-cLEI/aXjb6vo5O2Y8rvVSQ7smgLldwYY5xMxqh/dQGfWO+R1NJOFsiax3IS4Ng300SVp7Gz3czxT6d6qf2cw0g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.51.tgz", - "integrity": "sha512-TcWVw/rCL2F+jUgRkgLa3qltd5gzKjIMGhkVybkjk6PJadYInPtgtUBp1/hG+mxyigaT7ib+od1Xb84b+L+1Mg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.51.tgz", - "integrity": "sha512-RFqpyC5ChyWrjx8Xj2K0EC1aN0A37H6OJfmUXIASEqJoHcntuV3j2Efr9RNmUhMfNE6yEj2VpYuDteZLGDMr0w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.51.tgz", - "integrity": "sha512-dxjhrqo5i7Rq6DXwz5v+MEHVs9VNFItJmHBe1CxROWNf4miOGoQhqSG8StStbDkQ1Mtobg6ng+4fwByOhoQoeA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.51.tgz", - "integrity": "sha512-LsJynDxYF6Neg7ZC7748yweCDD+N8ByCv22/7IAZglIEniEkqdF4HCaa49JNDLw1UQGlYuhOB8ZT/MmcSWzcWg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.51.tgz", - "integrity": "sha512-D9rFxGutoqQX3xJPxqd6o+kvYKeIbM0ifW2y0bgKk5HPgQQOo2k9/2Vpto3ybGYaFPCE5qTGtqQta9PoP6ZEzw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.51.tgz", - "integrity": "sha512-vS54wQjy4IinLSlb5EIlLoln8buh1yDgliP4CuEHumrPk4PvvP4kTRIG4SzMXm6t19N0rIfT4bNdAxzJLg2k6A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.51.tgz", - "integrity": "sha512-xcdd62Y3VfGoyphNP/aIV9LP+RzFw5M5Z7ja+zdpQHHvokJM7d0rlDRMN+iSSwvUymQkqZO+G/xjb4/75du8BQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.51.tgz", - "integrity": "sha512-syXHGak9wkAnFz0gMmRBoy44JV0rp4kVCEA36P5MCeZcxFq8+fllBC2t6sKI23w3qd8Vwo9pTADCgjTSf3L3rA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.51.tgz", - "integrity": "sha512-kFAJY3dv+Wq8o28K/C7xkZk/X34rgTwhknSsElIqoEo8armCOjMJ6NsMxm48KaWY2h2RUYGtQmr+RGuUPKBhyw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.51.tgz", - "integrity": "sha512-ZZBI7qrR1FevdPBVHz/1GSk1x5GDL/iy42Zy8+neEm/HA7ma+hH/bwPEjeHXKWUDvM36CZpSL/fn1/y9/Hb+1A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.51.tgz", - "integrity": "sha512-7R1/p39M+LSVQVgDVlcY1KKm6kFKjERSX1lipMG51NPcspJD1tmiZSmmBXoY5jhHIu6JL1QkFDTx94gMYK6vfA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.51.tgz", - "integrity": "sha512-HoHaCswHxLEYN8eBTtyO0bFEWvA3Kdb++hSQ/lLG7TyKF69TeSG0RNoBRAs45x/oCeWaTDntEZlYwAfQlhEtJA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.51.tgz", - "integrity": "sha512-4rtwSAM35A07CBt1/X8RWieDj3ZUHQqUOaEo5ZBs69rt5WAFjP4aqCIobdqOy4FdhYw1yF8Z0xFBTyc9lgPtEg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.51.tgz", - "integrity": "sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.51.tgz", - "integrity": "sha512-JQDqPjuOH7o+BsKMSddMfmVJXrnYZxXDHsoLHc0xgmAZkOOCflRmC43q31pk79F9xuyWY45jDBPolb5ZgGOf9g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/hono": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/hono/-/hono-3.1.5.tgz", - "integrity": "sha512-ypFLhNYoXXtep4I9zJt3VpB5/Ze3p9BLU4dpnAp7fxHOmSg8lu/Wwjs5sTJnb2GwVdfjbt9KFB9alA4Zt/P0jw==", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/html-rewriter-wasm": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz", - "integrity": "sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "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", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/miniflare": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.11.0.tgz", - "integrity": "sha512-QA18I1VQXdCo4nBtPJUcUDxW8c9xbc5ex5F61jwhkGVOISSnYdEheolESmjr8MYk28xwi0XD1ozS4rLaTONd+w==", - "dev": true, - "dependencies": { - "@miniflare/cache": "2.11.0", - "@miniflare/cli-parser": "2.11.0", - "@miniflare/core": "2.11.0", - "@miniflare/d1": "2.11.0", - "@miniflare/durable-objects": "2.11.0", - "@miniflare/html-rewriter": "2.11.0", - "@miniflare/http-server": "2.11.0", - "@miniflare/kv": "2.11.0", - "@miniflare/queues": "2.11.0", - "@miniflare/r2": "2.11.0", - "@miniflare/runner-vm": "2.11.0", - "@miniflare/scheduler": "2.11.0", - "@miniflare/shared": "2.11.0", - "@miniflare/sites": "2.11.0", - "@miniflare/storage-file": "2.11.0", - "@miniflare/storage-memory": "2.11.0", - "@miniflare/web-sockets": "2.11.0", - "kleur": "^4.1.4", - "semiver": "^1.1.0", - "source-map-support": "^0.5.20", - "undici": "5.9.1" - }, - "bin": { - "miniflare": "bootstrap.js" - }, - "engines": { - "node": ">=16.13" - }, - "peerDependencies": { - "@miniflare/storage-redis": "2.11.0", - "cron-schedule": "^3.0.4", - "ioredis": "^4.27.9" - }, - "peerDependenciesMeta": { - "@miniflare/storage-redis": { - "optional": true - }, - "cron-schedule": { - "optional": true - }, - "ioredis": { - "optional": true - } - } - }, - "node_modules/mlly": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz", - "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==", - "dev": true, - "dependencies": { - "acorn": "^8.8.2", - "pathe": "^1.1.0", - "pkg-types": "^1.0.2", - "ufo": "^1.1.1" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true, - "bin": { - "mustache": "bin/mustache" - } - }, - "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==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npx-import": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/npx-import/-/npx-import-1.1.4.tgz", - "integrity": "sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==", - "dev": true, - "dependencies": { - "execa": "^6.1.0", - "parse-package-name": "^1.0.0", - "semver": "^7.3.7", - "validate-npm-package-name": "^4.0.0" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-package-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-package-name/-/parse-package-name-1.0.0.tgz", - "integrity": "sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==", - "dev": true - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true - }, - "node_modules/pathe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", - "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz", - "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.1.1", - "pathe": "^1.1.0" - } - }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.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/rollup": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.2.tgz", - "integrity": "sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-inject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", - "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", - "dev": true, - "dependencies": { - "estree-walker": "^0.6.1", - "magic-string": "^0.25.3", - "rollup-pluginutils": "^2.8.1" - } - }, - "node_modules/rollup-plugin-node-polyfills": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", - "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", - "dev": true, - "dependencies": { - "rollup-plugin-inject": "^3.0.0" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semiver": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", - "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "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", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true - }, - "node_modules/std-env": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz", - "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==", - "dev": true - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", - "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.8.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "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": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tinybench": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz", - "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==", - "dev": true - }, - "node_modules/tinypool": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz", - "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", - "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ufo": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", - "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", - "dev": true - }, - "node_modules/undici": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.9.1.tgz", - "integrity": "sha512-6fB3a+SNnWEm4CJbgo0/CWR8RGcOCQP68SF4X0mxtYTq2VNN8T88NYrWVBAeSX+zb7bny2dx2iYhP3XHi00omg==", - "dev": true, - "engines": { - "node": ">=12.18" - } - }, - "node_modules/urlpattern-polyfill": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz", - "integrity": "sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==", - "dev": true - }, - "node_modules/validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/vite": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz", - "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", - "dev": true, - "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.18.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.8.tgz", - "integrity": "sha512-b6OtCXfk65L6SElVM20q5G546yu10/kNrhg08afEoWlFRJXFq9/6glsvSVY+aI6YeC1tu2TtAqI2jHEQmOmsFw==", - "dev": true, - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.1.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": ">=v14.16.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/vitest": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.8.tgz", - "integrity": "sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.4", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.29.8", - "@vitest/runner": "0.29.8", - "@vitest/spy": "0.29.8", - "@vitest/utils": "0.29.8", - "acorn": "^8.8.1", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.7", - "debug": "^4.3.4", - "local-pkg": "^0.4.2", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "source-map": "^0.6.1", - "std-env": "^3.3.1", - "strip-literal": "^1.0.0", - "tinybench": "^2.3.1", - "tinypool": "^0.4.0", - "tinyspy": "^1.0.2", - "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.29.8", - "why-is-node-running": "^2.2.2" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": ">=v14.16.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", - "happy-dom": "*", - "jsdom": "*", - "playwright": "*", - "safaridriver": "*", - "webdriverio": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - }, - "playwright": { - "optional": true - }, - "safaridriver": { - "optional": true - }, - "webdriverio": { - "optional": true - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", - "dev": true, - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrangler": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.9.0.tgz", - "integrity": "sha512-5nyyR4bXKG/Rwz0dH+nOx4SWvJWmTZVSbceLyTV+ZOH1sd2vvPnnW14NUzTNEjY3XaT93XH+28mc5+UNSYsFHw==", - "dev": true, - "dependencies": { - "@cloudflare/kv-asset-handler": "^0.2.0", - "@esbuild-plugins/node-globals-polyfill": "^0.1.1", - "@esbuild-plugins/node-modules-polyfill": "^0.1.4", - "@miniflare/core": "2.11.0", - "@miniflare/d1": "2.11.0", - "@miniflare/durable-objects": "2.11.0", - "blake3-wasm": "^2.1.5", - "chokidar": "^3.5.3", - "esbuild": "0.14.51", - "miniflare": "2.11.0", - "nanoid": "^3.3.3", - "path-to-regexp": "^6.2.0", - "selfsigned": "^2.0.1", - "source-map": "^0.7.4", - "xxhash-wasm": "^1.0.1" - }, - "bin": { - "wrangler": "bin/wrangler.js", - "wrangler2": "bin/wrangler.js" - }, - "engines": { - "node": ">=16.13.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/wrangler/node_modules/esbuild": { - "version": "0.14.51", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.51.tgz", - "integrity": "sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "esbuild-android-64": "0.14.51", - "esbuild-android-arm64": "0.14.51", - "esbuild-darwin-64": "0.14.51", - "esbuild-darwin-arm64": "0.14.51", - "esbuild-freebsd-64": "0.14.51", - "esbuild-freebsd-arm64": "0.14.51", - "esbuild-linux-32": "0.14.51", - "esbuild-linux-64": "0.14.51", - "esbuild-linux-arm": "0.14.51", - "esbuild-linux-arm64": "0.14.51", - "esbuild-linux-mips64le": "0.14.51", - "esbuild-linux-ppc64le": "0.14.51", - "esbuild-linux-riscv64": "0.14.51", - "esbuild-linux-s390x": "0.14.51", - "esbuild-netbsd-64": "0.14.51", - "esbuild-openbsd-64": "0.14.51", - "esbuild-sunos-64": "0.14.51", - "esbuild-windows-32": "0.14.51", - "esbuild-windows-64": "0.14.51", - "esbuild-windows-arm64": "0.14.51" - } - }, - "node_modules/wrangler/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xxhash-wasm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/youch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", - "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", - "dev": true, - "dependencies": { - "@types/stack-trace": "0.0.29", - "cookie": "^0.4.1", - "mustache": "^4.2.0", - "stack-trace": "0.0.10" - } - } - } -} diff --git a/cloudflare-workers-example/package.json b/cloudflare-workers-example/package.json index 888b2f6e..8b837e7c 100644 --- a/cloudflare-workers-example/package.json +++ b/cloudflare-workers-example/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "devDependencies": { "@cloudflare/workers-types": "^4.20230404.0", - "wrangler": "2.9.0" + "wrangler": "^2.15.1" }, "private": true, "scripts": { @@ -11,6 +11,6 @@ "deploy": "wrangler publish" }, "dependencies": { - "hono": "^3.1.5" + "@cloudflare/itty-router-openapi": "^0.1.2" } -} \ No newline at end of file +} diff --git a/cloudflare-workers-example/src/ai-plugin.ts b/cloudflare-workers-example/src/ai-plugin.ts deleted file mode 100644 index 8aad5766..00000000 --- a/cloudflare-workers-example/src/ai-plugin.ts +++ /dev/null @@ -1,18 +0,0 @@ -export default { - "schema_version": "v1", - "name_for_human": "GitHub Repositories Search", - "name_for_model": "github_repositories_search", - "description_for_human": "GitHub Repositories Search plugin for ChatGPT", - "description_for_model": "GitHub Repositories Search plugin for ChatGPT. You can search for GitHub repositories using this plugin.", - "auth": { - "type": "none" - }, - "api": { - "type": "openapi", - "url": "https://repoai.examples.workers.dev/openapi.yaml", - "is_user_authenticated": false - }, - "logo_url": "https://workers.cloudflare.com/resources/logo/logo.svg", - "contact_email": "support@example.com", - "legal_info_url": "http://www.example.com/legal" -} \ No newline at end of file diff --git a/cloudflare-workers-example/src/index.ts b/cloudflare-workers-example/src/index.ts index 13aaacee..54448940 100644 --- a/cloudflare-workers-example/src/index.ts +++ b/cloudflare-workers-example/src/index.ts @@ -1,56 +1,31 @@ -import { Hono } from 'hono' - -import aiPlugin from './ai-plugin' -import openapi from './openapi' - -const app = new Hono({ strict: false }) - -// The OpenAPI specification for the plugin -app.get('/openapi.yaml', async (c) => { - return c.text(openapi, { - headers: { 'Content-Type': 'text/yaml' } - }) +import {OpenAPIRouter} from "@cloudflare/itty-router-openapi"; +import {GetSearch} from "./search"; + +export const router = OpenAPIRouter({ + schema: { + info: { + title: 'GitHub Repositories Search API', + description: 'A plugin that allows the user to search for GitHub repositories using ChatGPT', + version: 'v0.0.1', + }, + }, + docs_url: '/', + aiPlugin: { + name_for_human: 'GitHub Repositories Search', + name_for_model: 'github_repositories_search', + description_for_human: "GitHub Repositories Search plugin for ChatGPT.", + description_for_model: "GitHub Repositories Search plugin for ChatGPT. You can search for GitHub repositories using this plugin.", + contact_email: 'support@example.com', + legal_info_url: 'http://www.example.com/legal', + logo_url: 'https://workers.cloudflare.com/resources/logo/logo.svg', + }, }) -// Set up the AI plugin configuration endpoint -app.get('/.well-known/ai-plugin.json', async (c) => c.json(aiPlugin)) - -// The search endpoint, which is used by the ChatGPT client -app.get('/search', async (c) => { - const query = c.req.query('q') || 'cloudflare workers' - const url = `https://api.github.com/search/repositories?q=${query}` - - const resp = await fetch(url, { - headers: { - 'Accept': 'application/vnd.github.v3+json', - 'User-Agent': 'RepoAI - Cloudflare Workers ChatGPT Plugin Example' - } - }) - - if (!resp.ok) { - throw new Error(await resp.text()) - } - - const json = await resp.json() - const repos = json.items.map((item: any) => ({ - name: item.name, - description: item.description, - stars: item.stargazers_count, - url: item.html_url - })) - - return c.json({ repos }) -}) - -// Handle errors -// This will log the error to the console and return a 500 status code to the browser -// You can view errors in the Cloudflare Workers dashboard or using `wrangler tail` -app.onError((err, c) => { - console.error(`${err}`) - return c.text('Something went wrong', 500) -}) +router.get('/search', GetSearch) -// A simple health check endpoint -app.get("/", c => c.text('OK')) +// 404 for everything else +router.all('*', () => new Response('Not Found.', {status: 404})) -export default app \ No newline at end of file +export default { + fetch: router.handle +} diff --git a/cloudflare-workers-example/src/openapi.ts b/cloudflare-workers-example/src/openapi.ts deleted file mode 100644 index 5ac0009a..00000000 --- a/cloudflare-workers-example/src/openapi.ts +++ /dev/null @@ -1,46 +0,0 @@ -export default ` -openapi: 3.0.1 -info: - title: GitHub Repositories Search API - description: A plugin that allows the user to search for GitHub repositories using ChatGPT. - version: 'v0.0.1' -servers: - - url: https://repoai.examples.workers.dev -paths: - /search: - get: - operationId: searchRepos - summary: Search repositories by a query parameter - parameters: - - name: q - in: query - description: The query to search for - required: true - schema: - type: string - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/getSearchResponse' -components: - schemas: - getSearchResponse: - type: object - properties: - repos: - type: array - items: - type: object - properties: - name: - type: string - description: - type: string - stars: - type: number - url: - type: string -` \ No newline at end of file diff --git a/cloudflare-workers-example/src/search.ts b/cloudflare-workers-example/src/search.ts new file mode 100644 index 00000000..bb211224 --- /dev/null +++ b/cloudflare-workers-example/src/search.ts @@ -0,0 +1,57 @@ +import {ApiException, OpenAPIRoute, Query, ValidationError} from "@cloudflare/itty-router-openapi"; + +export class GetSearch extends OpenAPIRoute { + static schema = { + tags: ['Search'], + summary: 'Search repositories by a query parameter', + parameters: { + q: Query(String, { + description: 'The query to search for', + default: 'cloudflare workers' + }), + }, + responses: { + '200': { + schema: { + repos: [ + { + name: 'itty-router-openapi', + description: 'OpenAPI 3 schema generator and validator for Cloudflare Workers', + stars: '80', + url: 'https://github.com/cloudflare/itty-router-openapi', + } + ] + }, + }, + }, + } + + async handle(request: Request, env, ctx, data: Record) { + const url = `https://api.github.com/search/repositories?q=${data.q}` + + const resp = await fetch(url, { + headers: { + 'Accept': 'application/vnd.github.v3+json', + 'User-Agent': 'RepoAI - Cloudflare Workers ChatGPT Plugin Example' + } + }) + + if (!resp.ok) { + return new Response(await resp.text(), {status: 400}) + } + + const json = await resp.json() + + // @ts-ignore + const repos = json.items.map((item: any) => ({ + name: item.name, + description: item.description, + stars: item.stargazers_count, + url: item.html_url + })) + + return { + repos: repos + } + } +} From b829bae549284196d35e5d27a47b50028e3233ee Mon Sep 17 00:00:00 2001 From: Kristian Freeman Date: Fri, 28 Apr 2023 13:50:04 -0500 Subject: [PATCH 3/3] Update README instructions --- cloudflare-workers-example/README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cloudflare-workers-example/README.md b/cloudflare-workers-example/README.md index f71d2ed4..85b97581 100644 --- a/cloudflare-workers-example/README.md +++ b/cloudflare-workers-example/README.md @@ -16,10 +16,13 @@ The sample plugin allows ChatGPT users to search for repositories using GitHub's ## Usage -1. You can configure the `.well-known/ai-plugin.json` route in `ai-plugin.ts`. + +## Usage + +1. You can configure the `.well-known/ai-plugin.json` route in `index.ts`. 2. Update the OpenAPI schema in `openapi.ts`. -3. For any new routes or additional code, update `index.ts`. +3. You can set up any new routes and the associated OpenAPI schema by defining new routes. See `search.ts` for an example. ## Deploying to OpenAI's API -Follow the instructions [in the ChatGPT documentation](https://platform.openai.com/docs/plugins/introduction/plugin-flow) to deploy your plugin and begin using it in ChatGPT. \ No newline at end of file +Follow the instructions [in the ChatGPT documentation](https://platform.openai.com/docs/plugins/introduction/plugin-flow) to deploy your plugin and begin using it in ChatGPT.