knip 6.25.0 → 6.27.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 (171) hide show
  1. package/dist/ConfigurationChief.d.ts +108 -0
  2. package/dist/DependencyDeputy.d.ts +1 -1
  3. package/dist/DependencyDeputy.js +2 -2
  4. package/dist/ProjectPrincipal.d.ts +3 -3
  5. package/dist/ProjectPrincipal.js +4 -4
  6. package/dist/binaries/fallback.js +5 -1
  7. package/dist/binaries/resolvers/bun.js +13 -5
  8. package/dist/binaries/resolvers/npm.js +4 -2
  9. package/dist/binaries/resolvers/pnpm.js +11 -1
  10. package/dist/binaries/resolvers/yarn.js +10 -4
  11. package/dist/binaries/util.d.ts +4 -0
  12. package/dist/binaries/util.js +14 -0
  13. package/dist/compilers/index.d.ts +180 -0
  14. package/dist/compilers/less.js +1 -1
  15. package/dist/compilers/scss.js +1 -1
  16. package/dist/compilers/stylus.js +1 -1
  17. package/dist/constants.js +19 -0
  18. package/dist/graph/analyze.js +1 -1
  19. package/dist/graph/build.js +24 -7
  20. package/dist/plugins/_vue/auto-import.d.ts +12 -0
  21. package/dist/plugins/_vue/auto-import.js +332 -0
  22. package/dist/plugins/_vue/types.d.ts +45 -0
  23. package/dist/plugins/_vue/types.js +1 -0
  24. package/dist/plugins/astro/index.js +2 -37
  25. package/dist/plugins/astro/resolveFromAST.d.ts +4 -4
  26. package/dist/plugins/astro/resolveFromAST.js +34 -7
  27. package/dist/plugins/electron-vite/index.d.ts +3 -0
  28. package/dist/plugins/electron-vite/index.js +51 -0
  29. package/dist/plugins/electron-vite/types.d.ts +23 -0
  30. package/dist/plugins/electron-vite/types.js +1 -0
  31. package/dist/plugins/esbuild/index.d.ts +3 -0
  32. package/dist/plugins/esbuild/index.js +17 -0
  33. package/dist/plugins/eslint/resolveFromAST.js +18 -21
  34. package/dist/plugins/index.d.ts +18 -0
  35. package/dist/plugins/index.js +36 -0
  36. package/dist/plugins/laravel-vite-plugin/index.d.ts +3 -0
  37. package/dist/plugins/laravel-vite-plugin/index.js +14 -0
  38. package/dist/plugins/laravel-vite-plugin/resolveFromAST.d.ts +2 -0
  39. package/dist/plugins/laravel-vite-plugin/resolveFromAST.js +27 -0
  40. package/dist/plugins/next/index.js +2 -2
  41. package/dist/plugins/next-mdx/index.js +2 -8
  42. package/dist/plugins/next-mdx/resolveFromAST.d.ts +3 -2
  43. package/dist/plugins/next-mdx/resolveFromAST.js +17 -21
  44. package/dist/plugins/nuxt/index.js +5 -68
  45. package/dist/plugins/nuxt/types.d.ts +0 -34
  46. package/dist/plugins/nuxtjs-i18n/index.d.ts +3 -0
  47. package/dist/plugins/nuxtjs-i18n/index.js +12 -0
  48. package/dist/plugins/oclif/index.js +10 -5
  49. package/dist/plugins/orval/index.js +1 -3
  50. package/dist/plugins/orval/resolveFromAST.d.ts +2 -2
  51. package/dist/plugins/orval/resolveFromAST.js +4 -7
  52. package/dist/plugins/oxlint/index.js +23 -2
  53. package/dist/plugins/pnpm/index.js +2 -1
  54. package/dist/plugins/pnpm/types.d.ts +2 -4
  55. package/dist/plugins/quasar/index.d.ts +3 -0
  56. package/dist/plugins/quasar/index.js +15 -0
  57. package/dist/plugins/quasar/resolveFromAST.d.ts +3 -0
  58. package/dist/plugins/quasar/resolveFromAST.js +63 -0
  59. package/dist/plugins/qwik/index.js +1 -25
  60. package/dist/plugins/qwik/resolveFromAST.d.ts +5 -3
  61. package/dist/plugins/qwik/resolveFromAST.js +28 -9
  62. package/dist/plugins/react-email/index.js +1 -0
  63. package/dist/plugins/rolldown/index.js +2 -5
  64. package/dist/plugins/rollup/index.js +2 -5
  65. package/dist/plugins/rslib/index.js +2 -5
  66. package/dist/plugins/sst/index.js +1 -5
  67. package/dist/plugins/sst/resolveFromAST.d.ts +1 -1
  68. package/dist/plugins/sst/resolveFromAST.js +1 -1
  69. package/dist/plugins/starlight/index.js +1 -19
  70. package/dist/plugins/starlight/resolveFromAST.d.ts +2 -2
  71. package/dist/plugins/starlight/resolveFromAST.js +12 -8
  72. package/dist/plugins/stencil/index.js +2 -37
  73. package/dist/plugins/stencil/resolveFromAST.d.ts +3 -0
  74. package/dist/plugins/stencil/resolveFromAST.js +36 -0
  75. package/dist/plugins/storybook/index.js +3 -0
  76. package/dist/plugins/sveltekit/index.js +1 -48
  77. package/dist/plugins/sveltekit/resolveFromAST.d.ts +2 -0
  78. package/dist/plugins/sveltekit/resolveFromAST.js +45 -0
  79. package/dist/plugins/tailwind/compiler.js +9 -4
  80. package/dist/plugins/tanstack-router/index.js +3 -1
  81. package/dist/plugins/tauri/index.d.ts +3 -0
  82. package/dist/plugins/tauri/index.js +42 -0
  83. package/dist/plugins/tauri/types.d.ts +16 -0
  84. package/dist/plugins/tauri/types.js +1 -0
  85. package/dist/plugins/temporal/index.d.ts +3 -0
  86. package/dist/plugins/temporal/index.js +12 -0
  87. package/dist/plugins/tsdown/index.js +16 -7
  88. package/dist/plugins/tsdown/types.d.ts +4 -1
  89. package/dist/plugins/tsup/index.js +2 -5
  90. package/dist/plugins/unplugin-auto-import/index.d.ts +3 -0
  91. package/dist/plugins/unplugin-auto-import/index.js +18 -0
  92. package/dist/plugins/unplugin-icons/index.d.ts +3 -0
  93. package/dist/plugins/unplugin-icons/index.js +17 -0
  94. package/dist/plugins/unplugin-vue-components/index.d.ts +3 -0
  95. package/dist/plugins/unplugin-vue-components/index.js +16 -0
  96. package/dist/plugins/unplugin-vue-i18n/index.d.ts +3 -0
  97. package/dist/plugins/unplugin-vue-i18n/index.js +10 -0
  98. package/dist/plugins/unplugin-vue-markdown/index.d.ts +3 -0
  99. package/dist/plugins/unplugin-vue-markdown/index.js +16 -0
  100. package/dist/plugins/unplugin-vue-router/index.d.ts +3 -0
  101. package/dist/plugins/unplugin-vue-router/index.js +14 -0
  102. package/dist/plugins/vite/helpers.d.ts +2 -0
  103. package/dist/plugins/vite/helpers.js +46 -31
  104. package/dist/plugins/vite/index.js +1 -1
  105. package/dist/plugins/vite-plugin-pages/index.d.ts +3 -0
  106. package/dist/plugins/vite-plugin-pages/index.js +26 -0
  107. package/dist/plugins/vite-plugin-pwa/index.d.ts +3 -0
  108. package/dist/plugins/vite-plugin-pwa/index.js +17 -0
  109. package/dist/plugins/vite-plugin-pwa/resolveFromAST.d.ts +4 -0
  110. package/dist/plugins/vite-plugin-pwa/resolveFromAST.js +37 -0
  111. package/dist/plugins/vite-plugin-vue-layouts-next/index.d.ts +3 -0
  112. package/dist/plugins/vite-plugin-vue-layouts-next/index.js +23 -0
  113. package/dist/plugins/vite-plus/index.d.ts +3 -0
  114. package/dist/plugins/vite-plus/index.js +14 -0
  115. package/dist/plugins/vite-plus/resolveFromAST.d.ts +2 -0
  116. package/dist/plugins/vite-plus/resolveFromAST.js +37 -0
  117. package/dist/plugins/vite-pwa-assets-generator/index.d.ts +3 -0
  118. package/dist/plugins/vite-pwa-assets-generator/index.js +12 -0
  119. package/dist/plugins/vitepress/index.js +5 -1
  120. package/dist/plugins/vitest/index.js +19 -0
  121. package/dist/plugins/vitest/types.d.ts +8 -0
  122. package/dist/plugins/vue/index.js +5 -3
  123. package/dist/plugins/yarn/index.js +2 -1
  124. package/dist/plugins/yarn/types.d.ts +2 -4
  125. package/dist/run.js +3 -3
  126. package/dist/schema/configuration.d.ts +270 -0
  127. package/dist/schema/plugins.d.ts +90 -0
  128. package/dist/schema/plugins.js +18 -0
  129. package/dist/types/PluginNames.d.ts +2 -2
  130. package/dist/types/PluginNames.js +18 -0
  131. package/dist/types/config.d.ts +1 -0
  132. package/dist/types/package-json.d.ts +8 -4
  133. package/dist/typescript/ast-helpers.d.ts +7 -2
  134. package/dist/typescript/ast-helpers.js +36 -8
  135. package/dist/typescript/ast-nodes.d.ts +2 -0
  136. package/dist/typescript/ast-nodes.js +8 -0
  137. package/dist/typescript/get-imports-and-exports.js +8 -5
  138. package/dist/typescript/resolve-module-names.d.ts +2 -2
  139. package/dist/typescript/resolve-module-names.js +97 -18
  140. package/dist/typescript/visitors/walk.d.ts +2 -1
  141. package/dist/typescript/visitors/walk.js +13 -2
  142. package/dist/util/cli-arguments.d.ts +1 -1
  143. package/dist/util/cli-arguments.js +1 -1
  144. package/dist/util/create-input-handler.js +8 -1
  145. package/dist/util/create-options.d.ts +180 -0
  146. package/dist/util/package-json.d.ts +7 -0
  147. package/dist/util/package-json.js +37 -0
  148. package/dist/util/resolve.d.ts +1 -0
  149. package/dist/util/resolve.js +5 -2
  150. package/dist/util/to-source-path.d.ts +4 -3
  151. package/dist/util/to-source-path.js +23 -6
  152. package/dist/version.d.ts +1 -1
  153. package/dist/version.js +1 -1
  154. package/package.json +1 -1
  155. package/schema.json +72 -0
  156. package/dist/plugins/next/resolveFromAST.d.ts +0 -2
  157. package/dist/plugins/next/resolveFromAST.js +0 -2
  158. package/dist/plugins/nuxt/helpers.d.ts +0 -15
  159. package/dist/plugins/nuxt/helpers.js +0 -133
  160. package/dist/plugins/rolldown/resolveFromAST.d.ts +0 -2
  161. package/dist/plugins/rolldown/resolveFromAST.js +0 -4
  162. package/dist/plugins/rollup/resolveFromAST.d.ts +0 -2
  163. package/dist/plugins/rollup/resolveFromAST.js +0 -4
  164. package/dist/plugins/rslib/resolveFromAST.d.ts +0 -2
  165. package/dist/plugins/rslib/resolveFromAST.js +0 -4
  166. package/dist/plugins/tsdown/resolveFromAST.d.ts +0 -2
  167. package/dist/plugins/tsdown/resolveFromAST.js +0 -4
  168. package/dist/plugins/tsup/resolveFromAST.d.ts +0 -2
  169. package/dist/plugins/tsup/resolveFromAST.js +0 -4
  170. package/dist/plugins/vue/compiler.d.ts +0 -3
  171. package/dist/plugins/vue/compiler.js +0 -10
