eslint-plugin-vue-scoped-css 2.7.2 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -40,7 +40,7 @@ npm install --save-dev eslint eslint-plugin-vue-scoped-css vue-eslint-parser
40
40
  ```
41
41
 
42
42
  > **Requirements**
43
- >
43
+ >
44
44
  > - ESLint v6.0.0 and above
45
45
  > - Node.js v12.22.x, v14.17.x, v16.x and above
46
46
 
@@ -49,8 +49,32 @@ npm install --save-dev eslint eslint-plugin-vue-scoped-css vue-eslint-parser
49
49
  ## Usage
50
50
 
51
51
  <!--USAGE_SECTION_START-->
52
+ <!--USAGE_GUIDE_START-->
52
53
 
53
- Create `.eslintrc.*` file to configure rules. See also: [http://eslint.org/docs/user-guide/configuring](http://eslint.org/docs/user-guide/configuring).
54
+ ### New Config (`eslint.config.js`)
55
+
56
+ Use `eslint.config.js` file to configure rules. See also: <https://eslint.org/docs/latest/use/configure/configuration-files-new>.
57
+
58
+ Example **eslint.config.js**:
59
+
60
+ ```js
61
+ import eslintPluginVueScopedCSS from 'eslint-plugin-vue-scoped-css';
62
+ export default [
63
+ // add more generic rule sets here, such as:
64
+ // js.configs.recommended,
65
+ ...eslintPluginVueScopedCSS.configs['flat/recommended'],
66
+ {
67
+ rules: {
68
+ // override/add rules settings here, such as:
69
+ // 'vue-scoped-css/no-unused-selector': 'error'
70
+ }
71
+ }
72
+ ];
73
+ ```
74
+
75
+ ### Legacy Config (`.eslintrc`)
76
+
77
+ Use `.eslintrc.*` file to configure rules. See also: <https://eslint.org/docs/latest/use/configure/>.
54
78
 
55
79
  Example **.eslintrc.js**:
56
80
 
@@ -72,11 +96,21 @@ module.exports = {
72
96
 
73
97
  This plugin provides some predefined configs:
74
98
 
99
+ ### New Config (`eslint.config.js`)
100
+
101
+ - `*.configs['flat/base']` - Settings and rules to enable this plugin
102
+ - `*.configs['flat/recommended']` - `/base`, plus rules for better ways to help you avoid problems for Vue.js 3.x
103
+ - `*.configs['flat/vue2-recommended']` - `/base`, plus rules for better ways to help you avoid problems for Vue.js 2.x
104
+ - `*.configs['flat/all']` - All rules of this plugin are included
105
+
106
+ ### Legacy Config (`.eslintrc`)
107
+
75
108
  - `plugin:vue-scoped-css/base` - Settings and rules to enable this plugin
76
109
  - `plugin:vue-scoped-css/recommended` - `/base`, plus rules for better ways to help you avoid problems for Vue.js 2.x
77
110
  - `plugin:vue-scoped-css/vue3-recommended` - `/base`, plus rules for better ways to help you avoid problems for Vue.js 3.x
78
111
  - `plugin:vue-scoped-css/all` - All rules of this plugin are included
79
112
 
113
+ <!--USAGE_GUIDE_END-->
80
114
  <!--USAGE_SECTION_END-->
81
115
 
82
116
  ## Rules
@@ -91,9 +125,17 @@ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/comm
91
125
 
92
126
  Enforce all the rules in this category with:
93
127
 
128
+ ```js
129
+ export default [
130
+ ...eslintPluginVueScopedCSS.configs['flat/recommended'],
131
+ ]
132
+ ```
133
+
134
+ or
135
+
94
136
  ```json
95
137
  {
96
- "extends": "plugin:vue-scoped-css/vue3-recommended"
138
+ "extends": ["plugin:vue-scoped-css/vue3-recommended"]
97
139
  }
98
140
  ```
99
141
 
@@ -113,9 +155,17 @@ Enforce all the rules in this category with:
113
155
 
114
156
  Enforce all the rules in this category with:
115
157
 
158
+ ```js
159
+ export default [
160
+ ...eslintPluginVueScopedCSS.configs['flat/vue2-recommended'],
161
+ ]
162
+ ```
163
+
164
+ or
165
+
116
166
  ```json
117
167
  {
118
- "extends": "plugin:vue-scoped-css/recommended"
168
+ "extends": ["plugin:vue-scoped-css/recommended"]
119
169
  }
