knip 6.4.1 → 6.6.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 (336) hide show
  1. package/dist/CacheConsultant.js +3 -3
  2. package/dist/CatalogCounselor.js +5 -5
  3. package/dist/ConfigurationChief.d.ts +39 -16
  4. package/dist/ConfigurationChief.js +15 -15
  5. package/dist/DependencyDeputy.d.ts +1 -1
  6. package/dist/DependencyDeputy.js +5 -5
  7. package/dist/IssueCollector.js +3 -3
  8. package/dist/IssueFixer.js +5 -5
  9. package/dist/JsonCatalogPeeker.js +1 -1
  10. package/dist/ProjectPrincipal.js +13 -13
  11. package/dist/WorkspaceWorker.d.ts +3 -2
  12. package/dist/WorkspaceWorker.js +39 -26
  13. package/dist/YamlCatalogPeeker.js +1 -1
  14. package/dist/binaries/bash-parser.js +10 -10
  15. package/dist/binaries/fallback.js +3 -3
  16. package/dist/binaries/index.js +3 -3
  17. package/dist/binaries/plugins.js +6 -6
  18. package/dist/binaries/resolvers/bun.js +4 -4
  19. package/dist/binaries/resolvers/bunx.js +4 -4
  20. package/dist/binaries/resolvers/find.js +1 -1
  21. package/dist/binaries/resolvers/index.js +8 -8
  22. package/dist/binaries/resolvers/npx.js +4 -4
  23. package/dist/binaries/resolvers/pnpm.js +3 -3
  24. package/dist/binaries/resolvers/pnpx.js +2 -2
  25. package/dist/binaries/resolvers/yarn.js +4 -4
  26. package/dist/cli.js +10 -10
  27. package/dist/compilers/index.d.ts +62 -22
  28. package/dist/compilers/index.js +2 -2
  29. package/dist/compilers/mdx.js +1 -1
  30. package/dist/compilers/scss.js +1 -1
  31. package/dist/constants.d.ts +25 -25
  32. package/dist/constants.js +1 -1
  33. package/dist/graph/analyze.js +7 -7
  34. package/dist/graph/build.d.ts +2 -2
  35. package/dist/graph/build.js +34 -26
  36. package/dist/graph-explorer/constants.d.ts +5 -5
  37. package/dist/graph-explorer/explorer.js +9 -9
  38. package/dist/graph-explorer/operations/build-exports-tree.js +2 -2
  39. package/dist/graph-explorer/operations/get-contention.js +3 -3
  40. package/dist/graph-explorer/operations/get-dependency-usage.js +1 -1
  41. package/dist/graph-explorer/operations/get-usage.js +5 -5
  42. package/dist/graph-explorer/operations/has-strictly-ns-references.js +1 -1
  43. package/dist/graph-explorer/operations/is-referenced.js +2 -2
  44. package/dist/graph-explorer/operations/resolve-definition.js +3 -3
  45. package/dist/graph-explorer/utils.d.ts +1 -1
  46. package/dist/graph-explorer/utils.js +2 -2
  47. package/dist/graph-explorer/visitors.js +1 -1
  48. package/dist/graph-explorer/walk-down.js +2 -2
  49. package/dist/graph-explorer/walk-up.js +2 -2
  50. package/dist/index.js +2 -2
  51. package/dist/manifest/helpers.js +2 -2
  52. package/dist/manifest/index.js +3 -3
  53. package/dist/plugins/_template/index.js +2 -2
  54. package/dist/plugins/angular/index.js +4 -4
  55. package/dist/plugins/astro/compiler-mdx.js +1 -1
  56. package/dist/plugins/astro/compiler.js +1 -1
  57. package/dist/plugins/astro/index.js +8 -6
  58. package/dist/plugins/astro/resolveFromAST.d.ts +1 -0
  59. package/dist/plugins/astro/resolveFromAST.js +40 -1
  60. package/dist/plugins/astro-db/index.js +1 -1
  61. package/dist/plugins/astro-og-canvas/index.js +2 -2
  62. package/dist/plugins/ava/index.js +2 -2
  63. package/dist/plugins/babel/helpers.d.ts +44 -6
  64. package/dist/plugins/babel/helpers.js +1 -1
  65. package/dist/plugins/babel/index.js +4 -4
  66. package/dist/plugins/biome/index.js +4 -4
  67. package/dist/plugins/bumpp/index.js +2 -2
  68. package/dist/plugins/bun/index.js +1 -1
  69. package/dist/plugins/c8/index.js +1 -1
  70. package/dist/plugins/capacitor/index.js +3 -3
  71. package/dist/plugins/changelogen/index.js +2 -2
  72. package/dist/plugins/changelogithub/index.js +2 -2
  73. package/dist/plugins/changesets/index.js +3 -3
  74. package/dist/plugins/commitizen/index.js +2 -2
  75. package/dist/plugins/commitlint/index.js +3 -3
  76. package/dist/plugins/convex/index.js +1 -1
  77. package/dist/plugins/create-typescript-app/index.js +1 -1
  78. package/dist/plugins/cspell/index.js +2 -2
  79. package/dist/plugins/cucumber/index.js +2 -2
  80. package/dist/plugins/cypress/helpers.js +2 -2
  81. package/dist/plugins/cypress/index.js +3 -3
  82. package/dist/plugins/danger/index.js +1 -1
  83. package/dist/plugins/dependency-cruiser/index.js +1 -1
  84. package/dist/plugins/docusaurus/helpers.js +2 -2
  85. package/dist/plugins/docusaurus/index.js +4 -4
  86. package/dist/plugins/dotenv/index.js +1 -1
  87. package/dist/plugins/drizzle/index.js +2 -2
  88. package/dist/plugins/eleventy/index.js +6 -6
  89. package/dist/plugins/eslint/helpers.js +5 -5
  90. package/dist/plugins/eslint/index.js +4 -4
  91. package/dist/plugins/eslint/resolveFromAST.js +3 -3
  92. package/dist/plugins/execa/index.js +2 -2
  93. package/dist/plugins/execa/visitors/execa.js +1 -1
  94. package/dist/plugins/expo/helpers.d.ts +3 -3
  95. package/dist/plugins/expo/helpers.js +3 -3
  96. package/dist/plugins/expo/index.js +4 -4
  97. package/dist/plugins/expressive-code/index.js +1 -1
  98. package/dist/plugins/gatsby/index.js +2 -2
  99. package/dist/plugins/github-action/index.js +4 -4
  100. package/dist/plugins/github-actions/index.js +4 -4
  101. package/dist/plugins/graphql-codegen/index.js +5 -5
  102. package/dist/plugins/hardhat/index.js +2 -2
  103. package/dist/plugins/husky/index.js +3 -3
  104. package/dist/plugins/i18next-parser/index.js +1 -1
  105. package/dist/plugins/index.d.ts +4 -0
  106. package/dist/plugins/index.js +152 -144
  107. package/dist/plugins/jest/helpers.js +2 -2
  108. package/dist/plugins/jest/index.js +4 -4
  109. package/dist/plugins/karma/helpers.d.ts +1 -1
  110. package/dist/plugins/karma/helpers.js +2 -2
  111. package/dist/plugins/karma/index.js +4 -4
  112. package/dist/plugins/knex/index.js +3 -3
  113. package/dist/plugins/ladle/index.js +4 -4
  114. package/dist/plugins/lefthook/index.js +5 -5
  115. package/dist/plugins/lint-staged/index.js +2 -2
  116. package/dist/plugins/linthtml/index.js +3 -3
  117. package/dist/plugins/lockfile-lint/index.js +2 -2
  118. package/dist/plugins/lost-pixel/index.js +1 -1
  119. package/dist/plugins/markdownlint/index.js +3 -3
  120. package/dist/plugins/mdx/index.js +2 -2
  121. package/dist/plugins/mdxlint/index.js +3 -3
  122. package/dist/plugins/metro/index.js +4 -4
  123. package/dist/plugins/mocha/index.js +2 -2
  124. package/dist/plugins/moonrepo/index.js +1 -1
  125. package/dist/plugins/msw/index.js +3 -3
  126. package/dist/plugins/nano-staged/index.js +1 -1
  127. package/dist/plugins/nest/index.js +2 -2
  128. package/dist/plugins/netlify/index.js +4 -4
  129. package/dist/plugins/next/index.js +3 -3
  130. package/dist/plugins/next/resolveFromAST.js +1 -1
  131. package/dist/plugins/next-intl/index.js +1 -1
  132. package/dist/plugins/next-mdx/index.js +3 -3
  133. package/dist/plugins/next-mdx/resolveFromAST.js +1 -1
  134. package/dist/plugins/nitro/index.js +3 -3
  135. package/dist/plugins/node/index.js +1 -1
  136. package/dist/plugins/node-modules-inspector/index.js +2 -2
  137. package/dist/plugins/npm-package-json-lint/index.js +3 -3
  138. package/dist/plugins/nuxt/helpers.js +3 -3
  139. package/dist/plugins/nuxt/index.js +10 -11
  140. package/dist/plugins/nx/index.js +4 -4
  141. package/dist/plugins/nyc/index.js +2 -2
  142. package/dist/plugins/oclif/index.js +2 -2
  143. package/dist/plugins/openapi-ts/index.js +2 -2
  144. package/dist/plugins/oxfmt/index.js +1 -1
  145. package/dist/plugins/oxlint/index.js +3 -3
  146. package/dist/plugins/panda-css/index.js +2 -2
  147. package/dist/plugins/parcel/index.js +2 -2
  148. package/dist/plugins/payload/index.js +2 -2
  149. package/dist/plugins/pino/index.d.ts +3 -0
  150. package/dist/plugins/pino/index.js +15 -0
  151. package/dist/plugins/pino/visitors/transportCall.d.ts +2 -0
  152. package/dist/plugins/pino/visitors/transportCall.js +87 -0
  153. package/dist/plugins/playwright/index.js +4 -4
  154. package/dist/plugins/playwright-ct/index.js +3 -3
  155. package/dist/plugins/playwright-test/index.js +1 -1
  156. package/dist/plugins/plop/index.js +1 -1
  157. package/dist/plugins/pm2/index.js +3 -3
  158. package/dist/plugins/pnpm/index.js +1 -1
  159. package/dist/plugins/postcss/index.js +3 -3
  160. package/dist/plugins/preconstruct/index.js +3 -3
  161. package/dist/plugins/prettier/index.js +6 -2
  162. package/dist/plugins/prisma/index.js +5 -5
  163. package/dist/plugins/qwik/index.js +5 -5
  164. package/dist/plugins/qwik/resolveFromAST.js +1 -1
  165. package/dist/plugins/raycast/index.js +3 -3
  166. package/dist/plugins/react-cosmos/index.js +3 -3
  167. package/dist/plugins/react-email/index.d.ts +3 -0
  168. package/dist/plugins/react-email/index.js +26 -0
  169. package/dist/plugins/react-native/index.js +2 -2
  170. package/dist/plugins/react-router/index.js +6 -10
  171. package/dist/plugins/relay/index.js +3 -3
  172. package/dist/plugins/release-it/index.js +2 -2
  173. package/dist/plugins/remark/index.js +3 -3
  174. package/dist/plugins/remix/index.js +1 -1
  175. package/dist/plugins/rolldown/index.js +3 -3
  176. package/dist/plugins/rolldown/resolveFromAST.js +1 -1
  177. package/dist/plugins/rollup/index.js +3 -3
  178. package/dist/plugins/rollup/resolveFromAST.js +1 -1
  179. package/dist/plugins/rsbuild/index.js +2 -2
  180. package/dist/plugins/rslib/index.js +1 -1
  181. package/dist/plugins/rspack/index.js +2 -2
  182. package/dist/plugins/rstest/index.js +2 -2
  183. package/dist/plugins/sanity/index.js +1 -1
  184. package/dist/plugins/semantic-release/index.js +3 -3
  185. package/dist/plugins/sentry/index.js +1 -1
  186. package/dist/plugins/serverless-framework/index.d.ts +3 -0
  187. package/dist/plugins/serverless-framework/index.js +23 -0
  188. package/dist/plugins/serverless-framework/types.d.ts +7 -0
  189. package/dist/plugins/serverless-framework/types.js +1 -0
  190. package/dist/plugins/simple-git-hooks/index.js +2 -2
  191. package/dist/plugins/size-limit/index.js +3 -3
  192. package/dist/plugins/sst/index.js +2 -2
  193. package/dist/plugins/sst/resolveFromAST.js +5 -5
  194. package/dist/plugins/starlight/index.js +4 -4
  195. package/dist/plugins/starlight/resolveFromAST.js +1 -1
  196. package/dist/plugins/stencil/index.js +3 -3
  197. package/dist/plugins/storybook/index.js +3 -3
  198. package/dist/plugins/stryker/index.js +2 -2
  199. package/dist/plugins/stylelint/index.js +3 -3
  200. package/dist/plugins/svelte/compiler.js +1 -1
  201. package/dist/plugins/svelte/index.js +3 -3
  202. package/dist/plugins/sveltejs-package/helpers.d.ts +8 -0
  203. package/dist/plugins/sveltejs-package/helpers.js +65 -0
  204. package/dist/plugins/sveltejs-package/index.d.ts +3 -0
  205. package/dist/plugins/sveltejs-package/index.js +27 -0
  206. package/dist/plugins/sveltekit/index.js +3 -3
  207. package/dist/plugins/svgo/index.js +1 -1
  208. package/dist/plugins/svgr/index.js +2 -2
  209. package/dist/plugins/swc/index.js +3 -3
  210. package/dist/plugins/syncpack/index.js +2 -2
  211. package/dist/plugins/tailwind/index.js +2 -2
  212. package/dist/plugins/tanstack-router/index.js +3 -3
  213. package/dist/plugins/taskfile/index.js +3 -3
  214. package/dist/plugins/travis/index.js +1 -1
  215. package/dist/plugins/tsdown/index.js +3 -3
  216. package/dist/plugins/tsdown/resolveFromAST.js +1 -1
  217. package/dist/plugins/tsup/index.js +3 -3
  218. package/dist/plugins/tsup/resolveFromAST.js +1 -1
  219. package/dist/plugins/tsx/index.js +2 -2
  220. package/dist/plugins/typedoc/index.js +2 -2
  221. package/dist/plugins/typescript/index.js +4 -4
  222. package/dist/plugins/unbuild/index.js +2 -2
  223. package/dist/plugins/unocss/index.js +2 -2
  224. package/dist/plugins/vercel-og/index.js +1 -1
  225. package/dist/plugins/vike/index.js +1 -1
  226. package/dist/plugins/vite/helpers.js +4 -4
  227. package/dist/plugins/vite/index.js +5 -5
  228. package/dist/plugins/vite/visitors/importMetaGlob.js +4 -4
  229. package/dist/plugins/vitepress/index.js +1 -1
  230. package/dist/plugins/vitest/helpers.d.ts +4 -2
  231. package/dist/plugins/vitest/helpers.js +18 -0
  232. package/dist/plugins/vitest/index.js +9 -23
  233. package/dist/plugins/vue/compiler.js +1 -1
  234. package/dist/plugins/vue/index.js +4 -4
  235. package/dist/plugins/webdriver-io/index.js +2 -2
  236. package/dist/plugins/webpack/index.js +5 -5
  237. package/dist/plugins/webpack/visitors/requireContext.js +6 -7
  238. package/dist/plugins/wireit/index.js +1 -1
  239. package/dist/plugins/wrangler/index.js +2 -2
  240. package/dist/plugins/xo/index.js +2 -2
  241. package/dist/plugins/yarn/index.js +2 -2
  242. package/dist/plugins/yorkie/index.js +2 -2
  243. package/dist/plugins/zx/index.js +2 -2
  244. package/dist/plugins.js +2 -2
  245. package/dist/reporters/codeclimate.js +2 -2
  246. package/dist/reporters/codeowners.js +3 -3
  247. package/dist/reporters/compact.js +1 -1
  248. package/dist/reporters/disclosure.js +1 -1
  249. package/dist/reporters/github-actions.js +4 -4
  250. package/dist/reporters/index.js +8 -8
  251. package/dist/reporters/json.js +4 -4
  252. package/dist/reporters/markdown.js +2 -2
  253. package/dist/reporters/symbols.js +2 -2
  254. package/dist/reporters/trace.js +7 -7
  255. package/dist/reporters/util/configuration-hints.d.ts +2 -2
  256. package/dist/reporters/util/configuration-hints.js +7 -10
  257. package/dist/reporters/util/util.d.ts +3 -3
  258. package/dist/reporters/util/util.js +16 -15
  259. package/dist/reporters/watch.js +7 -7
  260. package/dist/run.js +14 -14
  261. package/dist/schema/configuration.d.ts +89 -31
  262. package/dist/schema/configuration.js +2 -2
  263. package/dist/schema/plugins.d.ts +20 -0
  264. package/dist/schema/plugins.js +4 -0
  265. package/dist/session/build-maps.js +3 -3
  266. package/dist/session/file-descriptor.js +3 -3
  267. package/dist/session/index.js +7 -7
  268. package/dist/session/package-json-descriptor.js +1 -1
  269. package/dist/session/session.js +3 -3
  270. package/dist/types/PluginNames.d.ts +2 -2
  271. package/dist/types/PluginNames.js +4 -0
  272. package/dist/types/config.d.ts +13 -0
  273. package/dist/types/issues.d.ts +1 -1
  274. package/dist/typescript/SourceFileManager.js +3 -3
  275. package/dist/typescript/ast-helpers.d.ts +2 -0
  276. package/dist/typescript/ast-helpers.js +5 -5
  277. package/dist/typescript/comments.js +1 -1
  278. package/dist/typescript/follow-imports.js +2 -2
  279. package/dist/typescript/get-imports-and-exports.js +10 -10
  280. package/dist/typescript/resolve-module-names.js +5 -5
  281. package/dist/typescript/visitors/calls.js +3 -3
  282. package/dist/typescript/visitors/exports.js +4 -4
  283. package/dist/typescript/visitors/helpers.js +3 -3
  284. package/dist/typescript/visitors/imports.js +4 -4
  285. package/dist/typescript/visitors/members.js +4 -4
  286. package/dist/typescript/visitors/walk.js +9 -9
  287. package/dist/util/Performance.d.ts +1 -1
  288. package/dist/util/Performance.js +2 -2
  289. package/dist/util/catalog.js +3 -3
  290. package/dist/util/codeowners.js +4 -4
  291. package/dist/util/colors.d.ts +18 -0
  292. package/dist/util/colors.js +24 -0
  293. package/dist/util/create-input-handler.js +6 -6
  294. package/dist/util/create-options.d.ts +72 -33
  295. package/dist/util/create-options.js +14 -15
  296. package/dist/util/create-workspace-graph.js +1 -1
  297. package/dist/util/debug.js +2 -4
  298. package/dist/util/file-entry-cache.js +4 -4
  299. package/dist/util/fs.js +2 -2
  300. package/dist/util/get-included-issue-types.js +2 -2
  301. package/dist/util/git.js +1 -1
  302. package/dist/util/glob-cache.js +4 -4
  303. package/dist/util/glob-core.d.ts +3 -3
  304. package/dist/util/glob-core.js +80 -64
  305. package/dist/util/glob.d.ts +1 -1
  306. package/dist/util/glob.js +14 -7
  307. package/dist/util/input.js +1 -1
  308. package/dist/util/issue-initializers.js +1 -1
  309. package/dist/util/jiti.js +1 -1
  310. package/dist/util/load-config.js +3 -3
  311. package/dist/util/load-tsconfig.js +62 -50
  312. package/dist/util/loader.js +5 -5
  313. package/dist/util/log.js +3 -3
  314. package/dist/util/map-workspaces.js +6 -6
  315. package/dist/util/modules.js +2 -2
  316. package/dist/util/package-name.js +1 -1
  317. package/dist/util/parse-and-convert-gitignores.d.ts +4 -2
  318. package/dist/util/parse-and-convert-gitignores.js +19 -7
  319. package/dist/util/plugin.js +5 -5
  320. package/dist/util/remove-export.js +1 -1
  321. package/dist/util/reporter.js +3 -3
  322. package/dist/util/require.js +1 -1
  323. package/dist/util/resolve.js +3 -3
  324. package/dist/util/string.d.ts +1 -1
  325. package/dist/util/table.js +1 -1
  326. package/dist/util/tag.js +1 -1
  327. package/dist/util/to-source-path.d.ts +4 -2
  328. package/dist/util/to-source-path.js +46 -22
  329. package/dist/util/trace.js +8 -8
  330. package/dist/util/watch.js +8 -8
  331. package/dist/util/workspace-file-filter.js +2 -2
  332. package/dist/util/workspace-selectors.js +4 -4
  333. package/dist/version.d.ts +1 -1
  334. package/dist/version.js +1 -1
  335. package/package.json +12 -19
  336. package/schema.json +13 -1
