knip 6.42.0 → 6.43.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.
Files changed (62) hide show
  1. package/dist/ConfigurationChief.d.ts +18 -0
  2. package/dist/IssueFixer.js +10 -5
  3. package/dist/WorkspaceWorker.js +15 -10
  4. package/dist/binaries/resolvers/bun.js +1 -0
  5. package/dist/binaries/resolvers/npm.js +12 -2
  6. package/dist/binaries/resolvers/pnpm.js +5 -3
  7. package/dist/compilers/compilers.js +2 -2
  8. package/dist/compilers/scss.js +2 -22
  9. package/dist/compilers/shared.d.ts +1 -1
  10. package/dist/compilers/shared.js +24 -1
  11. package/dist/constants.js +2 -0
  12. package/dist/plugins/_vue/auto-import.js +31 -1
  13. package/dist/plugins/buf/index.d.ts +3 -0
  14. package/dist/plugins/buf/index.js +33 -0
  15. package/dist/plugins/buf/types.d.ts +8 -0
  16. package/dist/plugins/buf/types.js +1 -0
  17. package/dist/plugins/bun/index.js +13 -0
  18. package/dist/plugins/electron-forge/index.d.ts +3 -0
  19. package/dist/plugins/electron-forge/index.js +94 -0
  20. package/dist/plugins/eslint/helpers.d.ts +1 -0
  21. package/dist/plugins/eslint/helpers.js +1 -1
  22. package/dist/plugins/eslint/resolveFromAST.js +35 -10
  23. package/dist/plugins/expo/helpers.d.ts +1 -1
  24. package/dist/plugins/expo/helpers.js +15 -8
  25. package/dist/plugins/expo/types.d.ts +2 -1
  26. package/dist/plugins/index.d.ts +3 -0
  27. package/dist/plugins/index.js +6 -0
  28. package/dist/plugins/jest/index.js +11 -7
  29. package/dist/plugins/mcp/index.d.ts +3 -0
  30. package/dist/plugins/mcp/index.js +33 -0
  31. package/dist/plugins/mcp/types.d.ts +11 -0
  32. package/dist/plugins/mcp/types.js +1 -0
  33. package/dist/plugins/next/index.d.ts +3 -0
  34. package/dist/plugins/next/index.js +57 -9
  35. package/dist/plugins/next/types.d.ts +11 -0
  36. package/dist/plugins/next/types.js +1 -0
  37. package/dist/plugins/semantic-release/index.js +32 -3
  38. package/dist/plugins/semantic-release/types.d.ts +1 -0
  39. package/dist/plugins/tailwind/compiler.js +14 -2
  40. package/dist/plugins/travis/index.js +2 -2
  41. package/dist/plugins/typescript/index.js +2 -4
  42. package/dist/plugins/vitest/helpers.d.ts +1 -1
  43. package/dist/plugins/vitest/helpers.js +13 -3
  44. package/dist/plugins/vitest/index.js +54 -46
  45. package/dist/plugins/vitest/types.d.ts +11 -7
  46. package/dist/run.js +1 -1
  47. package/dist/schema/configuration.d.ts +45 -0
  48. package/dist/schema/plugins.d.ts +15 -0
  49. package/dist/schema/plugins.js +3 -0
  50. package/dist/types/PluginNames.d.ts +2 -2
  51. package/dist/types/PluginNames.js +3 -0
  52. package/dist/types/config.d.ts +1 -0
  53. package/dist/typescript/ast-nodes.js +3 -3
  54. package/dist/typescript/visitors/exports.js +5 -4
  55. package/dist/typescript/visitors/walk.js +13 -1
  56. package/dist/util/create-options.d.ts +30 -0
  57. package/dist/util/modules.js +2 -1
  58. package/dist/util/remove-export.js +3 -1
  59. package/dist/version.d.ts +1 -1
  60. package/dist/version.js +1 -1
  61. package/package.json +4 -4
  62. package/schema.json +12 -0
@@ -1,32 +1,32 @@
1
1
  import { DEFAULT_EXTENSIONS } from '../../constants.js';
2
2
  import { filterTransitiveDependencies } from '../../util/filter-transitive-dependencies.js';
3
- import { _glob } from '../../util/glob.js';
3
+ import { findFileWithExtensions } from '../../util/fs.js';
4
+ import { _dirGlob, _glob } from '../../util/glob.js';
4
5
  import { toConfig, toDeferResolve, toDependency, toEntry, toProductionEntry } from '../../util/input.js';
5
6
  import { getPackageNameFromModuleSpecifier } from '../../util/modules.js';
6
- import { isAbsolute, isInternal, join, toAbsolute, toPosix } from '../../util/path.js';
7
+ import { basename, isAbsolute, isInternal, join, toAbsolute, toPosix } from '../../util/path.js';
7
8
  import { hasDependency } from '../../util/plugin.js';
8
9
  import { resolveExtendedConfig } from '../oxlint/index.js';
9
10
  import { getHtmlScriptEntries, getIndexHtmlEntries } from '../vite/helpers.js';
10
- import { getAliasInputs, getEnvSpecifier, getExternalReporters } from './helpers.js';
11
+ import { getAliasInputs, getExternalReporters, toEnvDependency } from './helpers.js';
11
12
  import { createVitestMockVisitor } from './visitors/mock.js';
12
13
  const title = 'Vitest';
13
14
  const enablers = ['vitest', 'vite-plus'];
14
15
  const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
16
+ const configExtensions = ['.ts', '.mts', '.cts', '.js', '.mjs', '.cjs'];
17
+ const projectConfigFile = /^vite(?:st)?(?:\.[\w-]+)?\.config\./;
15
18
  const config = ['vitest.config.{js,mjs,ts,cjs,mts,cts}', 'vitest.{workspace,projects}.{js,mjs,ts,cjs,mts,cts,json}'];
