diff --git a/package-lock.json b/package-lock.json index ed7c059..9d0fe9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "@nrwl/js": "14.1.5", "@nrwl/linter": "14.1.5", "@nrwl/nx-cloud": "latest", + "@nrwl/nx-plugin": "^14.1.7", "@nrwl/workspace": "14.1.5", "@swc/cli": "~0.1.55", "@swc/core": "~1.2.143", @@ -593,6 +594,46 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cloudflare/workers-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-3.10.0.tgz", + "integrity": "sha512-gn+H5Ps9yV1VYz8FJ08bMfXLW8ubNblRF9Z+m+0ctNMyl3CdoZmUfH1pMTxYE8SMUJbLxuNvpdlZhwLDoGFXaw==", + "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-plugins/node-modules-polyfill/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/@eslint/eslintrc": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", @@ -690,6 +731,12 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "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/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -1014,6 +1061,297 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@miniflare/cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.4.0.tgz", + "integrity": "sha512-tMDXlUVlThgFubJmlxZoKmLK8kBxDmuMbVMt7csHpXegzkuo2TmIsDqBE/C3CRiJ5xeCQgpD6iZtKBu5Zn5fRA==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "http-cache-semantics": "^4.1.0", + "undici": "4.13.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/cli-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.4.0.tgz", + "integrity": "sha512-Xr5lO8f+oIr9r/b2dfo0on1p0MNN+pkwRHWoY5ACSnp9FaGnwm/g71DM7AajIQPIk0TpRsSVNDx8Ygj1LPT+sQ==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.4.0", + "kleur": "^4.1.4" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/cli-parser/node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@miniflare/core": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.4.0.tgz", + "integrity": "sha512-vYl8xaWTFzxtkbzx3IkT4Py0OAFdfmFnVo627O1HKHWVGlkjVr8UKtxBpIR+f5pq/HCMzzqA1HM9FXO0dQfy3A==", + "dev": true, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@miniflare/shared": "2.4.0", + "@miniflare/watcher": "2.4.0", + "busboy": "^0.3.1", + "dotenv": "^10.0.0", + "kleur": "^4.1.4", + "set-cookie-parser": "^2.4.8", + "undici": "4.13.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/core/node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@miniflare/durable-objects": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.4.0.tgz", + "integrity": "sha512-VVLaUXXcAQcYE/3YmDLTacZf5OzR8bib6q1T9NqVb0uK5sLMQqyHvQdsG5rMqs7iyxfJxyZ0bL2OW9XGALOkoQ==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "@miniflare/storage-memory": "2.4.0", + "undici": "4.13.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/html-rewriter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.4.0.tgz", + "integrity": "sha512-ZG8819N7LelDD+8+Ss5FZpVyQQq/V2igod0qE68JK4he/w4/yn57Rk6Efb49y15HoHAXl2RpCCsnCyIow/Xjug==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "html-rewriter-wasm": "^0.4.1", + "undici": "4.13.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/http-server": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.4.0.tgz", + "integrity": "sha512-r6Z/nqxE0oa1z63L95yvnG0PUeLRxZOeGS7ADxZMFKan4WD5lvYtSKDuDEm0lkbQshCOHQ3uXFr0cotOm8JoMQ==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "@miniflare/web-sockets": "2.4.0", + "kleur": "^4.1.4", + "selfsigned": "^2.0.0", + "undici": "4.13.0", + "ws": "^8.2.2", + "youch": "^2.2.2" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/http-server/node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@miniflare/http-server/node_modules/ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "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/@miniflare/kv": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.4.0.tgz", + "integrity": "sha512-1UW7f1386xR6EDEXNZOR1TpFwQfRRSxUPqD6m/U0WprlsbM0cIYGz+AUeaVbkFf8lfE2MeXCUrjbWsLOvsnw3g==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.4.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/runner-vm": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.4.0.tgz", + "integrity": "sha512-7sdwBYzXQTwYeR3tTvQ+vJfzc7BXwqR8AUPK9l5gvCtg+Geq9sMslr5SikIJpgcvbYqKDjvC9DQEPJ3sqr9cSQ==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.4.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/scheduler": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.4.0.tgz", + "integrity": "sha512-dfMCXoAS8Y+3xABNxYju62I2xIBS54Op7ohCHoatvAM5RvualJUPICEMPZzX6/z29q5xPIeSLhLDhl/asAQ19w==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "cron-schedule": "^3.0.4" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/shared": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.4.0.tgz", + "integrity": "sha512-lPQFzBUVGNQ93gQ/dliToWnO0OqAgsD3/902Pd/IixVSRwRj3BTnYv2dHMUKZcODBPrhnbqZeqcPWdBLzEx8uw==", + "dev": true, + "dependencies": { + "ignore": "^5.1.8", + "kleur": "^4.1.4" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/shared/node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@miniflare/sites": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.4.0.tgz", + "integrity": "sha512-YZy/TujnR1lkBvCncDDQ8tsWsXRE4JJ4x9a0bKN/XnZh7r6OhDM0sw4BFcBQhT6Ukdtttam1O3FlJxnMitrDGg==", + "dev": true, + "dependencies": { + "@miniflare/kv": "2.4.0", + "@miniflare/shared": "2.4.0", + "@miniflare/storage-file": "2.4.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/storage-file": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.4.0.tgz", + "integrity": "sha512-f1AUMz8xps/4VhNJMb8JeCevZFeU4pg2lIWmC11gG4xeq2nibTPBi6Qtx594Le7ZKij/tF6rRsoNfGau2Q5gdw==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.4.0", + "@miniflare/storage-memory": "2.4.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/storage-memory": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.4.0.tgz", + "integrity": "sha512-mhWwgHhDNtEa7y1bYbdVucV0lqUmzagYXUSppAdSGS5JPyJMyw3HseqRNTk6gC/vKlvEYlFf3ugWcREGCedr9A==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.4.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/watcher": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.4.0.tgz", + "integrity": "sha512-gDQRUxwOjmctvowyd4Hcdy3fjxz3ERKzirp6TvA3AWUohKZk3IhwGlaA8aCwbdP+ELYQlG5wK44AfLSGi956fg==", + "dev": true, + "dependencies": { + "@miniflare/shared": "2.4.0" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/web-sockets": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.4.0.tgz", + "integrity": "sha512-cz/cN0GoQOXRLh80UmlcEJODPIw2ijKBK3PLRzvfTzqQ5avK6wp2M8Fj8C/5JIT6g7siwvBANyKXD3U3RpKGHQ==", + "dev": true, + "dependencies": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "undici": "4.13.0", + "ws": "^8.2.2" + }, + "engines": { + "node": ">=16.7" + } + }, + "node_modules/@miniflare/web-sockets/node_modules/ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "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/@mono-ukulele/cf-workers": { "resolved": "packages/cloudflare/workers", "link": true @@ -1187,79 +1525,288 @@ "nx-cloud": "bin/nx-cloud.js" } }, - "node_modules/@nrwl/tao": { - "version": "14.1.5", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.1.5.tgz", - "integrity": "sha512-C30aBxnAJ/0r5uBl8hQKsfllGb+jtMl9sLKStHwP4WEpIO9A8NelL/bGXEKXUiTQ8zFOZmCeHMo0VPfb/xePEg==", + "node_modules/@nrwl/nx-plugin": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/nx-plugin/-/nx-plugin-14.1.7.tgz", + "integrity": "sha512-g9bdSsrDkG2waPrmFpd0/sfqv/vZeF9inxrJXPIpE3AStq6jUtb7V5glaS5V91cdD5H1I+Jh3XO+sFMTexzWmQ==", "dev": true, "dependencies": { - "nx": "14.1.5" - }, - "bin": { - "tao": "index.js" + "@nrwl/devkit": "14.1.7", + "@nrwl/jest": "14.1.7", + "@nrwl/js": "14.1.7", + "@nrwl/linter": "14.1.7", + "fs-extra": "^10.1.0", + "rxjs": "^6.5.4", + "tslib": "^2.3.0" } }, - "node_modules/@nrwl/workspace": { - "version": "14.1.5", - "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-14.1.5.tgz", - "integrity": "sha512-TRv2p6aE4YxURyH3e4Eg0aXGm8opOp4WJbkJnCbAEoNWyfhTJOuDiUUqRUbkMH0MWQU9n7e8n3mPDEOz8lJCww==", + "node_modules/@nrwl/nx-plugin/node_modules/@nrwl/cli": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.1.7.tgz", + "integrity": "sha512-HVvqYwefizcoVc4xrTgfIC8nfMA9cx5NiaIbZFDIZv12NsdalpA6a2BmmV8Zck+QQSGEHrhTZyt1AqDhA1t+6A==", "dev": true, "dependencies": { - "@nrwl/devkit": "14.1.5", - "@nrwl/jest": "14.1.5", - "@nrwl/linter": "14.1.5", - "@parcel/watcher": "2.0.4", - "chalk": "4.1.0", - "chokidar": "^3.5.1", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "dotenv": "~10.0.0", - "enquirer": "~2.3.6", - "figures": "3.2.0", - "flat": "^5.0.2", - "fs-extra": "^10.1.0", - "glob": "7.1.4", + "nx": "14.1.7" + } + }, + "node_modules/@nrwl/nx-plugin/node_modules/@nrwl/devkit": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-14.1.7.tgz", + "integrity": "sha512-4dZIzE+jIPzGSwWTGbQ9uWODHGZMdQctsLhMhcrZrEpPcmZQLbYEbx2bRh6EsNFkreSZxZREdwkWuFTb05cs/w==", + "dev": true, + "dependencies": { + "ejs": "^3.1.7", "ignore": "^5.0.4", - "minimatch": "3.0.4", - "npm-run-path": "^4.0.1", - "nx": "14.1.5", - "open": "^8.4.0", "rxjs": "^6.5.4", "semver": "7.3.4", - "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs": "^17.4.0", - "yargs-parser": "21.0.1" + "tslib": "^2.3.0" }, "peerDependencies": { - "prettier": "^2.5.1" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } + "nx": ">= 13.10 <= 15" } }, - "node_modules/@parcel/watcher": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", - "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", + "node_modules/@nrwl/nx-plugin/node_modules/@nrwl/jest": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/jest/-/jest-14.1.7.tgz", + "integrity": "sha512-2Z+1dA4gadrEzUXfhd0n5BojUkGSVr3chHsVoWnBh3zSVrIM3gVKJx0wwVVQYhqkVylkpG+bXSUTrUa23LOaeg==", "dev": true, - "hasInstallScript": true, "dependencies": { - "node-addon-api": "^3.2.1", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@phenomnomnominal/tsquery": { - "version": "4.1.1", + "@jest/reporters": "27.5.1", + "@jest/test-result": "27.5.1", + "@nrwl/devkit": "14.1.7", + "chalk": "4.1.0", + "identity-obj-proxy": "3.0.0", + "jest-config": "27.5.1", + "jest-resolve": "27.5.1", + "jest-util": "27.5.1", + "resolve.exports": "1.1.0", + "rxjs": "^6.5.4", + "tslib": "^2.3.0" + } + }, + "node_modules/@nrwl/nx-plugin/node_modules/@nrwl/js": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/js/-/js-14.1.7.tgz", + "integrity": "sha512-1rHwHC/G69eWIOyw2v9edDhHnT0iB0YBifLvRpPlqDq6kcoy4/2qwlEvKFbwn1691tMBl5gSnppOPmRxwqFIjw==", + "dev": true, + "dependencies": { + "@nrwl/devkit": "14.1.7", + "@nrwl/jest": "14.1.7", + "@nrwl/linter": "14.1.7", + "@nrwl/workspace": "14.1.7", + "@parcel/watcher": "2.0.4", + "chalk": "4.1.0", + "fast-glob": "3.2.7", + "fs-extra": "^10.1.0", + "ignore": "^5.0.4", + "js-tokens": "^4.0.0", + "minimatch": "3.0.4", + "source-map-support": "0.5.19", + "tree-kill": "1.2.2" + } + }, + "node_modules/@nrwl/nx-plugin/node_modules/@nrwl/linter": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/linter/-/linter-14.1.7.tgz", + "integrity": "sha512-0BO26hOTFGlLcV5HTGuMxJZVAV96J9zcAOWKi+KMoYaN/1LHNxiNbBwst97WhTVveJ6VYlKSHCKbtLD+ROAaTw==", + "dev": true, + "dependencies": { + "@nrwl/devkit": "14.1.7", + "@nrwl/jest": "14.1.7", + "@phenomnomnominal/tsquery": "4.1.1", + "tmp": "~0.2.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@nrwl/nx-plugin/node_modules/@nrwl/tao": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.1.7.tgz", + "integrity": "sha512-7jzPqEwElMiTKCZm2iuqC5aPIs+IwocWR6Tl1JhC1eK2PWskHOhdgTQM186lfXwPKWH4NJAE3eZFqtECnGDCJg==", + "dev": true, + "dependencies": { + "nx": "14.1.7" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/nx-plugin/node_modules/@nrwl/workspace": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-14.1.7.tgz", + "integrity": "sha512-EjMG8fFiwZjKcOjCnlqACyS0pRQ3Z5/gnT2ZWmCXHxjX7DkrtQS+5bjTW1mHevU/CiLNgHlVyd5ogaQ4ZZtmKg==", + "dev": true, + "dependencies": { + "@nrwl/devkit": "14.1.7", + "@nrwl/jest": "14.1.7", + "@nrwl/linter": "14.1.7", + "@parcel/watcher": "2.0.4", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "minimatch": "3.0.4", + "npm-run-path": "^4.0.1", + "nx": "14.1.7", + "open": "^8.4.0", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs": "^17.4.0", + "yargs-parser": "21.0.1" + }, + "peerDependencies": { + "prettier": "^2.5.1" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, + "node_modules/@nrwl/nx-plugin/node_modules/nx": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.1.7.tgz", + "integrity": "sha512-Q10PVQ70TFg9HY6KQKJ316B42sVtxmFk/VUdC7ZHKxzDm/JeYf6OaDarQOUZaFZp/EL2brtEsrlWSMTWmk3r4w==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nrwl/cli": "14.1.7", + "@nrwl/tao": "14.1.7", + "@parcel/watcher": "2.0.4", + "@swc-node/register": "^1.4.2", + "@swc/core": "^1.2.173", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "jsonc-parser": "3.0.0", + "minimatch": "3.0.4", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "rxjs": "^6.5.4", + "rxjs-for-await": "0.0.2", + "semver": "7.3.4", + "string-width": "^4.2.3", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^3.9.0", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.4.0", + "yargs-parser": "21.0.1" + }, + "bin": { + "nx": "bin/nx.js" + } + }, + "node_modules/@nrwl/nx-plugin/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@nrwl/tao": { + "version": "14.1.5", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.1.5.tgz", + "integrity": "sha512-C30aBxnAJ/0r5uBl8hQKsfllGb+jtMl9sLKStHwP4WEpIO9A8NelL/bGXEKXUiTQ8zFOZmCeHMo0VPfb/xePEg==", + "dev": true, + "dependencies": { + "nx": "14.1.5" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/workspace": { + "version": "14.1.5", + "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-14.1.5.tgz", + "integrity": "sha512-TRv2p6aE4YxURyH3e4Eg0aXGm8opOp4WJbkJnCbAEoNWyfhTJOuDiUUqRUbkMH0MWQU9n7e8n3mPDEOz8lJCww==", + "dev": true, + "dependencies": { + "@nrwl/devkit": "14.1.5", + "@nrwl/jest": "14.1.5", + "@nrwl/linter": "14.1.5", + "@parcel/watcher": "2.0.4", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "minimatch": "3.0.4", + "npm-run-path": "^4.0.1", + "nx": "14.1.5", + "open": "^8.4.0", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs": "^17.4.0", + "yargs-parser": "21.0.1" + }, + "peerDependencies": { + "prettier": "^2.5.1" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, + "node_modules/@parcel/watcher": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@phenomnomnominal/tsquery": { + "version": "4.1.1", "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz", "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==", "dev": true, @@ -1751,6 +2298,12 @@ "integrity": "sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw==", "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/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -2335,6 +2888,12 @@ "readable-stream": "^3.4.0" } }, + "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/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2443,6 +3002,18 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "dev": true, + "dependencies": { + "dicer": "0.3.0" + }, + "engines": { + "node": ">=4.5.0" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2667,12 +3238,27 @@ "safe-buffer": "~5.1.1" } }, + "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/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, + "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", @@ -2796,6 +3382,18 @@ "node": ">=8" } }, + "node_modules/dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "dev": true, + "dependencies": { + "streamsearch": "0.1.2" + }, + "engines": { + "node": ">=4.5.0" + } + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -2933,8 +3531,363 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.34.tgz", + "integrity": "sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.34", + "esbuild-android-arm64": "0.14.34", + "esbuild-darwin-64": "0.14.34", + "esbuild-darwin-arm64": "0.14.34", + "esbuild-freebsd-64": "0.14.34", + "esbuild-freebsd-arm64": "0.14.34", + "esbuild-linux-32": "0.14.34", + "esbuild-linux-64": "0.14.34", + "esbuild-linux-arm": "0.14.34", + "esbuild-linux-arm64": "0.14.34", + "esbuild-linux-mips64le": "0.14.34", + "esbuild-linux-ppc64le": "0.14.34", + "esbuild-linux-riscv64": "0.14.34", + "esbuild-linux-s390x": "0.14.34", + "esbuild-netbsd-64": "0.14.34", + "esbuild-openbsd-64": "0.14.34", + "esbuild-sunos-64": "0.14.34", + "esbuild-windows-32": "0.14.34", + "esbuild-windows-64": "0.14.34", + "esbuild-windows-arm64": "0.14.34" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz", + "integrity": "sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz", + "integrity": "sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz", + "integrity": "sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz", + "integrity": "sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz", + "integrity": "sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz", + "integrity": "sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz", + "integrity": "sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz", + "integrity": "sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz", + "integrity": "sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz", + "integrity": "sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz", + "integrity": "sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz", + "integrity": "sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz", + "integrity": "sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz", + "integrity": "sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz", + "integrity": "sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz", + "integrity": "sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz", + "integrity": "sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz", + "integrity": "sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz", + "integrity": "sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz", + "integrity": "sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, "node_modules/escalade": { @@ -3292,6 +4245,12 @@ "node": ">=4.0" } }, + "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/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -3772,6 +4731,18 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "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.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, "node_modules/http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", @@ -5002,6 +5973,15 @@ "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/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -5099,6 +6079,63 @@ "node": ">=6" } }, + "node_modules/miniflare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.4.0.tgz", + "integrity": "sha512-xOBL/dQsUL95rxIYO+KrrVPPpm2TAf6TKl4AvhcjSfUeVkzDWd/y9f7hXCt8x6srDoK0Z2LpYouatvSfSUzGOw==", + "dev": true, + "dependencies": { + "@miniflare/cache": "2.4.0", + "@miniflare/cli-parser": "2.4.0", + "@miniflare/core": "2.4.0", + "@miniflare/durable-objects": "2.4.0", + "@miniflare/html-rewriter": "2.4.0", + "@miniflare/http-server": "2.4.0", + "@miniflare/kv": "2.4.0", + "@miniflare/runner-vm": "2.4.0", + "@miniflare/scheduler": "2.4.0", + "@miniflare/shared": "2.4.0", + "@miniflare/sites": "2.4.0", + "@miniflare/storage-file": "2.4.0", + "@miniflare/storage-memory": "2.4.0", + "@miniflare/web-sockets": "2.4.0", + "kleur": "^4.1.4", + "semiver": "^1.1.0", + "source-map-support": "^0.5.20", + "undici": "4.13.0" + }, + "bin": { + "miniflare": "bootstrap.js" + }, + "engines": { + "node": ">=16.7" + }, + "peerDependencies": { + "@miniflare/storage-redis": "2.4.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/miniflare/node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -5160,6 +6197,27 @@ "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.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -5172,6 +6230,15 @@ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true }, + "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/node-gyp-build": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", @@ -5436,6 +6503,12 @@ "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/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -5720,6 +6793,36 @@ "url": "https://github.com/sponsors/isaacs" } }, + "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/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5794,6 +6897,27 @@ "node": ">=10" } }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "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.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", @@ -5809,6 +6933,12 @@ "node": ">=10" } }, + "node_modules/set-cookie-parser": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", + "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==", + "dev": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5870,12 +7000,27 @@ "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==", + "dev": true + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -5897,6 +7042,15 @@ "node": ">=8" } }, + "node_modules/streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -6389,6 +7543,15 @@ "node": ">=4.2.0" } }, + "node_modules/undici": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-4.13.0.tgz", + "integrity": "sha512-8lk8S/f2V0VUNGf2scU2b+KI2JSzEQLdCyRNRF3XmHu+5jectlSDaPSBCXAHFaUlt1rzngzOBVDgJS9/Gue/KA==", + "dev": true, + "engines": { + "node": ">=12.18" + } + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -6534,6 +7697,34 @@ "node": ">=0.10.0" } }, + "node_modules/wrangler": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.0.5.tgz", + "integrity": "sha512-0BVKQDGm9whPrzLPACGJ9CGdk/taKYYIEvnjLSVOBOxa8her6R9VcmGP6U0wXQnvMasQqlmj+NnjNWgfRw8nIQ==", + "dev": true, + "dependencies": { + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@esbuild-plugins/node-modules-polyfill": "^0.1.4", + "blake3-wasm": "^2.1.5", + "esbuild": "0.14.34", + "miniflare": "2.4.0", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.2.0", + "selfsigned": "^2.0.1", + "semiver": "^1.1.0", + "xxhash-wasm": "^1.0.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=16.7.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -6602,6 +7793,12 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "node_modules/xxhash-wasm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.1.tgz", + "integrity": "sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==", + "dev": true + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -6653,8 +7850,25 @@ "node": ">=6" } }, + "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" + } + }, "packages/cloudflare/workers": { - "version": "0.0.1" + "name": "@mono-ukulele/cf-workers", + "version": "0.0.1", + "devDependencies": { + "@cloudflare/workers-types": "^3.10.0", + "wrangler": "^2.0.2" + } } }, "dependencies": { @@ -7076,6 +8290,37 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@cloudflare/workers-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-3.10.0.tgz", + "integrity": "sha512-gn+H5Ps9yV1VYz8FJ08bMfXLW8ubNblRF9Z+m+0ctNMyl3CdoZmUfH1pMTxYE8SMUJbLxuNvpdlZhwLDoGFXaw==", + "dev": true + }, + "@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, + "requires": {} + }, + "@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, + "requires": { + "escape-string-regexp": "^4.0.0", + "rollup-plugin-node-polyfills": "^0.2.1" + }, + "dependencies": { + "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 + } + } + }, "@eslint/eslintrc": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", @@ -7151,6 +8396,12 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@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 + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -7376,40 +8627,260 @@ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@miniflare/cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/cache/-/cache-2.4.0.tgz", + "integrity": "sha512-tMDXlUVlThgFubJmlxZoKmLK8kBxDmuMbVMt7csHpXegzkuo2TmIsDqBE/C3CRiJ5xeCQgpD6iZtKBu5Zn5fRA==", + "dev": true, + "requires": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "http-cache-semantics": "^4.1.0", + "undici": "4.13.0" + } + }, + "@miniflare/cli-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/cli-parser/-/cli-parser-2.4.0.tgz", + "integrity": "sha512-Xr5lO8f+oIr9r/b2dfo0on1p0MNN+pkwRHWoY5ACSnp9FaGnwm/g71DM7AajIQPIk0TpRsSVNDx8Ygj1LPT+sQ==", + "dev": true, + "requires": { + "@miniflare/shared": "2.4.0", + "kleur": "^4.1.4" + }, + "dependencies": { + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true + } + } + }, + "@miniflare/core": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/core/-/core-2.4.0.tgz", + "integrity": "sha512-vYl8xaWTFzxtkbzx3IkT4Py0OAFdfmFnVo627O1HKHWVGlkjVr8UKtxBpIR+f5pq/HCMzzqA1HM9FXO0dQfy3A==", + "dev": true, + "requires": { + "@iarna/toml": "^2.2.5", + "@miniflare/shared": "2.4.0", + "@miniflare/watcher": "2.4.0", + "busboy": "^0.3.1", + "dotenv": "^10.0.0", + "kleur": "^4.1.4", + "set-cookie-parser": "^2.4.8", + "undici": "4.13.0" + }, + "dependencies": { + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true + } + } + }, + "@miniflare/durable-objects": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.4.0.tgz", + "integrity": "sha512-VVLaUXXcAQcYE/3YmDLTacZf5OzR8bib6q1T9NqVb0uK5sLMQqyHvQdsG5rMqs7iyxfJxyZ0bL2OW9XGALOkoQ==", + "dev": true, + "requires": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "@miniflare/storage-memory": "2.4.0", + "undici": "4.13.0" + } + }, + "@miniflare/html-rewriter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/html-rewriter/-/html-rewriter-2.4.0.tgz", + "integrity": "sha512-ZG8819N7LelDD+8+Ss5FZpVyQQq/V2igod0qE68JK4he/w4/yn57Rk6Efb49y15HoHAXl2RpCCsnCyIow/Xjug==", + "dev": true, + "requires": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "html-rewriter-wasm": "^0.4.1", + "undici": "4.13.0" + } + }, + "@miniflare/http-server": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/http-server/-/http-server-2.4.0.tgz", + "integrity": "sha512-r6Z/nqxE0oa1z63L95yvnG0PUeLRxZOeGS7ADxZMFKan4WD5lvYtSKDuDEm0lkbQshCOHQ3uXFr0cotOm8JoMQ==", + "dev": true, + "requires": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "@miniflare/web-sockets": "2.4.0", + "kleur": "^4.1.4", + "selfsigned": "^2.0.0", + "undici": "4.13.0", + "ws": "^8.2.2", + "youch": "^2.2.2" + }, + "dependencies": { + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true + }, + "ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "dev": true, + "requires": {} + } + } + }, + "@miniflare/kv": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/kv/-/kv-2.4.0.tgz", + "integrity": "sha512-1UW7f1386xR6EDEXNZOR1TpFwQfRRSxUPqD6m/U0WprlsbM0cIYGz+AUeaVbkFf8lfE2MeXCUrjbWsLOvsnw3g==", + "dev": true, + "requires": { + "@miniflare/shared": "2.4.0" + } + }, + "@miniflare/runner-vm": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/runner-vm/-/runner-vm-2.4.0.tgz", + "integrity": "sha512-7sdwBYzXQTwYeR3tTvQ+vJfzc7BXwqR8AUPK9l5gvCtg+Geq9sMslr5SikIJpgcvbYqKDjvC9DQEPJ3sqr9cSQ==", + "dev": true, + "requires": { + "@miniflare/shared": "2.4.0" + } + }, + "@miniflare/scheduler": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/scheduler/-/scheduler-2.4.0.tgz", + "integrity": "sha512-dfMCXoAS8Y+3xABNxYju62I2xIBS54Op7ohCHoatvAM5RvualJUPICEMPZzX6/z29q5xPIeSLhLDhl/asAQ19w==", + "dev": true, + "requires": { + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "cron-schedule": "^3.0.4" + } + }, + "@miniflare/shared": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/shared/-/shared-2.4.0.tgz", + "integrity": "sha512-lPQFzBUVGNQ93gQ/dliToWnO0OqAgsD3/902Pd/IixVSRwRj3BTnYv2dHMUKZcODBPrhnbqZeqcPWdBLzEx8uw==", + "dev": true, + "requires": { + "ignore": "^5.1.8", + "kleur": "^4.1.4" + }, + "dependencies": { + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true + } + } + }, + "@miniflare/sites": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/sites/-/sites-2.4.0.tgz", + "integrity": "sha512-YZy/TujnR1lkBvCncDDQ8tsWsXRE4JJ4x9a0bKN/XnZh7r6OhDM0sw4BFcBQhT6Ukdtttam1O3FlJxnMitrDGg==", + "dev": true, + "requires": { + "@miniflare/kv": "2.4.0", + "@miniflare/shared": "2.4.0", + "@miniflare/storage-file": "2.4.0" } }, - "@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "dev": true + "@miniflare/storage-file": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/storage-file/-/storage-file-2.4.0.tgz", + "integrity": "sha512-f1AUMz8xps/4VhNJMb8JeCevZFeU4pg2lIWmC11gG4xeq2nibTPBi6Qtx594Le7ZKij/tF6rRsoNfGau2Q5gdw==", + "dev": true, + "requires": { + "@miniflare/shared": "2.4.0", + "@miniflare/storage-memory": "2.4.0" + } }, - "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true + "@miniflare/storage-memory": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/storage-memory/-/storage-memory-2.4.0.tgz", + "integrity": "sha512-mhWwgHhDNtEa7y1bYbdVucV0lqUmzagYXUSppAdSGS5JPyJMyw3HseqRNTk6gC/vKlvEYlFf3ugWcREGCedr9A==", + "dev": true, + "requires": { + "@miniflare/shared": "2.4.0" + } }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "dev": true + "@miniflare/watcher": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/watcher/-/watcher-2.4.0.tgz", + "integrity": "sha512-gDQRUxwOjmctvowyd4Hcdy3fjxz3ERKzirp6TvA3AWUohKZk3IhwGlaA8aCwbdP+ELYQlG5wK44AfLSGi956fg==", + "dev": true, + "requires": { + "@miniflare/shared": "2.4.0" + } }, - "@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "@miniflare/web-sockets": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@miniflare/web-sockets/-/web-sockets-2.4.0.tgz", + "integrity": "sha512-cz/cN0GoQOXRLh80UmlcEJODPIw2ijKBK3PLRzvfTzqQ5avK6wp2M8Fj8C/5JIT6g7siwvBANyKXD3U3RpKGHQ==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@miniflare/core": "2.4.0", + "@miniflare/shared": "2.4.0", + "undici": "4.13.0", + "ws": "^8.2.2" + }, + "dependencies": { + "ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "dev": true, + "requires": {} + } } }, "@mono-ukulele/cf-workers": { - "version": "file:packages/cloudflare/workers" + "version": "file:packages/cloudflare/workers", + "requires": { + "@cloudflare/workers-types": "^3.10.0", + "wrangler": "^2.0.2" + } }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -7550,6 +9021,191 @@ "tar": "6.1.11" } }, + "@nrwl/nx-plugin": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/nx-plugin/-/nx-plugin-14.1.7.tgz", + "integrity": "sha512-g9bdSsrDkG2waPrmFpd0/sfqv/vZeF9inxrJXPIpE3AStq6jUtb7V5glaS5V91cdD5H1I+Jh3XO+sFMTexzWmQ==", + "dev": true, + "requires": { + "@nrwl/devkit": "14.1.7", + "@nrwl/jest": "14.1.7", + "@nrwl/js": "14.1.7", + "@nrwl/linter": "14.1.7", + "fs-extra": "^10.1.0", + "rxjs": "^6.5.4", + "tslib": "^2.3.0" + }, + "dependencies": { + "@nrwl/cli": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.1.7.tgz", + "integrity": "sha512-HVvqYwefizcoVc4xrTgfIC8nfMA9cx5NiaIbZFDIZv12NsdalpA6a2BmmV8Zck+QQSGEHrhTZyt1AqDhA1t+6A==", + "dev": true, + "requires": { + "nx": "14.1.7" + } + }, + "@nrwl/devkit": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-14.1.7.tgz", + "integrity": "sha512-4dZIzE+jIPzGSwWTGbQ9uWODHGZMdQctsLhMhcrZrEpPcmZQLbYEbx2bRh6EsNFkreSZxZREdwkWuFTb05cs/w==", + "dev": true, + "requires": { + "ejs": "^3.1.7", + "ignore": "^5.0.4", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tslib": "^2.3.0" + } + }, + "@nrwl/jest": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/jest/-/jest-14.1.7.tgz", + "integrity": "sha512-2Z+1dA4gadrEzUXfhd0n5BojUkGSVr3chHsVoWnBh3zSVrIM3gVKJx0wwVVQYhqkVylkpG+bXSUTrUa23LOaeg==", + "dev": true, + "requires": { + "@jest/reporters": "27.5.1", + "@jest/test-result": "27.5.1", + "@nrwl/devkit": "14.1.7", + "chalk": "4.1.0", + "identity-obj-proxy": "3.0.0", + "jest-config": "27.5.1", + "jest-resolve": "27.5.1", + "jest-util": "27.5.1", + "resolve.exports": "1.1.0", + "rxjs": "^6.5.4", + "tslib": "^2.3.0" + } + }, + "@nrwl/js": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/js/-/js-14.1.7.tgz", + "integrity": "sha512-1rHwHC/G69eWIOyw2v9edDhHnT0iB0YBifLvRpPlqDq6kcoy4/2qwlEvKFbwn1691tMBl5gSnppOPmRxwqFIjw==", + "dev": true, + "requires": { + "@nrwl/devkit": "14.1.7", + "@nrwl/jest": "14.1.7", + "@nrwl/linter": "14.1.7", + "@nrwl/workspace": "14.1.7", + "@parcel/watcher": "2.0.4", + "chalk": "4.1.0", + "fast-glob": "3.2.7", + "fs-extra": "^10.1.0", + "ignore": "^5.0.4", + "js-tokens": "^4.0.0", + "minimatch": "3.0.4", + "source-map-support": "0.5.19", + "tree-kill": "1.2.2" + } + }, + "@nrwl/linter": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/linter/-/linter-14.1.7.tgz", + "integrity": "sha512-0BO26hOTFGlLcV5HTGuMxJZVAV96J9zcAOWKi+KMoYaN/1LHNxiNbBwst97WhTVveJ6VYlKSHCKbtLD+ROAaTw==", + "dev": true, + "requires": { + "@nrwl/devkit": "14.1.7", + "@nrwl/jest": "14.1.7", + "@phenomnomnominal/tsquery": "4.1.1", + "tmp": "~0.2.1", + "tslib": "^2.3.0" + } + }, + "@nrwl/tao": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.1.7.tgz", + "integrity": "sha512-7jzPqEwElMiTKCZm2iuqC5aPIs+IwocWR6Tl1JhC1eK2PWskHOhdgTQM186lfXwPKWH4NJAE3eZFqtECnGDCJg==", + "dev": true, + "requires": { + "nx": "14.1.7" + } + }, + "@nrwl/workspace": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-14.1.7.tgz", + "integrity": "sha512-EjMG8fFiwZjKcOjCnlqACyS0pRQ3Z5/gnT2ZWmCXHxjX7DkrtQS+5bjTW1mHevU/CiLNgHlVyd5ogaQ4ZZtmKg==", + "dev": true, + "requires": { + "@nrwl/devkit": "14.1.7", + "@nrwl/jest": "14.1.7", + "@nrwl/linter": "14.1.7", + "@parcel/watcher": "2.0.4", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "minimatch": "3.0.4", + "npm-run-path": "^4.0.1", + "nx": "14.1.7", + "open": "^8.4.0", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs": "^17.4.0", + "yargs-parser": "21.0.1" + } + }, + "nx": { + "version": "14.1.7", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.1.7.tgz", + "integrity": "sha512-Q10PVQ70TFg9HY6KQKJ316B42sVtxmFk/VUdC7ZHKxzDm/JeYf6OaDarQOUZaFZp/EL2brtEsrlWSMTWmk3r4w==", + "dev": true, + "requires": { + "@nrwl/cli": "14.1.7", + "@nrwl/tao": "14.1.7", + "@parcel/watcher": "2.0.4", + "@swc-node/register": "^1.4.2", + "@swc/core": "^1.2.173", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "jsonc-parser": "3.0.0", + "minimatch": "3.0.4", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "rxjs": "^6.5.4", + "rxjs-for-await": "0.0.2", + "semver": "7.3.4", + "string-width": "^4.2.3", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^3.9.0", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.4.0", + "yargs-parser": "21.0.1" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, "@nrwl/tao": { "version": "14.1.5", "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.1.5.tgz", @@ -7925,6 +9581,12 @@ "integrity": "sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw==", "dev": true }, + "@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 + }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -8106,7 +9768,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "acorn-walk": { "version": "7.2.0", @@ -8317,6 +9980,12 @@ "readable-stream": "^3.4.0" } }, + "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 + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8389,6 +10058,15 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "dev": true, + "requires": { + "dicer": "0.3.0" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -8552,12 +10230,24 @@ "safe-buffer": "~5.1.1" } }, + "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 + }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, + "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 + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -8654,6 +10344,15 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, + "dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "dev": true, + "requires": { + "streamsearch": "0.1.2" + } + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -8761,6 +10460,174 @@ "is-arrayish": "^0.2.1" } }, + "esbuild": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.34.tgz", + "integrity": "sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.34", + "esbuild-android-arm64": "0.14.34", + "esbuild-darwin-64": "0.14.34", + "esbuild-darwin-arm64": "0.14.34", + "esbuild-freebsd-64": "0.14.34", + "esbuild-freebsd-arm64": "0.14.34", + "esbuild-linux-32": "0.14.34", + "esbuild-linux-64": "0.14.34", + "esbuild-linux-arm": "0.14.34", + "esbuild-linux-arm64": "0.14.34", + "esbuild-linux-mips64le": "0.14.34", + "esbuild-linux-ppc64le": "0.14.34", + "esbuild-linux-riscv64": "0.14.34", + "esbuild-linux-s390x": "0.14.34", + "esbuild-netbsd-64": "0.14.34", + "esbuild-openbsd-64": "0.14.34", + "esbuild-sunos-64": "0.14.34", + "esbuild-windows-32": "0.14.34", + "esbuild-windows-64": "0.14.34", + "esbuild-windows-arm64": "0.14.34" + } + }, + "esbuild-android-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz", + "integrity": "sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz", + "integrity": "sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz", + "integrity": "sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz", + "integrity": "sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz", + "integrity": "sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz", + "integrity": "sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz", + "integrity": "sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz", + "integrity": "sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz", + "integrity": "sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz", + "integrity": "sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz", + "integrity": "sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz", + "integrity": "sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz", + "integrity": "sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz", + "integrity": "sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz", + "integrity": "sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz", + "integrity": "sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz", + "integrity": "sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz", + "integrity": "sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz", + "integrity": "sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.34", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz", + "integrity": "sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==", + "dev": true, + "optional": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -8929,7 +10796,8 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", - "dev": true + "dev": true, + "requires": {} }, "eslint-scope": { "version": "5.1.1", @@ -9013,6 +10881,12 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, + "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 + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -9383,6 +11257,18 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "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 + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, "http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", @@ -9949,7 +11835,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "27.5.1", @@ -10319,6 +12206,15 @@ "yallist": "^4.0.0" } }, + "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, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -10394,6 +12290,40 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "miniflare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-2.4.0.tgz", + "integrity": "sha512-xOBL/dQsUL95rxIYO+KrrVPPpm2TAf6TKl4AvhcjSfUeVkzDWd/y9f7hXCt8x6srDoK0Z2LpYouatvSfSUzGOw==", + "dev": true, + "requires": { + "@miniflare/cache": "2.4.0", + "@miniflare/cli-parser": "2.4.0", + "@miniflare/core": "2.4.0", + "@miniflare/durable-objects": "2.4.0", + "@miniflare/html-rewriter": "2.4.0", + "@miniflare/http-server": "2.4.0", + "@miniflare/kv": "2.4.0", + "@miniflare/runner-vm": "2.4.0", + "@miniflare/scheduler": "2.4.0", + "@miniflare/shared": "2.4.0", + "@miniflare/sites": "2.4.0", + "@miniflare/storage-file": "2.4.0", + "@miniflare/storage-memory": "2.4.0", + "@miniflare/web-sockets": "2.4.0", + "kleur": "^4.1.4", + "semiver": "^1.1.0", + "source-map-support": "^0.5.20", + "undici": "4.13.0" + }, + "dependencies": { + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true + } + } + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -10440,6 +12370,18 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -10452,6 +12394,12 @@ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true }, + "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 + }, "node-gyp-build": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", @@ -10656,6 +12604,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "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 + }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -10843,6 +12797,35 @@ "glob": "^7.1.3" } }, + "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==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "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, + "requires": { + "rollup-plugin-inject": "^3.0.0" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10873,7 +12856,8 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", - "dev": true + "dev": true, + "requires": {} }, "safe-buffer": { "version": "5.1.2", @@ -10896,6 +12880,21 @@ "xmlchars": "^2.2.0" } }, + "selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "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 + }, "semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", @@ -10905,6 +12904,12 @@ "lru-cache": "^6.0.0" } }, + "set-cookie-parser": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", + "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==", + "dev": true + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10954,12 +12959,24 @@ "source-map": "^0.6.0" } }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, "stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", @@ -10977,6 +12994,12 @@ } } }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -11323,6 +13346,12 @@ "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", "dev": true }, + "undici": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-4.13.0.tgz", + "integrity": "sha512-8lk8S/f2V0VUNGf2scU2b+KI2JSzEQLdCyRNRF3XmHu+5jectlSDaPSBCXAHFaUlt1rzngzOBVDgJS9/Gue/KA==", + "dev": true + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -11443,6 +13472,25 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, + "wrangler": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-2.0.5.tgz", + "integrity": "sha512-0BVKQDGm9whPrzLPACGJ9CGdk/taKYYIEvnjLSVOBOxa8her6R9VcmGP6U0wXQnvMasQqlmj+NnjNWgfRw8nIQ==", + "dev": true, + "requires": { + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@esbuild-plugins/node-modules-polyfill": "^0.1.4", + "blake3-wasm": "^2.1.5", + "esbuild": "0.14.34", + "fsevents": "~2.3.2", + "miniflare": "2.4.0", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.2.0", + "selfsigned": "^2.0.1", + "semiver": "^1.1.0", + "xxhash-wasm": "^1.0.1" + } + }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -11476,7 +13524,8 @@ "version": "7.5.7", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "dev": true + "dev": true, + "requires": {} }, "xml-name-validator": { "version": "3.0.0", @@ -11490,6 +13539,12 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "xxhash-wasm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.1.tgz", + "integrity": "sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==", + "dev": true + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -11528,6 +13583,18 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true + }, + "youch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/youch/-/youch-2.2.2.tgz", + "integrity": "sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==", + "dev": true, + "requires": { + "@types/stack-trace": "0.0.29", + "cookie": "^0.4.1", + "mustache": "^4.2.0", + "stack-trace": "0.0.10" + } } } } diff --git a/package.json b/package.json index 1e044a7..e941ab0 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@nrwl/js": "14.1.5", "@nrwl/linter": "14.1.5", "@nrwl/nx-cloud": "latest", + "@nrwl/nx-plugin": "^14.1.7", "@nrwl/workspace": "14.1.5", "@swc/cli": "~0.1.55", "@swc/core": "~1.2.143", diff --git a/packages/cloudflare/workers-e2e/tests/cloudflare-workers.spec.ts b/packages/cloudflare/workers-e2e/tests/cloudflare-workers.spec.ts index 1978470..ff4c7c7 100644 --- a/packages/cloudflare/workers-e2e/tests/cloudflare-workers.spec.ts +++ b/packages/cloudflare/workers-e2e/tests/cloudflare-workers.spec.ts @@ -29,17 +29,17 @@ describe('cloudflare-workers e2e', () => { it('should create cloudflare-workers', async () => { const project = uniq('cloudflare-workers'); await runNxCommandAsync( - `generate @mono-ukulele/cf-workers:cloudflare-workers ${project}` + `generate @mono-ukulele/cf-workers:worker ${project}` ); const result = await runNxCommandAsync(`build ${project}`); - expect(result.stdout).toContain('Executor ran'); + expect(result.stdout).toContain('Successfully ran target build'); }, 120000); describe('--directory', () => { it('should create src in the specified directory', async () => { const project = uniq('cloudflare-workers'); await runNxCommandAsync( - `generate @mono-ukulele/cf-workers:cloudflare-workers ${project} --directory subdir` + `generate @mono-ukulele/cf-workers:worker ${project} --directory subdir` ); expect(() => checkFilesExist(`libs/subdir/${project}/src/index.ts`) @@ -55,7 +55,7 @@ describe('cloudflare-workers e2e', () => { 'dist/packages/cloudflare/workers' ); await runNxCommandAsync( - `generate @mono-ukulele/cf-workers:cloudflare-workers ${projectName} --tags e2etag,e2ePackage` + `generate @mono-ukulele/cf-workers:worker ${projectName} --tags e2etag,e2ePackage` ); const project = readJson(`libs/${projectName}/project.json`); expect(project.tags).toEqual(['e2etag', 'e2ePackage']); diff --git a/packages/cloudflare/workers/executors.json b/packages/cloudflare/workers/executors.json index b92c873..bd86109 100644 --- a/packages/cloudflare/workers/executors.json +++ b/packages/cloudflare/workers/executors.json @@ -1,10 +1,10 @@ { "$schema": "http://json-schema.org/schema", "executors": { - "build": { - "implementation": "./src/executors/build/executor", - "schema": "./src/executors/build/schema.json", - "description": "build executor" + "serve": { + "implementation": "./src/executors/serve/serve", + "schema": "./src/executors/serve/schema.json", + "description": "serve executor" } } } diff --git a/packages/cloudflare/workers/generators.json b/packages/cloudflare/workers/generators.json index 9ea75b7..380e2f2 100644 --- a/packages/cloudflare/workers/generators.json +++ b/packages/cloudflare/workers/generators.json @@ -3,10 +3,20 @@ "name": "cloudflare-workers", "version": "0.0.1", "generators": { - "cloudflare-workers": { - "factory": "./src/generators/cloudflare-workers/generator", - "schema": "./src/generators/cloudflare-workers/schema.json", - "description": "cloudflare-workers generator" + "worker": { + "factory": "./src/generators/worker/worker", + "schema": "./src/generators/worker/schema.json", + "description": "Generate a cloudflare worker" + }, + "kv": { + "factory": "./src/generators/kv/kv", + "schema": "./src/generators/kv/schema.json", + "description": "Add KV to a cloudflare worker" + }, + "init": { + "factory": "./src/generators/init/init", + "schema": "./src/generators/init/schema.json", + "description": "init generator" } } } diff --git a/packages/cloudflare/workers/package.json b/packages/cloudflare/workers/package.json index aa57813..72464e2 100644 --- a/packages/cloudflare/workers/package.json +++ b/packages/cloudflare/workers/package.json @@ -3,5 +3,9 @@ "version": "0.0.1", "main": "src/index.js", "generators": "./generators.json", - "executors": "./executors.json" + "executors": "./executors.json", + "devDependencies": { + "wrangler": "^2.0.2", + "@cloudflare/workers-types": "^3.10.0" + } } diff --git a/packages/cloudflare/workers/src/executors/build/executor.spec.ts b/packages/cloudflare/workers/src/executors/build/executor.spec.ts deleted file mode 100644 index 32de13c..0000000 --- a/packages/cloudflare/workers/src/executors/build/executor.spec.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { BuildExecutorSchema } from './schema'; -import executor from './executor'; - -const options: BuildExecutorSchema = {}; - -describe('Build Executor', () => { - it('can run', async () => { - const output = await executor(options); - expect(output.success).toBe(true); - }); -}); diff --git a/packages/cloudflare/workers/src/executors/build/executor.ts b/packages/cloudflare/workers/src/executors/build/executor.ts deleted file mode 100644 index 39569a7..0000000 --- a/packages/cloudflare/workers/src/executors/build/executor.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { BuildExecutorSchema } from './schema'; - -export default async function runExecutor(options: BuildExecutorSchema) { - console.log('Executor ran for Build', options); - return { - success: true, - }; -} diff --git a/packages/cloudflare/workers/src/executors/build/schema.d.ts b/packages/cloudflare/workers/src/executors/build/schema.d.ts deleted file mode 100644 index f8247ab..0000000 --- a/packages/cloudflare/workers/src/executors/build/schema.d.ts +++ /dev/null @@ -1 +0,0 @@ -export interface BuildExecutorSchema {} // eslint-disable-line diff --git a/packages/cloudflare/workers/src/executors/serve/schema.d.ts b/packages/cloudflare/workers/src/executors/serve/schema.d.ts new file mode 100644 index 0000000..c28674c --- /dev/null +++ b/packages/cloudflare/workers/src/executors/serve/schema.d.ts @@ -0,0 +1 @@ +export interface ServeExecutorSchema {} // eslint-disable-line diff --git a/packages/cloudflare/workers/src/executors/build/schema.json b/packages/cloudflare/workers/src/executors/serve/schema.json similarity index 83% rename from packages/cloudflare/workers/src/executors/build/schema.json rename to packages/cloudflare/workers/src/executors/serve/schema.json index 54d8d22..b4b6877 100644 --- a/packages/cloudflare/workers/src/executors/build/schema.json +++ b/packages/cloudflare/workers/src/executors/serve/schema.json @@ -1,7 +1,7 @@ { "$schema": "http://json-schema.org/schema", "cli": "nx", - "title": "Build executor", + "title": "Serve executor", "description": "", "type": "object", "properties": {}, diff --git a/packages/cloudflare/workers/src/executors/serve/serve.ts b/packages/cloudflare/workers/src/executors/serve/serve.ts new file mode 100644 index 0000000..adf01be --- /dev/null +++ b/packages/cloudflare/workers/src/executors/serve/serve.ts @@ -0,0 +1,12 @@ +import { ServeExecutorSchema } from './schema'; + +export default async function runExecutor( + options: ServeExecutorSchema, +) { + console.log('Executor ran for Serve', options) + + return { + success: true + } +} + diff --git a/packages/cloudflare/workers/src/generators/cloudflare-workers/generator.spec.ts b/packages/cloudflare/workers/src/generators/init/generator.spec.ts similarity index 70% rename from packages/cloudflare/workers/src/generators/cloudflare-workers/generator.spec.ts rename to packages/cloudflare/workers/src/generators/init/generator.spec.ts index c69685f..dd91483 100644 --- a/packages/cloudflare/workers/src/generators/cloudflare-workers/generator.spec.ts +++ b/packages/cloudflare/workers/src/generators/init/generator.spec.ts @@ -2,11 +2,11 @@ import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing'; import { Tree, readProjectConfiguration } from '@nrwl/devkit'; import generator from './generator'; -import { CloudflareWorkersGeneratorSchema } from './schema'; +import { InitGeneratorSchema } from './schema'; -describe('cloudflare-workers generator', () => { +describe('init generator', () => { let appTree: Tree; - const options: CloudflareWorkersGeneratorSchema = { name: 'test' }; + const options: InitGeneratorSchema = { name: 'test' }; beforeEach(() => { appTree = createTreeWithEmptyWorkspace(); @@ -16,5 +16,5 @@ describe('cloudflare-workers generator', () => { await generator(appTree, options); const config = readProjectConfiguration(appTree, 'test'); expect(config).toBeDefined(); - }); + }) }); diff --git a/packages/cloudflare/workers/src/generators/init/generator.ts b/packages/cloudflare/workers/src/generators/init/generator.ts new file mode 100644 index 0000000..37a32d4 --- /dev/null +++ b/packages/cloudflare/workers/src/generators/init/generator.ts @@ -0,0 +1,18 @@ +import { + addDependenciesToPackageJson, + Tree, +} from '@nrwl/devkit'; + +export function workerInit(tree: Tree) { + const installTask = addDependenciesToPackageJson(tree, {tslib: '^2.4.0'}, { + "@nrwl/js": "14.1.7", + "wrangler": "^2.0.2", + "@cloudflare/workers-types": "^3.10.0" + }) + + return () => { + installTask(); + } +} + +export default workerInit; diff --git a/packages/cloudflare/workers/src/generators/init/schema.d.ts b/packages/cloudflare/workers/src/generators/init/schema.d.ts new file mode 100644 index 0000000..062bcae --- /dev/null +++ b/packages/cloudflare/workers/src/generators/init/schema.d.ts @@ -0,0 +1,5 @@ +export interface InitGeneratorSchema { + name: string; + tags?: string; + directory?: string; +} \ No newline at end of file diff --git a/packages/cloudflare/workers/src/generators/init/schema.json b/packages/cloudflare/workers/src/generators/init/schema.json new file mode 100644 index 0000000..6cebcdc --- /dev/null +++ b/packages/cloudflare/workers/src/generators/init/schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/schema", + "cli": "nx", + "$id": "Init", + "title": "", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "", + "$default": { + "$source": "argv", + "index": 0 + }, + "x-prompt": "What name would you like to use?" + }, + "tags": { + "type": "string", + "description": "Add tags to the project (used for linting)", + "alias": "t" + }, + "directory": { + "type": "string", + "description": "A directory where the project is placed", + "alias": "d" + } + }, + "required": ["name"] +} diff --git a/packages/cloudflare/workers/src/generators/cloudflare-workers/files/src/index.ts__template__ b/packages/cloudflare/workers/src/generators/kv/files/src/index.ts__template__ similarity index 100% rename from packages/cloudflare/workers/src/generators/cloudflare-workers/files/src/index.ts__template__ rename to packages/cloudflare/workers/src/generators/kv/files/src/index.ts__template__ diff --git a/packages/cloudflare/workers/src/generators/cloudflare-workers/generator.ts b/packages/cloudflare/workers/src/generators/kv/kv.ts similarity index 52% rename from packages/cloudflare/workers/src/generators/cloudflare-workers/generator.ts rename to packages/cloudflare/workers/src/generators/kv/kv.ts index f287922..3885d92 100644 --- a/packages/cloudflare/workers/src/generators/cloudflare-workers/generator.ts +++ b/packages/cloudflare/workers/src/generators/kv/kv.ts @@ -8,19 +8,16 @@ import { Tree, } from '@nrwl/devkit'; import * as path from 'path'; -import { CloudflareWorkersGeneratorSchema } from './schema'; +import { KvGeneratorSchema } from './schema'; -interface NormalizedSchema extends CloudflareWorkersGeneratorSchema { +interface NormalizedSchema extends KvGeneratorSchema { projectName: string; projectRoot: string; projectDirectory: string; - parsedTags: string[]; + parsedTags: string[] } -function normalizeOptions( - tree: Tree, - options: CloudflareWorkersGeneratorSchema -): NormalizedSchema { +function normalizeOptions(tree: Tree, options: KvGeneratorSchema): NormalizedSchema { const name = names(options.name).fileName; const projectDirectory = options.directory ? `${names(options.directory).fileName}/${name}` @@ -41,36 +38,32 @@ function normalizeOptions( } function addFiles(tree: Tree, options: NormalizedSchema) { - const templateOptions = { - ...options, - ...names(options.name), - offsetFromRoot: offsetFromRoot(options.projectRoot), - template: '', - }; - generateFiles( - tree, - path.join(__dirname, 'files'), - options.projectRoot, - templateOptions - ); + const templateOptions = { + ...options, + ...names(options.name), + offsetFromRoot: offsetFromRoot(options.projectRoot), + template: '' + }; + generateFiles(tree, path.join(__dirname, 'files'), options.projectRoot, templateOptions); } -export default async function ( - tree: Tree, - options: CloudflareWorkersGeneratorSchema -) { +export default async function (tree: Tree, options: KvGeneratorSchema) { const normalizedOptions = normalizeOptions(tree, options); - addProjectConfiguration(tree, normalizedOptions.projectName, { - root: normalizedOptions.projectRoot, - projectType: 'library', - sourceRoot: `${normalizedOptions.projectRoot}/src`, - targets: { - build: { - executor: '@mono-ukulele/cf-workers:build', + addProjectConfiguration( + tree, + normalizedOptions.projectName, + { + root: normalizedOptions.projectRoot, + projectType: 'library', + sourceRoot: `${normalizedOptions.projectRoot}/src`, + targets: { + build: { + executor: "@mono-ukulele/cf-workers:build", + }, }, - }, - tags: normalizedOptions.parsedTags, - }); + tags: normalizedOptions.parsedTags, + } + ); addFiles(tree, normalizedOptions); await formatFiles(tree); } diff --git a/packages/cloudflare/workers/src/generators/kv/schema.d.ts b/packages/cloudflare/workers/src/generators/kv/schema.d.ts new file mode 100644 index 0000000..6958700 --- /dev/null +++ b/packages/cloudflare/workers/src/generators/kv/schema.d.ts @@ -0,0 +1,5 @@ +export interface KvGeneratorSchema { + name: string; + tags?: string; + directory?: string; +} \ No newline at end of file diff --git a/packages/cloudflare/workers/src/generators/kv/schema.json b/packages/cloudflare/workers/src/generators/kv/schema.json new file mode 100644 index 0000000..d80f557 --- /dev/null +++ b/packages/cloudflare/workers/src/generators/kv/schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/schema", + "cli": "nx", + "$id": "Kv", + "title": "", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "", + "$default": { + "$source": "argv", + "index": 0 + }, + "x-prompt": "What name would you like to use?" + }, + "tags": { + "type": "string", + "description": "Add tags to the project (used for linting)", + "alias": "t" + }, + "directory": { + "type": "string", + "description": "A directory where the project is placed", + "alias": "d" + } + }, + "required": ["name"] +} diff --git a/packages/cloudflare/workers/src/generators/worker/__snapshots__/worker.spec.ts.snap b/packages/cloudflare/workers/src/generators/worker/__snapshots__/worker.spec.ts.snap new file mode 100644 index 0000000..5936b6f --- /dev/null +++ b/packages/cloudflare/workers/src/generators/worker/__snapshots__/worker.spec.ts.snap @@ -0,0 +1,31 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`cloudflare-workers generator should generate files 1`] = ` +"name = \\"my-worker-app\\" +compatibility_date = \\"2022-05-20\\" + +[env.dev] +kv_namespaces = [] +[env.production] +kv_namespaces = [] +" +`; + +exports[`cloudflare-workers generator should generate files 2`] = ` +Object { + "configurations": Object { + "production": Object { + "commands": Array [ + "npx wrangler dev src/index.ts --tsconfig.json=tsconfig.lib.json --env=production", + ], + }, + }, + "executor": "@nrwl/workspace:run-commands", + "options": Object { + "commands": Array [ + "npx wrangler dev src/index.ts --tsconfig.json=tsconfig.lib.json --env=dev", + ], + "cwd": "libs/my-worker-app", + }, +} +`; diff --git a/packages/cloudflare/workers/src/generators/worker/files/src/lib/request-handler.ts__tmpl__ b/packages/cloudflare/workers/src/generators/worker/files/src/lib/request-handler.ts__tmpl__ new file mode 100644 index 0000000..a125753 --- /dev/null +++ b/packages/cloudflare/workers/src/generators/worker/files/src/lib/request-handler.ts__tmpl__ @@ -0,0 +1,890 @@ +export async function handleRequest(request: Request) { + console.log('hello from the request handler'); + return new Response(HTML, { + headers: { 'content-type': 'text/html' }, + }); +} + +const HTML = ` + + + + + + + Document + + + +
+
+
+

