diff --git a/package-lock.json b/package-lock.json index 1c9c424dd7..606ce772bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,8 +7,8 @@ "name": "feathers", "license": "MIT", "dependencies": { - "@babel/core": "^7.19.0", - "@babel/preset-env": "^7.19.0", + "@babel/core": "^7.19.1", + "@babel/preset-env": "^7.19.1", "@feathershq/pinion": "^0.3.5", "@feathersjs/hooks": "^0.7.5", "@koa/cors": "^3.4.1", @@ -16,8 +16,8 @@ "@types/config": "^3.3.0", "@types/cookie-session": "^2.0.44", "@types/encodeurl": "^1.0.0", - "@types/express": "^4.17.13", - "@types/express-serve-static-core": "^4.17.30", + "@types/express": "^4.17.14", + "@types/express-serve-static-core": "^4.17.31", "@types/json-schema": "^7.0.11", "@types/jsonwebtoken": "^8.5.9", "@types/koa": "^2.13.5", @@ -29,7 +29,7 @@ "@types/lodash": "^4.14.185", "@types/mocha": "^9.1.1", "@types/mongodb": "^4.0.6", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "@types/node-fetch": "^2.6.2", "@types/prettier": "^2.7.0", "@types/qs": "^6.9.7", @@ -64,7 +64,7 @@ "mocha": "^10.0.0", "mocha-puppeteer": "^0.14.0", "mongodb": "^4.9.1", - "mongodb-memory-server": "^8.9.1", + "mongodb-memory-server": "^8.9.2", "node-fetch": "^2.6.1", "pg": "^8.8.0", "qs": "^6.11.0", @@ -73,7 +73,7 @@ "sift": "^16.0.0", "socket.io": "^4.5.2", "socket.io-client": "^4.5.2", - "sqlite3": "^5.0.11", + "sqlite3": "^5.1.1", "superagent": "^8.0.0", "tough-cookie": "^4.1.2", "ts-loader": "^9.3.1", @@ -92,7 +92,7 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", "lerna": "^5.5.1", - "npm-check-updates": "^16.1.2", + "npm-check-updates": "^16.1.3", "prettier": "^2.7.1", "typescript": "^4.8.3" }, @@ -3357,21 +3357,21 @@ } }, "node_modules/@nrwl/cli": { - "version": "14.6.2", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.6.2.tgz", - "integrity": "sha512-27nSacIN6+rA8b5vZbEGBbw2frr22yl5m8mB1N1O+l9UJjGOeebewEgyi9JCUC2Qt59W5Jo47ajsYIZG69k+ew==", + "version": "14.7.5", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.7.5.tgz", + "integrity": "sha512-hkkavBDHPZKuxG9q8bcib9/TYnTn13t8CaePjx1JvYqWTYblWVLrzlPhJKFC44Dkch+rtvZ/USs5Fih76se25g==", "dev": true, "dependencies": { - "nx": "14.6.2" + "nx": "14.7.5" } }, "node_modules/@nrwl/tao": { - "version": "14.6.2", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.6.2.tgz", - "integrity": "sha512-T3cFxiAyfleARop+GleGpF3dLaqRw+S0GVyuEGKZm7oiv8W45glcWJ5N6PQp+VSAt5Y/Ek6mBCQT2XteJwY/4Q==", + "version": "14.7.5", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.7.5.tgz", + "integrity": "sha512-MzfJMqVbiMitYjWXaL5/7dDKw1hDG7acciGeu5SyUX8J2J0ymKzXhqjshPvn/Ga1E9QtnMckd6aKmLlvochVag==", "dev": true, "dependencies": { - "nx": "14.6.2" + "nx": "14.7.5" }, "bin": { "tao": "index.js" @@ -3436,9 +3436,9 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "13.9.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.9.1.tgz", - "integrity": "sha512-98zOxAAR8MDHjXI2xGKgn/qkZLwfcNjHka0baniuEpN1fCv3kDJeh5qc0mBwim5y31eaPaYer9QikzwOkQq3wQ==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.12.0.tgz", + "integrity": "sha512-1QYzZrwnn3rTQE7ZoSxXrO8lhu0aIbac1c+qIPOPEaVXBWSaUyLV1x9yt4uDQOwmu6u5ywVS8OJgs+ErDLf6vQ==", "dev": true }, "node_modules/@octokit/plugin-enterprise-rest": { @@ -3448,12 +3448,12 @@ "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.2.3.tgz", - "integrity": "sha512-1RXJZ7hnxSANMtxKSVIEByjhYqqlu2GaKmLJJE/OVDya1aI++hdmXP4ORCUlsN2rt4hJzRYbWizBHlGYKz3dhQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.3.1.tgz", + "integrity": "sha512-h8KKxESmSFTcXX409CAxlaOYscEDvN2KGQRsLCGT1NSqRW+D6EXLVQ8vuHhFznS9MuH9QYw1GfsUN30bg8hjVA==", "dev": true, "dependencies": { - "@octokit/types": "^7.3.1" + "@octokit/types": "^7.5.0" }, "engines": { "node": ">= 14" @@ -3472,12 +3472,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.5.2.tgz", - "integrity": "sha512-zUscUePMC3KEKyTAfuG/dA6hw4Yn7CncVJs2kM9xc4931Iqk3ZiwHfVwTUnxkqQJIVgeBRYUk3rM4hMfgASUxg==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.6.2.tgz", + "integrity": "sha512-n9dL5KMpz9qVFSNdcVWC8ZPbl68QbTk7+CMPXCXqaMZOLn1n1YuoSFFCy84Ge0fx333fUqpnBHv8BFjwGtUQkA==", "dev": true, "dependencies": { - "@octokit/types": "^7.3.1", + "@octokit/types": "^7.5.0", "deprecation": "^2.3.1" }, "engines": { @@ -3534,12 +3534,12 @@ } }, "node_modules/@octokit/types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.3.1.tgz", - "integrity": "sha512-Vefohn8pHGFYWbSc6du0wXMK/Pmy6h0H4lttBw5WqquEuxjdXwyYX07CeZpJDkzSzpdKxBoWRNuDJGTE+FvtqA==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.0.tgz", + "integrity": "sha512-aHm+olfIZjQpzoODpl+RCZzchKOrdSLJs+yfI7pMMcmB19Li6vidgx0DwUDO/Ic4Q3fq/lOjJORVCcLZefcrJw==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^13.9.1" + "@octokit/openapi-types": "^13.11.0" } }, "node_modules/@parcel/watcher": { @@ -3809,12 +3809,6 @@ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, - "node_modules/@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", - "dev": true - }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -6248,9 +6242,9 @@ } }, "node_modules/boxen/node_modules/ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.1.tgz", + "integrity": "sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==", "dev": true, "engines": { "node": ">=12" @@ -6605,6 +6599,18 @@ "node": ">=8" } }, + "node_modules/cacheable-request/node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -7043,19 +7049,6 @@ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, - "node_modules/compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "dev": true, - "dependencies": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -7880,9 +7873,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.253", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.253.tgz", - "integrity": "sha512-1pezJ2E1UyBTGbA7fUlHdPSXQw1k+82VhTFLG5G0AUqLGvsZqFzleOblceqegZzxYX4kC7hGEEdzIQI9RZ1Cuw==" + "version": "1.4.254", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz", + "integrity": "sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -8826,9 +8819,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -9105,9 +9098,9 @@ } }, "node_modules/form-data-encoder": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.0.tgz", - "integrity": "sha512-njK60LnfhfDWy+AEUIf9ZQNRAcmXCdDfiNOm2emuPtzwh7U9k/mo9F3S54aPiaZ3vhqUjikVLfcPg2KuBddskQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.2.tgz", + "integrity": "sha512-FCaIOVTRA9E0siY6FeXid7D5yrCqpsErplUkE2a1BEiKj1BE9z6FbKB4ntDTwC4NVLie9p+4E9nX4mWwEOT05A==", "dev": true, "engines": { "node": ">= 14.17" @@ -9656,24 +9649,23 @@ } }, "node_modules/got": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.3.1.tgz", - "integrity": "sha512-tS6+JMhBh4iXMSXF6KkIsRxmloPln31QHDlcb6Ec3bzxjjFJFr/8aXdpyuLmVc9I4i2HyBHYw1QU5K1ruUdpkw==", + "version": "12.4.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.4.1.tgz", + "integrity": "sha512-Sz1ojLt4zGNkcftIyJKnulZT/yEDvifhUjccHA8QzOuTgPs/+njXYNMFE3jR4/2OODQSSbH8SdnoLCkbh41ieA==", "dev": true, "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", "cacheable-lookup": "^6.0.4", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", - "form-data-encoder": "^2.0.1", + "form-data-encoder": "^2.1.0", "get-stream": "^6.0.1", "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" + "responselike": "^3.0.0" }, "engines": { "node": ">=14.16" @@ -11120,12 +11112,11 @@ } }, "node_modules/keyv": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.4.1.tgz", - "integrity": "sha512-PzByhNxfBLnSBW2MZi1DF+W5+qB/7BMpOokewqIvqS8GFtP7xHm2oeGU72Y1fhtfOv/FiEnI4+nyViYDmUChnw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz", + "integrity": "sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==", "dev": true, "dependencies": { - "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -13573,9 +13564,9 @@ } }, "node_modules/npm-check-updates": { - "version": "16.1.2", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.1.2.tgz", - "integrity": "sha512-6ZnDkrGkQQ+tnCeMXIO7sxdTWwXiodzO02sOtyZzj9HbJqAf4qY0wdmTEkG7wBNggwlIksVxgyjCzSejMdv6qg==", + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.1.3.tgz", + "integrity": "sha512-cjFV+Mb5I5rZWVElJugp1cArdzlHQy6Tzi+1i6T72nzLNFN10x7OjA7iQXgFpqeN+U5Zwv8u0/XVCEWM9KxqhQ==", "dev": true, "dependencies": { "chalk": "^5.0.1", @@ -13603,6 +13594,7 @@ "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^1.0.0", + "untildify": "^4.0.0", "update-notifier": "^6.0.2", "yaml": "^2.1.1" }, @@ -13902,14 +13894,14 @@ } }, "node_modules/nx": { - "version": "14.6.2", - "resolved": "https://registry.npmjs.org/nx/-/nx-14.6.2.tgz", - "integrity": "sha512-LSKCOjgl1S5CZam/cN7z94mzjrqJh1EiD6JaUek1I8KcR1Rbst51D2SC6DHNC0VXr5zvT0Rlj1mY8TM4wxC2Aw==", + "version": "14.7.5", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.7.5.tgz", + "integrity": "sha512-hp8TYk/t15MJVXQCafSduriZqoxR2zvw5mDHqg32Mjt2jFEFKaPWtaO5l/qKj+rlLE8cPYTeGL5qAS9WZkAWtg==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/cli": "14.6.2", - "@nrwl/tao": "14.6.2", + "@nrwl/cli": "14.7.5", + "@nrwl/tao": "14.7.5", "@parcel/watcher": "2.0.4", "chalk": "4.1.0", "chokidar": "^3.5.1", @@ -16085,26 +16077,20 @@ } }, "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, "dependencies": { - "lowercase-keys": "^2.0.0" + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -17916,6 +17902,15 @@ "node": ">= 0.8" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/upath": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", @@ -17992,9 +17987,9 @@ } }, "node_modules/update-notifier/node_modules/ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", + "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==", "dev": true }, "node_modules/update-notifier/node_modules/is-ci": { @@ -21261,21 +21256,21 @@ } }, "@nrwl/cli": { - "version": "14.6.2", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.6.2.tgz", - "integrity": "sha512-27nSacIN6+rA8b5vZbEGBbw2frr22yl5m8mB1N1O+l9UJjGOeebewEgyi9JCUC2Qt59W5Jo47ajsYIZG69k+ew==", + "version": "14.7.5", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.7.5.tgz", + "integrity": "sha512-hkkavBDHPZKuxG9q8bcib9/TYnTn13t8CaePjx1JvYqWTYblWVLrzlPhJKFC44Dkch+rtvZ/USs5Fih76se25g==", "dev": true, "requires": { - "nx": "14.6.2" + "nx": "14.7.5" } }, "@nrwl/tao": { - "version": "14.6.2", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.6.2.tgz", - "integrity": "sha512-T3cFxiAyfleARop+GleGpF3dLaqRw+S0GVyuEGKZm7oiv8W45glcWJ5N6PQp+VSAt5Y/Ek6mBCQT2XteJwY/4Q==", + "version": "14.7.5", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.7.5.tgz", + "integrity": "sha512-MzfJMqVbiMitYjWXaL5/7dDKw1hDG7acciGeu5SyUX8J2J0ymKzXhqjshPvn/Ga1E9QtnMckd6aKmLlvochVag==", "dev": true, "requires": { - "nx": "14.6.2" + "nx": "14.7.5" } }, "@octokit/auth-token": { @@ -21325,9 +21320,9 @@ } }, "@octokit/openapi-types": { - "version": "13.9.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.9.1.tgz", - "integrity": "sha512-98zOxAAR8MDHjXI2xGKgn/qkZLwfcNjHka0baniuEpN1fCv3kDJeh5qc0mBwim5y31eaPaYer9QikzwOkQq3wQ==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.12.0.tgz", + "integrity": "sha512-1QYzZrwnn3rTQE7ZoSxXrO8lhu0aIbac1c+qIPOPEaVXBWSaUyLV1x9yt4uDQOwmu6u5ywVS8OJgs+ErDLf6vQ==", "dev": true }, "@octokit/plugin-enterprise-rest": { @@ -21337,12 +21332,12 @@ "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.2.3.tgz", - "integrity": "sha512-1RXJZ7hnxSANMtxKSVIEByjhYqqlu2GaKmLJJE/OVDya1aI++hdmXP4ORCUlsN2rt4hJzRYbWizBHlGYKz3dhQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.3.1.tgz", + "integrity": "sha512-h8KKxESmSFTcXX409CAxlaOYscEDvN2KGQRsLCGT1NSqRW+D6EXLVQ8vuHhFznS9MuH9QYw1GfsUN30bg8hjVA==", "dev": true, "requires": { - "@octokit/types": "^7.3.1" + "@octokit/types": "^7.5.0" } }, "@octokit/plugin-request-log": { @@ -21353,12 +21348,12 @@ "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.5.2.tgz", - "integrity": "sha512-zUscUePMC3KEKyTAfuG/dA6hw4Yn7CncVJs2kM9xc4931Iqk3ZiwHfVwTUnxkqQJIVgeBRYUk3rM4hMfgASUxg==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.6.2.tgz", + "integrity": "sha512-n9dL5KMpz9qVFSNdcVWC8ZPbl68QbTk7+CMPXCXqaMZOLn1n1YuoSFFCy84Ge0fx333fUqpnBHv8BFjwGtUQkA==", "dev": true, "requires": { - "@octokit/types": "^7.3.1", + "@octokit/types": "^7.5.0", "deprecation": "^2.3.1" } }, @@ -21400,12 +21395,12 @@ } }, "@octokit/types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.3.1.tgz", - "integrity": "sha512-Vefohn8pHGFYWbSc6du0wXMK/Pmy6h0H4lttBw5WqquEuxjdXwyYX07CeZpJDkzSzpdKxBoWRNuDJGTE+FvtqA==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.0.tgz", + "integrity": "sha512-aHm+olfIZjQpzoODpl+RCZzchKOrdSLJs+yfI7pMMcmB19Li6vidgx0DwUDO/Ic4Q3fq/lOjJORVCcLZefcrJw==", "dev": true, "requires": { - "@octokit/openapi-types": "^13.9.1" + "@octokit/openapi-types": "^13.11.0" } }, "@parcel/watcher": { @@ -21649,12 +21644,6 @@ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", - "dev": true - }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -23721,9 +23710,9 @@ "dev": true }, "ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.1.tgz", + "integrity": "sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==", "dev": true }, "camelcase": { @@ -23968,6 +23957,15 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + } } } }, @@ -24291,16 +24289,6 @@ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, - "compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "dev": true, - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -24954,9 +24942,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.253", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.253.tgz", - "integrity": "sha512-1pezJ2E1UyBTGbA7fUlHdPSXQw1k+82VhTFLG5G0AUqLGvsZqFzleOblceqegZzxYX4kC7hGEEdzIQI9RZ1Cuw==" + "version": "1.4.254", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz", + "integrity": "sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==" }, "elliptic": { "version": "6.5.4", @@ -25679,9 +25667,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -25890,9 +25878,9 @@ } }, "form-data-encoder": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.0.tgz", - "integrity": "sha512-njK60LnfhfDWy+AEUIf9ZQNRAcmXCdDfiNOm2emuPtzwh7U9k/mo9F3S54aPiaZ3vhqUjikVLfcPg2KuBddskQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.2.tgz", + "integrity": "sha512-FCaIOVTRA9E0siY6FeXid7D5yrCqpsErplUkE2a1BEiKj1BE9z6FbKB4ntDTwC4NVLie9p+4E9nX4mWwEOT05A==", "dev": true }, "formidable": { @@ -26315,24 +26303,23 @@ } }, "got": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.3.1.tgz", - "integrity": "sha512-tS6+JMhBh4iXMSXF6KkIsRxmloPln31QHDlcb6Ec3bzxjjFJFr/8aXdpyuLmVc9I4i2HyBHYw1QU5K1ruUdpkw==", + "version": "12.4.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.4.1.tgz", + "integrity": "sha512-Sz1ojLt4zGNkcftIyJKnulZT/yEDvifhUjccHA8QzOuTgPs/+njXYNMFE3jR4/2OODQSSbH8SdnoLCkbh41ieA==", "dev": true, "requires": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", "cacheable-lookup": "^6.0.4", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", - "form-data-encoder": "^2.0.1", + "form-data-encoder": "^2.1.0", "get-stream": "^6.0.1", "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" + "responselike": "^3.0.0" } }, "graceful-fs": { @@ -27434,12 +27421,11 @@ } }, "keyv": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.4.1.tgz", - "integrity": "sha512-PzByhNxfBLnSBW2MZi1DF+W5+qB/7BMpOokewqIvqS8GFtP7xHm2oeGU72Y1fhtfOv/FiEnI4+nyViYDmUChnw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz", + "integrity": "sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==", "dev": true, "requires": { - "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -29369,9 +29355,9 @@ } }, "npm-check-updates": { - "version": "16.1.2", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.1.2.tgz", - "integrity": "sha512-6ZnDkrGkQQ+tnCeMXIO7sxdTWwXiodzO02sOtyZzj9HbJqAf4qY0wdmTEkG7wBNggwlIksVxgyjCzSejMdv6qg==", + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.1.3.tgz", + "integrity": "sha512-cjFV+Mb5I5rZWVElJugp1cArdzlHQy6Tzi+1i6T72nzLNFN10x7OjA7iQXgFpqeN+U5Zwv8u0/XVCEWM9KxqhQ==", "dev": true, "requires": { "chalk": "^5.0.1", @@ -29399,6 +29385,7 @@ "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^1.0.0", + "untildify": "^4.0.0", "update-notifier": "^6.0.2", "yaml": "^2.1.1" }, @@ -29635,13 +29622,13 @@ } }, "nx": { - "version": "14.6.2", - "resolved": "https://registry.npmjs.org/nx/-/nx-14.6.2.tgz", - "integrity": "sha512-LSKCOjgl1S5CZam/cN7z94mzjrqJh1EiD6JaUek1I8KcR1Rbst51D2SC6DHNC0VXr5zvT0Rlj1mY8TM4wxC2Aw==", + "version": "14.7.5", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.7.5.tgz", + "integrity": "sha512-hp8TYk/t15MJVXQCafSduriZqoxR2zvw5mDHqg32Mjt2jFEFKaPWtaO5l/qKj+rlLE8cPYTeGL5qAS9WZkAWtg==", "dev": true, "requires": { - "@nrwl/cli": "14.6.2", - "@nrwl/tao": "14.6.2", + "@nrwl/cli": "14.7.5", + "@nrwl/tao": "14.7.5", "@parcel/watcher": "2.0.4", "chalk": "4.1.0", "chokidar": "^3.5.1", @@ -31284,20 +31271,12 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } + "lowercase-keys": "^3.0.0" } }, "restore-cursor": { @@ -32652,6 +32631,12 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, "upath": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", @@ -32696,9 +32681,9 @@ "dev": true }, "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", + "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==", "dev": true }, "is-ci": { diff --git a/package.json b/package.json index c87511b5e3..8f76c411c6 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", "lerna": "^5.5.1", - "npm-check-updates": "^16.1.2", + "npm-check-updates": "^16.1.3", "prettier": "^2.7.1", "typescript": "^4.8.3" } diff --git a/packages/adapter-commons/package.json b/packages/adapter-commons/package.json index f1801fe41b..857a253e14 100644 --- a/packages/adapter-commons/package.json +++ b/packages/adapter-commons/package.json @@ -57,7 +57,7 @@ "devDependencies": { "@types/mocha": "^9.1.1", "@types/mongodb": "^4.0.6", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "mongodb": "^4.9.1", "shx": "^0.3.4", diff --git a/packages/adapter-tests/package.json b/packages/adapter-tests/package.json index 53159cb328..14ce84f469 100644 --- a/packages/adapter-tests/package.json +++ b/packages/adapter-tests/package.json @@ -51,7 +51,7 @@ }, "devDependencies": { "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/authentication-client/package.json b/packages/authentication-client/package.json index b76bb0112b..fee6d35fcd 100644 --- a/packages/authentication-client/package.json +++ b/packages/authentication-client/package.json @@ -66,7 +66,7 @@ "@feathersjs/socketio": "^5.0.0-pre.29", "@feathersjs/socketio-client": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "axios": "^0.27.2", "mocha": "^10.0.0", "shx": "^0.3.4", diff --git a/packages/authentication-local/package.json b/packages/authentication-local/package.json index 71920fdd04..7250a1f0b3 100644 --- a/packages/authentication-local/package.json +++ b/packages/authentication-local/package.json @@ -66,7 +66,7 @@ "@types/bcryptjs": "^2.4.2", "@types/lodash": "^4.14.185", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/authentication-oauth/package.json b/packages/authentication-oauth/package.json index dc7fb615ee..4bf4dd9471 100644 --- a/packages/authentication-oauth/package.json +++ b/packages/authentication-oauth/package.json @@ -70,11 +70,11 @@ "devDependencies": { "@feathersjs/memory": "^5.0.0-pre.29", "@types/cookie-session": "^2.0.44", - "@types/express": "^4.17.13", + "@types/express": "^4.17.14", "@types/koa-session": "^5.10.6", "@types/lodash": "^4.14.185", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "@types/tough-cookie": "^4.0.2", "axios": "^0.27.2", "mocha": "^10.0.0", diff --git a/packages/authentication/package.json b/packages/authentication/package.json index 3076f62397..238e2557e9 100644 --- a/packages/authentication/package.json +++ b/packages/authentication/package.json @@ -68,7 +68,7 @@ "@feathersjs/memory": "^5.0.0-pre.29", "@types/lodash": "^4.14.185", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "@types/uuid": "^8.3.4", "mocha": "^10.0.0", "shx": "^0.3.4", diff --git a/packages/cli/package.json b/packages/cli/package.json index f4e382c3cc..91f0b9ebf5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -72,7 +72,7 @@ "@feathersjs/socketio": "^5.0.0-pre.29", "@feathersjs/transport-commons": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "@types/prettier": "^2.7.0", "axios": "^0.27.2", "mocha": "^10.0.0", diff --git a/packages/client/package.json b/packages/client/package.json index 21bea166ae..3539efab18 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -56,8 +56,8 @@ "@feathersjs/socketio-client": "^5.0.0-pre.29" }, "devDependencies": { - "@babel/core": "^7.19.0", - "@babel/preset-env": "^7.19.0", + "@babel/core": "^7.19.1", + "@babel/preset-env": "^7.19.1", "@feathersjs/express": "^5.0.0-pre.29", "@feathersjs/memory": "^5.0.0-pre.29", "@feathersjs/socketio": "^5.0.0-pre.29", diff --git a/packages/commons/package.json b/packages/commons/package.json index 11dc37b3b4..ee22d795e5 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -53,7 +53,7 @@ }, "devDependencies": { "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/configuration/package.json b/packages/configuration/package.json index 27276e2eb3..f2981e00e4 100644 --- a/packages/configuration/package.json +++ b/packages/configuration/package.json @@ -66,7 +66,7 @@ }, "devDependencies": { "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/errors/package.json b/packages/errors/package.json index 66b94a6aad..250312dcd6 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -51,7 +51,7 @@ "devDependencies": { "@feathersjs/feathers": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/express/package.json b/packages/express/package.json index 1ba78b82cc..2f8052d172 100644 --- a/packages/express/package.json +++ b/packages/express/package.json @@ -57,8 +57,8 @@ "@feathersjs/errors": "^5.0.0-pre.29", "@feathersjs/feathers": "^5.0.0-pre.29", "@feathersjs/transport-commons": "^5.0.0-pre.29", - "@types/express": "^4.17.13", - "@types/express-serve-static-core": "^4.17.30", + "@types/express": "^4.17.14", + "@types/express-serve-static-core": "^4.17.31", "cors": "^2.8.5", "express": "^4.18.1" }, @@ -67,7 +67,7 @@ "@feathersjs/tests": "^5.0.0-pre.29", "@types/lodash": "^4.14.185", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "axios": "^0.27.2", "lodash": "^4.17.21", "mocha": "^10.0.0", diff --git a/packages/feathers/package.json b/packages/feathers/package.json index 9a7d0973b8..98bdf69b76 100644 --- a/packages/feathers/package.json +++ b/packages/feathers/package.json @@ -64,7 +64,7 @@ }, "devDependencies": { "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/feathers/src/application.ts b/packages/feathers/src/application.ts index be991fe96f..bf0c58716f 100644 --- a/packages/feathers/src/application.ts +++ b/packages/feathers/src/application.ts @@ -126,6 +126,21 @@ export class Feathers return this } + async unuse( + location: L + ): Promise> { + const path = (stripSlashes(location) || '/') as L + const service = this.services[path] as Service + + if (service && typeof service.teardown === 'function') { + await service.teardown(this as any, path) + } + + delete this.services[path] + + return service as any + } + hooks(hookMap: ApplicationHookOptions) { const untypedMap = hookMap as any diff --git a/packages/feathers/src/declarations.ts b/packages/feathers/src/declarations.ts index 0cd91a5138..c4562875e7 100644 --- a/packages/feathers/src/declarations.ts +++ b/packages/feathers/src/declarations.ts @@ -222,6 +222,15 @@ export interface FeathersApplication { options?: ServiceOptions ): this + /** + * Unregister an existing service. + * + * @param path The name of the service to unregister + */ + unuse( + path: L + ): Promise> + /** * Get the Feathers service instance for a path. This will * be the service originally registered with Feathers functionality diff --git a/packages/feathers/test/application.test.ts b/packages/feathers/test/application.test.ts index 53acd70752..ec2e642564 100644 --- a/packages/feathers/test/application.test.ts +++ b/packages/feathers/test/application.test.ts @@ -85,7 +85,7 @@ describe('Feathers application', () => { }) }) - it('registers and wraps a new service', async () => { + it('registers and wraps a new service and can unregister (#2035)', async () => { const dummyService = { async setup(this: any, _app: any, path: string) { this.path = path @@ -100,7 +100,7 @@ describe('Feathers application', () => { } } - const app = feathers().use('/dummy', dummyService) + const app = feathers<{ dummy: typeof dummyService }>().use('dummy', dummyService) const wrappedService = app.service('dummy') assert.strictEqual( @@ -114,6 +114,13 @@ describe('Feathers application', () => { }) assert.strictEqual(data.message, 'Test message') + + await app.unuse('dummy') + + assert.strictEqual(Object.keys(app.services).length, 0) + assert.throws(() => app.service('dummy'), { + message: "Can not find service 'dummy'" + }) }) it('can not register custom methods on a protected methods', async () => { diff --git a/packages/knex/package.json b/packages/knex/package.json index 0e05e8dce9..1dcb317c72 100644 --- a/packages/knex/package.json +++ b/packages/knex/package.json @@ -62,12 +62,12 @@ "devDependencies": { "@feathersjs/adapter-tests": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "knex": "^2.3.0", "mocha": "^10.0.0", "pg": "^8.8.0", "shx": "^0.3.4", - "sqlite3": "^5.0.11", + "sqlite3": "^5.1.1", "typescript": "^4.8.3" }, "gitHead": "4314dc89a41a8bbaabf00b47697bf7887861d17d" diff --git a/packages/koa/package.json b/packages/koa/package.json index 2d952966be..1f444ea34b 100644 --- a/packages/koa/package.json +++ b/packages/koa/package.json @@ -70,7 +70,7 @@ "@feathersjs/tests": "^5.0.0-pre.29", "@types/koa-compose": "^3.2.5", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "axios": "^0.27.2", "mocha": "^10.0.0", "shx": "^0.3.4", diff --git a/packages/memory/package.json b/packages/memory/package.json index f9464f11b4..fdb574136f 100644 --- a/packages/memory/package.json +++ b/packages/memory/package.json @@ -58,7 +58,7 @@ "@feathersjs/adapter-tests": "^5.0.0-pre.29", "@feathersjs/feathers": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/mongodb/package.json b/packages/mongodb/package.json index a50b06b758..a0c9a24c11 100644 --- a/packages/mongodb/package.json +++ b/packages/mongodb/package.json @@ -62,9 +62,9 @@ "devDependencies": { "@feathersjs/adapter-tests": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", - "mongodb-memory-server": "^8.9.1", + "mongodb-memory-server": "^8.9.2", "shx": "^0.3.4", "typescript": "^4.8.3" }, diff --git a/packages/rest-client/package.json b/packages/rest-client/package.json index f26d42de1a..aaaae305e2 100644 --- a/packages/rest-client/package.json +++ b/packages/rest-client/package.json @@ -64,7 +64,7 @@ "@feathersjs/memory": "^5.0.0-pre.29", "@feathersjs/tests": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "@types/node-fetch": "^2.6.2", "@types/qs": "^6.9.7", "axios": "^0.27.2", diff --git a/packages/schema/package.json b/packages/schema/package.json index 1de68971dc..80f50baa8f 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -66,7 +66,7 @@ "devDependencies": { "@feathersjs/memory": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "ajv-formats": "^2.1.1", "mocha": "^10.0.0", "shx": "^0.3.4", diff --git a/packages/socketio-client/package.json b/packages/socketio-client/package.json index 442e066f69..c986bf2d13 100644 --- a/packages/socketio-client/package.json +++ b/packages/socketio-client/package.json @@ -63,7 +63,7 @@ "@feathersjs/socketio": "^5.0.0-pre.29", "@feathersjs/tests": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "socket.io-client": "^4.5.2", diff --git a/packages/socketio/package.json b/packages/socketio/package.json index f27b3930ec..5a340e0b52 100644 --- a/packages/socketio/package.json +++ b/packages/socketio/package.json @@ -64,7 +64,7 @@ "@feathersjs/memory": "^5.0.0-pre.29", "@feathersjs/tests": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "lodash": "^4.17.21", "mocha": "^10.0.0", "shx": "^0.3.4", diff --git a/packages/tests/package.json b/packages/tests/package.json index 746ce4e7af..2edf3b904a 100644 --- a/packages/tests/package.json +++ b/packages/tests/package.json @@ -51,7 +51,7 @@ "devDependencies": { "@feathersjs/feathers": "^5.0.0-pre.29", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/transport-commons/package.json b/packages/transport-commons/package.json index 36406d7cb3..7ebbb4b00e 100644 --- a/packages/transport-commons/package.json +++ b/packages/transport-commons/package.json @@ -64,7 +64,7 @@ "@types/encodeurl": "^1.0.0", "@types/lodash": "^4.14.185", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.17", + "@types/node": "^18.7.18", "mocha": "^10.0.0", "shx": "^0.3.4", "ts-node": "^10.9.1", diff --git a/packages/transport-commons/src/routing/index.ts b/packages/transport-commons/src/routing/index.ts index cebefd3f6f..291eda5cbb 100644 --- a/packages/transport-commons/src/routing/index.ts +++ b/packages/transport-commons/src/routing/index.ts @@ -1,4 +1,4 @@ -import { Application, Service, ServiceOptions } from '@feathersjs/feathers' +import { Application, FeathersService, Service, ServiceOptions } from '@feathersjs/feathers' import { Router } from './router' declare module '@feathersjs/feathers/lib/declarations' { @@ -45,8 +45,22 @@ export const routing = () => (app: Application) => { app.routes = new Router() app.lookup = lookup + // This mixin allows us to unregister a service. It needs to run + // first so that `teardown` hooks still get registered properly + app.mixins.unshift((service: Service) => { + const { teardown } = service + + service.teardown = async function (app: Application, path: string) { + if (typeof teardown === 'function') { + await teardown.call(this, app, path) + } + app.routes.remove(path) + app.routes.remove(`${path}/:__id`) + } + }) + // Add a mixin that registers a service on the router - app.mixins.push((service: Service, path: string, options: ServiceOptions) => { + app.mixins.push((service: FeathersService, path: string, options: ServiceOptions) => { const { routeParams: params = {} } = options app.routes.insert(path, { service, params }) diff --git a/packages/transport-commons/src/routing/router.ts b/packages/transport-commons/src/routing/router.ts index 213dc66a78..2fef8b1683 100644 --- a/packages/transport-commons/src/routing/router.ts +++ b/packages/transport-commons/src/routing/router.ts @@ -15,6 +15,10 @@ export class RouteNode { constructor(public name: string, public depth: number) {} + get hasChildren() { + return Object.keys(this.children).length !== 0 || this.placeholders.length !== 0 + } + insert(path: string[], data: T): RouteNode { if (this.depth === path.length) { if (this.data !== undefined) { @@ -48,6 +52,30 @@ export class RouteNode { return child.insert(path, data) } + remove(path: string[]) { + if (path.length === this.depth) { + return + } + + const current = path[this.depth] + + if (current.startsWith(':')) { + const placeholderName = current.substring(1) + const placeholder = this.placeholders.find((p) => p.name === placeholderName) + + placeholder.remove(path) + this.placeholders = this.placeholders.filter((p) => p !== placeholder) + } else if (this.children[current]) { + const child = this.children[current] + + child.remove(path) + + if (!child.hasChildren) { + delete this.children[current] + } + } + } + lookup(path: string[], info: LookupData): LookupResult | null { if (path.length === this.depth) { return this.data === undefined @@ -62,7 +90,11 @@ export class RouteNode { const child = this.children[current] if (child) { - return child.lookup(path, info) + const lookup = child.lookup(path, info) + + if (lookup !== null) { + return lookup + } } // This will return the first placeholder that matches early @@ -90,6 +122,10 @@ export class Router { return this.root.insert(this.getPath(path), data) } + remove(path: string) { + return this.root.remove(this.getPath(path)) + } + lookup(path: string) { if (typeof path !== 'string') { return null diff --git a/packages/transport-commons/test/routing/index.test.ts b/packages/transport-commons/test/routing/index.test.ts index d78567e27b..0131533b3f 100644 --- a/packages/transport-commons/test/routing/index.test.ts +++ b/packages/transport-commons/test/routing/index.test.ts @@ -107,4 +107,14 @@ describe('app.routes', () => { __id: '1234' }) }) + + it('can unregister a service (#2035)', async () => { + const result = app.lookup('my/service') + + assert.strictEqual(result.service, app.service('/my/service/')) + + await app.unuse('/my/service') + + assert.strictEqual(app.lookup('my/service'), null) + }) }) diff --git a/packages/transport-commons/test/routing/router.test.ts b/packages/transport-commons/test/routing/router.test.ts index 41bb3168ec..307aeccbd8 100644 --- a/packages/transport-commons/test/routing/router.test.ts +++ b/packages/transport-commons/test/routing/router.test.ts @@ -95,4 +95,27 @@ describe('router', () => { data: 'three' }) }) + + it('can remove paths (#2035)', () => { + const r = new Router() + + r.insert('/hello/:id', 'one') + r.insert('/hello/:test/you', 'two') + r.insert('/hello/here/thing', 'else') + + assert.deepStrictEqual(r.lookup('hello/there'), { params: { id: 'there' }, data: 'one' }) + + r.remove('/hello/:id') + + assert.deepStrictEqual(r.lookup('hello/here/you'), { params: { test: 'here' }, data: 'two' }) + assert.deepStrictEqual(r.lookup('hello/here/thing'), { params: {}, data: 'else' }) + assert.strictEqual(r.lookup('hello/there'), null) + + r.remove('/hello/:test/you') + assert.deepStrictEqual(r.lookup('hello/here/you'), null) + assert.deepStrictEqual(r.lookup('hello/here/thing'), { params: {}, data: 'else' }) + + r.remove('/hello/here/thing') + assert.ok(!r.root.hasChildren) + }) }) diff --git a/tsconfig.json b/tsconfig.json index 1d354f853d..3144d1beb1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,7 @@ { "compilerOptions": { + // TODO: We should remove this but lib types break all the time + "skipLibCheck": true, /* Basic Options */ "target": "es2018", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */