@ntnyq/eslint-config 7.0.0-beta.20 → 7.0.0-beta.21

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.
Files changed (3) hide show
  1. package/dist/index.d.mts +733 -362
  2. package/dist/index.mjs +182 -129
  3. package/package.json +17 -16
package/dist/index.mjs CHANGED
@@ -29,6 +29,7 @@ import pluginDeMorgan from "eslint-plugin-de-morgan";
29
29
  import pluginNoOnlyTests from "eslint-plugin-no-only-tests";
30
30
  import pluginGitHubAction from "eslint-plugin-github-action";
31
31
  import pluginPerfectionist from "eslint-plugin-perfectionist";
32
+ import pluginVuePerfectionist from "eslint-plugin-vue-perfectionist";
32
33
  import * as pluginESLintComments from "@eslint-community/eslint-plugin-eslint-comments";
33
34
  import processorVueBlocks from "eslint-processor-vue-blocks";
34
35
  import { resolve } from "node:path";
@@ -58,6 +59,9 @@ const GLOB_TYPES = [
58
59
  `**/types/${GLOB_TS}`,
59
60
  `**/types.ts`
60
61
  ];
62
+ const GLOB_VUE = "**/*.vue";
63
+ const GLOB_PINIA_STORE = `**/store?(s)/*.${GLOB_SRC_EXT}`;
64
+ const GLOB_VUE_COMPOSABLES = [`**/composables/*.${GLOB_SRC_EXT}`, `**/use*${GLOB_SRC_EXT}`];
61
65
  const GLOB_TYPE_TEST = [`**/*.test-d.${GLOB_SRC_EXT}`, `**/*.spec-d.${GLOB_SRC_EXT}`];
