@xylabs/ts-scripts-yarn3 7.0.0 → 7.0.2

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 (53) hide show
  1. package/dist/actions/deplint/checkPackage/checkPackage.mjs +11 -1
  2. package/dist/actions/deplint/checkPackage/checkPackage.mjs.map +1 -1
  3. package/dist/actions/deplint/checkPackage/index.mjs +11 -1
  4. package/dist/actions/deplint/checkPackage/index.mjs.map +1 -1
  5. package/dist/actions/deplint/deplint.mjs +33 -21
  6. package/dist/actions/deplint/deplint.mjs.map +1 -1
  7. package/dist/actions/deplint/index.mjs +33 -21
  8. package/dist/actions/deplint/index.mjs.map +1 -1
  9. package/dist/actions/index.mjs +132 -108
  10. package/dist/actions/index.mjs.map +1 -1
  11. package/dist/actions/package/compile/compile.mjs +25 -74
  12. package/dist/actions/package/compile/compile.mjs.map +1 -1
  13. package/dist/actions/package/compile/index.mjs +25 -74
  14. package/dist/actions/package/compile/index.mjs.map +1 -1
  15. package/dist/actions/package/compile/packageCompileTsc.mjs.map +1 -1
  16. package/dist/actions/package/compile/packageCompileTsup.mjs.map +1 -1
  17. package/dist/actions/package/gen-docs.mjs +1 -1
  18. package/dist/actions/package/gen-docs.mjs.map +1 -1
  19. package/dist/actions/package/index.mjs +96 -84
  20. package/dist/actions/package/index.mjs.map +1 -1
  21. package/dist/actions/package/publint.mjs +27 -10
  22. package/dist/actions/package/publint.mjs.map +1 -1
  23. package/dist/actions/package/recompile.mjs +25 -74
  24. package/dist/actions/package/recompile.mjs.map +1 -1
  25. package/dist/actions/publint.mjs +3 -3
  26. package/dist/actions/publint.mjs.map +1 -1
  27. package/dist/bin/package/build-only.mjs +27 -76
  28. package/dist/bin/package/build-only.mjs.map +1 -1
  29. package/dist/bin/package/build.mjs +27 -76
  30. package/dist/bin/package/build.mjs.map +1 -1
  31. package/dist/bin/package/compile-only.mjs +27 -76
  32. package/dist/bin/package/compile-only.mjs.map +1 -1
  33. package/dist/bin/package/compile-tsup.mjs.map +1 -1
  34. package/dist/bin/package/compile.mjs +27 -76
  35. package/dist/bin/package/compile.mjs.map +1 -1
  36. package/dist/bin/package/gen-docs.mjs +1 -1
  37. package/dist/bin/package/gen-docs.mjs.map +1 -1
  38. package/dist/bin/package/publint.mjs +27 -10
  39. package/dist/bin/package/publint.mjs.map +1 -1
  40. package/dist/bin/package/recompile.mjs +27 -76
  41. package/dist/bin/package/recompile.mjs.map +1 -1
  42. package/dist/bin/xy.mjs +38 -25
  43. package/dist/bin/xy.mjs.map +1 -1
  44. package/dist/index.d.ts +125 -96
  45. package/dist/index.mjs +134 -109
  46. package/dist/index.mjs.map +1 -1
  47. package/dist/xy/index.mjs +38 -25
  48. package/dist/xy/index.mjs.map +1 -1
  49. package/dist/xy/xy.mjs +38 -25
  50. package/dist/xy/xy.mjs.map +1 -1
  51. package/dist/xy/xyLintCommands.mjs +38 -25
  52. package/dist/xy/xyLintCommands.mjs.map +1 -1
  53. package/package.json +12 -14