@@ -1,5 +1,5 @@
1
1
  import { stripVTControlCharacters } from 'node:util';
2
- import { pad, truncate, truncateStart } from "./string.js";
2
+ import { pad, truncate, truncateStart } from './string.js';
3
3
  const DEFAULT_MAX_WIDTH = process.stdout.columns || 120;
4
4
  const MIN_TRUNCATED_WIDTH = 4;
5
5
  const COLUMN_SEPARATOR = ' ';
package/dist/util/tag.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ALIAS_TAG, BETA_TAG, INTERNAL_TAG, PUBLIC_TAG } from "../constants.js";
1
+ import { ALIAS_TAG, BETA_TAG, INTERNAL_TAG, PUBLIC_TAG } from '../constants.js';
2
2
  export const splitTags = (rawTags) => {
3
3
  const tags = rawTags.flatMap(tag => tag.split(','));
4
4
  return tags.reduce(([incl, excl], tag) => {
@@ -1,6 +1,8 @@
1
+ import type { SourceMap } from '../types/config.ts';
1
2
  import type { CompilerOptions } from '../types/project.ts';
2
3
  import type { ConfigurationChief, Workspace } from '../ConfigurationChief.ts';
3
- export declare const augmentWorkspace: (workspace: Workspace, dir: string, compilerOptions: CompilerOptions) => void;
4
+ export declare const augmentWorkspace: (workspace: Workspace, dir: string, compilerOptions: CompilerOptions | undefined, pluginSourceMaps?: SourceMap[]) => void;
4
5
  export declare const getModuleSourcePathHandler: (chief: ConfigurationChief) => (filePath: string) => string | undefined;
5
- export declare const getToSourcePathsHandler: (chief: ConfigurationChief) => (specifiers: Set<string>, dir: string, extensions: string | undefined, label: string) => Promise<string[]>;
6
+ export declare const getToSourcePathsHandler: (chief: ConfigurationChief) => (specifiers: Set<string>, dir: string, extensions: (string | undefined) | undefined, label: string) => Promise<string[]>;
7
+ export declare const toSourceMappedSpecifiers: (ws: Workspace | undefined, absSpecifier: string, extensions?: string) => string[];
6
8
  export type ToSourceFilePath = ReturnType<typeof getModuleSourcePathHandler>;
@@ -1,17 +1,32 @@
1
- import { DEFAULT_EXTENSIONS } from "../constants.js";
2
- import { debugLog, debugLogArray } from "./debug.js";
3
- import { findFileWithExtensions, isDirectory } from "./fs.js";
4
- import { _glob, prependDirToPattern } from "./glob.js";
5
- import { isAbsolute, isInternal, join, toRelative } from "./path.js";
1
+ import { DEFAULT_EXTENSIONS } from '../constants.js';
2
+ import { debugLog, debugLogArray } from './debug.js';
3
+ import { findFileWithExtensions, isDirectory } from './fs.js';
4
+ import { _glob, prependDirToPattern } from './glob.js';
5
+ import { isAbsolute, isInternal, join, toRelative } from './path.js';
6
6
  const defaultExtensions = `.{${[...DEFAULT_EXTENSIONS].map(ext => ext.slice(1)).join(',')}}`;
7
7
  const hasTSExt = /(?<!\.d)\.(m|c)?tsx?$/;
8
8
  const matchExt = /(\.d)?\.(m|c)?(j|t)s$/;
9
9
  const sourceExtensions = [...DEFAULT_EXTENSIONS];
10
- export const augmentWorkspace = (workspace, dir, compilerOptions) => {
10
+ const tsconfigSourceMap = (dir, compilerOptions) => {
11
11
  const srcDir = join(dir, 'src');
12
12
  const outDirHasSrc = compilerOptions.outDir && isDirectory(compilerOptions.outDir, 'src');
13
- workspace.srcDir = compilerOptions.rootDir ?? (outDirHasSrc ? dir : isDirectory(srcDir) ? srcDir : dir);
14
- workspace.outDir = compilerOptions.outDir || workspace.srcDir;
13
+ const resolvedSrc = compilerOptions.rootDir ?? (outDirHasSrc ? dir : isDirectory(srcDir) ? srcDir : dir);
14
+ return { srcDir: resolvedSrc, outDir: compilerOptions.outDir || resolvedSrc };
15
+ };
16
+ export const augmentWorkspace = (workspace, dir, compilerOptions, pluginSourceMaps = []) => {
17
+ const all = compilerOptions ? [...pluginSourceMaps, tsconfigSourceMap(dir, compilerOptions)] : pluginSourceMaps;
18
+ if (all.length === 0)
19
+ return;
20
+ workspace.sourceMaps = all.sort((a, b) => b.outDir.length - a.outDir.length);
21
+ };
22
+ const isUnderOutDir = (absPath, outDir) => absPath === outDir || absPath.startsWith(`${outDir}/`);
23
+ const isUnderSrcDir = (absPath, srcDir) => absPath === srcDir || absPath.startsWith(`${srcDir}/`);
24
+ const rewritePattern = (sourceMaps, absSpecifier, extensions) => {
25
+ for (const { srcDir, outDir } of sourceMaps) {
26
+ if (!isUnderSrcDir(absSpecifier, srcDir) && isUnderOutDir(absSpecifier, outDir)) {
27
+ return srcDir + absSpecifier.slice(outDir.length).replace(matchExt, extensions);
28
+ }
29
+ }
15
30
  };
16
31
  export const getModuleSourcePathHandler = (chief) => {
17
32
  const toSourceMapCache = new Map();
@@ -21,13 +36,16 @@ export const getModuleSourcePathHandler = (chief) => {
21
36
  if (toSourceMapCache.has(filePath))
22
37
  return toSourceMapCache.get(filePath);
23
38
  const workspace = chief.findWorkspaceByFilePath(filePath);
24
- if (workspace?.srcDir && workspace.outDir) {
25
- if (filePath.startsWith(workspace.outDir) || workspace.srcDir === workspace.outDir) {
26
- const basePath = filePath.replace(workspace.outDir, workspace.srcDir).replace(matchExt, '');
27
- const srcFilePath = findFileWithExtensions(basePath, sourceExtensions);
28
- if (srcFilePath)
29
- toSourceMapCache.set(filePath, srcFilePath);
30
- if (srcFilePath && srcFilePath !== filePath) {
39
+ if (!workspace?.sourceMaps)
40
+ return;
41
+ for (const { srcDir, outDir } of workspace.sourceMaps) {
42
+ if (!(isUnderOutDir(filePath, outDir) || srcDir === outDir))
43
+ continue;
44
+ const basePath = (srcDir + filePath.slice(outDir.length)).replace(matchExt, '');
45
+ const srcFilePath = findFileWithExtensions(basePath, sourceExtensions);
46
+ if (srcFilePath) {
47
+ toSourceMapCache.set(filePath, srcFilePath);
48
+ if (srcFilePath !== filePath) {
31
49
  debugLog('*', `Source mapping ${toRelative(filePath, chief.cwd)} → ${toRelative(srcFilePath, chief.cwd)}`);
32
50
  return srcFilePath;
33
51
  }
@@ -41,16 +59,22 @@ export const getToSourcePathsHandler = (chief) => {
41
59
  for (const specifier of specifiers) {
42
60
  const absSpecifier = isAbsolute(specifier) ? specifier : prependDirToPattern(dir, specifier);
43
61
  const ws = chief.findWorkspaceByFilePath(absSpecifier);
44
- if (ws?.srcDir && ws.outDir && !absSpecifier.startsWith(ws.srcDir) && absSpecifier.startsWith(ws.outDir)) {
45
- const pattern = absSpecifier.replace(ws.outDir, ws.srcDir).replace(matchExt, extensions);
46
- patterns.add(pattern);
47
- }
48
- else {
49
- patterns.add(absSpecifier);
50
- }
62
+ const mapped = ws?.sourceMaps && rewritePattern(ws.sourceMaps, absSpecifier, extensions);
63
+ patterns.add(mapped ?? absSpecifier);
51
64
  }
52
65
  const filePaths = await _glob({ patterns: Array.from(patterns), cwd: dir, label });
53
66
  debugLogArray(toRelative(dir, chief.cwd), 'Source mapping (package.json)', filePaths);
54
67
  return filePaths;
55
68
  };
56
69
  };
70
+ export const toSourceMappedSpecifiers = (ws, absSpecifier, extensions = defaultExtensions) => {
71
+ const out = [];
72
+ if (!ws?.sourceMaps)
73
+ return out;
74
+ for (const { srcDir, outDir } of ws.sourceMaps) {
75
+ if (!isUnderSrcDir(absSpecifier, srcDir) && isUnderOutDir(absSpecifier, outDir)) {
76
+ out.push(srcDir + absSpecifier.slice(outDir.length).replace(matchExt, extensions));
77
+ }
78
+ }
79
+ return out;
80
+ };
@@ -1,13 +1,13 @@
1
- import pc from 'picocolors';
1
+ import st from './colors.js';
2
2
  export const formatTrace = (node, toRelative, isReferenced, memberStatuses) => {
3
3
  const lines = [];
4
- const file = pc.white;
5
- const id = pc.cyanBright;
6
- const ref = pc.cyanBright;
7
- const via = pc.dim;
8
- const ok = pc.green;
9
- const fail = pc.red;
10
- const dim = pc.dim;
4
+ const file = st.white;
5
+ const id = st.cyanBright;
6
+ const ref = st.cyanBright;
7
+ const via = st.dim;
8
+ const ok = st.green;
9
+ const fail = st.red;
10
+ const dim = st.dim;
11
11
  const entryMarker = node.isEntry ? dim(' ⎆') : '';
12
12
  lines.push(`${file(toRelative(node.filePath))}${dim(':')}${id(node.identifier)}${entryMarker}`);
13
13
  const formatVia = (child) => {
@@ -1,12 +1,12 @@
1
1
  import { readFileSync } from 'node:fs';
2
- import { invalidateCache } from "../graph-explorer/cache.js";
3
- import { debugLog } from "./debug.js";
4
- import { isFile } from "./fs.js";
5
- import { updateImportMap } from "./module-graph.js";
6
- import { toAbsolute, toPosix, toRelative } from "./path.js";
7
- import { clearModuleResolutionCaches } from "../typescript/resolve-module-names.js";
8
- import { clearGlobCache } from "./glob-cache.js";
9
- import { clearResolverCache } from "./resolve.js";
2
+ import { invalidateCache } from '../graph-explorer/cache.js';
3
+ import { debugLog } from './debug.js';
4
+ import { isFile } from './fs.js';
5
+ import { updateImportMap } from './module-graph.js';
6
+ import { toAbsolute, toPosix, toRelative } from './path.js';
7
+ import { clearModuleResolutionCaches } from '../typescript/resolve-module-names.js';
8
+ import { clearGlobCache } from './glob-cache.js';
9
+ import { clearResolverCache } from './resolve.js';
10
10
  const createUpdate = (options) => {
11
11
  const duration = performance.now() - options.startTime;
12
12
  const mem = process.memoryUsage().heapUsed;
@@ -1,5 +1,5 @@
1
- import { ROOT_WORKSPACE_NAME } from "../constants.js";
2
- import { join } from "./path.js";
1
+ import { ROOT_WORKSPACE_NAME } from '../constants.js';
2
+ import { join } from './path.js';
3
3
  export const createWorkspaceFilePathFilter = (cwd, selectedWorkspaces, availableWorkspaceNames) => {
4
4
  if (!selectedWorkspaces || !availableWorkspaceNames)
5
5
  return () => true;
@@ -1,8 +1,8 @@
1
1
  import picomatch from 'picomatch';
2
- import { partition } from "./array.js";
3
- import { ConfigurationError } from "./errors.js";
4
- import { isDirectory, isFile } from "./fs.js";
5
- import { join } from "./path.js";
2
+ import { partition } from './array.js';
3
+ import { ConfigurationError } from './errors.js';
4
+ import { isDirectory, isFile } from './fs.js';
5
+ import { join } from './path.js';
6
6
  export function parseWorkspaceSelector(token, cwd) {
7
7
  const trimmed = token.trim();
8
8
  let isNegated = false;
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "6.4.1";
1
+ export declare const version = "6.6.0";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const version = '6.4.1';
1
+ export const version = '6.6.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "knip",
3
- "version": "6.4.1",
3
+ "version": "6.6.0",
4
4
  "description": "Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects",
5
5
  "keywords": [
6
6
  "analysis",
@@ -77,18 +77,17 @@
77
77
  }
78
78
  },
79
79
  "dependencies": {
80
- "@nodelib/fs.walk": "^1.2.3",
81
- "fast-glob": "^3.3.3",
80
+ "fdir": "^6.5.0",
82
81
  "formatly": "^0.3.0",
83
- "get-tsconfig": "4.13.7",
82
+ "get-tsconfig": "4.14.0",
84
83
  "jiti": "^2.6.0",
85
84
  "minimist": "^1.2.8",
86
- "oxc-parser": "^0.121.0",
85
+ "oxc-parser": "^0.126.0",
87
86
  "oxc-resolver": "^11.19.1",
88
- "picocolors": "^1.1.1",
89
- "picomatch": "^4.0.1",
87
+ "picomatch": "^4.0.4",
90
88
  "smol-toml": "^1.6.1",
91
89
  "strip-json-comments": "5.0.3",
90
+ "tinyglobby": "^0.2.16",
92
91
  "unbash": "^2.2.0",
93
92
  "yaml": "^2.8.2",
94
93
  "zod": "^4.1.11"
@@ -99,12 +98,11 @@
99
98
  "@types/minimist": "^1.2.5",
100
99
  "@types/picomatch": "^4.0.1",
101
100
  "@types/webpack": "^5.28.5",
101
+ "@typescript/native-preview": "7.0.0-dev.20260415.1",
102
102
  "@wdio/types": "^9.20.0",
103
103
  "codeclimate-types": "^0.3.1",
104
- "glob-bin": "^1.0.0",
105
104
  "prettier": "^3.8.1",
106
- "tsx": "^4.21.0",
107
- "typescript": "^5.8.3"
105
+ "tsx": "^4.21.0"
108
106
  },
109
107
  "engines": {
110
108
  "node": "^20.19.0 || >=22.12.0"
@@ -114,16 +112,11 @@
114
112
  "knip": "node ./src/cli.ts --directory ../..",
115
113
  "knip:production": "node ./src/cli.ts --directory ../.. --production --strict",
116
114
  "lint": "oxlint",
117
- "format": "oxfmt -c ../../.oxfmtrc.json --ignore-path ../../.prettierignore",
118
- "test": "node scripts/run-test.ts",
119
- "test:node": "tsx --test test/*.test.ts test/**/*.test.ts",
120
- "test:bun": "bun test test/*.test.ts test/**/*.test.ts",
121
- "test:smoke": "glob-bin -c \"tsx --test\" \"test/*.test.ts\" && glob-bin -c \"tsx --test\" \"test/plugins/*.test.ts\" && glob-bin -c \"tsx --test\" \"test/util/*.test.ts\"",
122
- "test:bun:smoke": "bun test test/*.test.ts test/{plugins,util}/*.test.ts",
123
- "watch": "npm link && tsc --watch",
115
+ "fmt": "oxfmt -c ../../.oxfmtrc.json --ignore-path ../../.prettierignore",
116
+ "test": "node scripts/run-test.js",
124
117
  "prebuild": "pnpm run generate-plugin-defs && node rmdir.js dist",
125
- "build": "tsc",
126
- "qa": "pnpm lint && pnpm build && pnpm knip && pnpm knip:production && pnpm run test",
118
+ "build": "tsgo",
119
+ "qa": "pnpm lint && pnpm build && pnpm knip && pnpm knip:production && pnpm test",
127
120
  "release": "NODE_OPTIONS=--no-deprecation release-it",
128
121
  "create-plugin": "node ./scripts/create-new-plugin.ts",
129
122
  "postcreate-plugin": "pnpm run build && (oxfmt schema.json schema-jsonc.json src/schema/plugins.ts || true)",
package/schema.json CHANGED
@@ -249,7 +249,7 @@
249
249
  }
250
250
  },
251
251
  "globPatterns": {
252
- "description": "Use file paths and glob patterns to match files. Knip uses fast-glob and picomatch (https://github.com/micromatch/picomatch)",
252
+ "description": "Use file paths and glob patterns to match files. Knip uses tinyglobby and picomatch (https://github.com/micromatch/picomatch)",
253
253
  "anyOf": [
254
254
  {
255
255
  "type": "string"
@@ -640,6 +640,10 @@
640
640
  "title": "payload plugin configuration (https://knip.dev/reference/plugins/payload)",
641
641
  "$ref": "#/definitions/plugin"
642
642
  },
643
+ "pino": {
644
+ "title": "pino plugin configuration (https://knip.dev/reference/plugins/pino)",
645
+ "$ref": "#/definitions/plugin"
646
+ },
643
647
  "playwright": {
644
648
  "title": "Playwright plugin configuration (https://knip.dev/reference/plugins/playwright)",
645
649
  "$ref": "#/definitions/plugin"
@@ -684,6 +688,10 @@
684
688
  "title": "react-cosmos plugin configuration (https://knip.dev/reference/plugins/react-cosmos)",
685
689
  "$ref": "#/definitions/plugin"
686
690
  },
691
+ "react-email": {
692
+ "title": "react-email plugin configuration (https://knip.dev/reference/plugins/react-email)",
693
+ "$ref": "#/definitions/plugin"
694
+ },
687
695
  "react-native": {
688
696
  "title": "react-native plugin configuration (https://knip.dev/reference/plugins/react-native)",
689
697
  "$ref": "#/definitions/plugin"
@@ -744,6 +752,10 @@
744
752
  "title": "Sentry plugin configuration (https://knip.dev/reference/plugins/sentry)",
745
753
  "$ref": "#/definitions/plugin"
746
754
  },
755
+ "serverless-framework": {
756
+ "title": "serverless-framework plugin configuration (https://knip.dev/reference/plugins/serverless-framework)",
757
+ "$ref": "#/definitions/plugin"
758
+ },
747
759
  "simple-git-hooks": {
748
760
  "title": "simple-git-hooks plugin configuration (https://knip.dev/reference/plugins/simple-git-hooks)",
749
761
  "$ref": "#/definitions/plugin"