@lerna-lite/core 1.1.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +3 -3
  2. package/dist/child-process.d.ts +62 -62
  3. package/dist/child-process.js +165 -165
  4. package/dist/command.d.ts +37 -35
  5. package/dist/command.js +262 -262
  6. package/dist/command.js.map +1 -1
  7. package/dist/conventional-commits/constants.d.ts +4 -4
  8. package/dist/conventional-commits/constants.js +12 -12
  9. package/dist/conventional-commits/get-changelog-config.d.ts +12 -12
  10. package/dist/conventional-commits/get-changelog-config.js +98 -98
  11. package/dist/conventional-commits/index.d.ts +6 -6
  12. package/dist/conventional-commits/index.js +22 -22
  13. package/dist/conventional-commits/make-bump-only-filter.d.ts +6 -6
  14. package/dist/conventional-commits/make-bump-only-filter.js +22 -22
  15. package/dist/conventional-commits/read-existing-changelog.d.ts +7 -7
  16. package/dist/conventional-commits/read-existing-changelog.js +32 -32
  17. package/dist/conventional-commits/recommend-version.d.ts +11 -10
  18. package/dist/conventional-commits/recommend-version.js +86 -86
  19. package/dist/conventional-commits/recommend-version.js.map +1 -1
  20. package/dist/conventional-commits/update-changelog.d.ts +11 -11
  21. package/dist/conventional-commits/update-changelog.js +83 -83
  22. package/dist/git-clients/GitLabClient.d.ts +8 -8
  23. package/dist/git-clients/GitLabClient.js +39 -39
  24. package/dist/git-clients/github-client.d.ts +6 -6
  25. package/dist/git-clients/github-client.js +40 -40
  26. package/dist/git-clients/gitlab-client.d.ts +6 -6
  27. package/dist/git-clients/gitlab-client.js +21 -21
  28. package/dist/git-clients/index.d.ts +2 -2
  29. package/dist/git-clients/index.js +18 -18
  30. package/dist/index.d.ts +12 -12
  31. package/dist/index.js +30 -30
  32. package/dist/models/command-options.d.ts +206 -0
  33. package/dist/models/command-options.js +3 -0
  34. package/dist/models/command-options.js.map +1 -0
  35. package/dist/models/index.d.ts +2 -148
  36. package/dist/models/index.js +18 -2
  37. package/dist/models/index.js.map +1 -1
  38. package/dist/models/interfaces.d.ts +201 -0
  39. package/dist/models/interfaces.js +3 -0
  40. package/dist/models/interfaces.js.map +1 -0
  41. package/dist/otplease.d.ts +14 -13
  42. package/dist/otplease.js +108 -112
  43. package/dist/otplease.js.map +1 -1
  44. package/dist/package-graph/index.d.ts +2 -2
  45. package/dist/package-graph/index.js +18 -18
  46. package/dist/package-graph/lib/cyclic-package-graph-node.d.ts +42 -42
  47. package/dist/package-graph/lib/cyclic-package-graph-node.js +97 -97
  48. package/dist/package-graph/lib/index.d.ts +3 -3
  49. package/dist/package-graph/lib/index.js +19 -19
  50. package/dist/package-graph/lib/package-graph-node.d.ts +33 -33
  51. package/dist/package-graph/lib/package-graph-node.js +58 -58
  52. package/dist/package-graph/lib/report-cycles.d.ts +1 -1
  53. package/dist/package-graph/lib/report-cycles.js +19 -19
  54. package/dist/package-graph/package-graph.d.ts +79 -79
  55. package/dist/package-graph/package-graph.js +276 -248
  56. package/dist/package-graph/package-graph.js.map +1 -1
  57. package/dist/package.d.ts +91 -96
  58. package/dist/package.js +282 -260
  59. package/dist/package.js.map +1 -1
  60. package/dist/project/index.d.ts +2 -2
  61. package/dist/project/index.js +18 -18
  62. package/dist/project/lib/apply-extends.d.ts +10 -6
  63. package/dist/project/lib/apply-extends.js +37 -37
  64. package/dist/project/lib/apply-extends.js.map +1 -1
  65. package/dist/project/lib/index.d.ts +3 -3
  66. package/dist/project/lib/index.js +19 -19
  67. package/dist/project/lib/make-file-finder.d.ts +3 -3
  68. package/dist/project/lib/make-file-finder.js +71 -71
  69. package/dist/project/lib/shallow-extend.d.ts +11 -5
  70. package/dist/project/lib/shallow-extend.js +24 -24
  71. package/dist/project/lib/shallow-extend.js.map +1 -1
  72. package/dist/project/project.d.ts +45 -51
  73. package/dist/project/project.js +198 -197
  74. package/dist/project/project.js.map +1 -1
  75. package/dist/prompt.d.ts +23 -23
  76. package/dist/prompt.js +75 -75
  77. package/dist/utils/check-working-tree.d.ts +8 -8
  78. package/dist/utils/check-working-tree.js +41 -41
  79. package/dist/utils/clean-stack.d.ts +5 -5
  80. package/dist/utils/clean-stack.js +18 -18
  81. package/dist/utils/collect-uncommitted.d.ts +18 -19
  82. package/dist/utils/collect-uncommitted.js +40 -45
  83. package/dist/utils/collect-uncommitted.js.map +1 -1
  84. package/dist/utils/collect-updates/collect-updates.d.ts +11 -11
  85. package/dist/utils/collect-updates/collect-updates.js +82 -82
  86. package/dist/utils/collect-updates/index.d.ts +2 -2
  87. package/dist/utils/collect-updates/index.js +18 -18
  88. package/dist/utils/collect-updates/lib/collect-dependents.d.ts +11 -11
  89. package/dist/utils/collect-updates/lib/collect-dependents.js +45 -45
  90. package/dist/utils/collect-updates/lib/collect-packages.d.ts +13 -13
  91. package/dist/utils/collect-updates/lib/collect-packages.js +33 -33
  92. package/dist/utils/collect-updates/lib/get-packages-for-option.d.ts +5 -5
  93. package/dist/utils/collect-updates/lib/get-packages-for-option.js +30 -30
  94. package/dist/utils/collect-updates/lib/has-tags.d.ts +5 -5
  95. package/dist/utils/collect-updates/lib/has-tags.js +26 -26
  96. package/dist/utils/collect-updates/lib/index.d.ts +5 -5
  97. package/dist/utils/collect-updates/lib/index.js +21 -21
  98. package/dist/utils/collect-updates/lib/make-diff-predicate.d.ts +7 -7
  99. package/dist/utils/collect-updates/lib/make-diff-predicate.js +64 -64
  100. package/dist/utils/conf.d.ts +25 -25
  101. package/dist/utils/conf.js +255 -255
  102. package/dist/utils/defaults.d.ts +1 -1
  103. package/dist/utils/defaults.js +182 -182
  104. package/dist/utils/defaults.js.map +1 -1
  105. package/dist/utils/describe-ref.d.ts +37 -37
  106. package/dist/utils/describe-ref.js +80 -80
  107. package/dist/utils/env-replace.d.ts +1 -1
  108. package/dist/utils/env-replace.js +22 -22
  109. package/dist/utils/find-prefix.d.ts +2 -2
  110. package/dist/utils/find-prefix.js +48 -48
  111. package/dist/utils/index.d.ts +23 -22
  112. package/dist/utils/index.js +39 -38
  113. package/dist/utils/index.js.map +1 -1
  114. package/dist/utils/log-package-error.d.ts +5 -5
  115. package/dist/utils/log-package-error.js +35 -35
  116. package/dist/utils/nerf-dart.d.ts +1 -1
  117. package/dist/utils/nerf-dart.js +18 -18
  118. package/dist/utils/npm-conf.d.ts +4 -4
  119. package/dist/utils/npm-conf.js +55 -55
  120. package/dist/utils/output.d.ts +1 -1
  121. package/dist/utils/output.js +13 -13
  122. package/dist/utils/parse-field.d.ts +1 -1
  123. package/dist/utils/parse-field.js +65 -65
  124. package/dist/utils/prerelease-id-from-version.d.ts +5 -5
  125. package/dist/utils/prerelease-id-from-version.js +15 -15
  126. package/dist/utils/pulse-till-done.d.ts +1 -1
  127. package/dist/utils/pulse-till-done.js +40 -40
  128. package/dist/utils/query-graph.d.ts +36 -36
  129. package/dist/utils/query-graph.js +77 -77
  130. package/dist/utils/query-graph.js.map +1 -1
  131. package/dist/utils/run-lifecycle.d.ts +10 -10
  132. package/dist/utils/run-lifecycle.js +131 -107
  133. package/dist/utils/run-lifecycle.js.map +1 -1
  134. package/dist/utils/run-topologically.d.ts +12 -12
  135. package/dist/utils/run-topologically.js +36 -36
  136. package/dist/utils/temp-write.d.ts +13 -0
  137. package/dist/utils/temp-write.js +50 -0
  138. package/dist/utils/temp-write.js.map +1 -0
  139. package/dist/utils/types.d.ts +131 -129
  140. package/dist/utils/types.js +138 -138
  141. package/dist/utils/warn-if-hanging.d.ts +1 -1
  142. package/dist/utils/warn-if-hanging.js +17 -17
  143. package/dist/utils/write-log-file.d.ts +1 -1
  144. package/dist/utils/write-log-file.js +32 -32
  145. package/dist/validation-error.d.ts +4 -4
  146. package/dist/validation-error.js +18 -18
  147. package/package.json +14 -10