@@ -278,8 +278,18 @@ function getUnusedPeerDependencies({ name, location }, { peerDependencies, depen
278
278
  __name(getUnusedPeerDependencies, "getUnusedPeerDependencies");
279
279
 
280
280
  // src/actions/deplint/checkPackage/checkPackage.ts
281
- function checkPackage({ name, location, deps = false, devDeps = false, peerDeps = false }) {
281
+ function checkPackage({ name, location, deps = false, devDeps = false, peerDeps = false, verbose = false }) {
282
282
  const { srcFiles, distFiles } = findFiles(location);
283
+ if (verbose) {
284
+ console.info(`Checking package: ${name} at ${location}`);
285
+ console.info(`Source files: ${srcFiles.length}, Distribution files: ${distFiles.length}`);
286
+ for (const file of srcFiles) {
287
+ console.info(`Source file: ${file}`);
288
+ }
289
+ for (const file of distFiles) {
290
+ console.info(`Distribution file: ${file}`);
291
+ }
292
+ }
283
293
  const checkDeps = deps || !(deps || devDeps || peerDeps);
284
294
  const checkDevDeps = devDeps || !(deps || devDeps || peerDeps);
285
295
  const checkPeerDeps = peerDeps;
@@ -310,34 +320,36 @@ function checkPackage({ name, location, deps = false, devDeps = false, peerDeps
310
320
  __name(checkPackage, "checkPackage");
311
321
 
312
322
  // src/actions/deplint/deplint.ts
313
- var deplint = /* @__PURE__ */ __name(({ pkg, deps, devDeps, peerDeps }) => {
314
- if (pkg) {
315
- const { location, name } = yarnWorkspace(pkg);
316
- console.log(`Running Deplint for ${name}`);
317
- checkPackage({
318
- name,
319
- location,
320
- devDeps,
321
- deps,
322
- peerDeps
323
- });
324
- } else {
323
+ var deplint = /* @__PURE__ */ __name(({ pkg, deps, devDeps, peerDeps, verbose }) => {
324
+ let totalErrors = 0;
325
+ if (pkg === void 0) {
325
326
  const workspaces = yarnWorkspaces();
326
- console.log("Deplint Started...");
327
- let totalErrors = 0;
327
+ console.info("Deplint Started...");
328
328
  for (const workspace of workspaces) {
329
329
  totalErrors += checkPackage({
330
330
  ...workspace,
331
331
  deps,
332
332
  devDeps,
333
- peerDeps
333
+ peerDeps,
334
+ verbose
334
335
  });
335
336
  }
336
- if (totalErrors > 0) {
337
- console.log(`Deplint: Found ${chalk5.red(totalErrors)} dependency problems. ${chalk5.red("\u2716")}`);
338
- } else {
339
- console.log(`Deplint: Found no dependency problems. ${chalk5.green("\u2714")}`);
340
- }
337
+ } else {
338
+ const { location, name } = yarnWorkspace(pkg);
339
+ console.info(`Running Deplint for ${name}`);
340
+ totalErrors += checkPackage({
341
+ name,
342
+ location,
343
+ devDeps,
344
+ deps,
345
+ peerDeps,
346
+ verbose
347
+ });
348
+ }
349
+ if (totalErrors > 0) {
350
+ console.warn(`Deplint: Found ${chalk5.red(totalErrors)} dependency problems. ${chalk5.red("\u2716")}`);
351
+ } else {
352
+ console.info(`Deplint: Found no dependency problems. ${chalk5.green("\u2714")}`);
341
353
  }
342
354
  return 0;
343
355
  }, "deplint");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/actions/deplint/deplint.ts","../../../src/lib/yarn/workspace/yarnWorkspaces.ts","../../../src/lib/yarn/workspace/yarnWorkspace.ts","../../../src/actions/deplint/findFilesByGlob.ts","../../../src/actions/deplint/findFiles.ts","../../../src/actions/deplint/getDependenciesFromPackageJson.ts","../../../src/actions/deplint/getImportsFromFile.ts","../../../src/actions/deplint/getBasePackageName.ts","../../../src/actions/deplint/getExternalImportsFromFiles.ts","../../../src/actions/deplint/checkPackage/getUnlistedDependencies.ts","../../../src/actions/deplint/checkPackage/getUnlistedDevDependencies.ts","../../../src/actions/deplint/checkPackage/getUnusedDependencies.ts","../../../src/actions/deplint/checkPackage/getUnusedPeerDependencies.ts","../../../src/actions/deplint/checkPackage/checkPackage.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { yarnWorkspace, yarnWorkspaces } from '../../lib/index.ts'\nimport { checkPackage } from './checkPackage/index.ts'\n\nexport const deplint = ({\n pkg, deps, devDeps, peerDeps,\n}: { deps: boolean; devDeps: boolean; peerDeps: boolean; pkg: string }) => {\n if (pkg) {\n const { location, name } = yarnWorkspace(pkg)\n\n console.log(`Running Deplint for ${name}`)\n checkPackage({\n name, location, devDeps, deps, peerDeps,\n })\n } else {\n const workspaces = yarnWorkspaces()\n\n console.log('Deplint Started...')\n\n let totalErrors = 0\n\n for (const workspace of workspaces) {\n totalErrors += checkPackage({\n ...workspace, deps, devDeps, peerDeps,\n })\n }\n\n if (totalErrors > 0) {\n console.log(`Deplint: Found ${chalk.red(totalErrors)} dependency problems. ${chalk.red('✖')}`)\n } else {\n console.log(`Deplint: Found no dependency problems. ${chalk.green('✔')}`)\n }\n }\n return 0\n}\n","import { spawnSync } from 'node:child_process'\n\nimport type { Workspace } from './Workspace.ts'\n\nexport const yarnWorkspaces = (): Workspace[] => {\n const result = spawnSync('yarn', ['workspaces', 'list', '--json', '--recursive'], { encoding: 'utf8', shell: true })\n if (result.error) {\n throw result.error\n }\n return (\n result.stdout\n .toString()\n // NOTE: This probably doesn't work on Windows\n // TODO: Replace /r/n with /n first\n .split('\\n')\n .slice(0, -1)\n .map((item) => {\n return JSON.parse(item)\n })\n )\n}\n","import type { Workspace } from './Workspace.ts'\nimport { yarnWorkspaces } from './yarnWorkspaces.ts'\n\nexport const yarnWorkspace = (pkg: string): Workspace => {\n const workspace = yarnWorkspaces().find(({ name }) => name === pkg)\n if (!workspace) throw new Error(`Workspace ${pkg} not found`)\n return workspace\n}\n","import { globSync } from 'glob'\n\nexport function findFilesByGlob(cwd: string, pattern: string) {\n return globSync(pattern, { cwd, absolute: true })\n}\n","import { findFilesByGlob } from './findFilesByGlob.ts'\n\nexport function findFiles(path: string) {\n const allSourceInclude = ['./src/**/*.{ts,tsx}']\n const allDistInclude = ['./dist/**/*.d.ts', './dist/**/*.{mjs,js,cjs}']\n const srcFiles = allSourceInclude.flatMap(pattern => findFilesByGlob(path, pattern))\n const distFiles = allDistInclude.flatMap(pattern => findFilesByGlob(path, pattern))\n\n return { srcFiles, distFiles }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nexport function getDependenciesFromPackageJson(packageJsonPath: string) {\n const packageJsonFullPath = path.resolve(packageJsonPath)\n const rawContent = fs.readFileSync(packageJsonFullPath, 'utf8')\n const packageJson = JSON.parse(rawContent)\n\n const dependencies = packageJson.dependencies\n ? Object.keys(packageJson.dependencies)\n : []\n\n const devDependencies = packageJson.devDependencies\n ? Object.keys(packageJson.devDependencies)\n : []\n\n const peerDependencies = packageJson.peerDependencies\n ? Object.keys(packageJson.peerDependencies)\n : []\n\n return {\n dependencies, devDependencies, peerDependencies,\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport ts from 'typescript'\n\nimport { getBasePackageName } from './getBasePackageName.ts'\n\nexport function getImportsFromFile(filePath: string, importPaths: Record<string, string[]>, typeImportPaths: Record<string, string[]>) {\n const sourceCode = fs.readFileSync(filePath, 'utf8')\n\n const isMjsFile = filePath.endsWith('.mjs')\n\n const sourceFile = ts.createSourceFile(\n path.basename(filePath),\n sourceCode,\n ts.ScriptTarget.Latest,\n true,\n isMjsFile ? ts.ScriptKind.JS : undefined,\n )\n\n const imports: string[] = []\n const typeImports: string[] = []\n\n const isDeclarationFile = filePath.endsWith('.d.ts')\n\n function visit(node: ts.Node) {\n if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {\n const moduleSpecifier = (node.moduleSpecifier)?.getFullText()\n const isTypeImport = ts.isImportDeclaration(node) ? (node.importClause?.isTypeOnly ?? false) : false\n if (typeof moduleSpecifier === 'string') {\n const trimmed = moduleSpecifier.replaceAll(\"'\", '').replaceAll('\"', '').trim()\n // we are determining if the type import is being imported in an exported d.ts file\n if (isTypeImport || isDeclarationFile) {\n typeImports.push(trimmed)\n } else {\n imports.push(trimmed)\n }\n }\n } else if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {\n const [arg] = node.arguments\n if (ts.isStringLiteral(arg)) {\n const trimmed = arg.text\n imports.push(trimmed)\n }\n }\n ts.forEachChild(node, visit)\n }\n\n visit(sourceFile)\n\n const importsStartsWithExcludes = ['.', '#', 'node:']\n\n const cleanedImports = imports.filter(imp => !importsStartsWithExcludes.some(exc => imp.startsWith(exc))).map(getBasePackageName)\n const cleanedTypeImports = typeImports.filter(imp => !importsStartsWithExcludes.some(exc => imp.startsWith(exc))).map(getBasePackageName)\n\n for (const imp of cleanedImports) {\n importPaths[imp] = importPaths[imp] ?? []\n importPaths[imp].push(filePath)\n }\n\n for (const imp of cleanedTypeImports) {\n typeImportPaths[imp] = typeImportPaths[imp] ?? []\n typeImportPaths[imp].push(filePath)\n }\n\n return [cleanedImports, cleanedTypeImports]\n}\n","export function getBasePackageName(importName: string) {\n const importNameScrubbed = importName.replaceAll('\"', '').trim()\n if (importNameScrubbed.startsWith('@')) {\n const parts = importNameScrubbed.split('/')\n return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : importNameScrubbed\n }\n return importNameScrubbed.split('/')[0]\n}\n","import type { CheckSourceParams } from './checkPackage/index.ts'\nimport { getImportsFromFile } from './getImportsFromFile.ts'\n\nconst internalImportPrefixes = ['.', '#', 'node:']\n\nconst removeInternalImports = (imports: string[]) => {\n return imports.filter(imp => !internalImportPrefixes.some(prefix => imp.startsWith(prefix)))\n}\n\nexport function getExternalImportsFromFiles({ srcFiles, distFiles }: { distFiles: string []; srcFiles: string[] }): CheckSourceParams {\n const srcImportPaths: Record<string, string[]> = {}\n const distImportPaths: Record<string, string[]> = {}\n const distTypeImportPaths: Record<string, string[]> = {}\n for (const path of srcFiles) getImportsFromFile(path, srcImportPaths, srcImportPaths).flat()\n const distTypeFiles = distFiles.filter(file => file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts'))\n const distCodeFiles = distFiles.filter(file => !(file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')))\n for (const path of distCodeFiles) getImportsFromFile(path, distImportPaths, distImportPaths).flat()\n for (const path of distTypeFiles) getImportsFromFile(path, distTypeImportPaths, distTypeImportPaths).flat()\n const srcImports = Object.keys(srcImportPaths)\n const distImports = Object.keys(distImportPaths)\n const distTypeImports = Object.keys(distTypeImportPaths)\n\n const externalSrcImports = removeInternalImports(srcImports)\n const externalDistImports = removeInternalImports(distImports)\n const externalDistTypeImports = removeInternalImports(distTypeImports)\n\n return {\n srcImports,\n srcImportPaths,\n externalSrcImports,\n distImports,\n distImportPaths,\n externalDistImports,\n externalDistTypeImports,\n }\n}\n","import { builtinModules } from 'node:module'\n\nimport chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDependencies(\n { name, location }: Workspace,\n { dependencies, peerDependencies }: CheckPackageParams,\n {\n externalDistImports, externalDistTypeImports, distImportPaths,\n }: CheckSourceParams,\n) {\n let unlistedDependencies = 0\n\n for (const imp of externalDistImports) {\n if (!dependencies.includes(imp)\n && imp !== name\n && !dependencies.includes(`@types/${imp}`)\n && !peerDependencies.includes(imp)\n && !peerDependencies.includes(`@types/${imp}`)\n && !builtinModules.includes(imp)\n && !builtinModules.includes(`@types/${imp}`)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${distImportPaths[imp].join('\\n ')}`)\n }\n }\n\n for (const imp of externalDistTypeImports) {\n if (!dependencies.includes(imp)\n && imp !== name\n && dependencies.includes(`@types/${imp}`)\n && !peerDependencies.includes(imp)\n && peerDependencies.includes(`@types/${imp}`)\n && !builtinModules.includes(imp)\n && builtinModules.includes(`@types/${imp}`)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${distImportPaths[imp].join('\\n ')}`)\n }\n }\n\n if (unlistedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unlistedDependencies\n}\n","import { builtinModules } from 'node:module'\n\nimport chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDevDependencies(\n { name, location }: Workspace,\n {\n devDependencies, dependencies, peerDependencies,\n }: CheckPackageParams,\n {\n srcImportPaths, externalSrcImports, distImports,\n }: CheckSourceParams,\n) {\n let unlistedDevDependencies = 0\n for (const imp of externalSrcImports) {\n if (!distImports.includes(imp)\n && imp !== name\n && !dependencies.includes(imp)\n && !dependencies.includes(`@types/${imp}`)\n && !peerDependencies.includes(imp)\n && !peerDependencies.includes(`@types/${imp}`)\n && !devDependencies.includes(imp)\n && !devDependencies.includes(`@types/${imp}`)\n && !builtinModules.includes(imp)\n ) {\n unlistedDevDependencies++\n console.log(`[${chalk.blue(name)}] Missing devDependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${srcImportPaths[imp].join('\\n ')}`)\n }\n }\n if (unlistedDevDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unlistedDevDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnusedDependencies(\n { name, location }: Workspace,\n { dependencies }: CheckPackageParams,\n {\n externalDistImports,\n externalDistTypeImports,\n externalSrcImports,\n }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of dependencies) {\n if (!externalDistImports.includes(dep)\n && !externalDistImports.includes(dep.replace(/^@types\\//, ''))\n && !externalDistTypeImports.includes(dep)\n && !externalDistTypeImports.includes(dep.replace(/^@types\\//, ''))) {\n unusedDependencies++\n if (externalSrcImports.includes(dep)) {\n console.log(`[${chalk.blue(name)}] dependency should be devDependency in package.json: ${chalk.red(dep)}`)\n } else {\n console.log(`[${chalk.blue(name)}] Unused dependency in package.json: ${chalk.red(dep)}`)\n }\n }\n }\n if (unusedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unusedDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnusedPeerDependencies(\n { name, location }: Workspace,\n { peerDependencies, dependencies }: CheckPackageParams,\n { externalDistImports, externalDistTypeImports }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of peerDependencies) {\n if (!externalDistImports.includes(dep) && !externalDistImports.includes(dep.replace(/^@types\\//, ''))\n && !externalDistTypeImports.includes(dep) && !externalDistTypeImports.includes(dep.replace(/^@types\\//, ''))) {\n unusedDependencies++\n if (dependencies.includes(dep)) {\n console.log(`[${chalk.blue(name)}] Unused peerDependency [already a dependency] in package.json: ${chalk.red(dep)}`)\n } else {\n console.log(`[${chalk.blue(name)}] Unused peerDependency in package.json: ${chalk.red(dep)}`)\n }\n }\n }\n if (unusedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unusedDependencies\n}\n","import type { Workspace } from '../../../lib/index.ts'\nimport { findFiles } from '../findFiles.ts'\nimport { getDependenciesFromPackageJson } from '../getDependenciesFromPackageJson.ts'\nimport { getExternalImportsFromFiles } from '../getExternalImportsFromFiles.ts'\nimport { getUnlistedDependencies } from './getUnlistedDependencies.ts'\nimport { getUnlistedDevDependencies } from './getUnlistedDevDependencies.ts'\nimport { getUnusedDependencies } from './getUnusedDependencies.ts'\nimport { getUnusedPeerDependencies } from './getUnusedPeerDependencies.ts'\n\nexport interface CheckPackageOptions extends Workspace {\n deps?: boolean\n devDeps?: boolean\n peerDeps?: boolean\n}\n\nexport function checkPackage({\n name, location, deps = false, devDeps = false, peerDeps = false,\n}: CheckPackageOptions) {\n const { srcFiles, distFiles } = findFiles(location)\n const checkDeps = deps || !(deps || devDeps || peerDeps)\n const checkDevDeps = devDeps || !(deps || devDeps || peerDeps)\n const checkPeerDeps = peerDeps // || !(deps || devDeps || peerDeps)\n const sourceParams = getExternalImportsFromFiles({ srcFiles, distFiles })\n\n const packageParams = getDependenciesFromPackageJson(`${location}/package.json`)\n\n const unlistedDependencies = checkDeps ? getUnlistedDependencies({ name, location }, packageParams, sourceParams) : 0\n const unusedDependencies = checkDeps ? getUnusedDependencies({ name, location }, packageParams, sourceParams) : 0\n const unlistedDevDependencies = checkDevDeps ? getUnlistedDevDependencies({ name, location }, packageParams, sourceParams) : 0\n const unusedPeerDependencies = checkPeerDeps ? getUnusedPeerDependencies({ name, location }, packageParams, sourceParams) : 0\n\n const totalErrors = unlistedDependencies + unlistedDevDependencies + unusedDependencies + unusedPeerDependencies\n return totalErrors\n}\n"],"mappings":";;;;AAAA,OAAOA,YAAW;;;ACAlB,SAASC,iBAAiB;AAInB,IAAMC,iBAAiB,6BAAA;AAC5B,QAAMC,SAASC,UAAU,QAAQ;IAAC;IAAc;IAAQ;IAAU;KAAgB;IAAEC,UAAU;IAAQC,OAAO;EAAK,CAAA;AAClH,MAAIH,OAAOI,OAAO;AAChB,UAAMJ,OAAOI;EACf;AACA,SACEJ,OAAOK,OACJC,SAAQ,EAGRC,MAAM,IAAA,EACNC,MAAM,GAAG,EAAC,EACVC,IAAI,CAACC,SAAAA;AACJ,WAAOC,KAAKC,MAAMF,IAAAA;EACpB,CAAA;AAEN,GAhB8B;;;ACDvB,IAAMG,gBAAgB,wBAACC,QAAAA;AAC5B,QAAMC,YAAYC,eAAAA,EAAiBC,KAAK,CAAC,EAAEC,KAAI,MAAOA,SAASJ,GAAAA;AAC/D,MAAI,CAACC,UAAW,OAAM,IAAII,MAAM,aAAaL,GAAAA,YAAe;AAC5D,SAAOC;AACT,GAJ6B;;;ACH7B,SAASK,gBAAgB;AAElB,SAASC,gBAAgBC,KAAaC,SAAe;AAC1D,SAAOC,SAASD,SAAS;IAAED;IAAKG,UAAU;EAAK,CAAA;AACjD;AAFgBJ;;;ACAT,SAASK,UAAUC,OAAY;AACpC,QAAMC,mBAAmB;IAAC;;AAC1B,QAAMC,iBAAiB;IAAC;IAAoB;;AAC5C,QAAMC,WAAWF,iBAAiBG,QAAQC,CAAAA,YAAWC,gBAAgBN,OAAMK,OAAAA,CAAAA;AAC3E,QAAME,YAAYL,eAAeE,QAAQC,CAAAA,YAAWC,gBAAgBN,OAAMK,OAAAA,CAAAA;AAE1E,SAAO;IAAEF;IAAUI;EAAU;AAC/B;AAPgBR;;;ACFhB,OAAOS,QAAQ;AACf,OAAOC,UAAU;AAEV,SAASC,+BAA+BC,iBAAuB;AACpE,QAAMC,sBAAsBC,KAAKC,QAAQH,eAAAA;AACzC,QAAMI,aAAaC,GAAGC,aAAaL,qBAAqB,MAAA;AACxD,QAAMM,cAAcC,KAAKC,MAAML,UAAAA;AAE/B,QAAMM,eAAeH,YAAYG,eAC7BC,OAAOC,KAAKL,YAAYG,YAAY,IACpC,CAAA;AAEJ,QAAMG,kBAAkBN,YAAYM,kBAChCF,OAAOC,KAAKL,YAAYM,eAAe,IACvC,CAAA;AAEJ,QAAMC,mBAAmBP,YAAYO,mBACjCH,OAAOC,KAAKL,YAAYO,gBAAgB,IACxC,CAAA;AAEJ,SAAO;IACLJ;IAAcG;IAAiBC;EACjC;AACF;AApBgBf;;;ACHhB,OAAOgB,SAAQ;AACf,OAAOC,WAAU;AAEjB,OAAOC,QAAQ;;;ACHR,SAASC,mBAAmBC,YAAkB;AACnD,QAAMC,qBAAqBD,WAAWE,WAAW,KAAK,EAAA,EAAIC,KAAI;AAC9D,MAAIF,mBAAmBG,WAAW,GAAA,GAAM;AACtC,UAAMC,QAAQJ,mBAAmBK,MAAM,GAAA;AACvC,WAAOD,MAAME,UAAU,IAAI,GAAGF,MAAM,CAAA,CAAE,IAAIA,MAAM,CAAA,CAAE,KAAKJ;EACzD;AACA,SAAOA,mBAAmBK,MAAM,GAAA,EAAK,CAAA;AACvC;AAPgBP;;;ADOT,SAASS,mBAAmBC,UAAkBC,aAAuCC,iBAAyC;AACnI,QAAMC,aAAaC,IAAGC,aAAaL,UAAU,MAAA;AAE7C,QAAMM,YAAYN,SAASO,SAAS,MAAA;AAEpC,QAAMC,aAAaC,GAAGC,iBACpBC,MAAKC,SAASZ,QAAAA,GACdG,YACAM,GAAGI,aAAaC,QAChB,MACAR,YAAYG,GAAGM,WAAWC,KAAKC,MAAAA;AAGjC,QAAMC,UAAoB,CAAA;AAC1B,QAAMC,cAAwB,CAAA;AAE9B,QAAMC,oBAAoBpB,SAASO,SAAS,OAAA;AAE5C,WAASc,MAAMC,MAAa;AAC1B,QAAIb,GAAGc,oBAAoBD,IAAAA,KAASb,GAAGe,oBAAoBF,IAAAA,GAAO;AAChE,YAAMG,kBAAmBH,KAAKG,iBAAkBC,YAAAA;AAChD,YAAMC,eAAelB,GAAGc,oBAAoBD,IAAAA,IAASA,KAAKM,cAAcC,cAAc,QAAS;AAC/F,UAAI,OAAOJ,oBAAoB,UAAU;AACvC,cAAMK,UAAUL,gBAAgBM,WAAW,KAAK,EAAA,EAAIA,WAAW,KAAK,EAAA,EAAIC,KAAI;AAE5E,YAAIL,gBAAgBP,mBAAmB;AACrCD,sBAAYc,KAAKH,OAAAA;QACnB,OAAO;AACLZ,kBAAQe,KAAKH,OAAAA;QACf;MACF;IACF,WAAWrB,GAAGyB,iBAAiBZ,IAAAA,KAASA,KAAKa,WAAWC,SAAS3B,GAAG4B,WAAWC,eAAe;AAC5F,YAAM,CAACC,GAAAA,IAAOjB,KAAKkB;AACnB,UAAI/B,GAAGgC,gBAAgBF,GAAAA,GAAM;AAC3B,cAAMT,UAAUS,IAAIG;AACpBxB,gBAAQe,KAAKH,OAAAA;MACf;IACF;AACArB,OAAGkC,aAAarB,MAAMD,KAAAA;EACxB;AArBSA;AAuBTA,QAAMb,UAAAA;AAEN,QAAMoC,4BAA4B;IAAC;IAAK;IAAK;;AAE7C,QAAMC,iBAAiB3B,QAAQ4B,OAAOC,CAAAA,QAAO,CAACH,0BAA0BI,KAAKC,CAAAA,QAAOF,IAAIG,WAAWD,GAAAA,CAAAA,CAAAA,EAAOE,IAAIC,kBAAAA;AAC9G,QAAMC,qBAAqBlC,YAAY2B,OAAOC,CAAAA,QAAO,CAACH,0BAA0BI,KAAKC,CAAAA,QAAOF,IAAIG,WAAWD,GAAAA,CAAAA,CAAAA,EAAOE,IAAIC,kBAAAA;AAEtH,aAAWL,OAAOF,gBAAgB;AAChC5C,gBAAY8C,GAAAA,IAAO9C,YAAY8C,GAAAA,KAAQ,CAAA;AACvC9C,gBAAY8C,GAAAA,EAAKd,KAAKjC,QAAAA;EACxB;AAEA,aAAW+C,OAAOM,oBAAoB;AACpCnD,oBAAgB6C,GAAAA,IAAO7C,gBAAgB6C,GAAAA,KAAQ,CAAA;AAC/C7C,oBAAgB6C,GAAAA,EAAKd,KAAKjC,QAAAA;EAC5B;AAEA,SAAO;IAAC6C;IAAgBQ;;AAC1B;AA3DgBtD;;;AEJhB,IAAMuD,yBAAyB;EAAC;EAAK;EAAK;;AAE1C,IAAMC,wBAAwB,wBAACC,YAAAA;AAC7B,SAAOA,QAAQC,OAAOC,CAAAA,QAAO,CAACJ,uBAAuBK,KAAKC,CAAAA,WAAUF,IAAIG,WAAWD,MAAAA,CAAAA,CAAAA;AACrF,GAF8B;AAIvB,SAASE,4BAA4B,EAAEC,UAAUC,UAAS,GAAgD;AAC/G,QAAMC,iBAA2C,CAAC;AAClD,QAAMC,kBAA4C,CAAC;AACnD,QAAMC,sBAAgD,CAAC;AACvD,aAAWC,SAAQL,SAAUM,oBAAmBD,OAAMH,gBAAgBA,cAAAA,EAAgBK,KAAI;AAC1F,QAAMC,gBAAgBP,UAAUP,OAAOe,CAAAA,SAAQA,KAAKC,SAAS,OAAA,KAAYD,KAAKC,SAAS,QAAA,KAAaD,KAAKC,SAAS,QAAA,CAAA;AAClH,QAAMC,gBAAgBV,UAAUP,OAAOe,CAAAA,SAAQ,EAAEA,KAAKC,SAAS,OAAA,KAAYD,KAAKC,SAAS,QAAA,KAAaD,KAAKC,SAAS,QAAA,EAAQ;AAC5H,aAAWL,SAAQM,cAAeL,oBAAmBD,OAAMF,iBAAiBA,eAAAA,EAAiBI,KAAI;AACjG,aAAWF,SAAQG,cAAeF,oBAAmBD,OAAMD,qBAAqBA,mBAAAA,EAAqBG,KAAI;AACzG,QAAMK,aAAaC,OAAOC,KAAKZ,cAAAA;AAC/B,QAAMa,cAAcF,OAAOC,KAAKX,eAAAA;AAChC,QAAMa,kBAAkBH,OAAOC,KAAKV,mBAAAA;AAEpC,QAAMa,qBAAqBzB,sBAAsBoB,UAAAA;AACjD,QAAMM,sBAAsB1B,sBAAsBuB,WAAAA;AAClD,QAAMI,0BAA0B3B,sBAAsBwB,eAAAA;AAEtD,SAAO;IACLJ;IACAV;IACAe;IACAF;IACAZ;IACAe;IACAC;EACF;AACF;AA1BgBpB;;;ACThB,SAASqB,sBAAsB;AAE/B,OAAOC,WAAW;AAKX,SAASC,wBACd,EAAEC,MAAMC,SAAQ,GAChB,EAAEC,cAAcC,iBAAgB,GAChC,EACEC,qBAAqBC,yBAAyBC,gBAAe,GAC3C;AAEpB,MAAIC,uBAAuB;AAE3B,aAAWC,OAAOJ,qBAAqB;AACrC,QAAI,CAACF,aAAaO,SAASD,GAAAA,KACtBA,QAAQR,QACR,CAACE,aAAaO,SAAS,UAAUD,GAAAA,EAAK,KACtC,CAACL,iBAAiBM,SAASD,GAAAA,KAC3B,CAACL,iBAAiBM,SAAS,UAAUD,GAAAA,EAAK,KAC1C,CAACE,eAAeD,SAASD,GAAAA,KACzB,CAACE,eAAeD,SAAS,UAAUD,GAAAA,EAAK,GAAG;AAC9CD;AACAI,cAAQC,IAAI,IAAIC,MAAMC,KAAKd,IAAAA,CAAAA,yCAA8Ca,MAAME,IAAIP,GAAAA,CAAAA,EAAM;AACzFG,cAAQC,IAAI,KAAKN,gBAAgBE,GAAAA,EAAKQ,KAAK,KAAA,CAAA,EAAQ;IACrD;EACF;AAEA,aAAWR,OAAOH,yBAAyB;AACzC,QAAI,CAACH,aAAaO,SAASD,GAAAA,KACtBA,QAAQR,QACRE,aAAaO,SAAS,UAAUD,GAAAA,EAAK,KACrC,CAACL,iBAAiBM,SAASD,GAAAA,KAC3BL,iBAAiBM,SAAS,UAAUD,GAAAA,EAAK,KACzC,CAACE,eAAeD,SAASD,GAAAA,KACzBE,eAAeD,SAAS,UAAUD,GAAAA,EAAK,GAAG;AAC7CD;AACAI,cAAQC,IAAI,IAAIC,MAAMC,KAAKd,IAAAA,CAAAA,yCAA8Ca,MAAME,IAAIP,GAAAA,CAAAA,EAAM;AACzFG,cAAQC,IAAI,KAAKN,gBAAgBE,GAAAA,EAAKQ,KAAK,KAAA,CAAA,EAAQ;IACrD;EACF;AAEA,MAAIT,uBAAuB,GAAG;AAC5B,UAAMU,kBAAkB,GAAGhB,QAAAA;AAC3BU,YAAQC,IAAI,KAAKC,MAAMK,OAAOD,eAAAA,CAAAA;CAAoB;EACpD;AACA,SAAOV;AACT;AA1CgBR;;;ACPhB,SAASoB,kBAAAA,uBAAsB;AAE/B,OAAOC,YAAW;AAKX,SAASC,2BACd,EAAEC,MAAMC,SAAQ,GAChB,EACEC,iBAAiBC,cAAcC,iBAAgB,GAEjD,EACEC,gBAAgBC,oBAAoBC,YAAW,GAC7B;AAEpB,MAAIC,0BAA0B;AAC9B,aAAWC,OAAOH,oBAAoB;AACpC,QAAI,CAACC,YAAYG,SAASD,GAAAA,KACrBA,QAAQT,QACR,CAACG,aAAaO,SAASD,GAAAA,KACvB,CAACN,aAAaO,SAAS,UAAUD,GAAAA,EAAK,KACtC,CAACL,iBAAiBM,SAASD,GAAAA,KAC3B,CAACL,iBAAiBM,SAAS,UAAUD,GAAAA,EAAK,KAC1C,CAACP,gBAAgBQ,SAASD,GAAAA,KAC1B,CAACP,gBAAgBQ,SAAS,UAAUD,GAAAA,EAAK,KACzC,CAACE,gBAAeD,SAASD,GAAAA,GAC5B;AACAD;AACAI,cAAQC,IAAI,IAAIC,OAAMC,KAAKf,IAAAA,CAAAA,4CAAiDc,OAAME,IAAIP,GAAAA,CAAAA,EAAM;AAC5FG,cAAQC,IAAI,KAAKR,eAAeI,GAAAA,EAAKQ,KAAK,KAAA,CAAA,EAAQ;IACpD;EACF;AACA,MAAIT,0BAA0B,GAAG;AAC/B,UAAMU,kBAAkB,GAAGjB,QAAAA;AAC3BW,YAAQC,IAAI,KAAKC,OAAMK,OAAOD,eAAAA,CAAAA;CAAoB;EACpD;AACA,SAAOV;AACT;AA/BgBT;;;ACPhB,OAAOqB,YAAW;AAKX,SAASC,sBACd,EAAEC,MAAMC,SAAQ,GAChB,EAAEC,aAAY,GACd,EACEC,qBACAC,yBACAC,mBAAkB,GACA;AAEpB,MAAIC,qBAAqB;AACzB,aAAWC,OAAOL,cAAc;AAC9B,QAAI,CAACC,oBAAoBK,SAASD,GAAAA,KAC7B,CAACJ,oBAAoBK,SAASD,IAAIE,QAAQ,aAAa,EAAA,CAAA,KACvD,CAACL,wBAAwBI,SAASD,GAAAA,KAClC,CAACH,wBAAwBI,SAASD,IAAIE,QAAQ,aAAa,EAAA,CAAA,GAAM;AACpEH;AACA,UAAID,mBAAmBG,SAASD,GAAAA,GAAM;AACpCG,gBAAQC,IAAI,IAAIC,OAAMC,KAAKb,IAAAA,CAAAA,yDAA8DY,OAAME,IAAIP,GAAAA,CAAAA,EAAM;MAC3G,OAAO;AACLG,gBAAQC,IAAI,IAAIC,OAAMC,KAAKb,IAAAA,CAAAA,wCAA6CY,OAAME,IAAIP,GAAAA,CAAAA,EAAM;MAC1F;IACF;EACF;AACA,MAAID,qBAAqB,GAAG;AAC1B,UAAMS,kBAAkB,GAAGd,QAAAA;AAC3BS,YAAQC,IAAI,KAAKC,OAAMI,OAAOD,eAAAA,CAAAA;CAAoB;EACpD;AACA,SAAOT;AACT;AA5BgBP;;;ACLhB,OAAOkB,YAAW;AAKX,SAASC,0BACd,EAAEC,MAAMC,SAAQ,GAChB,EAAEC,kBAAkBC,aAAY,GAChC,EAAEC,qBAAqBC,wBAAuB,GAAqB;AAEnE,MAAIC,qBAAqB;AACzB,aAAWC,OAAOL,kBAAkB;AAClC,QAAI,CAACE,oBAAoBI,SAASD,GAAAA,KAAQ,CAACH,oBAAoBI,SAASD,IAAIE,QAAQ,aAAa,EAAA,CAAA,KAC5F,CAACJ,wBAAwBG,SAASD,GAAAA,KAAQ,CAACF,wBAAwBG,SAASD,IAAIE,QAAQ,aAAa,EAAA,CAAA,GAAM;AAC9GH;AACA,UAAIH,aAAaK,SAASD,GAAAA,GAAM;AAC9BG,gBAAQC,IAAI,IAAIC,OAAMC,KAAKb,IAAAA,CAAAA,mEAAwEY,OAAME,IAAIP,GAAAA,CAAAA,EAAM;MACrH,OAAO;AACLG,gBAAQC,IAAI,IAAIC,OAAMC,KAAKb,IAAAA,CAAAA,4CAAiDY,OAAME,IAAIP,GAAAA,CAAAA,EAAM;MAC9F;IACF;EACF;AACA,MAAID,qBAAqB,GAAG;AAC1B,UAAMS,kBAAkB,GAAGd,QAAAA;AAC3BS,YAAQC,IAAI,KAAKC,OAAMI,OAAOD,eAAAA,CAAAA;CAAoB;EACpD;AACA,SAAOT;AACT;AAtBgBP;;;ACUT,SAASkB,aAAa,EAC3BC,MAAMC,UAAUC,OAAO,OAAOC,UAAU,OAAOC,WAAW,MAAK,GAC3C;AACpB,QAAM,EAAEC,UAAUC,UAAS,IAAKC,UAAUN,QAAAA;AAC1C,QAAMO,YAAYN,QAAQ,EAAEA,QAAQC,WAAWC;AAC/C,QAAMK,eAAeN,WAAW,EAAED,QAAQC,WAAWC;AACrD,QAAMM,gBAAgBN;AACtB,QAAMO,eAAeC,4BAA4B;IAAEP;IAAUC;EAAU,CAAA;AAEvE,QAAMO,gBAAgBC,+BAA+B,GAAGb,QAAAA,eAAuB;AAE/E,QAAMc,uBAAuBP,YAAYQ,wBAAwB;IAAEhB;IAAMC;EAAS,GAAGY,eAAeF,YAAAA,IAAgB;AACpH,QAAMM,qBAAqBT,YAAYU,sBAAsB;IAAElB;IAAMC;EAAS,GAAGY,eAAeF,YAAAA,IAAgB;AAChH,QAAMQ,0BAA0BV,eAAeW,2BAA2B;IAAEpB;IAAMC;EAAS,GAAGY,eAAeF,YAAAA,IAAgB;AAC7H,QAAMU,yBAAyBX,gBAAgBY,0BAA0B;IAAEtB;IAAMC;EAAS,GAAGY,eAAeF,YAAAA,IAAgB;AAE5H,QAAMY,cAAcR,uBAAuBI,0BAA0BF,qBAAqBI;AAC1F,SAAOE;AACT;AAlBgBxB;;;AbVT,IAAMyB,UAAU,wBAAC,EACtBC,KAAKC,MAAMC,SAASC,SAAQ,MACwC;AACpE,MAAIH,KAAK;AACP,UAAM,EAAEI,UAAUC,KAAI,IAAKC,cAAcN,GAAAA;AAEzCO,YAAQC,IAAI,uBAAuBH,IAAAA,EAAM;AACzCI,iBAAa;MACXJ;MAAMD;MAAUF;MAASD;MAAME;IACjC,CAAA;EACF,OAAO;AACL,UAAMO,aAAaC,eAAAA;AAEnBJ,YAAQC,IAAI,oBAAA;AAEZ,QAAII,cAAc;AAElB,eAAWC,aAAaH,YAAY;AAClCE,qBAAeH,aAAa;QAC1B,GAAGI;QAAWZ;QAAMC;QAASC;MAC/B,CAAA;IACF;AAEA,QAAIS,cAAc,GAAG;AACnBL,cAAQC,IAAI,kBAAkBM,OAAMC,IAAIH,WAAAA,CAAAA,yBAAqCE,OAAMC,IAAI,QAAA,CAAA,EAAM;IAC/F,OAAO;AACLR,cAAQC,IAAI,0CAA0CM,OAAME,MAAM,QAAA,CAAA,EAAM;IAC1E;EACF;AACA,SAAO;AACT,GA9BuB;","names":["chalk","spawnSync","yarnWorkspaces","result","spawnSync","encoding","shell","error","stdout","toString","split","slice","map","item","JSON","parse","yarnWorkspace","pkg","workspace","yarnWorkspaces","find","name","Error","globSync","findFilesByGlob","cwd","pattern","globSync","absolute","findFiles","path","allSourceInclude","allDistInclude","srcFiles","flatMap","pattern","findFilesByGlob","distFiles","fs","path","getDependenciesFromPackageJson","packageJsonPath","packageJsonFullPath","path","resolve","rawContent","fs","readFileSync","packageJson","JSON","parse","dependencies","Object","keys","devDependencies","peerDependencies","fs","path","ts","getBasePackageName","importName","importNameScrubbed","replaceAll","trim","startsWith","parts","split","length","getImportsFromFile","filePath","importPaths","typeImportPaths","sourceCode","fs","readFileSync","isMjsFile","endsWith","sourceFile","ts","createSourceFile","path","basename","ScriptTarget","Latest","ScriptKind","JS","undefined","imports","typeImports","isDeclarationFile","visit","node","isImportDeclaration","isExportDeclaration","moduleSpecifier","getFullText","isTypeImport","importClause","isTypeOnly","trimmed","replaceAll","trim","push","isCallExpression","expression","kind","SyntaxKind","ImportKeyword","arg","arguments","isStringLiteral","text","forEachChild","importsStartsWithExcludes","cleanedImports","filter","imp","some","exc","startsWith","map","getBasePackageName","cleanedTypeImports","internalImportPrefixes","removeInternalImports","imports","filter","imp","some","prefix","startsWith","getExternalImportsFromFiles","srcFiles","distFiles","srcImportPaths","distImportPaths","distTypeImportPaths","path","getImportsFromFile","flat","distTypeFiles","file","endsWith","distCodeFiles","srcImports","Object","keys","distImports","distTypeImports","externalSrcImports","externalDistImports","externalDistTypeImports","builtinModules","chalk","getUnlistedDependencies","name","location","dependencies","peerDependencies","externalDistImports","externalDistTypeImports","distImportPaths","unlistedDependencies","imp","includes","builtinModules","console","log","chalk","blue","red","join","packageLocation","yellow","builtinModules","chalk","getUnlistedDevDependencies","name","location","devDependencies","dependencies","peerDependencies","srcImportPaths","externalSrcImports","distImports","unlistedDevDependencies","imp","includes","builtinModules","console","log","chalk","blue","red","join","packageLocation","yellow","chalk","getUnusedDependencies","name","location","dependencies","externalDistImports","externalDistTypeImports","externalSrcImports","unusedDependencies","dep","includes","replace","console","log","chalk","blue","red","packageLocation","yellow","chalk","getUnusedPeerDependencies","name","location","peerDependencies","dependencies","externalDistImports","externalDistTypeImports","unusedDependencies","dep","includes","replace","console","log","chalk","blue","red","packageLocation","yellow","checkPackage","name","location","deps","devDeps","peerDeps","srcFiles","distFiles","findFiles","checkDeps","checkDevDeps","checkPeerDeps","sourceParams","getExternalImportsFromFiles","packageParams","getDependenciesFromPackageJson","unlistedDependencies","getUnlistedDependencies","unusedDependencies","getUnusedDependencies","unlistedDevDependencies","getUnlistedDevDependencies","unusedPeerDependencies","getUnusedPeerDependencies","totalErrors","deplint","pkg","deps","devDeps","peerDeps","location","name","yarnWorkspace","console","log","checkPackage","workspaces","yarnWorkspaces","totalErrors","workspace","chalk","red","green"]}
1
+ {"version":3,"sources":["../../../src/actions/deplint/deplint.ts","../../../src/lib/yarn/workspace/yarnWorkspaces.ts","../../../src/lib/yarn/workspace/yarnWorkspace.ts","../../../src/actions/deplint/findFilesByGlob.ts","../../../src/actions/deplint/findFiles.ts","../../../src/actions/deplint/getDependenciesFromPackageJson.ts","../../../src/actions/deplint/getImportsFromFile.ts","../../../src/actions/deplint/getBasePackageName.ts","../../../src/actions/deplint/getExternalImportsFromFiles.ts","../../../src/actions/deplint/checkPackage/getUnlistedDependencies.ts","../../../src/actions/deplint/checkPackage/getUnlistedDevDependencies.ts","../../../src/actions/deplint/checkPackage/getUnusedDependencies.ts","../../../src/actions/deplint/checkPackage/getUnusedPeerDependencies.ts","../../../src/actions/deplint/checkPackage/checkPackage.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { yarnWorkspace, yarnWorkspaces } from '../../lib/index.ts'\nimport type { CheckPackageOptions } from './checkPackage/index.ts'\nimport { checkPackage } from './checkPackage/index.ts'\n\nexport interface DepLintOptions extends CheckPackageOptions {\n pkg?: string\n}\n\nexport const deplint = ({\n pkg, deps, devDeps, peerDeps, verbose,\n}: DepLintOptions) => {\n let totalErrors = 0\n\n if (pkg === undefined) {\n const workspaces = yarnWorkspaces()\n\n console.info('Deplint Started...')\n\n for (const workspace of workspaces) {\n totalErrors += checkPackage({\n ...workspace, deps, devDeps, peerDeps, verbose,\n })\n }\n } else {\n const { location, name } = yarnWorkspace(pkg)\n\n console.info(`Running Deplint for ${name}`)\n totalErrors += checkPackage({\n name, location, devDeps, deps, peerDeps, verbose,\n })\n }\n\n if (totalErrors > 0) {\n console.warn(`Deplint: Found ${chalk.red(totalErrors)} dependency problems. ${chalk.red('✖')}`)\n } else {\n console.info(`Deplint: Found no dependency problems. ${chalk.green('✔')}`)\n }\n return 0\n}\n","import { spawnSync } from 'node:child_process'\n\nimport type { Workspace } from './Workspace.ts'\n\nexport const yarnWorkspaces = (): Workspace[] => {\n const result = spawnSync('yarn', ['workspaces', 'list', '--json', '--recursive'], { encoding: 'utf8', shell: true })\n if (result.error) {\n throw result.error\n }\n return (\n result.stdout\n .toString()\n // NOTE: This probably doesn't work on Windows\n // TODO: Replace /r/n with /n first\n .split('\\n')\n .slice(0, -1)\n .map((item) => {\n return JSON.parse(item)\n })\n )\n}\n","import type { Workspace } from './Workspace.ts'\nimport { yarnWorkspaces } from './yarnWorkspaces.ts'\n\nexport const yarnWorkspace = (pkg: string): Workspace => {\n const workspace = yarnWorkspaces().find(({ name }) => name === pkg)\n if (!workspace) throw new Error(`Workspace ${pkg} not found`)\n return workspace\n}\n","import { globSync } from 'glob'\n\nexport function findFilesByGlob(cwd: string, pattern: string) {\n return globSync(pattern, { cwd, absolute: true })\n}\n","import { findFilesByGlob } from './findFilesByGlob.ts'\n\nexport function findFiles(path: string) {\n const allSourceInclude = ['./src/**/*.{ts,tsx}']\n const allDistInclude = ['./dist/**/*.d.ts', './dist/**/*.{mjs,js,cjs}']\n const srcFiles = allSourceInclude.flatMap(pattern => findFilesByGlob(path, pattern))\n const distFiles = allDistInclude.flatMap(pattern => findFilesByGlob(path, pattern))\n\n return { srcFiles, distFiles }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nexport function getDependenciesFromPackageJson(packageJsonPath: string) {\n const packageJsonFullPath = path.resolve(packageJsonPath)\n const rawContent = fs.readFileSync(packageJsonFullPath, 'utf8')\n const packageJson = JSON.parse(rawContent)\n\n const dependencies = packageJson.dependencies\n ? Object.keys(packageJson.dependencies)\n : []\n\n const devDependencies = packageJson.devDependencies\n ? Object.keys(packageJson.devDependencies)\n : []\n\n const peerDependencies = packageJson.peerDependencies\n ? Object.keys(packageJson.peerDependencies)\n : []\n\n return {\n dependencies, devDependencies, peerDependencies,\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport ts from 'typescript'\n\nimport { getBasePackageName } from './getBasePackageName.ts'\n\nexport function getImportsFromFile(filePath: string, importPaths: Record<string, string[]>, typeImportPaths: Record<string, string[]>) {\n const sourceCode = fs.readFileSync(filePath, 'utf8')\n\n const isMjsFile = filePath.endsWith('.mjs')\n\n const sourceFile = ts.createSourceFile(\n path.basename(filePath),\n sourceCode,\n ts.ScriptTarget.Latest,\n true,\n isMjsFile ? ts.ScriptKind.JS : undefined,\n )\n\n const imports: string[] = []\n const typeImports: string[] = []\n\n const isDeclarationFile = filePath.endsWith('.d.ts')\n\n function visit(node: ts.Node) {\n if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {\n const moduleSpecifier = (node.moduleSpecifier)?.getFullText()\n const isTypeImport = ts.isImportDeclaration(node) ? (node.importClause?.isTypeOnly ?? false) : false\n if (typeof moduleSpecifier === 'string') {\n const trimmed = moduleSpecifier.replaceAll(\"'\", '').replaceAll('\"', '').trim()\n // we are determining if the type import is being imported in an exported d.ts file\n if (isTypeImport || isDeclarationFile) {\n typeImports.push(trimmed)\n } else {\n imports.push(trimmed)\n }\n }\n } else if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {\n const [arg] = node.arguments\n if (ts.isStringLiteral(arg)) {\n const trimmed = arg.text\n imports.push(trimmed)\n }\n }\n ts.forEachChild(node, visit)\n }\n\n visit(sourceFile)\n\n const importsStartsWithExcludes = ['.', '#', 'node:']\n\n const cleanedImports = imports.filter(imp => !importsStartsWithExcludes.some(exc => imp.startsWith(exc))).map(getBasePackageName)\n const cleanedTypeImports = typeImports.filter(imp => !importsStartsWithExcludes.some(exc => imp.startsWith(exc))).map(getBasePackageName)\n\n for (const imp of cleanedImports) {\n importPaths[imp] = importPaths[imp] ?? []\n importPaths[imp].push(filePath)\n }\n\n for (const imp of cleanedTypeImports) {\n typeImportPaths[imp] = typeImportPaths[imp] ?? []\n typeImportPaths[imp].push(filePath)\n }\n\n return [cleanedImports, cleanedTypeImports]\n}\n","export function getBasePackageName(importName: string) {\n const importNameScrubbed = importName.replaceAll('\"', '').trim()\n if (importNameScrubbed.startsWith('@')) {\n const parts = importNameScrubbed.split('/')\n return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : importNameScrubbed\n }\n return importNameScrubbed.split('/')[0]\n}\n","import type { CheckSourceParams } from './checkPackage/index.ts'\nimport { getImportsFromFile } from './getImportsFromFile.ts'\n\nconst internalImportPrefixes = ['.', '#', 'node:']\n\nconst removeInternalImports = (imports: string[]) => {\n return imports.filter(imp => !internalImportPrefixes.some(prefix => imp.startsWith(prefix)))\n}\n\nexport function getExternalImportsFromFiles({ srcFiles, distFiles }: { distFiles: string []; srcFiles: string[] }): CheckSourceParams {\n const srcImportPaths: Record<string, string[]> = {}\n const distImportPaths: Record<string, string[]> = {}\n const distTypeImportPaths: Record<string, string[]> = {}\n for (const path of srcFiles) getImportsFromFile(path, srcImportPaths, srcImportPaths).flat()\n const distTypeFiles = distFiles.filter(file => file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts'))\n const distCodeFiles = distFiles.filter(file => !(file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')))\n for (const path of distCodeFiles) getImportsFromFile(path, distImportPaths, distImportPaths).flat()\n for (const path of distTypeFiles) getImportsFromFile(path, distTypeImportPaths, distTypeImportPaths).flat()\n const srcImports = Object.keys(srcImportPaths)\n const distImports = Object.keys(distImportPaths)\n const distTypeImports = Object.keys(distTypeImportPaths)\n\n const externalSrcImports = removeInternalImports(srcImports)\n const externalDistImports = removeInternalImports(distImports)\n const externalDistTypeImports = removeInternalImports(distTypeImports)\n\n return {\n srcImports,\n srcImportPaths,\n externalSrcImports,\n distImports,\n distImportPaths,\n externalDistImports,\n externalDistTypeImports,\n }\n}\n","import { builtinModules } from 'node:module'\n\nimport chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDependencies(\n { name, location }: Workspace,\n { dependencies, peerDependencies }: CheckPackageParams,\n {\n externalDistImports, externalDistTypeImports, distImportPaths,\n }: CheckSourceParams,\n) {\n let unlistedDependencies = 0\n\n for (const imp of externalDistImports) {\n if (!dependencies.includes(imp)\n && imp !== name\n && !dependencies.includes(`@types/${imp}`)\n && !peerDependencies.includes(imp)\n && !peerDependencies.includes(`@types/${imp}`)\n && !builtinModules.includes(imp)\n && !builtinModules.includes(`@types/${imp}`)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${distImportPaths[imp].join('\\n ')}`)\n }\n }\n\n for (const imp of externalDistTypeImports) {\n if (!dependencies.includes(imp)\n && imp !== name\n && dependencies.includes(`@types/${imp}`)\n && !peerDependencies.includes(imp)\n && peerDependencies.includes(`@types/${imp}`)\n && !builtinModules.includes(imp)\n && builtinModules.includes(`@types/${imp}`)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${distImportPaths[imp].join('\\n ')}`)\n }\n }\n\n if (unlistedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unlistedDependencies\n}\n","import { builtinModules } from 'node:module'\n\nimport chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDevDependencies(\n { name, location }: Workspace,\n {\n devDependencies, dependencies, peerDependencies,\n }: CheckPackageParams,\n {\n srcImportPaths, externalSrcImports, distImports,\n }: CheckSourceParams,\n) {\n let unlistedDevDependencies = 0\n for (const imp of externalSrcImports) {\n if (!distImports.includes(imp)\n && imp !== name\n && !dependencies.includes(imp)\n && !dependencies.includes(`@types/${imp}`)\n && !peerDependencies.includes(imp)\n && !peerDependencies.includes(`@types/${imp}`)\n && !devDependencies.includes(imp)\n && !devDependencies.includes(`@types/${imp}`)\n && !builtinModules.includes(imp)\n ) {\n unlistedDevDependencies++\n console.log(`[${chalk.blue(name)}] Missing devDependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${srcImportPaths[imp].join('\\n ')}`)\n }\n }\n if (unlistedDevDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unlistedDevDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnusedDependencies(\n { name, location }: Workspace,\n { dependencies }: CheckPackageParams,\n {\n externalDistImports,\n externalDistTypeImports,\n externalSrcImports,\n }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of dependencies) {\n if (!externalDistImports.includes(dep)\n && !externalDistImports.includes(dep.replace(/^@types\\//, ''))\n && !externalDistTypeImports.includes(dep)\n && !externalDistTypeImports.includes(dep.replace(/^@types\\//, ''))) {\n unusedDependencies++\n if (externalSrcImports.includes(dep)) {\n console.log(`[${chalk.blue(name)}] dependency should be devDependency in package.json: ${chalk.red(dep)}`)\n } else {\n console.log(`[${chalk.blue(name)}] Unused dependency in package.json: ${chalk.red(dep)}`)\n }\n }\n }\n if (unusedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unusedDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnusedPeerDependencies(\n { name, location }: Workspace,\n { peerDependencies, dependencies }: CheckPackageParams,\n { externalDistImports, externalDistTypeImports }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of peerDependencies) {\n if (!externalDistImports.includes(dep) && !externalDistImports.includes(dep.replace(/^@types\\//, ''))\n && !externalDistTypeImports.includes(dep) && !externalDistTypeImports.includes(dep.replace(/^@types\\//, ''))) {\n unusedDependencies++\n if (dependencies.includes(dep)) {\n console.log(`[${chalk.blue(name)}] Unused peerDependency [already a dependency] in package.json: ${chalk.red(dep)}`)\n } else {\n console.log(`[${chalk.blue(name)}] Unused peerDependency in package.json: ${chalk.red(dep)}`)\n }\n }\n }\n if (unusedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unusedDependencies\n}\n","import type { Workspace } from '../../../lib/index.ts'\nimport { findFiles } from '../findFiles.ts'\nimport { getDependenciesFromPackageJson } from '../getDependenciesFromPackageJson.ts'\nimport { getExternalImportsFromFiles } from '../getExternalImportsFromFiles.ts'\nimport { getUnlistedDependencies } from './getUnlistedDependencies.ts'\nimport { getUnlistedDevDependencies } from './getUnlistedDevDependencies.ts'\nimport { getUnusedDependencies } from './getUnusedDependencies.ts'\nimport { getUnusedPeerDependencies } from './getUnusedPeerDependencies.ts'\n\nexport interface CheckPackageOptions {\n deps?: boolean\n devDeps?: boolean\n peerDeps?: boolean\n verbose?: boolean\n}\n\nexport function checkPackage({\n name, location, deps = false, devDeps = false, peerDeps = false, verbose = false,\n}: CheckPackageOptions & Workspace) {\n const { srcFiles, distFiles } = findFiles(location)\n if (verbose) {\n console.info(`Checking package: ${name} at ${location}`)\n console.info(`Source files: ${srcFiles.length}, Distribution files: ${distFiles.length}`)\n for (const file of srcFiles) {\n console.info(`Source file: ${file}`)\n }\n for (const file of distFiles) {\n console.info(`Distribution file: ${file}`)\n }\n }\n const checkDeps = deps || !(deps || devDeps || peerDeps)\n const checkDevDeps = devDeps || !(deps || devDeps || peerDeps)\n const checkPeerDeps = peerDeps // || !(deps || devDeps || peerDeps)\n const sourceParams = getExternalImportsFromFiles({ srcFiles, distFiles })\n\n const packageParams = getDependenciesFromPackageJson(`${location}/package.json`)\n\n const unlistedDependencies = checkDeps ? getUnlistedDependencies({ name, location }, packageParams, sourceParams) : 0\n const unusedDependencies = checkDeps ? getUnusedDependencies({ name, location }, packageParams, sourceParams) : 0\n const unlistedDevDependencies = checkDevDeps ? getUnlistedDevDependencies({ name, location }, packageParams, sourceParams) : 0\n const unusedPeerDependencies = checkPeerDeps ? getUnusedPeerDependencies({ name, location }, packageParams, sourceParams) : 0\n\n const totalErrors = unlistedDependencies + unlistedDevDependencies + unusedDependencies + unusedPeerDependencies\n return totalErrors\n}\n"],"mappings":"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","names":["chalk","spawnSync","yarnWorkspaces","result","spawnSync","encoding","shell","error","stdout","toString","split","slice","map","item","JSON","parse","yarnWorkspace","pkg","workspace","yarnWorkspaces","find","name","Error","globSync","findFilesByGlob","cwd","pattern","globSync","absolute","findFiles","path","allSourceInclude","allDistInclude","srcFiles","flatMap","pattern","findFilesByGlob","distFiles","fs","path","getDependenciesFromPackageJson","packageJsonPath","packageJsonFullPath","path","resolve","rawContent","fs","readFileSync","packageJson","JSON","parse","dependencies","Object","keys","devDependencies","peerDependencies","fs","path","ts","getBasePackageName","importName","importNameScrubbed","replaceAll","trim","startsWith","parts","split","length","getImportsFromFile","filePath","importPaths","typeImportPaths","sourceCode","fs","readFileSync","isMjsFile","endsWith","sourceFile","ts","createSourceFile","path","basename","ScriptTarget","Latest","ScriptKind","JS","undefined","imports","typeImports","isDeclarationFile","visit","node","isImportDeclaration","isExportDeclaration","moduleSpecifier","getFullText","isTypeImport","importClause","isTypeOnly","trimmed","replaceAll","trim","push","isCallExpression","expression","kind","SyntaxKind","ImportKeyword","arg","arguments","isStringLiteral","text","forEachChild","importsStartsWithExcludes","cleanedImports","filter","imp","some","exc","startsWith","map","getBasePackageName","cleanedTypeImports","internalImportPrefixes","removeInternalImports","imports","filter","imp","some","prefix","startsWith","getExternalImportsFromFiles","srcFiles","distFiles","srcImportPaths","distImportPaths","distTypeImportPaths","path","getImportsFromFile","flat","distTypeFiles","file","endsWith","distCodeFiles","srcImports","Object","keys","distImports","distTypeImports","externalSrcImports","externalDistImports","externalDistTypeImports","builtinModules","chalk","getUnlistedDependencies","name","location","dependencies","peerDependencies","externalDistImports","externalDistTypeImports","distImportPaths","unlistedDependencies","imp","includes","builtinModules","console","log","chalk","blue","red","join","packageLocation","yellow","builtinModules","chalk","getUnlistedDevDependencies","name","location","devDependencies","dependencies","peerDependencies","srcImportPaths","externalSrcImports","distImports","unlistedDevDependencies","imp","includes","builtinModules","console","log","chalk","blue","red","join","packageLocation","yellow","chalk","getUnusedDependencies","name","location","dependencies","externalDistImports","externalDistTypeImports","externalSrcImports","unusedDependencies","dep","includes","replace","console","log","chalk","blue","red","packageLocation","yellow","chalk","getUnusedPeerDependencies","name","location","peerDependencies","dependencies","externalDistImports","externalDistTypeImports","unusedDependencies","dep","includes","replace","console","log","chalk","blue","red","packageLocation","yellow","checkPackage","name","location","deps","devDeps","peerDeps","verbose","srcFiles","distFiles","findFiles","console","info","length","file","checkDeps","checkDevDeps","checkPeerDeps","sourceParams","getExternalImportsFromFiles","packageParams","getDependenciesFromPackageJson","unlistedDependencies","getUnlistedDependencies","unusedDependencies","getUnusedDependencies","unlistedDevDependencies","getUnlistedDevDependencies","unusedPeerDependencies","getUnusedPeerDependencies","totalErrors","deplint","pkg","deps","devDeps","peerDeps","verbose","totalErrors","undefined","workspaces","yarnWorkspaces","console","info","workspace","checkPackage","location","name","yarnWorkspace","warn","chalk","red","green"]}