diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 3c3629e..0000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 508b94c..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "root": true, - "extends": [ - "eslint:recommended", - "plugin:prettier/recommended" - ], - "env": { - "browser": true, - "node": true, - "es6": true, - "amd": true, - "jquery": true - }, - "globals": { - "TYPO3": "readonly" - }, - "parserOptions": { - "ecmaVersion": 8 - } -} diff --git a/.gitattributes b/.gitattributes index b9b4766..f262cbb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,7 +1,7 @@ /.Build/ export-ignore /.editorconfig export-ignore /.eslintignore export-ignore -/.eslintrc.json export-ignore +/eslint.config.json export-ignore /.gitattributes export-ignore /.github/ export-ignore /.gitignore export-ignore diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..54c7ed8 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,19 @@ +import js from "@eslint/js"; +import eslintConfigPrettier from "eslint-config-prettier"; + +export default [ + js.configs.recommended, + eslintConfigPrettier, + { + languageOptions: { + ecmaVersion: 2024, + globals: { + document: false, + TYPO3: "readonly" + }, + }, + ignores: [ + "node_modules" + ] + } +] diff --git a/package.json b/package.json index cccf98e..40f6d2d 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "url": "https://github.com/FriendsOfTYPO3/tea.git" }, "keywords": [], + "type": "module", "author": "", "version": "1.0.0", "license": "ISC", @@ -15,13 +16,13 @@ "lint:style:fix": "stylelint Resources/Public/**/*.css --fix" }, "devDependencies": { - "eslint": "^8.57.0", + "eslint": "^9.2.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.1", "eslint-plugin-prettier": "^5.1.3", + "install": "^0.13.0", "prettier": "^3.2.5", - "stylelint": "^15.11.0", - "stylelint-config-recommended": "^13.0.0", + "stylelint": "^16.5.0", + "stylelint-config-standard-scss": "^13.1.0", "stylelint-no-browser-hacks": "^1.3.0" } } diff --git a/stylelint.config.js b/stylelint.config.js index 3ab3d44..ed6cfaf 100644 --- a/stylelint.config.js +++ b/stylelint.config.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { extends: "stylelint-config-recommended", rules: { "at-rule-empty-line-before": [ @@ -15,18 +13,7 @@ module.exports = { ] } ], - "at-rule-name-case": "lower", - "at-rule-name-space-after": "always-single-line", - "at-rule-semicolon-newline-after": "always", - "block-closing-brace-empty-line-before": "never", - "block-closing-brace-newline-after": "always", - "block-closing-brace-newline-before": "always-multi-line", - "block-closing-brace-space-before": "always-single-line", "block-no-empty": true, - "block-opening-brace-newline-after": "always-multi-line", - "block-opening-brace-space-after": "always-single-line", - "block-opening-brace-space-before": "always", - "color-hex-case": "lower", "color-hex-length": "short", "color-no-invalid-hex": true, "comment-empty-line-before": [ @@ -55,8 +42,6 @@ module.exports = { ] } ], - "declaration-bang-space-after": "never", - "declaration-bang-space-before": "always", "declaration-block-no-duplicate-properties": [ true, { @@ -67,14 +52,7 @@ module.exports = { ], "declaration-block-no-redundant-longhand-properties": true, "declaration-block-no-shorthand-property-overrides": true, - "declaration-block-semicolon-newline-after": "always-multi-line", - "declaration-block-semicolon-space-after": "always-single-line", - "declaration-block-semicolon-space-before": "never", "declaration-block-single-line-max-declarations": 1, - "declaration-block-trailing-semicolon": "always", - "declaration-colon-newline-after": "always-multi-line", - "declaration-colon-space-after": "always-single-line", - "declaration-colon-space-before": "never", "declaration-empty-line-before": [ "always", { @@ -90,37 +68,13 @@ module.exports = { ], "font-family-no-duplicate-names": true, "function-calc-no-unspaced-operator": true, - "function-comma-newline-after": "always-multi-line", - "function-comma-space-after": "always-single-line", - "function-comma-space-before": "never", "function-linear-gradient-no-nonstandard-direction": true, - "function-max-empty-lines": 0, "function-name-case": "lower", - "function-parentheses-newline-inside": "always-multi-line", - "function-parentheses-space-inside": "never-single-line", - "function-whitespace-after": "always", - "indentation": 4, "keyframe-declaration-no-important": true, "length-zero-no-unit": true, - "max-empty-lines": 1, - "media-feature-colon-space-after": "always", - "media-feature-colon-space-before": "never", - "media-feature-name-case": "lower", "media-feature-name-no-unknown": true, - "media-feature-parentheses-space-inside": "never", - "media-feature-range-operator-space-after": "always", - "media-feature-range-operator-space-before": "always", - "media-query-list-comma-newline-after": "always-multi-line", - "media-query-list-comma-space-after": "always-single-line", - "media-query-list-comma-space-before": "never", "no-empty-source": true, - "no-eol-whitespace": true, - "no-extra-semicolons": true, "no-invalid-double-slash-comments": true, - "no-missing-end-of-source-newline": true, - "number-leading-zero": "always", - "number-no-trailing-zeros": true, - "property-case": "lower", "property-no-unknown": [ true, { @@ -140,30 +94,12 @@ module.exports = { ] } ], - "selector-attribute-brackets-space-inside": "never", - "selector-attribute-operator-space-after": "never", - "selector-attribute-operator-space-before": "never", - "selector-combinator-space-after": "always", - "selector-combinator-space-before": "always", - "selector-descendant-combinator-no-non-space": true, - "selector-list-comma-newline-after": "always", - "selector-list-comma-space-before": "never", - "selector-max-empty-lines": 0, - "selector-pseudo-class-case": "lower", - "selector-pseudo-class-no-unknown": true, - "selector-pseudo-class-parentheses-space-inside": "never", - "selector-pseudo-element-case": "lower", "selector-pseudo-element-colon-notation": "single", "selector-pseudo-element-no-unknown": true, "selector-type-case": "lower", "selector-type-no-unknown": true, "shorthand-property-no-redundant-values": true, "string-no-newline": true, - "unit-case": "lower", "unit-no-unknown": true, - "value-list-comma-newline-after": "always-multi-line", - "value-list-comma-space-after": "always-single-line", - "value-list-comma-space-before": "never", - "value-list-max-empty-lines": 0, }, };