16
19
  const mocks = ['**/__mocks__/**/*.?(c|m)[jt]s?(x)'];
17
20
  const testEntry = ['**/*.{bench,test,test-d,spec,spec-d}.?(c|m)[jt]s?(x)'];
18
21
  const entry = [...testEntry, ...mocks];
19
22
  const benchmark = ['**/*.bench.?(c|m)[jt]s?(x)'];
23
+ const isProjectConfig = (project) => typeof project === 'object' && !(project instanceof Promise);
20
24
  const findConfigDependencies = (localConfig, options, vitestRoot) => {
21
25
  const testConfig = localConfig.test;
22
26
  if (!testConfig)
23
27
  return [];
24
28
  const env = testConfig.environment;
25
- const environments = env && env !== 'node'
26
- ? isInternal(env) || isAbsolute(env)
27
- ? [toDeferResolve(env)]
28
- : [toDependency(getEnvSpecifier(env))]
29
- : [];
29
+ const environments = env && env !== 'node' ? (isInternal(env) || isAbsolute(env) ? [toDeferResolve(env)] : [toEnvDependency(env)]) : [];
30
30
  const reporters = getExternalReporters(testConfig.reporters).map(specifier => isInternal(specifier) || isAbsolute(specifier)
31
31
  ? { ...toDeferResolve(specifier), dir: vitestRoot }
32
32
  : toDependency(specifier));
@@ -51,7 +51,7 @@ const findConfigDependencies = (localConfig, options, vitestRoot) => {
51
51
  const projectsDependencies = [];
52
52
  if (testConfig.projects !== undefined) {
53
53
  for (const projectConfig of testConfig.projects) {
54
- if (typeof projectConfig !== 'string') {
54
+ if (isProjectConfig(projectConfig)) {
55
55
  projectsDependencies.push(...findConfigDependencies(projectConfig, options, vitestRoot));
56
56
  }
57
57
  }
@@ -79,30 +79,31 @@ const getConfigs = async (localConfig) => {
79
79
  if (typeof config === 'function') {
80
80
  for (const command of ['serve', 'build']) {
81
81
  for (const mode of ['development', 'production']) {
82
- for (const ssrBuild of command === 'build' ? [undefined, false, true] : [undefined]) {
83
- const cfg = await config({ command, mode, ssrBuild });
84
- configs.push(cfg);
85
- if (cfg.test?.projects) {
86
- for (const project of cfg.test.projects) {
87
- if (typeof project !== 'string') {
88
- configs.push(project);
89
- }
90
- }
91
- }
82
+ for (const isSsrBuild of command === 'build' ? [undefined, false, true] : [undefined]) {
83
+ const cfg = await config({ command, mode, isSsrBuild, ssrBuild: isSsrBuild });
84
+ configs.push(cfg, ...(await getProjectConfigs(cfg, command === 'serve' && mode === 'development')));
92
85
  }
93
86
  }
94
87
  }
95
88
  }
96
89
  else {
97
- configs.push(config);
98
- if (config.test?.projects) {
99
- for (const project of config.test.projects) {
100
- if (typeof project !== 'string') {
101
- configs.push(project);
102
- }
103
- }
104
- }
90
+ configs.push(config, ...(await getProjectConfigs(config)));
91
+ }
92
+ }
93
+ }
94
+ return configs;
95
+ };
96
+ const projectEnv = { command: 'serve', mode: 'test', isPreview: false, isSsrBuild: false };
97
+ const getProjectConfigs = async (config, isCallFunctions = true) => {
98
+ const configs = [];
99
+ if (config.test?.projects) {
100
+ for (const project of config.test.projects) {
101
+ if (typeof project === 'function') {
102
+ if (isCallFunctions)
103
+ configs.push(await project(projectEnv));
105
104
  }
105
+ else if (typeof project !== 'string')
106
+ configs.push(await project);
106
107
  }
107
108
  }
108
109
  return configs;
@@ -112,23 +113,30 @@ export const resolveConfig = async (localConfig, options) => {
112
113
  const lintInputs = [];
113
114
  inputs.add(toEntry(join(options.cwd, 'src/vite-env.d.ts')));
114
115
  const configs = await getConfigs(localConfig);
116
+ const patterns = new Set();
115
117
  for (const cfg of configs) {
116
- if (cfg.test?.projects) {
117
- for (const project of cfg.test.projects) {
118
- if (typeof project === 'string') {
119
- const projectFiles = await _glob({
120
- cwd: options.cwd,
121
- patterns: [project],
122
- gitignore: false,
123
- });
124
- for (const projectFile of projectFiles) {
125
- inputs.add(toConfig('vitest', projectFile));
126
- }
127
- }
128
- else if (typeof project.extends === 'string') {
129
- inputs.add(toConfig('vitest', project.extends));
130
- }
131
- }
118
+ for (const project of cfg.test?.projects ?? []) {
119
+ if (typeof project === 'string')
120
+ patterns.add(project);
121
+ else if (isProjectConfig(project) && typeof project.extends === 'string')
122
+ inputs.add(toConfig('vitest', project.extends));
123
+ }
124
+ }
125
+ if (patterns.size > 0) {
126
+ const [files, dirs] = await Promise.all([
127
+ _glob({ cwd: options.cwd, patterns: [...patterns], gitignore: false }),
128
+ _dirGlob({ cwd: options.cwd, patterns: [...patterns], gitignore: false }),
129
+ ]);
130
+ for (const file of files) {
131
+ if (projectConfigFile.test(basename(file)))
132
+ inputs.add(toConfig('vitest', file));
133
+ }
134
+ for (const dir of dirs) {
135
+ const projectRoot = toAbsolute(dir, options.cwd);
136
+ const configFile = findFileWithExtensions(join(projectRoot, 'vitest.config'), configExtensions) ??
137
+ findFileWithExtensions(join(projectRoot, 'vite.config'), configExtensions);
138
+ if (configFile)
139
+ inputs.add(toConfig('vitest', configFile));
132
140
  }
133
141
  }
134
142
  const addAliases = (aliasOptions) => {
@@ -156,7 +164,7 @@ export const resolveConfig = async (localConfig, options) => {
156
164
  : toAbsolute('.', options.configFileDir);
157
165
  const vitestRoot = !cfg.test?.root && cfg.root && !options.isResolvedConfigFile ? toAbsolute(cfg.root, options.cwd) : testRoot;
158
166
  const dir = cfg.test?.dir ? toAbsolute(cfg.test.dir, testRoot) : vitestRoot;
159
- if (cfg.test) {
167
+ if (cfg.test || options.pluginName === 'vitest') {
160
168
  if (cfg.test?.include) {
161
169
  for (const dependency of cfg.test.include)
162
170
  dependency[0] !== '!' && inputs.add(toEntry(join(dir, dependency)));
@@ -171,7 +179,7 @@ export const resolveConfig = async (localConfig, options) => {
171
179
  if (!options.config.entry)
172
180
  for (const dependency of mocks)
173
181
  inputs.add(toEntry(join(vitestRoot, dependency)));
174
- if (cfg.test.alias)
182
+ if (cfg.test?.alias)
175
183
  addAliases(cfg.test.alias);
176
184
  }
177
185
  if (cfg.resolve?.alias)
@@ -239,7 +247,7 @@ const args = {
239
247
  }
240
248
  }
241
249
  if (parsed['environment'] && parsed['environment'] !== 'node') {
242
- inputs.push(toDependency(getEnvSpecifier(parsed['environment'])));
250
+ inputs.push(toEnvDependency(parsed['environment']));
243
251
  }
244
252
  if (typeof parsed['typecheck'] === 'object' && parsed['typecheck'].checker) {
245
253
  inputs.push(toDependency(parsed['typecheck'].checker === 'tsc' ? 'typescript' : parsed['typecheck'].checker));
@@ -29,11 +29,7 @@ interface VitestConfig {
29
29
  workspace: never;
30
30
  };
31
31
  })[];
32
- projects?: (string | (ViteConfig & {
33
- test: VitestConfig['test'] & {
34
- projects: never;
35
- };
36
- }))[];
32
+ projects?: (string | VitestProject)[];
37
33
  alias?: AliasOptions;
38
34
  };
39
35
  }
@@ -73,12 +69,20 @@ export interface ViteConfig extends VitestConfig {
73
69
  };
74
70
  }
75
71
  export type COMMAND = 'serve' | 'build';
76
- export type MODE = 'development' | 'production';
77
- interface Options {
72
+ export type MODE = 'development' | 'production' | 'test';
73
+ export interface Options {
78
74
  command: COMMAND;
79
75
  mode: MODE;
76
+ isSsrBuild?: boolean | undefined;
80
77
  ssrBuild?: boolean | undefined;
78
+ isPreview?: boolean | undefined;
81
79
  }
82
80
  export type ViteConfigOrFn = ViteConfig | ((options: Options) => ViteConfig) | ((options: Options) => Promise<ViteConfig>);
81
+ export type VitestProjectConfig = ViteConfig & {
82
+ test: VitestConfig['test'] & {
83
+ projects: never;
84
+ };
85
+ };
86
+ export type VitestProject = VitestProjectConfig | Promise<VitestProjectConfig> | ((options: Options) => VitestProjectConfig | Promise<VitestProjectConfig>);
83
87
  export type VitestWorkspaceConfig = (string | ViteConfig)[];
84
88
  export {};
package/dist/run.js CHANGED
@@ -114,7 +114,7 @@ export const run = async (options) => {
114
114
  entryPaths,
115
115
  });
116
116
  if (options.isWatch)
117
- watch('.', { recursive: true }, session.listener);
117
+ watch(options.cwd, { recursive: true }, session.listener);
118
118
  }
119
119
  const { issues, counters, tagHints, configurationHints, hasConfigLoadErrors } = collector.getIssues();
120
120
  if (!options.isWatch)
@@ -46,6 +46,11 @@ export declare const workspaceConfigurationSchema: z.ZodMiniObject<{
46
46
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
47
47
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
48
48
  }, z.core.$strip>]>>;
49
+ buf: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
50
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
51
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
52
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
53
+ }, z.core.$strip>]>>;
49
54
  bumpp: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
50
55
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
51
56
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -146,6 +151,11 @@ export declare const workspaceConfigurationSchema: z.ZodMiniObject<{
146
151
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
147
152
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
148
153
  }, z.core.$strip>]>>;
154
+ 'electron-forge': z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
155
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
156
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
157
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
158
+ }, z.core.$strip>]>>;
149
159
  'electron-vite': z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