@@ -12,6 +12,7 @@ const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
12
12
  const config = ['vitest.config.{js,mjs,ts,cjs,mts,cts}', 'vitest.{workspace,projects}.{js,mjs,ts,cjs,mts,cts,json}'];
13
13
  const mocks = ['**/__mocks__/**/*.?(c|m)[jt]s?(x)'];
14
14
  const entry = ['**/*.{bench,test,test-d,spec,spec-d}.?(c|m)[jt]s?(x)', ...mocks];
15
+ const benchmark = ['**/*.bench.?(c|m)[jt]s?(x)'];
15
16
  const findConfigDependencies = (localConfig, options, vitestRoot) => {
16
17
  const { configFileDir: dir } = options;
17
18
  const testConfig = localConfig.test;
@@ -29,6 +30,10 @@ const findConfigDependencies = (localConfig, options, vitestRoot) => {
29
30
  const setupFiles = [testConfig.setupFiles ?? []]
30
31
  .flat()
31
32
  .map(specifier => ({ ...toDeferResolve(specifier), dir: vitestRoot }));
33
+ const snapshotSerializers = (testConfig.snapshotSerializers ?? []).map(specifier => ({
34
+ ...toDeferResolve(specifier),
35
+ dir: vitestRoot,
36
+ }));
32
37
  const globalSetup = [testConfig.globalSetup ?? []].flat().map(specifier => ({ ...toDeferResolve(specifier), dir }));
33
38
  const workspaceDependencies = [];
34
39
  if (testConfig.workspace !== undefined) {
@@ -49,6 +54,7 @@ const findConfigDependencies = (localConfig, options, vitestRoot) => {
49
54
  ...reporters.map(id => toDependency(id)),
50
55
  ...coverage.map(id => toDependency(id)),
51
56
  ...setupFiles,
57
+ ...snapshotSerializers,
52
58
  ...globalSetup,
53
59
  ...workspaceDependencies,
54
60
  ...projectsDependencies,
@@ -109,6 +115,9 @@ export const resolveConfig = async (localConfig, options) => {
109
115
  inputs.add(toConfig('vitest', projectFile, { containingFilePath: options.configFilePath }));
110
116
  }
111
117
  }
118
+ else if (typeof project.extends === 'string') {
119
+ inputs.add(toConfig('vitest', project.extends, { containingFilePath: options.configFilePath }));
120
+ }
112
121
  }
113
122
  }
114
123
  }
