diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 7018b472..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,22 +0,0 @@ -/* eslint-env node */ -module.exports = { - root: true, - 'extends': [ - 'plugin:vue/vue3-essential', - 'eslint:recommended', - 'plugin:cypress/recommended' - ], - env: { - "browser": true, - "node": true, - }, - parserOptions: { - ecmaVersion: 'latest' - }, - rules: { - "cypress/no-unnecessary-waiting": 0, - "cypress/unsafe-to-chain-command": 0, - "no-unused-vars": 1, - "vue/no-mutating-props": 0 - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..6ba5c849 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,27 @@ +import js from "@eslint/js"; +import vue from "eslint-plugin-vue"; +import cypress from "eslint-plugin-cypress/flat"; + +import globals from "globals"; + +export default [ + js.configs.recommended, + ...vue.configs["flat/essential"], + cypress.configs.recommended, + { + files: ["**/*.vue", "**/*.js", "**/*.jsx", "**/*.cjs", "**/*.mjs"], + languageOptions: { + ecmaVersion: "latest", + globals: { + ...globals.browser, + ...globals.node, + }, + }, + rules: { + "cypress/no-unnecessary-waiting": 0, + "cypress/unsafe-to-chain-command": 0, + "no-unused-vars": 1, + "vue/no-mutating-props": 0, + }, + }, +]; diff --git a/package-lock.json b/package-lock.json index 814d3117..63bde6e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,9 +37,9 @@ "@vue/test-utils": "^2.4.5", "chai-things": "^0.2.0", "cypress": "^13.16.1", - "eslint": "^8.56.0", - "eslint-plugin-cypress": "^3.5.0", - "eslint-plugin-vue": "^9.28.0", + "eslint": "^9.17.0", + "eslint-plugin-cypress": "^4.1.0", + "eslint-plugin-vue": "^9.32.0", "happy-dom": "^15.11.7", "imports-loader": "^5.0.0", "jsdom": "^25.0.1", @@ -633,24 +633,50 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -658,34 +684,116 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "levn": "^0.4.1" }, "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -701,12 +809,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -1723,8 +1837,7 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@types/node": { "version": "22.5.4", @@ -1767,12 +1880,6 @@ "@types/node": "*" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "node_modules/@vitejs/plugin-vue": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", @@ -2201,9 +2308,9 @@ } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3483,18 +3590,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -3966,76 +4061,92 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-plugin-cypress": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-3.5.0.tgz", - "integrity": "sha512-JZQ6XnBTNI8h1B9M7wJSFzc48SYbh7VMMKaNTQOFa3BQlnmXPrVc4PKen8R+fpv6VleiPeej6VxloGb42zdRvw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-4.1.0.tgz", + "integrity": "sha512-JhqkMY02mw74USwK9OFhectx3YSj6Co1NgWBxlGdKvlqiAp9vdEuQqt33DKGQFvvGS/NWtduuhWXWNnU29xDSg==", "dev": true, "dependencies": { - "globals": "^13.20.0" + "globals": "^15.11.0" }, "peerDependencies": { - "eslint": ">=7" + "eslint": ">=9" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/globals": { + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint-plugin-vue": { - "version": "9.28.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.28.0.tgz", - "integrity": "sha512-ShrihdjIhOTxs+MfWun6oJWuk+g/LAhN+CiuOl/jjkG3l0F2AuK5NMTaWqyvBgkFtpYmyks6P4603mLmhNJW8g==", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz", + "integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", @@ -4082,6 +4193,57 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -4359,15 +4521,15 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/file-saver": { @@ -4449,23 +4611,22 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true }, "node_modules/focus-trap": { @@ -4821,12 +4982,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", @@ -9476,15 +9631,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -10123,43 +10269,6 @@ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rollup": { "version": "4.22.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", @@ -11407,12 +11516,6 @@ "dev": true, "peer": true }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", diff --git a/package.json b/package.json index a5e01ef9..f7bfa0d3 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "test:unit": "vitest --dom", "test:e2e": "cypress run", "test:long-running": "E2E_MODE=long-running vue-cli-service test:e2e", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore", + "lint": "eslint . --fix --ignore-pattern .gitignore --ignore-pattern dist", "docker": "docker run --rm -p8080:80 --name liwo-static -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf:ro -v $(pwd)/dist:/usr/share/nginx/html nginx", "release": "semantic-release" }, @@ -43,9 +43,9 @@ "@vue/test-utils": "^2.4.5", "chai-things": "^0.2.0", "cypress": "^13.16.1", - "eslint": "^8.56.0", - "eslint-plugin-cypress": "^3.5.0", - "eslint-plugin-vue": "^9.28.0", + "eslint": "^9.17.0", + "eslint-plugin-cypress": "^4.1.0", + "eslint-plugin-vue": "^9.32.0", "happy-dom": "^15.11.7", "imports-loader": "^5.0.0", "jsdom": "^25.0.1", diff --git a/src/components/CookieLaw.vue b/src/components/CookieLaw.vue index 3bb2fa8b..7d4c0440 100644 --- a/src/components/CookieLaw.vue +++ b/src/components/CookieLaw.vue @@ -164,7 +164,7 @@ window.localStorage.setItem(test, test) window.localStorage.removeItem(test) } - } catch (e) { + } catch { console.info('Local storage is not supported, falling back to cookie use') this.supportsLocalStorage = false } diff --git a/src/components/MapImageControl.vue b/src/components/MapImageControl.vue index 2354bec1..61a06e43 100644 --- a/src/components/MapImageControl.vue +++ b/src/components/MapImageControl.vue @@ -149,7 +149,7 @@ export default { .filter(({ enabled }) => enabled) .map(({ className }) => className) // exclude enabled controls from list of classes to hide - // eslint-disable-next-line no-unused-vars + const disabledControlClasses = allControls.filter(controlClass => !enabledControlClasses.includes(controlClass)) this.map.printPlugin.options.hideClasses = [...this.map.printPlugin.options.hideClasses, ...disabledControlClasses] diff --git a/src/lib/leaflet-utils/create-crs.js b/src/lib/leaflet-utils/create-crs.js index e9f45d50..d9a8bab4 100644 --- a/src/lib/leaflet-utils/create-crs.js +++ b/src/lib/leaflet-utils/create-crs.js @@ -3,11 +3,11 @@ import { EPSG_3857 } from './projections' const RD = new L.Proj.CRS( 'EPSG:28992', - '+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +towgs84=565.2369,50.0087,465.658,-0.406857330322398,0.350732676542563,-1.8703473836068,4.0812 +no_defs', { // eslint-disable-line no-undef - transformation: L.Transformation(-1, -1, 0, 0), // eslint-disable-line no-undef + '+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +towgs84=565.2369,50.0087,465.658,-0.406857330322398,0.350732676542563,-1.8703473836068,4.0812 +no_defs', { + transformation: L.Transformation(-1, -1, 0, 0), resolutions: [3440.640, 1720.320, 860.160, 430.080, 215.040, 107.520, 53.760, 26.880, 13.440, 6.720, 3.360, 1.680, 0.840, 0.420], origin: [-285401.920, 903401.920], - bounds: L.bounds([-285401.920, 903401.920], [595401.920, 22598.080]) // eslint-disable-line no-undef + bounds: L.bounds([-285401.920, 903401.920], [595401.920, 22598.080]) }) export default function createCrs (projection) { diff --git a/src/lib/leaflet-utils/markers.js b/src/lib/leaflet-utils/markers.js index 3fade59f..5571d090 100644 --- a/src/lib/leaflet-utils/markers.js +++ b/src/lib/leaflet-utils/markers.js @@ -45,7 +45,6 @@ import icon_240_60_60_retinaUrl from '../../img/markers/2x/240-60-60@2x.png' import icon_270_60_60_retinaUrl from '../../img/markers/2x/270-60-60@2x.png' import icon_300_60_60_retinaUrl from '../../img/markers/2x/300-60-60@2x.png' import icon_330_60_60_retinaUrl from '../../img/markers/2x/330-60-60@2x.png' -/* eslint camelcase: 2 */ export const defaultIcon = new L.Icon.Default() @@ -88,7 +87,6 @@ export const greyIcon = L.icon({ ...iconDefaults }) -/* eslint camelcase: 0 */ // same as grey icon export const icon_0_0_60 = L.icon({ iconUrl: icon_0_0_60_url, diff --git a/src/map.config.js b/src/map.config.js index a4fbb500..ca2dce05 100644 --- a/src/map.config.js +++ b/src/map.config.js @@ -1,4 +1,4 @@ -// eslint-disable-next-line + import { EPSG_28992, EPSG_3857 } from './lib/leaflet-utils/projections'; diff --git a/tests/e2e/.eslintrc.js b/tests/e2e/.eslintrc.js deleted file mode 100644 index 97258ef4..00000000 --- a/tests/e2e/.eslintrc.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - plugins: [ - 'cypress' - ], - env: { - mocha: true, - }, - rules: { - strict: 'off' - } -} diff --git a/tests/e2e/eslint.config.mjs b/tests/e2e/eslint.config.mjs new file mode 100644 index 00000000..869fc4a4 --- /dev/null +++ b/tests/e2e/eslint.config.mjs @@ -0,0 +1,17 @@ +import cypress from "eslint-plugin-cypress"; + +export default [ + { + plugins: { + cypress: cypress, + }, + languageOptions: { + globals: { + mocha: true, + }, + }, + rules: { + strict: "off", + }, + }, +]; diff --git a/tests/e2e/plugins/index.js b/tests/e2e/plugins/index.js index 56d01bc4..2899d395 100644 --- a/tests/e2e/plugins/index.js +++ b/tests/e2e/plugins/index.js @@ -1,4 +1,4 @@ -/* eslint-disable arrow-body-style */ + // https://docs.cypress.io/guides/guides/plugins-guide.html const getLayers = require("../lib/get-layers"); diff --git a/tests/e2e/specs/ui/scenarios/notifications.js b/tests/e2e/specs/ui/scenarios/notifications.js index 55598243..4cfb4a01 100644 --- a/tests/e2e/specs/ui/scenarios/notifications.js +++ b/tests/e2e/specs/ui/scenarios/notifications.js @@ -2,7 +2,7 @@ import { generateSelector as selector } from '../../../lib/generate-selector' import mockLayerSetData from '../../../mock/layerset.json' const mockDataScenarios = { - // eslint-disable-next-line quote-props, quotes + "d": "[{\"layerset\": [{\"breachlocation_id\": 1201, \"name\": \"Waterdiepte_flood_scenario_set\", \"id\": 34, \"notification\": null, \"layers\": [{\"name\": \"Waterdiepte\", \"id\": 62, \"notification\": null, \"visible\": true, \"extent\": {\"epsgcode\": \"4326,0\", \"minx\": 1.5710449, \"maxx\": 9.019775, \"miny\": 50.2753, \"maxy\": 53.61094}, \"legend\": {\"title\": \"Maximale waterdiepte [m]\", \"style\": \"liwo_waterdiepte_band1\", \"layer\": \"scenario_18309\"}, \"variants\": [{\"title\": \"Kans 1 op 10000\", \"subtitle\": \"Overstromingsscenarios - waterdiepte - Dijkring 44 - Kromme Rijn - IJmuiden - T10000\", \"notification\": \"Deze overstroming kan tot nieuwe dijkdoorbraken leiden bij Halfweg, Amsterdam Zuid, Amsterdam Noord of Zaandam (dijkring 13 en 14)\", \"metadata\": {\"title\": \"IJmuiden referentie TP\", \"abstract\": \"Scenarionaam = IJmuiden referentie TP
Scenario ID = 18309
Scenariodatum = 2015-11-02
Eigenaar = Provincie Noord-Holland
Type overstroming = B
Naam doorbraaklocatie = IJmuiden
X-coordinaat doorbraaklocatie = 98730.0000705
Y-coordinaat doorbraaklocatie = 497900.000468
Overschrijdingsfrequentie = 10000
Gebiedsnaam = Dijkring 44 - Kromme Rijn
Naam buitenwater = Noordzee
Buitenwater type = zee
Naam waterkering = Sluis IJmuiden
Totaal schade = 6300.0
Totaal aantal slachtoffers = 208.0
Aantal getroffenen = 101200.0
Modelleersoftware = 2.13
Modelversie = Sobek
Motivatie rekenmethode = Normering dijkring 44
Doel scenario = In kaart brengen van schade bij falen van regionale keringen door doorbraak bij IJmuiden
Berekeningsmethode = 2d model
Modelresolutie = 100
Standzekere regionale keringen = Ja
Bresdiepte = -999.0
Initiele bresbreedte = 50.0\", \"source\": \"Provincie Noord-Holland\", \"spatial_resolution\": \"100\", \"contact\": null, \"link\": null, \"last_updated\": null, \"update_interval\": null, \"version\": null, \"keywords\": \"2.13;2d model\", \"epsg\": null, \"bbox_wgs84\": null, \"usage_limitations\": null}, \"properties\": {\"layer\": \"scenario_18309\", \"Scenarionaam\": \"IJmuiden referentie TP\", \"Scenario ID\": \"18309\", \"Eigenaar\": \"Provincie Noord-Holland\", \"Type overstroming\": \"B\", \"Naam doorbraaklocatie\": \"IJmuiden\", \"X-coordinaat doorbraaklocatie\": 98730.0000705, \"Y-coordinaat doorbraaklocatie\": 497900.000468, \"Overschrijdingsfrequentie\": \"10000\", \"Stormvloedkering open\": \" \", \"Gebiedsnaam\": \"Dijkring 44 - Kromme Rijn\", \"Naam buitenwater\": \"Noordzee\", \"Buitenwater type\": \"zee\", \"Totaal schade\": \"6300.0\", \"Totaal aantal slachtoffers\": \"208.0\", \"Aantal getroffenen\": \"101200.0\", \"Modelleersoftware\": \"2.13\", \"Modelversie\": \"Sobek\", \"Motivatie rekenmethode\": \"Normering dijkring 44\", \"Doel scenario\": \"In kaart brengen van schade bij falen van regionale keringen door doorbraak bij IJmuiden\", \"Berekeningsmethode\": \"2d model\", \"Modelresolutie\": \"100\", \"Standzekere regionale keringen\": \"Ja\", \"Initiele bresbreedte\": \"50.0\", \"Methode bresgroei\": \" \", \"Maximale bresbreedte\": \" \", \"Bodemhoogte model\": \" \", \"Ruwheid model\": \" \", \"Toestand SVK\": null, \"Bresvorming dijk\": \"Ja\", \"Moment van falen\": null, \"waterstandsverloop\": null, \"Bresvorming kunstwerk\": null, \"Standzekerheid achterliggende lijnelementen\": null, \"Ingrepen in watersysteem\": null, \"klimaatscenario\": null, \"Dreigende overstroming\": 0}, \"map\": {\"namespace\": \"LIWO_Primair\", \"type\": \"WMS\", \"datatype\": \"geotiff\", \"layer\": \"scenario_18309\", \"map_id\": 12425, \"style\": \"liwo_waterdiepte_band1\"}}, {\"title\": \"Kans 1 op 100000\", \"subtitle\": \"Overstromingsscenarios - waterdiepte - Dijkring 44 - Kromme Rijn - IJmuiden - T100000\", \"notification\": \"Deze overstroming kan tot nieuwe dijkdoorbraken leiden bij Halfweg, Amsterdam Zuid, Amsterdam Noord of Zaandam (dijkring 13 en 14)\", \"metadata\": {\"title\": \"IJmuiden referentie TP+1D\", \"abstract\": \"Scenarionaam = IJmuiden referentie TP+1D
Scenario ID = 18310
Scenariodatum = 2015-11-02
Eigenaar = Provincie Noord-Holland
Type overstroming = B
Naam doorbraaklocatie = IJmuiden
X-coordinaat doorbraaklocatie = 98730.0000705
Y-coordinaat doorbraaklocatie = 497900.000468
Overschrijdingsfrequentie = 100000
Gebiedsnaam = Dijkring 44 - Kromme Rijn
Naam buitenwater = Noordzee
Buitenwater type = zee
Naam waterkering = Sluis IJmuiden
Totaal schade = 12000.0
Totaal aantal slachtoffers = 569.0
Aantal getroffenen = 267000.0
Modelleersoftware = 2.13
Modelversie = Sobek
Motivatie rekenmethode = Normering dijkring 44
Doel scenario = In kaart brengen van schade bij falen van regionale keringen door doorbraak bij IJmuiden
Berekeningsmethode = 2d model
Modelresolutie = 100
Standzekere regionale keringen = Ja
Bresdiepte = -999.0
Initiele bresbreedte = 50.0\", \"source\": \"Provincie Noord-Holland\", \"spatial_resolution\": \"100\", \"contact\": null, \"link\": null, \"last_updated\": null, \"update_interval\": null, \"version\": null, \"keywords\": \"2.13;2d model\", \"epsg\": null, \"bbox_wgs84\": null, \"usage_limitations\": null}, \"properties\": {\"layer\": \"scenario_18310\", \"Scenarionaam\": \"IJmuiden referentie TP+1D\", \"Scenario ID\": \"18310\", \"Eigenaar\": \"Provincie Noord-Holland\", \"Type overstroming\": \"B\", \"Naam doorbraaklocatie\": \"IJmuiden\", \"X-coordinaat doorbraaklocatie\": 98730.0000705, \"Y-coordinaat doorbraaklocatie\": 497900.000468, \"Overschrijdingsfrequentie\": \"100000\", \"Stormvloedkering open\": \" \", \"Gebiedsnaam\": \"Dijkring 44 - Kromme Rijn\", \"Naam buitenwater\": \"Noordzee\", \"Buitenwater type\": \"zee\", \"Totaal schade\": \"12000.0\", \"Totaal aantal slachtoffers\": \"569.0\", \"Aantal getroffenen\": \"267000.0\", \"Modelleersoftware\": \"2.13\", \"Modelversie\": \"Sobek\", \"Motivatie rekenmethode\": \"Normering dijkring 44\", \"Doel scenario\": \"In kaart brengen van schade bij falen van regionale keringen door doorbraak bij IJmuiden\", \"Berekeningsmethode\": \"2d model\", \"Modelresolutie\": \"100\", \"Standzekere regionale keringen\": \"Ja\", \"Initiele bresbreedte\": \"50.0\", \"Methode bresgroei\": \" \", \"Maximale bresbreedte\": \" \", \"Bodemhoogte model\": \" \", \"Ruwheid model\": \" \", \"Toestand SVK\": null, \"Bresvorming dijk\": \"Ja\", \"Moment van falen\": null, \"waterstandsverloop\": null, \"Bresvorming kunstwerk\": null, \"Standzekerheid achterliggende lijnelementen\": null, \"Ingrepen in watersysteem\": null, \"klimaatscenario\": null, \"Dreigende overstroming\": 0}, \"map\": {\"namespace\": \"LIWO_Primair\", \"type\": \"WMS\", \"datatype\": \"geotiff\", \"layer\": \"scenario_18310\", \"map_id\": 12432, \"style\": \"liwo_waterdiepte_band1\"}}, {\"title\": \"Kans 1 op 3000\", \"subtitle\": \"Overstromingsscenarios - waterdiepte - Dijkring 44 - Kromme Rijn - IJmuiden - T3000\", \"notification\": \"Deze overstroming kan tot nieuwe dijkdoorbraken leiden bij Halfweg, Amsterdam Zuid, Amsterdam Noord of Zaandam (dijkring 13 en 14)\", \"metadata\": {\"title\": \"Ijmuiden- zonder bres (overschrijding kombergend vermogen)\", \"abstract\": \"Scenarionaam = Ijmuiden- zonder bres (overschrijding kombergend vermogen)
Scenario ID = 21106
Scenariodatum = 2019-11-28
Eigenaar = RWS Waterdienst
Type overstroming = B
Naam doorbraaklocatie = IJmuiden
X-coordinaat doorbraaklocatie = 98730.0000705
Y-coordinaat doorbraaklocatie = 497900.000468
Overschrijdingsfrequentie = 3000
Gebiedsnaam = Dijkring 44 - Kromme Rijn
Naam buitenwater = Noordzee
Buitenwater type = zee
Totaal schade = 840000.0
Totaal aantal slachtoffers = 13.0
Aantal getroffenen = 7724.0
Modelleersoftware = SOBEK
Modelversie = 1
Motivatie rekenmethode = Normering dijkring 44
Doel scenario = Ijmuiden toegevoegd scenario ROR
Berekeningsmethode = 2d model
Modelresolutie = 100
Standzekere regionale keringen = Ja
Bresdiepte = -999.0
Initiele bresbreedte = -999.0\", \"source\": \"RWS Waterdienst\", \"spatial_resolution\": \"100\", \"contact\": null, \"link\": null, \"last_updated\": null, \"update_interval\": null, \"version\": null, \"keywords\": \"SOBEK;2d model\", \"epsg\": null, \"bbox_wgs84\": null, \"usage_limitations\": null}, \"properties\": {\"layer\": \"scenario_21106\", \"Scenarionaam\": \"Ijmuiden- zonder bres (overschrijding kombergend vermogen)\", \"Scenario ID\": \"21106\", \"Eigenaar\": \"RWS Waterdienst\", \"Type overstroming\": \"B\", \"Naam doorbraaklocatie\": \"IJmuiden\", \"X-coordinaat doorbraaklocatie\": 98730.0000705, \"Y-coordinaat doorbraaklocatie\": 497900.000468, \"Overschrijdingsfrequentie\": \"3000\", \"Stormvloedkering open\": \" \", \"Gebiedsnaam\": \"Dijkring 44 - Kromme Rijn\", \"Naam buitenwater\": \"Noordzee\", \"Buitenwater type\": \"zee\", \"Totaal schade\": \"840000.0\", \"Totaal aantal slachtoffers\": \"13.0\", \"Aantal getroffenen\": \"7724.0\", \"Modelleersoftware\": \"SOBEK\", \"Modelversie\": \"1\", \"Motivatie rekenmethode\": \"Normering dijkring 44\", \"Doel scenario\": \"Ijmuiden toegevoegd scenario ROR\", \"Berekeningsmethode\": \"2d model\", \"Modelresolutie\": \"100\", \"Standzekere regionale keringen\": \"Ja\", \"Initiele bresbreedte\": \"-999.0\", \"Methode bresgroei\": \" \", \"Maximale bresbreedte\": \" \", \"Bodemhoogte model\": \" \", \"Ruwheid model\": \" \", \"Toestand SVK\": null, \"Bresvorming dijk\": \"Nee\", \"Moment van falen\": null, \"waterstandsverloop\": null, \"Bresvorming kunstwerk\": null, \"Standzekerheid achterliggende lijnelementen\": null, \"Ingrepen in watersysteem\": null, \"klimaatscenario\": null, \"Dreigende overstroming\": 0}, \"map\": {\"namespace\": \"LIWO_Primair\", \"type\": \"WMS\", \"datatype\": \"geotiff\", \"layer\": \"scenario_21106\", \"map_id\": 12439, \"style\": \"liwo_waterdiepte_band1\"}}]}]}]}]" } const url = '/#/scenarios/6/13536' diff --git a/tests/unit/.eslintrc.js b/tests/unit/.eslintrc.js deleted file mode 100644 index 8038afe9..00000000 --- a/tests/unit/.eslintrc.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - env: { - mocha: true - }, - rules: { - 'import/no-extraneous-dependencies': 'off' - } -} diff --git a/tests/unit/eslint.config.mjs b/tests/unit/eslint.config.mjs new file mode 100644 index 00000000..54596202 --- /dev/null +++ b/tests/unit/eslint.config.mjs @@ -0,0 +1,12 @@ +export default [ + { + languageOptions: { + globals: { + mocha: true, + }, + }, + rules: { + "import/no-extraneous-dependencies": "off", + }, + }, +];