knip 2.28.0 → 2.30.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/DependencyDeputy.d.ts +3 -0
- package/dist/DependencyDeputy.js +11 -0
- package/dist/ProjectPrincipal.js +2 -2
- package/dist/WorkspaceWorker.d.ts +2 -0
- package/dist/WorkspaceWorker.js +4 -1
- package/dist/index.js +2 -1
- package/dist/manifest/index.d.ts +1 -0
- package/dist/manifest/index.js +5 -0
- package/dist/plugins/next/index.js +1 -1
- package/dist/plugins/vitest/index.js +13 -1
- package/dist/plugins/vitest/types.d.ts +1 -0
- package/dist/typescript/getImportsAndExports.js +6 -13
- package/dist/typescript/resolveModuleNames.js +19 -1
- package/dist/util/modules.d.ts +1 -0
- package/dist/util/modules.js +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -7
|
@@ -13,6 +13,7 @@ export declare class DependencyDeputy {
|
|
|
13
13
|
referencedBinaries: Map<string, Set<string>>;
|
|
14
14
|
hostDependencies: Map<string, HostDependencies>;
|
|
15
15
|
installedBinaries: Map<string, InstalledBinaries>;
|
|
16
|
+
hasTypesIncluded: Map<string, Set<string>>;
|
|
16
17
|
ignoreBinaries: string[];
|
|
17
18
|
ignoreDependencies: string[];
|
|
18
19
|
constructor({ isStrict }: Options);
|
|
@@ -42,6 +43,8 @@ export declare class DependencyDeputy {
|
|
|
42
43
|
getDevDependencies(workspaceName: string): string[];
|
|
43
44
|
setInstalledBinaries(workspaceName: string, installedBinaries: Map<string, Set<string>>): void;
|
|
44
45
|
getInstalledBinaries(workspaceName: string): InstalledBinaries | undefined;
|
|
46
|
+
setHasTypesIncluded(workspaceName: string, hasTypesIncluded: Set<string>): void;
|
|
47
|
+
getHasTypesIncluded(workspaceName: string): InstalledBinaries | undefined;
|
|
45
48
|
addReferencedDependency(workspaceName: string, packageName: string): void;
|
|
46
49
|
addReferencedBinary(workspaceName: string, binaryName: string): void;
|
|
47
50
|
addHostDependencies(workspaceName: string, hostDependencies: HostDependencies): void;
|
package/dist/DependencyDeputy.js
CHANGED
|
@@ -8,6 +8,7 @@ export class DependencyDeputy {
|
|
|
8
8
|
referencedBinaries;
|
|
9
9
|
hostDependencies;
|
|
10
10
|
installedBinaries;
|
|
11
|
+
hasTypesIncluded;
|
|
11
12
|
ignoreBinaries = [];
|
|
12
13
|
ignoreDependencies = [];
|
|
13
14
|
constructor({ isStrict }) {
|
|
@@ -16,6 +17,7 @@ export class DependencyDeputy {
|
|
|
16
17
|
this.referencedBinaries = new Map();
|
|
17
18
|
this.hostDependencies = new Map();
|
|
18
19
|
this.installedBinaries = new Map();
|
|
20
|
+
this.hasTypesIncluded = new Map();
|
|
19
21
|
}
|
|
20
22
|
addWorkspace({ name, dir, manifestPath, manifest, ignoreDependencies, ignoreBinaries, }) {
|
|
21
23
|
const scripts = Object.values(manifest.scripts ?? {});
|
|
@@ -67,6 +69,12 @@ export class DependencyDeputy {
|
|
|
67
69
|
getInstalledBinaries(workspaceName) {
|
|
68
70
|
return this.installedBinaries.get(workspaceName);
|
|
69
71
|
}
|
|
72
|
+
setHasTypesIncluded(workspaceName, hasTypesIncluded) {
|
|
73
|
+
this.hasTypesIncluded.set(workspaceName, hasTypesIncluded);
|
|
74
|
+
}
|
|
75
|
+
getHasTypesIncluded(workspaceName) {
|
|
76
|
+
return this.installedBinaries.get(workspaceName);
|
|
77
|
+
}
|
|
70
78
|
addReferencedDependency(workspaceName, packageName) {
|
|
71
79
|
if (!this.referencedDependencies.has(workspaceName)) {
|
|
72
80
|
this.referencedDependencies.set(workspaceName, new Set());
|
|
@@ -155,6 +163,7 @@ export class DependencyDeputy {
|
|
|
155
163
|
for (const [workspaceName, { manifestPath, ignoreDependencies, ignoreBinaries }] of this._manifests.entries()) {
|
|
156
164
|
const referencedDependencies = this.referencedDependencies.get(workspaceName);
|
|
157
165
|
const installedBinaries = this.getInstalledBinaries(workspaceName);
|
|
166
|
+
const hasTypesIncluded = this.getHasTypesIncluded(workspaceName);
|
|
158
167
|
const ignoreBins = [...IGNORED_GLOBAL_BINARIES, ...this.ignoreBinaries, ...ignoreBinaries];
|
|
159
168
|
const ignoreDeps = [...IGNORED_DEPENDENCIES, ...this.ignoreDependencies, ...ignoreDependencies];
|
|
160
169
|
const isNotIgnoredDependency = (packageName) => !ignoreDeps.includes(packageName);
|
|
@@ -176,6 +185,8 @@ export class DependencyDeputy {
|
|
|
176
185
|
return false;
|
|
177
186
|
const [scope, typedDependency] = dependency.split('/');
|
|
178
187
|
if (scope === '@types') {
|
|
188
|
+
if (hasTypesIncluded?.has(typedDependency))
|
|
189
|
+
return false;
|
|
179
190
|
const typedPackageName = getPackageFromDefinitelyTyped(typedDependency);
|
|
180
191
|
if (IGNORE_DEFINITELY_TYPED.includes(typedPackageName))
|
|
181
192
|
return true;
|
package/dist/ProjectPrincipal.js
CHANGED
|
@@ -6,7 +6,7 @@ import { getJSDocTags, isInModuleBlock } from './typescript/ast-helpers.js';
|
|
|
6
6
|
import { createHosts } from './typescript/createHosts.js';
|
|
7
7
|
import { getImportsAndExports } from './typescript/getImportsAndExports.js';
|
|
8
8
|
import { SourceFileManager } from './typescript/SourceFileManager.js';
|
|
9
|
-
import { isMaybePackageName } from './util/modules.js';
|
|
9
|
+
import { isMaybePackageName, sanitizeSpecifier } from './util/modules.js';
|
|
10
10
|
import { dirname, extname, isInNodeModules, join } from './util/path.js';
|
|
11
11
|
import { timerify } from './util/Performance.js';
|
|
12
12
|
const baseCompilerOptions = {
|
|
@@ -128,7 +128,7 @@ export class ProjectPrincipal {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
else {
|
|
131
|
-
const sanitizedSpecifier = specifier
|
|
131
|
+
const sanitizedSpecifier = sanitizeSpecifier(specifier);
|
|
132
132
|
if (isMaybePackageName(sanitizedSpecifier)) {
|
|
133
133
|
external.add(sanitizedSpecifier);
|
|
134
134
|
}
|
|
@@ -30,6 +30,7 @@ export declare class WorkspaceWorker {
|
|
|
30
30
|
referencedDependencies: ReferencedDependencies;
|
|
31
31
|
hostDependencies: HostDependencies;
|
|
32
32
|
installedBinaries: InstalledBinaries;
|
|
33
|
+
hasTypesIncluded: Set<string>;
|
|
33
34
|
constructor({ name, dir, cwd, config, manifest, isProduction, isStrict, rootIgnore, negatedWorkspacePatterns, enabledPluginsInAncestors, }: WorkspaceManagerOptions);
|
|
34
35
|
init(): Promise<void>;
|
|
35
36
|
private setEnabledPlugins;
|
|
@@ -50,6 +51,7 @@ export declare class WorkspaceWorker {
|
|
|
50
51
|
hostDependencies: HostDependencies;
|
|
51
52
|
installedBinaries: InstalledBinaries;
|
|
52
53
|
referencedDependencies: ReferencedDependencies;
|
|
54
|
+
hasTypesIncluded: Set<string>;
|
|
53
55
|
enabledPlugins: ("angular" | "ava" | "babel" | "capacitor" | "changesets" | "commitizen" | "commitlint" | "cspell" | "cypress" | "eslint" | "gatsby" | "husky" | "jest" | "lefthook" | "markdownlint" | "mocha" | "next" | "nx" | "nyc" | "playwright" | "postcss" | "prettier" | "remark" | "remix" | "rollup" | "sentry" | "storybook" | "stryker" | "stylelint" | "tailwind" | "typedoc" | "typescript" | "vite" | "vitest" | "webpack" | "drizzle" | "githubActions" | "lintStaged" | "npmPackageJsonLint" | "playwrightCt" | "releaseIt" | "semanticRelease" | "svelte")[];
|
|
54
56
|
}>;
|
|
55
57
|
}
|
package/dist/WorkspaceWorker.js
CHANGED
|
@@ -22,6 +22,7 @@ export class WorkspaceWorker {
|
|
|
22
22
|
referencedDependencies = new Set();
|
|
23
23
|
hostDependencies = new Map();
|
|
24
24
|
installedBinaries = new Map();
|
|
25
|
+
hasTypesIncluded = new Set();
|
|
25
26
|
constructor({ name, dir, cwd, config, manifest, isProduction, isStrict, rootIgnore, negatedWorkspacePatterns, enabledPluginsInAncestors, }) {
|
|
26
27
|
this.name = name;
|
|
27
28
|
this.dir = dir;
|
|
@@ -59,7 +60,7 @@ export class WorkspaceWorker {
|
|
|
59
60
|
debugLogObject(`Enabled plugins (${this.name})`, enabledPluginNames);
|
|
60
61
|
}
|
|
61
62
|
async initReferencedDependencies() {
|
|
62
|
-
const { dependencies, hostDependencies, installedBinaries } = await npm.findDependencies({
|
|
63
|
+
const { dependencies, hostDependencies, installedBinaries, hasTypesIncluded } = await npm.findDependencies({
|
|
63
64
|
manifest: this.manifest,
|
|
64
65
|
isProduction: this.isProduction,
|
|
65
66
|
isStrict: this.isStrict,
|
|
@@ -70,6 +71,7 @@ export class WorkspaceWorker {
|
|
|
70
71
|
dependencies.forEach(dependency => this.referencedDependencies.add([filePath, dependency]));
|
|
71
72
|
this.hostDependencies = hostDependencies;
|
|
72
73
|
this.installedBinaries = installedBinaries;
|
|
74
|
+
this.hasTypesIncluded = hasTypesIncluded;
|
|
73
75
|
}
|
|
74
76
|
getConfigForPlugin(pluginName) {
|
|
75
77
|
return this.config[pluginName] ?? { config: null, entry: null, project: null };
|
|
@@ -238,6 +240,7 @@ export class WorkspaceWorker {
|
|
|
238
240
|
hostDependencies: this.hostDependencies,
|
|
239
241
|
installedBinaries: this.installedBinaries,
|
|
240
242
|
referencedDependencies: this.referencedDependencies,
|
|
243
|
+
hasTypesIncluded: this.hasTypesIncluded,
|
|
241
244
|
enabledPlugins: this.enabledPlugins,
|
|
242
245
|
};
|
|
243
246
|
}
|
package/dist/index.js
CHANGED
|
@@ -168,9 +168,10 @@ export const main = async (unresolvedConfiguration) => {
|
|
|
168
168
|
if (chief.resolvedConfigFilePath)
|
|
169
169
|
principal.addEntryPath(chief.resolvedConfigFilePath, { skipExportsAnalysis: true });
|
|
170
170
|
const dependencies = await worker.findAllDependencies();
|
|
171
|
-
const { referencedDependencies, hostDependencies, installedBinaries, enabledPlugins } = dependencies;
|
|
171
|
+
const { referencedDependencies, hostDependencies, installedBinaries, enabledPlugins, hasTypesIncluded } = dependencies;
|
|
172
172
|
deputy.addHostDependencies(name, hostDependencies);
|
|
173
173
|
deputy.setInstalledBinaries(name, installedBinaries);
|
|
174
|
+
deputy.setHasTypesIncluded(name, hasTypesIncluded);
|
|
174
175
|
enabledPluginsStore.set(name, enabledPlugins);
|
|
175
176
|
referencedDependencies.forEach(([containingFilePath, specifier]) => {
|
|
176
177
|
handleReferencedDependency({ specifier, containingFilePath, principal, workspace });
|
package/dist/manifest/index.d.ts
CHANGED
package/dist/manifest/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { _getDependenciesFromScripts } from '../binaries/index.js';
|
|
2
|
+
import { isDefinitelyTyped } from '../util/modules.js';
|
|
2
3
|
import { timerify } from '../util/Performance.js';
|
|
3
4
|
import { getPackageManifest } from './helpers.js';
|
|
4
5
|
const findManifestDependencies = async ({ manifest, isProduction, isStrict, dir, cwd }) => {
|
|
@@ -12,6 +13,7 @@ const findManifestDependencies = async ({ manifest, isProduction, isStrict, dir,
|
|
|
12
13
|
}, []);
|
|
13
14
|
const dependencies = _getDependenciesFromScripts(scripts, { cwd: dir, manifest });
|
|
14
15
|
const installedBinaries = new Map();
|
|
16
|
+
const hasTypesIncluded = new Set();
|
|
15
17
|
const packageNames = [
|
|
16
18
|
...Object.keys(manifest.dependencies ?? {}),
|
|
17
19
|
...(isStrict ? Object.keys(manifest.peerDependencies ?? {}) : []),
|
|
@@ -45,12 +47,15 @@ const findManifestDependencies = async ({ manifest, isProduction, isStrict, dir,
|
|
|
45
47
|
hostDependencies.set(packagePeerDependency, new Set([packageName]));
|
|
46
48
|
}
|
|
47
49
|
});
|
|
50
|
+
if (!isDefinitelyTyped(packageName) && (manifest.types || manifest.typings))
|
|
51
|
+
hasTypesIncluded.add(packageName);
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
return {
|
|
51
55
|
dependencies,
|
|
52
56
|
hostDependencies,
|
|
53
57
|
installedBinaries,
|
|
58
|
+
hasTypesIncluded,
|
|
54
59
|
};
|
|
55
60
|
};
|
|
56
61
|
export const findDependencies = timerify(findManifestDependencies);
|
|
@@ -9,7 +9,7 @@ const productionEntryFilePatternsWithoutSrc = [
|
|
|
9
9
|
'app/**/{error,layout,loading,not-found,page,template}.{js,jsx,ts,tsx}',
|
|
10
10
|
'instrumentation.{js,ts}',
|
|
11
11
|
'app/{manifest,sitemap,robots}.{js,ts}',
|
|
12
|
-
'app/**/{icon,apple-icon}
|
|
12
|
+
'app/**/{icon,apple-icon}.{js,ts,tsx}',
|
|
13
13
|
'app/**/{opengraph,twitter}-image.{js,ts,tsx}',
|
|
14
14
|
'pages/**/*.{js,jsx,ts,tsx}',
|
|
15
15
|
];
|
|
@@ -5,7 +5,7 @@ import { getEnvPackageName, getExternalReporters } from './helpers.js';
|
|
|
5
5
|
export const NAME = 'Vitest';
|
|
6
6
|
export const ENABLERS = ['vitest'];
|
|
7
7
|
export const isEnabled = ({ dependencies }) => hasDependency(dependencies, ENABLERS);
|
|
8
|
-
export const CONFIG_FILE_PATTERNS = ['vitest.config.ts'];
|
|
8
|
+
export const CONFIG_FILE_PATTERNS = ['vitest.config.ts', 'vitest.{workspace,projects}.{ts,js,json}'];
|
|
9
9
|
export const ENTRY_FILE_PATTERNS = [];
|
|
10
10
|
export const findVitestDeps = (config) => {
|
|
11
11
|
if (!config || !config.test)
|
|
@@ -18,8 +18,20 @@ export const findVitestDeps = (config) => {
|
|
|
18
18
|
const globalSetup = cfg.globalSetup ? [cfg.globalSetup].flat() : [];
|
|
19
19
|
return compact([...environments, ...reporters, ...coverage, ...setupFiles, ...globalSetup]);
|
|
20
20
|
};
|
|
21
|
+
const findVitestWorkspaceDeps = (config) => {
|
|
22
|
+
let deps = [];
|
|
23
|
+
for (const cfg of config) {
|
|
24
|
+
if (typeof cfg === 'string')
|
|
25
|
+
continue;
|
|
26
|
+
deps = [...deps, ...findVitestDeps(cfg)];
|
|
27
|
+
}
|
|
28
|
+
return compact(deps);
|
|
29
|
+
};
|
|
21
30
|
const findVitestDependencies = async (configFilePath) => {
|
|
22
31
|
const config = await load(configFilePath);
|
|
32
|
+
if (Array.isArray(config)) {
|
|
33
|
+
return findVitestWorkspaceDeps(config);
|
|
34
|
+
}
|
|
23
35
|
return findVitestDeps(config);
|
|
24
36
|
};
|
|
25
37
|
export const findDependencies = timerify(findVitestDependencies);
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
2
1
|
import { isBuiltin } from 'node:module';
|
|
3
|
-
import { resolve, dirname } from 'node:path';
|
|
4
2
|
import ts from 'typescript';
|
|
5
3
|
import { getOrSet } from '../util/map.js';
|
|
6
|
-
import { isMaybePackageName } from '../util/modules.js';
|
|
4
|
+
import { isMaybePackageName, sanitizeSpecifier } from '../util/modules.js';
|
|
7
5
|
import { isInNodeModules } from '../util/path.js';
|
|
8
6
|
import { isDeclarationFileExtension, isAccessExpression, getAccessExpressionName, getJSDocTags, } from './ast-helpers.js';
|
|
9
7
|
import getExportVisitors from './visitors/exports/index.js';
|
|
@@ -60,13 +58,14 @@ export const getImportsAndExports = (sourceFile, options) => {
|
|
|
60
58
|
if (!isInNodeModules(filePath)) {
|
|
61
59
|
addInternalImport({ identifier, specifier, symbol, filePath, isReExport });
|
|
62
60
|
}
|
|
63
|
-
|
|
61
|
+
const sanitizedSpecifier = sanitizeSpecifier(specifier);
|
|
62
|
+
if (!isMaybePackageName(sanitizedSpecifier))
|
|
64
63
|
return;
|
|
65
64
|
if (isDeclarationFileExtension(module.resolvedModule.extension)) {
|
|
66
|
-
externalImports.add(
|
|
65
|
+
externalImports.add(sanitizedSpecifier);
|
|
67
66
|
}
|
|
68
67
|
else {
|
|
69
|
-
externalImports.add(module.resolvedModule.packageId?.name ??
|
|
68
|
+
externalImports.add(module.resolvedModule.packageId?.name ?? sanitizedSpecifier);
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
else {
|
|
@@ -75,13 +74,7 @@ export const getImportsAndExports = (sourceFile, options) => {
|
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
else {
|
|
78
|
-
|
|
79
|
-
if (existsSync(filePath)) {
|
|
80
|
-
unresolvedImports.add(filePath);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
unresolvedImports.add(specifier);
|
|
84
|
-
}
|
|
77
|
+
unresolvedImports.add(specifier);
|
|
85
78
|
}
|
|
86
79
|
};
|
|
87
80
|
const maybeAddNamespaceAccessAsImport = ({ namespace, member }) => {
|
|
@@ -1,11 +1,29 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
1
2
|
import ts from 'typescript';
|
|
3
|
+
import { sanitizeSpecifier } from '../util/modules.js';
|
|
4
|
+
import { dirname, extname, isInternal, join } from '../util/path.js';
|
|
2
5
|
import { ensureRealFilePath, isVirtualFilePath } from './utils.js';
|
|
3
6
|
export function createCustomModuleResolver(customSys, compilerOptions, virtualFileExtensions) {
|
|
4
7
|
function resolveModuleNames(moduleNames, containingFile) {
|
|
5
8
|
return moduleNames.map(moduleName => resolveModuleName(moduleName, containingFile));
|
|
6
9
|
}
|
|
7
10
|
function resolveModuleName(name, containingFile) {
|
|
8
|
-
const
|
|
11
|
+
const sanitizedSpecifier = sanitizeSpecifier(name);
|
|
12
|
+
const tsResolvedModule = ts.resolveModuleName(sanitizedSpecifier, containingFile, compilerOptions, ts.sys).resolvedModule;
|
|
13
|
+
if (!tsResolvedModule) {
|
|
14
|
+
const extension = extname(sanitizedSpecifier);
|
|
15
|
+
if (extension && isInternal(sanitizedSpecifier) && !virtualFileExtensions.includes(extension)) {
|
|
16
|
+
const resolvedFileName = join(dirname(containingFile), sanitizedSpecifier);
|
|
17
|
+
if (existsSync(resolvedFileName)) {
|
|
18
|
+
return {
|
|
19
|
+
resolvedFileName,
|
|
20
|
+
extension,
|
|
21
|
+
isExternalLibraryImport: false,
|
|
22
|
+
resolvedUsingTsExtension: false,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
9
27
|
if (virtualFileExtensions.length === 0)
|
|
10
28
|
return tsResolvedModule;
|
|
11
29
|
if (tsResolvedModule && !isVirtualFilePath(tsResolvedModule.resolvedFileName, virtualFileExtensions)) {
|
package/dist/util/modules.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export declare const isDefinitelyTyped: (packageName: string) => boolean;
|
|
|
6
6
|
export declare const getDefinitelyTypedFor: (packageName: string) => string;
|
|
7
7
|
export declare const getPackageFromDefinitelyTyped: (typedDependency: string) => string;
|
|
8
8
|
export declare const getEntryPathFromManifest: (cwd: string, dir: string, manifest: PackageJson) => Promise<string[]>;
|
|
9
|
+
export declare const sanitizeSpecifier: (specifier: string) => string;
|
package/dist/util/modules.js
CHANGED
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "2.
|
|
1
|
+
export declare const version = "2.30.0";
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.
|
|
1
|
+
export const version = '2.30.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "knip",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.30.0",
|
|
4
4
|
"description": "Find unused files, dependencies and exports in your TypeScript and JavaScript projects",
|
|
5
5
|
"homepage": "https://github.com/webpro/knip",
|
|
6
6
|
"repository": "github:webpro/knip",
|
|
@@ -65,12 +65,12 @@
|
|
|
65
65
|
"@npmcli/package-json": "5.0.0",
|
|
66
66
|
"@release-it/bumper": "5.1.0",
|
|
67
67
|
"@swc/cli": "0.1.62",
|
|
68
|
-
"@swc/core": "1.3.
|
|
68
|
+
"@swc/core": "1.3.90",
|
|
69
69
|
"@types/eslint": "8.44.3",
|
|
70
70
|
"@types/js-yaml": "4.0.6",
|
|
71
|
-
"@types/micromatch": "4.0.
|
|
72
|
-
"@types/minimist": "1.2.
|
|
73
|
-
"@types/node": "20.
|
|
71
|
+
"@types/micromatch": "4.0.3",
|
|
72
|
+
"@types/minimist": "1.2.3",
|
|
73
|
+
"@types/node": "20.7.1",
|
|
74
74
|
"@types/npmcli__map-workspaces": "3.0.2",
|
|
75
75
|
"@types/webpack": "5.28.3",
|
|
76
76
|
"@typescript-eslint/eslint-plugin": "6.7.3",
|
|
@@ -81,11 +81,11 @@
|
|
|
81
81
|
"eslint-plugin-import": "2.28.1",
|
|
82
82
|
"eslint-plugin-n": "16.1.0",
|
|
83
83
|
"prettier": "3.0.3",
|
|
84
|
-
"release-it": "16.2.
|
|
84
|
+
"release-it": "16.2.1",
|
|
85
85
|
"remark-cli": "11.0.0",
|
|
86
86
|
"remark-preset-webpro": "0.0.3",
|
|
87
87
|
"tsx": "3.13.0",
|
|
88
|
-
"type-fest": "4.3.
|
|
88
|
+
"type-fest": "4.3.2"
|
|
89
89
|
},
|
|
90
90
|
"engines": {
|
|
91
91
|
"node": ">=16.17.0 <17 || >=18.6.0"
|