120
170
  ```
121
171
 
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  const rules_1 = require("../utils/rules");
6
+ const path_1 = __importDefault(require("path"));
7
+ const base = require.resolve("./base");
8
+ const baseExtend = path_1.default.extname(`${base}`) === ".ts" ? "plugin:vue-scoped-css/base" : base;
3
9
  module.exports = {
4
- extends: require.resolve("./base"),
10
+ extends: baseExtend,
5
11
  rules: (0, rules_1.collectRules)(),
6
12
  };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const rules_1 = require("../../utils/rules");
7
+ const base_1 = __importDefault(require("./base"));
8
+ exports.default = [
9
+ ...base_1.default,
10
+ {
11
+ rules: (0, rules_1.collectRules)(),
12
+ },
13
+ ];
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const vueParser = __importStar(require("vue-eslint-parser"));
27
+ exports.default = [
28
+ {
29
+ plugins: {
30
+ get "vue-scoped-css"() {
31
+ return require("../../index");
32
+ },
33
+ },
34
+ },
35
+ {
36
+ files: ["*.vue", "**/*.vue"],
37
+ languageOptions: {
38
+ parser: vueParser,
39
+ },
40
+ },
41
+ ];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const rules_1 = require("../../utils/rules");
7
+ const base_1 = __importDefault(require("./base"));
8
+ exports.default = [
9
+ ...base_1.default,
10
+ {
11
+ rules: (0, rules_1.collectRules)("vue3-recommended"),
12
+ },
13
+ ];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const rules_1 = require("../../utils/rules");
7
+ const base_1 = __importDefault(require("./base"));
8
+ exports.default = [
9
+ ...base_1.default,
10
+ {
11
+ rules: (0, rules_1.collectRules)("vue2-recommended"),
12
+ },
13
+ ];
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  const rules_1 = require("../utils/rules");
6
+ const path_1 = __importDefault(require("path"));
7
+ const base = require.resolve("./base");
8
+ const baseExtend = path_1.default.extname(`${base}`) === ".ts" ? "plugin:vue-scoped-css/base" : base;
3
9
  module.exports = {
4
- extends: require.resolve("./base"),
5
- rules: (0, rules_1.collectRules)("recommended"),
10
+ extends: baseExtend,
11
+ rules: (0, rules_1.collectRules)("vue2-recommended"),
6
12
  };
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  const rules_1 = require("../utils/rules");
6
+ const path_1 = __importDefault(require("path"));
7
+ const base = require.resolve("./base");
8
+ const baseExtend = path_1.default.extname(`${base}`) === ".ts" ? "plugin:vue-scoped-css/base" : base;
3
9
  module.exports = {
4
- extends: require.resolve("./base"),
10
+ extends: baseExtend,
5
11
  rules: (0, rules_1.collectRules)("vue3-recommended"),
6
12
  };
package/dist/index.js CHANGED
@@ -1,10 +1,21 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  const rules_1 = require("./utils/rules");
6
+ const base_1 = __importDefault(require("./configs/flat/base"));
7
+ const recommended_1 = __importDefault(require("./configs/flat/recommended"));
8
+ const vue2_recommended_1 = __importDefault(require("./configs/flat/vue2-recommended"));
9
+ const all_1 = __importDefault(require("./configs/flat/all"));
3
10
  const configs = {
4
11
  base: require("./configs/base"),
5
12
  recommended: require("./configs/recommended"),
6
13
  "vue3-recommended": require("./configs/vue3-recommended"),
7
14
  all: require("./configs/all"),
15
+ "flat/base": base_1.default,
16
+ "flat/recommended": recommended_1.default,
17
+ "flat/vue2-recommended": vue2_recommended_1.default,
18
+ "flat/all": all_1.default,
8
19
  };
9
20
  const rules = rules_1.rules.reduce((obj, r) => {
10
21
  var _a;
@@ -10,7 +10,7 @@ module.exports = {
10
10
  meta: {
11
11
  docs: {
12
12
  description: "enforce the `<style>` tags to be plain or have the `scoped` or `module` attribute",
13
- categories: ["recommended", "vue3-recommended"],
13
+ categories: ["vue2-recommended", "vue3-recommended"],
14
14
  default: "warn",
15
15
  url: "https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/enforce-style-type.html",
16
16
  suggestion: true,
@@ -4,7 +4,7 @@ module.exports = {
4
4
  meta: {
5
5
  docs: {
6
6
  description: "disallow parsing errors in `<style>`",
7
- categories: ["recommended", "vue3-recommended"],
7
+ categories: ["vue2-recommended", "vue3-recommended"],
8
8
  default: "warn",
9
9
  url: "https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-parsing-error.html",
10
10
  },
@@ -7,7 +7,7 @@ module.exports = {
7
7
  meta: {
8
8
  docs: {
9
9
  description: "disallow `@keyframes` which don't use in Scoped CSS",
10
- categories: ["recommended", "vue3-recommended"],
10
+ categories: ["vue2-recommended", "vue3-recommended"],
11
11
  default: "warn",
12
12
  url: "https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-unused-keyframes.html",
13
13
  },
@@ -54,7 +54,7 @@ module.exports = {
54
54
  meta: {
55
55
  docs: {
56
56
  description: "disallow selectors defined in Scoped CSS that don't use in `<template>`",
57
- categories: ["recommended", "vue3-recommended"],
57
+ categories: ["vue2-recommended", "vue3-recommended"],
58
58
  default: "warn",
59
59
  url: "https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-unused-selector.html",
60
60
  },
@@ -6,7 +6,7 @@ module.exports = {
6
6
  deprecated: true,
7
7
  docs: {
8
8
  description: "enforce the `<style>` tags to has the `scoped` attribute",
9
- categories: ["recommended", "vue3-recommended"],
9
+ categories: ["vue2-recommended", "vue3-recommended"],
10
10
  default: "warn",
11
11
  url: "https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/require-scoped.html",
12
12
  suggestion: true,
@@ -74,11 +74,16 @@ function extractVueComponentData(dataNode, context) {
74
74
  if ((dataNode.type === "ArrowFunctionExpression" &&
75
75
  dataNode.body.type === "BlockStatement") ||
76
76
  dataNode.type === "FunctionExpression") {
77
- for (const returnStatement of getReturnStatements(dataNode.body, context)) {
78
- if (returnStatement.argument) {
79
- dataNodes.push(returnStatement.argument);
77
+ if (dataNode.body.type === "BlockStatement") {
78
+ for (const returnStatement of getReturnStatements(dataNode.body, context)) {
79
+ if (returnStatement.argument) {
80
+ dataNodes.push(returnStatement.argument);
81
+ }
80
82
  }
81
83
  }
84
+ else {
85
+ dataNodes.push(dataNode.body);
86
+ }
82
87
  }
83
88
  else if (dataNode.type === "ArrowFunctionExpression" &&
84
89
  dataNode.body.type !== "BlockStatement") {
@@ -143,10 +148,15 @@ function extractVueComponentComputed(computedNode, context) {
143
148
  if ((func.type === "ArrowFunctionExpression" &&
144
149
  func.body.type === "BlockStatement") ||
145
150
  func.type === "FunctionExpression") {
146
- const exprs = getReturnStatements(func.body, context)
147
- .map((r) => r.argument)
148
- .filter(utils_1.isDefined);
149
- values.push(...exprs);
151
+ if (func.body.type === "BlockStatement") {
152
+ const exprs = getReturnStatements(func.body, context)
153
+ .map((r) => r.argument)
154
+ .filter(utils_1.isDefined);
155
+ values.push(...exprs);
156
+ }
157
+ else {
158
+ values.push(func.body);
159
+ }
150
160
  }
151
161
  else if (func.type === "ArrowFunctionExpression" &&
152
162
  func.body.type !== "BlockStatement") {
@@ -88,7 +88,9 @@ class CSSSelectorParser {
88
88
  }
89
89
  }
90
90
  convertSelectorNode(node, loc, start, end, parent) {
91
- let source = this.sourceCode.text.slice(start, end);
91
+ const sourceCode = this.sourceCode;
92
+ const code = sourceCode.text;
93
+ let source = code.slice(start, end);
92
94
  const beforeSpaces = /^\s+/u.exec(source);
93
95
  if (beforeSpaces === null || beforeSpaces === void 0 ? void 0 : beforeSpaces[0]) {
94
96
  start = start + beforeSpaces[0].length;
@@ -101,18 +103,53 @@ class CSSSelectorParser {
101
103
  loc.end = this.sourceCode.getLocFromIndex(end);
102
104
  source = source.slice(0, -afterSpaces[0].length);
103
105
  }
104
- const beforeTrivials = /^\(\s*/u.exec(source);
105
- const afterTrivials = /\s*\)$/u.exec(source);
106
- if ((beforeTrivials === null || beforeTrivials === void 0 ? void 0 : beforeTrivials[0]) && (afterTrivials === null || afterTrivials === void 0 ? void 0 : afterTrivials[0])) {
107
- start = start + beforeTrivials[0].length;
108
- loc.start = this.sourceCode.getLocFromIndex(start);
109
- end = end - afterTrivials[0].length;
110
- loc.end = this.sourceCode.getLocFromIndex(end);
111
- source = source.slice(beforeTrivials[0].length, -afterTrivials[0].length);
112
- }
106
+ adjustBeforeParenLocation();
107
+ adjustAfterParenLocation();
113
108
  return new ast_1.VCSSSelector(node, loc, start, end, {
114
109
  parent: parent,
115
110
  });
111
+ function adjustBeforeParenLocation() {
112
+ const beforeTrivials = /^\(\s*/u.exec(source);
113
+ if (!(beforeTrivials === null || beforeTrivials === void 0 ? void 0 : beforeTrivials[0]))
114
+ return;
115
+ let withinParen = false;
116
+ for (let index = end - 1; index < code.length; index++) {
117
+ const ch = code[index];
118
+ if (ch === ")") {
119
+ withinParen = true;
120
+ break;
121
+ }
122
+ else if ((ch === null || ch === void 0 ? void 0 : ch.trim()) && index !== end - 1) {
123
+ return;
124
+ }
125
+ }
126
+ if (!withinParen)
127
+ return;
128
+ start = start + beforeTrivials[0].length;
129
+ loc.start = sourceCode.getLocFromIndex(start);
130
+ source = source.slice(beforeTrivials[0].length);
131
+ }
132
+ function adjustAfterParenLocation() {
133
+ const afterTrivials = /\s*\)$/u.exec(source);
134
+ if (!(afterTrivials === null || afterTrivials === void 0 ? void 0 : afterTrivials[0]))
135
+ return;
136
+ let withinParen = false;
137
+ for (let index = start - 1; index >= 0; index--) {
138
+ const ch = code[index];
139
+ if (ch === "(") {
140
+ withinParen = true;
141
+ break;
142
+ }
143
+ else if (ch === null || ch === void 0 ? void 0 : ch.trim()) {
144
+ return;
145
+ }
146
+ }
147
+ if (!withinParen)
148
+ return;
149
+ end = end - afterTrivials[0].length;
150
+ loc.end = sourceCode.getLocFromIndex(end);
151
+ source = source.slice(0, -afterTrivials[0].length);
152
+ }
116
153
  }
117
154
  convertTagNode(node, loc, start, end, parent) {
118
155
  return new ast_1.VCSSTypeSelector(node, loc, start, end, {
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "eslint-plugin-vue-scoped-css",
3
- "version": "2.7.2",
3
+ "version": "2.8.1",
4
4
  "description": "ESLint plugin for Scoped CSS in Vue.js",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
7
  "prebuild": "npm run -s clean",
8
8
  "build": "tsc --project ./tsconfig.build.json",
9
9
  "clean": "rimraf .nyc_output dist coverage",
10
- "lint": "eslint . --ext .js,.vue,.ts,.json",
11
- "eslint-fix": "eslint . --ext .js,.vue,.ts,.json --fix",
10
+ "lint": "eslint .",
11
+ "eslint-fix": "eslint . --fix",
12
12
  "pretest": "npm run build",
13
13
  "test:base": "mocha --require ts-node/register \"tests/**/*.ts\" --reporter dot --timeout 60000",
14
14
  "test": "npm run test:nyc",
@@ -17,9 +17,10 @@
17
17
  "test:watch": "npm run test:base -- --watch",
18
18
  "update": "ts-node ./tools/update.ts && npm run eslint-fix && npm run test:nyc",
19
19
  "new": "ts-node ./tools/new-rule.ts",
20
- "docs:watch": "npm run vuepress -- dev --debug docs",
21
- "docs:build": "npm run build && npm run vuepress -- build docs --no-cache",
22
- "vuepress": "node --openssl-legacy-provider ./node_modules/vuepress/cli.js",
20
+ "predocs:watch": "npm run build",
21
+ "docs:watch": "vitepress dev docs",
22
+ "docs:build": "npm run build && vitepress build docs",
23
+ "docs:open-dist": "cd ./docs/.vitepress/dist && npx -y http-server --open http://localhost:8080/eslint-plugin-vue-scoped-css/",
23
24
  "preversion": "npm test && npm run update && git add .",
24
25
  "version": "npm run lint -- --fix && git add .",
25
26
  "version:ci": "npm run update && changeset version",
@@ -51,51 +52,56 @@
51
52
  "dist"
52
53
  ],
53
54
  "devDependencies": {
54
- "@changesets/cli": "^2.24.2",
55
- "@ota-meshi/eslint-plugin": "^0.15.1",
55
+ "@changesets/cli": "^2.27.5",
56
+ "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0",
57
+ "@ota-meshi/eslint-plugin": "^0.17.4",
58
+ "@ota-meshi/site-kit-eslint-editor-vue": "^0.2.1",
56
59
  "@svitejs/changesets-changelog-github-compact": "^1.1.0",
57
- "@types/eslint": "^8.0.0",
58
- "@types/eslint-visitor-keys": "^1.0.0",
59
- "@types/estree": "^1.0.0",
60
- "@types/lodash": "^4.14.158",
61
- "@types/mocha": "^10.0.0",
62
- "@types/semver": "^7.3.1",
63
- "@typescript-eslint/eslint-plugin": "^6.0.0",
64
- "@typescript-eslint/parser": "^6.0.0",
65
- "cross-env": "^7.0.2",
66
- "eslint": "^8.0.0",
67
- "eslint-config-prettier": "^9.0.0",
68
- "eslint-plugin-eslint-comments": "^3.2.0",
69
- "eslint-plugin-eslint-plugin": "^5.2.1",
70
- "eslint-plugin-json-schema-validator": "^4.6.1",
71
- "eslint-plugin-jsonc": "^2.0.0",
72
- "eslint-plugin-n": "^16.0.0",
73
- "eslint-plugin-node-dependencies": "^0.11.1",
74
- "eslint-plugin-prettier": "^5.0.0",
75
- "eslint-plugin-regexp": "^2.0.0",
76
- "eslint-plugin-vue": "^9.19.2",
77
- "eslint-plugin-vue-scoped-css": "^2.0.0",
78
- "eslint-plugin-yml": "^1.0.0",
60
+ "@types/eslint": "^8.56.10",
61
+ "@types/estree": "^1.0.5",
62
+ "@types/lodash": "^4.17.5",
63
+ "@types/mocha": "^10.0.7",
64
+ "@types/node": "^20.14.8",
65
+ "@types/semver": "^7.5.8",
66
+ "@typescript-eslint/eslint-plugin": "^7.13.1",
67
+ "@typescript-eslint/parser": "^7.13.1",
68
+ "assert": "^2.1.0",
69
+ "cross-env": "^7.0.3",
70
+ "eslint": "^9.5.0",
71
+ "eslint-config-prettier": "^9.1.0",
72
+ "eslint-plugin-eslint-plugin": "^6.1.0",
73
+ "eslint-plugin-jsdoc": "^48.2.15",
74
+ "eslint-plugin-json-schema-validator": "^5.1.1",
75
+ "eslint-plugin-jsonc": "^2.16.0",
76
+ "eslint-plugin-n": "^17.9.0",
77
+ "eslint-plugin-node-dependencies": "^0.12.0",
78
+ "eslint-plugin-prettier": "^5.1.3",
79
+ "eslint-plugin-regexp": "^2.6.0",
80
+ "eslint-plugin-vue": "^9.26.0",
81
+ "eslint-plugin-vue-scoped-css": "^2.8.0",
82
+ "eslint-plugin-yml": "^1.14.0",
83
+ "events": "^3.3.0",
79
84
  "mocha": "^10.0.0",
80
- "nyc": "^15.1.0",
81
- "pack": "^2.2.0",
85
+ "nyc": "^17.0.0",
86
+ "pako": "^2.1.0",
82
87
  "prettier": "^3.1.0",
83
- "raw-loader": "^4.0.1",
84
88
  "rimraf": "^3.0.2",
85
89
  "semver": "^7.3.2",
86
90
  "stylelint": "^16.0.0",
87
91
  "stylelint-config-recommended-vue": "^1.1.0",
88
92
  "stylelint-config-standard": "^36.0.0",
93
+ "stylelint-config-standard-vue": "^1.0.0",
89
94
  "stylelint-stylus": "^1.0.0",
90
95
  "ts-node": "^10.9.1",
91
- "typescript": "^5.0.0",
92
- "vue-eslint-editor": "^1.1.0",
93
- "vue-eslint-parser": "^9.0.0",
94
- "vuepress": "^1.8.2"
96
+ "typescript": "~5.0.0",
97
+ "typescript-eslint": "^7.13.1",
98
+ "vite-plugin-eslint4b": "^0.4.6",
99
+ "vitepress": "^1.0.1",
100
+ "vue-eslint-parser": "^9.0.0"
95
101
  },
96
102
  "dependencies": {
97
103
  "@eslint-community/eslint-utils": "^4.4.0",
98
- "eslint-compat-utils": "^0.4.0",
104
+ "eslint-compat-utils": "^0.5.0",
99
105
  "lodash": "^4.17.21",
100
106
  "postcss": "^8.4.31",
101
107
  "postcss-safe-parser": "^6.0.0",