@eienjs/eslint-config 1.7.0 → 1.8.0

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.
@@ -1,9 +1,9 @@
1
1
  //#region src/cli/constants_generated.ts
2
2
  const versionsMap = {
3
- "@adonisjs/eslint-plugin": "^2.0.1",
4
- "@nuxt/eslint-plugin": "^1.11.0",
3
+ "@adonisjs/eslint-plugin": "^2.2.0",
4
+ "@nuxt/eslint-plugin": "^1.12.1",
5
5
  "astro-eslint-parser": "^1.2.2",
6
- "eslint": "^9.39.1",
6
+ "eslint": "^9.39.2",
7
7
  "eslint-plugin-astro": "^1.5.0",
8
8
  "eslint-plugin-format": "^1.1.0",
9
9
  "prettier-plugin-astro": "^0.14.1"
@@ -0,0 +1,7 @@
1
+ import { OptionsConfig } from "./types.mjs";
2
+
3
+ //#region src/config_presets.d.ts
4
+ declare const CONFIG_PRESET_FULL_ON: OptionsConfig;
5
+ declare const CONFIG_PRESET_FULL_OFF: OptionsConfig;
6
+ //#endregion
7
+ export { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON };
@@ -0,0 +1,49 @@
1
+ //#region src/config_presets.ts
2
+ const CONFIG_PRESET_FULL_ON = {
3
+ adonisjs: true,
4
+ astro: true,
5
+ formatters: true,
6
+ gitignore: true,
7
+ imports: true,
8
+ jsdoc: true,
9
+ jsonc: true,
10
+ markdown: true,
11
+ node: true,
12
+ nuxt: true,
13
+ pnpm: true,
14
+ regexp: true,
15
+ stylistic: { experimental: true },
16
+ test: true,
17
+ toml: true,
18
+ typescript: {
19
+ erasableSyntaxOnly: true,
20
+ tsconfigPath: "tsconfig.json"
21
+ },
22
+ unicorn: true,
23
+ vue: true,
24
+ yaml: true
25
+ };
26
+ const CONFIG_PRESET_FULL_OFF = {
27
+ adonisjs: false,
28
+ astro: false,
29
+ formatters: false,
30
+ gitignore: false,
31
+ imports: false,
32
+ jsdoc: false,
33
+ jsonc: false,
34
+ markdown: false,
35
+ node: false,
36
+ nuxt: false,
37
+ pnpm: false,
38
+ regexp: false,
39
+ stylistic: false,
40
+ test: false,
41
+ toml: false,
42
+ typescript: false,
43
+ unicorn: false,
44
+ vue: false,
45
+ yaml: false
46
+ };
47
+
48
+ //#endregion
49
+ export { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON };
@@ -27,6 +27,8 @@ async function adonisjs(options = {}) {
27
27
  dirs.tests = dirs.tests || `${dirs.root}/tests`;
28
28
  dirs.config = dirs.config || `${dirs.root}/config`;
29
29
  dirs.commands = dirs.commands || `${dirs.root}/commands`;
30
+ dirs.inertia = dirs.inertia || `${dirs.root}/inertia`;
31
+ dirs.types = dirs.types || `${appPath}/types`;
30
32
  const nestedGlobPattern = `**/*.${GLOB_SRC_EXT}`;
31
33
  const fileRoutes = [...Object.values(dirs).map((dir) => join(dir, nestedGlobPattern)), `${dirs.root}/ace.js`];
32
34
  const commonRulesSet = {
@@ -47,6 +49,15 @@ async function adonisjs(options = {}) {
47
49
  ...overrides
48
50
  }
49
51
  },
52
+ {
53
+ files: [join(dirs.inertia, nestedGlobPattern)],
54
+ name: "eienjs/adonisjs/inertia-rules",
55
+ rules: {
56
+ "@adonisjs/no-backend-import-in-frontend": "error",
57
+ "@adonisjs/prefer-adonisjs-inertia-form": "error",
58
+ "@adonisjs/prefer-adonisjs-inertia-link": "error"
59
+ }
60
+ },
50
61
  {
51
62
  files: fileRoutes,
52
63
  name: "eienjs/adonisjs/disables",
@@ -110,6 +121,19 @@ async function adonisjs(options = {}) {
110
121
  "@typescript-eslint/no-unsafe-return": "off",
111
122
  "@typescript-eslint/unbound-method": "off"
112
123
  }
124
+ },
125
+ {
126
+ files: [join(dirs.types, nestedGlobPattern)],
127
+ name: "eienjs/adonisjs/types-disables",
128
+ rules: {
129
+ "@eslint-community/eslint-comments/no-unlimited-disable": "off",
130
+ "@typescript-eslint/consistent-type-definitions": "off",
131
+ "@typescript-eslint/explicit-function-return-type": "off",
132
+ "@typescript-eslint/no-unsafe-assignment": "off",
133
+ "@typescript-eslint/no-unsafe-return": "off",
134
+ "no-restricted-syntax": "off",
135
+ "unused-imports/no-unused-vars": "off"
136
+ }
113
137
  }
114
138
  ];
115
139
  }
@@ -1,6 +1,6 @@
1
- import { OptionsIsInEditor, TypedFlatConfigItem } from "../types.mjs";
1
+ import { OptionsPnpm, TypedFlatConfigItem } from "../types.mjs";
2
2
 
3
3
  //#region src/configs/pnpm.d.ts
4
- declare function pnpm(options: OptionsIsInEditor): Promise<TypedFlatConfigItem[]>;
4
+ declare function pnpm(options: OptionsPnpm): Promise<TypedFlatConfigItem[]>;
5
5
  //#endregion
6
6
  export { pnpm };
