From d619da3710f6d97b5426f2197bb4d272459f08f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2026 06:28:45 +0000 Subject: [PATCH 1/5] Bump eslint-plugin-jsdoc from 63.2.0 to 65.3.0 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 63.2.0 to 65.3.0. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v63.2.0...v65.3.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-version: 65.3.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 413 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 359 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index e86b03caba..f6f5b3a496 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "chai": "4.5.0", "date-and-time": "3.6.0", "eslint": "9.37.0", - "eslint-plugin-jsdoc": "63.2.0", + "eslint-plugin-jsdoc": "65.3.0", "globals": "17.12.0", "mkdirp": "3.0.1", "mocha": "12.0.2", @@ -456,20 +456,20 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.88.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.88.0.tgz", - "integrity": "sha512-GK/HL/claLLNo5KG705auIlZMwEtmn88ofSGuLsmVZwKBqMPJhW9DiznYNq07QEqz9BPtA3LBfYImtZmhVvRAw==", + "version": "0.98.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.98.0.tgz", + "integrity": "sha512-QS+b7I2aaSM+gZfDz1b9E4B367JJ2qTjFXRKF289iKkh9sYdZ21Q5MiF/Duzouy3J0C4VhM3I/8f2F4+zT8gYQ==", "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.9", - "@typescript-eslint/types": "^8.59.4", - "comment-parser": "1.4.7", + "@typescript-eslint/types": "^8.70.0", + "comment-parser": "1.4.9", "esquery": "^1.7.0", - "jsdoc-type-pratt-parser": "~7.2.0" + "jsdoc-type-pratt-parser": "~9.2.2" }, "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" + "node": "^22.22.2 || >=24.15.0" } }, "node_modules/@es-joy/resolve.exports": { @@ -483,9 +483,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", "dev": true, "license": "MIT", "dependencies": { @@ -1891,18 +1891,260 @@ "integrity": "sha512-aqayTNmeWrZcvnG2MG9eGYI6b7S5fl+yKgPs6bAjOTwPS316R5SxBGKvtSExfyoJU7pIeHJfsHI0Ji41RVMkvQ==", "inBundle": true }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.1.tgz", + "integrity": "sha512-Oijc9RUsohHjncg6iGi7gCtjnEjYt9FWv9u6ygK8uKcHK5eLjLAkqERQ9BaytbpceOFdk6kifPCS/zAZE+A99g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.71.1", + "@typescript-eslint/types": "^8.71.1", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/project-service/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.1.tgz", + "integrity": "sha512-1YUDZXdTnXLlob03SFHBipdyMBsDVm7zoSz0ytTJ39dk5J1TgsTK03VlR/dLXG/RLLUrPcYbD4rp23BmHxHP0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.71.1", + "@typescript-eslint/visitor-keys": "8.71.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.1.tgz", + "integrity": "sha512-oTvkml5SxXhgg+WWKhod5qWQICDXtOB+/Hi9VdPKFAANJ2b7YOgMffgvzXuqog7R6A/JtrzRf128dsxummyWhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, "node_modules/@typescript-eslint/types": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", - "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.1.tgz", + "integrity": "sha512-ybYnPTUwg3VQQOFEiBPLs8Jxl1ry2vXdn1kVKguomBbvxpetdu3MKTNDqFNUrlG8ylP9MpZosmXMFYlGQHk1oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.1.tgz", + "integrity": "sha512-pSKSEK1JJpHs6KiKVtABCE4iJK5d7FLFzDXQNBQ2oRY7LEd3UwOt3TZemTgu9syTIf56dJWlTn/pdmrO9oKUXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.71.1", + "@typescript-eslint/tsconfig-utils": "8.71.1", + "@typescript-eslint/types": "8.71.1", + "@typescript-eslint/visitor-keys": "8.71.1", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.1.tgz", + "integrity": "sha512-CBjT6gfAz3DW2j9Q4moFnqt208Aq+506sVGXfpRcyAeqn0EpayL0mjdWoCO2t3RC7GewNrFxdeehuEaPg6DMzQ==", "dev": true, "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.71.1", + "@typescript-eslint/types": "8.71.1", + "@typescript-eslint/typescript-estree": "8.71.1" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.71.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.1.tgz", + "integrity": "sha512-0GxiUGqMU0qXJt58cBsiG3DP8lUmBaFo2vChtUX+CT7PnR3v/VGLLrzVP4K9r1lNiZXjHYefMBbPunplr09v6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.71.1", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/abbrev": { @@ -2039,12 +2281,13 @@ "license": "MIT" }, "node_modules/are-docs-informative": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", - "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.1.1.tgz", + "integrity": "sha512-sqRsNQBwbKLRX0jV5Cu5uzmtflf892n4Vukz7T659ebL4pz3mpOqCMU7lxMoBTFwnp10E3YB5ZcyHM41W5bcDA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/argparse": { @@ -2626,9 +2869,9 @@ "dev": true }, "node_modules/comment-parser": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.7.tgz", - "integrity": "sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==", + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.9.tgz", + "integrity": "sha512-+2AvZKjJaNq9GQljm3tr0utwrig5BL+jgJGvz5rDpGKNIp+ojcRXWUwBbh/sGIi1QCprR6PsKFakub+w1v+4hQ==", "dev": true, "license": "MIT", "engines": { @@ -3598,6 +3841,19 @@ "inBundle": true, "license": "MIT" }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint": { "version": "9.37.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz", @@ -3660,32 +3916,39 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "63.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.2.0.tgz", - "integrity": "sha512-tccz9igEV5mTKVAwo/KwXqKP7ENqa3a+LpRFuEPAP3k/+SXG4T0sOvA+c2wwTD/TLNrH9MCW4LIu4xEExkJdzg==", + "version": "65.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-65.3.0.tgz", + "integrity": "sha512-AjrBSsZi//gfCP/NUw7RdNn+4UCds36YhfS3RK/iHR7TpiPSf5LcL/G/vfHXeHZ9zo7SQuVri84Xah7uugfdTA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.88.0", + "@es-joy/jsdoccomment": "~0.98.0", "@es-joy/resolve.exports": "1.2.0", - "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.7", + "@typescript-eslint/utils": "^8.70.1", + "are-docs-informative": "^0.1.1", + "comment-parser": "1.4.9", "debug": "^4.4.3", - "escape-string-regexp": "^4.0.0", + "escape-string-regexp": "^5.0.0", "espree": "^11.2.0", "esquery": "^1.7.0", "html-entities": "^2.6.0", "object-deep-merge": "^2.0.1", "parse-imports-exports": "^0.2.4", "semver": "^7.8.5", - "spdx-expression-parse": "^4.0.0", + "spdx-expression-parse": "^5.0.0", "to-valid-identifier": "^1.0.0" }, "engines": { - "node": "^22.13.0 || >=24" + "node": "^22.22.2 || >=24.15.0" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/eslint-plugin-jsdoc/node_modules/debug": { @@ -3706,18 +3969,6 @@ } } }, - "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", @@ -5322,13 +5573,27 @@ "license": "Python-2.0" }, "node_modules/jsdoc-type-pratt-parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-7.2.0.tgz", - "integrity": "sha512-dh140MMgjyg3JhJZY/+iEzW+NO5xR2gpbDFKHqotCmexElVntw7GjWjt511+C/Ef02RU5TKYrJo/Xlzk+OLaTw==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-9.2.2.tgz", + "integrity": "sha512-eFY7Rlscvv/BpY6UsVsjKwMhu1tJO/F4U/vC9g3yeRy/JqszuO1UP6Vdq+85G+3FP6fEw/sWR8a5ftPFY86csw==", "dev": true, "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.9", + "@types/node": "^26.4.0" + }, "engines": { - "node": ">=20.0.0" + "node": "^22.22.2 || >=24.15.0" + } + }, + "node_modules/jsdoc-type-pratt-parser/node_modules/@types/node": { + "version": "26.6.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.5.tgz", + "integrity": "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.9.0" } }, "node_modules/jsesc": { @@ -7831,23 +8096,26 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", - "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-5.0.0.tgz", + "integrity": "sha512-vngmw3Rgn+o2arXNbnZaj5UtOEBuWBfvaI+Wc8GFfykIhA5/vdK9/Sp/XkLv63dykz2rxKDvKEHupF5P0FORcQ==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", - "dev": true + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.24.tgz", + "integrity": "sha512-cLS9TtWkIQFyLkJ3/5aFQAOHOSKTlOs/7WDut/XPSdjom1fJhUdkepeJAKXa9Y05+FabHd0sti+Et559vDtkpQ==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/sprintf-js": { "version": "1.0.3", @@ -8250,6 +8518,19 @@ "node": ">= 14.0.0" } }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -8316,6 +8597,21 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/umzug": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/umzug/-/umzug-3.8.3.tgz", @@ -8351,6 +8647,13 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, + "node_modules/undici-types": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", + "dev": true, + "license": "MIT" + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", diff --git a/package.json b/package.json index 4c7d8ada86..7a766d5703 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "chai": "4.5.0", "date-and-time": "3.6.0", "eslint": "9.37.0", - "eslint-plugin-jsdoc": "63.2.0", + "eslint-plugin-jsdoc": "65.3.0", "globals": "17.12.0", "mocha": "12.0.2", "mkdirp": "3.0.1", From 316267a430b199749934e8773c3e044eb01269f0 Mon Sep 17 00:00:00 2001 From: George Raduta Date: Thu, 15 Oct 2026 09:19:08 +0200 Subject: [PATCH 2/5] Use docs Function with capital F --- lib/database/DataSource.js | 2 +- lib/database/utilities/QueryBuilder.js | 2 +- .../Filters/common/RadioButtonFilterModel.js | 2 +- .../Filters/common/filters/timeRangeFilter.js | 4 ++-- .../components/Filters/common/filtersPanelPopover.js | 6 +++--- lib/public/components/Log/logDisplayComponent.js | 2 +- lib/public/components/Pagination/pageSelector.js | 2 +- .../common/chart/lineChart/lineChartComponent.js | 2 +- lib/public/components/common/form/createButton.js | 2 +- lib/public/components/common/form/deleteButton.js | 2 +- .../common/form/inputs/DateTimeInputComponent.js | 2 +- .../common/form/inputs/TimestampInputComponent.js | 2 +- .../common/form/inputs/colorInputComponent.js | 2 +- .../components/common/formatting/formatTimeRange.js | 6 +++--- lib/public/components/common/markdown/markdown.js | 2 +- lib/public/components/common/primaryButton.js | 2 +- lib/public/components/common/remoteDataDisplay.js | 8 ++++---- .../common/selection/dropdown/selectionDropdown.js | 4 ++-- .../components/common/table/remoteDataTableBody.js | 2 +- lib/public/components/common/table/rows.js | 2 +- lib/public/components/common/table/table.js | 4 ++-- .../components/common/tree/collapsibleTreeNode.js | 4 ++-- lib/public/models/CreationModel.js | 2 +- lib/public/models/DataExportModel.js | 4 ++-- lib/public/utilities/ObservableData.js | 2 +- lib/public/utilities/debounce.js | 4 ++-- .../views/EosReport/create/EosReportCreationModel.js | 2 +- .../EosReport/create/typeSpecific/commentInput.js | 2 +- .../create/typeSpecific/eosFormEcsSpecificPart.js | 2 +- lib/public/views/Logs/Create/LogCreationModel.js | 2 +- lib/public/views/Logs/Create/LogReplyModel.js | 2 +- .../views/Logs/Create/TemplatedLogCreationModel.js | 2 +- .../Logs/Create/panels/LogCreationContentPanel.js | 2 +- .../QcFlagTypes/Create/QcFlagTypeCreationModel.js | 2 +- .../views/QcFlags/details/QcFlagDetailsModel.js | 4 ++-- .../forDataPass/QcFlagDetailsForDataPassModel.js | 2 +- .../QcFlagDetailsForSimulationPassModel.js | 2 +- lib/public/views/Runs/Details/RunDetailsModel.js | 2 +- lib/public/views/Runs/Overview/RunsWithQcModel.js | 4 ++-- .../RunPerDataPass/RunsPerDataPassOverviewPage.js | 2 +- .../charts/detectorsEfficienciesComponent.js | 2 +- .../Statistics/charts/efficiencyChartComponent.js | 2 +- .../charts/meanRunDurationChartComponent.js | 2 +- .../charts/weeklyDataSizeChartComponent.js | 2 +- lib/public/views/Tags/Create/TagCreationModel.js | 2 +- lib/server/gRPC/bindGRPCController.js | 8 ++++---- .../services/protoParsing/extractFieldsConverters.js | 4 ++-- lib/server/kafka/InfologgerKafkaLogCreator.js | 2 +- lib/server/services/ScheduledProcessesManager.js | 2 +- lib/server/services/detector/getAllDetectors.js | 2 +- lib/server/services/detector/getDetector.js | 2 +- .../services/environment/getAllEnvironments.js | 2 +- lib/server/services/environment/getEnvironment.js | 2 +- .../services/environment/getEnvironmentOrFail.js | 2 +- .../getEnvironmentHistoryItem.js | 2 +- lib/server/services/flp/getFlpRole.js | 2 +- lib/server/services/lhcFill/getLastLhcFill.js | 2 +- lib/server/services/lhcFill/getLhcFill.js | 2 +- lib/server/services/lhcPeriod/getLhcPeriod.js | 2 +- lib/server/services/log/getLog.js | 2 +- lib/server/services/run/getRun.js | 2 +- lib/server/services/run/getRunOrFail.js | 2 +- lib/server/services/runDetector/getRunDetector.js | 2 +- .../services/runDetector/getRunDetectorOrFail.js | 2 +- lib/server/services/runType/getRunType.js | 2 +- lib/server/services/tag/getTagsByText.js | 2 +- lib/server/services/user/getUser.js | 2 +- lib/usecases/run/GetAllRunsUseCase.js | 12 ++++++------ lib/utilities/cacheAsyncFunction.js | 8 ++++---- 69 files changed, 96 insertions(+), 96 deletions(-) diff --git a/lib/database/DataSource.js b/lib/database/DataSource.js index 07b7670733..668bfc938e 100644 --- a/lib/database/DataSource.js +++ b/lib/database/DataSource.js @@ -37,7 +37,7 @@ class DataSource { /** * Execute a given code in an auto-handled transaction. This will handle committing or rolling back the transaction automatically. * - * @param {function} wrapped the function to wrap in a transaction + * @param {Function} wrapped the function to wrap in a transaction * @param {Object} [options] eventual options of the transaction * @param {Transaction} [options.transaction] if specified, the wrapped function will be executed in this transaction * @returns {Promise} Return of the callback diff --git a/lib/database/utilities/QueryBuilder.js b/lib/database/utilities/QueryBuilder.js index c56074c319..31d9a812e4 100644 --- a/lib/database/utilities/QueryBuilder.js +++ b/lib/database/utilities/QueryBuilder.js @@ -573,7 +573,7 @@ class QueryBuilder { /** * Add a condition to the currently building where clauses using AND operation * - * @param {string|function|Object} subject the subject on which where condition must be applied or the full criteria expression + * @param {string|Function|Object} subject the subject on which where condition must be applied or the full criteria expression * @param {Object|undefined} [criteria] the criteria of the where condition. If undefined, the subject is expected to contain the full * criteria * diff --git a/lib/public/components/Filters/common/RadioButtonFilterModel.js b/lib/public/components/Filters/common/RadioButtonFilterModel.js index 0aaa6e70af..cc6be875c7 100644 --- a/lib/public/components/Filters/common/RadioButtonFilterModel.js +++ b/lib/public/components/Filters/common/RadioButtonFilterModel.js @@ -21,7 +21,7 @@ export class RadioButtonFilterModel extends SelectionModel { * Constructor * * @param {SelectionOption[]} [availableOptions] the list of possible operators - * @param {function} [setDefault] function that selects the default from the list of available options. Selects first entry by default + * @param {Function} [setDefault] function that selects the default from the list of available options. Selects first entry by default * @param {boolean} [defaultIsEmpty] if true, the default selection will be treated as empty */ constructor(availableOptions, setDefault = (options) => [options[0]], defaultIsEmpty = true) { diff --git a/lib/public/components/Filters/common/filters/timeRangeFilter.js b/lib/public/components/Filters/common/filters/timeRangeFilter.js index 65a587ce50..762805b72a 100644 --- a/lib/public/components/Filters/common/filters/timeRangeFilter.js +++ b/lib/public/components/Filters/common/filters/timeRangeFilter.js @@ -32,7 +32,7 @@ const YEARS_OPTIONS_COUNT = 3; /** * Returns a pre-defined list of years period selectors * - * @param {function} onChange function called with the clicked period and its label + * @param {Function} onChange function called with the clicked period and its label * @return {Component} the list of years selectors */ const yearsOptions = ({ onChange }) => { @@ -58,7 +58,7 @@ const yearsOptions = ({ onChange }) => { /** * Return a pre-defined list of months period selectors * - * @param {function} onChange function called with the clicked period and its label + * @param {Function} onChange function called with the clicked period and its label * @return {Component} the list of months selectors */ const monthsOptions = ({ onChange }) => { diff --git a/lib/public/components/Filters/common/filtersPanelPopover.js b/lib/public/components/Filters/common/filtersPanelPopover.js index 648427db34..404841bbe0 100644 --- a/lib/public/components/Filters/common/filtersPanelPopover.js +++ b/lib/public/components/Filters/common/filtersPanelPopover.js @@ -20,7 +20,7 @@ import { tooltip } from '../../common/popover/tooltip.js'; * @typedef FilterConfiguration * * @property {string} name - * @property {function|Component} filter + * @property {Function|Component} filter * @property {string|Component} filterTooltip * @property {object|string|string[]} profiles */ @@ -74,7 +74,7 @@ const filtersToggleContentHeader = (filteringModel) => h('.flex-row.justify-betw * @param {FilteringModel} filteringModel the filtering model * @param {FiltersConfiguration} filtersConfiguration filters configuration * @param {object} [configuration] additional configuration - * @param {string} [configuration.profile = profiles.none] profile which filters should be rendered @see Column + * @param {string} [configuration.profile = profiles.none] profile which filters should be rendered {@see Column} * @return {Component} the filters section */ export const filtersSection = (filteringModel, filtersConfiguration, { profile: appliedProfile = profiles.none } = {}) => @@ -107,7 +107,7 @@ export const filtersSection = (filteringModel, filtersConfiguration, { profile: * @param {FilteringModel} filteringModel the filtering model * @param {FiltersConfiguration} filtersConfiguration filters configuration * @param {object} [configuration] additional configuration - * @param {string} [configuration.profile = profiles.none] profile which filters should be rendered @see Column + * @param {string} [configuration.profile = profiles.none] profile which filters should be rendered {@see Column} * @return {Component} the filters panel */ const filtersToggleContent = ( diff --git a/lib/public/components/Log/logDisplayComponent.js b/lib/public/components/Log/logDisplayComponent.js index 4b306fe046..54a038bae8 100644 --- a/lib/public/components/Log/logDisplayComponent.js +++ b/lib/public/components/Log/logDisplayComponent.js @@ -120,7 +120,7 @@ const expandedLogFields = ['runs', 'environments', 'lhcFills', 'attachments']; * * @param {Log} log all data related to the log * @param {boolean} isCollapsed indicator if the title of this log is collapsed - * @param {function} setCollapsed function called when the log should be collapsed or expanded + * @param {Function} setCollapsed function called when the log should be collapsed or expanded * @param {Object} [options] other options * @param {boolean} [options.highlight] indicator if this log should be highlighted * @param {boolean} [options.hideTitle] indicator if the title of this log should be visible diff --git a/lib/public/components/Pagination/pageSelector.js b/lib/public/components/Pagination/pageSelector.js index 7e0e184565..2bad839a29 100644 --- a/lib/public/components/Pagination/pageSelector.js +++ b/lib/public/components/Pagination/pageSelector.js @@ -34,7 +34,7 @@ const getPageButtons = (pages, currentPage, onPageChange) => pages.map((page) => * * @param {number} currentPage The current active page * @param {number} pagesCount The total amount of pages available - * @param {function} onPageChange callback called when the selected page change with the new page as argument + * @param {Function} onPageChange callback called when the selected page change with the new page as argument * @return {Component} The full button group containing navigation arrows and the (shortened) page buttons themselves */ const pageSelector = (currentPage, pagesCount, onPageChange) => { diff --git a/lib/public/components/common/chart/lineChart/lineChartComponent.js b/lib/public/components/common/chart/lineChart/lineChartComponent.js index 79681ec182..257e0f0e9e 100644 --- a/lib/public/components/common/chart/lineChart/lineChartComponent.js +++ b/lib/public/components/common/chart/lineChart/lineChartComponent.js @@ -26,7 +26,7 @@ const DEFAULT_TOOLTIP_MARGIN = 20; * @typedef LineChartComponentConfiguration * @property {number} [tooltipMargin] margin between the hovered point and the tooltip * @property {tooltipCallback} [tooltip] function called to render the tooltip displayed when hovering a point on the graph - * @property {function} [onPointHover] function called when a point is hovered + * @property {Function} [onPointHover] function called when a point is hovered * @property {LineChartConfiguration} [chartConfiguration] the line chart configuration * @property {Component} [placeholder="No data"] component rendered instead of the chart if points is empty */ diff --git a/lib/public/components/common/form/createButton.js b/lib/public/components/common/form/createButton.js index 283f436c4d..6ea0488def 100644 --- a/lib/public/components/common/form/createButton.js +++ b/lib/public/components/common/form/createButton.js @@ -16,7 +16,7 @@ import { h } from '/js/src/index.js'; /** * Returns a create button component * - * @param {function} onclick function called when button is clicked (if null, button will be disabled) + * @param {Function} onclick function called when button is clicked (if null, button will be disabled) * @param {string} [text='Create'] the button's text * @param {string} [selector='button#submit.btn.btn-success'] the button selector * @return {vnode} the button component diff --git a/lib/public/components/common/form/deleteButton.js b/lib/public/components/common/form/deleteButton.js index 8e0b81dcde..709aa716db 100644 --- a/lib/public/components/common/form/deleteButton.js +++ b/lib/public/components/common/form/deleteButton.js @@ -16,7 +16,7 @@ import { h } from '/js/src/index.js'; /** * Render a delete button component * - * @param {function} [onclick] function called when button is clicked (if null, button will be disabled) + * @param {Function} [onclick] function called when button is clicked (if null, button will be disabled) * @param {string} [text='Delete'] the button's text * @return {Component} the button component */ diff --git a/lib/public/components/common/form/inputs/DateTimeInputComponent.js b/lib/public/components/common/form/inputs/DateTimeInputComponent.js index 75d573f526..3dc6a8288c 100644 --- a/lib/public/components/common/form/inputs/DateTimeInputComponent.js +++ b/lib/public/components/common/form/inputs/DateTimeInputComponent.js @@ -22,7 +22,7 @@ import { formatTimestampForDateTimeInput } from '../../../../utilities/formattin /** * @typedef DateTimeInputComponentAttrs * @property {string} value the datetime-local input value - * @property {function} onChange function called with the new value when it changes + * @property {Function} onChange function called with the new value when it changes * @property {boolean} [seconds=false] states if the input has granularity up to seconds (if not, granularity is minutes) * @property {boolean} [milliseconds=false] states if the input has granularity up to milliseconds * @property {boolean} [required] states if the input can be omitted diff --git a/lib/public/components/common/form/inputs/TimestampInputComponent.js b/lib/public/components/common/form/inputs/TimestampInputComponent.js index 693e78d87b..2a5b1e1773 100644 --- a/lib/public/components/common/form/inputs/TimestampInputComponent.js +++ b/lib/public/components/common/form/inputs/TimestampInputComponent.js @@ -19,7 +19,7 @@ import { h, StatefulComponent } from '/js/src/index.js'; /** * @typedef TimestampInputComponentAttrs - * @property {function} onChange function called with the new value when it changes + * @property {Function} onChange function called with the new value when it changes * @property {boolean} [required] states if the inputs can be omitted * @property {number} [value] the default value (ms timestamp) of the input * @property {boolean} [seconds=false] states if the input has granularity up to seconds (if not, granularity is minutes) diff --git a/lib/public/components/common/form/inputs/colorInputComponent.js b/lib/public/components/common/form/inputs/colorInputComponent.js index 540cb6b48c..ece0d9ae68 100644 --- a/lib/public/components/common/form/inputs/colorInputComponent.js +++ b/lib/public/components/common/form/inputs/colorInputComponent.js @@ -17,7 +17,7 @@ import { h, iconX } from '/js/src/index.js'; * Returns a create button component * * @param {string} color The current color go - * @param {function} onInput The function of what must happen on input + * @param {Function} onInput The function of what must happen on input * @return {Component} The color input element */ export const colorInputComponent = (color, onInput) => h('.flex-row.items-center.g2', [ diff --git a/lib/public/components/common/formatting/formatTimeRange.js b/lib/public/components/common/formatting/formatTimeRange.js index 103254153e..e0deea08da 100644 --- a/lib/public/components/common/formatting/formatTimeRange.js +++ b/lib/public/components/common/formatting/formatTimeRange.js @@ -19,9 +19,9 @@ import { h } from '/js/src/index.js'; * * @param {Partial} period the current period * @param {object} [configuration] the formatting configuration - * @param {function} [configuration.formatTimestamp] the function to format the period's timestamps - * @param {function} [configuration.formatText] the function to format the time-range texts, such as `From`, `to`... - * @param {function} [configuration.formatParts] the function to format all the formatted timeRange parts, which are the timestamps and the + * @param {Function} [configuration.formatTimestamp] the function to format the period's timestamps + * @param {Function} [configuration.formatText] the function to format the time-range texts, such as `From`, `to`... + * @param {Function} [configuration.formatParts] the function to format all the formatted timeRange parts, which are the timestamps and the * keywords, for example [`From`, `2023-01-01`] * @return {Component} the resulting component */ diff --git a/lib/public/components/common/markdown/markdown.js b/lib/public/components/common/markdown/markdown.js index bf935d841c..ea571a7d67 100644 --- a/lib/public/components/common/markdown/markdown.js +++ b/lib/public/components/common/markdown/markdown.js @@ -113,7 +113,7 @@ export const markdownDisplay = (content, attributes, size) => h( * Extract a markdown editor form an existing textarea * * @param {HTMLTextAreaElement} textarea the textarea from which markdown component must be extracted - * @param {function} onInput function called any time the markdown content changes + * @param {Function} onInput function called any time the markdown content changes * @param {Partial} size the size of the markdown input * @return {vnode} the component */ diff --git a/lib/public/components/common/primaryButton.js b/lib/public/components/common/primaryButton.js index 4e1bef2c2e..ce10db5dcb 100644 --- a/lib/public/components/common/primaryButton.js +++ b/lib/public/components/common/primaryButton.js @@ -17,7 +17,7 @@ import { h } from '/js/src/index.js'; * Returns a button with the primary style * * @param {string} label the text that the button should show - * @param {function} onclick function called when button is activated + * @param {Function} onclick function called when button is activated * @param {string} id Optional, the id of the html element. Useful for finding the button during tests. * @return {Component} the primary button component */ diff --git a/lib/public/components/common/remoteDataDisplay.js b/lib/public/components/common/remoteDataDisplay.js index 288ff23fd3..7c031dbe39 100644 --- a/lib/public/components/common/remoteDataDisplay.js +++ b/lib/public/components/common/remoteDataDisplay.js @@ -18,10 +18,10 @@ import errorAlert from './errorAlert.js'; * * @param {RemoteData} remoteData the remote data to display * @param {Object} renderers the functions to render specific states of the remote data - * @param {function} renderers.Success the functions to render remote data success payload - * @param {function} [renderers.NotAsked] the functions to render remote data when not asked, defaults to a null component - * @param {function} [renderers.Loading] the functions to render remote data when not asked, defaults to a spinner - * @param {function} [renderers.Failure] the functions to render remote data error payload, defaults to {@see errorAlert} + * @param {Function} renderers.Success the functions to render remote data success payload + * @param {Function} [renderers.NotAsked] the functions to render remote data when not asked, defaults to a null component + * @param {Function} [renderers.Loading] the functions to render remote data when not asked, defaults to a spinner + * @param {Function} [renderers.Failure] the functions to render remote data error payload, defaults to {@see errorAlert} * @return {Component} the remote data display */ export const remoteDataDisplay = (remoteData, renderers) => remoteData.match({ diff --git a/lib/public/components/common/selection/dropdown/selectionDropdown.js b/lib/public/components/common/selection/dropdown/selectionDropdown.js index 87c08bb06d..5537fda333 100644 --- a/lib/public/components/common/selection/dropdown/selectionDropdown.js +++ b/lib/public/components/common/selection/dropdown/selectionDropdown.js @@ -20,7 +20,7 @@ import { cleanPrefix } from '../../../../utilities/cleanPrefix.js'; * * @param {SelectionOption} option the option to display * @param {boolean} checked the current state of the option - * @param {function} onChange function called with the option and its new state when the option's state change + * @param {Function} onChange function called with the option and its new state when the option's state change * @param {string} [selectorPrefix] prefix used to generate DOM selectors for the component * @return {Component} the option's view */ @@ -51,7 +51,7 @@ const dropdownOptions = (dropdownModel, selectorPrefix, displayOption, openingOb * Displays the list of available options * * @param {SelectionOption[]} availableOptions the list of all the available options - * @param {function} onChange callback to handle an option state change + * @param {Function} onChange callback to handle an option state change * @return {Component} the options list */ const optionsList = (availableOptions, onChange) => { diff --git a/lib/public/components/common/table/remoteDataTableBody.js b/lib/public/components/common/table/remoteDataTableBody.js index 128902adae..693402d89c 100644 --- a/lib/public/components/common/table/remoteDataTableBody.js +++ b/lib/public/components/common/table/remoteDataTableBody.js @@ -20,7 +20,7 @@ import errorAlert from '../errorAlert.js'; * Utility function handling the error, loading and notAsked states when displaying a remote data into a table body * * @param {RemoteData} remoteData the data to display - * @param {function} successDisplay function called with the remote data success payload to extract the actual table body in case of success + * @param {Function} successDisplay function called with the remote data success payload to extract the actual table body in case of success * @param {number} columnsCount the amount of columns displayed in the table * @return {Component} the table body */ diff --git a/lib/public/components/common/table/rows.js b/lib/public/components/common/table/rows.js index 151f1a34f7..0316a33fb0 100644 --- a/lib/public/components/common/table/rows.js +++ b/lib/public/components/common/table/rows.js @@ -55,7 +55,7 @@ const cell = (rowId, column, rowData) => { * @typedef RowsConfiguration * @property {function(Array):Object} [callback] a callback called on each row's data, and whose result will be added to the row component's * attributes - * @property {string|function} [classes] the css classes to apply to each row. + * @property {string|Function} [classes] the css classes to apply to each row. * If it is a string, use it as is(separated by a dot) * If it is a function, call the function with the row as argument and use the result as a class */ diff --git a/lib/public/components/common/table/table.js b/lib/public/components/common/table/table.js index 19446dd8c2..c481ec451e 100644 --- a/lib/public/components/common/table/table.js +++ b/lib/public/components/common/table/table.js @@ -25,7 +25,7 @@ import { remoteDataTableBody } from './remoteDataTableBody.js'; * @property {string|Object} [information] extra information given to the header of the column * @property {boolean} [visible] false to hide the column * @property {string|Symbol|Array|Object} [profiles] may be one of the following (note that if the table has no explicit profile, it will be - * assigned @see profiles.none profile automatically): + * assigned {@see profiles.none} profile automatically): * - If this is a string or a symbol, the column will be displayed only if the table's profile is the specified profile * - If this is an array, the column will be displayed only if the table's profile is one of the specified profiles * - If this is an Object: @@ -36,7 +36,7 @@ import { remoteDataTableBody } from './remoteDataTableBody.js'; * - Else, if this property is truthy, the column is displayed as is * @property {boolean} [primary] true to define the column whose values will be used as row identifier * @property {boolean} [noEllipsis] if true, overflowing data will not be displayed as ellipsis but will be visible or wrapped - * @property {boolean|function} [balloon] true to display a popover if the cell's content overflow, or use a function that will be used to + * @property {boolean|Function} [balloon] true to display a popover if the cell's content overflow, or use a function that will be used to * extract the popover text from the cell's data * @property {Object} [size] alias for classes, **deprecated** * @property {Object} [classes] css classes to apply on each row (head and body) diff --git a/lib/public/components/common/tree/collapsibleTreeNode.js b/lib/public/components/common/tree/collapsibleTreeNode.js index d214741a99..98b900e783 100644 --- a/lib/public/components/common/tree/collapsibleTreeNode.js +++ b/lib/public/components/common/tree/collapsibleTreeNode.js @@ -7,8 +7,8 @@ import { iconCaretBottom } from '/js/src/icons.js'; * Display the node of a tree and its children * * @param {CollapsibleTreeNodeModel} nodeModel the model storing the node state - * @param {function} valueDisplay function called with the node value to display the current node value - * @param {function} childDisplay function called with each child (if node is not collapsed) to display node child + * @param {Function} valueDisplay function called with the node value to display the current node value + * @param {Function} childDisplay function called with each child (if node is not collapsed) to display node child * @return {vnode} the resulting node display */ export const collapsibleTreeNode = (nodeModel, valueDisplay, childDisplay) => h('.tree-node.flex-column.g2', [ diff --git a/lib/public/models/CreationModel.js b/lib/public/models/CreationModel.js index 3baaf579ca..115c5f1df4 100644 --- a/lib/public/models/CreationModel.js +++ b/lib/public/models/CreationModel.js @@ -20,7 +20,7 @@ export class CreationModel extends Observable { /** * Constructor * @param {string} apiEndpoint the api endpoint to call to submit the creation form data - * @param {function} onCreationSuccess function called when the tag creation is successful, passing the created tag ID as parameter + * @param {Function} onCreationSuccess function called when the tag creation is successful, passing the created tag ID as parameter */ constructor(apiEndpoint, onCreationSuccess) { super(); diff --git a/lib/public/models/DataExportModel.js b/lib/public/models/DataExportModel.js index 86657b59d9..047dcd99ef 100644 --- a/lib/public/models/DataExportModel.js +++ b/lib/public/models/DataExportModel.js @@ -30,7 +30,7 @@ import { DataExportTypes } from '../domain/enums/DataExportTypes.js'; /** * @typedef FieldExportConfiguration * - * @property {function|null|{'JSON': JSONDataExportFormatFunction|null, 'CSV': CSVDataExportFormatFunction|null}} exportFormat + * @property {Function|null|{'JSON': JSONDataExportFormatFunction|null, 'CSV': CSVDataExportFormatFunction|null}} exportFormat */ /** @@ -50,7 +50,7 @@ export class DataExportModel extends Observable { * * @param {ObservableData>} items$ observable data used as source for export * @param {DataExportConfiguration} dataExportConfiguration defines selectable fields and their formatting - * @param {function} onDataNotAskedAction function to be called in case of missing data + * @param {Function} onDataNotAskedAction function to be called in case of missing data */ constructor(items$, dataExportConfiguration, onDataNotAskedAction) { super(); diff --git a/lib/public/utilities/ObservableData.js b/lib/public/utilities/ObservableData.js index c4dcf87900..16008f8e85 100644 --- a/lib/public/utilities/ObservableData.js +++ b/lib/public/utilities/ObservableData.js @@ -144,7 +144,7 @@ class ObservableDataBuilder { * Adds a processing function that will be applied to the observable data (map functions will be called in the same * order as they have been registered) * - * @param {function} processor the function to apply to observable data + * @param {Function} processor the function to apply to observable data * @return {this} the builder instance */ apply(processor) { diff --git a/lib/public/utilities/debounce.js b/lib/public/utilities/debounce.js index 9d2c2a9149..f45c09cec3 100644 --- a/lib/public/utilities/debounce.js +++ b/lib/public/utilities/debounce.js @@ -20,10 +20,10 @@ export const INPUT_DEBOUNCE_TIME = 200; * * Do not use this function multiple time, use its return * - * @param {function} callback the function to call after debounce time + * @param {Function} callback the function to call after debounce time * @param {number} wait the debounce duration in milliseconds * - * @return {function} the debounced version of callback + * @return {Function} the debounced version of callback */ export const debounce = (callback, wait) => { let timeout = null; diff --git a/lib/public/views/EosReport/create/EosReportCreationModel.js b/lib/public/views/EosReport/create/EosReportCreationModel.js index 56cfa988b0..02d9b20f76 100644 --- a/lib/public/views/EosReport/create/EosReportCreationModel.js +++ b/lib/public/views/EosReport/create/EosReportCreationModel.js @@ -27,7 +27,7 @@ export class EosReportCreationModel extends CreationModel { * Constructor * * @param {'ECS'|'QC/PDP'|'SLIMOS'|'SL'|'DCS'} reportType type of the EOS report - * @param {function} onCreationSuccess function called when the EOS report creation is successful, passing the created log ID as parameter + * @param {Function} onCreationSuccess function called when the EOS report creation is successful, passing the created log ID as parameter */ constructor(reportType, onCreationSuccess) { super(`/api/eos-report?reportType=${reportType}`, ({ id }) => onCreationSuccess(id)); diff --git a/lib/public/views/EosReport/create/typeSpecific/commentInput.js b/lib/public/views/EosReport/create/typeSpecific/commentInput.js index 488906fd66..b2def980ca 100644 --- a/lib/public/views/EosReport/create/typeSpecific/commentInput.js +++ b/lib/public/views/EosReport/create/typeSpecific/commentInput.js @@ -17,7 +17,7 @@ import { h } from '/js/src/index.js'; * Returns a labelled comment input component * * @param {string|undefined} value the current input value - * @param {function} onChange function called with the new value if input value change + * @param {Function} onChange function called with the new value if input value change * @return {Component} the input component */ export const commentInput = (value, onChange) => h('li', [ diff --git a/lib/public/views/EosReport/create/typeSpecific/eosFormEcsSpecificPart.js b/lib/public/views/EosReport/create/typeSpecific/eosFormEcsSpecificPart.js index 513c668aa4..0509ec1b83 100644 --- a/lib/public/views/EosReport/create/typeSpecific/eosFormEcsSpecificPart.js +++ b/lib/public/views/EosReport/create/typeSpecific/eosFormEcsSpecificPart.js @@ -22,7 +22,7 @@ import { eosReportLogsList } from './eosReportLogsList.js'; * Returns a labelled comment input component * * @param {string|undefined} value the current input value - * @param {function} onChange function called with the new value if input value change + * @param {Function} onChange function called with the new value if input value change * @return {Component} the input component */ const commentInput = (value, onChange) => h('li', [ diff --git a/lib/public/views/Logs/Create/LogCreationModel.js b/lib/public/views/Logs/Create/LogCreationModel.js index 46a5cc6e77..acf00ee637 100644 --- a/lib/public/views/Logs/Create/LogCreationModel.js +++ b/lib/public/views/Logs/Create/LogCreationModel.js @@ -30,7 +30,7 @@ export class LogCreationModel extends Observable { /** * Constructor * - * @param {function} [onCreation] function called when log is created, with the id of the created log + * @param {Function} [onCreation] function called when log is created, with the id of the created log * @param {LogCreationRelations} relations the relations of the log */ constructor(onCreation, relations) { diff --git a/lib/public/views/Logs/Create/LogReplyModel.js b/lib/public/views/Logs/Create/LogReplyModel.js index 21745d283c..3a4388edb3 100644 --- a/lib/public/views/Logs/Create/LogReplyModel.js +++ b/lib/public/views/Logs/Create/LogReplyModel.js @@ -22,7 +22,7 @@ export class LogReplyModel extends LogCreationModel { /** * Constructor * - * @param {function} onCreation function called when the log has been created with the id of the created log as a parameter + * @param {Function} onCreation function called when the log has been created with the id of the created log as a parameter * @param {number} parentLogId the id of the parent log */ constructor(onCreation, parentLogId) { diff --git a/lib/public/views/Logs/Create/TemplatedLogCreationModel.js b/lib/public/views/Logs/Create/TemplatedLogCreationModel.js index c01b98d10d..a127acdbe2 100644 --- a/lib/public/views/Logs/Create/TemplatedLogCreationModel.js +++ b/lib/public/views/Logs/Create/TemplatedLogCreationModel.js @@ -48,7 +48,7 @@ export class TemplatedLogCreationModel extends LogCreationModel { /** * Constructor * - * @param {function} [onCreation] function called when log is created, with the id of the created log + * @param {Function} [onCreation] function called when log is created, with the id of the created log * @param {LogCreationRelations} relations the relations of the log * @param {logTemplateKey|null} templateKey the key of the template to use * @param {object} templateData the template data of the log diff --git a/lib/public/views/Logs/Create/panels/LogCreationContentPanel.js b/lib/public/views/Logs/Create/panels/LogCreationContentPanel.js index fa4f1c67bf..974b572172 100644 --- a/lib/public/views/Logs/Create/panels/LogCreationContentPanel.js +++ b/lib/public/views/Logs/Create/panels/LogCreationContentPanel.js @@ -20,7 +20,7 @@ import { markdownInput } from '../../../../components/common/markdown/markdown.j * Builds a panel containing the label and textarea for log content * * @param {string} value the actual log content - * @param {function} onChange function called with new content when the log content is updated + * @param {Function} onChange function called with new content when the log content is updated * @returns {vnode} - Content panel */ export const logCreationContentPanel = (value, onChange) => h( diff --git a/lib/public/views/QcFlagTypes/Create/QcFlagTypeCreationModel.js b/lib/public/views/QcFlagTypes/Create/QcFlagTypeCreationModel.js index 8e80e1aabf..2b0901a9d2 100644 --- a/lib/public/views/QcFlagTypes/Create/QcFlagTypeCreationModel.js +++ b/lib/public/views/QcFlagTypes/Create/QcFlagTypeCreationModel.js @@ -26,7 +26,7 @@ import { CreationModel } from '../../../models/CreationModel.js'; export class QcFlagTypeCreationModel extends CreationModel { /** * Constructor - * @param {function} onCreationSuccess function called when the QC Flag Type creation is successful, + * @param {Function} onCreationSuccess function called when the QC Flag Type creation is successful, * passing the created QC Flag Type ID as parameter */ constructor(onCreationSuccess) { diff --git a/lib/public/views/QcFlags/details/QcFlagDetailsModel.js b/lib/public/views/QcFlags/details/QcFlagDetailsModel.js index ebe457d0ed..078466cc52 100644 --- a/lib/public/views/QcFlags/details/QcFlagDetailsModel.js +++ b/lib/public/views/QcFlags/details/QcFlagDetailsModel.js @@ -27,7 +27,7 @@ export class QcFlagDetailsModel extends Observable { * * @param {object} parameters parameters for the model * @param {number} [parameters.id] QC flag id - * @param {function} onDeleteSuccess callback in case the flag is successfully deleted + * @param {Function} onDeleteSuccess callback in case the flag is successfully deleted */ constructor( { id: qcFlagId }, @@ -194,7 +194,7 @@ class QcFlagVerificationCreationModel extends CreationModel { /** * Constructor * @param {number} qcFlagId id of the QC flag - * @param {function} onSuccess function called when the verification is successfully created + * @param {Function} onSuccess function called when the verification is successfully created */ constructor(qcFlagId, onSuccess) { super(`/api/qcFlags/${qcFlagId}/verify`, onSuccess); diff --git a/lib/public/views/QcFlags/details/forDataPass/QcFlagDetailsForDataPassModel.js b/lib/public/views/QcFlags/details/forDataPass/QcFlagDetailsForDataPassModel.js index 833680e96b..8d69aca32c 100644 --- a/lib/public/views/QcFlags/details/forDataPass/QcFlagDetailsForDataPassModel.js +++ b/lib/public/views/QcFlags/details/forDataPass/QcFlagDetailsForDataPassModel.js @@ -26,7 +26,7 @@ export class QcFlagDetailsForDataPassModel extends QcFlagDetailsModel { * @param {object} parameters parameters for the model * @param {number} [parameters.id] QC flag id * @param {number} [parameters.dataPassId] data pass id - * @param {function} onDeleteSuccess callback in case the flag is successfully deleted + * @param {Function} onDeleteSuccess callback in case the flag is successfully deleted */ constructor( { id, dataPassId }, diff --git a/lib/public/views/QcFlags/details/forSimulationPass/QcFlagDetailsForSimulationPassModel.js b/lib/public/views/QcFlags/details/forSimulationPass/QcFlagDetailsForSimulationPassModel.js index 6b91658c57..dca82b0eab 100644 --- a/lib/public/views/QcFlags/details/forSimulationPass/QcFlagDetailsForSimulationPassModel.js +++ b/lib/public/views/QcFlags/details/forSimulationPass/QcFlagDetailsForSimulationPassModel.js @@ -26,7 +26,7 @@ export class QcFlagDetailsForSimulationPassModel extends QcFlagDetailsModel { * @param {object} parameters parameters for the model * @param {number} [parameters.id] QC flag id * @param {number} parameters.simulationPassId simulation pass id - * @param {function} onDeleteSuccess callback in case the flag is successfully deleted + * @param {Function} onDeleteSuccess callback in case the flag is successfully deleted */ constructor( { id, simulationPassId }, diff --git a/lib/public/views/Runs/Details/RunDetailsModel.js b/lib/public/views/Runs/Details/RunDetailsModel.js index e175d38d99..4eb150bd62 100644 --- a/lib/public/views/Runs/Details/RunDetailsModel.js +++ b/lib/public/views/Runs/Details/RunDetailsModel.js @@ -290,7 +290,7 @@ export class RunDetailsModel extends Observable { /** * Wrap the call to a function that fetch runs and update the model with the received data * - * @param {function} fetchRuns the function that actually fetch runs + * @param {Function} fetchRuns the function that actually fetch runs * @return {Promise} resolves once the runs are fetched and the model has been updated accordingly * @private */ diff --git a/lib/public/views/Runs/Overview/RunsWithQcModel.js b/lib/public/views/Runs/Overview/RunsWithQcModel.js index 5b77d1325e..94c340bbc7 100644 --- a/lib/public/views/Runs/Overview/RunsWithQcModel.js +++ b/lib/public/views/Runs/Overview/RunsWithQcModel.js @@ -138,7 +138,7 @@ export class RunsWithQcModel extends RunsOverviewModel { * Build and register a detectors observable with optional filtering logic. * * @param {ObservableData|ObservableData[]} [sourceOrSources=rctDetectorsProvider.qc$] detector source(s) - * @param {function} [filterDetectors=(detectors) => detectors] callback used to filter detectors on success + * @param {Function} [filterDetectors=(detectors) => detectors] callback used to filter detectors on success * @return {ObservableData>} detector observable */ _setDetectorsObservable(sourceOrSources = rctDetectorsProvider.qc$, filterDetectors = (detectors) => detectors) { @@ -151,7 +151,7 @@ export class RunsWithQcModel extends RunsOverviewModel { * Create a detectors observable from one or multiple sources. * * @param {ObservableData|ObservableData[]} sourceOrSources detector source(s) - * @param {function} filterDetectors callback used to filter detectors on success + * @param {Function} filterDetectors callback used to filter detectors on success * @return {ObservableData>} detector observable */ _buildDetectorsObservable(sourceOrSources, filterDetectors) { diff --git a/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js b/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js index fd847389f5..592f59f322 100644 --- a/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js +++ b/lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js @@ -58,7 +58,7 @@ const getRowClasses = (run) => isRunNotSubjectToQc(run) ? '.danger' : null; * if it's skimmable already, badge with this information is rendered instead * * @param {DataPass} dataPass data pass - * @param {function} onclick onclick action + * @param {Function} onclick onclick action * @param {RemoteData} requestResult remote data of result of request for marking data pass as skimmable * @return {Component|null} badge or button */ diff --git a/lib/public/views/Statistics/charts/detectorsEfficienciesComponent.js b/lib/public/views/Statistics/charts/detectorsEfficienciesComponent.js index c4c2a1077c..ab8bf37023 100644 --- a/lib/public/views/Statistics/charts/detectorsEfficienciesComponent.js +++ b/lib/public/views/Statistics/charts/detectorsEfficienciesComponent.js @@ -24,7 +24,7 @@ import { centeredComponent } from '../../../components/common/centeredComponent. * @param {boolean} net true if the efficiencies are net efficiencies * @param {string[]} detectors the list of detectors names for which data must be displayed * @param {string[]} colors the list of colors to apply to the detectors - * @param {function} [onPointHover] function called when a point is hovered + * @param {Function} [onPointHover] function called when a point is hovered * @return {Component} the resulting component */ export const detectorsEfficienciesComponent = (detectorEfficiencies, net, detectors, colors, onPointHover) => { diff --git a/lib/public/views/Statistics/charts/efficiencyChartComponent.js b/lib/public/views/Statistics/charts/efficiencyChartComponent.js index 87264361d9..333832847d 100644 --- a/lib/public/views/Statistics/charts/efficiencyChartComponent.js +++ b/lib/public/views/Statistics/charts/efficiencyChartComponent.js @@ -24,7 +24,7 @@ import { formatPercentage } from '../../../utilities/formatting/formatPercentage * Return the efficiency chart component for a given fill statistics * * @param {LhcFillStatistics[]} statistics the statistics to represent - * @param {function} [onPointHover] function called when a point is hovered + * @param {Function} [onPointHover] function called when a point is hovered * @param {string} [periodLabel] if it applies, the label of the currently selected period * @return {Component} the resulting component */ diff --git a/lib/public/views/Statistics/charts/meanRunDurationChartComponent.js b/lib/public/views/Statistics/charts/meanRunDurationChartComponent.js index 1eb7814d0f..8ba8ed0f82 100644 --- a/lib/public/views/Statistics/charts/meanRunDurationChartComponent.js +++ b/lib/public/views/Statistics/charts/meanRunDurationChartComponent.js @@ -19,7 +19,7 @@ import { formatDuration } from '../../../utilities/formatting/formatDuration.mjs * Return the efficiency chart component for a given fill statistics * * @param {LhcFillStatistics[]} statistics the statistics to represent - * @param {function} [onPointHover] function called when a point is hovered + * @param {Function} [onPointHover] function called when a point is hovered * @return {Component} the resulting component */ export const meanRunDurationChartComponent = (statistics, onPointHover) => lineChartComponent( diff --git a/lib/public/views/Statistics/charts/weeklyDataSizeChartComponent.js b/lib/public/views/Statistics/charts/weeklyDataSizeChartComponent.js index 3707770e3a..83cc3d8b8e 100644 --- a/lib/public/views/Statistics/charts/weeklyDataSizeChartComponent.js +++ b/lib/public/views/Statistics/charts/weeklyDataSizeChartComponent.js @@ -25,7 +25,7 @@ const formatDataSize = (dataSize) => dataSize; * Return the efficiency chart component for a given fill statistics * * @param {WeeklyDataSize[]} weeklyDataSize the weekly data size to represent - * @param {function} [onPointHover] function called when a point is hovered + * @param {Function} [onPointHover] function called when a point is hovered * @return {Component} the resulting component */ export const weeklyDataSizeChartComponent = (weeklyDataSize, onPointHover) => lineChartComponent( diff --git a/lib/public/views/Tags/Create/TagCreationModel.js b/lib/public/views/Tags/Create/TagCreationModel.js index c348a9d120..50aa3d2212 100644 --- a/lib/public/views/Tags/Create/TagCreationModel.js +++ b/lib/public/views/Tags/Create/TagCreationModel.js @@ -19,7 +19,7 @@ import { CreationModel } from '../../../models/CreationModel.js'; export class TagCreationModel extends CreationModel { /** * Constructor - * @param {function} onCreationSuccess function called when the tag creation is successful, passing the created tag ID as parameter + * @param {Function} onCreationSuccess function called when the tag creation is successful, passing the created tag ID as parameter */ constructor(onCreationSuccess) { super('/api/tags', ({ id }) => onCreationSuccess(id)); diff --git a/lib/server/gRPC/bindGRPCController.js b/lib/server/gRPC/bindGRPCController.js index e6179afafe..27a68f3665 100644 --- a/lib/server/gRPC/bindGRPCController.js +++ b/lib/server/gRPC/bindGRPCController.js @@ -23,10 +23,10 @@ const { extractFieldsConverters } = require('./services/protoParsing/extractFiel * and adapt it, call the controller handler with the adapted request, adapt the result and return it in order for it to be provided as * parameter to gRPC js callback function. * - * @param {function} controllerHandler the controller handler corresponding to the gRPC service + * @param {Function} controllerHandler the controller handler corresponding to the gRPC service * @param {FieldConverter[]} requestFieldsConverters the list of request field converters * @param {FieldConverter[]} responseFieldsConverters the list of response field converters - * @return {function} the function's adapter + * @return {Function} the function's adapter */ const adaptGrpcServiceMethodToControllerHandler = ( controllerHandler, @@ -41,7 +41,7 @@ const adaptGrpcServiceMethodToControllerHandler = ( * * @param {object} tree the tree to update (will be updated in place) * @param {string[]} leafPath path of the leaf to update in the tree - * @param {function} mapFunction the mapping function to apply + * @param {Function} mapFunction the mapping function to apply * @return {void} */ const mapTreeLeaves = (tree, leafPath, mapFunction) => { @@ -109,7 +109,7 @@ const adaptGrpcServiceMethodToControllerHandler = ( * * @param {Object} serviceDefinition the definition of the service to bind * @param {Object} implementation the controller instance to use as implementation - * @param {Array} preProcessors a list of functions (or class containing a `process` function) that need to be run + * @param {Array} preProcessors a list of functions (or class containing a `process` function) that need to be run * against the call before the implementation * @param {Map} absoluteMessagesDefinitions the absolute messages definitions * @return {Object} the adapter to provide as gRPC service implementation diff --git a/lib/server/gRPC/services/protoParsing/extractFieldsConverters.js b/lib/server/gRPC/services/protoParsing/extractFieldsConverters.js index 31c049282c..5d48c7449f 100644 --- a/lib/server/gRPC/services/protoParsing/extractFieldsConverters.js +++ b/lib/server/gRPC/services/protoParsing/extractFieldsConverters.js @@ -52,8 +52,8 @@ const getCloserMessageDefinition = (messageName, context, absoluteMessageDefinit * path will be `['a', 'b'] and the converter will store how to convert from this enum value to js and the other way around * * @property {string[]} path array containing the list of fields from the root message up to the field name - * @property {function} toJs function called with the gRPC value to convert it to JS value - * @property {function} fromJs function called with the JS value to convert it to gRPC value + * @property {Function} toJs function called with the gRPC value to convert it to JS value + * @property {Function} fromJs function called with the JS value to convert it to gRPC value */ /** diff --git a/lib/server/kafka/InfologgerKafkaLogCreator.js b/lib/server/kafka/InfologgerKafkaLogCreator.js index 7cfcbb39cd..5c763a9695 100644 --- a/lib/server/kafka/InfologgerKafkaLogCreator.js +++ b/lib/server/kafka/InfologgerKafkaLogCreator.js @@ -17,7 +17,7 @@ const { logLevel } = require('kafkajs'); /** * Kafka log creator to send messages to infologger * - * @return {function} log creator ready to be used for infologger + * @return {Function} log creator ready to be used for infologger * @constructor */ exports.InfologgerKafkaLogCreator = () => { diff --git a/lib/server/services/ScheduledProcessesManager.js b/lib/server/services/ScheduledProcessesManager.js index d27febed65..2cacc511eb 100644 --- a/lib/server/services/ScheduledProcessesManager.js +++ b/lib/server/services/ScheduledProcessesManager.js @@ -26,7 +26,7 @@ class ScheduledProcessesManager { /** * Schedule a callback * - * @param {function} callback the callback to schedule + * @param {Function} callback the callback to schedule * @param {object} [configuration] the scheduling configuration * @param {number} [configuration.every] if specified, defines the amount of time (in ms) that should elapse between callback calls. If not * specified (and only if not specified), the callback will be called only once diff --git a/lib/server/services/detector/getAllDetectors.js b/lib/server/services/detector/getAllDetectors.js index 1133515c22..9901c942e5 100644 --- a/lib/server/services/detector/getAllDetectors.js +++ b/lib/server/services/detector/getAllDetectors.js @@ -17,7 +17,7 @@ const { utilities: { QueryBuilder } } = require('../../../database'); /** * Return the list of all the available detectors * - * @param {function|null} qbConfiguration function called with the detectors query builder as parameter to add specific configuration to the + * @param {Function|null} qbConfiguration function called with the detectors query builder as parameter to add specific configuration to the * query * @returns {Promise} Promise resolving with the list of detectors */ diff --git a/lib/server/services/detector/getDetector.js b/lib/server/services/detector/getDetector.js index f50b0cdb1c..e4c0b891ca 100644 --- a/lib/server/services/detector/getDetector.js +++ b/lib/server/services/detector/getDetector.js @@ -25,7 +25,7 @@ const { BadParameterError } = require('../../errors/BadParameterError.js'); * Find and return a detector model by its name * * @param {DetectorIdentifier} detectorIdentifier the identifier of the detector to find - * @param {function|null} qbConfiguration function called with the detector find query builder as parameter to add specific configuration to the + * @param {Function|null} qbConfiguration function called with the detector find query builder as parameter to add specific configuration to the * query * @return {Promise} the detector found or null */ diff --git a/lib/server/services/environment/getAllEnvironments.js b/lib/server/services/environment/getAllEnvironments.js index e4205ac7e8..33b2b1c7f3 100644 --- a/lib/server/services/environment/getAllEnvironments.js +++ b/lib/server/services/environment/getAllEnvironments.js @@ -17,7 +17,7 @@ const { repositories: { EnvironmentRepository }, utilities: { QueryBuilder } } = * Return all the environments that belongs to the given list of ids (not existing ids are ignored) * * @param {string[]} ids the list of ids for which environments must be retrieved - * @param {function|null} [qbConfiguration] function called with the environments find query builder + * @param {Function|null} [qbConfiguration] function called with the environments find query builder * as parameter to add specific configuration to the query * @returns {Promise} Promise resolving with the list of environments */ diff --git a/lib/server/services/environment/getEnvironment.js b/lib/server/services/environment/getEnvironment.js index e2aaaf2ee8..607d323228 100644 --- a/lib/server/services/environment/getEnvironment.js +++ b/lib/server/services/environment/getEnvironment.js @@ -18,7 +18,7 @@ const EnvironmentRepository = require('../../../database/repositories/Environmen * Find and return an environment model by its id * * @param {string} environmentId the id of the environment to find - * @param {function|null} qbConfiguration function called with the environment find query builder as parameter to add specific configuration to + * @param {Function|null} qbConfiguration function called with the environment find query builder as parameter to add specific configuration to * the query * @return {Promise} the environment found or null */ diff --git a/lib/server/services/environment/getEnvironmentOrFail.js b/lib/server/services/environment/getEnvironmentOrFail.js index a71e0da5ab..bc4a372158 100644 --- a/lib/server/services/environment/getEnvironmentOrFail.js +++ b/lib/server/services/environment/getEnvironmentOrFail.js @@ -18,7 +18,7 @@ const { NotFoundError } = require('../../errors/NotFoundError.js'); * Find an environment model by its id and reject with a NotFoundError if none is found * * @param {string} environmentId the id of the environment to find - * @param {function} [qbConfiguration] function called with the environment find query builder as parameter to add specific configuration to + * @param {Function} [qbConfiguration] function called with the environment find query builder as parameter to add specific configuration to * the query * @return {Promise} resolve with the environment model found or reject with a NotFoundError */ diff --git a/lib/server/services/environmentHistoryItem/getEnvironmentHistoryItem.js b/lib/server/services/environmentHistoryItem/getEnvironmentHistoryItem.js index 4666ccc404..b7f94a367e 100644 --- a/lib/server/services/environmentHistoryItem/getEnvironmentHistoryItem.js +++ b/lib/server/services/environmentHistoryItem/getEnvironmentHistoryItem.js @@ -18,7 +18,7 @@ const EnvironmentHistoryItemRepository = require('../../../database/repositories * Find and return an environment's history item model by its id * * @param {number} environmentHistoryItemId the id of the environment's history to find - * @param {function|null} qbConfiguration function called with the environment's history item find query builder as parameter to add specific + * @param {Function|null} qbConfiguration function called with the environment's history item find query builder as parameter to add specific * configuration to the query * @return {Promise} the environment's history item found or null */ diff --git a/lib/server/services/flp/getFlpRole.js b/lib/server/services/flp/getFlpRole.js index 974b12060b..8fb0c5e438 100644 --- a/lib/server/services/flp/getFlpRole.js +++ b/lib/server/services/flp/getFlpRole.js @@ -19,7 +19,7 @@ const { BadParameterError } = require('../../errors/BadParameterError.js'); * Find and return an FLP role model by its id * * @param {FlpRoleIdentifier} flpRoleIdentifier the identifier of the FLP role to find - * @param {function|null} qbConfiguration function called with the FLP role find query builder as parameter to add specific configuration to the + * @param {Function|null} qbConfiguration function called with the FLP role find query builder as parameter to add specific configuration to the * query * @return {Promise} the FLP role found or null */ diff --git a/lib/server/services/lhcFill/getLastLhcFill.js b/lib/server/services/lhcFill/getLastLhcFill.js index 954b8d6685..2ec0558826 100644 --- a/lib/server/services/lhcFill/getLastLhcFill.js +++ b/lib/server/services/lhcFill/getLastLhcFill.js @@ -17,7 +17,7 @@ const { LhcFillRepository } = require('../../../database/repositories/index.js') /** * Find and return an LHC fill model by its fill number * - * @param {function|null} qbConfiguration function called with the fill find query builder as parameter to add specific configuration to + * @param {Function|null} qbConfiguration function called with the fill find query builder as parameter to add specific configuration to * the query * @return {Promise} the fill found or null */ diff --git a/lib/server/services/lhcFill/getLhcFill.js b/lib/server/services/lhcFill/getLhcFill.js index d8b587c10a..2a69933f73 100644 --- a/lib/server/services/lhcFill/getLhcFill.js +++ b/lib/server/services/lhcFill/getLhcFill.js @@ -18,7 +18,7 @@ const { LhcFillRepository } = require('../../../database/repositories/index.js') * Find and return an LHC fill model by its fill number * * @param {number} fillNumber the fill number of the fill to fetch - * @param {function|null} qbConfiguration function called with the fill find query builder as parameter to add specific configuration to + * @param {Function|null} qbConfiguration function called with the fill find query builder as parameter to add specific configuration to * the query * @return {Promise} the fill found or null */ diff --git a/lib/server/services/lhcPeriod/getLhcPeriod.js b/lib/server/services/lhcPeriod/getLhcPeriod.js index 7c9ac2c2ba..a97ab73178 100644 --- a/lib/server/services/lhcPeriod/getLhcPeriod.js +++ b/lib/server/services/lhcPeriod/getLhcPeriod.js @@ -18,7 +18,7 @@ const LhcPeriodRepository = require('../../../database/repositories/LhcPeriodRep * Find and return a LHC period model by its id * * @param {number} lhcPeriodId the id of the LHC period to find - * @param {function|null} qbConfiguration function called with the log find query builder as parameter to add specific configuration to the query + * @param {Function|null} qbConfiguration function called with the log find query builder as parameter to add specific configuration to the query * @return {Promise} the LHC period found or null */ exports.getLhcPeriod = (lhcPeriodId, qbConfiguration = null) => { diff --git a/lib/server/services/log/getLog.js b/lib/server/services/log/getLog.js index 5b075016e7..15e2515b35 100644 --- a/lib/server/services/log/getLog.js +++ b/lib/server/services/log/getLog.js @@ -18,7 +18,7 @@ const LogRepository = require('../../../database/repositories/LogRepository.js') * Find and return a log model by its id * * @param {number} logId the id of the log to find - * @param {function|null} qbConfiguration function called with the log find query builder as parameter to add specific configuration to the query + * @param {Function|null} qbConfiguration function called with the log find query builder as parameter to add specific configuration to the query * @return {Promise} the log found or null */ exports.getLog = (logId, qbConfiguration = null) => { diff --git a/lib/server/services/run/getRun.js b/lib/server/services/run/getRun.js index 343e7da7b9..97c293c18e 100644 --- a/lib/server/services/run/getRun.js +++ b/lib/server/services/run/getRun.js @@ -19,7 +19,7 @@ const RunRepository = require('../../../database/repositories/RunRepository.js') * Find and return a run model by its run number or id * * @param {RunIdentifier} identifier the criteria to find run - * @param {function|null} qbConfiguration function called with the run find query builder as parameter to add specific configuration to the + * @param {Function|null} qbConfiguration function called with the run find query builder as parameter to add specific configuration to the * query * @return {Promise} the run found or null */ diff --git a/lib/server/services/run/getRunOrFail.js b/lib/server/services/run/getRunOrFail.js index 5d4dd12187..7bc8a7a69b 100644 --- a/lib/server/services/run/getRunOrFail.js +++ b/lib/server/services/run/getRunOrFail.js @@ -18,7 +18,7 @@ const { NotFoundError } = require('../../errors/NotFoundError.js'); * Find a run model by its run number or id and reject with a NotFoundError if none is found * * @param {RunIdentifier} identifier the identifier of the run to find - * @param {function|null} qbConfiguration function called with the run find query builder as parameter to add specific configuration to the + * @param {Function|null} qbConfiguration function called with the run find query builder as parameter to add specific configuration to the * query * @param {Object} [transaction] optionally the transaction in which one the log creation is executed * @return {Promise} resolve with the run model found or reject with a NotFoundError diff --git a/lib/server/services/runDetector/getRunDetector.js b/lib/server/services/runDetector/getRunDetector.js index eddc3c0af3..edb8c7cae2 100644 --- a/lib/server/services/runDetector/getRunDetector.js +++ b/lib/server/services/runDetector/getRunDetector.js @@ -19,7 +19,7 @@ const RunDetectorsRepository = require('../../../database/repositories/RunDetect * * @param {number} runNumber the runNumber of the run to find * @param {number} detectorId the id of the detector to find - * @param {function|null} [qbConfiguration=null] function called with the run detector find query builder as parameter to add + * @param {Function|null} [qbConfiguration=null] function called with the run detector find query builder as parameter to add * specific configuration to the query * @return {Promise} the run detector found or null */ diff --git a/lib/server/services/runDetector/getRunDetectorOrFail.js b/lib/server/services/runDetector/getRunDetectorOrFail.js index 9bf8fce5b3..e4b5ee3149 100644 --- a/lib/server/services/runDetector/getRunDetectorOrFail.js +++ b/lib/server/services/runDetector/getRunDetectorOrFail.js @@ -19,7 +19,7 @@ const { NotFoundError } = require('../../errors/NotFoundError.js'); * * @param {number} runNumber the run number of the run detector to find * @param {number} detectorId the id of the run detector to find - * @param {function|null} [qbConfiguration=null] function called with the run detector find query builder as parameter to add + * @param {Function|null} [qbConfiguration=null] function called with the run detector find query builder as parameter to add * specific configuration to the query * @return {Promise} resolve with the run detector model found or reject with a NotFoundError */ diff --git a/lib/server/services/runType/getRunType.js b/lib/server/services/runType/getRunType.js index cfb2bb59f4..0d6651298b 100644 --- a/lib/server/services/runType/getRunType.js +++ b/lib/server/services/runType/getRunType.js @@ -25,7 +25,7 @@ const { BadParameterError } = require('../../errors/BadParameterError.js'); * Find and return a run type model by its name or id * * @param {RunTypeIdentifier} identifier the criteria to find run type - * @param {function|null} qbConfiguration function called with the run type find query builder as parameter to add specific configuration to the + * @param {Function|null} qbConfiguration function called with the run type find query builder as parameter to add specific configuration to the * query * @return {Promise} the run type found or null */ diff --git a/lib/server/services/tag/getTagsByText.js b/lib/server/services/tag/getTagsByText.js index 0a90a51f78..124fc5540a 100644 --- a/lib/server/services/tag/getTagsByText.js +++ b/lib/server/services/tag/getTagsByText.js @@ -17,7 +17,7 @@ const { repositories: { TagRepository }, utilities: { QueryBuilder } } = require * Return all the tags that belongs to the given list of text (not existing texts are ignored) * * @param {string[]} texts the list of texts for which tags must be retrieved - * @param {function|null} [qbConfiguration] function called with the tags find query builder as parameter to add specific configuration to the + * @param {Function|null} [qbConfiguration] function called with the tags find query builder as parameter to add specific configuration to the * query * @returns {Promise} Promise resolving with the list of tags */ diff --git a/lib/server/services/user/getUser.js b/lib/server/services/user/getUser.js index 0cf3f4f7f2..81c46fae90 100644 --- a/lib/server/services/user/getUser.js +++ b/lib/server/services/user/getUser.js @@ -19,7 +19,7 @@ const { BadParameterError } = require('../../errors/BadParameterError.js'); * Find and return a user model by its id * * @param {UserIdentifier} identifier the identifier of the user to find - * @param {function|null} qbConfiguration function called with the user find query builder as parameter to add specific configuration to + * @param {Function|null} qbConfiguration function called with the user find query builder as parameter to add specific configuration to * the query * @return {Promise} the user found or null */ diff --git a/lib/usecases/run/GetAllRunsUseCase.js b/lib/usecases/run/GetAllRunsUseCase.js index 3014a8e548..1d0c6cf1c2 100644 --- a/lib/usecases/run/GetAllRunsUseCase.js +++ b/lib/usecases/run/GetAllRunsUseCase.js @@ -186,7 +186,7 @@ class GetAllRunsUseCase { if (aliceL3Current !== undefined) { /** * The alice l3 current computed from its absolute value and polarity - * @param {function} literal function to create an object representing a database literal expression + * @param {Function} literal function to create an object representing a database literal expression * @return {Object} the object representing the column */ const computedColumn = ({ literal }) => @@ -196,7 +196,7 @@ class GetAllRunsUseCase { if (aliceDipoleCurrent !== undefined) { /** * The alice dipole current computed from its absolute value and polarity - * @param {function} literal function to create an object representing a database literal expression + * @param {Function} literal function to create an object representing a database literal expression * @return {Object} the object representing the column */ const computedColumn = ({ literal }) => @@ -211,7 +211,7 @@ class GetAllRunsUseCase { /** * The computed mu of inelastic interaction rate * - * @param {function} literal function to create an object representing a database literal expression + * @param {Function} literal function to create an object representing a database literal expression * @return {Object} the object representing the column */ const computedColumn = ({ literal }) => @@ -243,9 +243,9 @@ class GetAllRunsUseCase { /** * The computed duration column is based on trigger-start and trigger-end, using current timestamp as trigger-end if it is null * @param {object} object object containing functions to create database objects - * @param {function} object.fn function to create an object representing a database function - * @param {function} object.col function to create an object representing a database column - * @param {function} object.literal function to create an object representing a database literal expression + * @param {Function} object.fn function to create an object representing a database function + * @param {Function} object.col function to create an object representing a database column + * @param {Function} object.literal function to create an object representing a database literal expression * * @return {Object} the object representing the column */ diff --git a/lib/utilities/cacheAsyncFunction.js b/lib/utilities/cacheAsyncFunction.js index 500dafc9f4..765107f807 100644 --- a/lib/utilities/cacheAsyncFunction.js +++ b/lib/utilities/cacheAsyncFunction.js @@ -21,11 +21,11 @@ const DEFAULT_FUNCTION_CACHE_SIZE = 1000; * Wrap a given function calls in an in-memory cache, to not call it again when trying to call it with the same parameters * * @template {(function(*): Promise<*>)} F the signature of the function to cache - * @param {function} toCache the function to wrap in cache system + * @param {Function} toCache the function to wrap in cache system * @param {Object} [configuration={}] the caching configuration - * @param {function} [configuration.argsToCacheKey] method applied on arguments to obtain a unique cache key - * @param {function} [configuration.cacheSize] maximum amount of functions called to cache - * @return {function} the cached function + * @param {Function} [configuration.argsToCacheKey] method applied on arguments to obtain a unique cache key + * @param {Function} [configuration.cacheSize] maximum amount of functions called to cache + * @return {Function} the cached function */ exports.cacheAsyncFunction = (toCache, configuration) => { const { From 3f139edbfcb64d3cf8ce49c8ab323844f31b9256 Mon Sep 17 00:00:00 2001 From: George Raduta Date: Thu, 15 Oct 2026 09:19:24 +0200 Subject: [PATCH 3/5] Fix eslint config --- eslint.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eslint.config.js b/eslint.config.js index 42dede4cd2..dc7a3137e6 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -33,7 +33,6 @@ module.exports = [ pluginJs.configs.recommended, { plugins: { - jsdoc, '@stylistic/js': stylisticJs, }, languageOptions: { @@ -114,6 +113,8 @@ module.exports = [ 'jsdoc/no-defaults': ['off'], // 'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }], 'jsdoc/tag-lines': ['off'], // TODO with above 0 or 1 + 'jsdoc/reject-any-type': ['off'], // TODO + 'jsdoc/reject-function-type': ['off'], // TODO '@stylistic/js/array-bracket-newline': [ 'error', { From 42771102cd9af6f85147178a9220be8bbaf0ad4a Mon Sep 17 00:00:00 2001 From: George Raduta Date: Thu, 15 Oct 2026 09:19:33 +0200 Subject: [PATCH 4/5] Multiple eslint fixes and docs updates --- lib/application.js | 2 +- .../Filters/RunsFilter/MagnetsFilteringModel.js | 4 ++-- .../RunsFilter/MultiCompositionFilterModel.js | 13 +++++++------ .../components/Filters/common/FilteringModel.js | 2 +- .../common/filters/ProcessedTextInputModel.js | 5 +++-- .../Filters/common/filters/TextTokensFilterModel.js | 4 ++-- .../Filters/common/filters/ToggleFilterModel.js | 2 +- .../Filters/common/filters/textInputFilter.js | 2 +- .../Filters/common/filters/toggleFilter.js | 3 ++- .../components/Pagination/paginationComponent.js | 2 +- .../components/common/navigation/frontLinks.js | 2 +- lib/public/components/modal/ModalHandler.js | 2 +- .../components/qcFlags/qcFlagOverviewPanelLink.js | 2 +- lib/public/models/FilterableOverviewPageModel.js | 4 +--- lib/public/utilities/mergeRemoteData.js | 2 +- .../ActiveColumns/environmentsActiveColumns.js | 9 ++++++--- .../LhcFills/ActiveColumns/lhcFillsActiveColumns.js | 6 ++++-- .../views/Logs/ActiveColumns/logsActiveColumns.js | 8 ++++++++ .../views/QcFlags/details/qcFlagDetailsComponent.js | 4 ++-- .../views/Runs/ActiveColumns/runsActiveColumns.js | 13 +++++++++---- .../format/formatDistinctLhcBeamEnergies.js | 6 +++--- lib/server/Loggers/FilterLogger.js | 9 ++++++--- lib/server/services/gaq/GaqDetectorsService.js | 2 +- 23 files changed, 65 insertions(+), 43 deletions(-) diff --git a/lib/application.js b/lib/application.js index 70a4ac6839..343425c0ab 100644 --- a/lib/application.js +++ b/lib/application.js @@ -156,7 +156,7 @@ class BookkeepingApplication { } /** - * Housekeeping method, it wraps @see handleLostRunsAndEnvironments and logs its results + * Housekeeping method, it wraps {@see handleLostRunsAndEnvironments} and logs its results * * @param {Agent} httpAgent agent to be used by the HTTP client * @return {Promise} promise diff --git a/lib/public/components/Filters/RunsFilter/MagnetsFilteringModel.js b/lib/public/components/Filters/RunsFilter/MagnetsFilteringModel.js index 9e38dfbbf3..ec602b634d 100644 --- a/lib/public/components/Filters/RunsFilter/MagnetsFilteringModel.js +++ b/lib/public/components/Filters/RunsFilter/MagnetsFilteringModel.js @@ -17,7 +17,7 @@ import { ObservableBasedSelectionDropdownModel } from '../../detector/Observable * Return the option value corresponding to a given magnets current level * * @param {MagnetsCurrentLevels} currentLevels the current levels - * @return {object} the option's value + * @return {{value: string}} the option's value */ const magnetsCurrentLevelsToKey = ({ l3, dipole }) => ({ value: `${l3}kA/${dipole}kA` }); @@ -25,7 +25,7 @@ const magnetsCurrentLevelsToKey = ({ l3, dipole }) => ({ value: `${l3}kA/${dipol * Return the magnets current lever based on a key string * * @param {object} value string containing the current levels - * @return {MagnetsCurrentLevels} + * @return {MagnetsCurrentLevels} the magnets current levels */ const keyToMagnetsCurrentLevels = (value) => { const [l3, dipole] = value.split('/').map((str) => parseFloat(str.slice(0, -2))); diff --git a/lib/public/components/Filters/RunsFilter/MultiCompositionFilterModel.js b/lib/public/components/Filters/RunsFilter/MultiCompositionFilterModel.js index 80aafc8644..c2e665b0ad 100644 --- a/lib/public/components/Filters/RunsFilter/MultiCompositionFilterModel.js +++ b/lib/public/components/Filters/RunsFilter/MultiCompositionFilterModel.js @@ -33,10 +33,11 @@ export class MultiCompositionFilterModel extends FilterModel { } /** - * Return a subfilter by key + * Add new subfilter * - * @param {string} key the key of the subfilter - * @return {FilterModel} the subfilter + * @param {string} key key of the subfilter + * @param {FilterModel} filterModel the subfilter + * @return {void} */ putFilter(key, filterModel) { if (key in this._filters) { @@ -48,10 +49,10 @@ export class MultiCompositionFilterModel extends FilterModel { } /** - * Add new subfilter + * Return a subfilter by key * - * @param {string} key key of the subfilter - * @param {FilterModel} filter the the subfilter + * @param {string} key the key of the subfilter + * @return {FilterModel} the subfilter */ getFilter(key) { if (!(key in this._filters)) { diff --git a/lib/public/components/Filters/common/FilteringModel.js b/lib/public/components/Filters/common/FilteringModel.js index 2f196d4f7c..1d47ba1e5f 100644 --- a/lib/public/components/Filters/common/FilteringModel.js +++ b/lib/public/components/Filters/common/FilteringModel.js @@ -228,7 +228,7 @@ export class FilteringModel extends Observable { /** * Sets all filters using their normalized setters * - * @param {object} filters an object containing normalized filter values * @returns {object} an object containging the uknown filters and the filters that failed to parse */ _setFilters(filters) { diff --git a/lib/public/components/Filters/common/filters/ProcessedTextInputModel.js b/lib/public/components/Filters/common/filters/ProcessedTextInputModel.js index d9488cd8f1..752308284b 100644 --- a/lib/public/components/Filters/common/filters/ProcessedTextInputModel.js +++ b/lib/public/components/Filters/common/filters/ProcessedTextInputModel.js @@ -109,8 +109,9 @@ export class ProcessedTextInputModel extends Observable { /** * Sets filters from normalised values. * - * @param {string} value The value used to set the parsed value - * @param {string} raw The value used to set the raw value + * @param {object} normalized the normalized values + * @param {string} normalized.value The value used to set the parsed value + * @param {string} normalized.raw The value used to set the raw value * @return {void} * @abstract */ diff --git a/lib/public/components/Filters/common/filters/TextTokensFilterModel.js b/lib/public/components/Filters/common/filters/TextTokensFilterModel.js index 450877df99..e4c6736c8f 100644 --- a/lib/public/components/Filters/common/filters/TextTokensFilterModel.js +++ b/lib/public/components/Filters/common/filters/TextTokensFilterModel.js @@ -15,8 +15,8 @@ import { RawTextFilterModel } from './RawTextFilterModel.js'; const TOKENS_DELIMITER = ','; /** - * Model which accept string input and treats it as sequence of tokens, which processed in regard to given configuration. @see - * TextTokensFilterModel#constructor + * Model which accept string input and treats it as sequence of tokens, which processed in regard to given configuration. {@see + * TextTokensFilterModel#constructor} */ export class TextTokensFilterModel extends RawTextFilterModel { /** diff --git a/lib/public/components/Filters/common/filters/ToggleFilterModel.js b/lib/public/components/Filters/common/filters/ToggleFilterModel.js index ee22703852..eec2875887 100644 --- a/lib/public/components/Filters/common/filters/ToggleFilterModel.js +++ b/lib/public/components/Filters/common/filters/ToggleFilterModel.js @@ -62,7 +62,7 @@ export class ToggleFilterModel extends SelectionModel { /** * Returns if the toggle filter is considered 'inactive' * - * @return {boolean} + * @return {boolean} true if the filter is inactive */ get isInactive() { if (this._defaultIsInactive) { diff --git a/lib/public/components/Filters/common/filters/textInputFilter.js b/lib/public/components/Filters/common/filters/textInputFilter.js index 27a36f112d..d417b38d85 100644 --- a/lib/public/components/Filters/common/filters/textInputFilter.js +++ b/lib/public/components/Filters/common/filters/textInputFilter.js @@ -19,7 +19,7 @@ import { rawTextFilter } from './rawTextFilter.js'; * @param {FilteringModel} filteringModel the page's filteringModel * @param {string} key the identifier to serve as css selector and to fetch the correct filter from the filteringModel * @param {string} placeholder placeholder text for the input element - * @param {string} width class that determines the width of the input + * @param {string} [widthClass='w-100'] class that determines the width of the input * @return {Component} the filter */ export const textInputFilter = (filteringModel, key, placeholder, widthClass = 'w-100') => diff --git a/lib/public/components/Filters/common/filters/toggleFilter.js b/lib/public/components/Filters/common/filters/toggleFilter.js index ac37063779..62346de12d 100644 --- a/lib/public/components/Filters/common/filters/toggleFilter.js +++ b/lib/public/components/Filters/common/filters/toggleFilter.js @@ -19,7 +19,8 @@ import { radioButton } from '../../../common/form/inputs/radioButton.js'; * Display a toggle switch or radio buttons for toggle filters * * @param {ToggleFilterModel} toggleFilterModel a ToggleFilterModel - * @param {name} toggleFilterModel the name used to identify and label the filter + * @param {string} name the name used to identify and label the filter + * @param {string} id the id of the switch input * @param {boolean} radioButtonMode define whether or not to return radio buttons or a switch. * @returns {Component} the toggle switch */ diff --git a/lib/public/components/Pagination/paginationComponent.js b/lib/public/components/Pagination/paginationComponent.js index 83ec814a04..4d3fb857ae 100644 --- a/lib/public/components/Pagination/paginationComponent.js +++ b/lib/public/components/Pagination/paginationComponent.js @@ -20,7 +20,7 @@ let ticking = false; /** * Switcher of pages * @param {number} scrollPos Throttled scroll position of document - * @param {function} nextPageHandler Function called when switching to a new page with its index as argument + * @param {Function} nextPageHandler Function called when switching to a new page with its index as argument * @returns {void} */ function onScroll(scrollPos, nextPageHandler) { diff --git a/lib/public/components/common/navigation/frontLinks.js b/lib/public/components/common/navigation/frontLinks.js index 96cd9ce348..ca61de935f 100644 --- a/lib/public/components/common/navigation/frontLinks.js +++ b/lib/public/components/common/navigation/frontLinks.js @@ -59,7 +59,7 @@ export const frontLinks = (items, configurationExtractor, configuration) => { return empty; } - /** * @type {Component[]} */ + /** @type {Component[]} */ const linksWithSeparator = items.map((item) => { const { content, parameters, page, href, attributes } = configurationExtractor(item); diff --git a/lib/public/components/modal/ModalHandler.js b/lib/public/components/modal/ModalHandler.js index 000f8ac42c..18abf470be 100644 --- a/lib/public/components/modal/ModalHandler.js +++ b/lib/public/components/modal/ModalHandler.js @@ -17,7 +17,7 @@ export class ModalHandler { /** * Constructor - * @param {function} dismiss handler function to close the modal + * @param {Function} dismiss handler function to close the modal */ constructor(dismiss) { this._dismiss = dismiss; diff --git a/lib/public/components/qcFlags/qcFlagOverviewPanelLink.js b/lib/public/components/qcFlags/qcFlagOverviewPanelLink.js index af0af67c32..9b2c74cfab 100644 --- a/lib/public/components/qcFlags/qcFlagOverviewPanelLink.js +++ b/lib/public/components/qcFlags/qcFlagOverviewPanelLink.js @@ -22,7 +22,7 @@ import { frontLink } from '../common/navigation/frontLink.js'; * @param {number} [scope.simulationPassId] simulation pass id - exclusive with dataPassId parameter * @param {number} scope.runNumber run number * @param {number} scope.dplDetectorId DPL detector id - * @param {object} [attributes] attributes @see frontLink attributes parameter + * @param {object} [attributes] attributes {@see frontLink} attributes parameter * @return {Component} link */ export const qcFlagOverviewPanelLink = (content, { dataPassId, simulationPassId, runNumber, dplDetectorId }, attributes = {}) => { diff --git a/lib/public/models/FilterableOverviewPageModel.js b/lib/public/models/FilterableOverviewPageModel.js index b3d954e05d..b7dae1ce2f 100644 --- a/lib/public/models/FilterableOverviewPageModel.js +++ b/lib/public/models/FilterableOverviewPageModel.js @@ -44,7 +44,7 @@ export class FilterableOverviewPageModel extends OverviewPageModel { * Builds a url string from filters and a base string * * @param {string} base the base string from which the endpoint will be built - * @return {string} + * @return {string} the built endpoint */ buildRootEndpoint(base) { return buildUrl(base, { filter: this.getFilterParams() }); @@ -94,8 +94,6 @@ export class FilterableOverviewPageModel extends OverviewPageModel { /** * Apply the current filtering and update the remote data list * - * @param {boolean} now if true, filtering will be applied now without debouncing - * * @return {void} */ _applyFilters() { diff --git a/lib/public/utilities/mergeRemoteData.js b/lib/public/utilities/mergeRemoteData.js index 0513a56f5c..5c9e71b4ba 100644 --- a/lib/public/utilities/mergeRemoteData.js +++ b/lib/public/utilities/mergeRemoteData.js @@ -16,7 +16,7 @@ import { RemoteData } from '/js/src/index.js'; /** * Merge list of remote data to single remote data instance according to following rules * If at least one of them is RemoteData.failure then RemoteData.failure is returned, - * whereby payload structure depends on @see options.compressFailurePayloads, otherwise + * whereby payload structure depends on {@see options.compressFailurePayloads}, otherwise * If at least one of them is RemoteData.loading then RemoteData.loading is returned, otherwise * If at least one of them is RemoteData.notAsked then RemoteData.notAsked is returned, otherwise * RemoteData.Success with list of payloads of given remote data list with preserved order is returned diff --git a/lib/public/views/Environments/ActiveColumns/environmentsActiveColumns.js b/lib/public/views/Environments/ActiveColumns/environmentsActiveColumns.js index 1226d7f7cb..b7bb400bc1 100644 --- a/lib/public/views/Environments/ActiveColumns/environmentsActiveColumns.js +++ b/lib/public/views/Environments/ActiveColumns/environmentsActiveColumns.js @@ -60,7 +60,8 @@ export const environmentsActiveColumns = { /** * Environment IDs filter component * - * @param {EnvironmentOverviewModel} environmentOverviewModel.filteringModel the filtering model + * @param {object} environmentOverviewModel the overview model + * @param {FilteringModel} environmentOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'ids', 'e.g. CmCvjNbg, TDI59So3d...'), @@ -76,7 +77,8 @@ export const environmentsActiveColumns = { /** * Run numbers filter component * - * @param {EnvironmentOverviewModel} environmentOverviewModel.filteringModel the filtering model + * @param {object} environmentOverviewModel the overview model + * @param {FilteringModel} environmentOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'runNumbers', 'e.g. 553203, 553221, ...'), @@ -134,7 +136,8 @@ export const environmentsActiveColumns = { /** * Status history filter component * - * @param {EnvironmentOverviewModel} environmentOverviewModel.filteringModel the filtering model + * @param {object} environmentOverviewModel the overview model + * @param {FilteringModel} environmentOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'statusHistory', 'e.g. D-R-X'), diff --git a/lib/public/views/LhcFills/ActiveColumns/lhcFillsActiveColumns.js b/lib/public/views/LhcFills/ActiveColumns/lhcFillsActiveColumns.js index afc49d80f2..4abb608912 100644 --- a/lib/public/views/LhcFills/ActiveColumns/lhcFillsActiveColumns.js +++ b/lib/public/views/LhcFills/ActiveColumns/lhcFillsActiveColumns.js @@ -57,7 +57,8 @@ export const lhcFillsActiveColumns = { /** * FillNumber filter component * - * @param {FilteringModel} LhcFillsOverviewModel.filteringModel the filtering model + * @param {object} lhcFillsOverviewModel the overview model + * @param {FilteringModel} lhcFillsOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'fillNumbers', 'e.g. 7966, 7954, 7948...'), @@ -207,7 +208,8 @@ export const lhcFillsActiveColumns = { /** * Schema filter component * - * @param {FilteringModel} LhcFillsOverviewModel.filteringModel the filtering model + * @param {object} lhcFillsOverviewModel the overview model + * @param {FilteringModel} lhcFillsOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'schemeName', 'e.g. Single_12b_8_1024_8_2018'), diff --git a/lib/public/views/Logs/ActiveColumns/logsActiveColumns.js b/lib/public/views/Logs/ActiveColumns/logsActiveColumns.js index 6d99d48fd5..668446a327 100644 --- a/lib/public/views/Logs/ActiveColumns/logsActiveColumns.js +++ b/lib/public/views/Logs/ActiveColumns/logsActiveColumns.js @@ -72,6 +72,7 @@ export const logsActiveColumns = { /** * Title filter component * + * @param {object} logOverviewModel the overview model * @param {FilteringModel} logOverviewModel.filteringModel filtering model * @return {Component} the filter component */ @@ -94,6 +95,7 @@ export const logsActiveColumns = { /** * Content filter component * + * @param {object} logOverviewModel the overview model * @param {FilteringModel} logOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ @@ -109,6 +111,7 @@ export const logsActiveColumns = { /** * Author filter component * + * @param {object} logOverviewModel the overview model * @param {FilteringModel} logOverviewModel.filteringModel filtering model * @return {Component} the filter component */ @@ -125,6 +128,7 @@ export const logsActiveColumns = { /** * Created filter component * + * @param {object} logOverviewModel the overview model * @param {FilteringModel} logOverviewModel.filteringModel filtering model * @return {Component} the filter component */ @@ -151,6 +155,7 @@ export const logsActiveColumns = { /** * Tag filter component * + * @param {object} logOverviewModel the overview model * @param {FilteringModel} logOverviewModel.filteringModel filtering model * @return {Component} the filter component */ @@ -168,6 +173,7 @@ export const logsActiveColumns = { /** * Runs filter component * + * @param {object} logOverviewModel the overview model * @param {FilteringModel} logOverviewModel.filteringModel filtering model * @return {Component} the filter component */ @@ -192,6 +198,7 @@ export const logsActiveColumns = { /** * Environment filter component * + * @param {object} logOverviewModel the overview model * @param {FilteringModel} logOverviewModel.filteringModel filtering model * @return {Component} the filter component */ @@ -209,6 +216,7 @@ export const logsActiveColumns = { /** * LhcFills filter component * + * @param {object} logOverviewModel the overview model * @param {FilteringModel} logOverviewModel.filteringModel filtering model * @return {Component} the filter component */ diff --git a/lib/public/views/QcFlags/details/qcFlagDetailsComponent.js b/lib/public/views/QcFlags/details/qcFlagDetailsComponent.js index a542f76822..46479f140c 100644 --- a/lib/public/views/QcFlags/details/qcFlagDetailsComponent.js +++ b/lib/public/views/QcFlags/details/qcFlagDetailsComponent.js @@ -31,7 +31,7 @@ import { h, iconWarning, sessionService } from '/js/src/index.js'; /** * Render a cancel verification button component * - * @param {function} onclick function called when button is clicked (if null, button will be disabled) + * @param {Function} onclick function called when button is clicked (if null, button will be disabled) * @return {Component} the button component */ const cancelVerificationButton = (onclick) => h( @@ -44,7 +44,7 @@ const cancelVerificationButton = (onclick) => h( * Create verification button * * @param {boolean} verificationEnabled true if verification is currently enabled - * @param {function} onClick function called when button is clicked + * @param {Function} onClick function called when button is clicked * @return {Component} verify button */ const verifyButton = (verificationEnabled, onClick) => h( diff --git a/lib/public/views/Runs/ActiveColumns/runsActiveColumns.js b/lib/public/views/Runs/ActiveColumns/runsActiveColumns.js index a779c1286d..c085b40e37 100644 --- a/lib/public/views/Runs/ActiveColumns/runsActiveColumns.js +++ b/lib/public/views/Runs/ActiveColumns/runsActiveColumns.js @@ -63,6 +63,7 @@ export const runsActiveColumns = { /** * Run numbers filter component * + * @param {object} runsOverviewModel the overview model * @param {FilteringModel} runsOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ @@ -184,7 +185,8 @@ export const runsActiveColumns = { /** * Fill number filter component * - * @param {FilteringModel} RunsOverviewModel.filteringModel the filtering model + * @param {object} runsOverviewModel the overview model + * @param {FilteringModel} runsOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'fillNumbers', 'e.g. 7966, 7954, 7948...'), @@ -199,7 +201,8 @@ export const runsActiveColumns = { /** * LHC Periods filter * - * @param {FilteringModel} RunsOverviewModel.filteringModel the filtering model + * @param {object} runsOverviewModel the overview model + * @param {FilteringModel} runsOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'lhcPeriods', 'e.g. LHC22b, LHC22a...'), @@ -388,7 +391,8 @@ export const runsActiveColumns = { /** * Environment ids filter component * - * @param {FilteringModel} RunsOverviewModel.filteringModel the filtering model + * @param {object} runsOverviewModel the overview model + * @param {FilteringModel} runsOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'environmentIds', 'e.g. Dxi029djX, TDI59So3d...'), @@ -558,7 +562,8 @@ export const runsActiveColumns = { /** * ODC topology full name filter component * - * @param {FilteringModel} RunsOverviewModel.filteringModel the filtering model + * @param {object} runsOverviewModel the overview model + * @param {FilteringModel} runsOverviewModel.filteringModel the filtering model * @return {Component} the filter component */ filter: ({ filteringModel }) => textInputFilter(filteringModel, 'odcTopologyFullName'), diff --git a/lib/public/views/lhcPeriods/format/formatDistinctLhcBeamEnergies.js b/lib/public/views/lhcPeriods/format/formatDistinctLhcBeamEnergies.js index cff3e27ffa..51dbeb9b0d 100644 --- a/lib/public/views/lhcPeriods/format/formatDistinctLhcBeamEnergies.js +++ b/lib/public/views/lhcPeriods/format/formatDistinctLhcBeamEnergies.js @@ -19,8 +19,8 @@ const ENERGY_LEVEL_MARGIN = 0.01; const DISPLAY_PRECISION = 2; /** - * If the energy is close enough (within a given margin @see ENERGY_LEVEL_MARGIN ) - * to a well defined energy level @see WELL_DEFINED_ENERGY_LEVELS , returns the well defined energy level, + * If the energy is close enough (within a given margin {@see ENERGY_LEVEL_MARGIN}) + * to a well defined energy level {@see WELL_DEFINED_ENERGY_LEVELS}, returns the well defined energy level, * if not returns null. * @param {number} lhcBeamEnergy run's lhc beam energy * @return {number|null} well defined energy level or null if there is no one @@ -55,7 +55,7 @@ const displayLhcBeamEnergy = (lhcBeamEnergy) => { /** * Format lhc beam distinct energies, optionally replacing some of them - * by well defined energy levels @see displayLhcBeamEnergy + * by well defined energy levels {@see displayLhcBeamEnergy} * @param {number[]} distinctEnergies list of energies to be displayed * @returns {Component} formatted list of distinct energies */ diff --git a/lib/server/Loggers/FilterLogger.js b/lib/server/Loggers/FilterLogger.js index 0ae19af9bf..8a76ad208e 100644 --- a/lib/server/Loggers/FilterLogger.js +++ b/lib/server/Loggers/FilterLogger.js @@ -19,6 +19,8 @@ const { isInTestMode } = require('../../utilities/env-utils'); class FilterLogger { /** * Creates an instance of FilterLogger. + * + * @param {boolean} [silent] if true, no message will be logged (defaults to true in test mode) */ constructor(silent = isInTestMode()) { LogManager.configure({ infologger: true }); @@ -31,9 +33,10 @@ class FilterLogger { * Logs an informational message about endpoint access and applied filters. * * @param {object} request the request received at any given endpoint. - * @param {string} endpoint the endpoint that was accessed. - * @param {string|number} id identifier of the user accessing the endpoint. - * @param {Object} [filters={}] filters applied to the request. + * @param {string} request.path the endpoint that was accessed. + * @param {object} [request.session={}] the session of the user accessing the endpoint. + * @param {string|number} request.session.id identifier of the user accessing the endpoint. + * @param {object} [request.query={}] the request query, with the applied filters under `filter`. * @returns {void} */ infoMessage({ path, session: { id } = {}, query = {} }) { diff --git a/lib/server/services/gaq/GaqDetectorsService.js b/lib/server/services/gaq/GaqDetectorsService.js index 1ac2a0dc7e..11b4e75f88 100644 --- a/lib/server/services/gaq/GaqDetectorsService.js +++ b/lib/server/services/gaq/GaqDetectorsService.js @@ -64,7 +64,7 @@ class GaqDetectorService { /** * Set default list of DPL detectors which flags contribute to GAQ (global aggregated quality) for given runs and data pass * Where, for given run, default list of GAQ detectors is intersection of detectors linked to it with list of detectors - * from @see DEFAULT_GAQ_DETECTORS_FOR_PDP_BEAM_TYPE, which depends on beam type of the run + * from {@see DEFAULT_GAQ_DETECTORS_FOR_PDP_BEAM_TYPE}, which depends on beam type of the run * * @param {number} dataPassId data pass id * @param {number[]} runNumbers list of run numbers From 814c0cabdb45b2143901664a14e8288a6486b6f1 Mon Sep 17 00:00:00 2001 From: George Raduta Date: Thu, 15 Oct 2026 09:24:59 +0200 Subject: [PATCH 5/5] Migrate to new stylistic eslint-plugin --- eslint.config.js | 80 +++++++++---------- .../v0/20200505214213-create-run.js | 2 +- ...20511102048-update-run-detectors-column.js | 2 +- ...020-add-qc-flag-effective-periods-table.js | 3 +- .../Runs/ActiveColumns/runsActiveColumns.js | 2 +- package-lock.json | 37 ++++++--- package.json | 4 +- test/api/runs.test.js | 2 +- .../qualityControlFlag/QcFlagService.test.js | 4 +- .../QcFlagTypeService.test.js | 2 +- test/mocks/mock-dcs-eos-report.js | 2 +- test/mocks/mock-ecs-eos-report.js | 2 +- test/mocks/mock-qc-pdp-eos-report.js | 2 +- test/mocks/mock-slimos-eos-report.js | 2 +- test/public/qcFlagTypes/creation.test.js | 2 +- 15 files changed, 83 insertions(+), 65 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index dc7a3137e6..a4a0afb0ac 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -15,7 +15,7 @@ const globals = require('globals'); const pluginJs = require('@eslint/js'); const jsdoc = require('eslint-plugin-jsdoc'); -const stylisticJs = require('@stylistic/eslint-plugin-js'); +const stylistic = require('@stylistic/eslint-plugin'); module.exports = [ { @@ -33,7 +33,7 @@ module.exports = [ pluginJs.configs.recommended, { plugins: { - '@stylistic/js': stylisticJs, + '@stylistic': stylistic, }, languageOptions: { parserOptions: { @@ -115,77 +115,77 @@ module.exports = [ 'jsdoc/tag-lines': ['off'], // TODO with above 0 or 1 'jsdoc/reject-any-type': ['off'], // TODO 'jsdoc/reject-function-type': ['off'], // TODO - '@stylistic/js/array-bracket-newline': [ + '@stylistic/array-bracket-newline': [ 'error', { multiline: true, }, ], - '@stylistic/js/array-bracket-spacing': [ + '@stylistic/array-bracket-spacing': [ 'error', 'never', { singleValue: false, }, ], - '@stylistic/js/array-element-newline': [ + '@stylistic/array-element-newline': [ 'error', 'consistent', ], - '@stylistic/js/arrow-parens': [ + '@stylistic/arrow-parens': [ 'error', 'always', ], - '@stylistic/js/brace-style': [ + '@stylistic/brace-style': [ 'error', '1tbs', { allowSingleLine: false, }, ], - '@stylistic/js/comma-dangle': [ + '@stylistic/comma-dangle': [ 'error', 'always-multiline', ], - '@stylistic/js/comma-spacing': [ + '@stylistic/comma-spacing': [ 'error', { before: false, after: true, }, ], - '@stylistic/js/comma-style': [ + '@stylistic/comma-style': [ 'error', 'last', ], - '@stylistic/js/computed-property-spacing': 'error', - '@stylistic/js/dot-location': [ + '@stylistic/computed-property-spacing': 'error', + '@stylistic/dot-location': [ 'error', 'property', ], - '@stylistic/js/eol-last': [ + '@stylistic/eol-last': [ 'error', 'always', ], - '@stylistic/js/function-call-argument-newline': [ + '@stylistic/function-call-argument-newline': [ 'error', 'consistent', ], - '@stylistic/js/function-paren-newline': [ + '@stylistic/function-paren-newline': [ 'error', 'multiline', ], - '@stylistic/js/indent': [ + '@stylistic/indent': [ 'error', 4, { SwitchCase: 1, }, ], - '@stylistic/js/key-spacing': 'error', - '@stylistic/js/keyword-spacing': 'error', - '@stylistic/js/linebreak-style': 'off', - '@stylistic/js/lines-around-comment': [ + '@stylistic/key-spacing': 'error', + '@stylistic/keyword-spacing': 'error', + '@stylistic/linebreak-style': 'off', + '@stylistic/lines-around-comment': [ 'error', { allowBlockStart: true, @@ -193,21 +193,21 @@ module.exports = [ beforeBlockComment: true, }, ], - '@stylistic/js/lines-between-class-members': [ + '@stylistic/lines-between-class-members': [ 'error', 'always', ], - '@stylistic/js/max-len': [ + '@stylistic/max-len': [ 'error', { code: 145, }, ], - '@stylistic/js/multiline-comment-style': [ + '@stylistic/multiline-comment-style': [ 'error', 'starred-block', ], - '@stylistic/js/no-extra-parens': [ + '@stylistic/no-extra-parens': [ 'error', 'all', { @@ -215,8 +215,8 @@ module.exports = [ ternaryOperandBinaryExpressions: false, }, ], - '@stylistic/js/no-multi-spaces': 'error', - '@stylistic/js/no-multiple-empty-lines': [ + '@stylistic/no-multi-spaces': 'error', + '@stylistic/no-multiple-empty-lines': [ 'error', { max: 1, @@ -224,22 +224,22 @@ module.exports = [ maxEOF: 0, }, ], - '@stylistic/js/no-trailing-spaces': 'error', - '@stylistic/js/object-curly-spacing': [ + '@stylistic/no-trailing-spaces': 'error', + '@stylistic/object-curly-spacing': [ 'error', 'always', ], - '@stylistic/js/object-property-newline': [ + '@stylistic/object-property-newline': [ 'error', { allowAllPropertiesOnSameLine: true, }, ], - '@stylistic/js/padded-blocks': [ + '@stylistic/padded-blocks': [ 'error', 'never', ], - '@stylistic/js/padding-line-between-statements': [ + '@stylistic/padding-line-between-statements': [ 'error', { blankLine: 'always', @@ -257,23 +257,23 @@ module.exports = [ next: 'cjs-export', }, ], - '@stylistic/js/quote-props': [ + '@stylistic/quote-props': [ 'error', 'as-needed', ], - '@stylistic/js/quotes': [ + '@stylistic/quotes': [ 'error', 'single', { avoidEscape: true, }, ], - '@stylistic/js/semi': 'error', - '@stylistic/js/semi-style': [ + '@stylistic/semi': 'error', + '@stylistic/semi-style': [ 'error', 'last', ], - '@stylistic/js/space-before-blocks': [ + '@stylistic/space-before-blocks': [ 'error', { functions: 'always', @@ -281,7 +281,7 @@ module.exports = [ classes: 'always', }, ], - '@stylistic/js/space-before-function-paren': [ + '@stylistic/space-before-function-paren': [ 'error', { anonymous: 'always', @@ -289,12 +289,12 @@ module.exports = [ asyncArrow: 'always', }, ], - '@stylistic/js/space-infix-ops': 'error', - '@stylistic/js/space-in-parens': [ + '@stylistic/space-infix-ops': 'error', + '@stylistic/space-in-parens': [ 'error', 'never', ], - '@stylistic/js/template-curly-spacing': [ + '@stylistic/template-curly-spacing': [ 'error', 'never', ], diff --git a/lib/database/migrations/v0/20200505214213-create-run.js b/lib/database/migrations/v0/20200505214213-create-run.js index 6fdf6aaed0..9a14ec24ca 100644 --- a/lib/database/migrations/v0/20200505214213-create-run.js +++ b/lib/database/migrations/v0/20200505214213-create-run.js @@ -71,7 +71,7 @@ module.exports = { type: Sequelize.CHAR, }, detectors: { - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len type: Sequelize.ENUM('CPV', 'EMC', 'FDD', 'FT0', 'FV0', 'HMP', 'ITS', 'MCH', 'MFT', 'MID', 'PHS', 'TOF', 'TPC', 'TRD', 'TST', 'ZDC'), }, created_at: { diff --git a/lib/database/migrations/v0/20220511102048-update-run-detectors-column.js b/lib/database/migrations/v0/20220511102048-update-run-detectors-column.js index 937e66a332..8a477353e4 100644 --- a/lib/database/migrations/v0/20220511102048-update-run-detectors-column.js +++ b/lib/database/migrations/v0/20220511102048-update-run-detectors-column.js @@ -27,7 +27,7 @@ module.exports = { queryInterface.sequelize.transaction((transaction) => Promise.all([ queryInterface.changeColumn('runs', 'detectors', { - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len type: Sequelize.ENUM('CPV', 'EMC', 'FDD', 'FT0', 'FV0', 'HMP', 'ITS', 'MCH', 'MFT', 'MID', 'PHS', 'TOF', 'TPC', 'TRD', 'TST', 'ZDC'), }, { transaction }), ])), diff --git a/lib/database/migrations/v0/20240424092020-add-qc-flag-effective-periods-table.js b/lib/database/migrations/v0/20240424092020-add-qc-flag-effective-periods-table.js index 0534c5a5f6..712e977773 100644 --- a/lib/database/migrations/v0/20240424092020-add-qc-flag-effective-periods-table.js +++ b/lib/database/migrations/v0/20240424092020-add-qc-flag-effective-periods-table.js @@ -35,8 +35,7 @@ const _updateEffectivePeriodForScopeAndPeriod = async ( { runNumber, dplDetectorId, dataPassId, simulationPassId, createdAt }, { transaction }, ) => { - let joinClause = - ` + let joinClause = ` INNER JOIN quality_control_flags as qcf ON qcfep.flag_id = qcf.id AND qcf.run_number = ${runNumber} diff --git a/lib/public/views/Runs/ActiveColumns/runsActiveColumns.js b/lib/public/views/Runs/ActiveColumns/runsActiveColumns.js index c085b40e37..d2302988fb 100644 --- a/lib/public/views/Runs/ActiveColumns/runsActiveColumns.js +++ b/lib/public/views/Runs/ActiveColumns/runsActiveColumns.js @@ -464,7 +464,7 @@ export const runsActiveColumns = { visible: true, profiles: [profiles.none, 'lhcFill', 'environment'], classes: 'w-2 f6 w-wrapped', - // eslint-disable-next-line @stylistic/js/no-extra-parens + // eslint-disable-next-line @stylistic/no-extra-parens format: (nEpns, run) => run.epn ? (typeof nEpns === 'number' ? nEpns : 'ON') : 'OFF', /** diff --git a/package-lock.json b/package-lock.json index fa869e271d..f1639d341f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ }, "devDependencies": { "@eslint/js": "9.39.1", - "@stylistic/eslint-plugin-js": "4.4.1", + "@stylistic/eslint-plugin": "5.10.0", "@types/d3": "7.4.3", "chai": "4.5.0", "date-and-time": "3.6.0", @@ -1542,27 +1542,33 @@ "inBundle": true, "license": "MIT" }, - "node_modules/@stylistic/eslint-plugin-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-4.4.1.tgz", - "integrity": "sha512-eLisyHvx7Sel8vcFZOEwDEBGmYsYM1SqDn81BWgmbqEXfXRf8oe6Rwp+ryM/8odNjlxtaaxp0Ihmt86CnLAxKg==", + "node_modules/@stylistic/eslint-plugin": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.10.0.tgz", + "integrity": "sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/types": "^8.56.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": ">=9.0.0" + "eslint": "^9.0.0 || ^10.0.0" } }, - "node_modules/@stylistic/eslint-plugin-js/node_modules/eslint-visitor-keys": { + "node_modules/@stylistic/eslint-plugin/node_modules/eslint-visitor-keys": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -1570,6 +1576,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@types/argparse": { "version": "1.0.38", "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", diff --git a/package.json b/package.json index ba31ab71fa..3dd4b374c5 100644 --- a/package.json +++ b/package.json @@ -48,15 +48,15 @@ ], "devDependencies": { "@eslint/js": "9.39.1", - "@stylistic/eslint-plugin-js": "4.4.1", + "@stylistic/eslint-plugin": "5.10.0", "@types/d3": "7.4.3", "chai": "4.5.0", "date-and-time": "3.6.0", "eslint": "9.37.0", "eslint-plugin-jsdoc": "65.3.0", "globals": "17.12.0", - "mocha": "12.0.2", "mkdirp": "3.0.1", + "mocha": "12.0.2", "nodemon": "3.1.14", "nyc": "18.0.0", "puppeteer": "25.13.0", diff --git a/test/api/runs.test.js b/test/api/runs.test.js index 4ada026ce5..512ce3bf01 100644 --- a/test/api/runs.test.js +++ b/test/api/runs.test.js @@ -1124,7 +1124,7 @@ module.exports = () => { return; } expect(res.body.errors).to.be.an('array'); - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len expect(res.body.errors[0].detail).to.equal('Error code "Provide detector list contains invalid elements" is not' + ' defined, your custom type is missing the correct messages definition'); diff --git a/test/lib/server/services/qualityControlFlag/QcFlagService.test.js b/test/lib/server/services/qualityControlFlag/QcFlagService.test.js index 3aa4300ab4..742cef9563 100644 --- a/test/lib/server/services/qualityControlFlag/QcFlagService.test.js +++ b/test/lib/server/services/qualityControlFlag/QcFlagService.test.js @@ -788,7 +788,7 @@ module.exports = () => { await assert.rejects( () => qcFlagService.create([qcFlag], scope, relations), - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len new BadParameterError('Data pass with this id (9999) could not be found'), ); }); @@ -1415,7 +1415,7 @@ module.exports = () => { await assert.rejects( () => qcFlagService.create([qcFlag], scope, relations), - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len new BadParameterError('Simulation pass with this id (9999) could not be found'), ); }); diff --git a/test/lib/server/services/qualityControlFlag/QcFlagTypeService.test.js b/test/lib/server/services/qualityControlFlag/QcFlagTypeService.test.js index 046163d6bf..8fc5084a59 100644 --- a/test/lib/server/services/qualityControlFlag/QcFlagTypeService.test.js +++ b/test/lib/server/services/qualityControlFlag/QcFlagTypeService.test.js @@ -332,7 +332,7 @@ module.exports = () => { }; await assert.rejects( () => qcFlagTypeService.create(parameters, { user: { externalUserId: 1 } }), - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len new ConflictError(`A QC flag type with name ${parameters.name} or method ${parameters.method} already exists`), ); }); diff --git a/test/mocks/mock-dcs-eos-report.js b/test/mocks/mock-dcs-eos-report.js index 18b635062e..94521c7288 100644 --- a/test/mocks/mock-dcs-eos-report.js +++ b/test/mocks/mock-dcs-eos-report.js @@ -90,7 +90,7 @@ exports.customizedDcsEosReportRequest = { exports.formattedCustomizedDcsEosReport = genericFormattedCustomizedEosReport( ShiftTypes.DCS, - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len '- \\[DCS Shifter\\] - [Third issue log](http://localhost:4000?page=log-detail&id=120)\n- \\[DCS Shifter, FLP\\] - [Fifth issue log](http://localhost:4000?page=log-detail&id=124)', '\n## Alert handling\nAn alert\nAnd another one\n', ); diff --git a/test/mocks/mock-ecs-eos-report.js b/test/mocks/mock-ecs-eos-report.js index 1a74f263e3..551d57f4df 100644 --- a/test/mocks/mock-ecs-eos-report.js +++ b/test/mocks/mock-ecs-eos-report.js @@ -167,7 +167,7 @@ const formattedCustomizedECSEosReportTypeSpecific = ` exports.formattedCustomizedECSEosReport = genericFormattedCustomizedEosReport( ShiftTypes.ECS, - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len '- \\[ECS Shifter\\] - [Third issue log](http://localhost:4000?page=log-detail&id=120)\n- \\[ECS Shifter, FLP\\] - [Fifth issue log](http://localhost:4000?page=log-detail&id=124)', formattedCustomizedECSEosReportTypeSpecific, ); diff --git a/test/mocks/mock-qc-pdp-eos-report.js b/test/mocks/mock-qc-pdp-eos-report.js index a828d90d25..619ddf235a 100644 --- a/test/mocks/mock-qc-pdp-eos-report.js +++ b/test/mocks/mock-qc-pdp-eos-report.js @@ -227,7 +227,7 @@ const formattedCustomizedQcPdpEosReportTypeSpecific = ` exports.formattedCustomizedQcPdpEosReport = genericFormattedCustomizedEosReport( ShiftTypes.QC_PDP, - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len '- \\[QC/PDP Shifter\\] - [Third issue log](http://localhost:4000?page=log-detail&id=120)\n- \\[QC/PDP Shifter, FLP\\] - [Fifth issue log](http://localhost:4000?page=log-detail&id=124)', formattedCustomizedQcPdpEosReportTypeSpecific, ); diff --git a/test/mocks/mock-slimos-eos-report.js b/test/mocks/mock-slimos-eos-report.js index a80453a5e3..3f93a1422c 100644 --- a/test/mocks/mock-slimos-eos-report.js +++ b/test/mocks/mock-slimos-eos-report.js @@ -86,7 +86,7 @@ exports.customizedSlimosEosReportRequest = { exports.formattedCustomizedSlimosEosReport = genericFormattedCustomizedEosReport( ShiftTypes.SLIMOS, - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len '- \\[SLIMOS\\] - [Third issue log](http://localhost:4000?page=log-detail&id=120)\n- \\[SLIMOS, FLP\\] - [Fifth issue log](http://localhost:4000?page=log-detail&id=124)', '', ); diff --git a/test/public/qcFlagTypes/creation.test.js b/test/public/qcFlagTypes/creation.test.js index 3db9a0de16..2ccc68faf3 100644 --- a/test/public/qcFlagTypes/creation.test.js +++ b/test/public/qcFlagTypes/creation.test.js @@ -60,7 +60,7 @@ module.exports = () => { await expectInnerText( page, '.alert.alert-danger', - // eslint-disable-next-line @stylistic/js/max-len + // eslint-disable-next-line @stylistic/max-len 'The request conflicts with existing data: A QC flag type with name Limited acceptance or method LimitedAcceptance already exists', ); });