62
66
  const GLOB_TEST = [
63
67
  `**/*.test.${GLOB_SRC_EXT}`,
@@ -79,8 +83,8 @@ const GLOB_JSON_SCHEMA = ["**/*.schema.json", "**/schemas/*.json"];
79
83
  const GLOB_TSCONFIG_JSON = ["**/tsconfig.json", "**/tsconfig.*.json"];
80
84
  const GLOB_YAML = "**/*.y?(a)ml";
81
85
  const GLOB_PNPM_WORKSPACE_YAML = "**/pnpm-workspace.yaml";
86
+ const GLOB_GITHUB_ACTION = "**/.github/workflows/*.y?(a)ml";
82
87
  const GLOB_SVG = "**/*.svg";
83
- const GLOB_VUE = "**/*.vue";
84
88
  const GLOB_SVELTE = "**/*.svelte?(.{js,ts})";
85
89
  const GLOB_TOML = "**/*.toml";
86
90
  const GLOB_HTML = "**/*.htm?(l)";
@@ -103,8 +107,6 @@ const GLOB_ALL_SRC = [
103
107
  GLOB_VUE,
104
108
  ...GLOB_SRC_EXTENSIONS
105
109
  ];
106
- const GLOB_PINIA_STORE = `**/store?(s)/*.${GLOB_SRC_EXT}`;
107
- const GLOB_GITHUB_ACTION = "**/.github/workflows/*.y?(a)ml";
108
110
  const GLOB_NODE_MODULES = "**/node_modules/**";
109
111
  const GLOB_DIST = "**/dist/**";
110
112
  const GLOB_LOCKFILE = [
@@ -165,6 +167,127 @@ const GLOB_EXCLUDE = [
165
167
  "**/.*/skills"
166
168
  ];
167
169
  //#endregion
170
+ //#region src/utils/env.ts
171
+ /**
172
+ * Check whether Pinia is available in the current project.
173
+ */
174
+ const hasPinia = () => isPackageExists("pinia");
175
+ /**
176
+ * Check whether Vitest is available in the current project.
177
+ */
178
+ const hasVitest = () => isPackageExists("vitest");
179
+ /**
180
+ * Check whether TypeScript runtime or preview package is available.
181
+ */
182
+ const hasTypeScript = () => isPackageExists("typescript") || isPackageExists("@typescript/native-preview");
183
+ /**
184
+ * Check whether shadcn-vue related dependencies are available.
185
+ */
186
+ const hasShadcnVue = () => (isPackageExists("radix-vue") || isPackageExists("reka-ui")) && isPackageExists("class-variance-authority") && isPackageExists("clsx");
187
+ /**
188
+ * Check whether UnoCSS runtime packages are available.
189
+ */
190
+ const hasUnoCSS = () => isPackageExists("unocss") || isPackageExists("@unocss/postcss") || isPackageExists("@unocss/webpack") || isPackageExists("@unocss/nuxt");
191
+ /**
192
+ * Check whether Vue ecosystem packages are available.
193
+ */
194
+ const hasVue = () => isPackageExists("vue") || isPackageExists("nuxt") || isPackageExists("vitepress") || isPackageExists("vuepress") || isPackageExists("@slidev/cli") || isPackageExists("vue", { paths: [resolve(process.cwd(), "playground"), resolve(process.cwd(), "docs")] });
195
+ /**
196
+ * Check whether oxfmt is available in the current project.
197
+ */
198
+ const hasOxfmt = () => isPackageExists("oxfmt");
199
+ /**
200
+ * Check whether Prettier is available in the current project.
201
+ */
202
+ const hasPrettier = () => isPackageExists("prettier");
203
+ //#endregion
204
+ //#region src/utils/resolveSubOptions.ts
205
+ /**
206
+ * Normalize a sub-option value to an object.
207
+ *
208
+ * Boolean `true` means enabled with default options and returns an empty
209
+ * object; falsy values also fall back to an empty object.
210
+ *
211
+ * @param options - Options object that contains sub-options.
212
+ * @param key - Sub-option key to resolve.
213
+ * @returns Normalized sub-options object.
214
+ */
215
+ function resolveSubOptions(options, key) {
216
+ return typeof options[key] === "boolean" ? {} : options[key] || {};
217
+ }
218
+ //#endregion
219
+ //#region src/utils/getOverrides.ts
220
+ /**
221
+ * Read rule overrides from a config sub-option.
222
+ *
223
+ * @param options - Top-level config options.
224
+ * @param key - Sub-option key to read.
225
+ * @returns Rule override map when provided, otherwise an empty object.
226
+ */
227
+ function getOverrides(options, key) {
228
+ const subOptions = resolveSubOptions(options, key);
229
+ return "overrides" in subOptions && subOptions.overrides ? subOptions.overrides : {};
230
+ }
231
+ //#endregion
232
+ //#region src/utils/isInGitHooksOrRunBySpecifyPackages.ts
233
+ const CHECKED_RUNNER_PACKAGES = [
234
+ "nano-staged",
235
+ "lint-staged",
236
+ "lefthook",
237
+ "tsx"
238
+ ];
239
+ /**
240
+ * Detect whether current execution is triggered by git hook tooling.
241
+ */
242
+ function isInGitHooksOrRunBySpecifyPackages() {
243
+ return !!(process.env.GIT_PARAMS || process.env.VSCODE_GIT_COMMAND || CHECKED_RUNNER_PACKAGES.some((packageName) => process.env.npm_lifecycle_script?.startsWith(packageName)));
244
+ }
245
+ //#endregion
246
+ //#region src/utils/ensurePackages.ts
247
+ /**
248
+ * @copyright {@link https://github.com/antfu/eslint-config}
249
+ */
250
+ const isCwdInScope = isPackageExists("@ntnyq/eslint-config");
251
+ /**
252
+ * Check whether a package can be resolved from this config package scope.
253
+ */
254
+ function isPackageInScope(name) {
255
+ return isPackageExists(name, { paths: [import.meta.dirname] });
256
+ }
257
+ /**
258
+ * Ensure required packages are installed for optional config features.
259
+ *
260
+ * Skips installation prompts in CI, non-TTY environments, git hooks, and
261
+ * when the current project is outside the config usage scope.
262
+ *
263
+ * @param packages - Package names to verify and optionally install.
264
+ */
265
+ async function ensurePackages(packages) {
266
+ if (process.env.CI || !process.stdout.isTTY || isInGitHooksOrRunBySpecifyPackages() || !isCwdInScope) return;
267
+ const nonExistingPackages = packages.filter((pkg) => !!pkg && !isPackageInScope(pkg));
268
+ if (nonExistingPackages.length === 0) return;
269
+ const { confirm, isCancel } = await import("@clack/prompts");
270
+ const confirmInstall = await confirm({ message: `${nonExistingPackages.length === 1 ? "Package is" : "Packages are"} required for this config: ${nonExistingPackages.join(", ")}. Do you want to install them?` });
271
+ if (isCancel(confirmInstall) || !confirmInstall) return;
272
+ try {
273
+ const { installPackage } = await import("@antfu/install-pkg");
274
+ await installPackage(nonExistingPackages, { dev: true });
275
+ } catch (error) {
276
+ throw new Error(`Failed to install required packages: ${nonExistingPackages.join(", ")}`, { cause: error });
277
+ }
278
+ }
279
+ //#endregion
280
+ //#region src/utils/interopDefault.ts
281
+ /**
282
+ * Interop default export from a module
283
+ * @param mod - The module
284
+ * @returns The default export
285
+ */
286
+ async function interopDefault(mod) {
287
+ const resolved = await mod;
288
+ return resolved.default || resolved;
289
+ }
290
+ //#endregion
168
291
  //#region src/configs/vue.ts
169
292
  const sharedRules = {
170
293
  ...pluginVue.configs.base.rules,
@@ -345,7 +468,8 @@ const unCategorizedRules = {
345
468
  * @returns ESLint configs
346
469
  */
347
470
  const configVue = (options = {}) => {
348
- const { files = [GLOB_VUE], ecmaVersion = "latest", extraFileExtensions = [], typescript = false } = options;
471
+ const { files = [GLOB_VUE], ecmaVersion = "latest", extraFileExtensions = [], typescript = false, vuePerfectionist: enableVuePerfectionist = false } = options;
472
+ const vuePerfectionistOptions = resolveSubOptions(options, "vuePerfectionist");
349
473
  const sfcBlocks = options.sfcBlocks === true ? {} : options.sfcBlocks ?? {};
350
474
  function getVueProcessor() {
351
475
  const processorVueSFC = pluginVue.processors[".vue"];
@@ -358,7 +482,7 @@ const configVue = (options = {}) => {
358
482
  }
359
483
  })]);
360
484
  }
361
- return [{
485
+ const configs = [{
362
486
  name: "ntnyq/vue/setup",
363
487
  plugins: {
364
488
  ...typescript ? { "@typescript-eslint": pluginTypeScript } : {},
@@ -505,6 +629,43 @@ const configVue = (options = {}) => {
505
629
  ...options.overrides
506
630
  }
507
631
  }];
632
+ if (enableVuePerfectionist) configs.push({
633
+ name: "ntnyq/vue/vue-perfectionist",
634
+ files: vuePerfectionistOptions.files ?? [
635
+ "**/*.vue",
636
+ GLOB_PINIA_STORE,
637
+ ...GLOB_VUE_COMPOSABLES
638
+ ],
639
+ plugins: { "vue-perfectionist": pluginVuePerfectionist },
640
+ rules: {
641
+ "vue-perfectionist/callback-style": "error",
642
+ "vue-perfectionist/define-macros-newline": "error",
643
+ "vue-perfectionist/prefer-ref-pattern": "error",
644
+ "vue-perfectionist/sort-script-setup": ["error", { groups: [
645
+ ["interface", "type"],
646
+ "define-props",
647
+ "define-emits",
648
+ "define-options",
649
+ "define-slots",
650
+ "define-model",
651
+ "constant",
652
+ "inject",
653
+ "composable",
654
+ "template-ref",
655
+ ["ref", "reactive"],
656
+ "computed",
657
+ "variable",
658
+ ["enum", "class"],
659
+ "function",
660
+ "watch",
661
+ "lifecycle-hook",
662
+ "provide",
663
+ "define-expose"
664
+ ] }],
665
+ ...vuePerfectionistOptions.overrides
666
+ }
667
+ });
668
+ return configs;
508
669
  };
509
670
  //#endregion
510
671
  //#region src/configs/yml.ts
@@ -575,127 +736,6 @@ const configYml = (options = {}) => {
575
736
  }];
576
737
  };
577
738
  //#endregion
578
- //#region src/utils/env.ts
579
- /**
580
- * Check whether Pinia is available in the current project.
581
- */
582
- const hasPinia = () => isPackageExists("pinia");
583
- /**
584
- * Check whether Vitest is available in the current project.
585
- */
586
- const hasVitest = () => isPackageExists("vitest");
587
- /**
588
- * Check whether TypeScript runtime or preview package is available.
589
- */
590
- const hasTypeScript = () => isPackageExists("typescript") || isPackageExists("@typescript/native-preview");
591
- /**
592
- * Check whether shadcn-vue related dependencies are available.
593
- */
594
- const hasShadcnVue = () => (isPackageExists("radix-vue") || isPackageExists("reka-ui")) && isPackageExists("class-variance-authority") && isPackageExists("clsx");
595
- /**
596
- * Check whether UnoCSS runtime packages are available.
597
- */
598
- const hasUnoCSS = () => isPackageExists("unocss") || isPackageExists("@unocss/postcss") || isPackageExists("@unocss/webpack") || isPackageExists("@unocss/nuxt");
599
- /**
600
- * Check whether Vue ecosystem packages are available.
601
- */
602
- const hasVue = () => isPackageExists("vue") || isPackageExists("nuxt") || isPackageExists("vitepress") || isPackageExists("vuepress") || isPackageExists("@slidev/cli") || isPackageExists("vue", { paths: [resolve(process.cwd(), "playground"), resolve(process.cwd(), "docs")] });
603
- /**
604
- * Check whether oxfmt is available in the current project.
605
- */
606
- const hasOxfmt = () => isPackageExists("oxfmt");
607
- /**
608
- * Check whether Prettier is available in the current project.
609
- */
610
- const hasPrettier = () => isPackageExists("prettier");
611
- //#endregion
612
- //#region src/utils/resolveSubOptions.ts
613
- /**
614
- * Normalize a sub-option value to an object.
615
- *
616
- * Boolean `true` means enabled with default options and returns an empty
617
- * object; falsy values also fall back to an empty object.
618
- *
619
- * @param options - Options object that contains sub-options.
620
- * @param key - Sub-option key to resolve.
621
- * @returns Normalized sub-options object.
622
- */
623
- function resolveSubOptions(options, key) {
624
- return typeof options[key] === "boolean" ? {} : options[key] || {};
625
- }
626
- //#endregion
627
- //#region src/utils/getOverrides.ts
628
- /**
629
- * Read rule overrides from a config sub-option.
630
- *
631
- * @param options - Top-level config options.
632
- * @param key - Sub-option key to read.
633
- * @returns Rule override map when provided, otherwise an empty object.
634
- */
635
- function getOverrides(options, key) {
636
- const subOptions = resolveSubOptions(options, key);
637
- return "overrides" in subOptions && subOptions.overrides ? subOptions.overrides : {};
638
- }
639
- //#endregion
640
- //#region src/utils/isInGitHooksOrRunBySpecifyPackages.ts
641
- const CHECKED_RUNNER_PACKAGES = [
642
- "nano-staged",
643
- "lint-staged",
644
- "lefthook",
645
- "tsx"
646
- ];
647
- /**
648
- * Detect whether current execution is triggered by git hook tooling.
649
- */
650
- function isInGitHooksOrRunBySpecifyPackages() {
651
- return !!(process.env.GIT_PARAMS || process.env.VSCODE_GIT_COMMAND || CHECKED_RUNNER_PACKAGES.some((packageName) => process.env.npm_lifecycle_script?.startsWith(packageName)));
652
- }
653
- //#endregion
654
- //#region src/utils/ensurePackages.ts
655
- /**
656
- * @copyright {@link https://github.com/antfu/eslint-config}
657
- */
658
- const isCwdInScope = isPackageExists("@ntnyq/eslint-config");
659
- /**
660
- * Check whether a package can be resolved from this config package scope.
661
- */
662
- function isPackageInScope(name) {
663
- return isPackageExists(name, { paths: [import.meta.dirname] });
664
- }
665
- /**
666
- * Ensure required packages are installed for optional config features.
667
- *
668
- * Skips installation prompts in CI, non-TTY environments, git hooks, and
669
- * when the current project is outside the config usage scope.
670
- *
671
- * @param packages - Package names to verify and optionally install.
672
- */
673
- async function ensurePackages(packages) {
674
- if (process.env.CI || !process.stdout.isTTY || isInGitHooksOrRunBySpecifyPackages() || !isCwdInScope) return;
675
- const nonExistingPackages = packages.filter((pkg) => !!pkg && !isPackageInScope(pkg));
676
- if (nonExistingPackages.length === 0) return;
677
- const { confirm, isCancel } = await import("@clack/prompts");
678
- const confirmInstall = await confirm({ message: `${nonExistingPackages.length === 1 ? "Package is" : "Packages are"} required for this config: ${nonExistingPackages.join(", ")}. Do you want to install them?` });
679
- if (isCancel(confirmInstall) || !confirmInstall) return;
680
- try {
681
- const { installPackage } = await import("@antfu/install-pkg");
682
- await installPackage(nonExistingPackages, { dev: true });
683
- } catch (error) {
684
- throw new Error(`Failed to install required packages: ${nonExistingPackages.join(", ")}`, { cause: error });
685
- }
686
- }
687
- //#endregion
688
- //#region src/utils/interopDefault.ts
689
- /**
690
- * Interop default export from a module
691
- * @param mod - The module
692
- * @returns The default export
693
- */
694
- async function interopDefault(mod) {
695
- const resolved = await mod;
696
- return resolved.default || resolved;
697
- }
698
- //#endregion
699
739
  //#region src/configs/html.ts
700
740
  /**
701
741
  * Config for html files
@@ -2033,6 +2073,10 @@ const configUnicorn = (options = {}) => {
2033
2073
  */
2034
2074
  "unicorn/explicit-length-check": "off",
2035
2075
  /**
2076
+ * Conditional mutations
2077
+ */
2078
+ "unicorn/no-immediate-mutation": "off",
2079
+ /**
2036
2080
  * @see https://caniuse.com/?search=globalThis
2037
2081
  */
2038
2082
  "unicorn/prefer-global-this": "off",
@@ -2050,6 +2094,8 @@ const configUnicorn = (options = {}) => {
2050
2094
  "unicorn/no-new-buffer": "error",
2051
2095
  "unicorn/no-typeof-undefined": "error",
2052
2096
  "unicorn/no-unnecessary-global-this": "error",
2097
+ "unicorn/no-unused-builtin-method-return": "error",
2098
+ "unicorn/no-using-resource-escape": "error",
2053
2099
  /**
2054
2100
  * @pg Class
2055
2101
  */
@@ -2061,8 +2107,11 @@ const configUnicorn = (options = {}) => {
2061
2107
  /**
2062
2108
  * @pg Control Flow
2063
2109
  */
2110
+ "unicorn/no-accidental-bitwise-operator": "error",
2111
+ "unicorn/no-chained-comparison": "error",
2064
2112
  "unicorn/no-constant-zero-expression": "error",
2065
2113
  "unicorn/no-double-comparison": "error",
2114
+ "unicorn/no-duplicate-logical-operands": "error",
2066
2115
  "unicorn/no-for-loop": "error",
2067
2116
  "unicorn/no-lonely-if": "error",
2068
2117
  "unicorn/no-unnecessary-boolean-comparison": "error",
@@ -2073,6 +2122,7 @@ const configUnicorn = (options = {}) => {
2073
2122
  "unicorn/no-useless-continue": "error",
2074
2123
  "unicorn/no-useless-else": "error",
2075
2124
  "unicorn/prefer-block-statement-over-iife": "error",
2125
+ "unicorn/prefer-combined-guards": "error",
2076
2126
  "unicorn/switch-case-braces": ["error", "avoid"],
2077
2127
  "unicorn/switch-case-break-position": "error",
2078
2128
  /**
@@ -2099,7 +2149,6 @@ const configUnicorn = (options = {}) => {
2099
2149
  /**
2100
2150
  * @pg Function
2101
2151
  */
2102
- "unicorn/no-immediate-mutation": "error",
2103
2152
  "unicorn/prefer-prototype-methods": "error",
2104
2153
  "unicorn/prefer-reflect-apply": "error",
2105
2154
  /**
@@ -2140,6 +2189,7 @@ const configUnicorn = (options = {}) => {
2140
2189
  */
2141
2190
  "unicorn/consistent-date-clone": "error",
2142
2191
  "unicorn/prefer-date-now": "error",
2192
+ "unicorn/prefer-temporal-conversion": "error",
2143
2193
  /**
2144
2194
  * @pg String
2145
2195
  */
@@ -2185,6 +2235,7 @@ const configUnicorn = (options = {}) => {
2185
2235
  "unicorn/no-array-fill-with-reference-type": "error",
2186
2236
  "unicorn/no-array-from-fill": "error",
2187
2237
  "unicorn/no-array-method-this-argument": "error",
2238
+ "unicorn/no-boolean-sort-comparator": "error",
2188
2239
  "unicorn/no-confusing-array-splice": "error",
2189
2240
  "unicorn/no-confusing-array-with": "error",
2190
2241
  "unicorn/no-duplicate-loops": "error",
@@ -2192,7 +2243,6 @@ const configUnicorn = (options = {}) => {
2192
2243
  "unicorn/no-unnecessary-array-flat-depth": "error",
2193
2244
  "unicorn/no-unnecessary-array-splice-count": "error",
2194
2245
  "unicorn/no-unnecessary-slice-end": "error",
2195
- "unicorn/no-unused-array-method-return": "error",
2196
2246
  "unicorn/prefer-array-find": "error",
2197
2247
  "unicorn/prefer-array-flat-map": "error",
2198
2248
  "unicorn/prefer-array-from-range": "error",
@@ -2206,11 +2256,14 @@ const configUnicorn = (options = {}) => {
2206
2256
  /**
2207
2257
  * @pg Iterator
2208
2258
  */
2259
+ "unicorn/no-async-iterator-callback": "error",
2260
+ "unicorn/no-unused-iterator-helper": "error",
2209
2261
  "unicorn/no-useless-iterator-to-array": "error",
2210
2262
  /**
2211
2263
  * @pg Set
2212
2264
  */
2213
2265
  "unicorn/no-duplicate-set-values": "error",
2266
+ "unicorn/no-useless-set-construction": "error",
2214
2267
  "unicorn/prefer-set-has": "error",
2215
2268
  "unicorn/prefer-set-size": "error",
2216
2269
  /**
@@ -3429,4 +3482,4 @@ function defineESLintConfig(options = {}, ...userConfigs) {
3429
3482
  return new FlatConfigComposer(...configs, ...userConfigs, ...formatterConfigs);
3430
3483
  }
3431
3484
  //#endregion
3432
- export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DIST, GLOB_DTS, GLOB_EXCLUDE, GLOB_GITHUB_ACTION, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSON_SCHEMA, GLOB_JSX, GLOB_JSX_ONLY, GLOB_LESS, GLOB_LOCKFILE, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_NESTED, GLOB_NODE_MODULES, GLOB_PACKAGE_JSON, GLOB_PINIA_STORE, GLOB_PNPM_WORKSPACE_YAML, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TEST, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG_JSON, GLOB_TSX, GLOB_TSX_ONLY, GLOB_TYPES, GLOB_TYPE_TEST, GLOB_VUE, GLOB_YAML, PERFECTIONIST, configAntfu, configAstro, configCommand, configDeMorgan, configDepend, configESLintComments, configESLintPlugin, configGitHubAction, configGitIgnore, configHtml, configIgnores, configImportX, configJSX, configJavaScript, configJsdoc, configJsonc, configMarkdown, configNode, configNtnyq, configOxfmt, configPerfectionist, configPinia, configPnpm, configPrettier, configRegexp, configSVGO, configSort, configSpecials, configSvelte, configTest, configToml, configTypeScript, configUnicorn, configUnoCSS, configUnusedImports, configVue, configYml, configsTypeScript, defineESLintConfig, ensurePackages, getOverrides, hasOxfmt, hasPinia, hasPrettier, hasShadcnVue, hasTypeScript, hasUnoCSS, hasVitest, hasVue, interopDefault, isInGitHooksOrRunBySpecifyPackages, mergeProcessors, parserJsonc, parserPlain, parserToml, parserTypeScript, parserVue, parserYaml, pluginAntfu, pluginDeMorgan, pluginDepend, pluginESLintComments, pluginGitHubAction, pluginImportX, pluginJsdoc, pluginJsonc, pluginMarkdown, pluginNoOnlyTests, pluginNode, pluginNtnyq, pluginOxfmt, pluginPerfectionist, pluginPinia, pluginPrettier, pluginRegexp, pluginSvgo, pluginToml, pluginTypeScript, pluginUnicorn, pluginUnoCSS, pluginVitest, pluginVue, pluginYml, processorPassThrough, processorVueBlocks, resolveSubOptions };
3485
+ export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DIST, GLOB_DTS, GLOB_EXCLUDE, GLOB_GITHUB_ACTION, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSON_SCHEMA, GLOB_JSX, GLOB_JSX_ONLY, GLOB_LESS, GLOB_LOCKFILE, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_NESTED, GLOB_NODE_MODULES, GLOB_PACKAGE_JSON, GLOB_PINIA_STORE, GLOB_PNPM_WORKSPACE_YAML, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TEST, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG_JSON, GLOB_TSX, GLOB_TSX_ONLY, GLOB_TYPES, GLOB_TYPE_TEST, GLOB_VUE, GLOB_VUE_COMPOSABLES, GLOB_YAML, PERFECTIONIST, configAntfu, configAstro, configCommand, configDeMorgan, configDepend, configESLintComments, configESLintPlugin, configGitHubAction, configGitIgnore, configHtml, configIgnores, configImportX, configJSX, configJavaScript, configJsdoc, configJsonc, configMarkdown, configNode, configNtnyq, configOxfmt, configPerfectionist, configPinia, configPnpm, configPrettier, configRegexp, configSVGO, configSort, configSpecials, configSvelte, configTest, configToml, configTypeScript, configUnicorn, configUnoCSS, configUnusedImports, configVue, configYml, configsTypeScript, defineESLintConfig, ensurePackages, getOverrides, hasOxfmt, hasPinia, hasPrettier, hasShadcnVue, hasTypeScript, hasUnoCSS, hasVitest, hasVue, interopDefault, isInGitHooksOrRunBySpecifyPackages, mergeProcessors, parserJsonc, parserPlain, parserToml, parserTypeScript, parserVue, parserYaml, pluginAntfu, pluginDeMorgan, pluginDepend, pluginESLintComments, pluginGitHubAction, pluginImportX, pluginJsdoc, pluginJsonc, pluginMarkdown, pluginNoOnlyTests, pluginNode, pluginNtnyq, pluginOxfmt, pluginPerfectionist, pluginPinia, pluginPrettier, pluginRegexp, pluginSvgo, pluginToml, pluginTypeScript, pluginUnicorn, pluginUnoCSS, pluginVitest, pluginVue, pluginVuePerfectionist, pluginYml, processorPassThrough, processorVueBlocks, resolveSubOptions };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ntnyq/eslint-config",
3
3
  "type": "module",
4
- "version": "7.0.0-beta.20",
4
+ "version": "7.0.0-beta.21",
5
5
  "description": "An opinionated ESLint config preset of ntnyq",
6
6
  "keywords": [
7
7
  "eslint",
@@ -89,8 +89,8 @@
89
89
  "@eslint-community/eslint-plugin-eslint-comments": "^4.8.1",
90
90
  "@eslint/js": "^10.0.1",
91
91
  "@eslint/markdown": "^8.0.3",
92
- "@ntnyq/utils": "^0.22.0",
93
- "@unocss/eslint-plugin": "^66.10.4",
92
+ "@ntnyq/utils": "^0.23.0",
93
+ "@unocss/eslint-plugin": "^66.10.5",
94
94
  "@vitest/eslint-plugin": "^1.6.27",
95
95
  "eslint-config-flat-gitignore": "^2.4.0",
96
96
  "eslint-flat-config-utils": "^3.2.0",
@@ -99,51 +99,52 @@
99
99
  "eslint-parser-plain": "^0.1.1",
100
100
  "eslint-plugin-antfu": "^3.2.3",
101
101
  "eslint-plugin-command": "^4.0.0",
102
- "eslint-plugin-de-morgan": "^2.1.3",
102
+ "eslint-plugin-de-morgan": "^2.2.0",
103
103
  "eslint-plugin-depend": "^1.5.0",
104
104
  "eslint-plugin-github-action": "^0.4.0",
105
105
  "eslint-plugin-import-x": "^4.17.1",
106
- "eslint-plugin-jsdoc": "^64.5.0",
106
+ "eslint-plugin-jsdoc": "^64.5.4",
107
107
  "eslint-plugin-jsonc": "^3.4.2",
108
108
  "eslint-plugin-n": "^18.3.0",
109
109
  "eslint-plugin-no-only-tests": "^3.4.0",
110
110
  "eslint-plugin-ntnyq": "^0.17.0",
111
- "eslint-plugin-oxfmt": "^0.24.0",
112
- "eslint-plugin-perfectionist": "^5.11.1",
111
+ "eslint-plugin-oxfmt": "^0.25.0",
112
+ "eslint-plugin-perfectionist": "^5.12.0",
113
113
  "eslint-plugin-pinia": "^0.4.2",
114
114
  "eslint-plugin-prettier": "^5.5.6",
115
- "eslint-plugin-regexp": "^3.3.0",
115
+ "eslint-plugin-regexp": "^3.3.1",
116
116
  "eslint-plugin-svgo": "^0.14.0",
117
117
  "eslint-plugin-toml": "^1.5.0",
118
- "eslint-plugin-unicorn": "^74.0.0",
118
+ "eslint-plugin-unicorn": "^76.0.0",
119
119
  "eslint-plugin-vue": "^10.11.0",
120
+ "eslint-plugin-vue-perfectionist": "^0.2.0",
120
121
  "eslint-plugin-yml": "^3.8.1",
121
122
  "eslint-processor-vue-blocks": "^2.0.0",
122
123
  "globals": "^17.12.0",
123
124
  "jsonc-eslint-parser": "^3.3.0",
124
125
  "local-pkg": "^1.2.1",
125
126
  "toml-eslint-parser": "^1.0.3",
126
- "typescript-eslint": "^8.70.0",
127
+ "typescript-eslint": "^8.70.1",
127
128
  "vue-eslint-parser": "^10.4.1",
128
129
  "yaml-eslint-parser": "^2.1.0"
129
130
  },
130
131
  "devDependencies": {
131
- "@types/node": "^26.6.1",
132
- "@typescript-eslint/types": "^8.70.0",
132
+ "@types/node": "^26.6.2",
133
+ "@typescript-eslint/types": "^8.70.1",
133
134
  "@typescript/native-preview": "npm:typescript@^7.0.2",
134
135
  "bumpp": "^12.3.0",
135
136
  "consola": "^3.4.2",
136
- "eslint": "^10.10.0",
137
+ "eslint": "^10.11.0",
137
138
  "eslint-typegen": "^2.3.1",
138
139
  "husky": "^9.1.7",
139
140
  "jiti": "^2.7.0",
140
141
  "nano-staged": "^1.0.2",
141
142
  "npm-run-all2": "^9.0.3",
142
- "oxfmt": "^0.68.0",
143
- "prettier": "^3.9.6",
143
+ "oxfmt": "^0.70.0",
144
+ "prettier": "^3.9.8",
144
145
  "tinyglobby": "^0.2.17",
145
146
  "tsdown": "^0.23.0",
146
- "tsx": "^4.23.13",
147
+ "tsx": "^4.23.15",
147
148
  "typescript": "npm:@typescript/typescript6@^6.0.2",
148
149
  "uncase": "^0.3.0",
149
150
  "vitest": "^5.0.1"