@@ -132,6 +141,9 @@ export const resolveConfig = async (localConfig, options) => {
132
141
  if (!options.config.entry)
133
142
  for (const dependency of mocks)
134
143
  inputs.add(toEntry(join(dir, dependency)));
144
+ const benchmarkInclude = cfg.test.benchmark?.include ?? benchmark;
145
+ for (const dependency of benchmarkInclude)
146
+ dependency[0] !== '!' && inputs.add(toEntry(join(dir, dependency)));
135
147
  }
136
148
  else {
137
149
  for (const dependency of options.config.entry ?? entry)
@@ -149,6 +161,13 @@ export const resolveConfig = async (localConfig, options) => {
149
161
  if (packageName)
150
162
  inputs.add(toDependency(packageName, { optional: true }));
151
163
  }
164
+ const ssrExternal = cfg.ssr?.external;
165
+ if (Array.isArray(ssrExternal)) {
166
+ for (const dependency of ssrExternal) {
167
+ if (typeof dependency === 'string')
168
+ inputs.add(toDependency(dependency, { optional: true }));
169
+ }
170
+ }
152
171
  if (cfg.resolve?.extensions) {
153
172
  const customExtensions = cfg.resolve.extensions.filter(ext => ext.startsWith('.') && !DEFAULT_EXTENSIONS.has(ext));
154
173
  for (const ext of customExtensions) {
@@ -9,6 +9,9 @@ export type AliasOptions = readonly Alias[] | {
9
9
  interface VitestConfig {
10
10
  test: {
11
11
  include: string[];
12
+ benchmark?: {
13
+ include?: string[];
14
+ };
12
15
  coverage?: {
13
16
  enabled?: boolean;
14
17
  provider: string;
@@ -18,6 +21,7 @@ interface VitestConfig {
18
21
  globalSetup?: string | string[];
19
22
  reporters?: (string | [string, unknown] | unknown)[];
20
23
  setupFiles?: string | string[];
24
+ snapshotSerializers?: string[];
21
25
  workspace?: (ViteConfig & {
22
26
  test: VitestConfig['test'] & {
23
27
  workspace: never;
@@ -32,6 +36,7 @@ interface VitestConfig {
32
36
  };
33
37
  }
34
38
  export interface ViteConfig extends VitestConfig {
39
+ extends?: string | true;
35
40
  root?: string;
36
41
  plugins?: unknown[];
37
42
  build?: {
@@ -44,6 +49,9 @@ export interface ViteConfig extends VitestConfig {
44
49
  optimizeDeps?: {
45
50
  include?: string[];
46
51
  };
52
+ ssr?: {
53
+ external?: (string | RegExp)[] | true;
54
+ };
47
55
  resolve?: {
48
56
  alias?: AliasOptions;
49
57
  dedupe?: string[];
@@ -1,7 +1,7 @@
1
1
  import { toDependency } from '../../util/input.js';
2
2
  import { hasDependency } from '../../util/plugin.js';
3
+ import { vueAutoImportCompiler } from '../_vue/auto-import.js';
3
4
  import { findWebpackDependenciesFromConfig } from '../webpack/index.js';
4
- import compiler from './compiler.js';
5
5
  const title = 'Vue';
6
6
  const enablers = ['vue'];
7
7
  const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
@@ -28,9 +28,11 @@ const resolveConfig = async (config, options) => {
28
28
  }
29
29
  return inputs;
30
30
  };
31
+ const sfcCompilers = ['vue', 'nuxt', 'unplugin-vue', '@vitejs/plugin-vue'];
31
32
  const registerCompilers = ({ registerCompiler, hasDependency }) => {
32
- if (hasDependency('vue') || hasDependency('nuxt'))
33
- registerCompiler({ extension: '.vue', compiler });
33
+ if (sfcCompilers.some(hasDependency)) {
34
+ registerCompiler({ extension: '.vue', compiler: vueAutoImportCompiler });
35
+ }
34
36
  };
35
37
  const plugin = {
36
38
  title,
@@ -23,7 +23,8 @@ const resolveConfig = config => {
23
23
  for (const extension of Object.values(config.packageExtensions)) {
24
24
  if (extension.peerDependencies) {
25
25
  for (const dep of Object.keys(extension.peerDependencies)) {
26
- inputs.push(toDependency(dep));
26
+ const optional = extension.peerDependenciesMeta?.[dep]?.optional === true;
27
+ inputs.push(optional ? toDependency(dep, { optional: true }) : toDependency(dep));
27
28
  }
28
29
  }
29
30
  }
@@ -1,10 +1,8 @@
1
- import type { Dependencies } from '../../types/package-json.ts';
1
+ import type { PackageExtensions } from '../../types/package-json.ts';
2
2
  export type YarnConfig = {
3
3
  plugins?: Array<string | {
4
4
  path?: string;
5
5
  }>;
6
6
  yarnPath?: string;
7
- packageExtensions?: Record<string, {
8
- peerDependencies?: Dependencies;
9
- }>;
7
+ packageExtensions?: PackageExtensions;
10
8
  };
package/dist/run.js CHANGED
@@ -12,7 +12,7 @@ import { debugLogObject } from './util/debug.js';
12
12
  import { flushGitignoreCache, initGitignoreCache } from './util/gitignore-cache.js';
13
13
  import { flushGlobCache, initGlobCache } from './util/glob-cache.js';
14
14
  import { getGitIgnoredHandler } from './util/glob-core.js';
15
- import { getModuleSourcePathHandler, getWorkspaceManifestHandler } from './util/to-source-path.js';
15
+ import { getModuleSourcePathHandler, getWorkspacePackageTargetHandler } from './util/to-source-path.js';
16
16
  import { getSessionHandler } from './util/watch.js';
17
17
  export const run = async (options) => {
18
18
  debugLogObject('*', 'Unresolved configuration', options);
@@ -30,8 +30,8 @@ export const run = async (options) => {
30
30
  const workspaces = await chief.getWorkspaces();
31
31
  const isGitIgnored = await getGitIgnoredHandler(options, new Set(workspaces.map(w => w.dir)));
32
32
  const toSourceFilePath = getModuleSourcePathHandler(chief);
33
- const findWorkspaceManifestImports = getWorkspaceManifestHandler(chief);
34
- const principal = new ProjectPrincipal(options, toSourceFilePath, findWorkspaceManifestImports);
33
+ const findWorkspacePackageTarget = getWorkspacePackageTargetHandler(chief);
34
+ const principal = new ProjectPrincipal(options, toSourceFilePath, findWorkspacePackageTarget);
35
35
  collector.setWorkspaceFilter(chief.workspaceFilePathFilter);
36
36
  collector.setSelectedWorkspaces(chief.selectedWorkspaces);
37
37
  collector.setIgnoreIssues(chief.getIgnoreIssues());