@@ -1,117 +1,130 @@
1
+ import { findUp } from "../node_modules/.pnpm/find-up-simple@1.0.1/node_modules/find-up-simple/index.mjs";
1
2
  import { interopDefault } from "../utils.mjs";
3
+ import { readFile } from "node:fs/promises";
2
4
 
3
5
  //#region src/configs/pnpm.ts
6
+ async function detectCatalogUsage() {
7
+ const workspaceFile = await findUp("pnpm-workspace.yaml");
8
+ if (!workspaceFile) return false;
9
+ const yaml = await readFile(workspaceFile, "utf8");
10
+ return yaml.includes("catalog:") || yaml.includes("catalogs:");
11
+ }
4
12
  async function pnpm(options) {
5
- const [pluginPnpm, yamlParser, jsoncParser] = await Promise.all([
13
+ const [pluginPnpm, pluginYaml, yamlParser, jsoncParser] = await Promise.all([
6
14
  interopDefault(import("eslint-plugin-pnpm")),
15
+ interopDefault(import("eslint-plugin-yml")),
7
16
  interopDefault(import("yaml-eslint-parser")),
8
17
  interopDefault(import("jsonc-eslint-parser"))
9
18
  ]);
10
- return [
11
- {
12
- files: ["package.json", "**/package.json"],
13
- languageOptions: { parser: jsoncParser },
14
- name: "eienjs/pnpm/package-json",
15
- plugins: { pnpm: pluginPnpm },
16
- rules: {
17
- "pnpm/json-enforce-catalog": ["error", { autofix: !options.isInEditor }],
18
- "pnpm/json-prefer-workspace-settings": ["error", { autofix: !options.isInEditor }],
19
- "pnpm/json-valid-catalog": ["error", { autofix: !options.isInEditor }]
20
- }
21
- },
22
- {
23
- files: ["pnpm-workspace.yaml"],
24
- languageOptions: { parser: yamlParser },
25
- name: "eienjs/pnpm/pnpm-workspace-yaml",
26
- plugins: { pnpm: pluginPnpm },
27
- rules: {
28
- "pnpm/yaml-enforce-settings": ["error", { settings: {
29
- catalogMode: "prefer",
30
- cleanupUnusedCatalogs: true,
31
- shellEmulator: true,
32
- trustPolicy: "no-downgrade"
33
- } }],
34
- "pnpm/yaml-no-duplicate-catalog-item": "error",
35
- "pnpm/yaml-no-unused-catalog-item": "error"
36
- }
37
- },
38
- {
39
- files: ["pnpm-workspace.yaml"],
40
- name: "eienjs/pnpm/pnpm-workspace-yaml-sort",
41
- rules: { "yaml/sort-keys": [
42
- "error",
43
- {
44
- order: [
45
- ...[
46
- "cacheDir",
47
- "catalogMode",
48
- "cleanupUnusedCatalogs",
49
- "dedupeDirectDeps",
50
- "deployAllFiles",
51
- "enablePrePostScripts",
52
- "engineStrict",
53
- "extendNodePath",
54
- "hoist",
55
- "hoistPattern",
56
- "hoistWorkspacePackages",
57
- "ignoreCompatibilityDb",
58
- "ignoreDepScripts",
59
- "ignoreScripts",
60
- "ignoreWorkspaceRootCheck",
61
- "managePackageManagerVersions",
62
- "minimumReleaseAge",
63
- "minimumReleaseAgeExclude",
64
- "modulesDir",
65
- "nodeLinker",
66
- "nodeVersion",
67
- "optimisticRepeatInstall",
68
- "packageManagerStrict",
69
- "packageManagerStrictVersion",
70
- "preferSymlinkedExecutables",
71
- "preferWorkspacePackages",
72
- "publicHoistPattern",
73
- "registrySupportsTimeField",
74
- "requiredScrpts",
75
- "resolutionMode",
76
- "savePrefix",
77
- "scriptShell",
78
- "shamefullyHoist",
79
- "shellEmulator",
80
- "stateDir",
81
- "supportedArchitectures",
82
- "symlink",
83
- "tag",
84
- "trustPolicy",
85
- "trustPolicyExclude",
86
- "updateNotifier"
87
- ],
88
- "packages",
89
- "overrides",
90
- "patchedDependencies",
91
- "catalog",
92
- "catalogs",
93
- ...[
94
- "allowedDeprecatedVersions",
95
- "allowNonAppliedPatches",
96
- "configDependencies",
97
- "ignoredBuiltDependencies",
98
- "ignoredOptionalDependencies",
99
- "neverBuiltDependencies",
100
- "onlyBuiltDependencies",
101
- "onlyBuiltDependenciesFile",
102
- "packageExtensions",
103
- "peerDependencyRules"
104
- ]
105
- ],
106
- pathPattern: "^$"
107
- },
108
- {
109
- order: { type: "asc" },
110
- pathPattern: ".*"
111
- }
112
- ] }
19
+ const { catalogs = await detectCatalogUsage(), isInEditor = false, json = true, sort = true, yaml = true } = options;
20
+ const configs = [];
21
+ if (json) configs.push({
22
+ files: ["package.json", "**/package.json"],
23
+ languageOptions: { parser: jsoncParser },
24
+ name: "eienjs/pnpm/package-json",
25
+ plugins: { pnpm: pluginPnpm },
26
+ rules: {
27
+ ...catalogs ? { "pnpm/json-enforce-catalog": ["error", {
28
+ autofix: !isInEditor,
29
+ ignores: ["@types/vscode"]
30
+ }] } : {},
31
+ "pnpm/json-prefer-workspace-settings": ["error", { autofix: !isInEditor }],
32
+ "pnpm/json-valid-catalog": ["error", { autofix: !isInEditor }]
113
33
  }
114
- ];
34
+ });
35
+ if (yaml) configs.push({
36
+ files: ["pnpm-workspace.yaml"],
37
+ languageOptions: { parser: yamlParser },
38
+ name: "eienjs/pnpm/pnpm-workspace-yaml",
39
+ plugins: { pnpm: pluginPnpm },
40
+ rules: {
41
+ "pnpm/yaml-enforce-settings": ["error", { settings: {
42
+ shellEmulator: true,
43
+ trustPolicy: "no-downgrade"
44
+ } }],
45
+ "pnpm/yaml-no-duplicate-catalog-item": "error",
46
+ "pnpm/yaml-no-unused-catalog-item": "error"
47
+ }
48
+ });
49
+ if (sort) configs.push({
50
+ files: ["pnpm-workspace.yaml"],
51
+ languageOptions: { parser: yamlParser },
52
+ name: "eienjs/pnpm/pnpm-workspace-yaml-sort",
53
+ plugins: { yaml: pluginYaml },
54
+ rules: { "yaml/sort-keys": [
55
+ "error",
56
+ {
57
+ order: [
58
+ ...[
59
+ "cacheDir",
60
+ "catalogMode",
61
+ "cleanupUnusedCatalogs",
62
+ "dedupeDirectDeps",
63
+ "deployAllFiles",
64
+ "enablePrePostScripts",
65
+ "engineStrict",
66
+ "extendNodePath",
67
+ "hoist",
68
+ "hoistPattern",
69
+ "hoistWorkspacePackages",
70
+ "ignoreCompatibilityDb",
71
+ "ignoreDepScripts",
72
+ "ignoreScripts",
73
+ "ignoreWorkspaceRootCheck",
74
+ "managePackageManagerVersions",
75
+ "minimumReleaseAge",
76
+ "minimumReleaseAgeExclude",
77
+ "modulesDir",
78
+ "nodeLinker",
79
+ "nodeVersion",
80
+ "optimisticRepeatInstall",
81
+ "packageManagerStrict",
82
+ "packageManagerStrictVersion",
83
+ "preferSymlinkedExecutables",
84
+ "preferWorkspacePackages",
85
+ "publicHoistPattern",
86
+ "registrySupportsTimeField",
87
+ "requiredScripts",
88
+ "resolutionMode",
89
+ "savePrefix",
90
+ "scriptShell",
91
+ "shamefullyHoist",
92
+ "shellEmulator",
93
+ "stateDir",
94
+ "supportedArchitectures",
95
+ "symlink",
96
+ "tag",
97
+ "trustPolicy",
98
+ "trustPolicyExclude",
99
+ "updateNotifier"
100
+ ],
101
+ "packages",
102
+ "overrides",
103
+ "patchedDependencies",
104
+ "catalog",
105
+ "catalogs",
106
+ ...[
107
+ "allowedDeprecatedVersions",
108
+ "allowNonAppliedPatches",
109
+ "configDependencies",
110
+ "ignoredBuiltDependencies",
111
+ "ignoredOptionalDependencies",
112
+ "neverBuiltDependencies",
113
+ "onlyBuiltDependencies",
114
+ "onlyBuiltDependenciesFile",
115
+ "packageExtensions",
116
+ "peerDependencyRules"
117
+ ]
118
+ ],
119
+ pathPattern: "^$"
120
+ },
121
+ {
122
+ order: { type: "asc" },
123
+ pathPattern: ".*"
124
+ }
125
+ ] }
126
+ });
127
+ return configs;
115
128
  }
116
129
 
117
130
  //#endregion
package/dist/factory.mjs CHANGED
@@ -51,7 +51,7 @@ const defaultPluginRenaming = {
51
51
  "yml": "yaml"
52
52
  };
53
53
  function eienjs(options = {}) {
54
- const { adonisjs: enableAdonisjs = false, astro: enableAstro = false, componentExts = [], gitignore: enableGitignore = true, ignores: userIgnores = [], imports: enableImports = true, nuxt: enableNuxt = false, pnpm: enableCatalogs = Boolean(findUpSync("pnpm-workspace.yaml")), regexp: enableRegexp = true, typescript: enableTypeScript = isPackageExists("typescript"), unicorn: enableUnicorn = true, vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
54
+ const { adonisjs: enableAdonisjs = false, astro: enableAstro = false, componentExts = [], gitignore: enableGitignore = true, ignores: userIgnores = [], imports: enableImports = true, jsdoc: enableJsdoc = true, node: enableNode = true, nuxt: enableNuxt = false, pnpm: enableCatalogs = Boolean(findUpSync("pnpm-workspace.yaml")), regexp: enableRegexp = true, typescript: enableTypeScript = isPackageExists("typescript"), unicorn: enableUnicorn = true, vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
55
55
  let { isInEditor } = options;
56
56
  if (isInEditor == null) {
57
57
  isInEditor = isInEditorEnv();
@@ -71,10 +71,12 @@ function eienjs(options = {}) {
71
71
  configs.push(ignores(userIgnores), javascript({
72
72
  isInEditor,
73
73
  overrides: getOverrides(options, "javascript")
74
- }), comments(), node(), jsdoc({ stylistic: stylisticOptions }), imports({ stylistic: stylisticOptions }), command(), perfectionist());
75
- if (enableImports) configs.push(imports(enableImports === true ? { stylistic: stylisticOptions } : {
74
+ }), comments(), command(), perfectionist());
75
+ if (enableNode) configs.push(node());
76
+ if (enableJsdoc) configs.push(jsdoc({ stylistic: stylisticOptions }));
77
+ if (enableImports) configs.push(imports({
76
78
  stylistic: stylisticOptions,
77
- ...enableImports
79
+ ...resolveSubOptions(options, "imports")
78
80
  }));
79
81
  if (enableUnicorn) configs.push(unicorn(enableUnicorn === true ? {} : enableUnicorn));
80
82
  if (enableVue) componentExts.push("vue");
@@ -116,7 +118,15 @@ function eienjs(options = {}) {
116
118
  overrides: getOverrides(options, "jsonc"),
117
119
  stylistic: stylisticOptions
118
120
  }), sortPackageJson(), sortTsconfig());
119
- if (enableCatalogs) configs.push(pnpm({ isInEditor }));
121
+ if (enableCatalogs) {
122
+ const optionsPnpm = resolveSubOptions(options, "pnpm");
123
+ configs.push(pnpm({
124
+ isInEditor,
125
+ json: options.jsonc !== false,
126
+ yaml: options.yaml !== false,
127
+ ...optionsPnpm
128
+ }));
129
+ }
120
130
  if (options.yaml ?? true) configs.push(yaml({
121
131
  overrides: getOverrides(options, "yaml"),
122
132
  stylistic: stylisticOptions
package/dist/index.d.mts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { ConfigNames } from "./typegen.mjs";
2
- import { Awaitable, OptionsAdonisJS, OptionsComponentExts, OptionsConfig, OptionsErasableSyntaxOnly, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsNuxt, OptionsOverrides, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsTypescriptWithErasableSyntaxOnly, OptionsVue, Rules, StylisticConfig, TypedFlatConfigItem } from "./types.mjs";
2
+ import { Awaitable, OptionsAdonisJS, OptionsComponentExts, OptionsConfig, OptionsErasableSyntaxOnly, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsNuxt, OptionsOverrides, OptionsPnpm, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsTypescriptWithErasableSyntaxOnly, OptionsVue, Rules, StylisticConfig, TypedFlatConfigItem } from "./types.mjs";
3
3
  import { ResolvedOptions, defaultPluginRenaming, eienjs, getOverrides, resolveSubOptions } from "./factory.mjs";
4
+ import { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON } from "./config_presets.mjs";
4
5
  import { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_EXTS, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML } from "./globs.mjs";
5
6
  import { combine, ensurePackages, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, parserPlain, toArray } from "./utils.mjs";
6
- export { Awaitable, ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_EXTS, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsAdonisJS, OptionsComponentExts, OptionsConfig, OptionsErasableSyntaxOnly, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsNuxt, OptionsOverrides, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsTypescriptWithErasableSyntaxOnly, OptionsVue, ResolvedOptions, Rules, StylisticConfig, TypedFlatConfigItem, combine, eienjs as default, defaultPluginRenaming, eienjs, ensurePackages, getOverrides, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, parserPlain, resolveSubOptions, toArray };
7
+ export { Awaitable, CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_EXTS, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsAdonisJS, OptionsComponentExts, OptionsConfig, OptionsErasableSyntaxOnly, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsNuxt, OptionsOverrides, OptionsPnpm, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsTypescriptWithErasableSyntaxOnly, OptionsVue, ResolvedOptions, Rules, StylisticConfig, TypedFlatConfigItem, combine, eienjs as default, defaultPluginRenaming, eienjs, ensurePackages, getOverrides, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, parserPlain, resolveSubOptions, toArray };
package/dist/index.mjs CHANGED
@@ -1,9 +1,10 @@
1
1
  import { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_EXTS, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML } from "./globs.mjs";
2
2
  import { combine, ensurePackages, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, parserPlain, toArray } from "./utils.mjs";
3
3
  import { defaultPluginRenaming, eienjs, getOverrides, resolveSubOptions } from "./factory.mjs";
4
+ import { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON } from "./config_presets.mjs";
4
5
 
5
6
  //#region src/index.ts
6
7
  var src_default = eienjs;
7
8
 
8
9
  //#endregion
9
- export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_EXTS, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, combine, src_default as default, defaultPluginRenaming, eienjs, ensurePackages, getOverrides, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, parserPlain, resolveSubOptions, toArray };
10
+ export { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_EXTS, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, combine, src_default as default, defaultPluginRenaming, eienjs, ensurePackages, getOverrides, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, parserPlain, resolveSubOptions, toArray };
@@ -6,6 +6,21 @@ import path from "node:path";
6
6
 
7
7
  //#region node_modules/.pnpm/find-up-simple@1.0.1/node_modules/find-up-simple/index.js
8
8
  const toPath = (urlOrPath) => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
9
+ async function findUp(name, { cwd = process.cwd(), type = "file", stopAt } = {}) {
10
+ let directory = path.resolve(toPath(cwd) ?? "");
11
+ const { root } = path.parse(directory);
12
+ stopAt = path.resolve(directory, toPath(stopAt ?? root));
13
+ const isAbsoluteName = path.isAbsolute(name);
14
+ while (directory) {
15
+ const filePath = isAbsoluteName ? name : path.join(directory, name);
16
+ try {
17
+ const stats = await fsPromises.stat(filePath);
18
+ if (type === "file" && stats.isFile() || type === "directory" && stats.isDirectory()) return filePath;
19
+ } catch {}
20
+ if (directory === stopAt || directory === root) break;
21
+ directory = path.dirname(directory);
22
+ }
23
+ }
9
24
  function findUpSync(name, { cwd = process.cwd(), type = "file", stopAt } = {}) {
10
25
  let directory = path.resolve(toPath(cwd) ?? "");
11
26
  const { root } = path.parse(directory);
@@ -23,4 +38,4 @@ function findUpSync(name, { cwd = process.cwd(), type = "file", stopAt } = {}) {
23
38
  }
24
39
 
25
40
  //#endregion
26
- export { findUpSync };
41
+ export { findUp, findUpSync };
package/dist/package.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "1.7.0";
2
+ var version = "1.8.0";
3
3
 
4
4
  //#endregion
5
5
  export { version };
@@ -3,6 +3,21 @@ import { Linter } from "eslint";
3
3
  //#region src/typegen.d.ts
4
4
 
5
5
  interface RuleOptions {
6
+ /**
7
+ * Disallow importing backend code in frontend (Inertia) files
8
+ * @see https://github.com/adonisjs/eslint-plugin-adonisjs#no-backend-import-in-frontend
9
+ */
10
+ '@adonisjs/no-backend-import-in-frontend'?: Linter.RuleEntry<AdonisjsNoBackendImportInFrontend>;
11
+ /**
12
+ * Prefer the typesafe @adonisjs/inertia Form component over the @inertiajs Form component
13
+ * @see https://github.com/adonisjs/eslint-plugin-adonisjs#prefer-adonisjs-inertia-form
14
+ */
15
+ '@adonisjs/prefer-adonisjs-inertia-form'?: Linter.RuleEntry<[]>;
16
+ /**
17
+ * Prefer the typesafe @adonisjs/inertia Link component over the @inertiajs Link component
18
+ * @see https://github.com/adonisjs/eslint-plugin-adonisjs#prefer-adonisjs-inertia-link
19
+ */
20
+ '@adonisjs/prefer-adonisjs-inertia-link'?: Linter.RuleEntry<[]>;
6
21
  /**
7
22
  * (Needed for HMR) Prefer lazy controller import over standard import
8
23
  * @see https://github.com/adonisjs/eslint-plugin-adonisjs#prefer-lazy-controller-import
@@ -1003,6 +1018,11 @@ interface RuleOptions {
1003
1018
  * @see https://typescript-eslint.io/rules/no-useless-constructor
1004
1019
  */
1005
1020
  '@typescript-eslint/no-useless-constructor'?: Linter.RuleEntry<[]>;
1021
+ /**
1022
+ * Disallow default values that will never be used
1023
+ * @see https://typescript-eslint.io/rules/no-useless-default-assignment
1024
+ */
1025
+ '@typescript-eslint/no-useless-default-assignment'?: Linter.RuleEntry<[]>;
1006
1026
  /**
1007
1027
  * Disallow empty exports that don't change anything in a module file
1008
1028
  * @see https://typescript-eslint.io/rules/no-useless-empty-export
@@ -1837,6 +1857,11 @@ interface RuleOptions {
1837
1857
  * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/consistent-type-specifier-style/README.md
1838
1858
  */
1839
1859
  'import/consistent-type-specifier-style'?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>;
1860
+ /**
1861
+ * Ensure all exports appear after other statements.
1862
+ * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/exports-last/README.md
1863
+ */
1864
+ 'import/exports-last'?: Linter.RuleEntry<[]>;
1840
1865
  /**
1841
1866
  * Ensure all imports appear before other statements.
1842
1867
  * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/first/README.md
@@ -3739,6 +3764,11 @@ interface RuleOptions {
3739
3764
  * @deprecated
3740
3765
  */
3741
3766
  'nonblock-statement-body-position'?: Linter.RuleEntry<NonblockStatementBodyPosition>;
3767
+ /**
3768
+ * Disallow setting `test` key in Nuxt config
3769
+ * @see https://eslint.nuxt.com/packages/plugin#nuxtno-nuxt-config-test-key
3770
+ */
3771
+ 'nuxt/no-nuxt-config-test-key'?: Linter.RuleEntry<[]>;
3742
3772
  /**
3743
3773
  * Prefer recommended order of Nuxt config properties
3744
3774
  * @see https://eslint.nuxt.com/packages/plugin#nuxtnuxt-config-keys-order
@@ -4718,6 +4748,11 @@ interface RuleOptions {
4718
4748
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-test-return-statement.md
4719
4749
  */
4720
4750
  'test/no-test-return-statement'?: Linter.RuleEntry<[]>;
4751
+ /**
4752
+ * Disallow unnecessary async function wrapper for expected promises
4753
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-unneeded-async-expect-function.md
4754
+ */
4755
+ 'test/no-unneeded-async-expect-function'?: Linter.RuleEntry<[]>;
4721
4756
  /**
4722
4757
  * Enforce padding around `afterAll` blocks
4723
4758
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-after-all-blocks.md
@@ -4888,6 +4923,11 @@ interface RuleOptions {
4888
4923
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-contain.md
4889
4924
  */
4890
4925
  'test/prefer-to-contain'?: Linter.RuleEntry<[]>;
4926
+ /**
4927
+ * Suggest using `toHaveBeenCalledTimes()`
4928
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-been-called-times.md
4929
+ */
4930
+ 'test/prefer-to-have-been-called-times'?: Linter.RuleEntry<[]>;
4891
4931
  /**
4892
4932
  * enforce using toHaveLength()
4893
4933
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-length.md
@@ -4913,11 +4953,6 @@ interface RuleOptions {
4913
4953
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-hook.md
4914
4954
  */
4915
4955
  'test/require-hook'?: Linter.RuleEntry<TestRequireHook>;
4916
- /**
4917
- * require usage of import in vi.mock()
4918
- * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-import-vi-mock.md
4919
- */
4920
- 'test/require-import-vi-mock'?: Linter.RuleEntry<[]>;
4921
4956
  /**
4922
4957
  * require local Test Context for concurrent snapshot tests
4923
4958
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-local-test-context-for-concurrent-snapshots.md
@@ -7236,6 +7271,10 @@ interface RuleOptions {
7236
7271
  'yoda'?: Linter.RuleEntry<Yoda>;
7237
7272
  }
7238
7273
  /* ======= Declarations ======= */
7274
+ // ----- @adonisjs/no-backend-import-in-frontend -----
7275
+ type AdonisjsNoBackendImportInFrontend = [] | [{
7276
+ allowed?: string[];
7277
+ }];
7239
7278
  // ----- @eslint-community/eslint-comments/disable-enable-pair -----
7240
7279
  type EslintCommunityEslintCommentsDisableEnablePair = [] | [{
7241
7280
  allowWholeFile?: boolean;
@@ -13696,7 +13735,6 @@ type PnpmYamlEnforceSettings = [] | [{
13696
13735
  };
13697
13736
  requiredFields?: string[];
13698
13737
  forbiddenFields?: string[];
13699
- [k: string]: unknown | undefined;
13700
13738
  }];
13701
13739
  // ----- pnpm/yaml-no-duplicate-catalog-item -----
13702
13740
  type PnpmYamlNoDuplicateCatalogItem = [] | [{
@@ -15894,6 +15932,6 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
15894
15932
  onlyEquality?: boolean;
15895
15933
  }];
15896
15934
  // Names of all the configs
15897
- type ConfigNames = 'eienjs/gitignore' | 'eienjs/ignores' | 'eienjs/javascript/setup' | 'eienjs/javascript/rules' | 'eienjs/eslint-comments/rules' | 'eienjs/node/rules' | 'eienjs/jsdoc/rules' | 'eienjs/imports/rules' | 'eienjs/command/rules' | 'eienjs/perfectionist/setup' | 'eienjs/imports/rules' | 'eienjs/unicorn/rules' | 'eienjs/unicorn/special-rules' | 'eienjs/typescript/setup' | 'eienjs/typescript/parser' | 'eienjs/typescript/type-aware-parser' | 'eienjs/typescript/rules' | 'eienjs/typescript/rules-type-aware' | 'eienjs/typescript/disables' | 'eienjs/typescript/erasable-syntax-only' | 'eienjs/stylistic/rules' | 'eienjs/regexp/rules' | 'eienjs/test/setup' | 'eienjs/test/rules' | 'eienjs/vue/setup' | 'eienjs/vue/rules' | 'eienjs/vue/composables-disables' | 'eienjs/astro/setup' | 'eienjs/astro/rules' | 'eienjs/adonisjs/rules' | 'eienjs/adonisjs/disables' | 'eienjs/adonisjs/database-disables' | 'eienjs/adonisjs/bin-disables' | 'eienjs/adonisjs/commands-disables' | 'eienjs/adonisjs/middleware-disables' | 'eienjs/adonisjs/exceptions-disables' | 'eienjs/adonisjs/controllers-disables' | 'eienjs/adonisjs/config-disables' | 'eienjs/adonisjs/providers-disables' | 'eienjs/adonisjs/tests-disables' | 'eienjs/nuxt/setup' | 'eienjs/nuxt/vue/single-root' | 'eienjs/nuxt/rules' | 'eienjs/nuxt/utils-disables' | 'eienjs/nuxt/sort-config' | 'eienjs/nuxt/vue/rules' | 'eienjs/jsonc/setup' | 'eienjs/jsonc/rules' | 'eienjs/sort/package-json' | 'eienjs/sort/tsconfig-json' | 'eienjs/pnpm/package-json' | 'eienjs/pnpm/pnpm-workspace-yaml' | 'eienjs/pnpm/pnpm-workspace-yaml-sort' | 'eienjs/yaml/setup' | 'eienjs/yaml/rules' | 'eienjs/toml/setup' | 'eienjs/toml/rules' | 'eienjs/markdown/setup' | 'eienjs/markdown/processor' | 'eienjs/markdown/parser' | 'eienjs/markdown/disables' | 'eienjs/formatter/setup' | 'eienjs/formatter/css' | 'eienjs/formatter/scss' | 'eienjs/formatter/less' | 'eienjs/formatter/html' | 'eienjs/formatter/xml' | 'eienjs/formatter/svg' | 'eienjs/formatter/markdown' | 'eienjs/formatter/astro' | 'eienjs/formatter/astro/disables' | 'eienjs/disables/scripts' | 'eienjs/disables/cli' | 'eienjs/disables/bin' | 'eienjs/disables/dts' | 'eienjs/disables/cjs' | 'eienjs/disables/config-files' | 'eienjs/disables/json' | 'eienjs/disables/yaml' | 'eienjs/disables/toml' | 'eienjs/disables/astro' | 'eienjs/disables/deploy-tools';
15935
+ type ConfigNames = 'eienjs/gitignore' | 'eienjs/ignores' | 'eienjs/javascript/setup' | 'eienjs/javascript/rules' | 'eienjs/eslint-comments/rules' | 'eienjs/command/rules' | 'eienjs/perfectionist/setup' | 'eienjs/node/rules' | 'eienjs/jsdoc/rules' | 'eienjs/imports/rules' | 'eienjs/unicorn/rules' | 'eienjs/unicorn/special-rules' | 'eienjs/typescript/setup' | 'eienjs/typescript/parser' | 'eienjs/typescript/type-aware-parser' | 'eienjs/typescript/rules' | 'eienjs/typescript/rules-type-aware' | 'eienjs/typescript/disables' | 'eienjs/typescript/erasable-syntax-only' | 'eienjs/stylistic/rules' | 'eienjs/regexp/rules' | 'eienjs/test/setup' | 'eienjs/test/rules' | 'eienjs/vue/setup' | 'eienjs/vue/rules' | 'eienjs/vue/composables-disables' | 'eienjs/astro/setup' | 'eienjs/astro/rules' | 'eienjs/adonisjs/rules' | 'eienjs/adonisjs/inertia-rules' | 'eienjs/adonisjs/disables' | 'eienjs/adonisjs/database-disables' | 'eienjs/adonisjs/bin-disables' | 'eienjs/adonisjs/commands-disables' | 'eienjs/adonisjs/middleware-disables' | 'eienjs/adonisjs/exceptions-disables' | 'eienjs/adonisjs/controllers-disables' | 'eienjs/adonisjs/config-disables' | 'eienjs/adonisjs/providers-disables' | 'eienjs/adonisjs/tests-disables' | 'eienjs/adonisjs/types-disables' | 'eienjs/nuxt/setup' | 'eienjs/nuxt/vue/single-root' | 'eienjs/nuxt/rules' | 'eienjs/nuxt/utils-disables' | 'eienjs/nuxt/sort-config' | 'eienjs/nuxt/vue/rules' | 'eienjs/jsonc/setup' | 'eienjs/jsonc/rules' | 'eienjs/sort/package-json' | 'eienjs/sort/tsconfig-json' | 'eienjs/pnpm/package-json' | 'eienjs/pnpm/pnpm-workspace-yaml' | 'eienjs/pnpm/pnpm-workspace-yaml-sort' | 'eienjs/yaml/setup' | 'eienjs/yaml/rules' | 'eienjs/toml/setup' | 'eienjs/toml/rules' | 'eienjs/markdown/setup' | 'eienjs/markdown/processor' | 'eienjs/markdown/parser' | 'eienjs/markdown/disables' | 'eienjs/formatter/setup' | 'eienjs/formatter/css' | 'eienjs/formatter/scss' | 'eienjs/formatter/less' | 'eienjs/formatter/html' | 'eienjs/formatter/xml' | 'eienjs/formatter/svg' | 'eienjs/formatter/markdown' | 'eienjs/formatter/astro' | 'eienjs/formatter/astro/disables' | 'eienjs/disables/scripts' | 'eienjs/disables/cli' | 'eienjs/disables/bin' | 'eienjs/disables/dts' | 'eienjs/disables/cjs' | 'eienjs/disables/config-files' | 'eienjs/disables/json' | 'eienjs/disables/yaml' | 'eienjs/disables/toml' | 'eienjs/disables/astro' | 'eienjs/disables/deploy-tools';
15898
15936
  //#endregion
15899
15937
  export { ConfigNames, RuleOptions };
package/dist/types.d.mts CHANGED
@@ -131,6 +131,8 @@ interface OptionsAdonisJS extends OptionsOverrides {
131
131
  tests?: string;
132
132
  config?: string;
133
133
  commands?: string;
134
+ inertia?: string;
135
+ types?: string;
134
136
  };
135
137
  }
136
138
  interface OptionsVue extends OptionsOverrides {
@@ -278,6 +280,32 @@ interface OptionsRegExp {
278
280
  interface OptionsIsInEditor {
279
281
  isInEditor?: boolean;
280
282
  }
283
+ interface OptionsPnpm extends OptionsIsInEditor {
284
+ /**
285
+ * Requires catalogs usage
286
+ *
287
+ * Detects automatically based if `catalogs` is used in the pnpm-workspace.yaml file
288
+ */
289
+ catalogs?: boolean;
290
+ /**
291
+ * Enable linting for package.json, will install the jsonc parser
292
+ *
293
+ * @default true
294
+ */
295
+ json?: boolean;
296
+ /**
297
+ * Enable linting for pnpm-workspace.yaml, will install the yaml parser
298
+ *
299
+ * @default true
300
+ */
301
+ yaml?: boolean;
302
+ /**
303
+ * Sort entries in pnpm-workspace.yaml
304
+ *
305
+ * @default false
306
+ */
307
+ sort?: boolean;
308
+ }
281
309
  interface OptionsConfig extends OptionsComponentExts {
282
310
  /**
283
311
  * Enable gitignore support.
@@ -301,6 +329,18 @@ interface OptionsConfig extends OptionsComponentExts {
301
329
  * Core rules. Can't be disabled.
302
330
  */
303
331
  javascript?: OptionsOverrides;
332
+ /**
333
+ * Enable Node.js rules
334
+ *
335
+ * @default true
336
+ */
337
+ node?: boolean;
338
+ /**
339
+ * Enable JSDoc rules
340
+ *
341
+ * @default true
342
+ */
343
+ jsdoc?: boolean;
304
344
  /**
305
345
  * Enable TypeScript support.
306
346
  *
@@ -395,7 +435,7 @@ interface OptionsConfig extends OptionsComponentExts {
395
435
  * @experimental
396
436
  * @default false
397
437
  */
398
- pnpm?: boolean;
438
+ pnpm?: boolean | OptionsPnpm;
399
439
  /**
400
440
  * Use external formatters to format files.
401
441
  *
@@ -432,4 +472,4 @@ interface OptionsConfig extends OptionsComponentExts {
432
472
  nuxt?: boolean | OptionsNuxt;
433
473
  }
434
474
  //#endregion
435
- export { Awaitable, OptionsAdonisJS, OptionsComponentExts, OptionsConfig, OptionsErasableSyntaxOnly, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsNuxt, OptionsOverrides, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsTypescriptWithErasableSyntaxOnly, OptionsVue, Rules, StylisticConfig, TypedFlatConfigItem };
475
+ export { Awaitable, OptionsAdonisJS, OptionsComponentExts, OptionsConfig, OptionsErasableSyntaxOnly, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsNuxt, OptionsOverrides, OptionsPnpm, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsTypescriptWithErasableSyntaxOnly, OptionsVue, Rules, StylisticConfig, TypedFlatConfigItem };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eienjs/eslint-config",
3
3
  "type": "module",
4
- "version": "1.7.0",
4
+ "version": "1.8.0",
5
5
  "description": "EienJS ESLint Config",
6
6
  "author": "Fernando Isidro <luffynando@gmail.com> (https://github.com/luffynando/)",
7
7
  "license": "MIT",
@@ -27,7 +27,7 @@
27
27
  "main": "./dist/index.mjs",
28
28
  "module": "./dist/index.mjs",
29
29
  "types": "./dist/index.d.mts",
30
- "bin": "./bin/index.js",
30
+ "bin": "./bin/index.mjs",
31
31
  "files": [
32
32
  "bin",
33
33
  "dist"
@@ -36,11 +36,11 @@
36
36
  "node": ">=20.19"
37
37
  },
38
38
  "peerDependencies": {
39
- "@adonisjs/eslint-plugin": "^2.0.1",
40
- "@nuxt/eslint-plugin": "^1.11.0",
39
+ "@adonisjs/eslint-plugin": "^2.2.0",
40
+ "@nuxt/eslint-plugin": "^1.12.1",
41
41
  "@prettier/plugin-xml": "^3.4.2",
42
42
  "astro-eslint-parser": "^1.2.2",
43
- "eslint": "^9.39.1",
43
+ "eslint": "^9.39.2",
44
44
  "eslint-plugin-astro": "^1.5.0",
45
45
  "eslint-plugin-erasable-syntax-only": "^0.4.0",
46
46
  "eslint-plugin-format": "^1.1.0",
@@ -78,50 +78,50 @@
78
78
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
79
79
  "@eslint/markdown": "^7.5.1",
80
80
  "@stylistic/eslint-plugin": "^5.6.1",
81
- "@typescript-eslint/eslint-plugin": "^8.48.1",
82
- "@typescript-eslint/parser": "^8.48.1",
83
- "@vitest/eslint-plugin": "^1.5.1",
81
+ "@typescript-eslint/eslint-plugin": "^8.50.0",
82
+ "@typescript-eslint/parser": "^8.50.0",
83
+ "@vitest/eslint-plugin": "^1.6.1",
84
84
  "ansis": "^4.2.0",
85
85
  "cac": "^6.7.14",
86
86
  "eslint-config-flat-gitignore": "^2.1.0",
87
87
  "eslint-flat-config-utils": "^2.1.4",
88
88
  "eslint-merge-processors": "^2.0.0",
89
89
  "eslint-plugin-antfu": "^3.1.1",
90
- "eslint-plugin-command": "^3.3.1",
91
- "eslint-plugin-import-lite": "^0.3.0",
92
- "eslint-plugin-jsdoc": "^61.4.2",
90
+ "eslint-plugin-command": "^3.4.0",
91
+ "eslint-plugin-import-lite": "^0.4.0",
92
+ "eslint-plugin-jsdoc": "^61.5.0",
93
93
  "eslint-plugin-jsonc": "^2.21.0",
94
94
  "eslint-plugin-n": "^17.23.1",
95
95
  "eslint-plugin-no-only-tests": "^3.3.0",
96
96
  "eslint-plugin-perfectionist": "^4.15.1",
97
- "eslint-plugin-pnpm": "^1.4.1",
97
+ "eslint-plugin-pnpm": "^1.4.3",
98
98
  "eslint-plugin-regexp": "^2.10.0",
99
99
  "eslint-plugin-toml": "^0.12.0",
100
100
  "eslint-plugin-unicorn": "^62.0.0",
101
101
  "eslint-plugin-unused-imports": "^4.3.0",
102
102
  "eslint-plugin-vue": "^10.6.2",
103
- "eslint-plugin-yml": "^1.19.0",
103
+ "eslint-plugin-yml": "^1.19.1",
104
104
  "eslint-processor-vue-blocks": "^2.0.0",
105
105
  "globals": "^16.5.0",
106
- "jsonc-eslint-parser": "^2.4.1",
106
+ "jsonc-eslint-parser": "^2.4.2",
107
107
  "local-pkg": "^1.1.2",
108
108
  "parse-gitignore": "^2.0.0",
109
109
  "pathe": "^2.0.3",
110
- "toml-eslint-parser": "^0.10.0",
110
+ "toml-eslint-parser": "^0.10.1",
111
111
  "vue-eslint-parser": "^10.2.0",
112
112
  "yaml-eslint-parser": "^1.3.2"
113
113
  },
114
114
  "devDependencies": {
115
- "@adonisjs/eslint-plugin": "^2.0.1",
115
+ "@adonisjs/eslint-plugin": "^2.2.0",
116
116
  "@commitlint/cli": "^20.2.0",
117
117
  "@commitlint/config-conventional": "^20.2.0",
118
118
  "@eslint/config-inspector": "^1.4.2",
119
- "@nuxt/eslint-plugin": "^1.11.0",
119
+ "@nuxt/eslint-plugin": "^1.12.1",
120
120
  "@prettier/plugin-xml": "^3.4.2",
121
- "@types/node": "^24.10.1",
121
+ "@types/node": "^24.10.4",
122
122
  "astro-eslint-parser": "^1.2.2",
123
123
  "auto-changelog": "^2.5.0",
124
- "eslint": "^9.39.1",
124
+ "eslint": "^9.39.2",
125
125
  "eslint-plugin-astro": "^1.5.0",
126
126
  "eslint-plugin-erasable-syntax-only": "^0.4.0",
127
127
  "eslint-plugin-format": "^1.1.0",
@@ -129,9 +129,9 @@
129
129
  "find-up-simple": "^1.0.1",
130
130
  "husky": "^9.1.7",
131
131
  "np": "^10.2.0",
132
- "pnpm-workspace-yaml": "^1.4.1",
132
+ "pnpm-workspace-yaml": "^1.4.3",
133
133
  "prettier-plugin-astro": "^0.14.1",
134
- "tsdown": "^0.17.0",
134
+ "tsdown": "^0.18.2",
135
135
  "tsx": "^4.21.0",
136
136
  "typescript": "^5.9.3"
137
137
  },
File without changes