150
160
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
151
161
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -326,6 +336,11 @@ export declare const workspaceConfigurationSchema: z.ZodMiniObject<{
326
336
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
327
337
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
328
338
  }, z.core.$strip>]>>;
339
+ mcp: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
340
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
341
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
342
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
343
+ }, z.core.$strip>]>>;
329
344
  mdx: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
330
345
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
331
346
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -1038,6 +1053,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
1038
1053
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1039
1054
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1040
1055
  }, z.core.$strip>]>>;
1056
+ buf: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
1057
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1058
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1059
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1060
+ }, z.core.$strip>]>>;
1041
1061
  bumpp: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
1042
1062
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1043
1063
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -1138,6 +1158,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
1138
1158
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1139
1159
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1140
1160
  }, z.core.$strip>]>>;
1161
+ 'electron-forge': z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
1162
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1163
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1164
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1165
+ }, z.core.$strip>]>>;
1141
1166
  'electron-vite': z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
1142
1167
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1143
1168
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -1318,6 +1343,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
1318
1343
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1319
1344
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1320
1345
  }, z.core.$strip>]>>;
1346
+ mcp: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
1347
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1348
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1349
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1350
+ }, z.core.$strip>]>>;
1321
1351
  mdx: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
1322
1352
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
1323
1353
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -2049,6 +2079,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
2049
2079
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2050
2080
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2051
2081
  }, z.core.$strip>]>>;
