From 585c571e016ee36687a1600292ec9ac259260971 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 17:25:39 +0000 Subject: [PATCH 1/7] build(deps-dev): bump the development-dependencies group across 1 directory with 6 updates Bumps the development-dependencies group with 6 updates in the / directory: | Package | From | To | | --- | --- | --- | | [autoprefixer](https://github.com/postcss/autoprefixer) | `10.5.0` | `10.5.4` | | [eslint](https://github.com/eslint/eslint) | `10.5.0` | `10.7.0` | | [globals](https://github.com/sindresorhus/globals) | `17.6.0` | `17.7.0` | | [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.19` | | [prettier](https://github.com/prettier/prettier) | `3.8.4` | `3.9.5` | | [xo](https://github.com/xojs/xo) | `3.0.2` | `4.0.0` | Updates `autoprefixer` from 10.5.0 to 10.5.4 - [Release notes](https://github.com/postcss/autoprefixer/releases) - [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/autoprefixer/compare/10.5.0...10.5.4) Updates `eslint` from 10.5.0 to 10.7.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.7.0) Updates `globals` from 17.6.0 to 17.7.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0) Updates `postcss` from 8.5.15 to 8.5.19 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.15...8.5.19) Updates `prettier` from 3.8.4 to 3.9.5 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.8.4...3.9.5) Updates `xo` from 3.0.2 to 4.0.0 - [Release notes](https://github.com/xojs/xo/releases) - [Commits](https://github.com/xojs/xo/compare/v3.0.2...v4.0.0) --- updated-dependencies: - dependency-name: autoprefixer dependency-version: 10.5.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development-dependencies - dependency-name: eslint dependency-version: 10.7.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development-dependencies - dependency-name: globals dependency-version: 17.7.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development-dependencies - dependency-name: postcss dependency-version: 8.5.16 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development-dependencies - dependency-name: prettier dependency-version: 3.9.5 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development-dependencies - dependency-name: xo dependency-version: 4.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: development-dependencies ... Signed-off-by: dependabot[bot] --- package-lock.json | 688 ++++++++++++++++++++++++++++++---------------- package.json | 12 +- 2 files changed, 460 insertions(+), 240 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a8928ea7b..9fb8d6f9ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,14 +36,14 @@ "select2": "4.0.13" }, "devDependencies": { - "autoprefixer": "^10.5.0", - "eslint": "^10.5.0", + "autoprefixer": "^10.5.4", + "eslint": "^10.7.0", "eslint-plugin-compat": "^7.0.2", - "globals": "^17.6.0", - "postcss": "^8.5.15", + "globals": "^17.7.0", + "postcss": "^8.5.19", "postcss-cli": "^11.0.1", - "prettier": "^3.8.4", - "xo": "^3.0.2" + "prettier": "^3.9.5", + "xo": "^4.0.0" } }, "node_modules/@babel/code-frame": { @@ -106,9 +106,9 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.87.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.87.0.tgz", - "integrity": "sha512-mFXZloZMzuJZXSHUmAFu/pXTk0ZJTJBluuAkrvbzidpTN8W6F2bpRFuedSH+85kbdlRLJqc+gfN+kD3JOLJK5g==", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.88.0.tgz", + "integrity": "sha512-GK/HL/claLLNo5KG705auIlZMwEtmn88ofSGuLsmVZwKBqMPJhW9DiznYNq07QEqz9BPtA3LBfYImtZmhVvRAw==", "dev": true, "license": "MIT", "dependencies": { @@ -153,9 +153,9 @@ } }, "node_modules/@eslint-community/eslint-plugin-eslint-comments/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { @@ -267,15 +267,15 @@ } }, "node_modules/@eslint/css": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/css/-/css-1.3.0.tgz", - "integrity": "sha512-MwY657chvFQWtXmO86syZgD+JpWlzDq7VkKZyi65PwHDbhELQPMzPXh5s8rhrjptG6FCuls0puCmlXk66+14uA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@eslint/css/-/css-1.4.0.tgz", + "integrity": "sha512-OnRNKgnbX+tufPuZc2kOJS+v1iIARvfJHRNEAVwN77DBpojl+rGjEP8NKTL6pEZ7BR+HtwIuSSdrymEFlANGxg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/core": "^1.2.1", "@eslint/css-tree": "^4.0.4", - "@eslint/plugin-kit": "^0.7.1" + "@eslint/plugin-kit": "^0.7.2" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -296,14 +296,14 @@ } }, "node_modules/@eslint/json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@eslint/json/-/json-2.0.0.tgz", - "integrity": "sha512-P32ZJMIopNWQd1SFhd0tgjfA/hgzUuVSqHmMi2273QaLWHWimXq6V+qL4DNKnjGzO/aNECtYW+rEJ/pWB6uP+w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/json/-/json-2.0.1.tgz", + "integrity": "sha512-Thz2j92ceUF3Bq/0TuWb3MWn3Z+Cwc8k5ptF0fakl2D4Mp8mSx07Xr1aQM4R5NoihzarWUdxfOmQ8DesGy4jOg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.1", + "@eslint/plugin-kit": "^0.7.2", "@humanwhocodes/momoa": "^3.3.10", "natural-compare": "^1.4.0" }, @@ -312,9 +312,9 @@ } }, "node_modules/@eslint/markdown": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-8.0.2.tgz", - "integrity": "sha512-W+/0qHp0WbvFEljUvvECNpSWrUHpBWIWwp7F3QqEwQKmaRCmfEWvk6VfUia9pTQ0th6HyBGBsPfg/kG3/aQxLA==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-8.0.3.tgz", + "integrity": "sha512-rBTSSShrq7e4O+PWfeE4azH4/CWPNrC+VGxBXiW00o3vYVJnznsZiDayj3KC9JztIMVRZxZHn2nrDIUau/4j7A==", "dev": true, "license": "MIT", "workspaces": [ @@ -322,7 +322,7 @@ ], "dependencies": { "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.1", + "@eslint/plugin-kit": "^0.7.2", "github-slugger": "^2.0.0", "mdast-util-from-markdown": "^2.0.2", "mdast-util-frontmatter": "^2.0.1", @@ -371,13 +371,13 @@ } }, "node_modules/@html-eslint/core": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@html-eslint/core/-/core-0.62.0.tgz", - "integrity": "sha512-TEWjEE5PcenvXnk27cnQdasR71RDvhlqj6TIu3QHLdpfPo9K11Vx5jWYwM44PS7EaU5+5si2296z72xO1EpLkw==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@html-eslint/core/-/core-0.63.0.tgz", + "integrity": "sha512-fy9Mp8LCcOY4MrJiRoRWULURWYA4KWCKxG5Aa0VNbfR4Zs+CNbSCYjpgOmPr1RIvyHqvbVdeHpHL+iTKLiZnPw==", "dev": true, "license": "MIT", "dependencies": { - "@html-eslint/types": "^0.62.0", + "@html-eslint/types": "^0.63.0", "html-standard": "^0.0.13" }, "engines": { @@ -385,18 +385,18 @@ } }, "node_modules/@html-eslint/eslint-plugin": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.62.0.tgz", - "integrity": "sha512-vtn9fqkI00Q4le7ik7hXopf5VwVJWKQ9Vnle1Jmolvmkb9CKq83DMSWFLCqtlDRkZSi6JKyNIddj6r5Odd+n1w==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.63.0.tgz", + "integrity": "sha512-C0MLdS1BPeB23G7w4Y+4ojnOXTew8rwNXRK5TlShsNdo4b8GSYe9lt+tCyxPr2B0iz+kqvYEXnKP0HAUsvfUJQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint/plugin-kit": "^0.4.1", - "@html-eslint/core": "^0.62.0", - "@html-eslint/parser": "^0.62.0", - "@html-eslint/template-parser": "^0.62.0", - "@html-eslint/template-syntax-parser": "^0.62.0", - "@html-eslint/types": "^0.62.0", + "@html-eslint/core": "^0.63.0", + "@html-eslint/parser": "^0.63.0", + "@html-eslint/template-parser": "^0.63.0", + "@html-eslint/template-syntax-parser": "^0.63.0", + "@html-eslint/types": "^0.63.0", "@rviscomi/capo.js": "^2.1.0", "html-standard": "^0.0.13" }, @@ -435,43 +435,43 @@ } }, "node_modules/@html-eslint/parser": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.62.0.tgz", - "integrity": "sha512-kb3uR4AX0hex211zAiiNeCZQVVKm0KbSTjWUKaLGPB9DtoL4y0A4ZJXa9DF2GOIFWDt42xJUUvffB2/MEj3ReA==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.63.0.tgz", + "integrity": "sha512-zEPbNVJf0C50l4X1C7FV5ig+c+8veD54HGicMdVc9PgB+cjMGcxgInv8yPbBWSSgSSFZZcFwo/Z4XqcPLPK99Q==", "dev": true, "license": "MIT", "dependencies": { - "@html-eslint/template-syntax-parser": "^0.62.0", - "@html-eslint/types": "^0.62.0", + "@html-eslint/template-syntax-parser": "^0.63.0", + "@html-eslint/types": "^0.63.0", "css-tree": "^3.1.0", "es-html-parser": "0.3.1" } }, "node_modules/@html-eslint/template-parser": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.62.0.tgz", - "integrity": "sha512-sI3Fiy4nsXGsp7k61UA3P/QooqUALE8oz2KuFzXb8Jb3krxlVQWwFXE8Ipr62r53jZyMz8XVsvaMUiP0nwrJsw==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.63.0.tgz", + "integrity": "sha512-eut/idEvs99oJ4PG1Ipxc/uD/r8PZF6bjJGK02EqFpDRqAnbegEFSR5VKoWMhprbVAyLrtdVeTJKLBdQC8xMpQ==", "dev": true, "license": "MIT", "dependencies": { - "@html-eslint/types": "^0.62.0", + "@html-eslint/types": "^0.63.0", "es-html-parser": "0.3.1" } }, "node_modules/@html-eslint/template-syntax-parser": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.62.0.tgz", - "integrity": "sha512-XPYul7JI6ld/a3vKOHmIWvCuNpOBc5YIiei5hHJQcCwLeIUyq3yGNUYyJSVF4k4QXe5ksyPfy0MRtOgA1tZ7Wg==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.63.0.tgz", + "integrity": "sha512-MOdc7WmFcMiVbhwPDquXPfR1xTuqhyjy+jh9GEyV4lXYVwX6ATqReLIowZ7z8qNxZ8f9jwQuhktVhHhC6rtiQA==", "dev": true, "license": "MIT", "dependencies": { - "@html-eslint/types": "^0.62.0" + "@html-eslint/types": "^0.63.0" } }, "node_modules/@html-eslint/types": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.62.0.tgz", - "integrity": "sha512-lG/Pp0m7OTWmB3PBdAtZNwp35dwjhXVY0jwSqP/47sNPRzVmAOVgxWq2tBQYyH6wJYp3aFZiv1wivd9lUAQZvw==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.63.0.tgz", + "integrity": "sha512-1YclN0Cg2QbUsit0I+SOM2o/66PRcAgw5pkxDjySCOUCbi85DrVZAAbV15ro+YVomYMPqosn3E2IdVCkchgrtQ==", "dev": true, "license": "MIT", "dependencies": { @@ -556,14 +556,14 @@ "license": "CC0-1.0" }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", - "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", + "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@tybys/wasm-util": "^0.10.2" + "@tybys/wasm-util": "^0.10.3" }, "funding": { "type": "github", @@ -612,13 +612,6 @@ "node": ">= 8" } }, - "node_modules/@package-json/types": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@package-json/types/-/types-0.0.12.tgz", - "integrity": "sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==", - "dev": true, - "license": "MIT" - }, "node_modules/@pkgr/core": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", @@ -738,9 +731,9 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -751,9 +744,9 @@ } }, "node_modules/@tybys/wasm-util": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", - "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", "dev": true, "license": "MIT", "optional": true, @@ -810,9 +803,9 @@ "license": "MIT" }, "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", + "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", "dev": true, "license": "MIT", "dependencies": { @@ -858,17 +851,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz", - "integrity": "sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.64.0.tgz", + "integrity": "sha512-CGvQPBxN3wZLu6Rz2kFUpZeoCm78xUic92ck39KPePkO1NPOwjCqdQnm5Q87tpWw9vcBvW8XLrDXjH9PWYtJ3Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.61.1", - "@typescript-eslint/type-utils": "8.61.1", - "@typescript-eslint/utils": "8.61.1", - "@typescript-eslint/visitor-keys": "8.61.1", + "@typescript-eslint/scope-manager": "8.64.0", + "@typescript-eslint/type-utils": "8.64.0", + "@typescript-eslint/utils": "8.64.0", + "@typescript-eslint/visitor-keys": "8.64.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -881,15 +874,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.61.1", + "@typescript-eslint/parser": "^8.64.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { @@ -897,16 +890,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.1.tgz", - "integrity": "sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.64.0.tgz", + "integrity": "sha512-KA0OshtlcCCXmbfqyZkM5pV3/WNraJf7DkJRLpyrmwPtud57H5BDX7C3k0LPSPxpprfRL+cJDGabF10mvNCoCw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.61.1", - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/typescript-estree": "8.61.1", - "@typescript-eslint/visitor-keys": "8.61.1", + "@typescript-eslint/scope-manager": "8.64.0", + "@typescript-eslint/types": "8.64.0", + "@typescript-eslint/typescript-estree": "8.64.0", + "@typescript-eslint/visitor-keys": "8.64.0", "debug": "^4.4.3" }, "engines": { @@ -922,14 +915,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.1.tgz", - "integrity": "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.64.0.tgz", + "integrity": "sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.61.1", - "@typescript-eslint/types": "^8.61.1", + "@typescript-eslint/tsconfig-utils": "^8.64.0", + "@typescript-eslint/types": "^8.64.0", "debug": "^4.4.3" }, "engines": { @@ -944,14 +937,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz", - "integrity": "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.64.0.tgz", + "integrity": "sha512-CXEaFdYXjSTgKhisNkwCcJwTP8Pl+fmRrEQrri4nm3vU743bALrxzLmq7fHG/7e6a5xO0lDYeURpZmBuhHk54w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/visitor-keys": "8.61.1" + "@typescript-eslint/types": "8.64.0", + "@typescript-eslint/visitor-keys": "8.64.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -962,9 +955,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz", - "integrity": "sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.64.0.tgz", + "integrity": "sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw==", "dev": true, "license": "MIT", "engines": { @@ -979,15 +972,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz", - "integrity": "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.64.0.tgz", + "integrity": "sha512-XWG4Fmmv/6SvyS9nH8jWrKs6terwJvE8cyRt1CzYYqzp9OrPhCT4cMc/f7C6RZCwG+qMmiffJS1/qJP8G1URtg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/typescript-estree": "8.61.1", - "@typescript-eslint/utils": "8.61.1", + "@typescript-eslint/types": "8.64.0", + "@typescript-eslint/typescript-estree": "8.64.0", + "@typescript-eslint/utils": "8.64.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -1004,9 +997,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.1.tgz", - "integrity": "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.64.0.tgz", + "integrity": "sha512-qjhfuTfLXjA4IOzXvz0rTjT01BqEiIgPoUeMwiEjnaHKJMTNo8rH5pYW1a2L/0Dnux2fPC85AeyJoWaGa8WxTA==", "dev": true, "license": "MIT", "engines": { @@ -1018,16 +1011,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz", - "integrity": "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.64.0.tgz", + "integrity": "sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.61.1", - "@typescript-eslint/tsconfig-utils": "8.61.1", - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/visitor-keys": "8.61.1", + "@typescript-eslint/project-service": "8.64.0", + "@typescript-eslint/tsconfig-utils": "8.64.0", + "@typescript-eslint/types": "8.64.0", + "@typescript-eslint/visitor-keys": "8.64.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -1046,16 +1039,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.1.tgz", - "integrity": "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.64.0.tgz", + "integrity": "sha512-aJUGVB3+U0htrrCjoA8qukw8cm8fNCGAxK/tVoS70k8aeb7DETKeFozRiVFIwEeN9WJLsjaP3ph8I60tY2XZoQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.61.1", - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/typescript-estree": "8.61.1" + "@typescript-eslint/scope-manager": "8.64.0", + "@typescript-eslint/types": "8.64.0", + "@typescript-eslint/typescript-estree": "8.64.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1070,13 +1063,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz", - "integrity": "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.64.0.tgz", + "integrity": "sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/types": "8.64.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -1193,6 +1186,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1207,6 +1203,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1221,6 +1220,9 @@ "loong64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1235,6 +1237,9 @@ "loong64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1249,6 +1254,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1263,6 +1271,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1277,6 +1288,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1291,6 +1305,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1305,6 +1322,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1319,6 +1339,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1675,9 +1698,9 @@ "license": "CC0-1.0" }, "node_modules/autoprefixer": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", - "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "version": "10.5.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.4.tgz", + "integrity": "sha512-MaU0U/za7N3r6brxD4YB/l4NSrFzLPlANv6wEuQVaIPlD3L4W9rFcQPbL/EilY9BHhHvhfcz3gInDLrEtWT4EA==", "dev": true, "funding": [ { @@ -1695,8 +1718,8 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.28.2", - "caniuse-lite": "^1.0.30001787", + "browserslist": "^4.28.6", + "caniuse-lite": "^1.0.30001806", "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" @@ -1757,9 +1780,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.10.19", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz", - "integrity": "sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==", + "version": "2.10.43", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.43.tgz", + "integrity": "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -2056,9 +2079,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", - "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "version": "4.28.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.6.tgz", + "integrity": "sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw==", "dev": true, "funding": [ { @@ -2076,10 +2099,10 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.12", - "caniuse-lite": "^1.0.30001782", - "electron-to-chromium": "^1.5.328", - "node-releases": "^2.0.36", + "baseline-browser-mapping": "^2.10.42", + "caniuse-lite": "^1.0.30001803", + "electron-to-chromium": "^1.5.389", + "node-releases": "^2.0.51", "update-browserslist-db": "^1.2.3" }, "bin": { @@ -2118,9 +2141,9 @@ "license": "MIT" }, "node_modules/builtin-modules": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.2.0.tgz", - "integrity": "sha512-02yxLeyxF4dNl6SlY6/5HfRSrSdZ/sCPoxy2kZNP5dZZX8LSAD9aE2gtJIUgWrsQTiMPl3mxESyrobSwvRGisQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.3.0.tgz", + "integrity": "sha512-hMQUl2bUFG339QygPM97E+mc8OY1IAchORZxm4a/frcYwKzozMzRVDBwHW0NjOqGElLm2O37AVQE8ikxlZHrMQ==", "dev": true, "license": "MIT", "engines": { @@ -2216,9 +2239,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001788", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", - "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", "dev": true, "funding": [ { @@ -2576,6 +2599,19 @@ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "license": "MIT" }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/convert-source-map": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", @@ -3098,9 +3134,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.340", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.340.tgz", - "integrity": "sha512-908qahOGocRMinT2nM3ajCEM99H4iPdv84eagPP3FfZy/1ZGeOy2CZYzjhms81ckOPCXPlW7LkY4XpxD8r1DrA==", + "version": "1.5.392", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.392.tgz", + "integrity": "sha512-1yQq3VQCZRwsnYc67Oc+1fge6Lwtn0hzi6zmEVkB61Zx21kTbwJAW4dFLadl5Rc1tKhG/kSpYXnfiAhu0f0a1g==", "dev": true, "license": "ISC" }, @@ -3126,9 +3162,9 @@ "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.0.tgz", - "integrity": "sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==", + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.2.tgz", + "integrity": "sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw==", "dev": true, "license": "MIT", "dependencies": { @@ -3246,9 +3282,9 @@ } }, "node_modules/eslint": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz", - "integrity": "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.7.0.tgz", + "integrity": "sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==", "dev": true, "license": "MIT", "workspaces": [ @@ -3337,31 +3373,32 @@ } }, "node_modules/eslint-config-xo": { - "version": "0.53.2", - "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.53.2.tgz", - "integrity": "sha512-Txgh9x7fIvpqgks68/Z5iZtcg32vK9IvZb1ARtc50f3bNRHXTx0T0LNwgUg7QxTUeIDcPNQJoJghpEsQBk4xsA==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.57.0.tgz", + "integrity": "sha512-uVE7RWO+kd77OMLoB4BofzlsmB978oVpeEgQgmzfQUpb+nJ1OmI3I2z5cQgt/bi0WAwSnoMMY46moGajG39KPg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2", "@eslint/compat": "^2.1.0", - "@eslint/css": "^1.3.0", - "@eslint/json": "^2.0.0", - "@eslint/markdown": "^8.0.2", - "@html-eslint/eslint-plugin": "^0.62.0", + "@eslint/css": "^1.4.0", + "@eslint/json": "^2.0.1", + "@eslint/markdown": "^8.0.3", + "@html-eslint/eslint-plugin": "^0.63.0", "@stylistic/eslint-plugin": "^5.10.0", "confusing-browser-globals": "1.0.11", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.5", + "eslint-node-test": "^0.2.0", "eslint-plugin-ava": "^17.0.1", - "eslint-plugin-import-x": "^4.16.2", - "eslint-plugin-jsdoc": "^63.0.4", - "eslint-plugin-n": "^18.1.0", + "eslint-plugin-import-x": "^4.17.1", + "eslint-plugin-jsdoc": "^63.0.12", + "eslint-plugin-n": "^18.2.1", "eslint-plugin-prettier": "^5.5.6", - "eslint-plugin-regexp": "^3.1.0", - "eslint-plugin-unicorn": "^67.0.0", - "globals": "^17.6.0", - "typescript-eslint": "^8.61.1" + "eslint-plugin-regexp": "^3.1.1", + "eslint-plugin-unicorn": "^71.0.0", + "globals": "^17.7.0", + "typescript-eslint": "^8.62.1" }, "engines": { "node": ">=22" @@ -3466,6 +3503,26 @@ } } }, + "node_modules/eslint-node-test": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eslint-node-test/-/eslint-node-test-0.2.0.tgz", + "integrity": "sha512-JnP6034mkFxGL9mWVrhADT3EOTpDmHwYILS40OeSGthpTkG3SUIyd6EcRhPAupWUjw6MbgfpR74/n3K4ssG8Uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "quote-js-string": "^0.1.0" + }, + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-node-test?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=10.4" + } + }, "node_modules/eslint-plugin-ava": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-17.0.1.tgz", @@ -3545,13 +3602,12 @@ } }, "node_modules/eslint-plugin-import-x": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.16.2.tgz", - "integrity": "sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.17.1.tgz", + "integrity": "sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg==", "dev": true, "license": "MIT", "dependencies": { - "@package-json/types": "^0.0.12", "@typescript-eslint/types": "^8.56.0", "comment-parser": "^1.4.1", "debug": "^4.4.1", @@ -3583,13 +3639,13 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "63.0.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.6.tgz", - "integrity": "sha512-qXMUdwQf+igjSLe/DZqyY1baVR0+snEJ3l/+2odJjeoAG43PrcpA0tSaLw2dC1iHvfKzo1YnZLGvgxrvAViyfQ==", + "version": "63.0.13", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.13.tgz", + "integrity": "sha512-ahG1kWA8jYNwaQJtzJlnF+v4Gb9w5r+WL98gp+L8qjLN9ErpL5sevGuemN+fCYsU3Np27F36KmDc8UPi1ml/dg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.87.0", + "@es-joy/jsdoccomment": "~0.88.0", "@es-joy/resolve.exports": "1.2.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.7", @@ -3600,7 +3656,7 @@ "html-entities": "^2.6.0", "object-deep-merge": "^2.0.1", "parse-imports-exports": "^0.2.4", - "semver": "^7.8.2", + "semver": "^7.8.5", "spdx-expression-parse": "^4.0.0", "to-valid-identifier": "^1.0.0" }, @@ -3612,9 +3668,9 @@ } }, "node_modules/eslint-plugin-n": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-18.1.0.tgz", - "integrity": "sha512-hkUm9EtnFV2h2fE16jNVUfCVUqvPzI7fGLsFdun5lFt/pbmf2kCgDx6ymi9rx+NCUSggBmurJCZOfG20JBs/kg==", + "version": "18.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-18.2.2.tgz", + "integrity": "sha512-gOO0lIqwEjZ750kv9/SptCWArUoAZXJoBr0vYWTO2dCBxctHUXlBIigiC8xuxxr/NKqgIT6Ehz1xRcilj8a5cA==", "dev": true, "license": "MIT", "dependencies": { @@ -3692,9 +3748,9 @@ } }, "node_modules/eslint-plugin-regexp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-3.1.0.tgz", - "integrity": "sha512-qGXIC3DIKZHcK1H9A9+Byz9gmndY6TTSRkSMTZpNXdyCw2ObSehRgccJv35n9AdUakEjQp5VFNLas6BMXizCZg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-3.1.1.tgz", + "integrity": "sha512-MxR5nqoQCtVWmJwia0D2+NlXX1xzdpkslsVOZLEYQ4PQWEaL65PCZXURxaBc3lPnkNFpNxzMIRmYVxdl8giXRA==", "dev": true, "license": "MIT", "dependencies": { @@ -3714,27 +3770,28 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "67.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-67.0.0.tgz", - "integrity": "sha512-XEYhNfAFFFYQLq++53iqpgIPFqvjasf5lsUJuCdmd/QvbRfcLbmPTjcTyVEXc5yBudWIg08SSEGgqJtEojk1ug==", + "version": "71.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-71.1.0.tgz", + "integrity": "sha512-dn3YmR3qLLUeYyo/os3ubZ7UHQJ1WbBAgC9cIhnLTyMj9J6kivuc2U1fCmYetLexUlTDVYtBqhjSj/VaebTe6Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", "@eslint-community/eslint-utils": "^4.9.1", - "browserslist": "^4.28.2", + "browserslist": "^4.28.4", "change-case": "^5.4.4", "ci-info": "^4.4.0", "core-js-compat": "^3.49.0", "detect-indent": "^7.0.2", "find-up-simple": "^1.0.1", - "globals": "^17.6.0", + "globals": "^17.7.0", "indent-string": "^5.0.0", "is-builtin-module": "^5.0.0", - "jsesc": "^3.1.0", + "is-identifier": "^1.1.0", "pluralize": "^8.0.0", - "regjsparser": "^0.13.1", - "semver": "^7.8.4", + "quote-js-string": "^0.1.0", + "regjsparser": "^0.13.2", + "reserved-identifiers": "^1.2.0", + "semver": "^7.8.5", "strip-indent": "^4.1.1" }, "engines": { @@ -4234,6 +4291,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function-timeout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", + "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/generator-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", @@ -4422,9 +4492,9 @@ } }, "node_modules/globals": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", - "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==", + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.7.0.tgz", + "integrity": "sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==", "dev": true, "license": "MIT", "engines": { @@ -4435,9 +4505,9 @@ } }, "node_modules/globby": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz", - "integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.2.tgz", + "integrity": "sha512-NLvV9ubZ6NDsJaOpKPy3cQeJpKi9DcWiyCiFUpJPA0YihRqiE6RWaLUmgNNPr8MgPpLZjnBjSmou7uZBRJv9wA==", "dev": true, "license": "MIT", "dependencies": { @@ -4456,9 +4526,9 @@ } }, "node_modules/globby/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { @@ -4657,6 +4727,22 @@ "integrity": "sha512-Rj3SybdcMcayhsP4IJ+hmCNgCKclaFcs/5zwCuLXH1WMo468NegjhZVxbSNKhEjJjnwc4gKETogUmPYSQ9lEZQ==", "license": "MIT" }, + "node_modules/identifier-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/identifier-regex/-/identifier-regex-1.1.0.tgz", + "integrity": "sha512-SLX4H/vtcYlYnL7XqnuJKHU7Z8517TgsW9nmQiGOgMCjQ8V/deLYu6bEmbGoXe7WMMhc9+EUGyFFneHja8KabA==", + "dev": true, + "license": "MIT", + "dependencies": { + "reserved-identifiers": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -4981,6 +5067,23 @@ "node": ">=0.10.0" } }, + "node_modules/is-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-identifier/-/is-identifier-1.1.0.tgz", + "integrity": "sha512-NhOds0mDx9lJu+1lBRO0xbwFo5nobA7GCk/0e5xjr6+6XugX985+0OyGX35BNrTkPAsdLcIKg02HUQJOK8D8kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "identifier-regex": "^1.1.0", + "super-regex": "^1.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-in-ssh": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", @@ -5440,6 +5543,37 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/make-asynchronous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-asynchronous/-/make-asynchronous-1.1.0.tgz", + "integrity": "sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-event": "^6.0.0", + "type-fest": "^4.6.0", + "web-worker": "^1.5.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-asynchronous/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/markdown-table": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", @@ -6590,11 +6724,14 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.37", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", - "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/normalize-path": { "version": "3.0.0", @@ -6776,6 +6913,22 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "license": "MIT" }, + "node_modules/p-event": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -6808,6 +6961,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pace": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/pace/-/pace-0.0.4.tgz", @@ -7045,9 +7211,9 @@ } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", + "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", "dev": true, "funding": [ { @@ -7200,9 +7366,9 @@ } }, "node_modules/prettier": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.4.tgz", - "integrity": "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.5.tgz", + "integrity": "sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==", "dev": true, "license": "MIT", "bin": { @@ -7345,6 +7511,19 @@ ], "license": "MIT" }, + "node_modules/quote-js-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/quote-js-string/-/quote-js-string-0.1.0.tgz", + "integrity": "sha512-Y3NoRtprEEZQD8RfxMCfS0ZTqc4e+i18OrXEXAvpM6TfC/3y+0L5rNbZiSnbBBEkDfFzbpd8o+cE8q3/anjMGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/quote-js-string?sponsor=1" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -8102,6 +8281,24 @@ "minimist": "^1.1.0" } }, + "node_modules/super-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.1.0.tgz", + "integrity": "sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-timeout": "^1.0.1", + "make-asynchronous": "^1.0.1", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", @@ -8219,6 +8416,22 @@ "xtend": "~4.0.1" } }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/timers-browserify": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", @@ -8369,9 +8582,9 @@ } }, "node_modules/type-fest": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.7.0.tgz", - "integrity": "sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.8.0.tgz", + "integrity": "sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA==", "dev": true, "license": "(MIT OR CC0-1.0)", "dependencies": { @@ -8419,16 +8632,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.1.tgz", - "integrity": "sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==", + "version": "8.64.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.64.0.tgz", + "integrity": "sha512-0qg+pDNMnqYzqH9AnNK+39tejHvsShUOUUoRUgtnTGE7QuMZhiFDnozq8nHJVq+Wae6NMLKNWLg5WmkcC/ndyQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.61.1", - "@typescript-eslint/parser": "8.61.1", - "@typescript-eslint/typescript-estree": "8.61.1", - "@typescript-eslint/utils": "8.61.1" + "@typescript-eslint/eslint-plugin": "8.64.0", + "@typescript-eslint/parser": "8.64.0", + "@typescript-eslint/typescript-estree": "8.64.0", + "@typescript-eslint/utils": "8.64.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8731,6 +8944,13 @@ "dev": true, "license": "MIT" }, + "node_modules/web-worker": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8865,9 +9085,9 @@ } }, "node_modules/xo": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/xo/-/xo-3.0.2.tgz", - "integrity": "sha512-J+fE46NFf0Wtpg8ewKvg4kGLvhXAL3+WuGD1aNSTMGNYF8luF4McvRWZDo9HDRmVTNCEVnPYJn1y/iXMV4PN0w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xo/-/xo-4.0.0.tgz", + "integrity": "sha512-230aBWg2e2oAB1R60mh/naJ50k0YfLdkb4LZEn4D1WzaQwDxjj6btnoFPX/Go4E7EPhkKpsgZf4KllcL0XlPUg==", "dev": true, "license": "MIT", "dependencies": { @@ -8875,20 +9095,20 @@ "arrify": "^3.0.0", "cosmiconfig": "^9.0.2", "define-lazy-prop": "^3.0.0", - "eslint": "^10.5.0", - "eslint-config-xo": "^0.53.1", + "eslint": "^10.6.0", + "eslint-config-xo": "^0.57.0", "eslint-formatter-pretty": "^7.1.0", "find-cache-directory": "^6.0.0", "get-stdin": "^10.0.0", "get-tsconfig": "^4.14.0", - "globby": "^16.2.0", + "globby": "^16.2.1", "jiti": "^2.7.0", "meow": "^14.1.0", "micromatch": "^4.0.8", "open-editor": "^6.0.0", "path-exists": "^5.0.0", - "prettier": "^3.8.4", - "type-fest": "^5.7.0", + "prettier": "^3.9.4", + "type-fest": "^5.8.0", "typescript": "^6.0.3" }, "bin": { diff --git a/package.json b/package.json index 583e31af9c..37b7283ca5 100644 --- a/package.json +++ b/package.json @@ -52,14 +52,14 @@ "select2": "4.0.13" }, "devDependencies": { - "autoprefixer": "^10.5.0", - "eslint": "^10.5.0", + "autoprefixer": "^10.5.4", + "eslint": "^10.7.0", "eslint-plugin-compat": "^7.0.2", - "globals": "^17.6.0", - "postcss": "^8.5.15", + "globals": "^17.7.0", + "postcss": "^8.5.19", "postcss-cli": "^11.0.1", - "prettier": "^3.8.4", - "xo": "^3.0.2" + "prettier": "^3.9.5", + "xo": "^4.0.0" }, "browserslist": [ ">= 0.5%", From 548504bd02c16b6bd0d57ef4ce3aaae83aa62550 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 16 Jul 2026 20:24:36 +0200 Subject: [PATCH 2/7] Fix prettier complaints Signed-off-by: yubiuser --- scripts/js/footer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/js/footer.js b/scripts/js/footer.js index 24533bf438..b60367d22f 100644 --- a/scripts/js/footer.js +++ b/scripts/js/footer.js @@ -426,7 +426,7 @@ function versionCompare(v1, v2) { } // loop until both string are processed - for (let i = 0, j = 0; i < v1.length || j < v2.length; ) { + for (let i = 0, j = 0; i < v1.length || j < v2.length;) { // storing numeric part of version 1 in vnum1 while (i < v1.length && v1[i] !== ".") { vnum1 = vnum1 * 10 + (v1[i] - "0"); From fa97a7de391562097f8610beb3dcfcb20a0a88d2 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Fri, 17 Jul 2026 20:12:54 +0200 Subject: [PATCH 3/7] Fix xo errors Signed-off-by: yubiuser --- scripts/js/footer.js | 124 ++++++++++++++++++----------------- scripts/js/gravity.js | 4 +- scripts/js/groups-domains.js | 6 +- scripts/js/groups-lists.js | 2 +- scripts/js/interfaces.js | 4 +- scripts/js/queries.js | 15 +++-- scripts/js/taillog.js | 1 + 7 files changed, 79 insertions(+), 77 deletions(-) diff --git a/scripts/js/footer.js b/scripts/js/footer.js index b60367d22f..2b9c2d13f7 100644 --- a/scripts/js/footer.js +++ b/scripts/js/footer.js @@ -513,78 +513,80 @@ function updateVersionInfo() { } for (const v of versions) { - if (v.local !== null) { - // reset update status for each component - let updateComponentAvailable = false; - let localVersion = v.local; - if (v.branch !== null && v.hash !== null) { - if (v.branch === "master") { - localVersion = v.local.split("-", 1)[0]; - localVersion = - '' + - localVersion + - ""; - if (v.remote === null) { - // No remote version available, we cannot determine if an update is available - versionWarning = true; - } else if (versionCompare(v.local, v.remote) === -1) { - // Update available - updateComponentAvailable = true; - } - } else { - // non-master branch - localVersion = "vDev (" + v.branch + ", " + v.hash + ")"; - if (v.hash_remote && v.hash !== v.hash_remote) { - // hash differ > Update available - updateComponentAvailable = true; - // link to the commit history instead of release page - v.url = v.url.replace("releases", () => "commits/" + v.branch); - } - } - } + if (v.local === null) { + continue; + } - if (v.name === "Docker Tag") { + // reset update status for each component + let updateComponentAvailable = false; + let localVersion = v.local; + if (v.branch !== null && v.hash !== null) { + if (v.branch === "master") { + localVersion = v.local.split("-", 1)[0]; + localVersion = + '' + + localVersion + + ""; if (v.remote === null) { // No remote version available, we cannot determine if an update is available versionWarning = true; } else if (versionCompare(v.local, v.remote) === -1) { - // Display update information for the docker tag + // Update available + updateComponentAvailable = true; + } + } else { + // non-master branch + localVersion = "vDev (" + v.branch + ", " + v.hash + ")"; + if (v.hash_remote && v.hash !== v.hash_remote) { + // hash differ > Update available updateComponentAvailable = true; - dockerUpdate = true; - } else if (/^\d{4}\.\d{2}\.\d+/u.test(v.local)) { - // Display the link if the current tag is a normal date-based tag - localVersion = - '' + - localVersion + - ""; + // link to the commit history instead of release page + v.url = v.url.replace("releases", () => "commits/" + v.branch); } } + } - // Display update information of individual components only if we are not running in a Docker container - if ((!isDocker || v.name === "Docker Tag") && updateComponentAvailable) { - $("#versions").append( - "
  • " + - v.name + - " " + - localVersion + - ' · Update available!
  • ' - ); - // if at least one component can be updated, display the update-hint footer - updateAvailable = true; - } else { - $("#versions").append("
  • " + v.name + " " + localVersion + "
  • "); + if (v.name === "Docker Tag") { + if (v.remote === null) { + // No remote version available, we cannot determine if an update is available + versionWarning = true; + } else if (versionCompare(v.local, v.remote) === -1) { + // Display update information for the docker tag + updateComponentAvailable = true; + dockerUpdate = true; + } else if (/^\d{4}\.\d{2}\.\d+/u.test(v.local)) { + // Display the link if the current tag is a normal date-based tag + localVersion = + '' + + localVersion + + ""; } } + + // Display update information of individual components only if we are not running in a Docker container + if ((!isDocker || v.name === "Docker Tag") && updateComponentAvailable) { + $("#versions").append( + "
  • " + + v.name + + " " + + localVersion + + ' · Update available!
  • ' + ); + // if at least one component can be updated, display the update-hint footer + updateAvailable = true; + } else { + $("#versions").append("
  • " + v.name + " " + localVersion + "
  • "); + } } // Display message asking to run updatechecker, to populate versions file diff --git a/scripts/js/gravity.js b/scripts/js/gravity.js index bcf03800fc..1d3eb20ef7 100644 --- a/scripts/js/gravity.js +++ b/scripts/js/gravity.js @@ -17,9 +17,7 @@ function eventsource() { const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute("content"); const url = `${document.body.dataset.apiurl}/action/gravity?color=true`; - if (outputElement.innerHTML.length > 0) { - outputElement.innerHTML = ""; - } + outputElement.replaceChildren(); if (!outputElement.classList.contains("d-none")) { outputElement.classList.add("d-none"); diff --git a/scripts/js/groups-domains.js b/scripts/js/groups-domains.js index 2ccc30bdce..c7ce9d1c40 100644 --- a/scripts/js/groups-domains.js +++ b/scripts/js/groups-domains.js @@ -428,11 +428,7 @@ $.fn.dataTable.ext.search.push((settings, searchData, index, rowData) => { .get(); const typeStr = rowData.type + "/" + rowData.kind; - if (types.includes(typeStr)) { - return true; - } - - return false; + return Boolean(types.includes(typeStr)); }); $(".filter_types input:checkbox").on("change", () => { table.draw(); diff --git a/scripts/js/groups-lists.js b/scripts/js/groups-lists.js index 6d5e5b8ad7..f86b47c7a5 100644 --- a/scripts/js/groups-lists.js +++ b/scripts/js/groups-lists.js @@ -145,7 +145,7 @@ function setStatusText(data, showdetails = false) { } } - return statusText + (showdetails === true ? statusDetails : ""); + return statusText + (showdetails ? statusDetails : ""); } // Define the type icon element diff --git a/scripts/js/interfaces.js b/scripts/js/interfaces.js index a1b69013bb..1ce4c3267f 100644 --- a/scripts/js/interfaces.js +++ b/scripts/js/interfaces.js @@ -482,9 +482,11 @@ function sortInterfaces(interfaces, masterInterfaces) { // masterInterfaces, it should be placed after the master interface const ifaces = Object.keys(interfaces); const interfaceList = Object.keys(masterInterfaces); + // Create a copy of the master interface list to iterate over so that we can modify the original list while iterating + const masterList = [...interfaceList]; // Add slave interfaces next to master interfaces - for (const master of interfaceList) { + for (const master of masterList) { if (Array.isArray(masterInterfaces[master])) { for (const slave of masterInterfaces[master]) { ifaces.splice(ifaces.indexOf(slave), 1); diff --git a/scripts/js/queries.js b/scripts/js/queries.js index a0ad608f71..c988cb0f41 100644 --- a/scripts/js/queries.js +++ b/scripts/js/queries.js @@ -521,13 +521,15 @@ function filterOn(param, dict) { function getAPIURL(queryFilters) { let apiurl = document.body.dataset.apiurl + "/queries?"; for (const [key, filter] of Object.entries(queryFilters)) { - if (filterOn(key, queryFilters)) { - if (!apiurl.endsWith("?")) { - apiurl += "&"; - } + if (!filterOn(key, queryFilters)) { + continue; + } - apiurl += `${key}=${encodeURIComponent(filter)}`; + if (!apiurl.endsWith("?")) { + apiurl += "&"; } + + apiurl += `${key}=${encodeURIComponent(filter)}`; } // Omit from/until filtering if we cannot reach these times. This will speed @@ -656,7 +658,8 @@ $(() => { const state = utils.stateLoadCallback("query_log_table"); // Default to 25 entries if "All" was previously selected if (state) { - state.length = state.length === -1 ? 25 : state.length; + const pageLength = state.length; + state.length = pageLength === -1 ? 25 : pageLength; } return state; diff --git a/scripts/js/taillog.js b/scripts/js/taillog.js index 15930a5d3a..0f51056eba 100644 --- a/scripts/js/taillog.js +++ b/scripts/js/taillog.js @@ -236,6 +236,7 @@ function getData() { gAutoScrolling = true; document.getElementById("output").addEventListener( + //eslint-disable-next-line unicorn/prefer-observer-apis "scroll", event => { const output = event.currentTarget; From c1fdf69b6898c72c068e1baaa9befd0aa5c36e53 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Fri, 17 Jul 2026 20:14:22 +0200 Subject: [PATCH 4/7] Disable unicorn/consistent-boolean-name Signed-off-by: yubiuser --- xo.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/xo.config.js b/xo.config.js index cec536481c..e4090a4908 100644 --- a/xo.config.js +++ b/xo.config.js @@ -64,6 +64,7 @@ module.exports = defineConfig([ // prevents all JS from executing. None of our regexes use v-exclusive // features, so u is fully equivalent and broadly compatible. "require-unicode-regexp": ["error", { requireFlag: "u" }], + "unicorn/consistent-boolean-name": "off", "unicorn/max-nested-calls": "off", "unicorn/no-anonymous-default-export": "off", "unicorn/no-document-cookie": "off", From a16a6d67e2544657695e22f8413b0b6bb36facf7 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Fri, 17 Jul 2026 20:43:12 +0200 Subject: [PATCH 5/7] Fix unicorn/name-replacements errors Signed-off-by: yubiuser --- scripts/js/charts.js | 80 ++++++++--------- scripts/js/footer.js | 62 ++++++------- scripts/js/gravity.js | 10 +-- scripts/js/groups-clients.js | 66 +++++++------- scripts/js/groups-common.js | 10 +-- scripts/js/groups-domains.js | 136 +++++++++++++++-------------- scripts/js/groups-lists.js | 78 ++++++++--------- scripts/js/groups.js | 30 +++---- scripts/js/index.js | 60 ++++++------- scripts/js/interfaces.js | 72 ++++++++------- scripts/js/ip-address-sorting.js | 16 ++-- scripts/js/messages.js | 6 +- scripts/js/queries.js | 28 +++--- scripts/js/search.js | 28 +++--- scripts/js/settings-advanced.js | 34 ++++---- scripts/js/settings-api.js | 4 +- scripts/js/settings-dhcp.js | 84 +++++++++--------- scripts/js/settings-dns-records.js | 47 +++++----- scripts/js/settings-dns.js | 33 ++++--- scripts/js/settings-system.js | 40 ++++----- scripts/js/settings.js | 30 +++---- scripts/js/taillog.js | 16 ++-- scripts/js/utils.js | 126 +++++++++++++------------- xo.config.js | 20 ++++- 24 files changed, 572 insertions(+), 544 deletions(-) diff --git a/scripts/js/charts.js b/scripts/js/charts.js index 1fa127cc8c..2763de40ef 100644 --- a/scripts/js/charts.js +++ b/scripts/js/charts.js @@ -30,7 +30,7 @@ globalThis.THEME_COLORS = [ globalThis.htmlLegendPlugin = { id: "htmlLegend", - afterUpdate(chart, args, options) { + afterUpdate(chart, arguments_, options) { // Use the built-in legendItems generator const items = chart.options.plugins.legend.labels.generateLabels(chart); @@ -39,9 +39,9 @@ globalThis.htmlLegendPlugin = { options.lastLegendItems && items.length === options.lastLegendItems.length && items.every( - (item, i) => - item.text === options.lastLegendItems[i].text && - item.hidden === options.lastLegendItems[i].hidden + (item, index) => + item.text === options.lastLegendItems[index].text && + item.hidden === options.lastLegendItems[index].hidden ); if (isLegendUnchanged) { @@ -144,40 +144,40 @@ globalThis.htmlLegendPlugin = { globalThis.customTooltips = context => { const tooltip = context.tooltip; const canvasId = context.chart.canvas.id; - const tooltipEl = getOrCreateTooltipElement(canvasId, tooltip.options, context); + const tooltipElement = getOrCreateTooltipElement(canvasId, tooltip.options, context); // Hide if no tooltip if (tooltip.opacity === 0) { - tooltipEl.style.opacity = 0; + tooltipElement.style.opacity = 0; return; } // Set caret position - setTooltipCaretPosition(tooltipEl, tooltip); + setTooltipCaretPosition(tooltipElement, tooltip); // Set tooltip content if (tooltip.body) { - setTooltipContent(tooltipEl, tooltip); + setTooltipContent(tooltipElement, tooltip); } // Position tooltip - positionTooltip(tooltipEl, tooltip, context); + positionTooltip(tooltipElement, tooltip, context); // Make tooltip visible - tooltipEl.style.opacity = 1; + tooltipElement.style.opacity = 1; }; function getOrCreateTooltipElement(canvasId, options, context) { - let tooltipEl = document.getElementById(`${canvasId}-customTooltip`); - if (tooltipEl) { - return tooltipEl; + let tooltipElement = document.getElementById(`${canvasId}-customTooltip`); + if (tooltipElement) { + return tooltipElement; } // Create Tooltip Element once per chart - tooltipEl = document.createElement("div"); - tooltipEl.id = `${canvasId}-customTooltip`; - tooltipEl.className = "chartjs-tooltip"; - tooltipEl.innerHTML = '
    '; + tooltipElement = document.createElement("div"); + tooltipElement.id = `${canvasId}-customTooltip`; + tooltipElement.className = "chartjs-tooltip"; + tooltipElement.innerHTML = '
    '; // Avoid browser's font-zoom since we know that 's // font-size was set to 14px by Bootstrap's CSS @@ -187,7 +187,7 @@ function getOrCreateTooltipElement(canvasId, options, context) { const fontZoom = Number.parseFloat(getComputedStyle(document.body).fontSize) / 14; // Set styles and font - tooltipEl.style.cssText = ` + tooltipElement.style.cssText = ` padding: ${options.padding}px ${options.padding}px; border-radius: ${options.cornerRadius}px; font: ${options.bodyFont.string}; @@ -197,18 +197,18 @@ function getOrCreateTooltipElement(canvasId, options, context) { `; // Append Tooltip next to canvas-containing box - tooltipEl.ancestor = context.chart.canvas.closest(".box[id]").parentNode; - tooltipEl.ancestor.append(tooltipEl); + tooltipElement.ancestor = context.chart.canvas.closest(".box[id]").parentNode; + tooltipElement.ancestor.append(tooltipElement); - return tooltipEl; + return tooltipElement; } -function setTooltipCaretPosition(tooltipEl, tooltip) { - tooltipEl.classList.remove("left", "right", "center", "top", "bottom"); - tooltipEl.classList.add(tooltip.xAlign, tooltip.yAlign); +function setTooltipCaretPosition(tooltipElement, tooltip) { + tooltipElement.classList.remove("left", "right", "center", "top", "bottom"); + tooltipElement.classList.add(tooltip.xAlign, tooltip.yAlign); } -function setTooltipContent(tooltipEl, tooltip) { +function setTooltipContent(tooltipElement, tooltip) { const bodyLines = tooltip.body.map(bodyItem => bodyItem.lines); if (bodyLines.length === 0) { return; @@ -226,18 +226,18 @@ function setTooltipContent(tooltipEl, tooltip) { const devicePixel = (1 / window.devicePixelRatio).toFixed(1); let printed = 0; - for (const [i, body] of bodyLines.entries()) { - const labelColors = tooltip.labelColors[i]; + for (const [index, body] of bodyLines.entries()) { + const labelColors = tooltip.labelColors[index]; const style = `background-color: ${labelColors.backgroundColor}; ` + `outline: 1px solid ${labelColors.backgroundColor}; ` + `border: ${devicePixel}px solid #fff`; const span = ``; - const num = body[0].split(": "); + const number_ = body[0].split(": "); // Do not display entries with value of 0 in bar chart, // but pass through entries with "0.0%" (in pie charts) - if (num[1] !== "0") { + if (number_[1] !== "0") { tooltipHtml += `${span}${body}`; printed++; } @@ -249,21 +249,21 @@ function setTooltipContent(tooltipEl, tooltip) { tooltipHtml += ""; - const tableRoot = tooltipEl.querySelector("table"); + const tableRoot = tooltipElement.querySelector("table"); tableRoot.innerHTML = tooltipHtml; } -function positionTooltip(tooltipEl, tooltip, context) { - if (tooltip.opacity === 0 || tooltipEl.style.opacity === 0) { +function positionTooltip(tooltipElement, tooltip, context) { + if (tooltip.opacity === 0 || tooltipElement.style.opacity === 0) { return; } const canvasPos = context.chart.canvas.getBoundingClientRect(); - const boxPos = tooltipEl.ancestor.getBoundingClientRect(); + const boxPos = tooltipElement.ancestor.getBoundingClientRect(); const offsetX = canvasPos.left - boxPos.left; const offsetY = canvasPos.top - boxPos.top; - const tooltipWidth = tooltipEl.offsetWidth; - const tooltipHeight = tooltipEl.offsetHeight; + const tooltipWidth = tooltipElement.offsetWidth; + const tooltipHeight = tooltipElement.offsetHeight; const { caretX, caretY } = tooltip; const { caretPadding } = tooltip.options; const arrowMinIndent = 2 * tooltip.options.cornerRadius; @@ -323,7 +323,7 @@ function positionTooltip(tooltipEl, tooltip, context) { // Adjust X position if tooltip is centered inside ancestor if (document.documentElement.clientWidth <= 2 * tooltip.width && tooltip.xAlign === "center") { - tooltipX = (tooltipEl.ancestor.offsetWidth - tooltipWidth) / 2; + tooltipX = (tooltipElement.ancestor.offsetWidth - tooltipWidth) / 2; tooltipX = Math.max(tooltipX, offsetX + caretX - arrowMinIndent); // Prevent left overflow tooltipX = Math.min(tooltipX, offsetX + caretX - tooltipWidth + arrowMinIndent); // Prevent right overflow arrowX = offsetX + caretX - tooltipX; @@ -367,11 +367,11 @@ function positionTooltip(tooltipEl, tooltip, context) { } // Position tooltip and display - tooltipEl.style.top = `${tooltipY.toFixed(1)}px`; - tooltipEl.style.left = `${tooltipX.toFixed(1)}px`; + tooltipElement.style.top = `${tooltipY.toFixed(1)}px`; + tooltipElement.style.left = `${tooltipX.toFixed(1)}px`; // Set arrow position - const arrowEl = tooltipEl.querySelector(".arrow"); + const arrowElement = tooltipElement.querySelector(".arrow"); let arrowLeftPosition = ""; if (arrowX !== undefined) { @@ -381,7 +381,7 @@ function positionTooltip(tooltipEl, tooltip, context) { arrowLeftPosition = `${arrowXpercent}%`; } - arrowEl.style.left = arrowLeftPosition; + arrowElement.style.left = arrowLeftPosition; } globalThis.doughnutTooltip = tooltipLabel => { diff --git a/scripts/js/footer.js b/scripts/js/footer.js index 2b9c2d13f7..bb3d0496de 100644 --- a/scripts/js/footer.js +++ b/scripts/js/footer.js @@ -124,20 +124,20 @@ function checkBlocking() { } function piholeChange(action, duration) { - let btnStatus = null; + let buttonStatus = null; switch (action) { case "enable": - btnStatus = $("#flip-status-enable"); + buttonStatus = $("#flip-status-enable"); break; case "disable": - btnStatus = $("#flip-status-disable"); + buttonStatus = $("#flip-status-disable"); break; default: // Do nothing break; } - btnStatus.html(" "); + buttonStatus.html(" "); $.ajax({ url: document.body.dataset.apiurl + "/dns/blocking", method: "POST", @@ -154,7 +154,7 @@ function piholeChange(action, duration) { return; } - btnStatus.html(""); + buttonStatus.html(""); piholeChanged(data.blocking, data.timer); }) .fail(data => { @@ -169,12 +169,12 @@ function testCookies() { // set and read cookie document.cookie = "cookietest=1"; - const ret = document.cookie.includes("cookietest="); + const returnValue = document.cookie.includes("cookietest="); // delete cookie document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT"; - return ret; + return returnValue; } function applyCheckboxRadioStyle() { @@ -426,17 +426,17 @@ function versionCompare(v1, v2) { } // loop until both string are processed - for (let i = 0, j = 0; i < v1.length || j < v2.length;) { + for (let index = 0, index_ = 0; index < v1.length || index_ < v2.length;) { // storing numeric part of version 1 in vnum1 - while (i < v1.length && v1[i] !== ".") { - vnum1 = vnum1 * 10 + (v1[i] - "0"); - i++; + while (index < v1.length && v1[index] !== ".") { + vnum1 = vnum1 * 10 + (v1[index] - "0"); + index++; } // storing numeric part of version 2 in vnum2 - while (j < v2.length && v2[j] !== ".") { - vnum2 = vnum2 * 10 + (v2[j] - "0"); - j++; + while (index_ < v2.length && v2[index_] !== ".") { + vnum2 = vnum2 * 10 + (v2[index_] - "0"); + index_++; } if (vnum1 > vnum2) { @@ -450,8 +450,8 @@ function versionCompare(v1, v2) { // if equal, reset variables and go for next numeric part vnum1 = 0; vnum2 = 0; - i++; - j++; + index++; + index_++; } return 0; @@ -639,32 +639,32 @@ $(() => { }); // Handle Enable/Disable -$("#pihole-enable").on("click", e => { - e.preventDefault(); +$("#pihole-enable").on("click", event => { + event.preventDefault(); localStorage.removeItem("countDownTarget"); piholeChange("enable", ""); }); -$("#pihole-disable-indefinitely").on("click", e => { - e.preventDefault(); +$("#pihole-disable-indefinitely").on("click", event => { + event.preventDefault(); piholeChange("disable", "0"); }); -$("#pihole-disable-10s").on("click", e => { - e.preventDefault(); +$("#pihole-disable-10s").on("click", event => { + event.preventDefault(); piholeChange("disable", "10"); }); -$("#pihole-disable-30s").on("click", e => { - e.preventDefault(); +$("#pihole-disable-30s").on("click", event => { + event.preventDefault(); piholeChange("disable", "30"); }); -$("#pihole-disable-5m").on("click", e => { - e.preventDefault(); +$("#pihole-disable-5m").on("click", event => { + event.preventDefault(); piholeChange("disable", "300"); }); -$("#pihole-disable-custom").on("click", e => { - e.preventDefault(); - let custVal = $("#customTimeout").val(); - custVal = $("#btnMins").hasClass("active") ? custVal * 60 : custVal; - piholeChange("disable", custVal); +$("#pihole-disable-custom").on("click", event => { + event.preventDefault(); + let custValue = $("#customTimeout").val(); + custValue = $("#btnMins").hasClass("active") ? custValue * 60 : custValue; + piholeChange("disable", custValue); }); function initSettingsLevel() { diff --git a/scripts/js/gravity.js b/scripts/js/gravity.js index 1d3eb20ef7..5ee828f879 100644 --- a/scripts/js/gravity.js +++ b/scripts/js/gravity.js @@ -13,7 +13,7 @@ function eventsource() { const $alertInfo = $("#alertInfo"); const $alertSuccess = $("#alertSuccess"); const outputElement = document.getElementById("output"); - const gravityBtn = document.getElementById("gravityBtn"); + const gravityButton = document.getElementById("gravityBtn"); const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute("content"); const url = `${document.body.dataset.apiurl}/action/gravity?color=true`; @@ -37,7 +37,7 @@ function eventsource() { response, outputElement, alertInfo: $alertInfo, - gravityBtn, + gravityBtn: gravityButton, alertSuccess: $alertSuccess, }) ) @@ -143,10 +143,10 @@ function parseLines(outputElement, text) { } document.addEventListener("DOMContentLoaded", () => { - const gravityBtn = document.getElementById("gravityBtn"); + const gravityButton = document.getElementById("gravityBtn"); - gravityBtn.addEventListener("click", () => { - gravityBtn.disabled = true; + gravityButton.addEventListener("click", () => { + gravityButton.disabled = true; eventsource(); }); diff --git a/scripts/js/groups-clients.js b/scripts/js/groups-clients.js index 29b0a17082..0e5e8117e5 100644 --- a/scripts/js/groups-clients.js +++ b/scripts/js/groups-clients.js @@ -44,10 +44,10 @@ function reloadClientSuggestions() { let extraInfo = ""; if (client.names !== null && client.names.length > 0) { // Count number of "," in client.names to determine number of hostnames - const numHostnames = client.names.split(",").length; - const pluralHostnames = numHostnames > 1 ? "s" : ""; + const numberHostnames = client.names.split(",").length; + const pluralHostnames = numberHostnames > 1 ? "s" : ""; extraInfo = - numHostnames + " hostname" + pluralHostnames + ": " + utils.escapeHtml(client.names); + numberHostnames + " hostname" + pluralHostnames + ": " + utils.escapeHtml(client.names); } if (client.macVendor !== null && client.macVendor.length > 0) { @@ -66,10 +66,14 @@ function reloadClientSuggestions() { } // Count number of "," in client.addresses to determine number of addresses - const numAddresses = client.addresses.split(",").length; - const pluralAddresses = numAddresses > 1 ? "es" : ""; + const numberAddresses = client.addresses.split(",").length; + const pluralAddresses = numberAddresses > 1 ? "es" : ""; extraInfo += - numAddresses + " address" + pluralAddresses + ": " + utils.escapeHtml(client.addresses); + numberAddresses + + " address" + + pluralAddresses + + ": " + + utils.escapeHtml(client.addresses); } if (extraInfo.length > 0) { @@ -171,64 +175,64 @@ function initTable() { $("td:eq(1)", row).html(ipName); $("td:eq(2)", row).html(''); - const commentEl = $("#comment_" + dataId, row); - commentEl.val(data.comment); - commentEl.on("change", editClient); + const commentElement = $("#comment_" + dataId, row); + commentElement.val(data.comment); + commentElement.on("change", editClient); $("td:eq(3)", row).empty(); $("td:eq(3)", row).append( '' ); - const selectEl = $("#multiselect_" + dataId, row); + const selectElement = $("#multiselect_" + dataId, row); // Add all known groups for (const group of groups) { const dataSub = group.enabled ? "" : 'data-subtext="(disabled)"'; - selectEl.append( + selectElement.append( $("