+ Hello there, + Welcome <%= className %> 👋 +

+
+ +
+
+

+ + + + You're up and running +

+ What's next? +
+
+ + + +
+
+ + + +
+

Next steps

+

Here are some things you can do with Nx:

+
+ + + + + Add UI library + +
+                # Generate UI lib
+                nx g @nrwl/angular:lib ui
+                # Add a component
+                nx g @nrwl/angular:component button --project ui
+              
+
+
+ + + + + View interactive project graph + +
nx graph
+
+
+ + + + + Run affected commands + +
+                # see what's been affected by changes
+                nx affected:graph
+                # run tests for current changes
+                nx affected:test
+                # run e2e tests for current changes
+                nx affected:e2e
+              
+
+
+ +

+ Carefully crafted with + + + +

+
+
+ + + + +` diff --git a/packages/cloudflare/workers/src/generators/worker/files/src/welcome.html b/packages/cloudflare/workers/src/generators/worker/files/src/welcome.html new file mode 100644 index 0000000..ce917f5 --- /dev/null +++ b/packages/cloudflare/workers/src/generators/worker/files/src/welcome.html @@ -0,0 +1,880 @@ + + + + + + + Document + + + +
+
+
+

+ Hello there, + Welcome <%= className %> 👋 +

+
+ +
+
+

+ + + + You're up and running +

+ What's next? +
+
+ + + +
+
+ + + +
+

Next steps

+

Here are some things you can do with Nx:

+
+ + + + + Add UI library + +
+                # Generate UI lib
+                nx g @nrwl/angular:lib ui
+                # Add a component
+                nx g @nrwl/angular:component button --project ui
+              
+
+
+ + + + + View interactive project graph + +
nx graph
+
+
+ + + + + Run affected commands + +
+                # see what's been affected by changes
+                nx affected:graph
+                # run tests for current changes
+                nx affected:test
+                # run e2e tests for current changes
+                nx affected:e2e
+              
+
+
+ +

+ Carefully crafted with + + + +

+
+
+ + + diff --git a/packages/cloudflare/workers/src/generators/worker/files/wranger.toml b/packages/cloudflare/workers/src/generators/worker/files/wranger.toml new file mode 100644 index 0000000..d62b2d4 --- /dev/null +++ b/packages/cloudflare/workers/src/generators/worker/files/wranger.toml @@ -0,0 +1,7 @@ +name = "<%= fileName %>" +compatibility_date = "<%= compatibilityDate %>" + +[env.dev] +kv_namespaces = [] +[env.production] +kv_namespaces = [] diff --git a/packages/cloudflare/workers/src/generators/cloudflare-workers/schema.d.ts b/packages/cloudflare/workers/src/generators/worker/schema.d.ts similarity index 100% rename from packages/cloudflare/workers/src/generators/cloudflare-workers/schema.d.ts rename to packages/cloudflare/workers/src/generators/worker/schema.d.ts diff --git a/packages/cloudflare/workers/src/generators/cloudflare-workers/schema.json b/packages/cloudflare/workers/src/generators/worker/schema.json similarity index 100% rename from packages/cloudflare/workers/src/generators/cloudflare-workers/schema.json rename to packages/cloudflare/workers/src/generators/worker/schema.json diff --git a/packages/cloudflare/workers/src/generators/worker/worker.spec.ts b/packages/cloudflare/workers/src/generators/worker/worker.spec.ts new file mode 100644 index 0000000..f2a2358 --- /dev/null +++ b/packages/cloudflare/workers/src/generators/worker/worker.spec.ts @@ -0,0 +1,24 @@ +import {createTreeWithEmptyWorkspace} from '@nrwl/devkit/testing'; +import {readProjectConfiguration, Tree} from '@nrwl/devkit'; +import {workerApp} from './worker' + +describe('cloudflare-workers generator', () => { + let tree: Tree; + + beforeEach(() => { + tree = createTreeWithEmptyWorkspace(2); + }); + + it('should generate files', async () => { + await workerApp(tree, { + name: 'my-worker-app', + }) + + const config = readProjectConfiguration(tree, 'my-worker-app'); + expect(tree.read('libs/my-worker-app/wranger.toml', 'utf-8')).toMatchSnapshot(); + expect(tree.exists('libs/my-worker-app/src/index.ts')).toBeTruthy(); + expect(tree.exists('libs/my-worker-app/src/lib/request-handler.ts')).toBeTruthy(); + expect(config.targets['serve']).toMatchSnapshot(); + expect(config.targets['build']).toBeTruthy(); + }); +}); diff --git a/packages/cloudflare/workers/src/generators/worker/worker.ts b/packages/cloudflare/workers/src/generators/worker/worker.ts new file mode 100644 index 0000000..fe65187 --- /dev/null +++ b/packages/cloudflare/workers/src/generators/worker/worker.ts @@ -0,0 +1,160 @@ +import { + formatFiles, + generateFiles, + getWorkspaceLayout, joinPathFragments, + names, + offsetFromRoot, readProjectConfiguration, + Tree, updateJson, updateProjectConfiguration, +} from '@nrwl/devkit'; +import {libraryGenerator as jsLib} from "@nrwl/js"; +import * as path from 'path'; +import {workerInit} from "../init/generator"; +import {moveGenerator} from '@nrwl/workspace/generators' +import {CloudflareWorkersGeneratorSchema} from './schema'; + +interface NormalizedSchema extends CloudflareWorkersGeneratorSchema { + projectName: string; + projectRoot: string; + projectDirectory: string; + parsedTags: string[]; +} + +function normalizeOptions( + tree: Tree, + options: CloudflareWorkersGeneratorSchema +): NormalizedSchema { + const name = names(options.name).fileName; + const projectDirectory = options.directory + ? `${names(options.directory).fileName}/${name}` + : name; + const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-'); + const projectRoot = `${getWorkspaceLayout(tree).libsDir}/${projectDirectory}`; + const parsedTags = options.tags + ? options.tags.split(',').map((s) => s.trim()) + : []; + + return { + ...options, + projectName, + projectRoot, + projectDirectory, + parsedTags, + }; +} + +function addFiles(tree: Tree, options: NormalizedSchema) { + const n = names(options.name); + const templateOptions = { + ...options, + ...n, + compatibilityDate: new Date().toISOString().split('T')[0], + offsetFromRoot: offsetFromRoot(options.projectRoot), + tmpl: '', + }; + generateFiles( + tree, + path.join(__dirname, 'files'), + options.projectRoot, + templateOptions + ); + + tree.write(joinPathFragments(options.projectRoot, 'src', 'index.ts'), ` +import { handleRequest } from './lib/request-handler'; +addEventListener("fetch", (event) => { + console.log('hello from event listener'); + event.respondWith(handleRequest(event.request)); +}); + `) + tree.delete(joinPathFragments(options.projectRoot, 'src', 'lib', `${n.fileName}.ts`)) +} + +export async function workerApp( + tree: Tree, + options: CloudflareWorkersGeneratorSchema +) { + const normalizedOptions = normalizeOptions(tree, options); + const cfWorkerInitTask = workerInit(tree); + await jsLib(tree, { + name: normalizedOptions.projectName, + tags: normalizedOptions.tags, + buildable: true, + unitTestRunner: 'none', + compiler: 'tsc', + skipFormat: true, + config: 'project', + }) + // await moveGenerator(tree, { + // projectName: normalizedOptions.projectName, + // destination: `apps/${normalizedOptions.projectName}`, + // updateImportPath: true, + // }); + console.log(normalizedOptions, tree.read('workspace.json', 'utf-8')); + const projectConfig = readProjectConfiguration(tree, normalizedOptions.projectName); + + updateJson(tree, joinPathFragments(projectConfig.root, 'tsconfig.json'), (json: TsConfig) => { + json.compilerOptions = { + "module": "es2022", + "target": "es2021", + "lib": [ + "es2021" + ], + "moduleResolution": "node", + "resolveJsonModule": true, + "allowJs": true, + "checkJs": true, + "noEmit": true, + "isolatedModules": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "types": [ + "@cloudflare/worker-types" + ] + } + return json; + }) + + console.log(projectConfig); + projectConfig.targets['serve'] = { + executor: '@nrwl/workspace:run-commands', + options: { + commands: ['npx wrangler dev src/index.ts --tsconfig.json=tsconfig.lib.json --env=dev'], + cwd: normalizedOptions.projectRoot, + }, + configurations: { + production: { + commands: ['npx wrangler dev src/index.ts --tsconfig.json=tsconfig.lib.json --env=production'], + } + } + } + + projectConfig.targets['publish'] = { + executor: '@nrwl/workspace:run-commands', + options: { + commands: [`npx wrangler publish dist/${normalizedOptions.projectName} --env=dev`], + }, + configurations: { + production: { + commands: ['npx wrangler publish dist/${} --env=production'], + } + } + } + updateProjectConfiguration(tree, normalizedOptions.projectName, projectConfig); + addFiles(tree, normalizedOptions); + + return () => { + formatFiles(tree); + cfWorkerInitTask(); + } +} + +export default workerApp + +interface TsConfig { + compilerOptions?: Record +} diff --git a/packages/cloudflare/workers/src/index.ts b/packages/cloudflare/workers/src/index.ts index e69de29..4117b0b 100644 --- a/packages/cloudflare/workers/src/index.ts +++ b/packages/cloudflare/workers/src/index.ts @@ -0,0 +1 @@ +export * from './generators/worker/worker' diff --git a/workspace.json b/workspace.json new file mode 100644 index 0000000..93a5358 --- /dev/null +++ b/workspace.json @@ -0,0 +1,7 @@ +{ + "version": "2", + "projects": { + "cloudflare-workers": "packages/cloudflare/workers", + "cloudflare-workers-e2e": "packages/cloudflare/workers-e2e" + } +}