diff --git a/.eslintrc.js b/.eslintrc.js index 5663625..3ba4d5d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,6 +1,6 @@ module.exports = { parserOptions: { - parser: "babel-eslint", + parser: "@babel/eslint-parser", }, root: true, env: { @@ -14,8 +14,9 @@ module.exports = { ], rules: { "vue/component-name-in-template-casing": ["error", "PascalCase"], - "no-console": process.env.NODE_ENV === "production" ? "error" : "off", + "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", + "no-unused-vars": process.env.NODE_ENV === "production" ? "warn" : "error", }, globals: { $nuxt: true, diff --git a/package-lock.json b/package-lock.json index d824465..a5ad59e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,11 +10,11 @@ "license": "AGPL-3.0", "devDependencies": { "@babel/core": "^7.14.6", + "@babel/eslint-parser": "^7.14.7", "@babel/plugin-transform-runtime": "^7.14.5", "@babel/preset-env": "^7.14.7", "@babel/register": "^7.14.5", "@babel/runtime": "^7.14.6", - "babel-eslint": "^10.1.0", "babel-loader": "^8.2.2", "buffer": "^6.0.3", "clean-webpack-plugin": "^3.0.0", @@ -23,9 +23,9 @@ "css-minimizer-webpack-plugin": "^3.0.2", "eslint": "^7.30.0", "eslint-config-prettier": "^8.3.0", - "eslint-loader": "^4.0.2", "eslint-plugin-prettier": "^3.4.0", "eslint-plugin-vue": "^7.13.0", + "eslint-webpack-plugin": "^2.5.4", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", "file-loader": "^6.2.0", @@ -49,7 +49,7 @@ "vue": "^2.6.14", "vue-loader": "^15.9.7", "vue-template-compiler": "^2.6.14", - "webpack": "^5.43.0", + "webpack": "^5.44.0", "webpack-cli": "^4.7.2", "xterm": "^4.13.0", "xterm-addon-fit": "^0.5.0", @@ -107,6 +107,24 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/eslint-parser": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.14.7.tgz", + "integrity": "sha512-6WPwZqO5priAGIwV6msJcdc9TsEPzYeYdS/Xuoap+/ihkgN6dzHp2bcAAwyWZ5bLzk0vvjDmKvRwkqNaiJ8BiQ==", + "dev": true, + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": ">=7.5.0" + } + }, "node_modules/@babel/generator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", @@ -1648,9 +1666,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2202,9 +2220,9 @@ } }, "node_modules/@nodelib/fs.walk": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", - "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -2253,9 +2271,9 @@ } }, "node_modules/@types/estree": { - "version": "0.0.49", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.49.tgz", - "integrity": "sha512-K1AFuMe8a+pXmfHTtnwBvqoEylNKVeaiKYkjmcEAdytMQVJ/i9Fu7sc13GxgXdO49gkE7Hy8SyJonUZUn+eVaw==", + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true }, "node_modules/@types/favicons": { @@ -2296,9 +2314,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", - "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.0.tgz", + "integrity": "sha512-OydMCocGMGqw/1BnWbhtK+AtwyWTOigtrQlRe57OQmTNcI3HKlVI5FGlh+c4mSqInMPLynFrTlYjfajPu9O/eQ==", "dev": true }, "node_modules/@types/parse-json": { @@ -2664,9 +2682,9 @@ } }, "node_modules/acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -2846,12 +2864,12 @@ } }, "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/asn1": { @@ -2911,27 +2929,6 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, "node_modules/babel-loader": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", @@ -3827,9 +3824,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001242", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001242.tgz", - "integrity": "sha512-KvNuZ/duufelMB3w2xtf9gEWCSxJwUgoxOx5b6ScLXC4kPc9xsczUVCPrQU26j5kOsHM4pSUL54tAZt5THQKug==", + "version": "1.0.30001243", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001243.tgz", + "integrity": "sha512-vNxw9mkTBtkmLFnJRv/2rhs1yufpDfCkBZexG3Y0xdOH2Z/eE/85E4Dl5j1YUN34nZVsSp6vVRFQRrez9wJMRA==", "dev": true, "funding": { "type": "opencollective", @@ -5173,9 +5170,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.769", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.769.tgz", - "integrity": "sha512-B+3hW8D76/uoTPSobWI3D/CFn2S4jPn88dVJ+BkD88Lz6LijQpL+hfdzIFJGTQK4KdE0XwmNbjUQFH1OQVwKdQ==", + "version": "1.3.771", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.771.tgz", + "integrity": "sha512-zHMomTqkpnAD9W5rhXE1aiU3ogGFrqWzdvM4C6222SREiqsWQb2w0S7P2Ii44qCaGimmAP1z+OydllM438uJyA==", "dev": true }, "node_modules/emoji-regex": { @@ -5356,137 +5353,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz", - "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==", - "deprecated": "This loader has been deprecated. Please use eslint-webpack-plugin", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "loader-utils": "^2.0.0", - "object-hash": "^2.0.3", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/eslint-loader/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/eslint-loader/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/eslint-loader/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-loader/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-loader/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-loader/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-loader/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint-plugin-prettier": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz", @@ -5587,7 +5453,7 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", @@ -5596,6 +5462,93 @@ "node": ">=4" } }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz", + "integrity": "sha512-7rYh0m76KyKSDE+B+2PUQrlNS4HJ51t3WKpkJg6vo2jFMbEPTG99cBV0Dm7LXSHucN4WGCG65wQcRiTFrj7iWw==", + "dev": true, + "dependencies": { + "@types/eslint": "^7.2.6", + "arrify": "^2.0.1", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0", + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.0.tgz", + "integrity": "sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.7", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/eslint/node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -5666,15 +5619,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -5688,9 +5632,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -5782,6 +5726,15 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -6038,9 +5991,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", - "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -6367,9 +6320,9 @@ } }, "node_modules/flatted": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.0.tgz", - "integrity": "sha512-XprP7lDrVT+kE2c2YlfiV+IfS9zxukiIOvNamPNsImNhXadSsQEbosItdL9bUQlCZXR13SvPk20BjWSWLA7m4A==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", + "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", "dev": true }, "node_modules/fontfaceobserver": { @@ -6417,20 +6370,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8115,15 +8054,6 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsontoxml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz", @@ -9136,15 +9066,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -12350,6 +12271,15 @@ "node": ">=4" } }, + "node_modules/to-ico/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/to-ico/node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", @@ -12536,15 +12466,6 @@ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -12705,6 +12626,15 @@ "eslint": ">=5.0.0" } }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/vue-eslint-parser/node_modules/espree": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", @@ -12790,13 +12720,13 @@ } }, "node_modules/webpack": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.43.0.tgz", - "integrity": "sha512-ex3nB9uxNI0azzb0r3xGwi+LS5Gw1RCRSKk0kg3kq9MYdIPmLS6UI3oEtG7esBaB51t9I+5H+vHmL3htaxqMSw==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.44.0.tgz", + "integrity": "sha512-I1S1w4QLoKmH19pX6YhYN0NiSXaWY8Ou00oA+aMcr9IUGeF5azns+IKBkfoAAG9Bu5zOIzZt/mN35OffBya8AQ==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.49", + "@types/estree": "^0.0.50", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", @@ -13390,6 +13320,17 @@ "source-map": "^0.5.0" } }, + "@babel/eslint-parser": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.14.7.tgz", + "integrity": "sha512-6WPwZqO5priAGIwV6msJcdc9TsEPzYeYdS/Xuoap+/ihkgN6dzHp2bcAAwyWZ5bLzk0vvjDmKvRwkqNaiJ8BiQ==", + "dev": true, + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + } + }, "@babel/generator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", @@ -14460,9 +14401,9 @@ }, "dependencies": { "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -14880,9 +14821,9 @@ "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", - "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", @@ -14922,9 +14863,9 @@ } }, "@types/estree": { - "version": "0.0.49", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.49.tgz", - "integrity": "sha512-K1AFuMe8a+pXmfHTtnwBvqoEylNKVeaiKYkjmcEAdytMQVJ/i9Fu7sc13GxgXdO49gkE7Hy8SyJonUZUn+eVaw==", + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true }, "@types/favicons": { @@ -14965,9 +14906,9 @@ "dev": true }, "@types/node": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", - "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.0.tgz", + "integrity": "sha512-OydMCocGMGqw/1BnWbhtK+AtwyWTOigtrQlRe57OQmTNcI3HKlVI5FGlh+c4mSqInMPLynFrTlYjfajPu9O/eQ==", "dev": true }, "@types/parse-json": { @@ -15292,9 +15233,9 @@ "dev": true }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, @@ -15427,9 +15368,9 @@ "dev": true }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true }, "asn1": { @@ -15477,20 +15418,6 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, "babel-loader": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", @@ -16188,9 +16115,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001242", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001242.tgz", - "integrity": "sha512-KvNuZ/duufelMB3w2xtf9gEWCSxJwUgoxOx5b6ScLXC4kPc9xsczUVCPrQU26j5kOsHM4pSUL54tAZt5THQKug==", + "version": "1.0.30001243", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001243.tgz", + "integrity": "sha512-vNxw9mkTBtkmLFnJRv/2rhs1yufpDfCkBZexG3Y0xdOH2Z/eE/85E4Dl5j1YUN34nZVsSp6vVRFQRrez9wJMRA==", "dev": true }, "caseless": { @@ -17227,9 +17154,9 @@ } }, "electron-to-chromium": { - "version": "1.3.769", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.769.tgz", - "integrity": "sha512-B+3hW8D76/uoTPSobWI3D/CFn2S4jPn88dVJ+BkD88Lz6LijQpL+hfdzIFJGTQK4KdE0XwmNbjUQFH1OQVwKdQ==", + "version": "1.3.771", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.771.tgz", + "integrity": "sha512-zHMomTqkpnAD9W5rhXE1aiU3ogGFrqWzdvM4C6222SREiqsWQb2w0S7P2Ii44qCaGimmAP1z+OydllM438uJyA==", "dev": true }, "emoji-regex": { @@ -17414,12 +17341,6 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -17430,9 +17351,9 @@ } }, "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -17492,98 +17413,6 @@ "dev": true, "requires": {} }, - "eslint-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz", - "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "loader-utils": "^2.0.0", - "object-hash": "^2.0.3", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, "eslint-plugin-prettier": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz", @@ -17648,14 +17477,75 @@ "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, + "eslint-webpack-plugin": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz", + "integrity": "sha512-7rYh0m76KyKSDE+B+2PUQrlNS4HJ51t3WKpkJg6vo2jFMbEPTG99cBV0Dm7LXSHucN4WGCG65wQcRiTFrj7iWw==", + "dev": true, + "requires": { + "@types/eslint": "^7.2.6", + "arrify": "^2.0.1", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "schema-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.0.tgz", + "integrity": "sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", @@ -17665,6 +17555,14 @@ "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "esprima": { @@ -17864,9 +17762,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", - "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -18112,9 +18010,9 @@ } }, "flatted": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.0.tgz", - "integrity": "sha512-XprP7lDrVT+kE2c2YlfiV+IfS9zxukiIOvNamPNsImNhXadSsQEbosItdL9bUQlCZXR13SvPk20BjWSWLA7m4A==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", + "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", "dev": true }, "fontfaceobserver": { @@ -18156,17 +18054,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -19429,15 +19316,6 @@ "minimist": "^1.2.5" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, "jsontoxml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz", @@ -20233,12 +20111,6 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true - }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -22638,6 +22510,12 @@ "resize-img": "^1.1.0" }, "dependencies": { + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", @@ -22772,12 +22650,6 @@ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -22906,6 +22778,12 @@ "semver": "^6.3.0" }, "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, "espree": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", @@ -22975,13 +22853,13 @@ } }, "webpack": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.43.0.tgz", - "integrity": "sha512-ex3nB9uxNI0azzb0r3xGwi+LS5Gw1RCRSKk0kg3kq9MYdIPmLS6UI3oEtG7esBaB51t9I+5H+vHmL3htaxqMSw==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.44.0.tgz", + "integrity": "sha512-I1S1w4QLoKmH19pX6YhYN0NiSXaWY8Ou00oA+aMcr9IUGeF5azns+IKBkfoAAG9Bu5zOIzZt/mN35OffBya8AQ==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.49", + "@types/estree": "^0.0.50", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", diff --git a/package.json b/package.json index e29c7d2..0cfb309 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,11 @@ "main": "", "devDependencies": { "@babel/core": "^7.14.6", + "@babel/eslint-parser": "^7.14.7", "@babel/plugin-transform-runtime": "^7.14.5", "@babel/preset-env": "^7.14.7", "@babel/register": "^7.14.5", "@babel/runtime": "^7.14.6", - "babel-eslint": "^10.1.0", "babel-loader": "^8.2.2", "buffer": "^6.0.3", "clean-webpack-plugin": "^3.0.0", @@ -18,9 +18,9 @@ "css-minimizer-webpack-plugin": "^3.0.2", "eslint": "^7.30.0", "eslint-config-prettier": "^8.3.0", - "eslint-loader": "^4.0.2", "eslint-plugin-prettier": "^3.4.0", "eslint-plugin-vue": "^7.13.0", + "eslint-webpack-plugin": "^2.5.4", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", "file-loader": "^6.2.0", @@ -44,7 +44,7 @@ "vue": "^2.6.14", "vue-loader": "^15.9.7", "vue-template-compiler": "^2.6.14", - "webpack": "^5.43.0", + "webpack": "^5.44.0", "webpack-cli": "^4.7.2", "xterm": "^4.13.0", "xterm-addon-fit": "^0.5.0", diff --git a/ui/commands/address.js b/ui/commands/address.js index c0bcf68..72f8ac8 100644 --- a/ui/commands/address.js +++ b/ui/commands/address.js @@ -173,16 +173,18 @@ export class Address { throw new Exception("Host name cannot longer than " + MAX_ADDR_LEN); } - let dataBuf = new Uint8Array(this.addrData.length + 3); + { + let dataBuf = new Uint8Array(this.addrData.length + 3); - dataBuf[0] = (this.addrPort >> 8) & 0xff; - dataBuf[1] = this.addrPort & 0xff; - dataBuf[2] = HOSTNAME << 6; - dataBuf[2] |= this.addrData.length; + dataBuf[0] = (this.addrPort >> 8) & 0xff; + dataBuf[1] = this.addrPort & 0xff; + dataBuf[2] = HOSTNAME << 6; + dataBuf[2] |= this.addrData.length; - dataBuf.set(this.addrData, 3); + dataBuf.set(this.addrData, 3); - return dataBuf; + return dataBuf; + } default: throw new Exception("Unknown address type"); diff --git a/ui/commands/address_test.js b/ui/commands/address_test.js index 13116f8..77dc319 100644 --- a/ui/commands/address_test.js +++ b/ui/commands/address_test.js @@ -32,9 +32,9 @@ describe("Address", () => { let addr2 = await address.Address.read(r); - assert.equal(addr2.type(), addr.type()); - assert.deepEqual(addr2.address(), addr.address()); - assert.equal(addr2.port(), addr.port()); + assert.strictEqual(addr2.type(), addr.type()); + assert.deepStrictEqual(addr2.address(), addr.address()); + assert.strictEqual(addr2.port(), addr.port()); }); it("Address IPv4", async () => { @@ -53,9 +53,9 @@ describe("Address", () => { let addr2 = await address.Address.read(r); - assert.equal(addr2.type(), addr.type()); - assert.deepEqual(addr2.address(), addr.address()); - assert.equal(addr2.port(), addr.port()); + assert.strictEqual(addr2.type(), addr.type()); + assert.deepStrictEqual(addr2.address(), addr.address()); + assert.strictEqual(addr2.port(), addr.port()); }); it("Address IPv6", async () => { @@ -74,9 +74,9 @@ describe("Address", () => { let addr2 = await address.Address.read(r); - assert.equal(addr2.type(), addr.type()); - assert.deepEqual(addr2.address(), addr.address()); - assert.equal(addr2.port(), addr.port()); + assert.strictEqual(addr2.type(), addr.type()); + assert.deepStrictEqual(addr2.address(), addr.address()); + assert.strictEqual(addr2.port(), addr.port()); }); it("Address HostName", async () => { @@ -95,8 +95,8 @@ describe("Address", () => { let addr2 = await address.Address.read(r); - assert.equal(addr2.type(), addr.type()); - assert.deepEqual(addr2.address(), addr.address()); - assert.equal(addr2.port(), addr.port()); + assert.strictEqual(addr2.type(), addr.type()); + assert.deepStrictEqual(addr2.address(), addr.address()); + assert.strictEqual(addr2.port(), addr.port()); }); }); diff --git a/ui/commands/common_test.js b/ui/commands/common_test.js index 5c65d77..916f2f7 100644 --- a/ui/commands/common_test.js +++ b/ui/commands/common_test.js @@ -63,11 +63,11 @@ describe("Common", () => { ee = e; } - assert.notEqual(ee, null, "Test " + tests[i].sample); + assert.notStrictEqual(ee, null, "Test " + tests[i].sample); } else { let data = common.parseIPv4(tests[i].sample); - assert.deepEqual(data, tests[i].expected); + assert.deepStrictEqual(data, tests[i].expected); } } }); @@ -78,28 +78,14 @@ describe("Common", () => { sample: "2001:db8:1f70:0:999:de8:7648:6e8", expectingFailure: false, expected: new Uint16Array([ - 0x2001, - 0xdb8, - 0x1f70, - 0x0, - 0x999, - 0xde8, - 0x7648, - 0x6e8, + 0x2001, 0xdb8, 0x1f70, 0x0, 0x999, 0xde8, 0x7648, 0x6e8, ]), }, { sample: "2001:db8:85a3::8a2e:370:7334", expectingFailure: false, expected: new Uint16Array([ - 0x2001, - 0xdb8, - 0x85a3, - 0x0, - 0x0, - 0x8a2e, - 0x370, - 0x7334, + 0x2001, 0xdb8, 0x85a3, 0x0, 0x0, 0x8a2e, 0x370, 0x7334, ]), }, { @@ -116,42 +102,21 @@ describe("Common", () => { sample: "2001:db8:1f70::999:de8:7648:6e8", expectingFailure: false, expected: new Uint16Array([ - 0x2001, - 0xdb8, - 0x1f70, - 0x0, - 0x999, - 0xde8, - 0x7648, - 0x6e8, + 0x2001, 0xdb8, 0x1f70, 0x0, 0x999, 0xde8, 0x7648, 0x6e8, ]), }, { sample: "2001:0db8:ac10:fe01::", expectingFailure: false, expected: new Uint16Array([ - 0x2001, - 0x0db8, - 0xac10, - 0xfe01, - 0x0, - 0x0, - 0x0, - 0x0, + 0x2001, 0x0db8, 0xac10, 0xfe01, 0x0, 0x0, 0x0, 0x0, ]), }, { sample: "::7f00:1", expectingFailure: false, expected: new Uint16Array([ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7f00, - 0x0001, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7f00, 0x0001, ]), }, { @@ -191,11 +156,11 @@ describe("Common", () => { ee = e; } - assert.notEqual(ee, null, "Test " + tests[i].sample); + assert.notStrictEqual(ee, null, "Test " + tests[i].sample); } else { let data = common.parseIPv6(tests[i].sample); - assert.deepEqual(data, tests[i].expected); + assert.deepStrictEqual(data, tests[i].expected); } } }); @@ -236,14 +201,7 @@ describe("Common", () => { expectedType: "IPv6", expectedAddr: new Uint8Array( new Uint16Array([ - 0x2001, - 0xdb8, - 0x1f70, - 0x0, - 0x999, - 0xde8, - 0x7648, - 0x6e8, + 0x2001, 0xdb8, 0x1f70, 0x0, 0x999, 0xde8, 0x7648, 0x6e8, ]).buffer ), expectedPort: 22, @@ -253,14 +211,7 @@ describe("Common", () => { expectedType: "IPv6", expectedAddr: new Uint8Array( new Uint16Array([ - 0x2001, - 0xdb8, - 0x1f70, - 0x0, - 0x999, - 0xde8, - 0x7648, - 0x6e8, + 0x2001, 0xdb8, 0x1f70, 0x0, 0x999, 0xde8, 0x7648, 0x6e8, ]).buffer ), expectedPort: 100, @@ -270,9 +221,9 @@ describe("Common", () => { for (let i in tests) { let hostport = common.splitHostPort(tests[i].sample, 22); - assert.deepEqual(hostport.type, tests[i].expectedType); - assert.deepEqual(hostport.addr, tests[i].expectedAddr); - assert.equal(hostport.port, tests[i].expectedPort); + assert.deepStrictEqual(hostport.type, tests[i].expectedType); + assert.deepStrictEqual(hostport.addr, tests[i].expectedAddr); + assert.strictEqual(hostport.port, tests[i].expectedPort); } }); }); diff --git a/ui/commands/integer_test.js b/ui/commands/integer_test.js index 10bb7ce..865b490 100644 --- a/ui/commands/integer_test.js +++ b/ui/commands/integer_test.js @@ -28,7 +28,7 @@ describe("Integer", () => { return data; }); - assert.equal(marshalled.length, 1); + assert.strictEqual(marshalled.length, 1); r.feed(marshalled); @@ -36,7 +36,7 @@ describe("Integer", () => { await i2.unmarshal(r); - assert.equal(i.value(), i2.value()); + assert.strictEqual(i.value(), i2.value()); }); it("Integer MAX", async () => { @@ -47,7 +47,7 @@ describe("Integer", () => { return data; }); - assert.equal(marshalled.length, 2); + assert.strictEqual(marshalled.length, 2); r.feed(marshalled); @@ -55,6 +55,6 @@ describe("Integer", () => { await i2.unmarshal(r); - assert.equal(i.value(), i2.value()); + assert.strictEqual(i.value(), i2.value()); }); }); diff --git a/ui/commands/string_test.js b/ui/commands/string_test.js index c3dde54..769131d 100644 --- a/ui/commands/string_test.js +++ b/ui/commands/string_test.js @@ -32,7 +32,7 @@ describe("String", () => { let s2 = await strings.String.read(r); - assert.deepEqual(s2.data(), s.data()); + assert.deepStrictEqual(s2.data(), s.data()); }); it("String 2", async () => { @@ -260,6 +260,6 @@ describe("String", () => { let s2 = await strings.String.read(r); - assert.deepEqual(s2.data(), s.data()); + assert.deepStrictEqual(s2.data(), s.data()); }); }); diff --git a/ui/control/telnet.js b/ui/control/telnet.js index 3fb81b3..4ebd2b5 100644 --- a/ui/control/telnet.js +++ b/ui/control/telnet.js @@ -259,22 +259,24 @@ class Parser { return; } - let dim = this.callbacks.getWindowDim(), - dimData = new DataView(new ArrayBuffer(4)); + { + let dim = this.callbacks.getWindowDim(), + dimData = new DataView(new ArrayBuffer(4)); - dimData.setUint16(0, dim.cols); - dimData.setUint16(2, dim.rows); + dimData.setUint16(0, dim.cols); + dimData.setUint16(2, dim.rows); - let dimBytes = new Uint8Array(dimData.buffer); + let dimBytes = new Uint8Array(dimData.buffer); - if (this.options.nawsAccpeted) { - this.sendSubNego(dimBytes, optNAWS); + if (this.options.nawsAccpeted) { + this.sendSubNego(dimBytes, optNAWS); - return; + return; + } + + this.options.nawsAccpeted = true; + this.sendWillSubNego(cmdWill, dimBytes, optNAWS); } - - this.options.nawsAccpeted = true; - this.sendWillSubNego(cmdWill, dimBytes, optNAWS); return; case optTerminalType: diff --git a/ui/home_socketctl.js b/ui/home_socketctl.js index 2a30fcd..1797be1 100644 --- a/ui/home_socketctl.js +++ b/ui/home_socketctl.js @@ -101,7 +101,7 @@ export function build(ctx) { inbound: 0, inboundHistory: inboundHistory.get(), outbound: 0, - outboundHistory: outboundHistory.get() + outboundHistory: outboundHistory.get(), }, connecting() { isClosed = false; @@ -201,6 +201,6 @@ export function build(ctx) { this.classStyle = "red flash"; this.windowClass = "red"; this.status.description = connectionStatusDisconnected + ". Error: " + e; - } + }, }; } diff --git a/ui/stream/common_test.js b/ui/stream/common_test.js index 061d0f9..82f6c1b 100644 --- a/ui/stream/common_test.js +++ b/ui/stream/common_test.js @@ -22,116 +22,11 @@ describe("Common", () => { it("separateBuffer", async () => { let resultArr = []; const expected = new Uint8Array([ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ]), sepSeg = common.separateBuffer(expected, 16); @@ -141,6 +36,6 @@ describe("Common", () => { const result = new Uint8Array(resultArr); - assert.deepEqual(result, expected); + assert.deepStrictEqual(result, expected); }); }); diff --git a/ui/stream/header_test.js b/ui/stream/header_test.js index 07bcce4..f34ed31 100644 --- a/ui/stream/header_test.js +++ b/ui/stream/header_test.js @@ -26,10 +26,10 @@ describe("Header", () => { let n = new header.Header(h.value()); - assert.equal(h.type(), n.type()); - assert.equal(h.data(), n.data()); - assert.equal(n.type(), header.CONTROL); - assert.equal(n.data(), 63); + assert.strictEqual(h.type(), n.type()); + assert.strictEqual(h.data(), n.data()); + assert.strictEqual(n.type(), header.CONTROL); + assert.strictEqual(n.data(), 63); }); it("Stream", () => { @@ -37,11 +37,11 @@ describe("Header", () => { h.set(header.STREAM_MAX_MARKER, header.STREAM_MAX_LENGTH); - assert.equal(h.marker(), header.STREAM_MAX_MARKER); - assert.equal(h.length(), header.STREAM_MAX_LENGTH); + assert.strictEqual(h.marker(), header.STREAM_MAX_MARKER); + assert.strictEqual(h.length(), header.STREAM_MAX_LENGTH); - assert.equal(h.headerByte1, 0xff); - assert.equal(h.headerByte2, 0xff); + assert.strictEqual(h.headerByte1, 0xff); + assert.strictEqual(h.headerByte2, 0xff); }); it("InitialStream", () => { @@ -49,8 +49,8 @@ describe("Header", () => { h.set(15, 128, true); - assert.equal(h.command(), 15); - assert.equal(h.data(), 128); - assert.equal(h.success(), true); + assert.strictEqual(h.command(), 15); + assert.strictEqual(h.data(), 128); + assert.strictEqual(h.success(), true); }); }); diff --git a/ui/stream/reader_test.js b/ui/stream/reader_test.js index 2decfd4..15f10c9 100644 --- a/ui/stream/reader_test.js +++ b/ui/stream/reader_test.js @@ -27,15 +27,15 @@ describe("Reader", () => { let ex = buf.export(1); - assert.equal(ex.length, 1); - assert.equal(ex[0], 0); - assert.equal(buf.remains(), 7); + assert.strictEqual(ex.length, 1); + assert.strictEqual(ex[0], 0); + assert.strictEqual(buf.remains(), 7); ex = await reader.readCompletely(buf); - assert.equal(ex.length, 7); - assert.deepEqual(ex, new Uint8Array([1, 2, 3, 4, 5, 6, 7])); - assert.equal(buf.remains(), 0); + assert.strictEqual(ex.length, 7); + assert.deepStrictEqual(ex, new Uint8Array([1, 2, 3, 4, 5, 6, 7])); + assert.strictEqual(buf.remains(), 0); }); it("Reader", async () => { @@ -45,30 +45,7 @@ describe("Reader", () => { return data; }), expected = [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, ], feedIntv = setInterval(() => { r.feed(Uint8Array.from(expected.slice(0, 8))); @@ -88,7 +65,7 @@ describe("Reader", () => { result.push((await r.export(1))[0]); } - assert.deepEqual(result, expected); + assert.deepStrictEqual(result, expected); }); it("readOne", async () => { @@ -102,11 +79,11 @@ describe("Reader", () => { let rr = await reader.readOne(r); - assert.deepEqual(rr, Uint8Array.from([0])); + assert.deepStrictEqual(rr, Uint8Array.from([0])); rr = await reader.readOne(r); - assert.deepEqual(rr, Uint8Array.from([1])); + assert.deepStrictEqual(rr, Uint8Array.from([1])); }); it("readN", async () => { @@ -120,11 +97,11 @@ describe("Reader", () => { let rr = await reader.readN(r, 3); - assert.deepEqual(rr, Uint8Array.from([0, 1, 2])); + assert.deepStrictEqual(rr, Uint8Array.from([0, 1, 2])); rr = await reader.readN(r, 3); - assert.deepEqual(rr, Uint8Array.from([3, 4, 5])); + assert.deepStrictEqual(rr, Uint8Array.from([3, 4, 5])); }); it("Limited", async () => { @@ -153,8 +130,8 @@ describe("Reader", () => { result.push((await limited.export(1))[0]); } - assert.equal(limited.completed(), true); - assert.deepEqual(result, expected); + assert.strictEqual(limited.completed(), true); + assert.deepStrictEqual(result, expected); }); it("readCompletely", async () => { @@ -179,8 +156,8 @@ describe("Reader", () => { let result = await reader.readCompletely(limited); - assert.equal(limited.completed(), true); - assert.deepEqual(result, Uint8Array.from(expected)); + assert.strictEqual(limited.completed(), true); + assert.deepStrictEqual(result, Uint8Array.from(expected)); }); it("readUntil", async () => { @@ -207,14 +184,14 @@ describe("Reader", () => { let result = await reader.readUntil(limited, 7); - assert.equal(limited.completed(), false); - assert.deepEqual(result.data, expected1); - assert.deepEqual(result.found, true); + assert.strictEqual(limited.completed(), false); + assert.deepStrictEqual(result.data, expected1); + assert.deepStrictEqual(result.found, true); result = await reader.readUntil(limited, 7); - assert.equal(limited.completed(), true); - assert.deepEqual(result.data, expected2); - assert.deepEqual(result.found, false); + assert.strictEqual(limited.completed(), true); + assert.deepStrictEqual(result.data, expected2); + assert.deepStrictEqual(result.found, false); }); }); diff --git a/ui/stream/sender_test.js b/ui/stream/sender_test.js index b9f730b..224e099 100644 --- a/ui/stream/sender_test.js +++ b/ui/stream/sender_test.js @@ -66,7 +66,7 @@ describe("Sender", () => { await sendCompleted; - assert.deepEqual(new Uint8Array(result), expected); + assert.deepStrictEqual(new Uint8Array(result), expected); }); it("Send (Multiple calls)", async () => { @@ -116,6 +116,6 @@ describe("Sender", () => { await sendCompleted; - assert.deepEqual(new Uint8Array(result), expected); + assert.deepStrictEqual(new Uint8Array(result), expected); }); }); diff --git a/webpack.config.js b/webpack.config.js index 91044ce..13df3b4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -27,7 +27,8 @@ const webpack = require("webpack"), FaviconsWebpackPlugin = require("favicons-webpack-plugin"), CopyPlugin = require("copy-webpack-plugin"), TerserPlugin = require("terser-webpack-plugin"), - { CleanWebpackPlugin } = require("clean-webpack-plugin"); + { CleanWebpackPlugin } = require("clean-webpack-plugin"), + ESLintPlugin = require("eslint-webpack-plugin"); const inDevMode = process.env.NODE_ENV === "development"; @@ -281,6 +282,7 @@ module.exports = { handlebarsLoader: {}, }, }), + new ESLintPlugin({}), new CopyPlugin({ patterns: [ {