@xylabs/ts-scripts-yarn3 3.2.29 → 3.2.30

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.
@@ -94,7 +94,12 @@ const packageDeps = async () => {
94
94
  /* we only reports the unused devDeps if both src or other are not using it */
95
95
  devDependencies: andStringArrays([allUnused.devDependencies, srcUnused.devDependencies])
96
96
  };
97
- const errorCount = unused.dependencies.length + unused.devDependencies.length + Object.entries(unused.invalidDirs).length + Object.entries(unused.invalidFiles).length + Object.entries(unused.missing).length;
97
+ const declaredDeps = Object.keys(packageContent.dependencies ?? {});
98
+ const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {});
99
+ const missingDeps = Object.keys(srcUnused.using).filter(
100
+ (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith("@types/") && !defaultIgnoreMatches.includes(key)
101
+ );
102
+ const errorCount = unused.dependencies.length + unused.devDependencies.length + Object.entries(unused.invalidDirs).length + Object.entries(unused.invalidFiles).length + missingDeps.length;
98
103
  if (errorCount > 0) {
99
104
  console.log(`Deps [${pkgName}]`);
100
105
  } else {
@@ -108,11 +113,6 @@ const packageDeps = async () => {
108
113
  if (Object.entries(unused.invalidFiles).length) {
109
114
  Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(import_chalk.default.gray(`Invalid File: ${key}: ${value}`)));
110
115
  }
111
- const declaredDeps = Object.keys(packageContent.dependencies ?? {});
112
- const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {});
113
- const missingDeps = Object.keys(srcUnused.using).filter(
114
- (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith("@types/") && !defaultIgnoreMatches.includes(key)
115
- );
116
116
  const missingDepsObject = Object.entries(srcUnused.missing).reduce(
117
117
  (prev, [key, value]) => missingDeps.includes(key) ? { ...prev, ...{ [key]: value } } : prev,
118
118
  {}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/actions/package/deps.ts"],"sourcesContent":["import chalk from 'chalk'\nimport depcheck, { special } from 'depcheck'\nimport { existsSync, readFileSync } from 'fs'\n\nimport { checkResult } from '../../lib'\n\nconst andStringArrays = (arrays: [string[], string[]]): string[] => {\n return arrays[0].filter((value) => arrays[1].includes(value))\n}\n\nconst reportUnused = (name: string, unused: depcheck.Results['dependencies']) => {\n if (unused.length) {\n const message = [chalk.yellow(`${unused.length} Unused ${name}`)]\n unused.forEach((value) => message.push(chalk.gray(` ${value}`)))\n console.log(message.join('\\n'))\n }\n}\n\nconst reportMissing = (name: string, missing: depcheck.Results['missing']) => {\n if (missing.length) {\n const message = [chalk.yellow(`${Object.entries(missing).length} Missing ${name}`)]\n Object.entries(missing).forEach(([key, value]) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${value.pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n}\n\nexport const packageDeps = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const packageContent = existsSync(`${pkg}/package.json`) ? JSON.parse(readFileSync(`${pkg}/package.json`, { encoding: 'utf8' })) : undefined\n\n const rawIgnore = existsSync(`${pkg}/.depcheckrc`)\n ? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '\"ignores\":')\n : undefined\n let ignoreMatches: string[] = []\n try {\n ignoreMatches = rawIgnore ? (JSON.parse(`{${rawIgnore}}`).ignores as string[]) : []\n } catch (ex) {\n const error = ex as Error\n console.log(`${pkgName} [${error.message}] Failed to parse .depcheckrc [${rawIgnore}]`)\n }\n\n const defaultIgnorePatterns = ['*.d.ts', 'dist', '.*', 'node_modules']\n const defaultIgnoreMatches = [\n '@xylabs/ts-scripts-yarn3',\n '@xylabs/tsconfig',\n '@xylabs/tsconfig-dom',\n '@xylabs/tsconfig-react',\n '@xylabs/tsconfig-jest',\n 'typescript',\n ]\n\n const [srcUnused, allUnused] = await Promise.all([\n depcheck(`${pkg}/src`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', 'spec', ...defaultIgnorePatterns],\n package: packageContent,\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\n package: packageContent,\n specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],\n }),\n ])\n\n const unused: depcheck.Results = {\n ...srcUnused,\n /* we only reports the unused devDeps if both src or other are not using it */\n devDependencies: andStringArrays([allUnused.devDependencies, srcUnused.devDependencies]),\n }\n\n const errorCount =\n unused.dependencies.length +\n unused.devDependencies.length +\n Object.entries(unused.invalidDirs).length +\n Object.entries(unused.invalidFiles).length +\n Object.entries(unused.missing).length\n\n if (errorCount > 0) {\n console.log(`Deps [${pkgName}]`)\n } else {\n console.log(`Deps [${pkgName}] - Ok`)\n }\n\n reportUnused('dependencies', unused.dependencies)\n reportUnused('devDependencies', unused.devDependencies)\n\n if (Object.entries(unused.invalidDirs).length) {\n Object.entries(unused.invalidDirs).forEach(([key, value]) => console.warn(chalk.gray(`Invalid Dir: ${key}: ${value}`)))\n }\n\n if (Object.entries(unused.invalidFiles).length) {\n Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))\n }\n\n const declaredDeps = Object.keys(packageContent.dependencies ?? {})\n const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {})\n\n const missingDeps = Object.keys(srcUnused.using).filter(\n (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),\n )\n\n const missingDepsObject = Object.entries(srcUnused.missing).reduce(\n (prev, [key, value]) => (missingDeps.includes(key) ? { ...prev, ...{ [key]: value } } : prev),\n {},\n )\n\n reportMissing('dependencies', missingDepsObject)\n reportMissing('devDependencies', allUnused.missing)\n\n checkResult(`Deps [${pkgName}]`, errorCount, 'warn', false)\n\n //returning 0 here since we never want deps to be fatal\n return 0\n}\n"],"mappings":"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","names":["chalk","depcheck"]}
1
+ {"version":3,"sources":["../../../src/actions/package/deps.ts"],"sourcesContent":["import chalk from 'chalk'\nimport depcheck, { special } from 'depcheck'\nimport { existsSync, readFileSync } from 'fs'\n\nimport { checkResult } from '../../lib'\n\nconst andStringArrays = (arrays: [string[], string[]]): string[] => {\n return arrays[0].filter((value) => arrays[1].includes(value))\n}\n\nconst reportUnused = (name: string, unused: depcheck.Results['dependencies']) => {\n if (unused.length) {\n const message = [chalk.yellow(`${unused.length} Unused ${name}`)]\n unused.forEach((value) => message.push(chalk.gray(` ${value}`)))\n console.log(message.join('\\n'))\n }\n}\n\nconst reportMissing = (name: string, missing: depcheck.Results['missing']) => {\n if (missing.length) {\n const message = [chalk.yellow(`${Object.entries(missing).length} Missing ${name}`)]\n Object.entries(missing).forEach(([key, value]) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${value.pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n}\n\nexport const packageDeps = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const packageContent = existsSync(`${pkg}/package.json`) ? JSON.parse(readFileSync(`${pkg}/package.json`, { encoding: 'utf8' })) : undefined\n\n const rawIgnore = existsSync(`${pkg}/.depcheckrc`)\n ? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '\"ignores\":')\n : undefined\n let ignoreMatches: string[] = []\n try {\n ignoreMatches = rawIgnore ? (JSON.parse(`{${rawIgnore}}`).ignores as string[]) : []\n } catch (ex) {\n const error = ex as Error\n console.log(`${pkgName} [${error.message}] Failed to parse .depcheckrc [${rawIgnore}]`)\n }\n\n const defaultIgnorePatterns = ['*.d.ts', 'dist', '.*', 'node_modules']\n const defaultIgnoreMatches = [\n '@xylabs/ts-scripts-yarn3',\n '@xylabs/tsconfig',\n '@xylabs/tsconfig-dom',\n '@xylabs/tsconfig-react',\n '@xylabs/tsconfig-jest',\n 'typescript',\n ]\n\n const [srcUnused, allUnused] = await Promise.all([\n depcheck(`${pkg}/src`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', 'spec', ...defaultIgnorePatterns],\n package: packageContent,\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\n package: packageContent,\n specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],\n }),\n ])\n\n const unused: depcheck.Results = {\n ...srcUnused,\n /* we only reports the unused devDeps if both src or other are not using it */\n devDependencies: andStringArrays([allUnused.devDependencies, srcUnused.devDependencies]),\n }\n\n const declaredDeps = Object.keys(packageContent.dependencies ?? {})\n const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {})\n\n const missingDeps = Object.keys(srcUnused.using).filter(\n (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),\n )\n\n const errorCount =\n unused.dependencies.length +\n unused.devDependencies.length +\n Object.entries(unused.invalidDirs).length +\n Object.entries(unused.invalidFiles).length +\n missingDeps.length\n\n if (errorCount > 0) {\n console.log(`Deps [${pkgName}]`)\n } else {\n console.log(`Deps [${pkgName}] - Ok`)\n }\n\n reportUnused('dependencies', unused.dependencies)\n reportUnused('devDependencies', unused.devDependencies)\n\n if (Object.entries(unused.invalidDirs).length) {\n Object.entries(unused.invalidDirs).forEach(([key, value]) => console.warn(chalk.gray(`Invalid Dir: ${key}: ${value}`)))\n }\n\n if (Object.entries(unused.invalidFiles).length) {\n Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))\n }\n\n const missingDepsObject = Object.entries(srcUnused.missing).reduce(\n (prev, [key, value]) => (missingDeps.includes(key) ? { ...prev, ...{ [key]: value } } : prev),\n {},\n )\n\n reportMissing('dependencies', missingDepsObject)\n reportMissing('devDependencies', allUnused.missing)\n\n checkResult(`Deps [${pkgName}]`, errorCount, 'warn', false)\n\n //returning 0 here since we never want deps to be fatal\n return 0\n}\n"],"mappings":"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","names":["chalk","depcheck"]}
@@ -61,7 +61,12 @@ const packageDeps = async () => {
61
61
  /* we only reports the unused devDeps if both src or other are not using it */
62
62
  devDependencies: andStringArrays([allUnused.devDependencies, srcUnused.devDependencies])
63
63
  };
64
- const errorCount = unused.dependencies.length + unused.devDependencies.length + Object.entries(unused.invalidDirs).length + Object.entries(unused.invalidFiles).length + Object.entries(unused.missing).length;
64
+ const declaredDeps = Object.keys(packageContent.dependencies ?? {});
65
+ const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {});
66
+ const missingDeps = Object.keys(srcUnused.using).filter(
67
+ (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith("@types/") && !defaultIgnoreMatches.includes(key)
68
+ );
69
+ const errorCount = unused.dependencies.length + unused.devDependencies.length + Object.entries(unused.invalidDirs).length + Object.entries(unused.invalidFiles).length + missingDeps.length;
65
70
  if (errorCount > 0) {
66
71
  console.log(`Deps [${pkgName}]`);
67
72
  } else {
@@ -75,11 +80,6 @@ const packageDeps = async () => {
75
80
  if (Object.entries(unused.invalidFiles).length) {
76
81
  Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)));
77
82
  }
78
- const declaredDeps = Object.keys(packageContent.dependencies ?? {});
79
- const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {});
80
- const missingDeps = Object.keys(srcUnused.using).filter(
81
- (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith("@types/") && !defaultIgnoreMatches.includes(key)
82
- );
83
83
  const missingDepsObject = Object.entries(srcUnused.missing).reduce(
84
84
  (prev, [key, value]) => missingDeps.includes(key) ? { ...prev, ...{ [key]: value } } : prev,
85
85
  {}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/actions/package/deps.ts"],"sourcesContent":["import chalk from 'chalk'\nimport depcheck, { special } from 'depcheck'\nimport { existsSync, readFileSync } from 'fs'\n\nimport { checkResult } from '../../lib'\n\nconst andStringArrays = (arrays: [string[], string[]]): string[] => {\n return arrays[0].filter((value) => arrays[1].includes(value))\n}\n\nconst reportUnused = (name: string, unused: depcheck.Results['dependencies']) => {\n if (unused.length) {\n const message = [chalk.yellow(`${unused.length} Unused ${name}`)]\n unused.forEach((value) => message.push(chalk.gray(` ${value}`)))\n console.log(message.join('\\n'))\n }\n}\n\nconst reportMissing = (name: string, missing: depcheck.Results['missing']) => {\n if (missing.length) {\n const message = [chalk.yellow(`${Object.entries(missing).length} Missing ${name}`)]\n Object.entries(missing).forEach(([key, value]) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${value.pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n}\n\nexport const packageDeps = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const packageContent = existsSync(`${pkg}/package.json`) ? JSON.parse(readFileSync(`${pkg}/package.json`, { encoding: 'utf8' })) : undefined\n\n const rawIgnore = existsSync(`${pkg}/.depcheckrc`)\n ? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '\"ignores\":')\n : undefined\n let ignoreMatches: string[] = []\n try {\n ignoreMatches = rawIgnore ? (JSON.parse(`{${rawIgnore}}`).ignores as string[]) : []\n } catch (ex) {\n const error = ex as Error\n console.log(`${pkgName} [${error.message}] Failed to parse .depcheckrc [${rawIgnore}]`)\n }\n\n const defaultIgnorePatterns = ['*.d.ts', 'dist', '.*', 'node_modules']\n const defaultIgnoreMatches = [\n '@xylabs/ts-scripts-yarn3',\n '@xylabs/tsconfig',\n '@xylabs/tsconfig-dom',\n '@xylabs/tsconfig-react',\n '@xylabs/tsconfig-jest',\n 'typescript',\n ]\n\n const [srcUnused, allUnused] = await Promise.all([\n depcheck(`${pkg}/src`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', 'spec', ...defaultIgnorePatterns],\n package: packageContent,\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\n package: packageContent,\n specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],\n }),\n ])\n\n const unused: depcheck.Results = {\n ...srcUnused,\n /* we only reports the unused devDeps if both src or other are not using it */\n devDependencies: andStringArrays([allUnused.devDependencies, srcUnused.devDependencies]),\n }\n\n const errorCount =\n unused.dependencies.length +\n unused.devDependencies.length +\n Object.entries(unused.invalidDirs).length +\n Object.entries(unused.invalidFiles).length +\n Object.entries(unused.missing).length\n\n if (errorCount > 0) {\n console.log(`Deps [${pkgName}]`)\n } else {\n console.log(`Deps [${pkgName}] - Ok`)\n }\n\n reportUnused('dependencies', unused.dependencies)\n reportUnused('devDependencies', unused.devDependencies)\n\n if (Object.entries(unused.invalidDirs).length) {\n Object.entries(unused.invalidDirs).forEach(([key, value]) => console.warn(chalk.gray(`Invalid Dir: ${key}: ${value}`)))\n }\n\n if (Object.entries(unused.invalidFiles).length) {\n Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))\n }\n\n const declaredDeps = Object.keys(packageContent.dependencies ?? {})\n const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {})\n\n const missingDeps = Object.keys(srcUnused.using).filter(\n (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),\n )\n\n const missingDepsObject = Object.entries(srcUnused.missing).reduce(\n (prev, [key, value]) => (missingDeps.includes(key) ? { ...prev, ...{ [key]: value } } : prev),\n {},\n )\n\n reportMissing('dependencies', missingDepsObject)\n reportMissing('devDependencies', allUnused.missing)\n\n checkResult(`Deps [${pkgName}]`, errorCount, 'warn', false)\n\n //returning 0 here since we never want deps to be fatal\n return 0\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/actions/package/deps.ts"],"sourcesContent":["import chalk from 'chalk'\nimport depcheck, { special } from 'depcheck'\nimport { existsSync, readFileSync } from 'fs'\n\nimport { checkResult } from '../../lib'\n\nconst andStringArrays = (arrays: [string[], string[]]): string[] => {\n return arrays[0].filter((value) => arrays[1].includes(value))\n}\n\nconst reportUnused = (name: string, unused: depcheck.Results['dependencies']) => {\n if (unused.length) {\n const message = [chalk.yellow(`${unused.length} Unused ${name}`)]\n unused.forEach((value) => message.push(chalk.gray(` ${value}`)))\n console.log(message.join('\\n'))\n }\n}\n\nconst reportMissing = (name: string, missing: depcheck.Results['missing']) => {\n if (missing.length) {\n const message = [chalk.yellow(`${Object.entries(missing).length} Missing ${name}`)]\n Object.entries(missing).forEach(([key, value]) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${value.pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n}\n\nexport const packageDeps = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const packageContent = existsSync(`${pkg}/package.json`) ? JSON.parse(readFileSync(`${pkg}/package.json`, { encoding: 'utf8' })) : undefined\n\n const rawIgnore = existsSync(`${pkg}/.depcheckrc`)\n ? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '\"ignores\":')\n : undefined\n let ignoreMatches: string[] = []\n try {\n ignoreMatches = rawIgnore ? (JSON.parse(`{${rawIgnore}}`).ignores as string[]) : []\n } catch (ex) {\n const error = ex as Error\n console.log(`${pkgName} [${error.message}] Failed to parse .depcheckrc [${rawIgnore}]`)\n }\n\n const defaultIgnorePatterns = ['*.d.ts', 'dist', '.*', 'node_modules']\n const defaultIgnoreMatches = [\n '@xylabs/ts-scripts-yarn3',\n '@xylabs/tsconfig',\n '@xylabs/tsconfig-dom',\n '@xylabs/tsconfig-react',\n '@xylabs/tsconfig-jest',\n 'typescript',\n ]\n\n const [srcUnused, allUnused] = await Promise.all([\n depcheck(`${pkg}/src`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', 'spec', ...defaultIgnorePatterns],\n package: packageContent,\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\n package: packageContent,\n specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],\n }),\n ])\n\n const unused: depcheck.Results = {\n ...srcUnused,\n /* we only reports the unused devDeps if both src or other are not using it */\n devDependencies: andStringArrays([allUnused.devDependencies, srcUnused.devDependencies]),\n }\n\n const declaredDeps = Object.keys(packageContent.dependencies ?? {})\n const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {})\n\n const missingDeps = Object.keys(srcUnused.using).filter(\n (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),\n )\n\n const errorCount =\n unused.dependencies.length +\n unused.devDependencies.length +\n Object.entries(unused.invalidDirs).length +\n Object.entries(unused.invalidFiles).length +\n missingDeps.length\n\n if (errorCount > 0) {\n console.log(`Deps [${pkgName}]`)\n } else {\n console.log(`Deps [${pkgName}] - Ok`)\n }\n\n reportUnused('dependencies', unused.dependencies)\n reportUnused('devDependencies', unused.devDependencies)\n\n if (Object.entries(unused.invalidDirs).length) {\n Object.entries(unused.invalidDirs).forEach(([key, value]) => console.warn(chalk.gray(`Invalid Dir: ${key}: ${value}`)))\n }\n\n if (Object.entries(unused.invalidFiles).length) {\n Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))\n }\n\n const missingDepsObject = Object.entries(srcUnused.missing).reduce(\n (prev, [key, value]) => (missingDeps.includes(key) ? { ...prev, ...{ [key]: value } } : prev),\n {},\n )\n\n reportMissing('dependencies', missingDepsObject)\n reportMissing('devDependencies', allUnused.missing)\n\n checkResult(`Deps [${pkgName}]`, errorCount, 'warn', false)\n\n //returning 0 here since we never want deps to be fatal\n return 0\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -64,7 +64,7 @@
64
64
  "@types/yargs": "^17.0.32",
65
65
  "@typescript-eslint/eslint-plugin": "^6.18.0",
66
66
  "@typescript-eslint/parser": "^6.18.0",
67
- "@xylabs/tsconfig": "~3.2.29",
67
+ "@xylabs/tsconfig": "~3.2.30",
68
68
  "async-mutex": "^0.4.0",
69
69
  "chalk": "^4.1.2",
70
70
  "cosmiconfig": "^8.3.6",
@@ -112,8 +112,8 @@
112
112
  "@types/license-checker": "^25.0.6",
113
113
  "@types/lodash": "^4.14.202",
114
114
  "@types/parse-git-config": "^3.0.4",
115
- "@xylabs/eslint-config": "~3.2.29",
116
- "@xylabs/tsconfig": "~3.2.29",
115
+ "@xylabs/eslint-config": "~3.2.30",
116
+ "@xylabs/tsconfig": "~3.2.30",
117
117
  "publint": "^0.2.7",
118
118
  "typescript": "^5.3.3"
119
119
  },
@@ -169,6 +169,6 @@
169
169
  "package-clean": "echo Not cleaning..."
170
170
  },
171
171
  "sideEffects": false,
172
- "version": "3.2.29",
172
+ "version": "3.2.30",
173
173
  "type": "commonjs"
174
174
  }
@@ -74,12 +74,19 @@ export const packageDeps = async () => {
74
74
  devDependencies: andStringArrays([allUnused.devDependencies, srcUnused.devDependencies]),
75
75
  }
76
76
 
77
+ const declaredDeps = Object.keys(packageContent.dependencies ?? {})
78
+ const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {})
79
+
80
+ const missingDeps = Object.keys(srcUnused.using).filter(
81
+ (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),
82
+ )
83
+
77
84
  const errorCount =
78
85
  unused.dependencies.length +
79
86
  unused.devDependencies.length +
80
87
  Object.entries(unused.invalidDirs).length +
81
88
  Object.entries(unused.invalidFiles).length +
82
- Object.entries(unused.missing).length
89
+ missingDeps.length
83
90
 
84
91
  if (errorCount > 0) {
85
92
  console.log(`Deps [${pkgName}]`)
@@ -98,13 +105,6 @@ export const packageDeps = async () => {
98
105
  Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))
99
106
  }
100
107
 
101
- const declaredDeps = Object.keys(packageContent.dependencies ?? {})
102
- const declaredPeerDeps = Object.keys(packageContent.peerDependencies ?? {})
103
-
104
- const missingDeps = Object.keys(srcUnused.using).filter(
105
- (key) => !declaredDeps.includes(key) && !declaredPeerDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),
106
- )
107
-
108
108
  const missingDepsObject = Object.entries(srcUnused.missing).reduce(
109
109
  (prev, [key, value]) => (missingDeps.includes(key) ? { ...prev, ...{ [key]: value } } : prev),
110
110
  {},