diff --git a/.vscode/settings.json b/.vscode/settings.json index 00d3805a1..26b80da16 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,7 +2,7 @@ { "files.exclude": { "**/.nyc_output": true, - "**/build": false, + "**/build": true, "**/coverage": true, ".idea": true, "storage_default_storage": true, diff --git a/packages/cli/package.json b/packages/cli/package.json index 014bf719a..3a01d9b1b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -26,7 +26,7 @@ "verdaccio" ], "engines": { - "node": ">=10", + "node": ">=12", "npm": ">=6" }, "description": "verdaccio CLI", @@ -46,6 +46,7 @@ "@verdaccio/config": "workspace:6.0.0-6-next.5", "@verdaccio/cli-ui": "workspace:6.0.0-alpha.3", "@verdaccio/node-api": "workspace:6.0.0-6-next.11", + "@verdaccio/fastify-migration": "workspace:6.0.0-6-next.9", "commander": "6.2.0", "clipanion": "3.0.0-rc.11", "envinfo": "7.4.0", diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 26e731d25..65b7a6e8c 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -3,6 +3,7 @@ import { Cli } from 'clipanion'; import { InfoCommand } from './commands/info'; import { InitCommand } from './commands/init'; import { VersionCommand } from './commands/version'; +import { NewServer } from './commands/newServer'; import { isVersionValid, MIN_NODE_VERSION } from './utils'; if (process.getuid && process.getuid() === 0) { @@ -27,6 +28,7 @@ const cli = new Cli({ cli.register(InfoCommand); cli.register(InitCommand); cli.register(VersionCommand); +cli.register(NewServer); cli.runExit(args, Cli.defaultContext); process.on('uncaughtException', function (err) { diff --git a/packages/cli/src/commands/newServer.ts b/packages/cli/src/commands/newServer.ts new file mode 100644 index 000000000..ebd65fb26 --- /dev/null +++ b/packages/cli/src/commands/newServer.ts @@ -0,0 +1,38 @@ +import { Command, Option } from 'clipanion'; +import { findConfigFile, parseConfigFile } from '@verdaccio/config'; +import server from '@verdaccio/fastify-migration'; + +export const DEFAULT_PROCESS_NAME: string = 'verdaccio'; + +/** + * This command is intended to run the server with Fastify + * as a migration step. + */ +export class NewServer extends Command { + public static paths = [['new']]; + + private port = Option.String('-l,-p,--listen,--port', { + description: 'host:port number to listen on (default: localhost:4873)', + }); + + private config = Option.String('-c,--config', { + description: 'use this configuration file (default: ./config.yaml)', + }); + + public async execute() { + try { + const configPathLocation = findConfigFile(this.config as string); + const configParsed = parseConfigFile(configPathLocation); + const { web } = configParsed; + + process.title = web?.title || DEFAULT_PROCESS_NAME; + // const { version, name } = require('../../package.json'); + const ser = await server(); + await ser.listen(4000); + console.log('fastify running on port 4000'); + } catch (err) { + console.error(err); + process.exit(1); + } + } +} diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 61f2d85c3..ed250d4a5 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -13,6 +13,9 @@ { "path": "../core/cli-ui" }, + { + "path": "../core/server" + }, { "path": "../node-api" } diff --git a/packages/core/server/.babelrc b/packages/core/server/.babelrc new file mode 100644 index 000000000..851856e59 --- /dev/null +++ b/packages/core/server/.babelrc @@ -0,0 +1,3 @@ +{ + "extends": "../../../.babelrc" +} diff --git a/packages/core/server/.eslintignore b/packages/core/server/.eslintignore new file mode 100644 index 000000000..acf8e826f --- /dev/null +++ b/packages/core/server/.eslintignore @@ -0,0 +1,6 @@ +node_modules +coverage/ +lib/ +.nyc_output +tests-report/ +build/ diff --git a/packages/core/server/.eslintrc.json b/packages/core/server/.eslintrc.json new file mode 100644 index 000000000..3e8a7bcd4 --- /dev/null +++ b/packages/core/server/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "rules": { + "@typescript-eslint/no-use-before-define": "off" + } +} diff --git a/packages/core/server/.gitignore b/packages/core/server/.gitignore new file mode 100644 index 000000000..c3af85790 --- /dev/null +++ b/packages/core/server/.gitignore @@ -0,0 +1 @@ +lib/ diff --git a/packages/core/server/LICENSE b/packages/core/server/LICENSE new file mode 100644 index 000000000..65fb12e2a --- /dev/null +++ b/packages/core/server/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Verdaccio + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/core/server/README.md b/packages/core/server/README.md new file mode 100644 index 000000000..73eee0589 --- /dev/null +++ b/packages/core/server/README.md @@ -0,0 +1,9 @@ +# Server Fastify (migration) + +A package intended to start a migration from Express to fastify. (WIP). + +Run from root folder + +```js +pnpm debug -- new +``` diff --git a/packages/core/server/jest.config.js b/packages/core/server/jest.config.js new file mode 100644 index 000000000..1c3fbdb05 --- /dev/null +++ b/packages/core/server/jest.config.js @@ -0,0 +1,3 @@ +const config = require('../../../jest/config'); + +module.exports = Object.assign({}, config, {}); diff --git a/packages/core/server/package.json b/packages/core/server/package.json new file mode 100644 index 000000000..3ae981e9a --- /dev/null +++ b/packages/core/server/package.json @@ -0,0 +1,54 @@ +{ + "name": "@verdaccio/fastify-migration", + "version": "6.0.0-6-next.9", + "description": "Fastify server migration package", + "keywords": [ + "private", + "package", + "repository", + "registry", + "enterprise", + "modules", + "proxy", + "server", + "verdaccio" + ], + "main": "./build/index.js", + "types": "./build/index.d.ts", + "author": "Juan Picado ", + "license": "MIT", + "homepage": "https://verdaccio.org", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "repository": { + "type": "https", + "url": "https://github.com/verdaccio/verdaccio", + "directory": "packages/core/streams" + }, + "bugs": { + "url": "https://github.com/verdaccio/verdaccio/issues" + }, + "publishConfig": { + "access": "public" + }, + "dependencies": { + "fastify": "3.14.2" + }, + "devDependencies": { + "@verdaccio/types": "workspace:11.0.0-6-next.4" + }, + "scripts": { + "clean": "rimraf ./build", + "type-check": "tsc --noEmit -p tsconfig.build.json", + "build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json", + "build:js": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps", + "watch": "pnpm build:js -- --watch", + "build": "pnpm run build:js && pnpm run build:types" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } +} diff --git a/packages/core/server/src/index.ts b/packages/core/server/src/index.ts new file mode 100644 index 000000000..7ddad5814 --- /dev/null +++ b/packages/core/server/src/index.ts @@ -0,0 +1 @@ +export { default } from './server'; diff --git a/packages/core/server/src/server.ts b/packages/core/server/src/server.ts new file mode 100644 index 000000000..fcba3263a --- /dev/null +++ b/packages/core/server/src/server.ts @@ -0,0 +1,13 @@ +import fastify from 'fastify'; + +async function startServer() { + const app = fastify(); + + app.get('/', async (request, reply) => { + return { hello: 'world' }; + }); + + return app; +} + +export default startServer; diff --git a/packages/core/server/tsconfig.build.json b/packages/core/server/tsconfig.build.json new file mode 100644 index 000000000..79f1f81e0 --- /dev/null +++ b/packages/core/server/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./build" + }, + "include": ["src/**/*"], + "exclude": ["src/**/*.test.ts"] +} diff --git a/packages/core/server/tsconfig.json b/packages/core/server/tsconfig.json new file mode 100644 index 000000000..35b3cee58 --- /dev/null +++ b/packages/core/server/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../../tsconfig.reference.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./build" + }, + "include": ["src/**/*"], + "exclude": ["src/**/*.test.ts"] +} diff --git a/packages/verdaccio/debug/bootstrap.js b/packages/verdaccio/debug/bootstrap.js index 14b86e839..3999d9b61 100644 --- a/packages/verdaccio/debug/bootstrap.js +++ b/packages/verdaccio/debug/bootstrap.js @@ -1,5 +1,4 @@ // this file aims to help local debugging with hot transpilation -// it requires BABEL_ENV=registry set as env variable require('@babel/register')({ extensions: ['.ts'], }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 67dee27f4..d10fb9d94 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -292,6 +292,7 @@ importers: specifiers: '@verdaccio/cli-ui': workspace:6.0.0-alpha.3 '@verdaccio/config': workspace:6.0.0-6-next.5 + '@verdaccio/fastify-migration': workspace:6.0.0-6-next.9 '@verdaccio/node-api': workspace:6.0.0-6-next.11 clipanion: 3.0.0-rc.11 commander: 6.2.0 @@ -301,6 +302,7 @@ importers: dependencies: '@verdaccio/cli-ui': link:../core/cli-ui '@verdaccio/config': link:../config + '@verdaccio/fastify-migration': link:../core/server '@verdaccio/node-api': link:../node-api clipanion: 3.0.0-rc.11 commander: 6.2.0 @@ -423,6 +425,15 @@ importers: devDependencies: '@verdaccio/types': link:../types + packages/core/server: + specifiers: + '@verdaccio/types': workspace:11.0.0-6-next.4 + fastify: 3.14.2 + dependencies: + fastify: 3.14.2 + devDependencies: + '@verdaccio/types': link:../types + packages/core/streams: specifiers: '@verdaccio/types': workspace:11.0.0-6-next.4 @@ -5261,6 +5272,18 @@ packages: - supports-color dev: true + /@fastify/forwarded/1.0.0: + resolution: {integrity: sha512-VoO+6WD0aRz8bwgJZ8pkkxjq7o/782cQ1j945HWg0obZMgIadYW3Pew0+an+k1QL7IPZHM3db5WF6OP6x4ymMA==} + engines: {node: '>= 10'} + dev: false + + /@fastify/proxy-addr/3.0.0: + resolution: {integrity: sha512-ty7wnUd/GeSqKTC2Jozsl5xGbnxUnEFC0On2/zPv/8ixywipQmVZwuWvNGnBoitJ2wixwVqofwXNua8j6Y62lQ==} + dependencies: + '@fastify/forwarded': 1.0.0 + ipaddr.js: 2.0.0 + dev: false + /@formatjs/cli/2.15.0: resolution: {integrity: sha512-Hv7Z3xeGcgTpn1jA1/x7tc9UYbF9Udn/77xRf7E22Vn1mGJM/DftVqnpgLeNpd0d3xSftYw+rhaShNO19BsT6A==} hasBin: true @@ -8419,6 +8442,10 @@ packages: resolution: {integrity: sha1-i33q/TEFWbwo93ck3RuzAXcnjBs=} dev: false + /abstract-logging/2.0.1: + resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} + dev: false + /accepts/1.3.7: resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} engines: {node: '>= 0.6'} @@ -8751,6 +8778,10 @@ packages: file-type: 4.4.0 dev: false + /archy/1.0.0: + resolution: {integrity: sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=} + dev: false + /are-we-there-yet/1.1.5: resolution: {integrity: sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==} dependencies: @@ -9045,6 +9076,17 @@ packages: diacritic: 0.0.2 dev: true + /avvio/7.2.1: + resolution: {integrity: sha512-b+gox68dqD6c3S3t+bZBKN6rYbVWdwpN12sHQLFTiacDT2rcq7fm07Ww+IKt/AvAkyCIe1f5ArP1bC/vAlx97A==} + dependencies: + archy: 1.0.0 + debug: 4.3.1 + fastq: 1.10.0 + queue-microtask: 1.2.3 + transitivePeerDependencies: + - supports-color + dev: false + /aws-sdk/2.778.0: resolution: {integrity: sha512-sIJRO7tMaztLs+gvHF/Wo+iek/rhH99+2OzharQJMS0HATPl5/EdhKgWGv1n/bNpVH+kD3n0QMQgdFu0FNUt0Q==} engines: {node: '>= 0.8.0'} @@ -13667,6 +13709,10 @@ packages: dev: false optional: true + /fast-decode-uri-component/1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + dev: false + /fast-deep-equal/1.1.0: resolution: {integrity: sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=} @@ -13699,6 +13745,16 @@ packages: /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + /fast-json-stringify/2.6.0: + resolution: {integrity: sha512-xTZtZRopWp2Aun7sGX2EB2mFw4bMQ+xnR8BmD5Rn4K0hKXGkbcZAzTtxEX0P4KNaNx1RAwvf+FESfuM0+F4WZg==} + engines: {node: '>= 10.0.0'} + dependencies: + ajv: 6.12.6 + deepmerge: 4.2.2 + rfdc: 1.3.0 + string-similarity: 4.0.4 + dev: false + /fast-levenshtein/2.0.6: resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} @@ -13722,6 +13778,38 @@ packages: resolution: {integrity: sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==} dev: true + /fastify-error/0.3.1: + resolution: {integrity: sha512-oCfpcsDndgnDVgiI7bwFKAun2dO+4h84vBlkWsWnz/OUK9Reff5UFoFl241xTiLeHWX/vU9zkDVXqYUxjOwHcQ==} + dev: false + + /fastify-warning/0.2.0: + resolution: {integrity: sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==} + dev: false + + /fastify/3.14.2: + resolution: {integrity: sha512-/PY//7gJnGxLQORaRHCEW148vpFKFpBIQNz1Yo/DxbHuk5EQqK2comzyE2ug8FSEldDX8nleapTshl0m78Px2w==} + engines: {node: '>=10.16.0'} + dependencies: + '@fastify/proxy-addr': 3.0.0 + abstract-logging: 2.0.1 + ajv: 6.12.6 + avvio: 7.2.1 + fast-json-stringify: 2.6.0 + fastify-error: 0.3.1 + fastify-warning: 0.2.0 + find-my-way: 4.1.0 + flatstr: 1.0.12 + light-my-request: 4.4.1 + pino: 6.11.2 + readable-stream: 3.6.0 + rfdc: 1.3.0 + secure-json-parse: 2.4.0 + semver: 7.3.4 + tiny-lru: 7.0.6 + transitivePeerDependencies: + - supports-color + dev: false + /fastparse/1.1.2: resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} dev: false @@ -13932,6 +14020,16 @@ packages: make-dir: 3.1.0 pkg-dir: 4.2.0 + /find-my-way/4.1.0: + resolution: {integrity: sha512-UBD94MdO6cBi6E97XA0fBA9nwqw+xG5x1TYIPHats33gEi/kNqy7BWHAWx8QHCQQRSU5Txc0JiD8nzba39gvMQ==} + engines: {node: '>=10'} + dependencies: + fast-decode-uri-component: 1.0.1 + fast-deep-equal: 3.1.3 + safe-regex2: 2.0.0 + semver-store: 0.3.0 + dev: false + /find-root/1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} @@ -16732,6 +16830,11 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + /ipaddr.js/2.0.0: + resolution: {integrity: sha512-S54H9mIj0rbxRIyrDMEuuER86LdlgUg9FSeZ8duQb6CUG2iRrA36MYVQBSprTF/ZeAwvyQ5mDGuNvIPM0BIl3w==} + engines: {node: '>= 10'} + dev: false + /is-absolute-url/2.1.0: resolution: {integrity: sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=} engines: {node: '>=0.10.0'} @@ -18384,6 +18487,16 @@ packages: type-check: 0.4.0 dev: true + /light-my-request/4.4.1: + resolution: {integrity: sha512-FDNRF2mYjthIRWE7O8d/X7AzDx4otQHl4/QXbu3Q/FRwBFcgb+ZoDaUd5HwN53uQXLAiw76osN+Va0NEaOW6rQ==} + dependencies: + ajv: 6.12.6 + cookie: 0.4.0 + fastify-warning: 0.2.0 + readable-stream: 3.6.0 + set-cookie-parser: 2.4.8 + dev: false + /lines-and-columns/1.1.6: resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} @@ -21143,7 +21256,6 @@ packages: /pino-std-serializers/3.2.0: resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==} - dev: true /pino/6.11.2: resolution: {integrity: sha512-bmzxwbrIPxQUlAuMkF4PWVErUGERU4z37HazlhflKFg08crsNE3fACGN6gPwg5xtKOK47Ux5cZm8YCuLV4wWJg==} @@ -21155,7 +21267,6 @@ packages: pino-std-serializers: 3.2.0 quick-format-unescaped: 4.0.1 sonic-boom: 1.4.1 - dev: true /pino/6.2.1: resolution: {integrity: sha512-5F5A+G25Ex2rMOBEe3XYGyLSF4dikQZsFvPojwsqnDBX+rfg7+kw9s5i7pHuVAJImekjwb+MR9jQyHWPLENlvQ==} @@ -22227,6 +22338,10 @@ packages: /querystringify/2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: false + /quick-format-unescaped/4.0.1: resolution: {integrity: sha512-RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==} @@ -23402,6 +23517,11 @@ packages: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} + /ret/0.2.2: + resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} + engines: {node: '>=4'} + dev: false + /retext-english/3.0.4: resolution: {integrity: sha512-yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==} dependencies: @@ -23437,6 +23557,10 @@ packages: css: 2.2.4 dev: true + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: false + /rgb-regex/1.0.1: resolution: {integrity: sha1-wODWiC3w4jviVKR16O3UGRX+rrE=} @@ -23535,6 +23659,12 @@ packages: dependencies: ret: 0.1.15 + /safe-regex2/2.0.0: + resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} + dependencies: + ret: 0.2.2 + dev: false + /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -23650,6 +23780,10 @@ packages: kind-of: 6.0.3 dev: false + /secure-json-parse/2.4.0: + resolution: {integrity: sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==} + dev: false + /seek-bzip/1.0.6: resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} hasBin: true @@ -23691,6 +23825,10 @@ packages: engines: {node: '>=6'} dev: false + /semver-store/0.3.0: + resolution: {integrity: sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==} + dev: false + /semver-truncate/1.1.2: resolution: {integrity: sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=} engines: {node: '>=0.10.0'} @@ -23728,7 +23866,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true /send/0.17.1: resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==} @@ -23784,6 +23921,10 @@ packages: /set-blocking/2.0.0: resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} + /set-cookie-parser/2.4.8: + resolution: {integrity: sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==} + dev: false + /set-value/2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -24153,7 +24294,6 @@ packages: dependencies: atomic-sleep: 1.0.0 flatstr: 1.0.12 - dev: true /sort-keys-length/1.0.1: resolution: {integrity: sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=} @@ -24547,6 +24687,10 @@ packages: lodash.maxby: 4.6.0 dev: false + /string-similarity/4.0.4: + resolution: {integrity: sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==} + dev: false + /string-width/1.0.2: resolution: {integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=} engines: {node: '>=0.10.0'} @@ -25421,6 +25565,11 @@ packages: resolution: {integrity: sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==} dev: true + /tiny-lru/7.0.6: + resolution: {integrity: sha512-zNYO0Kvgn5rXzWpL0y3RS09sMK67eGaQj9805jlK9G6pSadfriTczzLHFXa/xcW4mIRfmlB9HyQ/+SgL0V1uow==} + engines: {node: '>=6'} + dev: false + /tiny-warning/1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}