@xylabs/ts-scripts-yarn3 6.5.13 → 6.5.15

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 (65) hide show
  1. package/dist/actions/deplint/checkPackage/checkPackage.mjs +21 -3
  2. package/dist/actions/deplint/checkPackage/checkPackage.mjs.map +1 -1
  3. package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs +12 -1
  4. package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs.map +1 -1
  5. package/dist/actions/deplint/checkPackage/index.mjs +21 -3
  6. package/dist/actions/deplint/checkPackage/index.mjs.map +1 -1
  7. package/dist/actions/deplint/deplint.mjs +21 -3
  8. package/dist/actions/deplint/deplint.mjs.map +1 -1
  9. package/dist/actions/deplint/getExternalImportsFromFiles.mjs +9 -2
  10. package/dist/actions/deplint/getExternalImportsFromFiles.mjs.map +1 -1
  11. package/dist/actions/deplint/index.mjs +21 -3
  12. package/dist/actions/deplint/index.mjs.map +1 -1
  13. package/dist/actions/fix.mjs +2 -2
  14. package/dist/actions/fix.mjs.map +1 -1
  15. package/dist/actions/index.mjs +26 -8
  16. package/dist/actions/index.mjs.map +1 -1
  17. package/dist/actions/lint.mjs +2 -2
  18. package/dist/actions/lint.mjs.map +1 -1
  19. package/dist/actions/package/compile/compile.mjs +1 -1
  20. package/dist/actions/package/compile/compile.mjs.map +1 -1
  21. package/dist/actions/package/compile/compileTypes.mjs +1 -1
  22. package/dist/actions/package/compile/compileTypes.mjs.map +1 -1
  23. package/dist/actions/package/compile/index.mjs +1 -1
  24. package/dist/actions/package/compile/index.mjs.map +1 -1
  25. package/dist/actions/package/compile/packageCompileTscTypes.mjs +1 -1
  26. package/dist/actions/package/compile/packageCompileTscTypes.mjs.map +1 -1
  27. package/dist/actions/package/compile/packageCompileTsup.mjs +1 -1
  28. package/dist/actions/package/compile/packageCompileTsup.mjs.map +1 -1
  29. package/dist/actions/package/index.mjs +3 -3
  30. package/dist/actions/package/index.mjs.map +1 -1
  31. package/dist/actions/package/lint.mjs +2 -2
  32. package/dist/actions/package/lint.mjs.map +1 -1
  33. package/dist/actions/package/recompile.mjs +1 -1
  34. package/dist/actions/package/recompile.mjs.map +1 -1
  35. package/dist/bin/package/build-only.mjs +1 -1
  36. package/dist/bin/package/build-only.mjs.map +1 -1
  37. package/dist/bin/package/build.mjs +1 -1
  38. package/dist/bin/package/build.mjs.map +1 -1
  39. package/dist/bin/package/compile-only.mjs +1 -1
  40. package/dist/bin/package/compile-only.mjs.map +1 -1
  41. package/dist/bin/package/compile-tsup.mjs +1 -1
  42. package/dist/bin/package/compile-tsup.mjs.map +1 -1
  43. package/dist/bin/package/compile-types.mjs +1 -1
  44. package/dist/bin/package/compile-types.mjs.map +1 -1
  45. package/dist/bin/package/compile.mjs +1 -1
  46. package/dist/bin/package/compile.mjs.map +1 -1
  47. package/dist/bin/package/fix.mjs +2 -2
  48. package/dist/bin/package/fix.mjs.map +1 -1
  49. package/dist/bin/package/lint.mjs +2 -2
  50. package/dist/bin/package/lint.mjs.map +1 -1
  51. package/dist/bin/package/recompile.mjs +1 -1
  52. package/dist/bin/package/recompile.mjs.map +1 -1
  53. package/dist/bin/package/relint.mjs +2 -2
  54. package/dist/bin/package/relint.mjs.map +1 -1
  55. package/dist/bin/xy.mjs +23 -5
  56. package/dist/bin/xy.mjs.map +1 -1
  57. package/dist/index.mjs +26 -8
  58. package/dist/index.mjs.map +1 -1
  59. package/dist/xy/index.mjs +23 -5
  60. package/dist/xy/index.mjs.map +1 -1
  61. package/dist/xy/xy.mjs +23 -5
  62. package/dist/xy/xy.mjs.map +1 -1
  63. package/dist/xy/xyLintCommands.mjs +23 -5
  64. package/dist/xy/xyLintCommands.mjs.map +1 -1
  65. package/package.json +3 -3