2082
+ buf: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
2083
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2084
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2085
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2086
+ }, z.core.$strip>]>>;
2052
2087
  bumpp: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
2053
2088
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2054
2089
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -2149,6 +2184,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
2149
2184
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2150
2185
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2151
2186
  }, z.core.$strip>]>>;
2187
+ 'electron-forge': z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
2188
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2189
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2190
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2191
+ }, z.core.$strip>]>>;
2152
2192
  'electron-vite': z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
2153
2193
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2154
2194
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -2329,6 +2369,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
2329
2369
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2330
2370
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2331
2371
  }, z.core.$strip>]>>;
2372
+ mcp: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
2373
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2374
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2375
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2376
+ }, z.core.$strip>]>>;
2332
2377
  mdx: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
2333
2378
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
2334
2379
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -51,6 +51,11 @@ export declare const pluginsSchema: z.ZodMiniObject<{
51
51
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
52
52
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
53
53
  }, z.core.$strip>]>;
54
+ buf: z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
55
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
56
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
57
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
58
+ }, z.core.$strip>]>;
54
59
  bumpp: z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
55
60
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
56
61
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -151,6 +156,11 @@ export declare const pluginsSchema: z.ZodMiniObject<{
151
156
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
152
157
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
153
158
  }, z.core.$strip>]>;
159
+ 'electron-forge': z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
160
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
161
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
162
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
163
+ }, z.core.$strip>]>;
154
164
  'electron-vite': z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
155
165
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
156
166
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -331,6 +341,11 @@ export declare const pluginsSchema: z.ZodMiniObject<{
331
341
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
332
342
  project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
333
343
  }, z.core.$strip>]>;
344
+ mcp: z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
345
+ config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
346
+ entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
347
+ project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
348
+ }, z.core.$strip>]>;
334
349
  mdx: z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
335
350
  config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
336
351
  entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
