From e9288852ed63d926db6001feca345f4497eee59e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 05:03:09 +0000 Subject: [PATCH 1/3] Bump the dev-dependencies group across 1 directory with 4 updates Bumps the dev-dependencies group with 4 updates in the /Framework directory: [eslint](https://github.com/eslint/eslint), [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc), [globals](https://github.com/sindresorhus/globals) and [puppeteer](https://github.com/puppeteer/puppeteer). Updates `eslint` from 10.8.0 to 10.9.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.8.0...v10.9.0) Updates `eslint-plugin-jsdoc` from 63.3.2 to 64.2.1 - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v63.3.2...v64.2.1) Updates `globals` from 17.9.0 to 17.11.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v17.9.0...v17.11.0) Updates `puppeteer` from 25.4.0 to 25.8.0 - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.4.0...puppeteer-v25.8.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.9.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: eslint-plugin-jsdoc dependency-version: 64.2.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: globals dependency-version: 17.11.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: puppeteer dependency-version: 25.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] --- Framework/package-lock.json | 137 ++++++++++++++++++++---------------- Framework/package.json | 8 +-- 2 files changed, 81 insertions(+), 64 deletions(-) diff --git a/Framework/package-lock.json b/Framework/package-lock.json index 4372b0d7f..b01a2eb48 100644 --- a/Framework/package-lock.json +++ b/Framework/package-lock.json @@ -22,13 +22,14 @@ "devDependencies": { "@eslint/js": "10.0.1", "@stylistic/eslint-plugin": "5.10.0", - "eslint": "10.8.0", - "eslint-plugin-jsdoc": "63.3.2", - "globals": "17.9.0", + "eslint": "10.9.0", + "eslint-plugin-jsdoc": "64.2.1", + "globals": "17.11.0", + "long": "5.3.2", "mocha": "11.8.0", "nock": "15.0.0", "nyc": "18.0.0", - "puppeteer": "25.4.0", + "puppeteer": "25.8.0", "sinon": "22.1.0", "supertest": "7.2.2" }, @@ -324,20 +325,20 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.91.0.tgz", - "integrity": "sha512-vgqlMGNNhZxwDYbUNIHj3Hskb4R28iqdXx90ufHyt/NeuTQkeqjTDslAs9I0/GCAfbxP5BpH5WsL1R1fht5Lxg==", + "version": "0.95.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.95.1.tgz", + "integrity": "sha512-LO/RI08Fo9bhXwB7Od9G+1j3eSNq63+ZS5CQO8YLXHbDg6kx6S/DhTeY0+Fc9uZrjK1zZSyTx8Sg5gv5DIoCnA==", "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.9", - "@typescript-eslint/types": "^8.65.0", - "comment-parser": "1.4.7", + "@typescript-eslint/types": "^8.67.0", + "comment-parser": "1.4.8", "esquery": "^1.7.0", - "jsdoc-type-pratt-parser": "~8.0.0" + "jsdoc-type-pratt-parser": "~9.1.2" }, "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" + "node": "^22.22.2 || >=24.15.0" } }, "node_modules/@es-joy/resolve.exports": { @@ -797,13 +798,13 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.6.tgz", - "integrity": "sha512-B/gKoqlFkzhvzsI6jo9K1cZz9o5ypviVv/xu8CwA4grZzyVwN+XfkT+tu8T1zrauuEXv6VhS2oGX+6NL95WcKA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.2.1.tgz", + "integrity": "sha512-KDz+3qDRdBAlRlMjmKyj6dEs33YHTk/xRHEENSXq6TNnhgoU15ruSHtEBeVF6OZ9tBDY55Se4P0nFMNsipzU9A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "modern-tar": "^0.7.6", + "modern-tar": "^0.8.0", "yargs": "^18.0.0" }, "bin": { @@ -1072,9 +1073,9 @@ "license": "MIT" }, "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.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz", + "integrity": "sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==", "dev": true, "license": "MIT", "engines": { @@ -1202,13 +1203,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": { @@ -1691,9 +1692,9 @@ } }, "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.8", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.8.tgz", + "integrity": "sha512-rKZTGo4fzKYna8UcL0isTg5wkBNla7bxTypLwZQXjIdi++IdP1OJ41rI5Mti3/jltkPujbu4i9LIARYA+zpotQ==", "dev": true, "license": "MIT", "engines": { @@ -1863,9 +1864,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1653615", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1653615.tgz", - "integrity": "sha512-pGVkY3T/qXxAp2nFPodwYqOevk6ncNMSmvL8QfRCx5ZWGd6Vor7AFNmyaA8Zs6uJyP1QAfjuLandCgvSix1BNA==", + "version": "0.0.1666840", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1666840.tgz", + "integrity": "sha512-gCcO42XCHKEs7Ag0S7aGYsnJ7hlgrO3qderYqeiY0Eqk+0GFfuvT13IA0hHreJTa2KCdDVyGMeOhdMNmrrTjVg==", "dev": true, "license": "BSD-3-Clause" }, @@ -2038,9 +2039,9 @@ } }, "node_modules/eslint": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.8.0.tgz", - "integrity": "sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.9.0.tgz", + "integrity": "sha512-5KeEOJZBfEVA47boFiBsf+6MmmJpffM7qEBg4pLla2e4nlKgdKlqCW0oSLOGsT8Wl5uCGJptLV1bkaiShj90Gw==", "dev": true, "license": "MIT", "workspaces": [ @@ -2097,18 +2098,18 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "63.3.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.3.2.tgz", - "integrity": "sha512-5B3oO23iqbNJC/ru7uqIY80wmY66De1Q0+5kXQGHuLrGze/rL0Zw/YktMcqgYQ+kdHmgvY1q5TpRgl3yZMLmhQ==", + "version": "64.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-64.2.1.tgz", + "integrity": "sha512-6GpSYxLPcbMw38S94Cngrgs1Zv8yLinQS1O17OxJVZ6deLbrMRCERUYQKceweSqEuG2kx5Amn4l3aKPkCp4geQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.91.0", + "@es-joy/jsdoccomment": "~0.95.1", "@es-joy/resolve.exports": "1.2.0", - "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.7", + "are-docs-informative": "^0.1.1", + "comment-parser": "1.4.8", "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", @@ -2119,12 +2120,25 @@ "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" } }, + "node_modules/eslint-plugin-jsdoc/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-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", @@ -2768,9 +2782,9 @@ } }, "node_modules/globals": { - "version": "17.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.9.0.tgz", - "integrity": "sha512-m/MvAW61QVU5VDNF1Vj8axt016h8w7L5TU1e9zlab7XIttAT2YAlCwl75K1fOqvMM9apmD7lbCIRhpfkhmxhCg==", + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz", + "integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==", "dev": true, "license": "MIT", "engines": { @@ -3281,13 +3295,16 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-8.0.0.tgz", - "integrity": "sha512-uQu/fXVqVaMg6gM8/E5G5+eygVcZ1NV0Z51CvqhNa2bDWxvHMl484ETr6vph4oPyC+KUcbP/w2W2pewfCiR9aQ==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-9.1.2.tgz", + "integrity": "sha512-9EXymowgk1mb9RY1VxuwKc+AhaxfBk2CV0dWxgGM+l5RURTtiUoAx7MlKwcsiVcEXK5HEPa7FeH/tsRpqjEPRg==", "dev": true, "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.9" + }, "engines": { - "node": ">=20.0.0" + "node": "^22.22.2 || >=24.15.0" } }, "node_modules/jsesc": { @@ -3763,9 +3780,9 @@ } }, "node_modules/modern-tar": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.7.7.tgz", - "integrity": "sha512-t9VmxaqrmANnEOBhpSDI6HD192Ge48k8vmWqQQL7hSFEqHEYwZbbsu49+aKLWZeRvFs3j1pMhXOqqF4kPlvjkQ==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.8.4.tgz", + "integrity": "sha512-gN54ddmyzEg10orwZ2u4OOv+bjpMWdIl5jIkodK97bMq8QBSL5c0D7YX0lT1Ooz+99S7+PvFbnxzdjgHo1r41g==", "dev": true, "license": "MIT", "engines": { @@ -4525,18 +4542,18 @@ } }, "node_modules/puppeteer": { - "version": "25.4.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.4.0.tgz", - "integrity": "sha512-xfQp8dFBcGaLc1hEMaVr7s+oW4ZkAurr8Y9H81ilKhu6QoLfSTkZjU7IavnyJ/VWpB9ni3KNJUQHUatslLWyGw==", + "version": "25.8.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.8.0.tgz", + "integrity": "sha512-3gcUJ+Jfodb5zNa/lWLZukBUwYiRIwAc8WRICoqfi+ZYmNWqpsPFyanTU3Gw/lhgII9aotVbAmhT6/NKHWgyUA==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "3.0.6", + "@puppeteer/browsers": "3.2.1", "chromium-bidi": "17.0.2", - "devtools-protocol": "0.0.1653615", + "devtools-protocol": "0.0.1666840", "lilconfig": "^3.1.3", - "puppeteer-core": "25.4.0", + "puppeteer-core": "25.8.0", "typed-query-selector": "^2.12.2" }, "bin": { @@ -4547,15 +4564,15 @@ } }, "node_modules/puppeteer-core": { - "version": "25.4.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.4.0.tgz", - "integrity": "sha512-K1plkLOdeoUnGeT1OvdqF3qxl33v+Ra/uH5VyPEhXdMcpvGiEskHzxxEU3fgpccJpJLIipB/rPUsvkZRWeKqOA==", + "version": "25.8.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.8.0.tgz", + "integrity": "sha512-LDOrawV8vfCVk+yLj2ozvajNP4Sv3OV9y3Tpiyy2g2Z+aQlbcozP6KJfI4iSBq7YQER+86ihEtPa5ioiZyWxMQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "3.0.6", + "@puppeteer/browsers": "3.2.1", "chromium-bidi": "17.0.2", - "devtools-protocol": "0.0.1653615", + "devtools-protocol": "0.0.1666840", "typed-query-selector": "^2.12.2", "webdriver-bidi-protocol": "0.4.2", "ws": "^8.21.1" diff --git a/Framework/package.json b/Framework/package.json index 9f7df23f3..62285de32 100644 --- a/Framework/package.json +++ b/Framework/package.json @@ -44,13 +44,13 @@ "devDependencies": { "@eslint/js": "10.0.1", "@stylistic/eslint-plugin": "5.10.0", - "eslint": "10.8.0", - "eslint-plugin-jsdoc": "63.3.2", - "globals": "17.9.0", + "eslint": "10.9.0", + "eslint-plugin-jsdoc": "64.2.1", + "globals": "17.11.0", "mocha": "11.8.0", "nock": "15.0.0", "nyc": "18.0.0", - "puppeteer": "25.4.0", + "puppeteer": "25.8.0", "sinon": "22.1.0", "supertest": "7.2.2", "long": "5.3.2" From 722e3cea1f52b630ae1c2f38d857111a739f8b3d Mon Sep 17 00:00:00 2001 From: George Raduta Date: Fri, 28 Aug 2026 14:31:54 +0200 Subject: [PATCH 2/3] Remove duplicated jsdoc plugin --- Framework/eslint.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/Framework/eslint.config.js b/Framework/eslint.config.js index 721fe5508..723492d8b 100644 --- a/Framework/eslint.config.js +++ b/Framework/eslint.config.js @@ -32,7 +32,6 @@ module.exports = [ pluginJs.configs.recommended, { plugins: { - jsdoc, '@stylistic/js': stylisticJs, }, languageOptions: { From 8538244d7d49abf602414ef6932e26625cd38904 Mon Sep 17 00:00:00 2001 From: George Raduta Date: Fri, 28 Aug 2026 14:32:06 +0200 Subject: [PATCH 3/3] Fix spacing of eslint --- Framework/eslint.config.js | 554 ++++++++++++++++++------------------- 1 file changed, 277 insertions(+), 277 deletions(-) diff --git a/Framework/eslint.config.js b/Framework/eslint.config.js index 723492d8b..5a01baab5 100644 --- a/Framework/eslint.config.js +++ b/Framework/eslint.config.js @@ -18,287 +18,287 @@ const jsdoc = require('eslint-plugin-jsdoc'); const stylisticJs = require('@stylistic/eslint-plugin'); module.exports = [ - { - ignores: [ - 'node_modules/', - 'database/data/', - 'lib/public/assets/', - 'cpp-api-client/', - 'tmp/', - '.nyc_output/', - ], + { + ignores: [ + 'node_modules/', + 'database/data/', + 'lib/public/assets/', + 'cpp-api-client/', + 'tmp/', + '.nyc_output/', + ], + }, + jsdoc.configs['flat/recommended'], + pluginJs.configs.recommended, + { + plugins: { + '@stylistic/js': stylisticJs, }, - jsdoc.configs['flat/recommended'], - pluginJs.configs.recommended, - { - plugins: { - '@stylistic/js': stylisticJs, + languageOptions: { + parserOptions: { + sourceType: 'module', + }, + globals: { + ...globals.browser, + ...globals.node, + ...globals.mocha, + process: 'readonly', + Model: 'readonly', + vnode: 'readonly', + Express: 'readonly', + setImmediate: 'readonly', + }, + }, + settings: { + jsdoc: { + tagNamePreference: { + returns: 'return', + }, + }, + }, + rules: { + 'arrow-body-style': ['error', 'as-needed'], + curly: 'error', + 'init-declarations': 'off', + 'no-console': 'error', + 'no-implicit-coercion': 'error', + 'no-return-assign': 'error', + 'no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^(_|((request|response|next)$))', + }, + ], + 'no-var': 'error', + 'one-var': [ + 'error', + 'never', + ], + 'prefer-arrow-callback': [ + 'error', + { + allowUnboundThis: true, + }, + ], + 'prefer-const': 'error', + 'prefer-destructuring': 'error', + 'prefer-object-spread': 'error', + 'prefer-template': 'error', + radix: 'error', + 'capitalized-comments': [ + 'error', + 'always', + ], + 'jsdoc/require-description': ['error'], + 'jsdoc/require-returns': [0], // TODO + 'jsdoc/require-jsdoc': [ + 'error', + { + require: { + FunctionDeclaration: true, + MethodDefinition: true, + ClassDeclaration: true, + ArrowFunctionExpression: false, // TODO + FunctionExpression: true, + }, + }, + ], + 'jsdoc/check-tag-names': ['off'], // TODO + 'jsdoc/check-values': ['off'], + 'jsdoc/check-types': ['off'], // TODO + 'jsdoc/require-property-description': ['off'], // TODO + 'jsdoc/no-multi-asterisks': ['off'], + 'jsdoc/no-undefined-types': ['off'], + 'jsdoc/no-defaults': ['off'], + // 'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }], + 'jsdoc/tag-lines': ['off'], // TODO with above 0 or 1 + '@stylistic/js/array-bracket-newline': [ + 'error', + { + multiline: true, + }, + ], + '@stylistic/js/array-bracket-spacing': [ + 'error', + 'never', + { + singleValue: false, + }, + ], + '@stylistic/js/array-element-newline': [ + 'error', + 'consistent', + ], + '@stylistic/js/arrow-parens': [ + 'error', + 'always', + ], + '@stylistic/js/brace-style': [ + 'error', + '1tbs', + { + allowSingleLine: false, + }, + ], + '@stylistic/js/comma-dangle': [ + 'error', + 'always-multiline', + ], + '@stylistic/js/comma-spacing': [ + 'error', + { + before: false, + after: true, + }, + ], + '@stylistic/js/comma-style': [ + 'error', + 'last', + ], + '@stylistic/js/computed-property-spacing': 'error', + '@stylistic/js/dot-location': [ + 'error', + 'property', + ], + '@stylistic/js/eol-last': [ + 'error', + 'always', + ], + '@stylistic/js/function-call-argument-newline': [ + 'error', + 'consistent', + ], + '@stylistic/js/function-paren-newline': [ + 'error', + 'multiline', + ], + '@stylistic/js/indent': [ + 'error', + 2, + { + SwitchCase: 1, + }, + ], + '@stylistic/js/key-spacing': 'error', + '@stylistic/js/keyword-spacing': 'error', + '@stylistic/js/linebreak-style': 'off', + '@stylistic/js/lines-around-comment': [ + 'error', + { + allowBlockStart: true, + allowClassStart: true, + beforeBlockComment: true, + }, + ], + '@stylistic/js/lines-between-class-members': [ + 'error', + 'always', + ], + '@stylistic/js/max-len': [ + 'error', + { + code: 145, + }, + ], + '@stylistic/js/multiline-comment-style': [ + 'error', + 'starred-block', + ], + '@stylistic/js/no-extra-parens': [ + 'error', + 'all', + { + conditionalAssign: false, + ternaryOperandBinaryExpressions: false, + }, + ], + '@stylistic/js/no-multi-spaces': 'error', + '@stylistic/js/no-multiple-empty-lines': [ + 'error', + { + max: 1, + maxBOF: 0, + maxEOF: 0, + }, + ], + '@stylistic/js/no-trailing-spaces': 'error', + '@stylistic/js/object-curly-spacing': [ + 'error', + 'always', + ], + '@stylistic/js/object-property-newline': [ + 'error', + { + allowAllPropertiesOnSameLine: true, + }, + ], + '@stylistic/js/padded-blocks': [ + 'error', + 'never', + ], + '@stylistic/js/padding-line-between-statements': [ + 'error', + { + blankLine: 'always', + prev: 'cjs-import', + next: '*', + }, + { + blankLine: 'any', + prev: 'cjs-import', + next: 'cjs-import', + }, + { + blankLine: 'always', + prev: '*', + next: 'cjs-export', }, - languageOptions: { - parserOptions: { - sourceType: 'module', - }, - globals: { - ...globals.browser, - ...globals.node, - ...globals.mocha, - process: 'readonly', - Model: 'readonly', - vnode: 'readonly', - Express: 'readonly', - setImmediate: 'readonly', - }, + ], + '@stylistic/js/quote-props': [ + 'error', + 'as-needed', + ], + '@stylistic/js/quotes': [ + 'error', + 'single', + { + avoidEscape: true, }, - settings: { - jsdoc: { - tagNamePreference: { - returns: 'return', - }, - }, + ], + '@stylistic/js/semi': 'error', + '@stylistic/js/semi-style': [ + 'error', + 'last', + ], + '@stylistic/js/space-before-blocks': [ + 'error', + { + functions: 'always', + keywords: 'always', + classes: 'always', }, - rules: { - 'arrow-body-style': ['error', 'as-needed'], - curly: 'error', - 'init-declarations': 'off', - 'no-console': 'error', - 'no-implicit-coercion': 'error', - 'no-return-assign': 'error', - 'no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^(_|((request|response|next)$))', - }, - ], - 'no-var': 'error', - 'one-var': [ - 'error', - 'never', - ], - 'prefer-arrow-callback': [ - 'error', - { - allowUnboundThis: true, - }, - ], - 'prefer-const': 'error', - 'prefer-destructuring': 'error', - 'prefer-object-spread': 'error', - 'prefer-template': 'error', - radix: 'error', - 'capitalized-comments': [ - 'error', - 'always', - ], - 'jsdoc/require-description': ['error'], - 'jsdoc/require-returns': [0], // TODO - 'jsdoc/require-jsdoc': [ - 'error', - { - require: { - FunctionDeclaration: true, - MethodDefinition: true, - ClassDeclaration: true, - ArrowFunctionExpression: false, // TODO - FunctionExpression: true, - }, - }, - ], - 'jsdoc/check-tag-names': ['off'], // TODO - 'jsdoc/check-values': ['off'], - 'jsdoc/check-types': ['off'], // TODO - 'jsdoc/require-property-description': ['off'], // TODO - 'jsdoc/no-multi-asterisks': ['off'], - 'jsdoc/no-undefined-types': ['off'], - 'jsdoc/no-defaults': ['off'], - // 'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }], - 'jsdoc/tag-lines': ['off'], // TODO with above 0 or 1 - '@stylistic/js/array-bracket-newline': [ - 'error', - { - multiline: true, - }, - ], - '@stylistic/js/array-bracket-spacing': [ - 'error', - 'never', - { - singleValue: false, - }, - ], - '@stylistic/js/array-element-newline': [ - 'error', - 'consistent', - ], - '@stylistic/js/arrow-parens': [ - 'error', - 'always', - ], - '@stylistic/js/brace-style': [ - 'error', - '1tbs', - { - allowSingleLine: false, - }, - ], - '@stylistic/js/comma-dangle': [ - 'error', - 'always-multiline', - ], - '@stylistic/js/comma-spacing': [ - 'error', - { - before: false, - after: true, - }, - ], - '@stylistic/js/comma-style': [ - 'error', - 'last', - ], - '@stylistic/js/computed-property-spacing': 'error', - '@stylistic/js/dot-location': [ - 'error', - 'property', - ], - '@stylistic/js/eol-last': [ - 'error', - 'always', - ], - '@stylistic/js/function-call-argument-newline': [ - 'error', - 'consistent', - ], - '@stylistic/js/function-paren-newline': [ - 'error', - 'multiline', - ], - '@stylistic/js/indent': [ - 'error', - 2, - { - SwitchCase: 1, - }, - ], - '@stylistic/js/key-spacing': 'error', - '@stylistic/js/keyword-spacing': 'error', - '@stylistic/js/linebreak-style': 'off', - '@stylistic/js/lines-around-comment': [ - 'error', - { - allowBlockStart: true, - allowClassStart: true, - beforeBlockComment: true, - }, - ], - '@stylistic/js/lines-between-class-members': [ - 'error', - 'always', - ], - '@stylistic/js/max-len': [ - 'error', - { - code: 145, - }, - ], - '@stylistic/js/multiline-comment-style': [ - 'error', - 'starred-block', - ], - '@stylistic/js/no-extra-parens': [ - 'error', - 'all', - { - conditionalAssign: false, - ternaryOperandBinaryExpressions: false, - }, - ], - '@stylistic/js/no-multi-spaces': 'error', - '@stylistic/js/no-multiple-empty-lines': [ - 'error', - { - max: 1, - maxBOF: 0, - maxEOF: 0, - }, - ], - '@stylistic/js/no-trailing-spaces': 'error', - '@stylistic/js/object-curly-spacing': [ - 'error', - 'always', - ], - '@stylistic/js/object-property-newline': [ - 'error', - { - allowAllPropertiesOnSameLine: true, - }, - ], - '@stylistic/js/padded-blocks': [ - 'error', - 'never', - ], - '@stylistic/js/padding-line-between-statements': [ - 'error', - { - blankLine: 'always', - prev: 'cjs-import', - next: '*', - }, - { - blankLine: 'any', - prev: 'cjs-import', - next: 'cjs-import', - }, - { - blankLine: 'always', - prev: '*', - next: 'cjs-export', - }, - ], - '@stylistic/js/quote-props': [ - 'error', - 'as-needed', - ], - '@stylistic/js/quotes': [ - 'error', - 'single', - { - avoidEscape: true, - }, - ], - '@stylistic/js/semi': 'error', - '@stylistic/js/semi-style': [ - 'error', - 'last', - ], - '@stylistic/js/space-before-blocks': [ - 'error', - { - functions: 'always', - keywords: 'always', - classes: 'always', - }, - ], - '@stylistic/js/space-before-function-paren': [ - 'error', - { - anonymous: 'always', - named: 'never', - asyncArrow: 'always', - }, - ], - '@stylistic/js/space-infix-ops': 'error', - '@stylistic/js/space-in-parens': [ - 'error', - 'never', - ], - '@stylistic/js/template-curly-spacing': [ - 'error', - 'never', - ], - 'no-magic-numbers': 'off', // TODO: enable - 'sort-keys': 'off', - 'sort-imports': 'off', - 'sort-vars': 'off', + ], + '@stylistic/js/space-before-function-paren': [ + 'error', + { + anonymous: 'always', + named: 'never', + asyncArrow: 'always', }, + ], + '@stylistic/js/space-infix-ops': 'error', + '@stylistic/js/space-in-parens': [ + 'error', + 'never', + ], + '@stylistic/js/template-curly-spacing': [ + 'error', + 'never', + ], + 'no-magic-numbers': 'off', // TODO: enable + 'sort-keys': 'off', + 'sort-imports': 'off', + 'sort-vars': 'off', }, + }, ];