knip 6.39.0 → 6.40.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.
- package/dist/ConfigurationChief.d.ts +12 -0
- package/dist/WorkspaceWorker.d.ts +3 -4
- package/dist/WorkspaceWorker.js +12 -38
- package/dist/compilers/compilers.js +1 -1
- package/dist/graph/build.js +17 -10
- package/dist/plugins/capacitor/index.js +1 -1
- package/dist/plugins/commitlint/index.js +34 -9
- package/dist/plugins/eslint/resolveFromAST.d.ts +0 -1
- package/dist/plugins/eslint/resolveFromAST.js +1 -1
- package/dist/plugins/index.d.ts +2 -0
- package/dist/plugins/index.js +4 -0
- package/dist/plugins/jasmine/index.d.ts +3 -0
- package/dist/plugins/jasmine/index.js +55 -0
- package/dist/plugins/jasmine/types.d.ts +7 -0
- package/dist/plugins/jasmine/types.js +1 -0
- package/dist/plugins/jest/helpers.d.ts +1 -0
- package/dist/plugins/jest/helpers.js +2 -0
- package/dist/plugins/jest/index.js +20 -11
- package/dist/plugins/osls/index.d.ts +3 -0
- package/dist/plugins/osls/index.js +13 -0
- package/dist/plugins/oxlint/index.d.ts +3 -0
- package/dist/plugins/oxlint/index.js +4 -31
- package/dist/plugins/oxlint/types.d.ts +1 -0
- package/dist/plugins/playwright/index.js +17 -0
- package/dist/plugins/playwright/types.d.ts +5 -0
- package/dist/plugins/postcss/index.js +5 -1
- package/dist/plugins/rsbuild/index.js +42 -4
- package/dist/plugins/rsbuild/types.d.ts +18 -1
- package/dist/plugins/rspack/index.d.ts +3 -1
- package/dist/plugins/rspack/index.js +1 -1
- package/dist/plugins/serverless-framework/index.d.ts +4 -1
- package/dist/plugins/serverless-framework/index.js +40 -7
- package/dist/plugins/serverless-framework/types.d.ts +4 -2
- package/dist/plugins/simple-git-hooks/index.js +1 -1
- package/dist/plugins/vitest/index.js +16 -2
- package/dist/plugins/vitest/types.d.ts +2 -0
- package/dist/schema/configuration.d.ts +30 -0
- package/dist/schema/plugins.d.ts +10 -0
- package/dist/schema/plugins.js +2 -0
- package/dist/types/PluginNames.d.ts +2 -2
- package/dist/types/PluginNames.js +2 -0
- package/dist/typescript/ast-nodes.js +291 -0
- package/dist/typescript/resolve-module-names.js +15 -4
- package/dist/typescript/visitors/walk.js +12 -0
- package/dist/util/create-options.d.ts +20 -0
- package/dist/util/filter-transitive-dependencies.d.ts +2 -0
- package/dist/util/filter-transitive-dependencies.js +38 -0
- package/dist/util/package-json.d.ts +1 -354
- package/dist/util/package-json.js +56 -10
- package/dist/util/to-source-path.d.ts +1 -1
- package/dist/util/to-source-path.js +7 -5
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/schema.json +8 -0
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import { Visitor } from 'oxc-parser';
|
|
2
|
-
import { findProperty, getPropertyValues } from '../../typescript/ast-helpers.js';
|
|
3
1
|
import { toConfig, toDependency, toEntry } from '../../util/input.js';
|
|
4
2
|
import { dirname, isInternal, toAbsolute } from '../../util/path.js';
|
|
5
3
|
import { hasDependency } from '../../util/plugin.js';
|
|
6
4
|
import { getInputsFromSettings } from '../eslint/helpers.js';
|
|
7
|
-
import { getInputsFromSettingsAST } from '../eslint/resolveFromAST.js';
|
|
8
5
|
const title = 'Oxlint';
|
|
9
6
|
const enablers = ['oxlint', 'vite-plus'];
|
|
10
7
|
const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
|
|
11
|
-
const config = ['.oxlintrc.{json,jsonc}', 'oxlint.config.{ts,mts}'
|
|
12
|
-
const isViteConfig = (configFileName) => configFileName.startsWith('vite.config.');
|
|
8
|
+
const config = ['.oxlintrc.{json,jsonc}', 'oxlint.config.{ts,mts}'];
|
|
13
9
|
const args = {
|
|
14
10
|
config: true,
|
|
15
11
|
};
|
|
@@ -25,8 +21,7 @@ const resolveJsPlugins = (jsPlugins, configFilePath) => {
|
|
|
25
21
|
}
|
|
26
22
|
return inputs;
|
|
27
23
|
};
|
|
28
|
-
const
|
|
29
|
-
const resolveExtendedConfig = (config, configFilePath) => {
|
|
24
|
+
export const resolveExtendedConfig = (config, configFilePath) => {
|
|
30
25
|
const inputs = [];
|
|
31
26
|
for (const entry of config.extends ?? []) {
|
|
32
27
|
if (typeof entry === 'string') {
|
|
@@ -43,43 +38,21 @@ const resolveExtendedConfig = (config, configFilePath) => {
|
|
|
43
38
|
for (const override of config.overrides ?? []) {
|
|
44
39
|
for (const input of resolveJsPlugins(override.jsPlugins, configFilePath))
|
|
45
40
|
inputs.push(input);
|
|
41
|
+
for (const input of getInputsFromSettings(override.settings))
|
|
42
|
+
inputs.push(input);
|
|
46
43
|
}
|
|
47
44
|
for (const input of getInputsFromSettings(config.settings))
|
|
48
45
|
inputs.push(input);
|
|
49
46
|
return inputs;
|
|
50
47
|
};
|
|
51
48
|
const resolveConfig = (config, options) => resolveExtendedConfig(config, options.configFilePath);
|
|
52
|
-
const resolveFromAST = (program, options) => {
|
|
53
|
-
if (!isViteConfig(options.configFileName))
|
|
54
|
-
return [];
|
|
55
|
-
const jsPlugins = new Set();
|
|
56
|
-
const visitor = new Visitor({
|
|
57
|
-
ObjectExpression(node) {
|
|
58
|
-
const lint = findProperty(node, 'lint');
|
|
59
|
-
if (lint?.type !== 'ObjectExpression')
|
|
60
|
-
return;
|
|
61
|
-
for (const specifier of getPropertyValues(lint, 'jsPlugins'))
|
|
62
|
-
jsPlugins.add(specifier);
|
|
63
|
-
for (const plugin of findProperty(lint, 'jsPlugins')?.elements ?? []) {
|
|
64
|
-
if (plugin?.type !== 'ObjectExpression')
|
|
65
|
-
continue;
|
|
66
|
-
for (const specifier of getPropertyValues(plugin, 'specifier'))
|
|
67
|
-
jsPlugins.add(specifier);
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
visitor.visit(program);
|
|
72
|
-
return [...resolveJsPlugins([...jsPlugins], options.configFilePath), ...getInputsFromSettingsAST(program)];
|
|
73
|
-
};
|
|
74
49
|
const isFilterTransitiveDependencies = true;
|
|
75
50
|
const plugin = {
|
|
76
51
|
title,
|
|
77
52
|
enablers,
|
|
78
53
|
isEnabled,
|
|
79
54
|
config,
|
|
80
|
-
isLoadConfig,
|
|
81
55
|
resolveConfig,
|
|
82
|
-
resolveFromAST,
|
|
83
56
|
isFilterTransitiveDependencies,
|
|
84
57
|
args,
|
|
85
58
|
};
|
|
@@ -21,6 +21,23 @@ export const resolveConfig = async (localConfig, options) => {
|
|
|
21
21
|
inputs.push(toEntry(toAbsolute(id, configFileDir)));
|
|
22
22
|
for (const id of arrayify(localConfig.globalTeardown))
|
|
23
23
|
inputs.push(toEntry(toAbsolute(id, configFileDir)));
|
|
24
|
+
for (const server of [localConfig.webServer].flat()) {
|
|
25
|
+
if (!server?.command)
|
|
26
|
+
continue;
|
|
27
|
+
const dir = server.cwd ? toAbsolute(server.cwd, configFileDir) : configFileDir;
|
|
28
|
+
for (const input of options.getInputsFromScripts(server.command, {
|
|
29
|
+
optionalBinaries: true,
|
|
30
|
+
cwd: dir,
|
|
31
|
+
manifest: options.getManifest(dir) ?? options.manifest,
|
|
32
|
+
})) {
|
|
33
|
+
const inputDir = input.dir ?? dir;
|
|
34
|
+
inputs.push({
|
|
35
|
+
...input,
|
|
36
|
+
...(input.type === 'entry' ? { specifier: toAbsolute(input.specifier, inputDir) } : {}),
|
|
37
|
+
dir: inputDir,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
24
41
|
const projects = localConfig.projects ? [localConfig, ...localConfig.projects] : [localConfig];
|
|
25
42
|
const reporters = [localConfig.reporter].flat().flatMap(reporter => {
|
|
26
43
|
const name = typeof reporter === 'string' ? reporter : reporter?.[0];
|
|
@@ -31,6 +31,10 @@ type Project = {
|
|
|
31
31
|
use: string;
|
|
32
32
|
testMatch?: string | RegExp | (string | RegExp)[];
|
|
33
33
|
};
|
|
34
|
+
type TestConfigWebServer = {
|
|
35
|
+
command: string;
|
|
36
|
+
cwd?: string;
|
|
37
|
+
};
|
|
34
38
|
export type PlaywrightTestConfig = {
|
|
35
39
|
projects?: Project[];
|
|
36
40
|
testMatch?: string | RegExp | (string | RegExp)[];
|
|
@@ -38,5 +42,6 @@ export type PlaywrightTestConfig = {
|
|
|
38
42
|
reporter?: LiteralUnion<'dot' | 'line' | 'list' | 'junit' | 'html' | 'json' | 'github' | 'null', string> | ReporterDescription[];
|
|
39
43
|
globalSetup?: string | Array<string>;
|
|
40
44
|
globalTeardown?: string | Array<string>;
|
|
45
|
+
webServer?: TestConfigWebServer | TestConfigWebServer[];
|
|
41
46
|
};
|
|
42
47
|
export {};
|
|
@@ -11,7 +11,11 @@ const config = [
|
|
|
11
11
|
];
|
|
12
12
|
const resolveConfig = config => {
|
|
13
13
|
const plugins = config.plugins
|
|
14
|
-
? (Array.isArray(config.plugins)
|
|
14
|
+
? (Array.isArray(config.plugins)
|
|
15
|
+
? config.plugins
|
|
16
|
+
: Object.entries(config.plugins)
|
|
17
|
+
.filter(([, options]) => options !== false)
|
|
18
|
+
.map(([plugin]) => plugin)).flatMap(plugin => {
|
|
15
19
|
if (typeof plugin === 'string')
|
|
16
20
|
return plugin;
|
|
17
21
|
if (Array.isArray(plugin) && typeof plugin[0] === 'string')
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { toProductionEntry } from '../../util/input.js';
|
|
2
2
|
import { hasDependency } from '../../util/plugin.js';
|
|
3
|
+
import { resolveConfig as resolveRspackConfig } from '../rspack/index.js';
|
|
3
4
|
const title = 'Rsbuild';
|
|
4
5
|
const enablers = ['@rsbuild/core'];
|
|
5
6
|
const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
|
|
6
7
|
const config = ['rsbuild*.config.{mjs,ts,js,cjs,mts,cts}'];
|
|
7
|
-
const resolveConfig = async (config) => {
|
|
8
|
+
const resolveConfig = async (config, options) => {
|
|
8
9
|
const entries = new Set();
|
|
10
|
+
const inputs = [];
|
|
9
11
|
const checkSource = (source) => {
|
|
10
12
|
if (source?.entry) {
|
|
11
13
|
for (const entry of Object.values(source.entry)) {
|
|
@@ -32,13 +34,49 @@ const resolveConfig = async (config) => {
|
|
|
32
34
|
entries.add(e);
|
|
33
35
|
}
|
|
34
36
|
};
|
|
35
|
-
|
|
37
|
+
const checkConfig = async (localConfig) => {
|
|
38
|
+
checkSource(localConfig.source);
|
|
39
|
+
if (!localConfig.tools?.rspack)
|
|
40
|
+
return;
|
|
41
|
+
const target = localConfig.output?.target ?? config.output?.target ?? 'web';
|
|
42
|
+
const mode = localConfig.mode ?? config.mode;
|
|
43
|
+
const passes = mode ? [mode === 'production'] : options.isProduction ? [true] : [false, true];
|
|
44
|
+
for (const rspack of [localConfig.tools.rspack].flat()) {
|
|
45
|
+
for (const isProduction of typeof rspack === 'function' ? passes : [options.isProduction]) {
|
|
46
|
+
const baseConfig = {
|
|
47
|
+
mode: mode ?? (isProduction ? 'production' : 'development'),
|
|
48
|
+
entry: {},
|
|
49
|
+
resolve: { alias: {} },
|
|
50
|
+
module: { rules: [] },
|
|
51
|
+
plugins: [],
|
|
52
|
+
};
|
|
53
|
+
const utils = {
|
|
54
|
+
env: process.env.NODE_ENV ?? '',
|
|
55
|
+
isDev: baseConfig.mode === 'development',
|
|
56
|
+
isProd: baseConfig.mode === 'production',
|
|
57
|
+
target,
|
|
58
|
+
isServer: target === 'node',
|
|
59
|
+
isWebWorker: target === 'web-worker',
|
|
60
|
+
};
|
|
61
|
+
const resolvedConfig = typeof rspack === 'function' ? await rspack(baseConfig, utils) : rspack;
|
|
62
|
+
const resolvedInputs = await resolveRspackConfig(resolvedConfig ?? baseConfig, {
|
|
63
|
+
...options,
|
|
64
|
+
isProduction: options.isProduction || isProduction,
|
|
65
|
+
});
|
|
66
|
+
for (const input of resolvedInputs)
|
|
67
|
+
inputs.push(input);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
await checkConfig(config);
|
|
36
72
|
if (config.environments) {
|
|
37
73
|
for (const environment of Object.values(config.environments)) {
|
|
38
|
-
|
|
74
|
+
await checkConfig(environment);
|
|
39
75
|
}
|
|
40
76
|
}
|
|
41
|
-
|
|
77
|
+
for (const entry of entries)
|
|
78
|
+
inputs.push(toProductionEntry(entry));
|
|
79
|
+
return inputs;
|
|
42
80
|
};
|
|
43
81
|
const plugin = {
|
|
44
82
|
title,
|
|
@@ -1,15 +1,32 @@
|
|
|
1
|
+
import type { Configuration } from 'webpack';
|
|
1
2
|
type EntryDescription = Record<string, unknown>;
|
|
2
3
|
type Entry = Record<string, string | string[] | (EntryDescription & {
|
|
3
4
|
html?: boolean;
|
|
4
5
|
})>;
|
|
6
|
+
type RspackConfigUtils = {
|
|
7
|
+
env: string;
|
|
8
|
+
isDev: boolean;
|
|
9
|
+
isProd: boolean;
|
|
10
|
+
target: 'web' | 'node' | 'web-worker';
|
|
11
|
+
isServer: boolean;
|
|
12
|
+
isWebWorker: boolean;
|
|
13
|
+
};
|
|
14
|
+
type RspackConfig = Configuration | ((config: Configuration, utils: RspackConfigUtils) => Configuration | void | Promise<Configuration | void>);
|
|
5
15
|
export type RsbuildConfig = {
|
|
6
16
|
plugins?: unknown[];
|
|
17
|
+
mode?: 'development' | 'production' | 'none';
|
|
18
|
+
output?: {
|
|
19
|
+
target?: RspackConfigUtils['target'];
|
|
20
|
+
};
|
|
7
21
|
source?: {
|
|
8
22
|
entry?: Entry;
|
|
9
23
|
preEntry?: string | string[];
|
|
10
24
|
};
|
|
25
|
+
tools?: {
|
|
26
|
+
rspack?: RspackConfig | RspackConfig[];
|
|
27
|
+
};
|
|
11
28
|
environments?: {
|
|
12
|
-
[k: string]:
|
|
29
|
+
[k: string]: Omit<RsbuildConfig, 'environments'>;
|
|
13
30
|
};
|
|
14
31
|
};
|
|
15
32
|
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { Plugin } from '../../types/config.ts';
|
|
1
|
+
import type { Plugin, ResolveConfig } from '../../types/config.ts';
|
|
2
|
+
import type { WebpackConfig } from '../webpack/types.ts';
|
|
3
|
+
export declare const resolveConfig: ResolveConfig<WebpackConfig>;
|
|
2
4
|
declare const plugin: Plugin;
|
|
3
5
|
export default plugin;
|
|
@@ -5,7 +5,7 @@ const title = 'Rspack';
|
|
|
5
5
|
const enablers = ['@rspack/core'];
|
|
6
6
|
const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
|
|
7
7
|
const config = ['rspack.config*.{js,ts,mjs,mts,cjs,cts}'];
|
|
8
|
-
const resolveConfig = async (localConfig, options) => {
|
|
8
|
+
export const resolveConfig = async (localConfig, options) => {
|
|
9
9
|
const inputs = await findWebpackDependenciesFromConfig(localConfig, options);
|
|
10
10
|
return inputs.filter(input => !input.specifier.startsWith('builtin:'));
|
|
11
11
|
};
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import type { Plugin } from '../../types/config.ts';
|
|
1
|
+
import type { Plugin, ResolveConfig } from '../../types/config.ts';
|
|
2
|
+
import type { PluginConfig } from './types.ts';
|
|
3
|
+
export declare const config: string[];
|
|
4
|
+
export declare const resolveConfig: ResolveConfig<PluginConfig>;
|
|
2
5
|
declare const plugin: Plugin;
|
|
3
6
|
export default plugin;
|
|
@@ -1,22 +1,55 @@
|
|
|
1
1
|
import { arrayify } from '../../util/array.js';
|
|
2
2
|
import { toDependency, toProductionEntry } from '../../util/input.js';
|
|
3
|
-
import {
|
|
3
|
+
import { _load } from '../../util/loader.js';
|
|
4
|
+
import { get } from '../../util/object.js';
|
|
5
|
+
import { isInternal, join, toAbsolute } from '../../util/path.js';
|
|
4
6
|
import { hasDependency } from '../../util/plugin.js';
|
|
5
7
|
const title = 'Serverless Framework';
|
|
6
8
|
const enablers = ['serverless'];
|
|
7
9
|
const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
|
|
8
|
-
const config = ['serverless.{js,cjs,mjs,ts,cts,mts,yml,yaml}'];
|
|
10
|
+
export const config = ['serverless.{js,cjs,mjs,ts,cts,mts,yml,yaml}'];
|
|
11
|
+
const fileVariable = /^\$\{file\(([^()$]+)\)(?::([^\s,}]+))?/;
|
|
12
|
+
const isRecord = (value) => typeof value === 'object' && value !== null;
|
|
13
|
+
const resolveFileVariable = async (value, dir) => {
|
|
14
|
+
const match = typeof value === 'string' && value.match(fileVariable);
|
|
15
|
+
if (!match)
|
|
16
|
+
return value;
|
|
17
|
+
try {
|
|
18
|
+
const content = await _load(toAbsolute(match[1].trim(), dir));
|
|
19
|
+
return match[2] ? get(content, match[2]) : content;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
9
25
|
const handlerToEntry = (handler) => {
|
|
10
26
|
const dot = handler.lastIndexOf('.');
|
|
11
|
-
|
|
27
|
+
const file = handler.slice(0, dot);
|
|
28
|
+
return toProductionEntry(/\.(?:[cm]?[jt]s|[jt]sx)$/.test(file) ? file : `${file}.{js,ts}`);
|
|
12
29
|
};
|
|
13
30
|
const pluginToInput = (plugin, dir) => isInternal(plugin) ? toProductionEntry(join(dir, plugin)) : toDependency(plugin);
|
|
31
|
+
const getFunctionEntries = async (functions, dir) => {
|
|
32
|
+
const entries = [];
|
|
33
|
+
const resolved = await resolveFileVariable(functions, dir);
|
|
34
|
+
for (const group of Array.isArray(resolved) ? resolved : [resolved]) {
|
|
35
|
+
const fns = await resolveFileVariable(group, dir);
|
|
36
|
+
if (!isRecord(fns))
|
|
37
|
+
continue;
|
|
38
|
+
for (const name in fns) {
|
|
39
|
+
const fn = await resolveFileVariable(fns[name], dir);
|
|
40
|
+
if (isRecord(fn) && typeof fn.handler === 'string')
|
|
41
|
+
entries.push(handlerToEntry(fn.handler));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return entries;
|
|
45
|
+
};
|
|
14
46
|
const getInjectEntries = (esbuild, dir) => esbuild && typeof esbuild === 'object' ? arrayify(esbuild.inject).map(id => toProductionEntry(join(dir, id))) : [];
|
|
15
|
-
const resolveConfig = async (config, options) => {
|
|
16
|
-
const functions = config.functions
|
|
17
|
-
|
|
47
|
+
export const resolveConfig = async (config, options) => {
|
|
48
|
+
const functions = await getFunctionEntries(config.functions, options.configFileDir);
|
|
49
|
+
const resolvedPlugins = await resolveFileVariable(config.plugins, options.configFileDir);
|
|
50
|
+
const plugins = Array.isArray(resolvedPlugins)
|
|
51
|
+
? resolvedPlugins.filter((plugin) => typeof plugin === 'string')
|
|
18
52
|
: [];
|
|
19
|
-
const plugins = config.plugins?.filter((plugin) => typeof plugin === 'string') ?? [];
|
|
20
53
|
const esbuild = config.custom?.esbuild || config.build?.esbuild ? [toDependency('esbuild', { optional: true })] : [];
|
|
21
54
|
const injectEntries = [
|
|
22
55
|
...getInjectEntries(config.custom?.esbuild, options.configFileDir),
|
|
@@ -5,9 +5,11 @@ export type PluginConfig = {
|
|
|
5
5
|
custom?: {
|
|
6
6
|
esbuild?: EsbuildConfig;
|
|
7
7
|
};
|
|
8
|
-
functions?:
|
|
9
|
-
plugins?: unknown[];
|
|
8
|
+
functions?: Functions | Array<Functions | FileVariable> | FileVariable;
|
|
9
|
+
plugins?: unknown[] | FileVariable;
|
|
10
10
|
};
|
|
11
|
+
type FileVariable = string;
|
|
12
|
+
type Functions = Record<string, ServerlessFunction | FileVariable>;
|
|
11
13
|
export type EsbuildConfig = {
|
|
12
14
|
inject?: string[];
|
|
13
15
|
} | boolean;
|
|
@@ -3,7 +3,7 @@ import { hasDependency } from '../../util/plugin.js';
|
|
|
3
3
|
const title = 'simple-git-hooks';
|
|
4
4
|
const enablers = ['simple-git-hooks'];
|
|
5
5
|
const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
|
|
6
|
-
const config = ['.simple-git-hooks.{js,cjs,json}', 'simple-git-hooks.{js,cjs,json}', 'package.json'];
|
|
6
|
+
const config = ['.simple-git-hooks.{js,cjs,mjs,json}', 'simple-git-hooks.{js,cjs,mjs,json}', 'package.json'];
|
|
7
7
|
const resolveConfig = async (config, options) => {
|
|
8
8
|
if (options.isProduction)
|
|
9
9
|
return [];
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { DEFAULT_EXTENSIONS } from '../../constants.js';
|
|
2
|
+
import { filterTransitiveDependencies } from '../../util/filter-transitive-dependencies.js';
|
|
2
3
|
import { _glob } from '../../util/glob.js';
|
|
3
4
|
import { toConfig, toDeferResolve, toDependency, toEntry, toProductionEntry } from '../../util/input.js';
|
|
4
5
|
import { getPackageNameFromModuleSpecifier } from '../../util/modules.js';
|
|
5
6
|
import { isAbsolute, isInternal, join, toAbsolute, toPosix } from '../../util/path.js';
|
|
6
7
|
import { hasDependency } from '../../util/plugin.js';
|
|
8
|
+
import { resolveExtendedConfig } from '../oxlint/index.js';
|
|
7
9
|
import { getHtmlScriptEntries, getIndexHtmlEntries } from '../vite/helpers.js';
|
|
8
10
|
import { getAliasInputs, getEnvSpecifier, getExternalReporters } from './helpers.js';
|
|
9
11
|
import { createVitestMockVisitor } from './visitors/mock.js';
|
|
@@ -107,6 +109,7 @@ const getConfigs = async (localConfig) => {
|
|
|
107
109
|
};
|
|
108
110
|
export const resolveConfig = async (localConfig, options) => {
|
|
109
111
|
const inputs = new Set();
|
|
112
|
+
const lintInputs = [];
|
|
110
113
|
inputs.add(toEntry(join(options.cwd, 'src/vite-env.d.ts')));
|
|
111
114
|
const configs = await getConfigs(localConfig);
|
|
112
115
|
for (const cfg of configs) {
|
|
@@ -134,6 +137,11 @@ export const resolveConfig = async (localConfig, options) => {
|
|
|
134
137
|
};
|
|
135
138
|
const seenRoots = new Set();
|
|
136
139
|
for (const cfg of configs) {
|
|
140
|
+
const lint = cfg.lint;
|
|
141
|
+
if (lint && options.enabledPlugins.includes('oxlint')) {
|
|
142
|
+
for (const input of resolveExtendedConfig(lint, options.configFilePath))
|
|
143
|
+
lintInputs.push(input);
|
|
144
|
+
}
|
|
137
145
|
const viteRoot = toAbsolute(cfg.root ?? '.', options.cwd);
|
|
138
146
|
const publicDir = cfg.publicDir === false || cfg.publicDir === ''
|
|
139
147
|
? undefined
|
|
@@ -143,10 +151,11 @@ export const resolveConfig = async (localConfig, options) => {
|
|
|
143
151
|
for (const entry of await getIndexHtmlEntries(viteRoot, publicDir))
|
|
144
152
|
inputs.add(entry);
|
|
145
153
|
}
|
|
146
|
-
const
|
|
154
|
+
const testRoot = cfg.test?.root || !options.isResolvedConfigFile
|
|
147
155
|
? toAbsolute(cfg.test?.root ?? '.', options.cwd)
|
|
148
156
|
: toAbsolute('.', options.configFileDir);
|
|
149
|
-
const
|
|
157
|
+
const vitestRoot = !cfg.test?.root && cfg.root && !options.isResolvedConfigFile ? toAbsolute(cfg.root, options.cwd) : testRoot;
|
|
158
|
+
const dir = cfg.test?.dir ? toAbsolute(cfg.test.dir, testRoot) : vitestRoot;
|
|
150
159
|
if (cfg.test) {
|
|
151
160
|
if (cfg.test?.include) {
|
|
152
161
|
for (const dependency of cfg.test.include)
|
|
@@ -205,6 +214,11 @@ export const resolveConfig = async (localConfig, options) => {
|
|
|
205
214
|
for (const dependency of deps)
|
|
206
215
|
inputs.add(dependency);
|
|
207
216
|
}
|
|
217
|
+
if (lintInputs.length > 0) {
|
|
218
|
+
filterTransitiveDependencies(lintInputs, options.configFilePath);
|
|
219
|
+
for (const input of lintInputs)
|
|
220
|
+
inputs.add(input);
|
|
221
|
+
}
|
|
208
222
|
return Array.from(inputs);
|
|
209
223
|
};
|
|
210
224
|
const args = {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OxlintConfig } from '../oxlint/types.ts';
|
|
1
2
|
interface Alias {
|
|
2
3
|
find: string | RegExp;
|
|
3
4
|
replacement: string;
|
|
@@ -37,6 +38,7 @@ interface VitestConfig {
|
|
|
37
38
|
};
|
|
38
39
|
}
|
|
39
40
|
export interface ViteConfig extends VitestConfig {
|
|
41
|
+
lint?: OxlintConfig;
|
|
40
42
|
extends?: string | true;
|
|
41
43
|
root?: string;
|
|
42
44
|
publicDir?: string | false;
|
|
@@ -236,6 +236,11 @@ export declare const workspaceConfigurationSchema: z.ZodMiniObject<{
|
|
|
236
236
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
237
237
|
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
238
238
|
}, z.core.$strip>]>>;
|
|
239
|
+
jasmine: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
240
|
+
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
241
|
+
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
242
|
+
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
243
|
+
}, z.core.$strip>]>>;
|
|
239
244
|
jest: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
240
245
|
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
241
246
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
@@ -441,6 +446,11 @@ export declare const workspaceConfigurationSchema: z.ZodMiniObject<{
|
|
|
441
446
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
442
447
|
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
443
448
|
}, z.core.$strip>]>>;
|
|
449
|
+
osls: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
450
|
+
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
451
|
+
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
452
|
+
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
453
|
+
}, z.core.$strip>]>>;
|
|
444
454
|
oxfmt: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
445
455
|
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
446
456
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
@@ -1193,6 +1203,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
|
|
|
1193
1203
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1194
1204
|
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1195
1205
|
}, z.core.$strip>]>>;
|
|
1206
|
+
jasmine: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
1207
|
+
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1208
|
+
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1209
|
+
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1210
|
+
}, z.core.$strip>]>>;
|
|
1196
1211
|
jest: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
1197
1212
|
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1198
1213
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
@@ -1398,6 +1413,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
|
|
|
1398
1413
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1399
1414
|
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1400
1415
|
}, z.core.$strip>]>>;
|
|
1416
|
+
osls: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
1417
|
+
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1418
|
+
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1419
|
+
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1420
|
+
}, z.core.$strip>]>>;
|
|
1401
1421
|
oxfmt: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
1402
1422
|
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
1403
1423
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
@@ -2169,6 +2189,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
|
|
|
2169
2189
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2170
2190
|
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2171
2191
|
}, z.core.$strip>]>>;
|
|
2192
|
+
jasmine: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
2193
|
+
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2194
|
+
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2195
|
+
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2196
|
+
}, z.core.$strip>]>>;
|
|
2172
2197
|
jest: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
2173
2198
|
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2174
2199
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
@@ -2374,6 +2399,11 @@ export declare const knipConfigurationSchema: z.ZodMiniObject<{
|
|
|
2374
2399
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2375
2400
|
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2376
2401
|
}, z.core.$strip>]>>;
|
|
2402
|
+
osls: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
2403
|
+
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2404
|
+
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2405
|
+
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2406
|
+
}, z.core.$strip>]>>;
|
|
2377
2407
|
oxfmt: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
2378
2408
|
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
2379
2409
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
package/dist/schema/plugins.d.ts
CHANGED
|
@@ -241,6 +241,11 @@ export declare const pluginsSchema: z.ZodMiniObject<{
|
|
|
241
241
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
242
242
|
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
243
243
|
}, z.core.$strip>]>;
|
|
244
|
+
jasmine: z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
245
|
+
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
246
|
+
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
247
|
+
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
248
|
+
}, z.core.$strip>]>;
|
|
244
249
|
jest: z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
245
250
|
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
246
251
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
@@ -446,6 +451,11 @@ export declare const pluginsSchema: z.ZodMiniObject<{
|
|
|
446
451
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
447
452
|
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
448
453
|
}, z.core.$strip>]>;
|
|
454
|
+
osls: z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
455
|
+
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
456
|
+
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
457
|
+
project: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
458
|
+
}, z.core.$strip>]>;
|
|
449
459
|
oxfmt: z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>, z.ZodMiniObject<{
|
|
450
460
|
config: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
451
461
|
entry: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
package/dist/schema/plugins.js
CHANGED
|
@@ -57,6 +57,7 @@ export const pluginsSchema = z.object({
|
|
|
57
57
|
hardhat: pluginSchema,
|
|
58
58
|
husky: pluginSchema,
|
|
59
59
|
'i18next-parser': pluginSchema,
|
|
60
|
+
jasmine: pluginSchema,
|
|
60
61
|
jest: pluginSchema,
|
|
61
62
|
karma: pluginSchema,
|
|
62
63
|
knex: pluginSchema,
|
|
@@ -98,6 +99,7 @@ export const pluginsSchema = z.object({
|
|
|
98
99
|
'openapi-ts': pluginSchema,
|
|
99
100
|
openclaw: pluginSchema,
|
|
100
101
|
orval: pluginSchema,
|
|
102
|
+
osls: pluginSchema,
|
|
101
103
|
oxfmt: pluginSchema,
|
|
102
104
|
oxlint: pluginSchema,
|
|
103
105
|
'panda-css': 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' | 'expressive-code' | 'fast' | 'fumadocs' | 'gatsby' | 'github-action' | 'github-actions' | 'glob' | 'graphql-codegen' | 'hardhat' | 'husky' | 'i18next-parser' | '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' | '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' | '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' | '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', 'expressive-code', 'fast', 'fumadocs', 'gatsby', 'github-action', 'github-actions', 'glob', 'graphql-codegen', 'hardhat', 'husky', 'i18next-parser', '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', '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', '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', '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' | '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' | 'expressive-code' | 'fast' | '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' | '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' | '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', 'expressive-code', 'fast', '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', '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', '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'];
|
|
@@ -46,6 +46,7 @@ export const pluginNames = [
|
|
|
46
46
|
'hardhat',
|
|
47
47
|
'husky',
|
|
48
48
|
'i18next-parser',
|
|
49
|
+
'jasmine',
|
|
49
50
|
'jest',
|
|
50
51
|
'karma',
|
|
51
52
|
'knex',
|
|
@@ -87,6 +88,7 @@ export const pluginNames = [
|
|
|
87
88
|
'openapi-ts',
|
|
88
89
|
'openclaw',
|
|
89
90
|
'orval',
|
|
91
|
+
'osls',
|
|
90
92
|
'oxfmt',
|
|
91
93
|
'oxlint',
|
|
92
94
|
'panda-css',
|