@@ -19,6 +19,7 @@ export const pluginsSchema = z.object({
19
19
  babel: pluginSchema,
20
20
  biome: pluginSchema,
21
21
  borp: pluginSchema,
22
+ buf: pluginSchema,
22
23
  bumpp: pluginSchema,
23
24
  bun: pluginSchema,
24
25
  c8: pluginSchema,
@@ -39,6 +40,7 @@ export const pluginsSchema = z.object({
39
40
  docusaurus: pluginSchema,
40
41
  dotenv: pluginSchema,
41
42
  drizzle: pluginSchema,
43
+ 'electron-forge': pluginSchema,
42
44
  'electron-vite': pluginSchema,
43
45
  eleventy: pluginSchema,
44
46
  esbuild: pluginSchema,
@@ -75,6 +77,7 @@ export const pluginsSchema = z.object({
75
77
  lunaria: pluginSchema,
76
78
  markdownlint: pluginSchema,
77
79
  marko: pluginSchema,
80
+ mcp: pluginSchema,
78
81
  mdx: pluginSchema,
79
82
  mdxlint: pluginSchema,
80
83
  metro: pluginSchema,
@@ -1,2 +1,2 @@
1
- export type PluginName = 'angular' | 'astro' | 'astro-db' | 'astro-markdoc' | 'astro-og-canvas' | 'ava' | 'babel' | 'biome' | 'borp' | 'bumpp' | 'bun' | 'c8' | 'capacitor' | 'catalyst' | 'changelogen' | 'changelogithub' | 'changesets' | 'commitizen' | 'commitlint' | 'convex' | 'create-typescript-app' | 'cspell' | 'cucumber' | 'cypress' | 'danger' | 'dependency-cruiser' | 'docusaurus' | 'dotenv' | 'drizzle' | 'electron-vite' | 'eleventy' | 'esbuild' | 'eslint' | 'eve' | 'execa' | 'expo' | 'expo-router' | 'expressive-code' | 'fast' | 'filesystem-routing' | 'flue' | 'fumadocs' | 'gatsby' | 'github-action' | 'github-actions' | 'glob' | 'graphql-codegen' | 'hardhat' | 'husky' | 'i18next-parser' | 'jasmine' | 'jest' | 'karma' | 'knex' | 'ladle' | 'laravel-vite-plugin' | 'lefthook' | 'lint-staged' | 'linthtml' | 'lit' | 'lockfile-lint' | 'lost-pixel' | 'lunaria' | 'markdownlint' | 'marko' | 'mdx' | 'mdxlint' | 'metro' | 'mise' | 'mocha' | 'moonrepo' | 'msw' | 'nano-spawn' | 'nano-staged' | 'nest' | 'netlify' | 'next' | 'next-intl' | 'next-mdx' | 'nitro' | 'node' | 'node-modules-inspector' | 'nodemon' | 'npm-package-json-lint' | 'nuxt' | 'nuxtjs-i18n' | 'nx' | 'nyc' | 'oclif' | 'openapi-ts' | 'openclaw' | 'orval' | 'osls' | 'oxfmt' | 'oxlint' | 'panda-css' | 'parcel' | 'payload' | 'pino' | 'playwright' | 'playwright-ct' | 'playwright-test' | 'plop' | 'pm2' | 'pnpm' | 'postcss' | 'pre-commit' | 'preconstruct' | 'prettier' | 'prisma' | 'quasar' | 'qwik' | 'railway' | 'raycast' | 'react-cosmos' | 'react-email' | 'react-native' | 'react-router' | 'relay' | 'release-it' | 'remark' | 'remix' | 'rolldown' | 'rollup' | 'rsbuild' | 'rslib' | 'rspack' | 'rstest' | 'sanity' | 'semantic-release' | 'sentry' | 'serverless-framework' | 'simple-git-hooks' | 'size-limit' | 'solidjs-vite-plugin' | 'sst' | 'starlight' | 'stencil' | 'storybook' | 'stryker' | 'stylelint' | 'svelte' | 'sveltejs-package' | 'sveltekit' | 'svgo' | 'svgr' | 'swc' | 'syncpack' | 'tailwind' | 'tanstack-router' | 'taskfile' | 'tauri' | 'temporal' | 'textlint' | 'travis' | 'ts-node' | 'tsd' | 'tsdown' | 'tsrs' | 'tsup' | 'tsx' | 'turbo' | 'typedoc' | 'typescript' | 'typescript-content-mapper' | 'unbuild' | 'unocss' | 'unplugin-auto-import' | 'unplugin-icons' | 'unplugin-vue-components' | 'unplugin-vue-i18n' | 'unplugin-vue-markdown' | 'unplugin-vue-router' | 'varlock' | 'vercel' | 'vercel-og' | 'vike' | 'vite' | 'vite-plugin-pages' | 'vite-plugin-pwa' | 'vite-plugin-vue-layouts-next' | 'vite-plus' | 'vite-pwa-assets-generator' | 'vitepress' | 'vitest' | 'vue' | 'webdriver-io' | 'webpack' | 'wireit' | 'wrangler' | 'wxt' | 'xo' | 'yarn' | 'yorkie' | 'zx';
2
- export declare const pluginNames: readonly ['angular', 'astro', 'astro-db', 'astro-markdoc', 'astro-og-canvas', 'ava', 'babel', 'biome', 'borp', 'bumpp', 'bun', 'c8', 'capacitor', 'catalyst', 'changelogen', 'changelogithub', 'changesets', 'commitizen', 'commitlint', 'convex', 'create-typescript-app', 'cspell', 'cucumber', 'cypress', 'danger', 'dependency-cruiser', 'docusaurus', 'dotenv', 'drizzle', 'electron-vite', 'eleventy', 'esbuild', 'eslint', 'eve', 'execa', 'expo', 'expo-router', 'expressive-code', 'fast', 'filesystem-routing', 'flue', 'fumadocs', 'gatsby', 'github-action', 'github-actions', 'glob', 'graphql-codegen', 'hardhat', 'husky', 'i18next-parser', 'jasmine', 'jest', 'karma', 'knex', 'ladle', 'laravel-vite-plugin', 'lefthook', 'lint-staged', 'linthtml', 'lit', 'lockfile-lint', 'lost-pixel', 'lunaria', 'markdownlint', 'marko', 'mdx', 'mdxlint', 'metro', 'mise', 'mocha', 'moonrepo', 'msw', 'nano-spawn', 'nano-staged', 'nest', 'netlify', 'next', 'next-intl', 'next-mdx', 'nitro', 'node', 'node-modules-inspector', 'nodemon', 'npm-package-json-lint', 'nuxt', 'nuxtjs-i18n', 'nx', 'nyc', 'oclif', 'openapi-ts', 'openclaw', 'orval', 'osls', 'oxfmt', 'oxlint', 'panda-css', 'parcel', 'payload', 'pino', 'playwright', 'playwright-ct', 'playwright-test', 'plop', 'pm2', 'pnpm', 'postcss', 'pre-commit', 'preconstruct', 'prettier', 'prisma', 'quasar', 'qwik', 'railway', 'raycast', 'react-cosmos', 'react-email', 'react-native', 'react-router', 'relay', 'release-it', 'remark', 'remix', 'rolldown', 'rollup', 'rsbuild', 'rslib', 'rspack', 'rstest', 'sanity', 'semantic-release', 'sentry', 'serverless-framework', 'simple-git-hooks', 'size-limit', 'solidjs-vite-plugin', 'sst', 'starlight', 'stencil', 'storybook', 'stryker', 'stylelint', 'svelte', 'sveltejs-package', 'sveltekit', 'svgo', 'svgr', 'swc', 'syncpack', 'tailwind', 'tanstack-router', 'taskfile', 'tauri', 'temporal', 'textlint', 'travis', 'ts-node', 'tsd', 'tsdown', 'tsrs', 'tsup', 'tsx', 'turbo', 'typedoc', 'typescript', 'typescript-content-mapper', 'unbuild', 'unocss', 'unplugin-auto-import', 'unplugin-icons', 'unplugin-vue-components', 'unplugin-vue-i18n', 'unplugin-vue-markdown', 'unplugin-vue-router', 'varlock', 'vercel', 'vercel-og', 'vike', 'vite', 'vite-plugin-pages', 'vite-plugin-pwa', 'vite-plugin-vue-layouts-next', 'vite-plus', 'vite-pwa-assets-generator', 'vitepress', 'vitest', 'vue', 'webdriver-io', 'webpack', 'wireit', 'wrangler', 'wxt', 'xo', 'yarn', 'yorkie', 'zx'];
1
+ export type PluginName = 'angular' | 'astro' | 'astro-db' | 'astro-markdoc' | 'astro-og-canvas' | 'ava' | 'babel' | 'biome' | 'borp' | 'buf' | 'bumpp' | 'bun' | 'c8' | 'capacitor' | 'catalyst' | 'changelogen' | 'changelogithub' | 'changesets' | 'commitizen' | 'commitlint' | 'convex' | 'create-typescript-app' | 'cspell' | 'cucumber' | 'cypress' | 'danger' | 'dependency-cruiser' | 'docusaurus' | 'dotenv' | 'drizzle' | 'electron-forge' | 'electron-vite' | 'eleventy' | 'esbuild' | 'eslint' | 'eve' | 'execa' | 'expo' | 'expo-router' | 'expressive-code' | 'fast' | 'filesystem-routing' | 'flue' | 'fumadocs' | 'gatsby' | 'github-action' | 'github-actions' | 'glob' | 'graphql-codegen' | 'hardhat' | 'husky' | 'i18next-parser' | 'jasmine' | 'jest' | 'karma' | 'knex' | 'ladle' | 'laravel-vite-plugin' | 'lefthook' | 'lint-staged' | 'linthtml' | 'lit' | 'lockfile-lint' | 'lost-pixel' | 'lunaria' | 'markdownlint' | 'marko' | 'mcp' | 'mdx' | 'mdxlint' | 'metro' | 'mise' | 'mocha' | 'moonrepo' | 'msw' | 'nano-spawn' | 'nano-staged' | 'nest' | 'netlify' | 'next' | 'next-intl' | 'next-mdx' | 'nitro' | 'node' | 'node-modules-inspector' | 'nodemon' | 'npm-package-json-lint' | 'nuxt' | 'nuxtjs-i18n' | 'nx' | 'nyc' | 'oclif' | 'openapi-ts' | 'openclaw' | 'orval' | 'osls' | 'oxfmt' | 'oxlint' | 'panda-css' | 'parcel' | 'payload' | 'pino' | 'playwright' | 'playwright-ct' | 'playwright-test' | 'plop' | 'pm2' | 'pnpm' | 'postcss' | 'pre-commit' | 'preconstruct' | 'prettier' | 'prisma' | 'quasar' | 'qwik' | 'railway' | 'raycast' | 'react-cosmos' | 'react-email' | 'react-native' | 'react-router' | 'relay' | 'release-it' | 'remark' | 'remix' | 'rolldown' | 'rollup' | 'rsbuild' | 'rslib' | 'rspack' | 'rstest' | 'sanity' | 'semantic-release' | 'sentry' | 'serverless-framework' | 'simple-git-hooks' | 'size-limit' | 'solidjs-vite-plugin' | 'sst' | 'starlight' | 'stencil' | 'storybook' | 'stryker' | 'stylelint' | 'svelte' | 'sveltejs-package' | 'sveltekit' | 'svgo' | 'svgr' | 'swc' | 'syncpack' | 'tailwind' | 'tanstack-router' | 'taskfile' | 'tauri' | 'temporal' | 'textlint' | 'travis' | 'ts-node' | 'tsd' | 'tsdown' | 'tsrs' | 'tsup' | 'tsx' | 'turbo' | 'typedoc' | 'typescript' | 'typescript-content-mapper' | 'unbuild' | 'unocss' | 'unplugin-auto-import' | 'unplugin-icons' | 'unplugin-vue-components' | 'unplugin-vue-i18n' | 'unplugin-vue-markdown' | 'unplugin-vue-router' | 'varlock' | 'vercel' | 'vercel-og' | 'vike' | 'vite' | 'vite-plugin-pages' | 'vite-plugin-pwa' | 'vite-plugin-vue-layouts-next' | 'vite-plus' | 'vite-pwa-assets-generator' | 'vitepress' | 'vitest' | 'vue' | 'webdriver-io' | 'webpack' | 'wireit' | 'wrangler' | 'wxt' | 'xo' | 'yarn' | 'yorkie' | 'zx';
2
+ export declare const pluginNames: readonly ['angular', 'astro', 'astro-db', 'astro-markdoc', 'astro-og-canvas', 'ava', 'babel', 'biome', 'borp', 'buf', 'bumpp', 'bun', 'c8', 'capacitor', 'catalyst', 'changelogen', 'changelogithub', 'changesets', 'commitizen', 'commitlint', 'convex', 'create-typescript-app', 'cspell', 'cucumber', 'cypress', 'danger', 'dependency-cruiser', 'docusaurus', 'dotenv', 'drizzle', 'electron-forge', 'electron-vite', 'eleventy', 'esbuild', 'eslint', 'eve', 'execa', 'expo', 'expo-router', 'expressive-code', 'fast', 'filesystem-routing', 'flue', 'fumadocs', 'gatsby', 'github-action', 'github-actions', 'glob', 'graphql-codegen', 'hardhat', 'husky', 'i18next-parser', 'jasmine', 'jest', 'karma', 'knex', 'ladle', 'laravel-vite-plugin', 'lefthook', 'lint-staged', 'linthtml', 'lit', 'lockfile-lint', 'lost-pixel', 'lunaria', 'markdownlint', 'marko', 'mcp', 'mdx', 'mdxlint', 'metro', 'mise', 'mocha', 'moonrepo', 'msw', 'nano-spawn', 'nano-staged', 'nest', 'netlify', 'next', 'next-intl', 'next-mdx', 'nitro', 'node', 'node-modules-inspector', 'nodemon', 'npm-package-json-lint', 'nuxt', 'nuxtjs-i18n', 'nx', 'nyc', 'oclif', 'openapi-ts', 'openclaw', 'orval', 'osls', 'oxfmt', 'oxlint', 'panda-css', 'parcel', 'payload', 'pino', 'playwright', 'playwright-ct', 'playwright-test', 'plop', 'pm2', 'pnpm', 'postcss', 'pre-commit', 'preconstruct', 'prettier', 'prisma', 'quasar', 'qwik', 'railway', 'raycast', 'react-cosmos', 'react-email', 'react-native', 'react-router', 'relay', 'release-it', 'remark', 'remix', 'rolldown', 'rollup', 'rsbuild', 'rslib', 'rspack', 'rstest', 'sanity', 'semantic-release', 'sentry', 'serverless-framework', 'simple-git-hooks', 'size-limit', 'solidjs-vite-plugin', 'sst', 'starlight', 'stencil', 'storybook', 'stryker', 'stylelint', 'svelte', 'sveltejs-package', 'sveltekit', 'svgo', 'svgr', 'swc', 'syncpack', 'tailwind', 'tanstack-router', 'taskfile', 'tauri', 'temporal', 'textlint', 'travis', 'ts-node', 'tsd', 'tsdown', 'tsrs', 'tsup', 'tsx', 'turbo', 'typedoc', 'typescript', 'typescript-content-mapper', 'unbuild', 'unocss', 'unplugin-auto-import', 'unplugin-icons', 'unplugin-vue-components', 'unplugin-vue-i18n', 'unplugin-vue-markdown', 'unplugin-vue-router', 'varlock', 'vercel', 'vercel-og', 'vike', 'vite', 'vite-plugin-pages', 'vite-plugin-pwa', 'vite-plugin-vue-layouts-next', 'vite-plus', 'vite-pwa-assets-generator', 'vitepress', 'vitest', 'vue', 'webdriver-io', 'webpack', 'wireit', 'wrangler', 'wxt', 'xo', 'yarn', 'yorkie', 'zx'];
@@ -8,6 +8,7 @@ export const pluginNames = [
8
8
  'babel',
9
9
  'biome',
10
10
  'borp',
11
+ 'buf',
11
12
  'bumpp',
12
13
  'bun',
13
14
  'c8',
@@ -28,6 +29,7 @@ export const pluginNames = [
28
29
  'docusaurus',
29
30
  'dotenv',
30
31
  'drizzle',
32
+ 'electron-forge',
31
33
  'electron-vite',
32
34
  'eleventy',
33
35
  'esbuild',
@@ -64,6 +66,7 @@ export const pluginNames = [
64
66
  'lunaria',
65
67
  'markdownlint',
66
68
  'marko',
69
+ 'mcp',
67
70
  'mdx',
68
71
  'mdxlint',
69
72
  'metro',
@@ -173,6 +173,7 @@ export interface Plugin {
173
173
  project?: string[];
174
174
  setup?: PluginSetup;
175
175
  isLoadConfig?: IsLoadConfig;
176
+ isLoadConfigOptional?: boolean;
176
177
  resolveConfig?: ResolveConfig;
177
178
  resolve?: Resolve;
178
179
  resolveSourceMap?: ResolveSourceMap;
@@ -94,7 +94,7 @@ export function extractNamespaceMembers(decl, options, lineStarts, getJSDocTags,
94
94
  if (!decl.body || decl.body.type !== 'TSModuleBlock')
95
95
  return [];
96
96
  const members = [];
97
- const addMember = (name, pos, stmtStart, stmtEnd) => {
97
+ const addMember = (name, pos, stmtStart, stmtEnd, isFixable = true) => {
98
98
  const fullName = prefix ? `${prefix}.${name}` : name;
99
99
  const tags = getJSDocTags(stmtStart);
100
100
  const existing = members.find(m => m.identifier === fullName);
@@ -109,7 +109,7 @@ export function extractNamespaceMembers(decl, options, lineStarts, getJSDocTags,
109
109
  return;
110
110
  }
111
111
  const { line, col } = getLineAndCol(lineStarts, pos);
112
- const fix = options.isFixExports
112
+ const fix = options.isFixExports && isFixable
113
113
  ? [stmtStart, stmtEnd, FIX_FLAGS.OBJECT_BINDING | FIX_FLAGS.WITH_NEWLINE]
114
114
  : undefined;
115
115
  members.push({
@@ -131,7 +131,7 @@ export function extractNamespaceMembers(decl, options, lineStarts, getJSDocTags,
131
131
  if (d.type === 'VariableDeclaration') {
132
132
  for (const declarator of d.declarations) {
133
133
  if (declarator.id.type === 'Identifier') {
134
- addMember(declarator.id.name, declarator.id.start, stmt.start, stmt.end);
134
+ addMember(declarator.id.name, declarator.id.start, stmt.start, stmt.end, d.declarations.length === 1);
135
135
  }
136
136
  }
137
137
  }
@@ -88,7 +88,7 @@ export function handleExportNamed(node, s) {
88
88
  }
89
89
  else if (declarator.id.type === 'Identifier') {
90
90
  const name = declarator.id.name;
91
- const fix = s.getFix(exportStart, exportStart + 7);
91
+ const fix = decl.declarations.length === 1 ? s.getFix(exportStart, exportStart + 7) : undefined;
92
92
  const jsDocTags = s.getJSDocTags(exportStart);
93
93
  let isReExport = false;
94
94
  if (declarator.init?.type === 'Identifier') {
@@ -235,11 +235,12 @@ export function handleExportDefault(node, s) {
235
235
  if (s.skipExports || s.isInNamespace(node))
236
236
  return;
237
237
  const decl = node.declaration;
238
- const hasDeclarationBody = decl.type === 'ClassDeclaration' || decl.type === 'FunctionDeclaration';
238
+ const isNamedDeclaration = (decl.type === 'ClassDeclaration' || decl.type === 'FunctionDeclaration') && decl.id;
239
+ const start = decl.type === 'ClassDeclaration' ? Math.min(node.start, decl.decorators[0]?.start ?? node.start) : node.start;
239
240
  const fix = s.options.isFixExports
240
- ? hasDeclarationBody
241
+ ? isNamedDeclaration
241
242
  ? [node.start, decl.start, FIX_FLAGS.NONE]
242
- : [node.start, node.end + 1, FIX_FLAGS.NONE]
243
+ : [start, node.end + 1, FIX_FLAGS.NONE]
243
244
  : undefined;
244
245
  let type = SYMBOL_TYPE.UNKNOWN;
245
246
  let pos = decl.start;
@@ -272,11 +272,23 @@ const coreVisitorObject = {
272
272
  },
273
273
  TSModuleDeclaration(node) {
274
274
  state.nsRanges.push([node.start, node.end]);
275
- if (node.kind !== 'global' && state.isModuleFile && isStringLiteral(node.id)) {
275
+ if (node.kind === 'global' || !isStringLiteral(node.id))
276
+ return;
277
+ if (state.isModuleFile) {
276
278
  const specifier = getStringValue(node.id);
277
279
  for (const name of collectAugmentationRefs(node))
278
280
  state.addImport(specifier, name, undefined, undefined, node.id.start, IMPORT_FLAGS.TYPE_ONLY | IMPORT_FLAGS.AUGMENT);
279
281
  }
282
+ else if (node.body?.type === 'TSModuleBlock') {
283
+ for (const stmt of node.body.body) {
284
+ if ((stmt.type === 'ImportDeclaration' ||
285
+ stmt.type === 'ExportAllDeclaration' ||
286
+ stmt.type === 'ExportNamedDeclaration') &&
287
+ stmt.source) {
288
+ state.addImport(stmt.source.value, undefined, undefined, undefined, stmt.source.start, IMPORT_FLAGS.TYPE_ONLY | IMPORT_FLAGS.OPAQUE);
289
+ }
290
+ }
291
+ }
280
292
  },
281
293
  TSInterfaceDeclaration(node) {
282
294
  if (state.scopeDepth > 0 || state.isInNamespace(node))
@@ -91,6 +91,11 @@ export declare const createOptions: (options: CreateOptions) => Promise<{
91
91
  entry?: string | string[] | undefined;
92
92
  project?: string | string[] | undefined;
93
93
  } | undefined;
94
+ buf?: string | boolean | string[] | {
95
+ config?: string | string[] | undefined;
96
+ entry?: string | string[] | undefined;
97
+ project?: string | string[] | undefined;
98
+ } | undefined;
94
99
  bumpp?: string | boolean | string[] | {
95
100
  config?: string | string[] | undefined;
96
101
  entry?: string | string[] | undefined;
@@ -191,6 +196,11 @@ export declare const createOptions: (options: CreateOptions) => Promise<{
191
196
  entry?: string | string[] | undefined;
192
197
  project?: string | string[] | undefined;
193
198
  } | undefined;
199
+ 'electron-forge'?: string | boolean | string[] | {
200
+ config?: string | string[] | undefined;
201
+ entry?: string | string[] | undefined;
202
+ project?: string | string[] | undefined;
203
+ } | undefined;
194
204
  'electron-vite'?: string | boolean | string[] | {
195
205
  config?: string | string[] | undefined;
196
206
  entry?: string | string[] | undefined;
@@ -371,6 +381,11 @@ export declare const createOptions: (options: CreateOptions) => Promise<{
371
381
  entry?: string | string[] | undefined;
372
382
  project?: string | string[] | undefined;
373
383
  } | undefined;
384
+ mcp?: string | boolean | string[] | {
385
+ config?: string | string[] | undefined;
386
+ entry?: string | string[] | undefined;
387
+ project?: string | string[] | undefined;
388
+ } | undefined;
374
389
  mdx?: string | boolean | string[] | {
375
390
  config?: string | string[] | undefined;
376
391
  entry?: string | string[] | undefined;
@@ -1098,6 +1113,11 @@ export declare const createOptions: (options: CreateOptions) => Promise<{
1098
1113
  entry?: string | string[] | undefined;
1099
1114
  project?: string | string[] | undefined;
1100
1115
  } | undefined;
1116
+ buf?: string | boolean | string[] | {
1117
+ config?: string | string[] | undefined;
1118
+ entry?: string | string[] | undefined;
1119
+ project?: string | string[] | undefined;
1120
+ } | undefined;
1101
1121
  bumpp?: string | boolean | string[] | {
1102
1122
  config?: string | string[] | undefined;
1103
1123
  entry?: string | string[] | undefined;
@@ -1198,6 +1218,11 @@ export declare const createOptions: (options: CreateOptions) => Promise<{
1198
1218
  entry?: string | string[] | undefined;
1199
1219
  project?: string | string[] | undefined;
1200
1220
  } | undefined;
1221
+ 'electron-forge'?: string | boolean | string[] | {
1222
+ config?: string | string[] | undefined;
1223
+ entry?: string | string[] | undefined;
1224
+ project?: string | string[] | undefined;
1225
+ } | undefined;
1201
1226
  'electron-vite'?: string | boolean | string[] | {
1202
1227
  config?: string | string[] | undefined;
1203
1228
  entry?: string | string[] | undefined;
@@ -1378,6 +1403,11 @@ export declare const createOptions: (options: CreateOptions) => Promise<{
1378
1403
  entry?: string | string[] | undefined;
1379
1404
  project?: string | string[] | undefined;
1380
1405
  } | undefined;
1406
+ mcp?: string | boolean | string[] | {
1407
+ config?: string | string[] | undefined;
1408
+ entry?: string | string[] | undefined;
1409
+ project?: string | string[] | undefined;
1410
+ } | undefined;
1381
1411
  mdx?: string | boolean | string[] | {
1382
1412
  config?: string | string[] | undefined;
1383
1413
  entry?: string | string[] | undefined;