@@ -1,249 +1,277 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PackageGraph = void 0;
7
- const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
8
- const lib_1 = require("./lib");
9
- const validation_error_1 = require("../validation-error");
10
- /**
11
- * A graph of packages in the current project.
12
- *
13
- * @extends {Map<string, PackageGraphNode>}
14
- */
15
- class PackageGraph extends Map {
16
- /**
17
- * @param {import("@lerna/package").Package[]} packages An array of Packages to build the graph out of.
18
- * @param {'allDependencies'|'dependencies'} [graphType]
19
- * Pass "dependencies" to create a graph of only dependencies,
20
- * excluding the devDependencies that would normally be included.
21
- * @param {boolean} [forceLocal] Force all local dependencies to be linked.
22
- */
23
- constructor(packages, graphType = 'allDependencies', forceLocal) {
24
- // @ts-ignore
25
- super(packages.map((pkg) => { var _a; return [(_a = pkg === null || pkg === void 0 ? void 0 : pkg.name) !== null && _a !== void 0 ? _a : '', new lib_1.PackageGraphNode(pkg)]; }));
26
- if (packages.length !== this.size) {
27
- // weed out the duplicates
28
- const seen = new Map();
29
- for (const { name, location } of packages) {
30
- if (seen.has(name)) {
31
- seen.get(name).push(location);
32
- }
33
- else {
34
- seen.set(name, [location]);
35
- }
36
- }
37
- for (const [name, locations] of seen) {
38
- if (locations.length > 1) {
39
- throw new validation_error_1.ValidationError('ENAME', [`Package name "${name}" used in multiple packages:`, ...locations].join('\n\t'));
40
- }
41
- }
42
- }
43
- this.forEach((currentNode, currentName) => {
44
- const graphDependencies = graphType === 'dependencies'
45
- ? Object.assign({}, currentNode.pkg.optionalDependencies, currentNode.pkg.dependencies)
46
- : Object.assign({}, currentNode.pkg.devDependencies, currentNode.pkg.optionalDependencies, currentNode.pkg.dependencies);
47
- Object.keys(graphDependencies).forEach((depName) => {
48
- const depNode = this.get(depName);
49
- // Yarn decided to ignore https://github.com/npm/npm/pull/15900 and implemented "link:"
50
- // As they apparently have no intention of being compatible, we have to do it for them.
51
- // @see https://github.com/yarnpkg/yarn/issues/4212
52
- const spec = graphDependencies[depName].replace(/^link:/, 'file:');
53
- const resolved = npm_package_arg_1.default.resolve(depName, spec, currentNode.location);
54
- if (!depNode) {
55
- // it's an external dependency, store the resolution and bail
56
- return currentNode.externalDependencies.set(depName, resolved);
57
- }
58
- if (forceLocal || resolved.fetchSpec === depNode.location || depNode.satisfies(resolved)) {
59
- // a local file: specifier OR a matching semver
60
- currentNode.localDependencies.set(depName, resolved);
61
- depNode.localDependents.set(currentName, currentNode);
62
- }
63
- else {
64
- // non-matching semver of a local dependency
65
- currentNode.externalDependencies.set(depName, resolved);
66
- }
67
- });
68
- });
69
- }
70
- get rawPackageList() {
71
- return Array.from(this.values()).map((node) => node.pkg);
72
- }
73
- /**
74
- * Takes a list of Packages and returns a list of those same Packages with any Packages
75
- * they depend on. i.e if packageA depended on packageB `graph.addDependencies([packageA])`
76
- * would return [packageA, packageB].
77
- *
78
- * @param {import("@lerna/package").Package[]} filteredPackages The packages to include dependencies for.
79
- */
80
- addDependencies(filteredPackages) {
81
- return this.extendList(filteredPackages, 'localDependencies');
82
- }
83
- /**
84
- * Takes a list of Packages and returns a list of those same Packages with any Packages
85
- * that depend on them. i.e if packageC depended on packageD `graph.addDependents([packageD])`
86
- * would return [packageD, packageC].
87
- *
88
- * @param {import("@lerna/package").Package[]} filteredPackages The packages to include dependents for.
89
- */
90
- addDependents(filteredPackages) {
91
- return this.extendList(filteredPackages, 'localDependents');
92
- }
93
- /**
94
- * Extends a list of packages by traversing on a given property, which must refer to a
95
- * `PackageGraphNode` property that is a collection of `PackageGraphNode`s.
96
- * Returns input packages with any additional packages found by traversing `nodeProp`.
97
- *
98
- * @param {import("@lerna/package").Package[]} packageList The list of packages to extend
99
- * @param {'localDependencies'|'localDependents'} nodeProp The property on `PackageGraphNode` used to traverse
100
- */
101
- extendList(packageList, nodeProp) {
102
- // the current list of packages we are expanding using breadth-first-search
103
- const search = new Set(packageList.map(({ name }) => this.get(name)));
104
- // an intermediate list of matched PackageGraphNodes
105
- /** @type {PackageGraphNode[]} */
106
- const result = [];
107
- search.forEach((currentNode) => {
108
- // anything searched for is always a result
109
- result.push(currentNode);
110
- currentNode[nodeProp].forEach((meta, depName) => {
111
- const depNode = this.get(depName);
112
- if (depNode !== currentNode && !search.has(depNode)) {
113
- search.add(depNode);
114
- }
115
- });
116
- });
117
- // actual Package instances, not PackageGraphNodes
118
- return result.map((node) => node.pkg);
119
- }
120
- /**
121
- * Return a tuple of cycle paths and nodes.
122
- *
123
- * @deprecated Use collapseCycles instead.
124
- *
125
- * @param {boolean} rejectCycles Whether or not to reject cycles
126
- * @returns {[Set<string[]>, Set<PackageGraphNode>]}
127
- */
128
- partitionCycles(rejectCycles) {
129
- const cyclePaths = new Set();
130
- const cycleNodes = new Set();
131
- this.forEach((currentNode, currentName) => {
132
- const seen = new Set();
133
- const visits = (walk) => (dependentNode, dependentName, siblingDependents) => {
134
- const step = walk.concat(dependentName);
135
- if (seen.has(dependentNode)) {
136
- return;
137
- }
138
- seen.add(dependentNode);
139
- if (dependentNode === currentNode) {
140
- // a direct cycle
141
- cycleNodes.add(currentNode);
142
- cyclePaths.add(step);
143
- return;
144
- }
145
- if (siblingDependents.has(currentName)) {
146
- // a transitive cycle
147
- const cycleDependentName = Array.from(dependentNode.localDependencies.keys()).find((key) => currentNode.localDependents.has(key));
148
- const pathToCycle = step.slice().reverse().concat(cycleDependentName);
149
- cycleNodes.add(dependentNode);
150
- cyclePaths.add(pathToCycle);
151
- }
152
- dependentNode.localDependents.forEach(visits(step));
153
- };
154
- currentNode.localDependents.forEach(visits([currentName]));
155
- });
156
- (0, lib_1.reportCycles)(Array.from(cyclePaths, (cycle) => cycle.join(' -> ')), rejectCycles);
157
- return [cyclePaths, cycleNodes];
158
- }
159
- /**
160
- * Returns the cycles of this graph. If two cycles share some elements, they will
161
- * be returned as a single cycle.
162
- *
163
- * @param {boolean} rejectCycles Whether or not to reject cycles
164
- * @returns {Set<CyclicPackageGraphNode>}
165
- */
166
- collapseCycles(rejectCycles) {
167
- const cyclePaths = [];
168
- const nodeToCycle = new Map();
169
- const cycles = new Set();
170
- const alreadyVisited = new Set();
171
- const walkStack = [];
172
- function visits(baseNode, dependentNode) {
173
- if (nodeToCycle.has(baseNode)) {
174
- return;
175
- }
176
- let topLevelDependent = dependentNode;
177
- while (nodeToCycle.has(topLevelDependent)) {
178
- topLevelDependent = nodeToCycle.get(topLevelDependent);
179
- }
180
- // Otherwise the same node is checked multiple times which is very wasteful in a large repository
181
- if (alreadyVisited.has(topLevelDependent)) {
182
- return;
183
- }
184
- alreadyVisited.add(topLevelDependent);
185
- if (topLevelDependent === baseNode ||
186
- (topLevelDependent.isCycle && topLevelDependent.has(baseNode.name))) {
187
- const cycle = new lib_1.CyclicPackageGraphNode();
188
- walkStack.forEach((nodeInCycle) => {
189
- nodeToCycle.set(nodeInCycle, cycle);
190
- cycle.insert(nodeInCycle);
191
- cycles.delete(nodeInCycle);
192
- });
193
- cycles.add(cycle);
194
- // @ts-ignore
195
- cyclePaths.push(cycle.toString());
196
- return;
197
- }
198
- if (walkStack.indexOf(topLevelDependent) === -1) {
199
- // eslint-disable-next-line no-use-before-define
200
- visitWithStack(baseNode, topLevelDependent);
201
- }
202
- }
203
- function visitWithStack(baseNode, currentNode = baseNode) {
204
- walkStack.push(currentNode);
205
- currentNode.localDependents.forEach(visits.bind(null, baseNode));
206
- walkStack.pop();
207
- }
208
- this.forEach((currentNode) => visitWithStack(currentNode));
209
- cycles.forEach((collapsedNode) => visitWithStack(collapsedNode));
210
- (0, lib_1.reportCycles)(cyclePaths, rejectCycles);
211
- return cycles;
212
- }
213
- /**
214
- * Remove cycle nodes.
215
- *
216
- * @deprecated Spread set into prune() instead.
217
- *
218
- * @param {Set<PackageGraphNode>} cycleNodes
219
- */
220
- pruneCycleNodes(cycleNodes) {
221
- return this.prune(...cycleNodes);
222
- }
223
- /**
224
- * Remove all candidate nodes.
225
- * @param {PackageGraphNode[]} candidates
226
- */
227
- prune(...candidates) {
228
- if (candidates.length === this.size) {
229
- return this.clear();
230
- }
231
- candidates.forEach((node) => this.remove(node));
232
- }
233
- /**
234
- * Delete by value (instead of key), as well as removing pointers
235
- * to itself in the other node's internal collections.
236
- * @param {PackageGraphNode} candidateNode instance to remove
237
- */
238
- remove(candidateNode) {
239
- this.delete(candidateNode.name);
240
- this.forEach((node) => {
241
- // remove incoming edges ("indegree")
242
- node.localDependencies.delete(candidateNode.name);
243
- // remove outgoing edges ("outdegree")
244
- node.localDependents.delete(candidateNode.name);
245
- });
246
- }
247
- }
248
- exports.PackageGraph = PackageGraph;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PackageGraph = void 0;
7
+ const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
8
+ const lib_1 = require("./lib");
9
+ const validation_error_1 = require("../validation-error");
10
+ /**
11
+ * A graph of packages in the current project.
12
+ *
13
+ * @extends {Map<string, PackageGraphNode>}
14
+ */
15
+ class PackageGraph extends Map {
16
+ /**
17
+ * @param {import("@lerna/package").Package[]} packages An array of Packages to build the graph out of.
18
+ * @param {'allDependencies'|'dependencies'} [graphType]
19
+ * Pass "dependencies" to create a graph of only dependencies,
20
+ * excluding the devDependencies that would normally be included.
21
+ * @param {boolean|'auto'|'force'|'explicit'} [localDependencies] Treatment of local sibling dependencies, default "auto"
22
+ */
23
+ constructor(packages, graphType = 'allDependencies', localDependencies = 'auto') {
24
+ // For backward compatibility
25
+ if (localDependencies === true || localDependencies === 'forceLocal') {
26
+ localDependencies = 'force'; // eslint-disable-line
27
+ }
28
+ // @ts-ignore
29
+ super(packages.map((pkg) => { var _a; return [(_a = pkg === null || pkg === void 0 ? void 0 : pkg.name) !== null && _a !== void 0 ? _a : '', new lib_1.PackageGraphNode(pkg)]; }));
30
+ if (packages.length !== this.size) {
31
+ // weed out the duplicates
32
+ const seen = new Map();
33
+ for (const { name, location } of packages) {
34
+ if (seen.has(name)) {
35
+ seen.get(name).push(location);
36
+ }
37
+ else {
38
+ seen.set(name, [location]);
39
+ }
40
+ }
41
+ for (const [name, locations] of seen) {
42
+ if (locations.length > 1) {
43
+ throw new validation_error_1.ValidationError('ENAME', [`Package name "${name}" used in multiple packages:`, ...locations].join('\n\t'));
44
+ }
45
+ }
46
+ }
47
+ this.forEach((currentNode, currentName) => {
48
+ const graphDependencies = graphType === 'dependencies'
49
+ ? Object.assign({}, currentNode.pkg.optionalDependencies, currentNode.pkg.dependencies)
50
+ : Object.assign({}, currentNode.pkg.devDependencies, currentNode.pkg.optionalDependencies, currentNode.pkg.dependencies);
51
+ Object.keys(graphDependencies).forEach((depName) => {
52
+ const depNode = this.get(depName);
53
+ // Yarn decided to ignore https://github.com/npm/npm/pull/15900 and implemented "link:"
54
+ // As they apparently have no intention of being compatible, we have to do it for them.
55
+ // @see https://github.com/yarnpkg/yarn/issues/4212
56
+ let spec = graphDependencies[depName].replace(/^link:/, 'file:');
57
+ // npa doesn't support the explicit workspace: protocol, supported by
58
+ // pnpm and Yarn.
59
+ const explicitWorkspace = /^workspace:/.test(spec);
60
+ let workspaceTarget;
61
+ if (explicitWorkspace) {
62
+ workspaceTarget = spec;
63
+ spec = spec.replace(/^workspace:/, '');
64
+ // when dependency is defined as target workspace, like `workspace:*`,
65
+ // we'll have to pull the version from its parent package version property
66
+ // example with `1.5.0`, ws:* => "1.5.0", ws:^ => "^1.5.0", ws:~ => "~1.5.0", ws:^1.5.0 => "^1.5.0"
67
+ if (spec === '*' || spec === '^' || spec === '~') {
68
+ const depPkg = packages.find(pkg => pkg.name === depName);
69
+ const version = depPkg === null || depPkg === void 0 ? void 0 : depPkg.version;
70
+ const specTarget = spec === '*' ? '' : spec;
71
+ spec = depPkg ? `${specTarget}${version}` : '';
72
+ }
73
+ }
74
+ const resolved = npm_package_arg_1.default.resolve(depName, spec, currentNode.location);
75
+ resolved.explicitWorkspace = explicitWorkspace;
76
+ if (resolved.explicitWorkspace) {
77
+ resolved.workspaceTarget = workspaceTarget;
78
+ }
79
+ if (!depNode) {
80
+ // it's an external dependency, store the resolution and bail
81
+ return currentNode.externalDependencies.set(depName, resolved);
82
+ }
83
+ if (explicitWorkspace ||
84
+ localDependencies === 'force' ||
85
+ resolved.fetchSpec === depNode.location ||
86
+ (localDependencies !== 'explicit' && depNode.satisfies(resolved))) {
87
+ // a local file: specifier, a matching semver or a workspace: version
88
+ currentNode.localDependencies.set(depName, resolved);
89
+ depNode.localDependents.set(currentName, currentNode);
90
+ }
91
+ else {
92
+ // non-matching semver of a local dependency
93
+ currentNode.externalDependencies.set(depName, resolved);
94
+ }
95
+ });
96
+ });
97
+ }
98
+ get rawPackageList() {
99
+ return Array.from(this.values()).map((node) => node.pkg);
100
+ }
101
+ /**
102
+ * Takes a list of Packages and returns a list of those same Packages with any Packages
103
+ * they depend on. i.e if packageA depended on packageB `graph.addDependencies([packageA])`
104
+ * would return [packageA, packageB].
105
+ *
106
+ * @param {import("@lerna/package").Package[]} filteredPackages The packages to include dependencies for.
107
+ */
108
+ addDependencies(filteredPackages) {
109
+ return this.extendList(filteredPackages, 'localDependencies');
110
+ }
111
+ /**
112
+ * Takes a list of Packages and returns a list of those same Packages with any Packages
113
+ * that depend on them. i.e if packageC depended on packageD `graph.addDependents([packageD])`
114
+ * would return [packageD, packageC].
115
+ *
116
+ * @param {import("@lerna/package").Package[]} filteredPackages The packages to include dependents for.
117
+ */
118
+ addDependents(filteredPackages) {
119
+ return this.extendList(filteredPackages, 'localDependents');
120
+ }
121
+ /**
122
+ * Extends a list of packages by traversing on a given property, which must refer to a
123
+ * `PackageGraphNode` property that is a collection of `PackageGraphNode`s.
124
+ * Returns input packages with any additional packages found by traversing `nodeProp`.
125
+ *
126
+ * @param {import("@lerna/package").Package[]} packageList The list of packages to extend
127
+ * @param {'localDependencies'|'localDependents'} nodeProp The property on `PackageGraphNode` used to traverse
128
+ */
129
+ extendList(packageList, nodeProp) {
130
+ // the current list of packages we are expanding using breadth-first-search
131
+ const search = new Set(packageList.map(({ name }) => this.get(name)));
132
+ // an intermediate list of matched PackageGraphNodes
133
+ /** @type {PackageGraphNode[]} */
134
+ const result = [];
135
+ search.forEach((currentNode) => {
136
+ // anything searched for is always a result
137
+ result.push(currentNode);
138
+ currentNode[nodeProp].forEach((meta, depName) => {
139
+ const depNode = this.get(depName);
140
+ if (depNode !== currentNode && !search.has(depNode)) {
141
+ search.add(depNode);
142
+ }
143
+ });
144
+ });
145
+ // actual Package instances, not PackageGraphNodes
146
+ return result.map((node) => node.pkg);
147
+ }
148
+ /**
149
+ * Return a tuple of cycle paths and nodes.
150
+ *
151
+ * @deprecated Use collapseCycles instead.
152
+ *
153
+ * @param {boolean} rejectCycles Whether or not to reject cycles
154
+ * @returns {[Set<string[]>, Set<PackageGraphNode>]}
155
+ */
156
+ partitionCycles(rejectCycles) {
157
+ const cyclePaths = new Set();
158
+ const cycleNodes = new Set();
159
+ this.forEach((currentNode, currentName) => {
160
+ const seen = new Set();
161
+ const visits = (walk) => (dependentNode, dependentName, siblingDependents) => {
162
+ const step = walk.concat(dependentName);
163
+ if (seen.has(dependentNode)) {
164
+ return;
165
+ }
166
+ seen.add(dependentNode);
167
+ if (dependentNode === currentNode) {
168
+ // a direct cycle
169
+ cycleNodes.add(currentNode);
170
+ cyclePaths.add(step);
171
+ return;
172
+ }
173
+ if (siblingDependents.has(currentName)) {
174
+ // a transitive cycle
175
+ const cycleDependentName = Array.from(dependentNode.localDependencies.keys()).find((key) => currentNode.localDependents.has(key));
176
+ const pathToCycle = step.slice().reverse().concat(cycleDependentName);
177
+ cycleNodes.add(dependentNode);
178
+ cyclePaths.add(pathToCycle);
179
+ }
180
+ dependentNode.localDependents.forEach(visits(step));
181
+ };
182
+ currentNode.localDependents.forEach(visits([currentName]));
183
+ });
184
+ (0, lib_1.reportCycles)(Array.from(cyclePaths, (cycle) => cycle.join(' -> ')), rejectCycles);
185
+ return [cyclePaths, cycleNodes];
186
+ }
187
+ /**
188
+ * Returns the cycles of this graph. If two cycles share some elements, they will
189
+ * be returned as a single cycle.
190
+ *
191
+ * @param {boolean} rejectCycles Whether or not to reject cycles
192
+ * @returns {Set<CyclicPackageGraphNode>}
193
+ */
194
+ collapseCycles(rejectCycles) {
195
+ const cyclePaths = [];
196
+ const nodeToCycle = new Map();
197
+ const cycles = new Set();
198
+ const alreadyVisited = new Set();
199
+ const walkStack = [];
200
+ function visits(baseNode, dependentNode) {
201
+ if (nodeToCycle.has(baseNode)) {
202
+ return;
203
+ }
204
+ let topLevelDependent = dependentNode;
205
+ while (nodeToCycle.has(topLevelDependent)) {
206
+ topLevelDependent = nodeToCycle.get(topLevelDependent);
207
+ }
208
+ // Otherwise the same node is checked multiple times which is very wasteful in a large repository
209
+ if (alreadyVisited.has(topLevelDependent)) {
210
+ return;
211
+ }
212
+ alreadyVisited.add(topLevelDependent);
213
+ if (topLevelDependent === baseNode ||
214
+ (topLevelDependent.isCycle && topLevelDependent.has(baseNode.name))) {
215
+ const cycle = new lib_1.CyclicPackageGraphNode();
216
+ walkStack.forEach((nodeInCycle) => {
217
+ nodeToCycle.set(nodeInCycle, cycle);
218
+ cycle.insert(nodeInCycle);
219
+ cycles.delete(nodeInCycle);
220
+ });
221
+ cycles.add(cycle);
222
+ // @ts-ignore
223
+ cyclePaths.push(cycle.toString());
224
+ return;
225
+ }
226
+ if (walkStack.indexOf(topLevelDependent) === -1) {
227
+ // eslint-disable-next-line no-use-before-define
228
+ visitWithStack(baseNode, topLevelDependent);
229
+ }
230
+ }
231
+ function visitWithStack(baseNode, currentNode = baseNode) {
232
+ walkStack.push(currentNode);
233
+ currentNode.localDependents.forEach(visits.bind(null, baseNode));
234
+ walkStack.pop();
235
+ }
236
+ this.forEach((currentNode) => visitWithStack(currentNode));
237
+ cycles.forEach((collapsedNode) => visitWithStack(collapsedNode));
238
+ (0, lib_1.reportCycles)(cyclePaths, rejectCycles);
239
+ return cycles;
240
+ }
241
+ /**
242
+ * Remove cycle nodes.
243
+ *
244
+ * @deprecated Spread set into prune() instead.
245
+ *
246
+ * @param {Set<PackageGraphNode>} cycleNodes
247
+ */
248
+ pruneCycleNodes(cycleNodes) {
249
+ return this.prune(...cycleNodes);
250
+ }
251
+ /**
252
+ * Remove all candidate nodes.
253
+ * @param {PackageGraphNode[]} candidates
254
+ */
255
+ prune(...candidates) {
256
+ if (candidates.length === this.size) {
257
+ return this.clear();
258
+ }
259
+ candidates.forEach((node) => this.remove(node));
260
+ }
261
+ /**
262
+ * Delete by value (instead of key), as well as removing pointers
263
+ * to itself in the other node's internal collections.
264
+ * @param {PackageGraphNode} candidateNode instance to remove
265
+ */
266
+ remove(candidateNode) {
267
+ this.delete(candidateNode.name);
268
+ this.forEach((node) => {
269
+ // remove incoming edges ("indegree")
270
+ node.localDependencies.delete(candidateNode.name);
271
+ // remove outgoing edges ("outdegree")
272
+ node.localDependents.delete(candidateNode.name);
273
+ });
274
+ }
275
+ }
276
+ exports.PackageGraph = PackageGraph;
249
277
  //# sourceMappingURL=package-graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-graph.js","sourceRoot":"","sources":["../../src/package-graph/package-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-graph.js","sourceRoot":"","sources":["../../src/package-graph/package-graph.ts"],"names":[],"mappings":"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"}