@@ -125,26 +125,37 @@ var removeInternalImports = (imports) => {
125
125
  function getExternalImportsFromFiles({ srcFiles, distFiles }) {
126
126
  const srcImportPaths = {};
127
127
  const distImportPaths = {};
128
+ const distTypeImportPaths = {};
128
129
  for (const path3 of srcFiles) getImportsFromFile(path3, srcImportPaths, srcImportPaths).flat();
129
- for (const path3 of distFiles) getImportsFromFile(path3, distImportPaths, distImportPaths).flat();
130
+ const distTypeFiles = distFiles.filter((file) => file.endsWith(".d.ts") || file.endsWith(".d.cts") || file.endsWith(".d.mts"));
131
+ const distCodeFiles = distFiles.filter((file) => !(file.endsWith(".d.ts") || file.endsWith(".d.cts") || file.endsWith(".d.mts")));
132
+ for (const path3 of distCodeFiles) getImportsFromFile(path3, distImportPaths, distImportPaths).flat();
133
+ for (const path3 of distTypeFiles) getImportsFromFile(path3, distTypeImportPaths, distTypeImportPaths).flat();
130
134
  const srcImports = Object.keys(srcImportPaths);
131
135
  const distImports = Object.keys(distImportPaths);
136
+ const distTypeImports = Object.keys(distTypeImportPaths);
132
137
  const externalSrcImports = removeInternalImports(srcImports);
133
138
  const externalDistImports = removeInternalImports(distImports);
139
+ const externalDistTypeImports = removeInternalImports(distTypeImports);
134
140
  return {
135
141
  srcImports,
136
142
  srcImportPaths,
137
143
  externalSrcImports,
138
144
  distImports,
139
145
  distImportPaths,
140
- externalDistImports
146
+ externalDistImports,
147
+ externalDistTypeImports
141
148
  };
142
149
  }
143
150
 
144
151
  // src/actions/deplint/checkPackage/getUnlistedDependencies.ts
145
152
  import { builtinModules } from "module";
146
153
  import chalk from "chalk";
147
- function getUnlistedDependencies({ name, location }, { dependencies, peerDependencies }, { externalDistImports, distImportPaths }) {
154
+ function getUnlistedDependencies({ name, location }, { dependencies, peerDependencies }, {
155
+ externalDistImports,
156
+ externalDistTypeImports,
157
+ distImportPaths
158
+ }) {
148
159
  let unlistedDependencies = 0;
149
160
  for (const imp of externalDistImports) {
150
161
  if (!dependencies.includes(imp) && !peerDependencies.includes(imp) && !builtinModules.includes(imp)) {
@@ -153,6 +164,13 @@ function getUnlistedDependencies({ name, location }, { dependencies, peerDepende
153
164
  console.log(` ${distImportPaths[imp].join("\n ")}`);
154
165
  }
155
166
  }
167
+ for (const imp of externalDistTypeImports) {
168
+ if (!dependencies.includes(imp) && dependencies.includes(`@types/${imp}`) && !peerDependencies.includes(imp) && peerDependencies.includes(`@types/${imp}`) && !builtinModules.includes(imp) && builtinModules.includes(`@types/${imp}`)) {
169
+ unlistedDependencies++;
170
+ console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`);
171
+ console.log(` ${distImportPaths[imp].join("\n ")}`);
172
+ }
173
+ }
156
174
  if (unlistedDependencies > 0) {
157
175
  const packageLocation = `${location}/package.json`;
158
176
  console.log(` ${chalk.yellow(packageLocation)}
@@ -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 for (const path of srcFiles) getImportsFromFile(path, srcImportPaths, srcImportPaths).flat()\n for (const path of distFiles) getImportsFromFile(path, distImportPaths, distImportPaths).flat()\n const srcImports = Object.keys(srcImportPaths)\n const distImports = Object.keys(distImportPaths)\n\n const externalSrcImports = removeInternalImports(srcImports)\n const externalDistImports = removeInternalImports(distImports)\n\n return {\n srcImports,\n srcImportPaths,\n externalSrcImports,\n distImports,\n distImportPaths,\n externalDistImports,\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 { externalDistImports, distImportPaths }: CheckSourceParams,\n) {\n let unlistedDependencies = 0\n\n for (const imp of externalDistImports) {\n if (!dependencies.includes(imp) && !peerDependencies.includes(imp) && !builtinModules.includes(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 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 && !dependencies.includes(imp)\n && !peerDependencies.includes(imp)\n && !devDependencies.includes(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 externalSrcImports,\n }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of dependencies) {\n if (!externalDistImports.includes(dep)) {\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 }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of peerDependencies) {\n if (!externalDistImports.includes(dep)) {\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":"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","names":["chalk","path","fs","path","fs","path","path","builtinModules","chalk","chalk","chalk","chalk"]}
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) && !peerDependencies.includes(imp) && !builtinModules.includes(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 && 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 && !dependencies.includes(imp)\n && !peerDependencies.includes(imp)\n && !devDependencies.includes(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 externalSrcImports,\n }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of dependencies) {\n if (!externalDistImports.includes(dep)) {\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 }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of peerDependencies) {\n if (!externalDistImports.includes(dep)) {\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":"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","names":["chalk","path","fs","path","fs","path","path","builtinModules","chalk","chalk","chalk","chalk"]}
@@ -112,11 +112,11 @@ var lint = ({
112
112
  incremental,
113
113
  fix: fix2
114
114
  } = {}) => {
115
- return pkg ? lintPackage({ pkg, fix: fix2 }) : lintAllPackages({
115
+ return pkg === void 0 ? lintAllPackages({
116
116
  verbose,
117
117
  incremental,
118
118
  fix: fix2
119
- });
119
+ }) : lintPackage({ pkg, fix: fix2 });
120
120
  };
121
121
  var lintAllPackages = ({ fix: fix2 = false } = {}) => {
122
122
  console.log(chalk4.gray(`${fix2 ? "Fix" : "Lint"} [All-Packages]`));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/actions/lint.ts","../../src/lib/checkResult.ts","../../src/lib/processEx.ts","../../src/lib/withError.ts","../../src/lib/withErrnoException.ts","../../src/lib/safeExit.ts","../../src/lib/runSteps.ts","../../src/actions/fix.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { runSteps } from '../lib/index.ts'\n\nexport interface LintParams {\n cache?: boolean\n fix?: boolean\n incremental?: boolean\n pkg?: string\n verbose?: boolean\n}\n\nexport interface LintPackageParams {\n pkg: string\n verbose?: boolean\n}\n\nexport const lintPackage = ({ pkg, fix }: LintParams & Required<Pick<LintParams, 'pkg'>>) => {\n console.log(chalk.gray(`${fix ? 'Fix' : 'Lint'} [${pkg}]`))\n const start = Date.now()\n\n const result = runSteps(`${fix ? 'Fix' : 'Lint'} [${pkg}]`, [\n ['yarn', ['workspace',\n pkg,\n 'run',\n fix ? 'package-fix' : 'package-lint',\n ]],\n ])\n console.log(chalk.gray(`${fix ? 'Fixed in' : 'Linted in'} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`))\n return result\n}\n\nexport const lint = ({\n pkg, verbose, incremental, fix,\n}: LintParams = {}) => {\n return pkg\n ? lintPackage({ pkg, fix })\n : lintAllPackages({\n verbose, incremental, fix,\n })\n}\n\nexport const lintAllPackages = ({ fix = false }: LintParams = {}) => {\n console.log(chalk.gray(`${fix ? 'Fix' : 'Lint'} [All-Packages]`))\n const start = Date.now()\n // const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']\n // const incrementalOptions = incremental ? ['--since', '-Ap'] : ['--parallel', '-Ap']\n const fixOptions = fix ? ['--fix'] : []\n\n const result = runSteps(`${fix ? 'Fix' : 'Lint'} [All-Packages]`, [\n ['yarn', ['eslint', ...fixOptions]],\n ])\n console.log(chalk.gray(`${fix ? 'Fixed in' : 'Linted in'} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`))\n return result\n}\n","import chalk from 'chalk'\n\nexport const checkResult = (name: string, result: number, level: 'error' | 'warn' = 'error', exitOnFail = false) => {\n if (result) {\n const exiting = exitOnFail ? '[Exiting Process]' : '[Continuing]'\n const chalkFunc = level === 'error' ? chalk.red : chalk.yellow\n console[level](chalkFunc(`${name} had ${result} failures ${exiting}`))\n if (exitOnFail) {\n process.exit(result)\n }\n }\n}\n","import chalk from 'chalk'\n\nimport { withErrnoException } from './withErrnoException.ts'\nimport { withError } from './withError.ts'\n\nexport const processEx = (ex: unknown) => {\n const error = typeof ex === 'string' ? new Error(ex) : ex\n const exitCode\n = withErrnoException(error, (error) => {\n if (error.code === 'ENOENT') {\n console.error(chalk.red(`'${error.path}' not found.`))\n } else {\n console.error(chalk.red(`Errno: ${error.code}`))\n }\n return error.errno ?? -1\n })\n ?? withError(error, (error) => {\n console.error(chalk.red(`${error.name}: ${error.message}`))\n return -1\n })\n ?? (() => {\n console.error(chalk.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`))\n return -1\n })()\n // This allows us to use a previously set exit code\n process.exit(process.exitCode ?? exitCode)\n}\n","export const withError = <T extends Error = Error>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ex: any,\n closure: (error: T) => number,\n predicate = (ex: T) => (!!ex.name && !!ex.message),\n) => {\n return predicate(ex as T) ? closure(ex as T) : undefined\n}\n","import { withError } from './withError.ts'\n\nexport const withErrnoException = <T extends NodeJS.ErrnoException = NodeJS.ErrnoException>(\n ex: unknown, closure: (error: T) => number,\n) => {\n return withError<T>(ex, closure, (ex: unknown) => (ex as NodeJS.ErrnoException).errno !== undefined)\n}\n","/** Catch child process a crash and returns the code */\n\nimport { processEx } from './processEx.ts'\n\nconst safeExit = (func: () => number, exitOnFail = true): number => {\n try {\n const result = func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nconst safeExitAsync = async (func: () => Promise<number>, exitOnFail = true): Promise<number> => {\n try {\n const result = await func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nexport { safeExit, safeExitAsync }\n","import type { SpawnSyncOptionsWithBufferEncoding } from 'node:child_process'\nimport { spawnSync } from 'node:child_process'\nimport { existsSync } from 'node:fs'\n\nimport chalk from 'chalk'\n\nimport { checkResult } from './checkResult.ts'\nimport { safeExit } from './safeExit.ts'\n\nexport type ScriptStep\n = | [/* command */ 'yarn' | 'node' | 'ts-node-script' | 'tsc' | 'jest', /* arg */ string | string[]]\n | [/* command */ string, /* arg */ string | string[], /* config */ SpawnSyncOptionsWithBufferEncoding]\n\nexport const runSteps = (name: string, steps: ScriptStep[], exitOnFail = true, messages?: string[]): number => {\n return safeExit(() => {\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`${name} [${pkgName}]`))\n let totalStatus = 0\n for (const [i, [command, args, config]] of steps.entries()) {\n if (messages?.[i]) {\n console.log(chalk.gray(messages?.[i]))\n }\n const argList = Array.isArray(args) ? args : args.split(' ')\n if (command === 'node' && !existsSync(argList[0])) {\n throw new Error(`File not found [${argList[0]}]`)\n }\n const status\n = spawnSync(command, Array.isArray(args) ? args : args.split(' '), {\n ...config,\n encoding: 'utf8',\n env: { FORCE_COLOR: '3', ...process.env },\n shell: true,\n stdio: 'inherit',\n }).status ?? 0\n checkResult(name, status, 'error', exitOnFail)\n totalStatus += status ?? 0\n }\n return totalStatus\n }, !!exitOnFail)\n}\n","import type { LintParams } from './lint.ts'\nimport { lint } from './lint.ts'\n\nexport const fix = (params?: LintParams) => {\n return lint({ ...params, fix: true })\n}\n"],"mappings":"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","names":["chalk","chalk","ex","ex","error","chalk","chalk","chalk","fix","chalk"]}
1
+ {"version":3,"sources":["../../src/actions/lint.ts","../../src/lib/checkResult.ts","../../src/lib/processEx.ts","../../src/lib/withError.ts","../../src/lib/withErrnoException.ts","../../src/lib/safeExit.ts","../../src/lib/runSteps.ts","../../src/actions/fix.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { runSteps } from '../lib/index.ts'\n\nexport interface LintParams {\n cache?: boolean\n fix?: boolean\n incremental?: boolean\n pkg?: string\n verbose?: boolean\n}\n\nexport interface LintPackageParams {\n pkg: string\n verbose?: boolean\n}\n\nexport const lintPackage = ({ pkg, fix }: LintParams & Required<Pick<LintParams, 'pkg'>>) => {\n console.log(chalk.gray(`${fix ? 'Fix' : 'Lint'} [${pkg}]`))\n const start = Date.now()\n\n const result = runSteps(`${fix ? 'Fix' : 'Lint'} [${pkg}]`, [\n ['yarn', ['workspace',\n pkg,\n 'run',\n fix ? 'package-fix' : 'package-lint',\n ]],\n ])\n console.log(chalk.gray(`${fix ? 'Fixed in' : 'Linted in'} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`))\n return result\n}\n\nexport const lint = ({\n pkg, verbose, incremental, fix,\n}: LintParams = {}) => {\n return pkg === undefined\n ? lintAllPackages({\n verbose, incremental, fix,\n })\n : lintPackage({ pkg, fix })\n}\n\nexport const lintAllPackages = ({ fix = false }: LintParams = {}) => {\n console.log(chalk.gray(`${fix ? 'Fix' : 'Lint'} [All-Packages]`))\n const start = Date.now()\n // const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']\n // const incrementalOptions = incremental ? ['--since', '-Ap'] : ['--parallel', '-Ap']\n const fixOptions = fix ? ['--fix'] : []\n\n const result = runSteps(`${fix ? 'Fix' : 'Lint'} [All-Packages]`, [\n ['yarn', ['eslint', ...fixOptions]],\n ])\n console.log(chalk.gray(`${fix ? 'Fixed in' : 'Linted in'} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`))\n return result\n}\n","import chalk from 'chalk'\n\nexport const checkResult = (name: string, result: number, level: 'error' | 'warn' = 'error', exitOnFail = false) => {\n if (result) {\n const exiting = exitOnFail ? '[Exiting Process]' : '[Continuing]'\n const chalkFunc = level === 'error' ? chalk.red : chalk.yellow\n console[level](chalkFunc(`${name} had ${result} failures ${exiting}`))\n if (exitOnFail) {\n process.exit(result)\n }\n }\n}\n","import chalk from 'chalk'\n\nimport { withErrnoException } from './withErrnoException.ts'\nimport { withError } from './withError.ts'\n\nexport const processEx = (ex: unknown) => {\n const error = typeof ex === 'string' ? new Error(ex) : ex\n const exitCode\n = withErrnoException(error, (error) => {\n if (error.code === 'ENOENT') {\n console.error(chalk.red(`'${error.path}' not found.`))\n } else {\n console.error(chalk.red(`Errno: ${error.code}`))\n }\n return error.errno ?? -1\n })\n ?? withError(error, (error) => {\n console.error(chalk.red(`${error.name}: ${error.message}`))\n return -1\n })\n ?? (() => {\n console.error(chalk.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`))\n return -1\n })()\n // This allows us to use a previously set exit code\n process.exit(process.exitCode ?? exitCode)\n}\n","export const withError = <T extends Error = Error>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ex: any,\n closure: (error: T) => number,\n predicate = (ex: T) => (!!ex.name && !!ex.message),\n) => {\n return predicate(ex as T) ? closure(ex as T) : undefined\n}\n","import { withError } from './withError.ts'\n\nexport const withErrnoException = <T extends NodeJS.ErrnoException = NodeJS.ErrnoException>(\n ex: unknown, closure: (error: T) => number,\n) => {\n return withError<T>(ex, closure, (ex: unknown) => (ex as NodeJS.ErrnoException).errno !== undefined)\n}\n","/** Catch child process a crash and returns the code */\n\nimport { processEx } from './processEx.ts'\n\nconst safeExit = (func: () => number, exitOnFail = true): number => {\n try {\n const result = func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nconst safeExitAsync = async (func: () => Promise<number>, exitOnFail = true): Promise<number> => {\n try {\n const result = await func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nexport { safeExit, safeExitAsync }\n","import type { SpawnSyncOptionsWithBufferEncoding } from 'node:child_process'\nimport { spawnSync } from 'node:child_process'\nimport { existsSync } from 'node:fs'\n\nimport chalk from 'chalk'\n\nimport { checkResult } from './checkResult.ts'\nimport { safeExit } from './safeExit.ts'\n\nexport type ScriptStep\n = | [/* command */ 'yarn' | 'node' | 'ts-node-script' | 'tsc' | 'jest', /* arg */ string | string[]]\n | [/* command */ string, /* arg */ string | string[], /* config */ SpawnSyncOptionsWithBufferEncoding]\n\nexport const runSteps = (name: string, steps: ScriptStep[], exitOnFail = true, messages?: string[]): number => {\n return safeExit(() => {\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`${name} [${pkgName}]`))\n let totalStatus = 0\n for (const [i, [command, args, config]] of steps.entries()) {\n if (messages?.[i]) {\n console.log(chalk.gray(messages?.[i]))\n }\n const argList = Array.isArray(args) ? args : args.split(' ')\n if (command === 'node' && !existsSync(argList[0])) {\n throw new Error(`File not found [${argList[0]}]`)\n }\n const status\n = spawnSync(command, Array.isArray(args) ? args : args.split(' '), {\n ...config,\n encoding: 'utf8',\n env: { FORCE_COLOR: '3', ...process.env },\n shell: true,\n stdio: 'inherit',\n }).status ?? 0\n checkResult(name, status, 'error', exitOnFail)\n totalStatus += status ?? 0\n }\n return totalStatus\n }, !!exitOnFail)\n}\n","import type { LintParams } from './lint.ts'\nimport { lint } from './lint.ts'\n\nexport const fix = (params?: LintParams) => {\n return lint({ ...params, fix: true })\n}\n"],"mappings":"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","names":["chalk","chalk","ex","ex","error","chalk","chalk","chalk","fix","chalk"]}
@@ -779,26 +779,37 @@ var removeInternalImports = (imports) => {
779
779
  function getExternalImportsFromFiles({ srcFiles, distFiles }) {
780
780
  const srcImportPaths = {};
781
781
  const distImportPaths = {};
782
+ const distTypeImportPaths = {};
782
783
  for (const path10 of srcFiles) getImportsFromFile(path10, srcImportPaths, srcImportPaths).flat();
783
- for (const path10 of distFiles) getImportsFromFile(path10, distImportPaths, distImportPaths).flat();
784
+ const distTypeFiles = distFiles.filter((file) => file.endsWith(".d.ts") || file.endsWith(".d.cts") || file.endsWith(".d.mts"));
785
+ const distCodeFiles = distFiles.filter((file) => !(file.endsWith(".d.ts") || file.endsWith(".d.cts") || file.endsWith(".d.mts")));
786
+ for (const path10 of distCodeFiles) getImportsFromFile(path10, distImportPaths, distImportPaths).flat();
787
+ for (const path10 of distTypeFiles) getImportsFromFile(path10, distTypeImportPaths, distTypeImportPaths).flat();
784
788
  const srcImports = Object.keys(srcImportPaths);
785
789
  const distImports = Object.keys(distImportPaths);
790
+ const distTypeImports = Object.keys(distTypeImportPaths);
786
791
  const externalSrcImports = removeInternalImports(srcImports);
787
792
  const externalDistImports = removeInternalImports(distImports);
793
+ const externalDistTypeImports = removeInternalImports(distTypeImports);
788
794
  return {
789
795
  srcImports,
790
796
  srcImportPaths,
791
797
  externalSrcImports,
792
798
  distImports,
793
799
  distImportPaths,
794
- externalDistImports
800
+ externalDistImports,
801
+ externalDistTypeImports
795
802
  };
796
803
  }
797
804
 
798
805
  // src/actions/deplint/checkPackage/getUnlistedDependencies.ts
799
806
  import { builtinModules } from "module";
800
807
  import chalk13 from "chalk";
801
- function getUnlistedDependencies({ name, location }, { dependencies, peerDependencies }, { externalDistImports, distImportPaths }) {
808
+ function getUnlistedDependencies({ name, location }, { dependencies, peerDependencies }, {
809
+ externalDistImports,
810
+ externalDistTypeImports,
811
+ distImportPaths
812
+ }) {
802
813
  let unlistedDependencies = 0;
803
814
  for (const imp of externalDistImports) {
804
815
  if (!dependencies.includes(imp) && !peerDependencies.includes(imp) && !builtinModules.includes(imp)) {
@@ -807,6 +818,13 @@ function getUnlistedDependencies({ name, location }, { dependencies, peerDepende
807
818
  console.log(` ${distImportPaths[imp].join("\n ")}`);
808
819
  }
809
820
  }
821
+ for (const imp of externalDistTypeImports) {
822
+ if (!dependencies.includes(imp) && dependencies.includes(`@types/${imp}`) && !peerDependencies.includes(imp) && peerDependencies.includes(`@types/${imp}`) && !builtinModules.includes(imp) && builtinModules.includes(`@types/${imp}`)) {
823
+ unlistedDependencies++;
824
+ console.log(`[${chalk13.blue(name)}] Missing dependency in package.json: ${chalk13.red(imp)}`);
825
+ console.log(` ${distImportPaths[imp].join("\n ")}`);
826
+ }
827
+ }
810
828
  if (unlistedDependencies > 0) {
811
829
  const packageLocation = `${location}/package.json`;
812
830
  console.log(` ${chalk13.yellow(packageLocation)}
@@ -1081,11 +1099,11 @@ var lint = ({
1081
1099
  incremental,
1082
1100
  fix: fix2
1083
1101
  } = {}) => {
1084
- return pkg ? lintPackage({ pkg, fix: fix2 }) : lintAllPackages({
1102
+ return pkg === void 0 ? lintAllPackages({
1085
1103
  verbose,
1086
1104
  incremental,
1087
1105
  fix: fix2
1088
- });
1106
+ }) : lintPackage({ pkg, fix: fix2 });
1089
1107
  };
1090
1108
  var lintAllPackages = ({ fix: fix2 = false } = {}) => {
1091
1109
  console.log(chalk19.gray(`${fix2 ? "Fix" : "Lint"} [All-Packages]`));
@@ -1431,7 +1449,7 @@ var packageCompileTscTypes = (folder = "src", config2 = {}, compilerOptionsParam
1431
1449
  noEmit: false
1432
1450
  };
1433
1451
  const validTsExt = [".ts", ".tsx", ".d.ts", ".cts", ".d.cts", ".mts", ".d.mts"];
1434
- const excludes = [".stories.", ".spec."];
1452
+ const excludes = [".stories.", ".spec.", "/stories/", "/spec/"];
1435
1453
  const files = buildEntries(folder, "all", verbose).filter((file) => validTsExt.find((ext) => file.endsWith(ext)) && !excludes.some((exclude) => file.includes(exclude)));
1436
1454
  console.log(chalk26.green(`Compiling Types ${pkg}: ${files.length}`));
1437
1455
  if (files.length > 0) {
@@ -1901,7 +1919,7 @@ ${lintResult.filePath}`));
1901
1919
  };
1902
1920
  async function getRootESLintConfig() {
1903
1921
  const configPath = await findUp("eslint.config.mjs");
1904
- if (!configPath) {
1922
+ if (configPath === void 0) {
1905
1923
  throw new Error("eslint.config.mjs not found in the monorepo");
1906
1924
  }
1907
1925
  return pathToFileURL(configPath);
@@ -1912,7 +1930,7 @@ function getFiles(dir, ignoreFolders) {
1912
1930
  if (ignoreFolders.includes(subDirectory)) return [];
1913
1931
  return readdirSync(dir, { withFileTypes: true }).flatMap((dirent) => {
1914
1932
  const res = path9.resolve(dir, dirent.name);
1915
- const relativePath = subDirectory ? `${subDirectory}/${dirent.name}` : dirent.name;
1933
+ const relativePath = subDirectory === void 0 ? dirent.name : `${subDirectory}/${dirent.name}`;
1916
1934
  const ignoreMatchers = ignoreFolders.map((pattern) => picomatch(pattern));
1917
1935
  if (ignoreMatchers.some((isMatch) => isMatch(relativePath))) return [];
1918
1936
  return dirent.isDirectory() ? getFiles(res, ignoreFolders) : [res];