@teambit/dependencies 1.0.876 → 1.0.877
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dependencies-cmd.d.ts +23 -0
- package/dist/dependencies-cmd.js +106 -25
- package/dist/dependencies-cmd.js.map +1 -1
- package/dist/dependencies.main.runtime.d.ts +41 -0
- package/dist/dependencies.main.runtime.js +168 -1
- package/dist/dependencies.main.runtime.js.map +1 -1
- package/package.json +11 -11
- /package/dist/{preview-1770309303647.js → preview-1770328671921.js} +0 -0
|
@@ -146,6 +146,29 @@ export declare class DependenciesUsageCmd implements Command {
|
|
|
146
146
|
export declare class WhyCmd extends DependenciesUsageCmd {
|
|
147
147
|
name: string;
|
|
148
148
|
}
|
|
149
|
+
export declare class DependenciesDiagnoseCmd implements Command {
|
|
150
|
+
private deps;
|
|
151
|
+
name: string;
|
|
152
|
+
group: string;
|
|
153
|
+
description: string;
|
|
154
|
+
extendedDescription: string;
|
|
155
|
+
alias: string;
|
|
156
|
+
options: CommandOptions;
|
|
157
|
+
constructor(deps: DependenciesMain);
|
|
158
|
+
report(_args: [], options: {
|
|
159
|
+
package?: string;
|
|
160
|
+
}): Promise<string>;
|
|
161
|
+
private reportPackageDrillDown;
|
|
162
|
+
json(_args: [], options: {
|
|
163
|
+
package?: string;
|
|
164
|
+
}): Promise<{
|
|
165
|
+
packageName: string;
|
|
166
|
+
pnpmDirs: Array<{
|
|
167
|
+
version: string;
|
|
168
|
+
peerSuffix: string | null;
|
|
169
|
+
}>;
|
|
170
|
+
} | import("./dependencies.main.runtime").DiagnosisReport>;
|
|
171
|
+
}
|
|
149
172
|
export declare class DependenciesCmd implements Command {
|
|
150
173
|
name: string;
|
|
151
174
|
alias: string;
|
package/dist/dependencies-cmd.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WhyCmd = exports.UnsetPeerCmd = exports.SetPeerCmd = exports.DependenciesWriteCmd = exports.DependenciesUsageCmd = exports.DependenciesUnsetCmd = exports.DependenciesSetCmd = exports.DependenciesResetCmd = exports.DependenciesRemoveCmd = exports.DependenciesGetCmd = exports.DependenciesEjectCmd = exports.DependenciesDebugCmd = exports.DependenciesCmd = exports.DependenciesBlameCmd = void 0;
|
|
6
|
+
exports.WhyCmd = exports.UnsetPeerCmd = exports.SetPeerCmd = exports.DependenciesWriteCmd = exports.DependenciesUsageCmd = exports.DependenciesUnsetCmd = exports.DependenciesSetCmd = exports.DependenciesResetCmd = exports.DependenciesRemoveCmd = exports.DependenciesGetCmd = exports.DependenciesEjectCmd = exports.DependenciesDiagnoseCmd = exports.DependenciesDebugCmd = exports.DependenciesCmd = exports.DependenciesBlameCmd = void 0;
|
|
7
7
|
function _cliTable() {
|
|
8
8
|
const data = _interopRequireDefault(require("cli-table"));
|
|
9
9
|
_cliTable = function () {
|
|
@@ -40,9 +40,45 @@ function _template() {
|
|
|
40
40
|
return data;
|
|
41
41
|
}
|
|
42
42
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
43
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
44
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
43
45
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
44
46
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
45
47
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // eslint-disable-next-line max-classes-per-file
|
|
48
|
+
/** Create a borderless CLI table (columns aligned with whitespace only). */
|
|
49
|
+
function borderlessTable(opts = {}) {
|
|
50
|
+
const noChar = {
|
|
51
|
+
top: '',
|
|
52
|
+
'top-mid': '',
|
|
53
|
+
'top-left': '',
|
|
54
|
+
'top-right': '',
|
|
55
|
+
bottom: '',
|
|
56
|
+
'bottom-mid': '',
|
|
57
|
+
'bottom-left': '',
|
|
58
|
+
'bottom-right': '',
|
|
59
|
+
left: '',
|
|
60
|
+
'left-mid': '',
|
|
61
|
+
mid: '',
|
|
62
|
+
'mid-mid': '',
|
|
63
|
+
right: '',
|
|
64
|
+
'right-mid': '',
|
|
65
|
+
middle: ' '
|
|
66
|
+
};
|
|
67
|
+
return new (_cliTable().default)(_objectSpread({
|
|
68
|
+
chars: noChar,
|
|
69
|
+
style: {
|
|
70
|
+
'padding-left': opts.paddingLeft ?? 0,
|
|
71
|
+
'padding-right': opts.paddingRight ?? 0
|
|
72
|
+
}
|
|
73
|
+
}, opts.head ? {
|
|
74
|
+
head: opts.head
|
|
75
|
+
} : {}));
|
|
76
|
+
}
|
|
77
|
+
const IMPACT_COLOR = {
|
|
78
|
+
HIGH: _chalk().default.red,
|
|
79
|
+
MEDIUM: _chalk().default.yellow,
|
|
80
|
+
LOW: _chalk().default.green
|
|
81
|
+
};
|
|
46
82
|
class DependenciesGetCmd {
|
|
47
83
|
constructor(deps) {
|
|
48
84
|
this.deps = deps;
|
|
@@ -259,30 +295,7 @@ class DependenciesBlameCmd {
|
|
|
259
295
|
if (!results.length) {
|
|
260
296
|
return _chalk().default.yellow(`the specified component ${compName} does not use the entered dependency ${depName}`);
|
|
261
297
|
}
|
|
262
|
-
|
|
263
|
-
const table = new (_cliTable().default)({
|
|
264
|
-
chars: {
|
|
265
|
-
top: '',
|
|
266
|
-
'top-mid': '',
|
|
267
|
-
'top-left': '',
|
|
268
|
-
'top-right': '',
|
|
269
|
-
bottom: '',
|
|
270
|
-
'bottom-mid': '',
|
|
271
|
-
'bottom-left': '',
|
|
272
|
-
'bottom-right': '',
|
|
273
|
-
left: '',
|
|
274
|
-
'left-mid': '',
|
|
275
|
-
mid: '',
|
|
276
|
-
'mid-mid': '',
|
|
277
|
-
right: '',
|
|
278
|
-
'right-mid': '',
|
|
279
|
-
middle: ' '
|
|
280
|
-
},
|
|
281
|
-
style: {
|
|
282
|
-
'padding-left': 0,
|
|
283
|
-
'padding-right': 0
|
|
284
|
-
}
|
|
285
|
-
});
|
|
298
|
+
const table = borderlessTable();
|
|
286
299
|
results.map(({
|
|
287
300
|
snap,
|
|
288
301
|
tag,
|
|
@@ -329,6 +342,74 @@ class WhyCmd extends DependenciesUsageCmd {
|
|
|
329
342
|
}
|
|
330
343
|
}
|
|
331
344
|
exports.WhyCmd = WhyCmd;
|
|
345
|
+
class DependenciesDiagnoseCmd {
|
|
346
|
+
constructor(deps) {
|
|
347
|
+
this.deps = deps;
|
|
348
|
+
_defineProperty(this, "name", 'diagnose');
|
|
349
|
+
_defineProperty(this, "group", 'info-analysis');
|
|
350
|
+
_defineProperty(this, "description", 'analyze workspace dependencies for version spread, peer permutations, and bloat');
|
|
351
|
+
_defineProperty(this, "extendedDescription", `scans node_modules/.pnpm to report actual installed copies, identifies packages with multiple versions, and highlights peer dependencies causing permutation explosion. Use --package to drill down into a specific package.`);
|
|
352
|
+
_defineProperty(this, "alias", '');
|
|
353
|
+
_defineProperty(this, "options", [['', 'package <string>', 'drill down into a specific package to see all .pnpm copies and peer combos']]);
|
|
354
|
+
}
|
|
355
|
+
async report(_args, options) {
|
|
356
|
+
if (options.package) {
|
|
357
|
+
return this.reportPackageDrillDown(options.package);
|
|
358
|
+
}
|
|
359
|
+
const report = await this.deps.diagnose();
|
|
360
|
+
const bloatFactor = report.uniquePackages > 0 ? `${(report.pnpmStoreEntries / report.uniquePackages).toFixed(1)}x bloat factor` : 'N/A';
|
|
361
|
+
const sections = [_chalk().default.bold('Dependency Diagnosis for workspace'), '', _chalk().default.bold('Summary:'), ` Components in workspace: ${report.componentCount}`, ` Unique packages: ${report.uniquePackages.toLocaleString()}`, ` Installed copies (.pnpm entries): ${report.pnpmStoreEntries.toLocaleString()} (${bloatFactor})`, ` Packages with duplicates: ${report.duplicatedPackages}`];
|
|
362
|
+
if (report.versionSpread.length) {
|
|
363
|
+
const spreadTable = borderlessTable({
|
|
364
|
+
head: ['Package', 'Versions', 'Copies', 'Impact'],
|
|
365
|
+
paddingLeft: 2,
|
|
366
|
+
paddingRight: 1
|
|
367
|
+
});
|
|
368
|
+
report.versionSpread.forEach(entry => {
|
|
369
|
+
spreadTable.push([entry.packageName, String(entry.versionCount), String(entry.installedCopies), (IMPACT_COLOR[entry.impact] || _chalk().default.green)(entry.impact)]);
|
|
370
|
+
});
|
|
371
|
+
sections.push('', _chalk().default.bold('Top version-spread packages:'), spreadTable.toString());
|
|
372
|
+
}
|
|
373
|
+
if (report.peerPermutations.length) {
|
|
374
|
+
const peerTable = borderlessTable({
|
|
375
|
+
head: ['Package', 'Versions'],
|
|
376
|
+
paddingLeft: 2,
|
|
377
|
+
paddingRight: 1
|
|
378
|
+
});
|
|
379
|
+
report.peerPermutations.forEach(entry => {
|
|
380
|
+
peerTable.push([entry.packageName, `${entry.versions.length} (${entry.versions.join(', ')})`]);
|
|
381
|
+
});
|
|
382
|
+
sections.push('', _chalk().default.bold('Peer dependencies causing permutations:'), peerTable.toString());
|
|
383
|
+
}
|
|
384
|
+
return sections.join('\n');
|
|
385
|
+
}
|
|
386
|
+
async reportPackageDrillDown(packageName) {
|
|
387
|
+
const {
|
|
388
|
+
pnpmDirs
|
|
389
|
+
} = await this.deps.diagnoseDrillDown(packageName);
|
|
390
|
+
const header = [_chalk().default.bold(`Package drill-down: ${packageName}`), '', ` Installed copies: ${pnpmDirs.length}`, ''];
|
|
391
|
+
if (!pnpmDirs.length) {
|
|
392
|
+
return [...header, _chalk().default.yellow(' No .pnpm entries found for this package.'), _chalk().default.dim(' The package may not exist in this workspace, or it may be installed only once.')].join('\n');
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
// Group by version
|
|
396
|
+
const byVersion = new Map();
|
|
397
|
+
for (const dir of pnpmDirs) {
|
|
398
|
+
const suffixes = byVersion.get(dir.version) || [];
|
|
399
|
+
suffixes.push(dir.peerSuffix || '(no peers)');
|
|
400
|
+
byVersion.set(dir.version, suffixes);
|
|
401
|
+
}
|
|
402
|
+
const versionLines = Array.from(byVersion, ([version, suffixes]) => [_chalk().default.bold(` ${packageName}@${version}`) + _chalk().default.dim(` — ${suffixes.length} copies`), ...suffixes.map(s => ` ${_chalk().default.dim(s)}`)]).flat();
|
|
403
|
+
return [...header, ...versionLines].join('\n');
|
|
404
|
+
}
|
|
405
|
+
async json(_args, options) {
|
|
406
|
+
if (options.package) {
|
|
407
|
+
return this.deps.diagnoseDrillDown(options.package);
|
|
408
|
+
}
|
|
409
|
+
return this.deps.diagnose();
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
exports.DependenciesDiagnoseCmd = DependenciesDiagnoseCmd;
|
|
332
413
|
class DependenciesCmd {
|
|
333
414
|
constructor() {
|
|
334
415
|
_defineProperty(this, "name", 'deps <sub-command>');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cliTable","data","_interopRequireDefault","require","_chalk","_archy","_legacy","_template","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesGetCmd","constructor","deps","name","description","report","id","tree","scope","results","getDependencies","idWithVersion","getGraphAsTree","graph","graphAsTree","getDependenciesAsObjectTree","toString","archy","err","chalk","red","graphTree","depsInfo","getDependenciesInfo","length","toStringWithoutVersion","depsTable","generateDependenciesInfoTable","exports","DependenciesDebugCmd","debugDependencies","JSON","stringify","undefined","DependenciesSetCmd","COMPONENT_PATTERN_HELP","pattern","packages","setDepsFlags","changedComps","addedPackages","setDependency","green","bold","join","DependenciesRemoveCmd","removeDepsFlags","removeDependency","yellow","output","map","removedPackages","underline","DependenciesUnsetCmd","DependenciesResetCmd","reset","comps","DependenciesEjectCmd","eject","DependenciesBlameCmd","compName","depName","blame","table","Table","chars","top","bottom","left","mid","right","middle","style","snap","tag","author","date","message","version","push","DependenciesUsageCmd","options","deepUsageResult","usageDeep","usage","keys","compIdStr","WhyCmd","args","DependenciesCmd","unrecognizedSubcommand","SetPeerCmd","componentId","range","setPeer","UnsetPeerCmd","unsetPeer","DependenciesWriteCmd","workspace","_","writeDependencies","target"],"sources":["dependencies-cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport Table from 'cli-table';\nimport chalk from 'chalk';\nimport archy from 'archy';\nimport type { ComponentIdGraph } from '@teambit/graph';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport { generateDependenciesInfoTable } from './template';\nimport type { DependenciesMain } from './dependencies.main.runtime';\nimport type { Workspace } from '@teambit/workspace';\n\ntype GetDependenciesFlags = {\n tree: boolean;\n scope?: boolean;\n};\n\nexport type SetDependenciesFlags = {\n dev?: boolean;\n optional?: boolean;\n peer?: boolean;\n};\n\nexport type RemoveDependenciesFlags = SetDependenciesFlags;\n\nexport class DependenciesGetCmd implements Command {\n name = 'get <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info-analysis';\n description = 'show direct and indirect dependencies of the given component';\n alias = '';\n options = [\n ['', 'scope', 'get the data from the scope instead of the workspace'],\n ['t', 'tree', 'render dependencies as a tree, similar to \"npm ls\"'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string], { tree = false, scope = false }: GetDependenciesFlags) {\n const results = await this.deps.getDependencies(id, scope);\n\n if (tree) {\n const idWithVersion = results.id;\n const getGraphAsTree = (graph: ComponentIdGraph) => {\n try {\n const graphAsTree = graph.getDependenciesAsObjectTree(idWithVersion.toString());\n return archy(graphAsTree);\n } catch (err: any) {\n if (err.constructor.name === 'RangeError') {\n return `${chalk.red(\n 'unable to generate a tree representation, the graph is too big or has cyclic dependencies'\n )}`;\n }\n throw err;\n }\n };\n const graphTree = getGraphAsTree(results.graph);\n return graphTree;\n }\n const depsInfo = results.graph.getDependenciesInfo(results.id);\n if (!depsInfo.length) {\n return `no dependencies found for ${results.id.toString()}.\ntry running \"bit cat-component ${results.id.toStringWithoutVersion()}\" to see whether the component/version exists locally`;\n }\n\n const depsTable = generateDependenciesInfoTable(depsInfo, results.id);\n return `${depsTable || '<none>'}`;\n }\n}\n\nexport class DependenciesDebugCmd implements Command {\n name = 'debug <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info-analysis';\n description = 'show the immediate dependencies and how their versions were determined';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string]) {\n const results = await this.deps.debugDependencies(id);\n return JSON.stringify(results, undefined, 4);\n }\n}\n\nexport class DependenciesSetCmd implements Command {\n name = 'set <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will be resolved to the latest',\n },\n ];\n group = 'dependencies';\n description = 'set a dependency to component(s)';\n alias = '';\n options = [\n ['d', 'dev', 'add to the devDependencies'],\n ['o', 'optional', 'add to the optionalDependencies'],\n ['p', 'peer', 'add to the peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], setDepsFlags: SetDependenciesFlags) {\n const { changedComps, addedPackages } = await this.deps.setDependency(pattern, packages, setDepsFlags);\n\n return `${chalk.green('successfully updated dependencies')}\n${chalk.bold('changed components')}\n${changedComps.join('\\n')}\n\n${chalk.bold('added packages')}\n${JSON.stringify(addedPackages, undefined, 4)}`;\n }\n}\n\nexport class DependenciesRemoveCmd implements Command {\n name = 'remove <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'dependencies';\n description = 'remove a dependency from one or more components';\n extendedDescription = `this command removes the dependency whether it was set by 'bit deps set'/variants or by auto-detection.\nif the dependency was auto-detected, it will be marked with a minus sign in the .bitmap file.\notherwise, the config is written to .bitmap without the dependency.\nsee also 'bit deps unset'`;\n alias = '';\n options = [\n ['d', 'dev', 'remove from devDependencies'],\n ['p', 'peer', 'remove from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to remove');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully removed dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesUnsetCmd implements Command {\n name = 'unset <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'dependencies';\n description = 'unset a dependency to component(s) that was set via config (e.g. \"bit deps set\" or variants)';\n extendedDescription = `this command removes the dependency only when it was set by config not if it was auto detected.\nin the .bitmap file, the config is written without the dependency.\nsee also \"bit deps remove\"`;\n alias = '';\n options = [\n ['d', 'dev', 'unset from devDependencies'],\n ['p', 'peer', 'unset from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags, true);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to unset');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully unset dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesResetCmd implements Command {\n name = 'reset <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'dependencies';\n description = 'reset dependencies to the default values (revert any previously \"bit deps set\")';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.reset(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully reset dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesEjectCmd implements Command {\n name = 'eject <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'dependencies';\n description = 'write dependencies that were previously set via \"bit deps set\" into .bitmap';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.eject(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully ejected dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesBlameCmd implements Command {\n name = 'blame <component-name> <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description: 'package-name. for components, you can use either component-id or package-name',\n },\n ];\n group = 'info-analysis';\n description = 'find out which snap/tag changed a dependency version';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([compName, depName]: [string, string]) {\n const results = await this.deps.blame(compName, depName);\n if (!results.length) {\n return chalk.yellow(`the specified component ${compName} does not use the entered dependency ${depName}`);\n }\n // table with no style and no borders, just to align the columns.\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n });\n\n results.map(({ snap, tag, author, date, message, version }) =>\n table.push([snap, tag || '', author, date, message, version])\n );\n\n return table.toString();\n }\n}\n\ntype DependenciesUsageCmdOptions = {\n depth?: number;\n};\n\nexport class DependenciesUsageCmd implements Command {\n name = 'usage <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description:\n 'package-name. for components, you can use either component-id or package-name. if version is specified, it will search for the exact version',\n },\n ];\n group = 'dependencies';\n description = 'find components that use the specified dependency';\n extendedDescription = `searches workspace components to find which ones depend on the specified package or component.\nuseful for understanding dependency usage before removing packages or when refactoring components.\nsupports both exact version matching and package name patterns.`;\n alias = '';\n options = [['', 'depth <number>', 'max display depth of the dependency graph']] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([depName]: [string], options: DependenciesUsageCmdOptions) {\n const deepUsageResult = await this.deps.usageDeep(depName, options);\n if (deepUsageResult != null) return deepUsageResult;\n const results = await this.deps.usage(depName);\n if (!Object.keys(results).length) {\n return chalk.yellow(`the specified dependency ${depName} is not used by any component`);\n }\n return Object.keys(results)\n .map((compIdStr) => `${chalk.bold(compIdStr)} (using dep in version ${results[compIdStr]})`)\n .join('\\n');\n }\n}\n\nexport class WhyCmd extends DependenciesUsageCmd {\n name = 'why <dependency-name>';\n}\n\nexport class DependenciesCmd implements Command {\n name = 'deps <sub-command>';\n alias = 'dependencies';\n description = 'manage component dependencies';\n extendedDescription = `configure and analyze component dependencies with sub-commands for setting, removing, and inspecting dependency relationships.`;\n options = [];\n group = 'dependencies';\n commands: Command[] = [];\n helpUrl = 'reference/dependencies/configuring-dependencies';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"dependencies\", please run \"bit dependencies --help\" to list the subcommands`\n );\n }\n}\n\nexport class SetPeerCmd implements Command {\n name = 'set-peer <component-id> <range>';\n arguments = [\n { name: 'component-id', description: 'the component to set as always peer' },\n {\n name: 'range',\n description: 'the default range to use for the component, when added to peerDependencies',\n },\n ];\n group = 'dependencies';\n description = 'configure component to always be installed as peer dependency';\n extendedDescription = `marks a component to always be treated as a peer dependency when used by other components.\nuseful for shared libraries that should be provided by the consuming application.\nthe specified version range will be used when adding this component as a peer dependency.`;\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId, range]: [string, string]) {\n await this.deps.setPeer(componentId, range != null ? range.toString() : range);\n return `${chalk.green('successfully marked the component as a peer component')}`;\n }\n}\n\nexport class UnsetPeerCmd implements Command {\n name = 'unset-peer <component-id>';\n arguments = [{ name: 'component-id', description: 'the component to unset as always peer' }];\n group = 'dependencies';\n description = 'remove always-peer configuration from component';\n extendedDescription = `removes the always-peer marking from a component, allowing it to be installed as a regular dependency.\nreverses the effect of 'bit set-peer' command. the component will be treated normally in dependency resolution.`;\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId]: [string]) {\n await this.deps.unsetPeer(componentId);\n return `${chalk.green('successfully marked the component as not a peer component')}`;\n }\n}\n\ntype DependenciesWriteCmdOptions = {\n target?: 'workspace.jsonc' | 'package.json';\n};\n\nexport class DependenciesWriteCmd implements Command {\n name = 'write';\n arguments = [];\n group = 'dependencies';\n description =\n 'write all workspace component dependencies to package.json or workspace.jsonc, resolving conflicts by picking the ranges that match the highest versions';\n alias = '';\n options = [\n [\n '',\n 'target <workspace.jsonc|package.json>',\n 'specify where the dependencies should be written. By default they are saved to workspace.jsonc',\n ],\n ] as CommandOptions;\n\n constructor(private workspace: Workspace) {}\n\n async report(_, options: DependenciesWriteCmdOptions) {\n await this.workspace.writeDependencies(options.target);\n return '';\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_cliTable","data","_interopRequireDefault","require","_chalk","_archy","_legacy","_template","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","borderlessTable","opts","noChar","top","bottom","left","mid","right","middle","Table","chars","style","paddingLeft","paddingRight","head","IMPACT_COLOR","HIGH","chalk","red","MEDIUM","yellow","LOW","green","DependenciesGetCmd","constructor","deps","name","description","report","id","tree","scope","results","getDependencies","idWithVersion","getGraphAsTree","graph","graphAsTree","getDependenciesAsObjectTree","toString","archy","err","graphTree","depsInfo","getDependenciesInfo","toStringWithoutVersion","depsTable","generateDependenciesInfoTable","exports","DependenciesDebugCmd","debugDependencies","JSON","stringify","undefined","DependenciesSetCmd","COMPONENT_PATTERN_HELP","pattern","packages","setDepsFlags","changedComps","addedPackages","setDependency","bold","join","DependenciesRemoveCmd","removeDepsFlags","removeDependency","output","map","removedPackages","underline","DependenciesUnsetCmd","DependenciesResetCmd","reset","comps","DependenciesEjectCmd","eject","DependenciesBlameCmd","compName","depName","blame","table","snap","tag","author","date","message","version","DependenciesUsageCmd","options","deepUsageResult","usageDeep","usage","compIdStr","WhyCmd","args","DependenciesDiagnoseCmd","_args","package","reportPackageDrillDown","diagnose","bloatFactor","uniquePackages","pnpmStoreEntries","toFixed","sections","componentCount","toLocaleString","duplicatedPackages","versionSpread","spreadTable","entry","packageName","versionCount","installedCopies","impact","peerPermutations","peerTable","versions","pnpmDirs","diagnoseDrillDown","header","dim","byVersion","Map","dir","suffixes","get","peerSuffix","set","versionLines","Array","from","s","flat","json","DependenciesCmd","unrecognizedSubcommand","SetPeerCmd","componentId","range","setPeer","UnsetPeerCmd","unsetPeer","DependenciesWriteCmd","workspace","_","writeDependencies","target"],"sources":["dependencies-cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport Table from 'cli-table';\nimport chalk from 'chalk';\nimport archy from 'archy';\nimport type { ComponentIdGraph } from '@teambit/graph';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport { generateDependenciesInfoTable } from './template';\nimport type { DependenciesMain } from './dependencies.main.runtime';\nimport type { Workspace } from '@teambit/workspace';\n\n/** Create a borderless CLI table (columns aligned with whitespace only). */\nfunction borderlessTable(\n opts: { head?: string[]; paddingLeft?: number; paddingRight?: number } = {}\n): InstanceType<typeof Table> {\n const noChar = {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n };\n return new Table({\n chars: noChar,\n style: { 'padding-left': opts.paddingLeft ?? 0, 'padding-right': opts.paddingRight ?? 0 },\n ...(opts.head ? { head: opts.head } : {}),\n });\n}\n\nconst IMPACT_COLOR: Record<string, (s: string) => string> = {\n HIGH: chalk.red,\n MEDIUM: chalk.yellow,\n LOW: chalk.green,\n};\n\ntype GetDependenciesFlags = {\n tree: boolean;\n scope?: boolean;\n};\n\nexport type SetDependenciesFlags = {\n dev?: boolean;\n optional?: boolean;\n peer?: boolean;\n};\n\nexport type RemoveDependenciesFlags = SetDependenciesFlags;\n\nexport class DependenciesGetCmd implements Command {\n name = 'get <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info-analysis';\n description = 'show direct and indirect dependencies of the given component';\n alias = '';\n options = [\n ['', 'scope', 'get the data from the scope instead of the workspace'],\n ['t', 'tree', 'render dependencies as a tree, similar to \"npm ls\"'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string], { tree = false, scope = false }: GetDependenciesFlags) {\n const results = await this.deps.getDependencies(id, scope);\n\n if (tree) {\n const idWithVersion = results.id;\n const getGraphAsTree = (graph: ComponentIdGraph) => {\n try {\n const graphAsTree = graph.getDependenciesAsObjectTree(idWithVersion.toString());\n return archy(graphAsTree);\n } catch (err: any) {\n if (err.constructor.name === 'RangeError') {\n return `${chalk.red(\n 'unable to generate a tree representation, the graph is too big or has cyclic dependencies'\n )}`;\n }\n throw err;\n }\n };\n const graphTree = getGraphAsTree(results.graph);\n return graphTree;\n }\n const depsInfo = results.graph.getDependenciesInfo(results.id);\n if (!depsInfo.length) {\n return `no dependencies found for ${results.id.toString()}.\ntry running \"bit cat-component ${results.id.toStringWithoutVersion()}\" to see whether the component/version exists locally`;\n }\n\n const depsTable = generateDependenciesInfoTable(depsInfo, results.id);\n return `${depsTable || '<none>'}`;\n }\n}\n\nexport class DependenciesDebugCmd implements Command {\n name = 'debug <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info-analysis';\n description = 'show the immediate dependencies and how their versions were determined';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string]) {\n const results = await this.deps.debugDependencies(id);\n return JSON.stringify(results, undefined, 4);\n }\n}\n\nexport class DependenciesSetCmd implements Command {\n name = 'set <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will be resolved to the latest',\n },\n ];\n group = 'dependencies';\n description = 'set a dependency to component(s)';\n alias = '';\n options = [\n ['d', 'dev', 'add to the devDependencies'],\n ['o', 'optional', 'add to the optionalDependencies'],\n ['p', 'peer', 'add to the peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], setDepsFlags: SetDependenciesFlags) {\n const { changedComps, addedPackages } = await this.deps.setDependency(pattern, packages, setDepsFlags);\n\n return `${chalk.green('successfully updated dependencies')}\n${chalk.bold('changed components')}\n${changedComps.join('\\n')}\n\n${chalk.bold('added packages')}\n${JSON.stringify(addedPackages, undefined, 4)}`;\n }\n}\n\nexport class DependenciesRemoveCmd implements Command {\n name = 'remove <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'dependencies';\n description = 'remove a dependency from one or more components';\n extendedDescription = `this command removes the dependency whether it was set by 'bit deps set'/variants or by auto-detection.\nif the dependency was auto-detected, it will be marked with a minus sign in the .bitmap file.\notherwise, the config is written to .bitmap without the dependency.\nsee also 'bit deps unset'`;\n alias = '';\n options = [\n ['d', 'dev', 'remove from devDependencies'],\n ['p', 'peer', 'remove from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to remove');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully removed dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesUnsetCmd implements Command {\n name = 'unset <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'dependencies';\n description = 'unset a dependency to component(s) that was set via config (e.g. \"bit deps set\" or variants)';\n extendedDescription = `this command removes the dependency only when it was set by config not if it was auto detected.\nin the .bitmap file, the config is written without the dependency.\nsee also \"bit deps remove\"`;\n alias = '';\n options = [\n ['d', 'dev', 'unset from devDependencies'],\n ['p', 'peer', 'unset from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags, true);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to unset');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully unset dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesResetCmd implements Command {\n name = 'reset <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'dependencies';\n description = 'reset dependencies to the default values (revert any previously \"bit deps set\")';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.reset(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully reset dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesEjectCmd implements Command {\n name = 'eject <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'dependencies';\n description = 'write dependencies that were previously set via \"bit deps set\" into .bitmap';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.eject(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully ejected dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesBlameCmd implements Command {\n name = 'blame <component-name> <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description: 'package-name. for components, you can use either component-id or package-name',\n },\n ];\n group = 'info-analysis';\n description = 'find out which snap/tag changed a dependency version';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([compName, depName]: [string, string]) {\n const results = await this.deps.blame(compName, depName);\n if (!results.length) {\n return chalk.yellow(`the specified component ${compName} does not use the entered dependency ${depName}`);\n }\n const table = borderlessTable();\n results.map(({ snap, tag, author, date, message, version }) =>\n table.push([snap, tag || '', author, date, message, version])\n );\n\n return table.toString();\n }\n}\n\ntype DependenciesUsageCmdOptions = {\n depth?: number;\n};\n\nexport class DependenciesUsageCmd implements Command {\n name = 'usage <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description:\n 'package-name. for components, you can use either component-id or package-name. if version is specified, it will search for the exact version',\n },\n ];\n group = 'dependencies';\n description = 'find components that use the specified dependency';\n extendedDescription = `searches workspace components to find which ones depend on the specified package or component.\nuseful for understanding dependency usage before removing packages or when refactoring components.\nsupports both exact version matching and package name patterns.`;\n alias = '';\n options = [['', 'depth <number>', 'max display depth of the dependency graph']] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([depName]: [string], options: DependenciesUsageCmdOptions) {\n const deepUsageResult = await this.deps.usageDeep(depName, options);\n if (deepUsageResult != null) return deepUsageResult;\n const results = await this.deps.usage(depName);\n if (!Object.keys(results).length) {\n return chalk.yellow(`the specified dependency ${depName} is not used by any component`);\n }\n return Object.keys(results)\n .map((compIdStr) => `${chalk.bold(compIdStr)} (using dep in version ${results[compIdStr]})`)\n .join('\\n');\n }\n}\n\nexport class WhyCmd extends DependenciesUsageCmd {\n name = 'why <dependency-name>';\n}\n\nexport class DependenciesDiagnoseCmd implements Command {\n name = 'diagnose';\n group = 'info-analysis';\n description = 'analyze workspace dependencies for version spread, peer permutations, and bloat';\n extendedDescription = `scans node_modules/.pnpm to report actual installed copies, identifies packages with multiple versions, and highlights peer dependencies causing permutation explosion. Use --package to drill down into a specific package.`;\n alias = '';\n options = [\n ['', 'package <string>', 'drill down into a specific package to see all .pnpm copies and peer combos'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report(_args: [], options: { package?: string }) {\n if (options.package) {\n return this.reportPackageDrillDown(options.package);\n }\n\n const report = await this.deps.diagnose();\n const bloatFactor =\n report.uniquePackages > 0\n ? `${(report.pnpmStoreEntries / report.uniquePackages).toFixed(1)}x bloat factor`\n : 'N/A';\n const sections: string[] = [\n chalk.bold('Dependency Diagnosis for workspace'),\n '',\n chalk.bold('Summary:'),\n ` Components in workspace: ${report.componentCount}`,\n ` Unique packages: ${report.uniquePackages.toLocaleString()}`,\n ` Installed copies (.pnpm entries): ${report.pnpmStoreEntries.toLocaleString()} (${bloatFactor})`,\n ` Packages with duplicates: ${report.duplicatedPackages}`,\n ];\n\n if (report.versionSpread.length) {\n const spreadTable = borderlessTable({\n head: ['Package', 'Versions', 'Copies', 'Impact'],\n paddingLeft: 2,\n paddingRight: 1,\n });\n report.versionSpread.forEach((entry) => {\n spreadTable.push([\n entry.packageName,\n String(entry.versionCount),\n String(entry.installedCopies),\n (IMPACT_COLOR[entry.impact] || chalk.green)(entry.impact),\n ]);\n });\n sections.push('', chalk.bold('Top version-spread packages:'), spreadTable.toString());\n }\n\n if (report.peerPermutations.length) {\n const peerTable = borderlessTable({ head: ['Package', 'Versions'], paddingLeft: 2, paddingRight: 1 });\n report.peerPermutations.forEach((entry) => {\n peerTable.push([entry.packageName, `${entry.versions.length} (${entry.versions.join(', ')})`]);\n });\n sections.push('', chalk.bold('Peer dependencies causing permutations:'), peerTable.toString());\n }\n\n return sections.join('\\n');\n }\n\n private async reportPackageDrillDown(packageName: string): Promise<string> {\n const { pnpmDirs } = await this.deps.diagnoseDrillDown(packageName);\n const header = [chalk.bold(`Package drill-down: ${packageName}`), '', ` Installed copies: ${pnpmDirs.length}`, ''];\n\n if (!pnpmDirs.length) {\n return [\n ...header,\n chalk.yellow(' No .pnpm entries found for this package.'),\n chalk.dim(' The package may not exist in this workspace, or it may be installed only once.'),\n ].join('\\n');\n }\n\n // Group by version\n const byVersion = new Map<string, string[]>();\n for (const dir of pnpmDirs) {\n const suffixes = byVersion.get(dir.version) || [];\n suffixes.push(dir.peerSuffix || '(no peers)');\n byVersion.set(dir.version, suffixes);\n }\n\n const versionLines = Array.from(byVersion, ([version, suffixes]) => [\n chalk.bold(` ${packageName}@${version}`) + chalk.dim(` — ${suffixes.length} copies`),\n ...suffixes.map((s) => ` ${chalk.dim(s)}`),\n ]).flat();\n\n return [...header, ...versionLines].join('\\n');\n }\n\n async json(_args: [], options: { package?: string }) {\n if (options.package) {\n return this.deps.diagnoseDrillDown(options.package);\n }\n return this.deps.diagnose();\n }\n}\n\nexport class DependenciesCmd implements Command {\n name = 'deps <sub-command>';\n alias = 'dependencies';\n description = 'manage component dependencies';\n extendedDescription = `configure and analyze component dependencies with sub-commands for setting, removing, and inspecting dependency relationships.`;\n options = [];\n group = 'dependencies';\n commands: Command[] = [];\n helpUrl = 'reference/dependencies/configuring-dependencies';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"dependencies\", please run \"bit dependencies --help\" to list the subcommands`\n );\n }\n}\n\nexport class SetPeerCmd implements Command {\n name = 'set-peer <component-id> <range>';\n arguments = [\n { name: 'component-id', description: 'the component to set as always peer' },\n {\n name: 'range',\n description: 'the default range to use for the component, when added to peerDependencies',\n },\n ];\n group = 'dependencies';\n description = 'configure component to always be installed as peer dependency';\n extendedDescription = `marks a component to always be treated as a peer dependency when used by other components.\nuseful for shared libraries that should be provided by the consuming application.\nthe specified version range will be used when adding this component as a peer dependency.`;\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId, range]: [string, string]) {\n await this.deps.setPeer(componentId, range != null ? range.toString() : range);\n return `${chalk.green('successfully marked the component as a peer component')}`;\n }\n}\n\nexport class UnsetPeerCmd implements Command {\n name = 'unset-peer <component-id>';\n arguments = [{ name: 'component-id', description: 'the component to unset as always peer' }];\n group = 'dependencies';\n description = 'remove always-peer configuration from component';\n extendedDescription = `removes the always-peer marking from a component, allowing it to be installed as a regular dependency.\nreverses the effect of 'bit set-peer' command. the component will be treated normally in dependency resolution.`;\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId]: [string]) {\n await this.deps.unsetPeer(componentId);\n return `${chalk.green('successfully marked the component as not a peer component')}`;\n }\n}\n\ntype DependenciesWriteCmdOptions = {\n target?: 'workspace.jsonc' | 'package.json';\n};\n\nexport class DependenciesWriteCmd implements Command {\n name = 'write';\n arguments = [];\n group = 'dependencies';\n description =\n 'write all workspace component dependencies to package.json or workspace.jsonc, resolving conflicts by picking the ranges that match the highest versions';\n alias = '';\n options = [\n [\n '',\n 'target <workspace.jsonc|package.json>',\n 'specify where the dependencies should be written. By default they are saved to workspace.jsonc',\n ],\n ] as CommandOptions;\n\n constructor(private workspace: Workspace) {}\n\n async report(_, options: DependenciesWriteCmdOptions) {\n await this.workspace.writeDependencies(options.target);\n return '';\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,6 +38,28 @@ export type BlameResult = {
|
|
|
38
38
|
message: string;
|
|
39
39
|
version: string;
|
|
40
40
|
};
|
|
41
|
+
export interface DiagnosisReport {
|
|
42
|
+
componentCount: number;
|
|
43
|
+
/** total directories in node_modules/.pnpm — the actual installed copies on disk */
|
|
44
|
+
pnpmStoreEntries: number;
|
|
45
|
+
/** unique package names (regardless of version/peer combo) */
|
|
46
|
+
uniquePackages: number;
|
|
47
|
+
/** packages that appear in more than one .pnpm directory (version spread + peer permutations) */
|
|
48
|
+
duplicatedPackages: number;
|
|
49
|
+
versionSpread: Array<{
|
|
50
|
+
packageName: string;
|
|
51
|
+
/** how many distinct versions exist across components */
|
|
52
|
+
versionCount: number;
|
|
53
|
+
versions: string[];
|
|
54
|
+
/** how many actual .pnpm directories this package has (includes peer permutations) */
|
|
55
|
+
installedCopies: number;
|
|
56
|
+
impact: 'HIGH' | 'MEDIUM' | 'LOW';
|
|
57
|
+
}>;
|
|
58
|
+
peerPermutations: Array<{
|
|
59
|
+
packageName: string;
|
|
60
|
+
versions: string[];
|
|
61
|
+
}>;
|
|
62
|
+
}
|
|
41
63
|
export declare class DependenciesMain {
|
|
42
64
|
private workspace;
|
|
43
65
|
private scope;
|
|
@@ -82,6 +104,25 @@ export declare class DependenciesMain {
|
|
|
82
104
|
usage(depName: string): Promise<{
|
|
83
105
|
[compIdStr: string]: string;
|
|
84
106
|
}>;
|
|
107
|
+
/**
|
|
108
|
+
* Analyze the workspace's installed dependencies to detect bloat and duplication.
|
|
109
|
+
* Scans node_modules/.pnpm for ground truth on actual installed copies.
|
|
110
|
+
* Only works with pnpm-managed workspaces.
|
|
111
|
+
*/
|
|
112
|
+
diagnose(): Promise<DiagnosisReport>;
|
|
113
|
+
/**
|
|
114
|
+
* Parse a .pnpm directory name to extract the package name.
|
|
115
|
+
* Format: @scope+name@version_peers... or name@version_peers...
|
|
116
|
+
*/
|
|
117
|
+
private parsePnpmDirPackageName;
|
|
118
|
+
/** Inspect all .pnpm entries for a specific package, showing each installed copy and its peer combo. */
|
|
119
|
+
diagnoseDrillDown(packageName: string): Promise<{
|
|
120
|
+
packageName: string;
|
|
121
|
+
pnpmDirs: Array<{
|
|
122
|
+
version: string;
|
|
123
|
+
peerSuffix: string | null;
|
|
124
|
+
}>;
|
|
125
|
+
}>;
|
|
85
126
|
private getPackageNameAndVerResolved;
|
|
86
127
|
private splitPkgToNameAndVer;
|
|
87
128
|
static slots: never[];
|
|
@@ -32,6 +32,27 @@ function _workspace() {
|
|
|
32
32
|
};
|
|
33
33
|
return data;
|
|
34
34
|
}
|
|
35
|
+
function _fsExtra() {
|
|
36
|
+
const data = _interopRequireDefault(require("fs-extra"));
|
|
37
|
+
_fsExtra = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _path() {
|
|
43
|
+
const data = _interopRequireDefault(require("path"));
|
|
44
|
+
_path = function () {
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
function _semver() {
|
|
50
|
+
const data = _interopRequireDefault(require("semver"));
|
|
51
|
+
_semver = function () {
|
|
52
|
+
return data;
|
|
53
|
+
};
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
35
56
|
function _lodash() {
|
|
36
57
|
const data = require("lodash");
|
|
37
58
|
_lodash = function () {
|
|
@@ -129,6 +150,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
129
150
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
130
151
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
131
152
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
153
|
+
/** Compare two version strings: semver-aware when both are valid, lexicographic otherwise. */
|
|
154
|
+
function compareVersions(a, b) {
|
|
155
|
+
return _semver().default.valid(a) && _semver().default.valid(b) ? _semver().default.compare(a, b) : a.localeCompare(b);
|
|
156
|
+
}
|
|
132
157
|
class DependenciesMain {
|
|
133
158
|
constructor(workspace, scope, dependencyResolver, devFiles, aspectLoader, graph, logger) {
|
|
134
159
|
this.workspace = workspace;
|
|
@@ -397,6 +422,148 @@ class DependenciesMain {
|
|
|
397
422
|
}));
|
|
398
423
|
return results;
|
|
399
424
|
}
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Analyze the workspace's installed dependencies to detect bloat and duplication.
|
|
428
|
+
* Scans node_modules/.pnpm for ground truth on actual installed copies.
|
|
429
|
+
* Only works with pnpm-managed workspaces.
|
|
430
|
+
*/
|
|
431
|
+
async diagnose() {
|
|
432
|
+
if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
|
|
433
|
+
const allComps = await this.workspace.list();
|
|
434
|
+
const componentCount = allComps.length;
|
|
435
|
+
|
|
436
|
+
// 1. Scan node_modules/.pnpm for ground truth — each directory is an actual installed copy
|
|
437
|
+
const pnpmDir = _path().default.join(this.workspace.path, 'node_modules', '.pnpm');
|
|
438
|
+
const pnpmDirExists = await _fsExtra().default.pathExists(pnpmDir);
|
|
439
|
+
if (!pnpmDirExists) {
|
|
440
|
+
throw new Error(`"bit deps diagnose" requires a pnpm-managed workspace. ` + `Expected "${pnpmDir}" to exist. Run "bit install" first.`);
|
|
441
|
+
}
|
|
442
|
+
const pnpmEntries = await _fsExtra().default.readdir(pnpmDir);
|
|
443
|
+
const pnpmPackageCopies = new Map();
|
|
444
|
+
let pnpmStoreEntries = 0;
|
|
445
|
+
for (const entry of pnpmEntries) {
|
|
446
|
+
if (entry.startsWith('.') || entry === 'node_modules') continue;
|
|
447
|
+
pnpmStoreEntries++;
|
|
448
|
+
const pkgName = this.parsePnpmDirPackageName(entry);
|
|
449
|
+
if (pkgName) {
|
|
450
|
+
pnpmPackageCopies.set(pkgName, (pnpmPackageCopies.get(pkgName) || 0) + 1);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
const uniquePackages = pnpmPackageCopies.size;
|
|
454
|
+
const duplicatedPackages = Array.from(pnpmPackageCopies.values()).filter(c => c > 1).length;
|
|
455
|
+
|
|
456
|
+
// 2. Collect component-level dep info (for version spread + peer lifecycle detection)
|
|
457
|
+
const packageVersionMap = new Map();
|
|
458
|
+
for (const comp of allComps) {
|
|
459
|
+
const depList = this.dependencyResolver.getDependencies(comp);
|
|
460
|
+
depList.forEach(dep => {
|
|
461
|
+
const pkgName = dep.getPackageName?.() || dep.id;
|
|
462
|
+
let entry = packageVersionMap.get(pkgName);
|
|
463
|
+
if (!entry) {
|
|
464
|
+
entry = {
|
|
465
|
+
versions: new Set(),
|
|
466
|
+
lifecycles: new Set()
|
|
467
|
+
};
|
|
468
|
+
packageVersionMap.set(pkgName, entry);
|
|
469
|
+
}
|
|
470
|
+
entry.versions.add(dep.version);
|
|
471
|
+
entry.lifecycles.add(dep.lifecycle);
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
// 3. Version spread — packages with the most distinct versions, enriched with .pnpm copy count
|
|
476
|
+
const versionSpread = Array.from(packageVersionMap.entries()).filter(([, data]) => data.versions.size > 1).map(([pkgName, data]) => {
|
|
477
|
+
const versionCount = data.versions.size;
|
|
478
|
+
const versions = Array.from(data.versions).sort(compareVersions);
|
|
479
|
+
const installedCopies = pnpmPackageCopies.get(pkgName) || versionCount;
|
|
480
|
+
const impact = installedCopies >= 10 ? 'HIGH' : installedCopies >= 5 ? 'MEDIUM' : 'LOW';
|
|
481
|
+
return {
|
|
482
|
+
packageName: pkgName,
|
|
483
|
+
versionCount,
|
|
484
|
+
versions,
|
|
485
|
+
installedCopies,
|
|
486
|
+
impact
|
|
487
|
+
};
|
|
488
|
+
}).sort((a, b) => b.installedCopies - a.installedCopies).slice(0, 30);
|
|
489
|
+
|
|
490
|
+
// 4. Peer deps with multiple versions
|
|
491
|
+
const peerPermutations = Array.from(packageVersionMap.entries()).filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1).map(([pkgName, data]) => ({
|
|
492
|
+
packageName: pkgName,
|
|
493
|
+
versions: Array.from(data.versions).sort(compareVersions)
|
|
494
|
+
})).sort((a, b) => b.versions.length - a.versions.length);
|
|
495
|
+
return {
|
|
496
|
+
componentCount,
|
|
497
|
+
pnpmStoreEntries,
|
|
498
|
+
uniquePackages,
|
|
499
|
+
duplicatedPackages,
|
|
500
|
+
versionSpread,
|
|
501
|
+
peerPermutations
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Parse a .pnpm directory name to extract the package name.
|
|
507
|
+
* Format: @scope+name@version_peers... or name@version_peers...
|
|
508
|
+
*/
|
|
509
|
+
parsePnpmDirPackageName(dirName) {
|
|
510
|
+
if (dirName.startsWith('@')) {
|
|
511
|
+
// Scoped package: @scope+name@version...
|
|
512
|
+
const plusIdx = dirName.indexOf('+');
|
|
513
|
+
if (plusIdx === -1) return null;
|
|
514
|
+
const scope = dirName.substring(0, plusIdx);
|
|
515
|
+
const rest = dirName.substring(plusIdx + 1);
|
|
516
|
+
const atIdx = rest.indexOf('@');
|
|
517
|
+
if (atIdx === -1) return null;
|
|
518
|
+
const name = rest.substring(0, atIdx);
|
|
519
|
+
return `${scope}/${name}`;
|
|
520
|
+
}
|
|
521
|
+
// Regular package: name@version...
|
|
522
|
+
const atIdx = dirName.indexOf('@');
|
|
523
|
+
if (atIdx === -1) return null;
|
|
524
|
+
return dirName.substring(0, atIdx);
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/** Inspect all .pnpm entries for a specific package, showing each installed copy and its peer combo. */
|
|
528
|
+
async diagnoseDrillDown(packageName) {
|
|
529
|
+
if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
|
|
530
|
+
const pnpmDir = _path().default.join(this.workspace.path, 'node_modules', '.pnpm');
|
|
531
|
+
const pnpmDirExists = await _fsExtra().default.pathExists(pnpmDir);
|
|
532
|
+
if (!pnpmDirExists) {
|
|
533
|
+
throw new Error(`"bit deps diagnose --package" requires a pnpm-managed workspace. ` + `Expected "${pnpmDir}" to exist. Run "bit install" first.`);
|
|
534
|
+
}
|
|
535
|
+
const entries = await _fsExtra().default.readdir(pnpmDir);
|
|
536
|
+
|
|
537
|
+
// Convert package name to .pnpm format: @scope/name → @scope+name
|
|
538
|
+
const pnpmPrefix = packageName.replace('/', '+');
|
|
539
|
+
const pnpmDirs = [];
|
|
540
|
+
for (const entry of entries) {
|
|
541
|
+
if (!entry.startsWith(pnpmPrefix + '@')) continue;
|
|
542
|
+
// Extract version and peer suffix from: @scope+name@version_peer1@ver_peer2@ver
|
|
543
|
+
const afterName = entry.substring(pnpmPrefix.length + 1); // skip "name@"
|
|
544
|
+
const underscoreIdx = afterName.indexOf('_');
|
|
545
|
+
if (underscoreIdx === -1) {
|
|
546
|
+
pnpmDirs.push({
|
|
547
|
+
version: afterName,
|
|
548
|
+
peerSuffix: null
|
|
549
|
+
});
|
|
550
|
+
} else {
|
|
551
|
+
const version = afterName.substring(0, underscoreIdx);
|
|
552
|
+
const rawPeerSuffix = afterName.substring(underscoreIdx + 1);
|
|
553
|
+
const peerSegments = rawPeerSuffix.split('_').filter(Boolean);
|
|
554
|
+
const peerSuffix = peerSegments.map(seg => seg.replace(/\+/g, '/')).join(' + ') || null;
|
|
555
|
+
pnpmDirs.push({
|
|
556
|
+
version,
|
|
557
|
+
peerSuffix
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
pnpmDirs.sort((a, b) => compareVersions(a.version, b.version) || (a.peerSuffix || '').localeCompare(b.peerSuffix || ''));
|
|
562
|
+
return {
|
|
563
|
+
packageName,
|
|
564
|
+
pnpmDirs
|
|
565
|
+
};
|
|
566
|
+
}
|
|
400
567
|
async getPackageNameAndVerResolved(pkg) {
|
|
401
568
|
const resolveLatest = async pkgName => {
|
|
402
569
|
const versionResolver = await this.dependencyResolver.getVersionResolver({});
|
|
@@ -424,7 +591,7 @@ class DependenciesMain {
|
|
|
424
591
|
const logger = loggerMain.createLogger(_dependencies().DependenciesAspect.id);
|
|
425
592
|
const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph, logger);
|
|
426
593
|
const depsCmd = new (_dependenciesCmd().DependenciesCmd)();
|
|
427
|
-
depsCmd.commands = [new (_dependenciesCmd().DependenciesGetCmd)(depsMain), new (_dependenciesCmd().DependenciesRemoveCmd)(depsMain), new (_dependenciesCmd().DependenciesUnsetCmd)(depsMain), new (_dependenciesCmd().DependenciesDebugCmd)(depsMain), new (_dependenciesCmd().DependenciesSetCmd)(depsMain), new (_dependenciesCmd().DependenciesResetCmd)(depsMain), new (_dependenciesCmd().DependenciesEjectCmd)(depsMain), new (_dependenciesCmd().DependenciesBlameCmd)(depsMain), new (_dependenciesCmd().DependenciesUsageCmd)(depsMain), new (_dependenciesCmd().DependenciesWriteCmd)(workspace)];
|
|
594
|
+
depsCmd.commands = [new (_dependenciesCmd().DependenciesGetCmd)(depsMain), new (_dependenciesCmd().DependenciesRemoveCmd)(depsMain), new (_dependenciesCmd().DependenciesUnsetCmd)(depsMain), new (_dependenciesCmd().DependenciesDebugCmd)(depsMain), new (_dependenciesCmd().DependenciesSetCmd)(depsMain), new (_dependenciesCmd().DependenciesResetCmd)(depsMain), new (_dependenciesCmd().DependenciesEjectCmd)(depsMain), new (_dependenciesCmd().DependenciesBlameCmd)(depsMain), new (_dependenciesCmd().DependenciesUsageCmd)(depsMain), new (_dependenciesCmd().DependenciesDiagnoseCmd)(depsMain), new (_dependenciesCmd().DependenciesWriteCmd)(workspace)];
|
|
428
595
|
cli.register(depsCmd, new (_dependenciesCmd().WhyCmd)(depsMain), new (_dependenciesCmd().SetPeerCmd)(depsMain), new (_dependenciesCmd().UnsetPeerCmd)(depsMain), new (_dependentsCmd().DependentsCmd)(workspace));
|
|
429
596
|
_legacy().ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);
|
|
430
597
|
return depsMain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cli","data","require","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_lodash","_pMapSeries","_legacy","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","_logger","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesMain","constructor","workspace","scope","dependencyResolver","devFiles","aspectLoader","graph","logger","setPeer","componentId","range","compId","resolveComponentId","config","peer","defaultPeerRange","addSpecificComponentConfig","DependencyResolverAspect","id","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","unsetPeer","getAspectConfigForComponent","addComponentConfig","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","optional","policy","changedComps","toStringWithoutVersion","addedPackages","removeDependency","removeOnlyIfExists","getLifeCycle","results","pMapSeries","component","get","missingPackages","uniq","state","issues","getIssueByName","d","flat","depList","getDependencies","getCurrentConfig","currentConfigFromWorkspace","getSpecificComponentConfig","extFromScope","getExtensionsFromScopeAndSpecific","toConfigObject","currentDepResolverConfig","newDepResolverConfig","cloneDeep","depField","KEY_NAME_BY_LIFECYCLE_TYPE","removedPackagesWithNulls","splitPkgToNameAndVer","dependency","findByPkgNameOrCompId","includes","set","depName","getPackageName","existsInSpecificConfig","removedPackages","compact","reset","eject","factory","comp","compIdWithVer","getGraphIds","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","OutsideWorkspaceError","consumerComponent","_consumer","cacheResolvedDependencies","useDependenciesCache","missingPackageDependencies","manuallyAddedDependencies","manuallyRemovedDependencies","overridesDependencies","sources","dep","source","debugDependenciesData","coreAspects","blame","compName","log","getLogs","blameResults","lastVersion","logItem","changeVersion","tag","hash","snap","author","username","date","moment","Date","parseInt","format","message","usageDeep","isComponentId","getPackageManager","findUsages","lockfileDir","path","depth","undefined","usage","allComps","list","toString","resolveLatest","pkgName","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","Error","versionResolved","snapToSemver","packageSplit","split","startsWith","provider","cli","depsResolver","loggerMain","createLogger","DependenciesAspect","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesRemoveCmd","DependenciesUnsetCmd","DependenciesDebugCmd","DependenciesSetCmd","DependenciesResetCmd","DependenciesEjectCmd","DependenciesBlameCmd","DependenciesUsageCmd","DependenciesWriteCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport moment from 'moment';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, KEY_NAME_BY_LIFECYCLE_TYPE } from '@teambit/dependency-resolver';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport { cloneDeep, compact, set, uniq } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport type { ConsumerComponent, DependencyLoaderOpts } from '@teambit/legacy.consumer-component';\nimport { ComponentLoader } from '@teambit/legacy.consumer-component';\nimport type { DevFilesMain } from '@teambit/dev-files';\nimport { DevFilesAspect } from '@teambit/dev-files';\nimport type { ComponentIdGraph, GraphMain } from '@teambit/graph';\nimport { GraphAspect } from '@teambit/graph';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport { DependenciesLoader } from './dependencies-loader/dependencies-loader';\nimport type { DependenciesData, OverridesDependenciesData } from './dependencies-loader/dependencies-data';\nimport type { RemoveDependenciesFlags, SetDependenciesFlags } from './dependencies-cmd';\nimport {\n DependenciesBlameCmd,\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesEjectCmd,\n DependenciesGetCmd,\n DependenciesRemoveCmd,\n DependenciesResetCmd,\n DependenciesSetCmd,\n DependenciesUnsetCmd,\n DependenciesUsageCmd,\n DependenciesWriteCmd,\n SetPeerCmd,\n UnsetPeerCmd,\n WhyCmd,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\nimport type { DebugDependencies } from './dependencies-loader/auto-detect-deps';\nimport { DependentsCmd } from './dependents-cmd';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport type RemoveDependencyResult = { id: ComponentID; removedPackages: string[] };\nexport type SetDependenciesResult = { changedComps: string[]; addedPackages: Record<string, string> };\nexport type DependenciesResultsDebug = DebugDependencies &\n OverridesDependenciesData & { coreAspects: string[]; sources: { id: string; source: string }[] };\n\nexport type DependenciesResults = {\n graph: ComponentIdGraph;\n id: ComponentID;\n};\n\nexport type BlameResult = {\n snap: string;\n tag?: string;\n author: string;\n date: string;\n message: string;\n version: string;\n};\n\nexport class DependenciesMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private dependencyResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain,\n private graph: GraphMain,\n private logger: Logger\n ) {}\n\n async setPeer(componentId: string, range?: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n const config = { peer: true, defaultPeerRange: range };\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n\n await this.workspace.bitMap.write(`set-peer (${componentId})`);\n }\n\n async unsetPeer(componentId: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n // const config = { peer: true, defaultPeerRange: range };\n const config = await this.workspace.getAspectConfigForComponent(compId, DependencyResolverAspect.id);\n if (config) {\n if ('peer' in config) {\n delete config.peer;\n }\n if ('defaultPeerRange' in config) {\n delete config.defaultPeerRange;\n }\n }\n this.workspace.bitMap.addComponentConfig(compId, DependencyResolverAspect.id, config);\n\n await this.workspace.bitMap.write(`unset-peer (${componentId})`);\n }\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags = {}\n ): Promise<SetDependenciesResult> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n if (options.optional) {\n packagesObj[name] = { optional: true, version };\n } else {\n packagesObj[name] = version;\n }\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n\n await this.workspace.bitMap.write(`deps-set (${componentPattern})`);\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n async removeDependency(\n componentPattern: string,\n packages: string[],\n options: RemoveDependenciesFlags = {},\n removeOnlyIfExists = false // unset\n ): Promise<RemoveDependencyResult[]> {\n const getLifeCycle = () => {\n if (options.dev) return 'dev';\n if (options.peer) return 'peer';\n return 'runtime';\n };\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const results = await pMapSeries(compIds, async (compId) => {\n const component = await this.workspace.get(compId);\n const missingPackages = uniq(\n component.state.issues\n .getIssueByName('MissingPackagesDependenciesOnFs')\n ?.data.map((d) => d.missingPackages)\n .flat() || []\n );\n const depList = this.dependencyResolver.getDependencies(component);\n const getCurrentConfig = async () => {\n const currentConfigFromWorkspace = await this.workspace.getSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id\n );\n if (currentConfigFromWorkspace) return currentConfigFromWorkspace;\n const extFromScope = await this.workspace.getExtensionsFromScopeAndSpecific(compId);\n return extFromScope?.toConfigObject()[DependencyResolverAspect.id];\n };\n const currentDepResolverConfig = await getCurrentConfig();\n const newDepResolverConfig = cloneDeep(currentDepResolverConfig || {});\n const depField = KEY_NAME_BY_LIFECYCLE_TYPE[getLifeCycle()];\n const removedPackagesWithNulls = await pMapSeries(packages, async (pkg) => {\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const dependency = depList.findByPkgNameOrCompId(name, version, getLifeCycle());\n if (!dependency) {\n if (!missingPackages.includes(name)) return null;\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, name], '-');\n return `${name}@${version || 'latest'}`;\n }\n const depName = dependency.getPackageName?.() || dependency.id;\n\n const existsInSpecificConfig = newDepResolverConfig.policy?.[depField]?.[depName];\n if (existsInSpecificConfig) {\n if (existsInSpecificConfig === '-') return null;\n delete newDepResolverConfig.policy[depField][depName];\n } else {\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, depName], '-');\n }\n return `${depName}@${dependency.version}`;\n });\n const removedPackages = compact(removedPackagesWithNulls);\n if (!removedPackages.length) return null;\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, newDepResolverConfig);\n return { id: compId, removedPackages };\n });\n await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);\n\n return compact(results);\n }\n\n async reset(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, { policy: {} });\n });\n await this.workspace.bitMap.write(`deps-reset (${componentPattern})`);\n\n return compIds;\n }\n\n async eject(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id,\n {},\n {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n }\n );\n });\n await this.workspace.bitMap.write(`deps-eject (${componentPattern})`);\n\n return compIds;\n }\n\n async getDependencies(id: string, scope?: boolean): Promise<DependenciesResults> {\n const factory = this.workspace && !scope ? this.workspace : this.scope;\n const compId = await (this.workspace || this.scope).resolveComponentId(id);\n const comp = await (this.workspace || this.scope).get(compId);\n const compIdWithVer = comp.id;\n const graph = await this.graph.getGraphIds([compIdWithVer], { host: factory as any });\n\n return { graph, id: compIdWithVer };\n }\n\n async loadDependencies(component: ConsumerComponent, opts: DependencyLoaderOpts) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.load(this.workspace, opts);\n }\n\n /**\n * load dependencies without the need for the workspace.\n * the \"auto-detect\" are passed here as \"dependenciesData\". the \"overrides\", such as dependencies from the env,\n * are calculated here.\n * eventually all these dependencies are added to the ConsumerComponent object.\n */\n async loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.loadFromScope(dependenciesData);\n }\n\n async debugDependencies(id: string): Promise<DependenciesResultsDebug> {\n // @todo: supports this on bare-scope.\n if (!this.workspace) throw new OutsideWorkspaceError();\n const compId = await this.workspace.resolveComponentId(id);\n const component = await this.workspace.get(compId);\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = await this.loadDependencies(consumerComponent, {\n cacheResolvedDependencies: {},\n useDependenciesCache: false,\n });\n\n const { missingPackageDependencies, manuallyAddedDependencies, manuallyRemovedDependencies } =\n dependenciesData.overridesDependencies;\n\n const results = this.dependencyResolver.getDependencies(component);\n const sources = results.map((dep) => ({ id: dep.id, source: dep.source }));\n\n return {\n ...dependenciesData.debugDependenciesData,\n manuallyRemovedDependencies,\n manuallyAddedDependencies,\n missingPackageDependencies,\n coreAspects: dependenciesData.dependenciesData.coreAspects,\n sources,\n };\n }\n\n /**\n * helps determine what snap/tag changed a specific dependency.\n * the results are sorted from the oldest to newest.\n */\n async blame(compName: string, depName: string) {\n const id = await this.workspace.resolveComponentId(compName);\n const log = await this.workspace.scope.getLogs(id);\n const blameResults: BlameResult[] = [];\n let lastVersion = '';\n await pMapSeries(log, async (logItem) => {\n const component = await this.workspace.get(id.changeVersion(logItem.tag || logItem.hash));\n const depList = this.dependencyResolver.getDependencies(component);\n const dependency = depList.findByPkgNameOrCompId(depName);\n if (dependency && dependency.version === lastVersion) {\n return;\n }\n let version: string;\n if (!dependency) {\n if (!lastVersion) return;\n version = '<REMOVED>';\n } else {\n version = dependency.version;\n }\n if (!dependency || dependency.version === lastVersion) return;\n lastVersion = dependency.version;\n blameResults.push({\n snap: logItem.hash,\n tag: logItem.tag,\n author: logItem.username || '<N/A>',\n date: logItem.date ? moment(new Date(parseInt(logItem.date))).format('YYYY-MM-DD HH:mm:ss') : '<N/A>',\n message: logItem.message,\n version,\n });\n });\n return blameResults;\n }\n\n async usageDeep(depName: string, opts?: { depth?: number }): Promise<string | undefined> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (!isComponentId(depName)) {\n return this.dependencyResolver.getPackageManager()?.findUsages?.(depName, {\n lockfileDir: this.workspace.path,\n depth: opts?.depth,\n });\n }\n return undefined;\n }\n\n /**\n * @param depName either component-id-string or package-name (of the component or not component)\n * @returns a map of component-id-string to the version of the dependency\n */\n async usage(depName: string): Promise<{ [compIdStr: string]: string }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const [name, version] = this.splitPkgToNameAndVer(depName);\n const allComps = await this.workspace.list();\n const results = {};\n await Promise.all(\n allComps.map(async (comp) => {\n const depList = this.dependencyResolver.getDependencies(comp);\n const dependency = depList.findByPkgNameOrCompId(name, version);\n if (dependency) {\n results[comp.id.toString()] = dependency.version;\n }\n })\n );\n return results;\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, snapToSemver(versionResolved)];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n DevFilesAspect,\n AspectLoaderAspect,\n ScopeAspect,\n GraphAspect,\n LoggerAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain,\n LoggerMain,\n ]) {\n const logger = loggerMain.createLogger(DependenciesAspect.id);\n const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph, logger);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [\n new DependenciesGetCmd(depsMain),\n new DependenciesRemoveCmd(depsMain),\n new DependenciesUnsetCmd(depsMain),\n new DependenciesDebugCmd(depsMain),\n new DependenciesSetCmd(depsMain),\n new DependenciesResetCmd(depsMain),\n new DependenciesEjectCmd(depsMain),\n new DependenciesBlameCmd(depsMain),\n new DependenciesUsageCmd(depsMain),\n new DependenciesWriteCmd(workspace),\n ];\n cli.register(\n depsCmd,\n new WhyCmd(depsMain),\n new SetPeerCmd(depsMain),\n new UnsetPeerCmd(depsMain),\n new DependentsCmd(workspace)\n );\n\n ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);\n\n return depsMain;\n }\n}\n\nfunction isComponentId(depName: string) {\n return depName.includes('/') && depName[0] !== '@';\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_cli","data","require","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_fsExtra","_path","_semver","_lodash","_pMapSeries","_legacy","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","_logger","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","compareVersions","a","b","semver","valid","compare","localeCompare","DependenciesMain","constructor","workspace","scope","dependencyResolver","devFiles","aspectLoader","graph","logger","setPeer","componentId","range","compId","resolveComponentId","config","peer","defaultPeerRange","addSpecificComponentConfig","DependencyResolverAspect","id","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","unsetPeer","getAspectConfigForComponent","addComponentConfig","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","optional","policy","changedComps","toStringWithoutVersion","addedPackages","removeDependency","removeOnlyIfExists","getLifeCycle","results","pMapSeries","component","get","missingPackages","uniq","state","issues","getIssueByName","d","flat","depList","getDependencies","getCurrentConfig","currentConfigFromWorkspace","getSpecificComponentConfig","extFromScope","getExtensionsFromScopeAndSpecific","toConfigObject","currentDepResolverConfig","newDepResolverConfig","cloneDeep","depField","KEY_NAME_BY_LIFECYCLE_TYPE","removedPackagesWithNulls","splitPkgToNameAndVer","dependency","findByPkgNameOrCompId","includes","set","depName","getPackageName","existsInSpecificConfig","removedPackages","compact","reset","eject","factory","comp","compIdWithVer","getGraphIds","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","OutsideWorkspaceError","consumerComponent","_consumer","cacheResolvedDependencies","useDependenciesCache","missingPackageDependencies","manuallyAddedDependencies","manuallyRemovedDependencies","overridesDependencies","sources","dep","source","debugDependenciesData","coreAspects","blame","compName","log","getLogs","blameResults","lastVersion","logItem","changeVersion","tag","hash","snap","author","username","date","moment","Date","parseInt","format","message","usageDeep","isComponentId","getPackageManager","findUsages","lockfileDir","path","depth","undefined","usage","allComps","list","toString","diagnose","componentCount","pnpmDir","join","pnpmDirExists","fs","pathExists","Error","pnpmEntries","readdir","pnpmPackageCopies","Map","pnpmStoreEntries","entry","startsWith","pkgName","parsePnpmDirPackageName","uniquePackages","size","duplicatedPackages","Array","from","values","c","packageVersionMap","versions","Set","lifecycles","add","lifecycle","versionSpread","entries","versionCount","sort","installedCopies","impact","packageName","slice","peerPermutations","has","dirName","plusIdx","indexOf","substring","rest","atIdx","diagnoseDrillDown","pnpmPrefix","replace","pnpmDirs","afterName","underscoreIdx","peerSuffix","rawPeerSuffix","peerSegments","split","Boolean","seg","resolveLatest","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","versionResolved","snapToSemver","packageSplit","provider","cli","depsResolver","loggerMain","createLogger","DependenciesAspect","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesRemoveCmd","DependenciesUnsetCmd","DependenciesDebugCmd","DependenciesSetCmd","DependenciesResetCmd","DependenciesEjectCmd","DependenciesBlameCmd","DependenciesUsageCmd","DependenciesDiagnoseCmd","DependenciesWriteCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport moment from 'moment';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, KEY_NAME_BY_LIFECYCLE_TYPE } from '@teambit/dependency-resolver';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport semver from 'semver';\nimport { cloneDeep, compact, set, uniq } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport type { ConsumerComponent, DependencyLoaderOpts } from '@teambit/legacy.consumer-component';\nimport { ComponentLoader } from '@teambit/legacy.consumer-component';\nimport type { DevFilesMain } from '@teambit/dev-files';\nimport { DevFilesAspect } from '@teambit/dev-files';\nimport type { ComponentIdGraph, GraphMain } from '@teambit/graph';\nimport { GraphAspect } from '@teambit/graph';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport { DependenciesLoader } from './dependencies-loader/dependencies-loader';\nimport type { DependenciesData, OverridesDependenciesData } from './dependencies-loader/dependencies-data';\nimport type { RemoveDependenciesFlags, SetDependenciesFlags } from './dependencies-cmd';\nimport {\n DependenciesBlameCmd,\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesDiagnoseCmd,\n DependenciesEjectCmd,\n DependenciesGetCmd,\n DependenciesRemoveCmd,\n DependenciesResetCmd,\n DependenciesSetCmd,\n DependenciesUnsetCmd,\n DependenciesUsageCmd,\n DependenciesWriteCmd,\n SetPeerCmd,\n UnsetPeerCmd,\n WhyCmd,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\nimport type { DebugDependencies } from './dependencies-loader/auto-detect-deps';\nimport { DependentsCmd } from './dependents-cmd';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport type RemoveDependencyResult = { id: ComponentID; removedPackages: string[] };\nexport type SetDependenciesResult = { changedComps: string[]; addedPackages: Record<string, string> };\nexport type DependenciesResultsDebug = DebugDependencies &\n OverridesDependenciesData & { coreAspects: string[]; sources: { id: string; source: string }[] };\n\nexport type DependenciesResults = {\n graph: ComponentIdGraph;\n id: ComponentID;\n};\n\nexport type BlameResult = {\n snap: string;\n tag?: string;\n author: string;\n date: string;\n message: string;\n version: string;\n};\n\nexport interface DiagnosisReport {\n componentCount: number;\n /** total directories in node_modules/.pnpm — the actual installed copies on disk */\n pnpmStoreEntries: number;\n /** unique package names (regardless of version/peer combo) */\n uniquePackages: number;\n /** packages that appear in more than one .pnpm directory (version spread + peer permutations) */\n duplicatedPackages: number;\n versionSpread: Array<{\n packageName: string;\n /** how many distinct versions exist across components */\n versionCount: number;\n versions: string[];\n /** how many actual .pnpm directories this package has (includes peer permutations) */\n installedCopies: number;\n impact: 'HIGH' | 'MEDIUM' | 'LOW';\n }>;\n peerPermutations: Array<{\n packageName: string;\n versions: string[];\n }>;\n}\n\n/** Compare two version strings: semver-aware when both are valid, lexicographic otherwise. */\nfunction compareVersions(a: string, b: string): number {\n return semver.valid(a) && semver.valid(b) ? semver.compare(a, b) : a.localeCompare(b);\n}\n\nexport class DependenciesMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private dependencyResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain,\n private graph: GraphMain,\n private logger: Logger\n ) {}\n\n async setPeer(componentId: string, range?: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n const config = { peer: true, defaultPeerRange: range };\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n\n await this.workspace.bitMap.write(`set-peer (${componentId})`);\n }\n\n async unsetPeer(componentId: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n // const config = { peer: true, defaultPeerRange: range };\n const config = await this.workspace.getAspectConfigForComponent(compId, DependencyResolverAspect.id);\n if (config) {\n if ('peer' in config) {\n delete config.peer;\n }\n if ('defaultPeerRange' in config) {\n delete config.defaultPeerRange;\n }\n }\n this.workspace.bitMap.addComponentConfig(compId, DependencyResolverAspect.id, config);\n\n await this.workspace.bitMap.write(`unset-peer (${componentId})`);\n }\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags = {}\n ): Promise<SetDependenciesResult> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n if (options.optional) {\n packagesObj[name] = { optional: true, version };\n } else {\n packagesObj[name] = version;\n }\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n\n await this.workspace.bitMap.write(`deps-set (${componentPattern})`);\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n async removeDependency(\n componentPattern: string,\n packages: string[],\n options: RemoveDependenciesFlags = {},\n removeOnlyIfExists = false // unset\n ): Promise<RemoveDependencyResult[]> {\n const getLifeCycle = () => {\n if (options.dev) return 'dev';\n if (options.peer) return 'peer';\n return 'runtime';\n };\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const results = await pMapSeries(compIds, async (compId) => {\n const component = await this.workspace.get(compId);\n const missingPackages = uniq(\n component.state.issues\n .getIssueByName('MissingPackagesDependenciesOnFs')\n ?.data.map((d) => d.missingPackages)\n .flat() || []\n );\n const depList = this.dependencyResolver.getDependencies(component);\n const getCurrentConfig = async () => {\n const currentConfigFromWorkspace = await this.workspace.getSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id\n );\n if (currentConfigFromWorkspace) return currentConfigFromWorkspace;\n const extFromScope = await this.workspace.getExtensionsFromScopeAndSpecific(compId);\n return extFromScope?.toConfigObject()[DependencyResolverAspect.id];\n };\n const currentDepResolverConfig = await getCurrentConfig();\n const newDepResolverConfig = cloneDeep(currentDepResolverConfig || {});\n const depField = KEY_NAME_BY_LIFECYCLE_TYPE[getLifeCycle()];\n const removedPackagesWithNulls = await pMapSeries(packages, async (pkg) => {\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const dependency = depList.findByPkgNameOrCompId(name, version, getLifeCycle());\n if (!dependency) {\n if (!missingPackages.includes(name)) return null;\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, name], '-');\n return `${name}@${version || 'latest'}`;\n }\n const depName = dependency.getPackageName?.() || dependency.id;\n\n const existsInSpecificConfig = newDepResolverConfig.policy?.[depField]?.[depName];\n if (existsInSpecificConfig) {\n if (existsInSpecificConfig === '-') return null;\n delete newDepResolverConfig.policy[depField][depName];\n } else {\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, depName], '-');\n }\n return `${depName}@${dependency.version}`;\n });\n const removedPackages = compact(removedPackagesWithNulls);\n if (!removedPackages.length) return null;\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, newDepResolverConfig);\n return { id: compId, removedPackages };\n });\n await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);\n\n return compact(results);\n }\n\n async reset(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, { policy: {} });\n });\n await this.workspace.bitMap.write(`deps-reset (${componentPattern})`);\n\n return compIds;\n }\n\n async eject(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id,\n {},\n {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n }\n );\n });\n await this.workspace.bitMap.write(`deps-eject (${componentPattern})`);\n\n return compIds;\n }\n\n async getDependencies(id: string, scope?: boolean): Promise<DependenciesResults> {\n const factory = this.workspace && !scope ? this.workspace : this.scope;\n const compId = await (this.workspace || this.scope).resolveComponentId(id);\n const comp = await (this.workspace || this.scope).get(compId);\n const compIdWithVer = comp.id;\n const graph = await this.graph.getGraphIds([compIdWithVer], { host: factory as any });\n\n return { graph, id: compIdWithVer };\n }\n\n async loadDependencies(component: ConsumerComponent, opts: DependencyLoaderOpts) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.load(this.workspace, opts);\n }\n\n /**\n * load dependencies without the need for the workspace.\n * the \"auto-detect\" are passed here as \"dependenciesData\". the \"overrides\", such as dependencies from the env,\n * are calculated here.\n * eventually all these dependencies are added to the ConsumerComponent object.\n */\n async loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.loadFromScope(dependenciesData);\n }\n\n async debugDependencies(id: string): Promise<DependenciesResultsDebug> {\n // @todo: supports this on bare-scope.\n if (!this.workspace) throw new OutsideWorkspaceError();\n const compId = await this.workspace.resolveComponentId(id);\n const component = await this.workspace.get(compId);\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = await this.loadDependencies(consumerComponent, {\n cacheResolvedDependencies: {},\n useDependenciesCache: false,\n });\n\n const { missingPackageDependencies, manuallyAddedDependencies, manuallyRemovedDependencies } =\n dependenciesData.overridesDependencies;\n\n const results = this.dependencyResolver.getDependencies(component);\n const sources = results.map((dep) => ({ id: dep.id, source: dep.source }));\n\n return {\n ...dependenciesData.debugDependenciesData,\n manuallyRemovedDependencies,\n manuallyAddedDependencies,\n missingPackageDependencies,\n coreAspects: dependenciesData.dependenciesData.coreAspects,\n sources,\n };\n }\n\n /**\n * helps determine what snap/tag changed a specific dependency.\n * the results are sorted from the oldest to newest.\n */\n async blame(compName: string, depName: string) {\n const id = await this.workspace.resolveComponentId(compName);\n const log = await this.workspace.scope.getLogs(id);\n const blameResults: BlameResult[] = [];\n let lastVersion = '';\n await pMapSeries(log, async (logItem) => {\n const component = await this.workspace.get(id.changeVersion(logItem.tag || logItem.hash));\n const depList = this.dependencyResolver.getDependencies(component);\n const dependency = depList.findByPkgNameOrCompId(depName);\n if (dependency && dependency.version === lastVersion) {\n return;\n }\n let version: string;\n if (!dependency) {\n if (!lastVersion) return;\n version = '<REMOVED>';\n } else {\n version = dependency.version;\n }\n if (!dependency || dependency.version === lastVersion) return;\n lastVersion = dependency.version;\n blameResults.push({\n snap: logItem.hash,\n tag: logItem.tag,\n author: logItem.username || '<N/A>',\n date: logItem.date ? moment(new Date(parseInt(logItem.date))).format('YYYY-MM-DD HH:mm:ss') : '<N/A>',\n message: logItem.message,\n version,\n });\n });\n return blameResults;\n }\n\n async usageDeep(depName: string, opts?: { depth?: number }): Promise<string | undefined> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (!isComponentId(depName)) {\n return this.dependencyResolver.getPackageManager()?.findUsages?.(depName, {\n lockfileDir: this.workspace.path,\n depth: opts?.depth,\n });\n }\n return undefined;\n }\n\n /**\n * @param depName either component-id-string or package-name (of the component or not component)\n * @returns a map of component-id-string to the version of the dependency\n */\n async usage(depName: string): Promise<{ [compIdStr: string]: string }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const [name, version] = this.splitPkgToNameAndVer(depName);\n const allComps = await this.workspace.list();\n const results = {};\n await Promise.all(\n allComps.map(async (comp) => {\n const depList = this.dependencyResolver.getDependencies(comp);\n const dependency = depList.findByPkgNameOrCompId(name, version);\n if (dependency) {\n results[comp.id.toString()] = dependency.version;\n }\n })\n );\n return results;\n }\n\n /**\n * Analyze the workspace's installed dependencies to detect bloat and duplication.\n * Scans node_modules/.pnpm for ground truth on actual installed copies.\n * Only works with pnpm-managed workspaces.\n */\n async diagnose(): Promise<DiagnosisReport> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const allComps = await this.workspace.list();\n const componentCount = allComps.length;\n\n // 1. Scan node_modules/.pnpm for ground truth — each directory is an actual installed copy\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const pnpmEntries = await fs.readdir(pnpmDir);\n\n const pnpmPackageCopies = new Map<string, number>();\n let pnpmStoreEntries = 0;\n for (const entry of pnpmEntries) {\n if (entry.startsWith('.') || entry === 'node_modules') continue;\n pnpmStoreEntries++;\n const pkgName = this.parsePnpmDirPackageName(entry);\n if (pkgName) {\n pnpmPackageCopies.set(pkgName, (pnpmPackageCopies.get(pkgName) || 0) + 1);\n }\n }\n\n const uniquePackages = pnpmPackageCopies.size;\n const duplicatedPackages = Array.from(pnpmPackageCopies.values()).filter((c) => c > 1).length;\n\n // 2. Collect component-level dep info (for version spread + peer lifecycle detection)\n const packageVersionMap = new Map<string, { versions: Set<string>; lifecycles: Set<string> }>();\n for (const comp of allComps) {\n const depList = this.dependencyResolver.getDependencies(comp);\n depList.forEach((dep) => {\n const pkgName = dep.getPackageName?.() || dep.id;\n let entry = packageVersionMap.get(pkgName);\n if (!entry) {\n entry = { versions: new Set(), lifecycles: new Set() };\n packageVersionMap.set(pkgName, entry);\n }\n entry.versions.add(dep.version);\n entry.lifecycles.add(dep.lifecycle);\n });\n }\n\n // 3. Version spread — packages with the most distinct versions, enriched with .pnpm copy count\n const versionSpread = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.versions.size > 1)\n .map(([pkgName, data]) => {\n const versionCount = data.versions.size;\n const versions = Array.from(data.versions).sort(compareVersions);\n const installedCopies = pnpmPackageCopies.get(pkgName) || versionCount;\n const impact: 'HIGH' | 'MEDIUM' | 'LOW' =\n installedCopies >= 10 ? 'HIGH' : installedCopies >= 5 ? 'MEDIUM' : 'LOW';\n return { packageName: pkgName, versionCount, versions, installedCopies, impact };\n })\n .sort((a, b) => b.installedCopies - a.installedCopies)\n .slice(0, 30);\n\n // 4. Peer deps with multiple versions\n const peerPermutations = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1)\n .map(([pkgName, data]) => ({\n packageName: pkgName,\n versions: Array.from(data.versions).sort(compareVersions),\n }))\n .sort((a, b) => b.versions.length - a.versions.length);\n\n return {\n componentCount,\n pnpmStoreEntries,\n uniquePackages,\n duplicatedPackages,\n versionSpread,\n peerPermutations,\n };\n }\n\n /**\n * Parse a .pnpm directory name to extract the package name.\n * Format: @scope+name@version_peers... or name@version_peers...\n */\n private parsePnpmDirPackageName(dirName: string): string | null {\n if (dirName.startsWith('@')) {\n // Scoped package: @scope+name@version...\n const plusIdx = dirName.indexOf('+');\n if (plusIdx === -1) return null;\n const scope = dirName.substring(0, plusIdx);\n const rest = dirName.substring(plusIdx + 1);\n const atIdx = rest.indexOf('@');\n if (atIdx === -1) return null;\n const name = rest.substring(0, atIdx);\n return `${scope}/${name}`;\n }\n // Regular package: name@version...\n const atIdx = dirName.indexOf('@');\n if (atIdx === -1) return null;\n return dirName.substring(0, atIdx);\n }\n\n /** Inspect all .pnpm entries for a specific package, showing each installed copy and its peer combo. */\n async diagnoseDrillDown(\n packageName: string\n ): Promise<{ packageName: string; pnpmDirs: Array<{ version: string; peerSuffix: string | null }> }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose --package\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const entries = await fs.readdir(pnpmDir);\n\n // Convert package name to .pnpm format: @scope/name → @scope+name\n const pnpmPrefix = packageName.replace('/', '+');\n\n const pnpmDirs: Array<{ version: string; peerSuffix: string | null }> = [];\n for (const entry of entries) {\n if (!entry.startsWith(pnpmPrefix + '@')) continue;\n // Extract version and peer suffix from: @scope+name@version_peer1@ver_peer2@ver\n const afterName = entry.substring(pnpmPrefix.length + 1); // skip \"name@\"\n const underscoreIdx = afterName.indexOf('_');\n if (underscoreIdx === -1) {\n pnpmDirs.push({ version: afterName, peerSuffix: null });\n } else {\n const version = afterName.substring(0, underscoreIdx);\n const rawPeerSuffix = afterName.substring(underscoreIdx + 1);\n const peerSegments = rawPeerSuffix.split('_').filter(Boolean);\n const peerSuffix = peerSegments.map((seg) => seg.replace(/\\+/g, '/')).join(' + ') || null;\n pnpmDirs.push({ version, peerSuffix });\n }\n }\n\n pnpmDirs.sort(\n (a, b) => compareVersions(a.version, b.version) || (a.peerSuffix || '').localeCompare(b.peerSuffix || '')\n );\n\n return { packageName, pnpmDirs };\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, snapToSemver(versionResolved)];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n DevFilesAspect,\n AspectLoaderAspect,\n ScopeAspect,\n GraphAspect,\n LoggerAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain,\n LoggerMain,\n ]) {\n const logger = loggerMain.createLogger(DependenciesAspect.id);\n const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph, logger);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [\n new DependenciesGetCmd(depsMain),\n new DependenciesRemoveCmd(depsMain),\n new DependenciesUnsetCmd(depsMain),\n new DependenciesDebugCmd(depsMain),\n new DependenciesSetCmd(depsMain),\n new DependenciesResetCmd(depsMain),\n new DependenciesEjectCmd(depsMain),\n new DependenciesBlameCmd(depsMain),\n new DependenciesUsageCmd(depsMain),\n new DependenciesDiagnoseCmd(depsMain),\n new DependenciesWriteCmd(workspace),\n ];\n cli.register(\n depsCmd,\n new WhyCmd(depsMain),\n new SetPeerCmd(depsMain),\n new UnsetPeerCmd(depsMain),\n new DependentsCmd(workspace)\n );\n\n ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);\n\n return depsMain;\n }\n}\n\nfunction isComponentId(depName: string) {\n return depName.includes('/') && depName[0] !== '@';\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/dependencies",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.877",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/dependencies/dependencies",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.dependencies",
|
|
8
8
|
"name": "dependencies",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.877"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"archy": "1.0.0",
|
|
13
13
|
"chalk": "4.1.2",
|
|
14
14
|
"cli-table": "0.3.6",
|
|
15
|
+
"fs-extra": "10.0.0",
|
|
15
16
|
"lodash": "4.17.21",
|
|
16
17
|
"moment": "2.29.4",
|
|
17
18
|
"p-map-series": "2.1.0",
|
|
19
|
+
"semver": "7.7.1",
|
|
18
20
|
"read-pkg-up": "7.0.1",
|
|
19
21
|
"table": "6.7.3",
|
|
20
|
-
"fs-extra": "10.0.0",
|
|
21
|
-
"semver": "7.7.1",
|
|
22
22
|
"debug": "4.3.4",
|
|
23
23
|
"resolve-dependency-path": "2.0.0",
|
|
24
24
|
"stylus-lookup": "3.0.2",
|
|
@@ -55,17 +55,17 @@
|
|
|
55
55
|
"@teambit/styling.deps-detectors.detective-sass": "0.0.9",
|
|
56
56
|
"@teambit/styling.deps-detectors.detective-scss": "0.0.9",
|
|
57
57
|
"@teambit/typescript.deps-detectors.detective-typescript": "0.0.10",
|
|
58
|
-
"@teambit/graph": "1.0.
|
|
59
|
-
"@teambit/workspace": "1.0.
|
|
60
|
-
"@teambit/aspect-loader": "1.0.
|
|
61
|
-
"@teambit/dependency-resolver": "1.0.
|
|
62
|
-
"@teambit/dev-files": "1.0.
|
|
63
|
-
"@teambit/scope": "1.0.
|
|
58
|
+
"@teambit/graph": "1.0.877",
|
|
59
|
+
"@teambit/workspace": "1.0.877",
|
|
60
|
+
"@teambit/aspect-loader": "1.0.877",
|
|
61
|
+
"@teambit/dependency-resolver": "1.0.877",
|
|
62
|
+
"@teambit/dev-files": "1.0.877",
|
|
63
|
+
"@teambit/scope": "1.0.877"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/cli-table": "^0.3.0",
|
|
67
|
-
"@types/lodash": "4.14.165",
|
|
68
67
|
"@types/fs-extra": "9.0.7",
|
|
68
|
+
"@types/lodash": "4.14.165",
|
|
69
69
|
"@types/semver": "7.5.8",
|
|
70
70
|
"rewire": "7.0.0",
|
|
71
71
|
"sinon": "17.0.1",
|
|
File without changes
|