@lerna-lite/core 0.3.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.
- package/LICENSE +20 -0
- package/README.md +16 -0
- package/dist/child-process.d.ts +13 -0
- package/dist/child-process.js +129 -0
- package/dist/child-process.js.map +1 -0
- package/dist/command.d.ts +37 -0
- package/dist/command.js +269 -0
- package/dist/command.js.map +1 -0
- package/dist/conventional-commits/constants.d.ts +4 -0
- package/dist/conventional-commits/constants.js +13 -0
- package/dist/conventional-commits/constants.js.map +1 -0
- package/dist/conventional-commits/get-changelog-config.d.ts +12 -0
- package/dist/conventional-commits/get-changelog-config.js +92 -0
- package/dist/conventional-commits/get-changelog-config.js.map +1 -0
- package/dist/conventional-commits/index.d.ts +6 -0
- package/dist/conventional-commits/index.js +19 -0
- package/dist/conventional-commits/index.js.map +1 -0
- package/dist/conventional-commits/make-bump-only-filter.d.ts +6 -0
- package/dist/conventional-commits/make-bump-only-filter.js +23 -0
- package/dist/conventional-commits/make-bump-only-filter.js.map +1 -0
- package/dist/conventional-commits/read-existing-changelog.d.ts +7 -0
- package/dist/conventional-commits/read-existing-changelog.js +33 -0
- package/dist/conventional-commits/read-existing-changelog.js.map +1 -0
- package/dist/conventional-commits/recommend-version.d.ts +10 -0
- package/dist/conventional-commits/recommend-version.js +87 -0
- package/dist/conventional-commits/recommend-version.js.map +1 -0
- package/dist/conventional-commits/update-changelog.d.ts +11 -0
- package/dist/conventional-commits/update-changelog.js +84 -0
- package/dist/conventional-commits/update-changelog.js.map +1 -0
- package/dist/git-clients/github-client.d.ts +6 -0
- package/dist/git-clients/github-client.js +41 -0
- package/dist/git-clients/github-client.js.map +1 -0
- package/dist/git-clients/gitlab-client.d.ts +5 -0
- package/dist/git-clients/gitlab-client.js +53 -0
- package/dist/git-clients/gitlab-client.js.map +1 -0
- package/dist/git-clients/index.d.ts +2 -0
- package/dist/git-clients/index.js +15 -0
- package/dist/git-clients/index.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/models/index.d.ts +97 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -0
- package/dist/otplease.d.ts +13 -0
- package/dist/otplease.js +110 -0
- package/dist/otplease.js.map +1 -0
- package/dist/package-graph/index.d.ts +2 -0
- package/dist/package-graph/index.js +15 -0
- package/dist/package-graph/index.js.map +1 -0
- package/dist/package-graph/lib/cyclic-package-graph-node.d.ts +41 -0
- package/dist/package-graph/lib/cyclic-package-graph-node.js +101 -0
- package/dist/package-graph/lib/cyclic-package-graph-node.js.map +1 -0
- package/dist/package-graph/lib/index.d.ts +3 -0
- package/dist/package-graph/lib/index.js +16 -0
- package/dist/package-graph/lib/index.js.map +1 -0
- package/dist/package-graph/lib/package-graph-node.d.ts +35 -0
- package/dist/package-graph/lib/package-graph-node.js +61 -0
- package/dist/package-graph/lib/package-graph-node.js.map +1 -0
- package/dist/package-graph/lib/report-cycles.d.ts +1 -0
- package/dist/package-graph/lib/report-cycles.js +20 -0
- package/dist/package-graph/lib/report-cycles.js.map +1 -0
- package/dist/package-graph/package-graph.d.ts +78 -0
- package/dist/package-graph/package-graph.js +256 -0
- package/dist/package-graph/package-graph.js.map +1 -0
- package/dist/package.d.ts +96 -0
- package/dist/package.js +260 -0
- package/dist/package.js.map +1 -0
- package/dist/project/index.d.ts +2 -0
- package/dist/project/index.js +15 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/lib/apply-extends.d.ts +6 -0
- package/dist/project/lib/apply-extends.js +38 -0
- package/dist/project/lib/apply-extends.js.map +1 -0
- package/dist/project/lib/index.d.ts +3 -0
- package/dist/project/lib/index.js +16 -0
- package/dist/project/lib/index.js.map +1 -0
- package/dist/project/lib/make-file-finder.d.ts +2 -0
- package/dist/project/lib/make-file-finder.js +72 -0
- package/dist/project/lib/make-file-finder.js.map +1 -0
- package/dist/project/lib/shallow-extend.d.ts +5 -0
- package/dist/project/lib/shallow-extend.js +25 -0
- package/dist/project/lib/shallow-extend.js.map +1 -0
- package/dist/project/project.d.ts +50 -0
- package/dist/project/project.js +193 -0
- package/dist/project/project.js.map +1 -0
- package/dist/prompt.d.ts +5 -0
- package/dist/prompt.js +65 -0
- package/dist/prompt.js.map +1 -0
- package/dist/utils/check-working-tree.d.ts +8 -0
- package/dist/utils/check-working-tree.js +42 -0
- package/dist/utils/check-working-tree.js.map +1 -0
- package/dist/utils/clean-stack.d.ts +5 -0
- package/dist/utils/clean-stack.js +19 -0
- package/dist/utils/clean-stack.js.map +1 -0
- package/dist/utils/collect-dependents.d.ts +11 -0
- package/dist/utils/collect-dependents.js +46 -0
- package/dist/utils/collect-dependents.js.map +1 -0
- package/dist/utils/collect-uncommitted.d.ts +19 -0
- package/dist/utils/collect-uncommitted.js +46 -0
- package/dist/utils/collect-uncommitted.js.map +1 -0
- package/dist/utils/collect-updates/collect-updates.d.ts +25 -0
- package/dist/utils/collect-updates/collect-updates.js +100 -0
- package/dist/utils/collect-updates/collect-updates.js.map +1 -0
- package/dist/utils/collect-updates/index.d.ts +2 -0
- package/dist/utils/collect-updates/index.js +15 -0
- package/dist/utils/collect-updates/index.js.map +1 -0
- package/dist/utils/collect-updates/lib/collect-packages.d.ts +13 -0
- package/dist/utils/collect-updates/lib/collect-packages.js +34 -0
- package/dist/utils/collect-updates/lib/collect-packages.js.map +1 -0
- package/dist/utils/collect-updates/lib/get-packages-for-option.d.ts +5 -0
- package/dist/utils/collect-updates/lib/get-packages-for-option.js +31 -0
- package/dist/utils/collect-updates/lib/get-packages-for-option.js.map +1 -0
- package/dist/utils/collect-updates/lib/has-tags.d.ts +5 -0
- package/dist/utils/collect-updates/lib/has-tags.js +27 -0
- package/dist/utils/collect-updates/lib/has-tags.js.map +1 -0
- package/dist/utils/collect-updates/lib/index.d.ts +4 -0
- package/dist/utils/collect-updates/lib/index.js +17 -0
- package/dist/utils/collect-updates/lib/index.js.map +1 -0
- package/dist/utils/collect-updates/lib/make-diff-predicate.d.ts +6 -0
- package/dist/utils/collect-updates/lib/make-diff-predicate.js +65 -0
- package/dist/utils/collect-updates/lib/make-diff-predicate.js.map +1 -0
- package/dist/utils/conf.d.ts +23 -0
- package/dist/utils/conf.js +256 -0
- package/dist/utils/conf.js.map +1 -0
- package/dist/utils/defaults.d.ts +1 -0
- package/dist/utils/defaults.js +182 -0
- package/dist/utils/defaults.js.map +1 -0
- package/dist/utils/describe-ref.d.ts +24 -0
- package/dist/utils/describe-ref.js +81 -0
- package/dist/utils/describe-ref.js.map +1 -0
- package/dist/utils/env-replace.d.ts +1 -0
- package/dist/utils/env-replace.js +23 -0
- package/dist/utils/env-replace.js.map +1 -0
- package/dist/utils/find-prefix.d.ts +2 -0
- package/dist/utils/find-prefix.js +49 -0
- package/dist/utils/find-prefix.js.map +1 -0
- package/dist/utils/format-error.d.ts +7 -0
- package/dist/utils/format-error.js +20 -0
- package/dist/utils/format-error.js.map +1 -0
- package/dist/utils/index.d.ts +23 -0
- package/dist/utils/index.js +36 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/log-package-error.d.ts +5 -0
- package/dist/utils/log-package-error.js +36 -0
- package/dist/utils/log-package-error.js.map +1 -0
- package/dist/utils/nerf-dart.d.ts +1 -0
- package/dist/utils/nerf-dart.js +19 -0
- package/dist/utils/nerf-dart.js.map +1 -0
- package/dist/utils/npm-conf.d.ts +2 -0
- package/dist/utils/npm-conf.js +54 -0
- package/dist/utils/npm-conf.js.map +1 -0
- package/dist/utils/parse-field.d.ts +1 -0
- package/dist/utils/parse-field.js +66 -0
- package/dist/utils/parse-field.js.map +1 -0
- package/dist/utils/prerelease-id-from-version.d.ts +5 -0
- package/dist/utils/prerelease-id-from-version.js +16 -0
- package/dist/utils/prerelease-id-from-version.js.map +1 -0
- package/dist/utils/pulse-till-done.d.ts +1 -0
- package/dist/utils/pulse-till-done.js +41 -0
- package/dist/utils/pulse-till-done.js.map +1 -0
- package/dist/utils/query-graph.d.ts +36 -0
- package/dist/utils/query-graph.js +78 -0
- package/dist/utils/query-graph.js.map +1 -0
- package/dist/utils/run-lifecycle.d.ts +10 -0
- package/dist/utils/run-lifecycle.js +109 -0
- package/dist/utils/run-lifecycle.js.map +1 -0
- package/dist/utils/run-topologically.d.ts +12 -0
- package/dist/utils/run-topologically.js +37 -0
- package/dist/utils/run-topologically.js.map +1 -0
- package/dist/utils/types.d.ts +128 -0
- package/dist/utils/types.js +138 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/warn-if-hanging.d.ts +1 -0
- package/dist/utils/warn-if-hanging.js +18 -0
- package/dist/utils/warn-if-hanging.js.map +1 -0
- package/dist/utils/write-log-file.d.ts +1 -0
- package/dist/utils/write-log-file.js +33 -0
- package/dist/utils/write-log-file.js.map +1 -0
- package/dist/validation-error.d.ts +4 -0
- package/dist/validation-error.js +19 -0
- package/dist/validation-error.js.map +1 -0
- package/package.json +110 -0
|
@@ -0,0 +1,256 @@
|
|
|
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) => [pkg.name, 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
|
+
/** @type {string[]} */
|
|
168
|
+
const cyclePaths = [];
|
|
169
|
+
/** @type {Map<PackageGraphNode, CyclicPackageGraphNode>} */
|
|
170
|
+
const nodeToCycle = new Map();
|
|
171
|
+
/** @type {Set<CyclicPackageGraphNode>} */
|
|
172
|
+
const cycles = new Set();
|
|
173
|
+
/** @type {Set<PackageGraphNode>} */
|
|
174
|
+
const alreadyVisited = new Set();
|
|
175
|
+
/** @type {(PackageGraphNode | CyclicPackageGraphNode)[]} */
|
|
176
|
+
const walkStack = [];
|
|
177
|
+
function visits(baseNode, dependentNode) {
|
|
178
|
+
if (nodeToCycle.has(baseNode)) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
let topLevelDependent = dependentNode;
|
|
182
|
+
while (nodeToCycle.has(topLevelDependent)) {
|
|
183
|
+
topLevelDependent = nodeToCycle.get(topLevelDependent);
|
|
184
|
+
}
|
|
185
|
+
// Otherwise the same node is checked multiple times which is very wasteful in a large repository
|
|
186
|
+
if (alreadyVisited.has(topLevelDependent)) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
alreadyVisited.add(topLevelDependent);
|
|
190
|
+
if (topLevelDependent === baseNode ||
|
|
191
|
+
(topLevelDependent.isCycle && topLevelDependent.has(baseNode.name))) {
|
|
192
|
+
const cycle = new lib_1.CyclicPackageGraphNode();
|
|
193
|
+
walkStack.forEach((nodeInCycle) => {
|
|
194
|
+
nodeToCycle.set(nodeInCycle, cycle);
|
|
195
|
+
cycle.insert(nodeInCycle);
|
|
196
|
+
cycles.delete(nodeInCycle);
|
|
197
|
+
});
|
|
198
|
+
cycles.add(cycle);
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
cyclePaths.push(cycle.toString());
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
if (walkStack.indexOf(topLevelDependent) === -1) {
|
|
205
|
+
// eslint-disable-next-line no-use-before-define
|
|
206
|
+
visitWithStack(baseNode, topLevelDependent);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function visitWithStack(baseNode, currentNode = baseNode) {
|
|
210
|
+
// @ts-ignore
|
|
211
|
+
walkStack.push(currentNode);
|
|
212
|
+
currentNode.localDependents.forEach(visits.bind(null, baseNode));
|
|
213
|
+
walkStack.pop();
|
|
214
|
+
}
|
|
215
|
+
this.forEach((currentNode) => visitWithStack(currentNode));
|
|
216
|
+
cycles.forEach((collapsedNode) => visitWithStack(collapsedNode));
|
|
217
|
+
(0, lib_1.reportCycles)(cyclePaths, rejectCycles);
|
|
218
|
+
return cycles;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Remove cycle nodes.
|
|
222
|
+
*
|
|
223
|
+
* @deprecated Spread set into prune() instead.
|
|
224
|
+
*
|
|
225
|
+
* @param {Set<PackageGraphNode>} cycleNodes
|
|
226
|
+
*/
|
|
227
|
+
pruneCycleNodes(cycleNodes) {
|
|
228
|
+
return this.prune(...cycleNodes);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Remove all candidate nodes.
|
|
232
|
+
* @param {PackageGraphNode[]} candidates
|
|
233
|
+
*/
|
|
234
|
+
prune(...candidates) {
|
|
235
|
+
if (candidates.length === this.size) {
|
|
236
|
+
return this.clear();
|
|
237
|
+
}
|
|
238
|
+
candidates.forEach((node) => this.remove(node));
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Delete by value (instead of key), as well as removing pointers
|
|
242
|
+
* to itself in the other node's internal collections.
|
|
243
|
+
* @param {PackageGraphNode} candidateNode instance to remove
|
|
244
|
+
*/
|
|
245
|
+
remove(candidateNode) {
|
|
246
|
+
this.delete(candidateNode.name);
|
|
247
|
+
this.forEach((node) => {
|
|
248
|
+
// remove incoming edges ("indegree")
|
|
249
|
+
node.localDependencies.delete(candidateNode.name);
|
|
250
|
+
// remove outgoing edges ("outdegree")
|
|
251
|
+
node.localDependents.delete(candidateNode.name);
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
exports.PackageGraph = PackageGraph;
|
|
256
|
+
//# sourceMappingURL=package-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-graph.js","sourceRoot":"","sources":["../../src/package-graph/package-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {object} RawManifest The subset of package.json properties that Lerna-Lite uses
|
|
3
|
+
* @property {string} name
|
|
4
|
+
* @property {string} version
|
|
5
|
+
* @property {boolean} [private]
|
|
6
|
+
* @property {Record<string, string>|string} [bin]
|
|
7
|
+
* @property {Record<string, string>} [scripts]
|
|
8
|
+
* @property {Record<string, string>} [dependencies]
|
|
9
|
+
* @property {Record<string, string>} [devDependencies]
|
|
10
|
+
* @property {Record<string, string>} [optionalDependencies]
|
|
11
|
+
* @property {Record<string, string>} [peerDependencies]
|
|
12
|
+
* @property {Record<'directory' | 'registry' | 'tag', string>} [publishConfig]
|
|
13
|
+
* @property {string[] | { packages: string[] }} [workspaces]
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Lerna's internal representation of a local package, with
|
|
17
|
+
* many values resolved directly from the original JSON.
|
|
18
|
+
*/
|
|
19
|
+
export declare class Package {
|
|
20
|
+
_id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
licensePath: string;
|
|
23
|
+
localDependencies: Map<string, any>;
|
|
24
|
+
/**
|
|
25
|
+
* Create a Package instance from parameters, possibly reusing existing instance.
|
|
26
|
+
* @param {string|Package|RawManifest} ref A path to a package.json file, Package instance, or JSON object
|
|
27
|
+
* @param {string} [dir] If `ref` is a JSON object, this is the location of the manifest
|
|
28
|
+
* @returns {Package}
|
|
29
|
+
*/
|
|
30
|
+
static lazy(ref: any, dir?: string): any;
|
|
31
|
+
/**
|
|
32
|
+
* @param {RawManifest} pkg
|
|
33
|
+
* @param {string} location
|
|
34
|
+
* @param {string} [rootPath]
|
|
35
|
+
*/
|
|
36
|
+
constructor(pkg: Package, location: string, rootPath?: string);
|
|
37
|
+
get location(): string;
|
|
38
|
+
get private(): boolean;
|
|
39
|
+
get resolved(): {
|
|
40
|
+
name: string;
|
|
41
|
+
bin: any;
|
|
42
|
+
scope: any;
|
|
43
|
+
};
|
|
44
|
+
get rootPath(): string;
|
|
45
|
+
get scripts(): any;
|
|
46
|
+
get bin(): any;
|
|
47
|
+
get binLocation(): string;
|
|
48
|
+
get manifestLocation(): string;
|
|
49
|
+
get nodeModulesLocation(): string;
|
|
50
|
+
get __isLernaPackage(): boolean;
|
|
51
|
+
get version(): string;
|
|
52
|
+
set version(version: string);
|
|
53
|
+
get contents(): any;
|
|
54
|
+
set contents(subDirectory: any);
|
|
55
|
+
get dependencies(): string[];
|
|
56
|
+
get devDependencies(): string[];
|
|
57
|
+
get optionalDependencies(): string[];
|
|
58
|
+
get peerDependencies(): string[];
|
|
59
|
+
get pkg(): Package;
|
|
60
|
+
/**
|
|
61
|
+
* Map-like retrieval of arbitrary values
|
|
62
|
+
* @template {keyof RawManifest} K
|
|
63
|
+
* @param {K} key field name to retrieve value
|
|
64
|
+
* @returns {RawManifest[K]} value stored under key, if present
|
|
65
|
+
*/
|
|
66
|
+
get(key: any): any;
|
|
67
|
+
/**
|
|
68
|
+
* Map-like storage of arbitrary values
|
|
69
|
+
* @template {keyof RawManifest} K
|
|
70
|
+
* @param {T} key field name to store value
|
|
71
|
+
* @param {RawManifest[K]} val value to store
|
|
72
|
+
* @returns {Package} instance for chaining
|
|
73
|
+
*/
|
|
74
|
+
set(key: string, val: any): this;
|
|
75
|
+
/**
|
|
76
|
+
* Provide shallow copy for munging elsewhere
|
|
77
|
+
* @returns {Object}
|
|
78
|
+
*/
|
|
79
|
+
toJSON(): {};
|
|
80
|
+
/**
|
|
81
|
+
* Refresh internal state from disk (e.g., changed by external lifecycles)
|
|
82
|
+
*/
|
|
83
|
+
refresh(): Promise<this>;
|
|
84
|
+
/**
|
|
85
|
+
* Write manifest changes to disk
|
|
86
|
+
* @returns {Promise} resolves when write finished
|
|
87
|
+
*/
|
|
88
|
+
serialize(): Promise<this>;
|
|
89
|
+
/**
|
|
90
|
+
* Mutate local dependency spec according to type
|
|
91
|
+
* @param {Object} resolved npa metadata
|
|
92
|
+
* @param {String} depVersion semver
|
|
93
|
+
* @param {String} savePrefix npm_config_save_prefix
|
|
94
|
+
*/
|
|
95
|
+
updateLocalDependency(resolved: any, depVersion: any, savePrefix: any): void;
|
|
96
|
+
}
|
package/dist/package.js
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
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.Package = void 0;
|
|
7
|
+
const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const load_json_file_1 = __importDefault(require("load-json-file"));
|
|
10
|
+
const write_pkg_1 = __importDefault(require("write-pkg"));
|
|
11
|
+
// symbol used to 'hide' internal state
|
|
12
|
+
const PKG = Symbol('pkg');
|
|
13
|
+
// private fields
|
|
14
|
+
const _location = Symbol('location');
|
|
15
|
+
const _resolved = Symbol('resolved');
|
|
16
|
+
const _rootPath = Symbol('rootPath');
|
|
17
|
+
const _scripts = Symbol('scripts');
|
|
18
|
+
const _contents = Symbol('contents');
|
|
19
|
+
/**
|
|
20
|
+
* @param {import('npm-package-arg').Result} result
|
|
21
|
+
*/
|
|
22
|
+
function binSafeName({ name, scope }) {
|
|
23
|
+
return scope ? name.substring(scope.length + 1) : name;
|
|
24
|
+
}
|
|
25
|
+
// package.json files are not that complicated, so this is intentionally naïve
|
|
26
|
+
function shallowCopy(json) {
|
|
27
|
+
return Object.keys(json).reduce((obj, key) => {
|
|
28
|
+
const val = json[key];
|
|
29
|
+
/* istanbul ignore if */
|
|
30
|
+
if (Array.isArray(val)) {
|
|
31
|
+
obj[key] = val.slice();
|
|
32
|
+
}
|
|
33
|
+
else if (val && typeof val === 'object') {
|
|
34
|
+
obj[key] = Object.assign({}, val);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
obj[key] = val;
|
|
38
|
+
}
|
|
39
|
+
return obj;
|
|
40
|
+
}, {});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @typedef {object} RawManifest The subset of package.json properties that Lerna-Lite uses
|
|
44
|
+
* @property {string} name
|
|
45
|
+
* @property {string} version
|
|
46
|
+
* @property {boolean} [private]
|
|
47
|
+
* @property {Record<string, string>|string} [bin]
|
|
48
|
+
* @property {Record<string, string>} [scripts]
|
|
49
|
+
* @property {Record<string, string>} [dependencies]
|
|
50
|
+
* @property {Record<string, string>} [devDependencies]
|
|
51
|
+
* @property {Record<string, string>} [optionalDependencies]
|
|
52
|
+
* @property {Record<string, string>} [peerDependencies]
|
|
53
|
+
* @property {Record<'directory' | 'registry' | 'tag', string>} [publishConfig]
|
|
54
|
+
* @property {string[] | { packages: string[] }} [workspaces]
|
|
55
|
+
*/
|
|
56
|
+
/**
|
|
57
|
+
* Lerna's internal representation of a local package, with
|
|
58
|
+
* many values resolved directly from the original JSON.
|
|
59
|
+
*/
|
|
60
|
+
class Package {
|
|
61
|
+
/**
|
|
62
|
+
* @param {RawManifest} pkg
|
|
63
|
+
* @param {string} location
|
|
64
|
+
* @param {string} [rootPath]
|
|
65
|
+
*/
|
|
66
|
+
constructor(pkg, location, rootPath = location) {
|
|
67
|
+
this._id = '';
|
|
68
|
+
this.licensePath = '';
|
|
69
|
+
this.localDependencies = new Map();
|
|
70
|
+
// npa will throw an error if the name is invalid
|
|
71
|
+
const resolved = npm_package_arg_1.default.resolve(pkg.name, `file:${path_1.default.relative(rootPath, location)}`, rootPath);
|
|
72
|
+
this.name = pkg.name;
|
|
73
|
+
this[PKG] = pkg;
|
|
74
|
+
// omit raw pkg from default util.inspect() output, but preserve internal mutability
|
|
75
|
+
Object.defineProperty(this, PKG, { enumerable: false, writable: true });
|
|
76
|
+
this[_location] = location;
|
|
77
|
+
this[_resolved] = resolved;
|
|
78
|
+
this[_rootPath] = rootPath;
|
|
79
|
+
this[_scripts] = { ...pkg.scripts };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Create a Package instance from parameters, possibly reusing existing instance.
|
|
83
|
+
* @param {string|Package|RawManifest} ref A path to a package.json file, Package instance, or JSON object
|
|
84
|
+
* @param {string} [dir] If `ref` is a JSON object, this is the location of the manifest
|
|
85
|
+
* @returns {Package}
|
|
86
|
+
*/
|
|
87
|
+
static lazy(ref, dir = '.') {
|
|
88
|
+
if (typeof ref === 'string') {
|
|
89
|
+
const location = path_1.default.resolve(path_1.default.basename(ref) === 'package.json' ? path_1.default.dirname(ref) : ref);
|
|
90
|
+
const manifest = load_json_file_1.default.sync(path_1.default.join(location, 'package.json'));
|
|
91
|
+
return new Package(manifest, location);
|
|
92
|
+
}
|
|
93
|
+
// don't use instanceof because it fails across nested module boundaries
|
|
94
|
+
if ('__isLernaPackage' in ref) {
|
|
95
|
+
return ref;
|
|
96
|
+
}
|
|
97
|
+
// assume ref is a json object
|
|
98
|
+
return new Package(ref, dir);
|
|
99
|
+
}
|
|
100
|
+
// readonly getters
|
|
101
|
+
get location() {
|
|
102
|
+
return this[_location];
|
|
103
|
+
}
|
|
104
|
+
get private() {
|
|
105
|
+
return Boolean(this[PKG].private);
|
|
106
|
+
}
|
|
107
|
+
get resolved() {
|
|
108
|
+
return this[_resolved];
|
|
109
|
+
}
|
|
110
|
+
get rootPath() {
|
|
111
|
+
return this[_rootPath];
|
|
112
|
+
}
|
|
113
|
+
get scripts() {
|
|
114
|
+
return this[_scripts];
|
|
115
|
+
}
|
|
116
|
+
get bin() {
|
|
117
|
+
const pkg = this[PKG];
|
|
118
|
+
return typeof pkg.bin === 'string'
|
|
119
|
+
? { [binSafeName(this.resolved)]: pkg.bin, }
|
|
120
|
+
: Object.assign({}, pkg.bin);
|
|
121
|
+
}
|
|
122
|
+
get binLocation() {
|
|
123
|
+
return path_1.default.join(this.location, 'node_modules', '.bin');
|
|
124
|
+
}
|
|
125
|
+
get manifestLocation() {
|
|
126
|
+
return path_1.default.join(this.location, 'package.json');
|
|
127
|
+
}
|
|
128
|
+
get nodeModulesLocation() {
|
|
129
|
+
return path_1.default.join(this.location, 'node_modules');
|
|
130
|
+
}
|
|
131
|
+
// eslint-disable-next-line class-methods-use-this
|
|
132
|
+
get __isLernaPackage() {
|
|
133
|
+
// safer than instanceof across module boundaries
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
// accessors
|
|
137
|
+
get version() {
|
|
138
|
+
return this[PKG].version;
|
|
139
|
+
}
|
|
140
|
+
set version(version) {
|
|
141
|
+
this[PKG].version = version;
|
|
142
|
+
}
|
|
143
|
+
get contents() {
|
|
144
|
+
// if modified with setter, use that value
|
|
145
|
+
if (this[_contents]) {
|
|
146
|
+
return this[_contents];
|
|
147
|
+
}
|
|
148
|
+
// if provided by pkg.publishConfig.directory value
|
|
149
|
+
if (this[PKG].publishConfig && this[PKG].publishConfig.directory) {
|
|
150
|
+
return path_1.default.join(this.location, this[PKG].publishConfig.directory);
|
|
151
|
+
}
|
|
152
|
+
// default to package root
|
|
153
|
+
return this.location;
|
|
154
|
+
}
|
|
155
|
+
set contents(subDirectory) {
|
|
156
|
+
this[_contents] = path_1.default.join(this.location, subDirectory);
|
|
157
|
+
}
|
|
158
|
+
// 'live' collections
|
|
159
|
+
get dependencies() {
|
|
160
|
+
return this[PKG].dependencies;
|
|
161
|
+
}
|
|
162
|
+
get devDependencies() {
|
|
163
|
+
return this[PKG].devDependencies;
|
|
164
|
+
}
|
|
165
|
+
get optionalDependencies() {
|
|
166
|
+
return this[PKG].optionalDependencies;
|
|
167
|
+
}
|
|
168
|
+
get peerDependencies() {
|
|
169
|
+
return this[PKG].peerDependencies;
|
|
170
|
+
}
|
|
171
|
+
get pkg() {
|
|
172
|
+
return this[PKG];
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Map-like retrieval of arbitrary values
|
|
176
|
+
* @template {keyof RawManifest} K
|
|
177
|
+
* @param {K} key field name to retrieve value
|
|
178
|
+
* @returns {RawManifest[K]} value stored under key, if present
|
|
179
|
+
*/
|
|
180
|
+
get(key) {
|
|
181
|
+
return this[PKG][key];
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Map-like storage of arbitrary values
|
|
185
|
+
* @template {keyof RawManifest} K
|
|
186
|
+
* @param {T} key field name to store value
|
|
187
|
+
* @param {RawManifest[K]} val value to store
|
|
188
|
+
* @returns {Package} instance for chaining
|
|
189
|
+
*/
|
|
190
|
+
set(key, val) {
|
|
191
|
+
this[PKG][key] = val;
|
|
192
|
+
return this;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Provide shallow copy for munging elsewhere
|
|
196
|
+
* @returns {Object}
|
|
197
|
+
*/
|
|
198
|
+
toJSON() {
|
|
199
|
+
return shallowCopy(this[PKG]);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Refresh internal state from disk (e.g., changed by external lifecycles)
|
|
203
|
+
*/
|
|
204
|
+
refresh() {
|
|
205
|
+
return (0, load_json_file_1.default)(this.manifestLocation).then((pkg) => {
|
|
206
|
+
this[PKG] = pkg;
|
|
207
|
+
return this;
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Write manifest changes to disk
|
|
212
|
+
* @returns {Promise} resolves when write finished
|
|
213
|
+
*/
|
|
214
|
+
serialize() {
|
|
215
|
+
return (0, write_pkg_1.default)(this.manifestLocation, this[PKG]).then(() => this);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Mutate local dependency spec according to type
|
|
219
|
+
* @param {Object} resolved npa metadata
|
|
220
|
+
* @param {String} depVersion semver
|
|
221
|
+
* @param {String} savePrefix npm_config_save_prefix
|
|
222
|
+
*/
|
|
223
|
+
updateLocalDependency(resolved, depVersion, savePrefix) {
|
|
224
|
+
const depName = resolved.name;
|
|
225
|
+
// first, try runtime dependencies
|
|
226
|
+
let depCollection = this.dependencies;
|
|
227
|
+
// try optionalDependencies if that didn't work
|
|
228
|
+
if (!depCollection || !depCollection[depName]) {
|
|
229
|
+
depCollection = this.optionalDependencies;
|
|
230
|
+
}
|
|
231
|
+
// fall back to devDependencies
|
|
232
|
+
if (!depCollection || !depCollection[depName]) {
|
|
233
|
+
depCollection = this.devDependencies;
|
|
234
|
+
}
|
|
235
|
+
if (depCollection) {
|
|
236
|
+
if (resolved.registry || resolved.type === 'directory') {
|
|
237
|
+
// a version (1.2.3) OR range (^1.2.3) OR directory (file:../foo-pkg)
|
|
238
|
+
depCollection[depName] = `${savePrefix}${depVersion}`;
|
|
239
|
+
}
|
|
240
|
+
else if (resolved.gitCommittish) {
|
|
241
|
+
// a git url with matching committish (#v1.2.3 or #1.2.3)
|
|
242
|
+
const [tagPrefix] = /^\D*/.exec(resolved.gitCommittish);
|
|
243
|
+
// update committish
|
|
244
|
+
const { hosted } = resolved; // take that, lint!
|
|
245
|
+
hosted.committish = `${tagPrefix}${depVersion}`;
|
|
246
|
+
// always serialize the full url (identical to previous resolved.saveSpec)
|
|
247
|
+
depCollection[depName] = hosted.toString({ noGitPlus: false, noCommittish: false });
|
|
248
|
+
}
|
|
249
|
+
else if (resolved.gitRange) {
|
|
250
|
+
// a git url with matching gitRange (#semver:^1.2.3)
|
|
251
|
+
const { hosted } = resolved; // take that, lint!
|
|
252
|
+
hosted.committish = `semver:${savePrefix}${depVersion}`;
|
|
253
|
+
// always serialize the full url (identical to previous resolved.saveSpec)
|
|
254
|
+
depCollection[depName] = hosted.toString({ noGitPlus: false, noCommittish: false });
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
exports.Package = Package;
|
|
260
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./project"), exports);
|
|
14
|
+
__exportStar(require("./lib"), exports);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,wCAAsB"}
|