@lerna-lite/core 1.15.1 → 1.16.1
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/child-process.d.ts +62 -62
- package/dist/child-process.js +164 -166
- package/dist/child-process.js.map +1 -1
- package/dist/command.d.ts +37 -37
- package/dist/command.js +269 -271
- package/dist/command.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +4 -4
- package/dist/index.d.ts +10 -10
- package/dist/index.js +15 -28
- package/dist/index.js.map +1 -1
- package/dist/models/command-options.d.ts +345 -341
- package/dist/models/command-options.js +2 -2
- package/dist/models/index.d.ts +2 -2
- package/dist/models/index.js +5 -18
- package/dist/models/index.js.map +1 -1
- package/dist/models/interfaces.d.ts +175 -173
- package/dist/models/interfaces.js +2 -2
- package/dist/package-graph/index.d.ts +2 -2
- package/dist/package-graph/index.js +5 -18
- package/dist/package-graph/index.js.map +1 -1
- package/dist/package-graph/lib/cyclic-package-graph-node.d.ts +42 -42
- package/dist/package-graph/lib/cyclic-package-graph-node.js +97 -97
- package/dist/package-graph/lib/index.d.ts +3 -3
- package/dist/package-graph/lib/index.js +6 -19
- package/dist/package-graph/lib/index.js.map +1 -1
- package/dist/package-graph/lib/package-graph-node.d.ts +33 -33
- package/dist/package-graph/lib/package-graph-node.js +56 -58
- package/dist/package-graph/lib/package-graph-node.js.map +1 -1
- package/dist/package-graph/lib/report-cycles.d.ts +1 -1
- package/dist/package-graph/lib/report-cycles.js +17 -19
- package/dist/package-graph/lib/report-cycles.js.map +1 -1
- package/dist/package-graph/package-graph.d.ts +79 -79
- package/dist/package-graph/package-graph.js +269 -271
- package/dist/package-graph/package-graph.js.map +1 -1
- package/dist/package.d.ts +113 -113
- package/dist/package.js +352 -354
- package/dist/package.js.map +1 -1
- package/dist/project/index.d.ts +2 -2
- package/dist/project/index.js +5 -18
- package/dist/project/index.js.map +1 -1
- package/dist/project/lib/apply-extends.d.ts +10 -10
- package/dist/project/lib/apply-extends.js +36 -38
- package/dist/project/lib/apply-extends.js.map +1 -1
- package/dist/project/lib/index.d.ts +3 -3
- package/dist/project/lib/index.js +6 -19
- package/dist/project/lib/index.js.map +1 -1
- package/dist/project/lib/make-file-finder.d.ts +3 -3
- package/dist/project/lib/make-file-finder.js +69 -71
- package/dist/project/lib/make-file-finder.js.map +1 -1
- package/dist/project/lib/shallow-extend.d.ts +11 -11
- package/dist/project/lib/shallow-extend.js +24 -24
- package/dist/project/project.d.ts +46 -46
- package/dist/project/project.js +195 -197
- package/dist/project/project.js.map +1 -1
- package/dist/prompt.d.ts +23 -23
- package/dist/prompt.js +73 -75
- package/dist/prompt.js.map +1 -1
- package/dist/utils/check-working-tree.d.ts +9 -9
- package/dist/utils/check-working-tree.js +41 -41
- package/dist/utils/clean-stack.d.ts +5 -5
- package/dist/utils/clean-stack.js +18 -18
- package/dist/utils/collect-uncommitted.d.ts +17 -17
- package/dist/utils/collect-uncommitted.js +37 -39
- package/dist/utils/collect-uncommitted.js.map +1 -1
- package/dist/utils/collect-updates/__helpers__/build-graph.d.ts +3 -3
- package/dist/utils/collect-updates/__helpers__/build-graph.js +74 -74
- package/dist/utils/collect-updates/collect-updates.d.ts +11 -11
- package/dist/utils/collect-updates/collect-updates.js +89 -89
- package/dist/utils/collect-updates/collect-updates.js.map +1 -1
- package/dist/utils/collect-updates/index.d.ts +2 -2
- package/dist/utils/collect-updates/index.js +5 -18
- package/dist/utils/collect-updates/index.js.map +1 -1
- package/dist/utils/collect-updates/lib/collect-dependents.d.ts +11 -11
- package/dist/utils/collect-updates/lib/collect-dependents.js +45 -45
- package/dist/utils/collect-updates/lib/collect-packages.d.ts +13 -13
- package/dist/utils/collect-updates/lib/collect-packages.js +33 -33
- package/dist/utils/collect-updates/lib/get-packages-for-option.d.ts +5 -5
- package/dist/utils/collect-updates/lib/get-packages-for-option.js +30 -30
- package/dist/utils/collect-updates/lib/has-tags.d.ts +7 -7
- package/dist/utils/collect-updates/lib/has-tags.js +30 -32
- package/dist/utils/collect-updates/lib/has-tags.js.map +1 -1
- package/dist/utils/collect-updates/lib/index.d.ts +5 -5
- package/dist/utils/collect-updates/lib/index.js +8 -21
- package/dist/utils/collect-updates/lib/index.js.map +1 -1
- package/dist/utils/collect-updates/lib/make-diff-predicate.d.ts +9 -7
- package/dist/utils/collect-updates/lib/make-diff-predicate.js +74 -63
- package/dist/utils/collect-updates/lib/make-diff-predicate.js.map +1 -1
- package/dist/utils/conf.d.ts +25 -25
- package/dist/utils/conf.js +253 -255
- package/dist/utils/conf.js.map +1 -1
- package/dist/utils/defaults.d.ts +1 -1
- package/dist/utils/defaults.js +180 -182
- package/dist/utils/defaults.js.map +1 -1
- package/dist/utils/describe-ref.d.ts +13 -13
- package/dist/utils/describe-ref.js +86 -88
- package/dist/utils/describe-ref.js.map +1 -1
- package/dist/utils/env-replace.d.ts +1 -1
- package/dist/utils/env-replace.js +22 -22
- package/dist/utils/find-prefix.d.ts +2 -2
- package/dist/utils/find-prefix.js +46 -48
- package/dist/utils/find-prefix.js.map +1 -1
- package/dist/utils/index.d.ts +22 -22
- package/dist/utils/index.js +26 -39
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/log-package-error.d.ts +5 -5
- package/dist/utils/log-package-error.js +33 -35
- package/dist/utils/log-package-error.js.map +1 -1
- package/dist/utils/nerf-dart.d.ts +1 -1
- package/dist/utils/nerf-dart.js +16 -18
- package/dist/utils/nerf-dart.js.map +1 -1
- package/dist/utils/npm-conf.d.ts +4 -4
- package/dist/utils/npm-conf.js +53 -78
- package/dist/utils/npm-conf.js.map +1 -1
- package/dist/utils/object-utils.d.ts +21 -21
- package/dist/utils/object-utils.js +51 -53
- package/dist/utils/object-utils.js.map +1 -1
- package/dist/utils/output.d.ts +1 -1
- package/dist/utils/output.js +11 -13
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/parse-field.d.ts +1 -1
- package/dist/utils/parse-field.js +63 -65
- package/dist/utils/parse-field.js.map +1 -1
- package/dist/utils/prerelease-id-from-version.d.ts +5 -5
- package/dist/utils/prerelease-id-from-version.js +13 -15
- package/dist/utils/prerelease-id-from-version.js.map +1 -1
- package/dist/utils/pulse-till-done.d.ts +1 -1
- package/dist/utils/pulse-till-done.js +38 -40
- package/dist/utils/pulse-till-done.js.map +1 -1
- package/dist/utils/query-graph.d.ts +36 -36
- package/dist/utils/query-graph.js +77 -77
- package/dist/utils/run-lifecycle.d.ts +10 -10
- package/dist/utils/run-lifecycle.js +138 -140
- package/dist/utils/run-lifecycle.js.map +1 -1
- package/dist/utils/run-topologically.d.ts +12 -12
- package/dist/utils/run-topologically.js +34 -36
- package/dist/utils/run-topologically.js.map +1 -1
- package/dist/utils/string-utils.d.ts +2 -2
- package/dist/utils/string-utils.js +9 -9
- package/dist/utils/types.d.ts +128 -131
- package/dist/utils/types.js +136 -138
- package/dist/utils/types.js.map +1 -1
- package/dist/utils/warn-if-hanging.d.ts +1 -1
- package/dist/utils/warn-if-hanging.js +15 -17
- package/dist/utils/warn-if-hanging.js.map +1 -1
- package/dist/utils/write-log-file.d.ts +1 -1
- package/dist/utils/write-log-file.js +30 -32
- package/dist/utils/write-log-file.js.map +1 -1
- package/dist/validation-error.d.ts +4 -4
- package/dist/validation-error.js +16 -18
- package/dist/validation-error.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*
|
|
15
|
-
* @param {import("@lerna/
|
|
16
|
-
* @param {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const needsBump = !commandOptions.bump || commandOptions.bump.startsWith('pre')
|
|
79
|
-
? () => false
|
|
80
|
-
: /* skip packages that have not been previously prereleased */
|
|
81
|
-
(node) => node.prereleaseId;
|
|
82
|
-
const isForced = (node, name) => (forced.has('*') || forced.has(name)) && (useConventionalGraduate ? node.prereleaseId : true);
|
|
83
|
-
return (0, collect_packages_1.collectPackages)(packages, {
|
|
84
|
-
isCandidate: (node, name) => isForced(node, name) || needsBump(node) || hasDiff(node),
|
|
85
|
-
onInclude: (name) => npmlog_1.default.verbose('updated', name),
|
|
86
|
-
excludeDependents,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
exports.collectUpdates = collectUpdates;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectUpdates = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const npmlog_1 = tslib_1.__importDefault(require("npmlog"));
|
|
6
|
+
const describe_ref_1 = require("../describe-ref");
|
|
7
|
+
const collect_packages_1 = require("./lib/collect-packages");
|
|
8
|
+
const get_packages_for_option_1 = require("./lib/get-packages-for-option");
|
|
9
|
+
const has_tags_1 = require("./lib/has-tags");
|
|
10
|
+
const make_diff_predicate_1 = require("./lib/make-diff-predicate");
|
|
11
|
+
/**
|
|
12
|
+
* Create a list of graph nodes representing packages changed since the previous release, tagged or otherwise.
|
|
13
|
+
* @param {import("@lerna/package").Package[]} filteredPackages
|
|
14
|
+
* @param {import("@lerna/package-graph").PackageGraph} packageGraph
|
|
15
|
+
* @param {import("@lerna/child-process").ExecOpts} execOpts
|
|
16
|
+
* @param {UpdateCollectorOptions} commandOptions
|
|
17
|
+
*/
|
|
18
|
+
function collectUpdates(filteredPackages, packageGraph, execOpts, commandOptions, dryRun = false) {
|
|
19
|
+
const { forcePublish, conventionalCommits, conventionalGraduate, excludeDependents, independentSubpackages, isIndependent, } = commandOptions;
|
|
20
|
+
// If --conventional-commits and --conventional-graduate are both set, ignore --force-publish
|
|
21
|
+
const useConventionalGraduate = conventionalCommits && conventionalGraduate;
|
|
22
|
+
const forced = (0, get_packages_for_option_1.getPackagesForOption)(useConventionalGraduate ? conventionalGraduate : forcePublish);
|
|
23
|
+
const packages = filteredPackages.length === packageGraph.size
|
|
24
|
+
? packageGraph
|
|
25
|
+
: new Map(filteredPackages.map(({ name }) => [name, packageGraph.get(name)]));
|
|
26
|
+
let committish = commandOptions.since;
|
|
27
|
+
const tagPattern = isIndependent ? '*@*' : '';
|
|
28
|
+
if ((0, has_tags_1.hasTags)(execOpts, tagPattern)) {
|
|
29
|
+
const describeOptions = {
|
|
30
|
+
...execOpts,
|
|
31
|
+
};
|
|
32
|
+
if (isIndependent) {
|
|
33
|
+
describeOptions.match = tagPattern;
|
|
34
|
+
}
|
|
35
|
+
// describe the last annotated tag in the current branch
|
|
36
|
+
const { sha, refCount, lastTagName } = (0, describe_ref_1.describeRefSync)(describeOptions, commandOptions.includeMergedTags, dryRun);
|
|
37
|
+
// TODO: warn about dirty tree?
|
|
38
|
+
if (refCount === '0' && forced.size === 0 && !committish) {
|
|
39
|
+
// no commits since previous release
|
|
40
|
+
npmlog_1.default.notice('', 'Current HEAD is already released, skipping change detection.');
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
if (commandOptions.canary) {
|
|
44
|
+
// if it's a merge commit, it will return all the commits that were part of the merge
|
|
45
|
+
// ex: If `ab7533e` had 2 commits, ab7533e^..ab7533e would contain 2 commits + the merge commit
|
|
46
|
+
committish = `${sha}^..${sha}`;
|
|
47
|
+
}
|
|
48
|
+
else if (!committish) {
|
|
49
|
+
// if no tags found, this will be undefined and we'll use the initial commit
|
|
50
|
+
committish = lastTagName;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (forced.size) {
|
|
54
|
+
// "warn" might seem a bit loud, but it is appropriate for logging anything _forced_
|
|
55
|
+
npmlog_1.default.warn(useConventionalGraduate ? 'conventional-graduate' : 'force-publish', forced.has('*') ? 'all packages' : Array.from(forced.values()).join('\n'));
|
|
56
|
+
}
|
|
57
|
+
if (useConventionalGraduate) {
|
|
58
|
+
// --conventional-commits --conventional-graduate
|
|
59
|
+
if (forced.has('*')) {
|
|
60
|
+
npmlog_1.default.info('', 'Graduating all prereleased packages');
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
npmlog_1.default.info('', 'Graduating prereleased packages');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (!committish || forced.has('*')) {
|
|
67
|
+
// --force-publish or no tag
|
|
68
|
+
npmlog_1.default.info('', 'Assuming all packages changed');
|
|
69
|
+
return (0, collect_packages_1.collectPackages)(packages, {
|
|
70
|
+
onInclude: (name) => npmlog_1.default.verbose('updated', name),
|
|
71
|
+
excludeDependents,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
npmlog_1.default.info('', `Looking for changed packages since ${committish}`);
|
|
75
|
+
const hasDiff = (0, make_diff_predicate_1.makeDiffPredicate)(committish, execOpts, commandOptions.ignoreChanges, {
|
|
76
|
+
independentSubpackages,
|
|
77
|
+
});
|
|
78
|
+
const needsBump = !commandOptions.bump || commandOptions.bump.startsWith('pre')
|
|
79
|
+
? () => false
|
|
80
|
+
: /* skip packages that have not been previously prereleased */
|
|
81
|
+
(node) => node.prereleaseId;
|
|
82
|
+
const isForced = (node, name) => (forced.has('*') || forced.has(name)) && (useConventionalGraduate ? node.prereleaseId : true);
|
|
83
|
+
return (0, collect_packages_1.collectPackages)(packages, {
|
|
84
|
+
isCandidate: (node, name) => isForced(node, name) || needsBump(node) || hasDiff(node),
|
|
85
|
+
onInclude: (name) => npmlog_1.default.verbose('updated', name),
|
|
86
|
+
excludeDependents,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
exports.collectUpdates = collectUpdates;
|
|
90
90
|
//# sourceMappingURL=collect-updates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect-updates.js","sourceRoot":"","sources":["../../../src/utils/collect-updates/collect-updates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collect-updates.js","sourceRoot":"","sources":["../../../src/utils/collect-updates/collect-updates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './collect-updates';
|
|
2
|
-
export * from './lib';
|
|
1
|
+
export * from './collect-updates';
|
|
2
|
+
export * from './lib';
|
|
@@ -1,19 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./collect-updates"), exports);
|
|
18
|
-
__exportStar(require("./lib"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./collect-updates"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./lib"), exports);
|
|
19
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/collect-updates/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/collect-updates/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,gDAAsB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @callback LocalDependentVisitor
|
|
3
|
-
* @param {import("@lerna/package-graph").PackageGraphNode} dependentNode
|
|
4
|
-
* @param {string} dependentName
|
|
5
|
-
* @param {Map<string, import("@lerna/package-graph").PackageGraphNode>} siblingDependents
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Build a set of nodes that are dependents of the input set.
|
|
9
|
-
* @param {Set<import("@lerna/package-graph").PackageGraphNode>} nodes
|
|
10
|
-
*/
|
|
11
|
-
export declare function collectDependents(nodes: any): Set<unknown>;
|
|
1
|
+
/**
|
|
2
|
+
* @callback LocalDependentVisitor
|
|
3
|
+
* @param {import("@lerna/package-graph").PackageGraphNode} dependentNode
|
|
4
|
+
* @param {string} dependentName
|
|
5
|
+
* @param {Map<string, import("@lerna/package-graph").PackageGraphNode>} siblingDependents
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Build a set of nodes that are dependents of the input set.
|
|
9
|
+
* @param {Set<import("@lerna/package-graph").PackageGraphNode>} nodes
|
|
10
|
+
*/
|
|
11
|
+
export declare function collectDependents(nodes: any): Set<unknown>;
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @callback LocalDependentVisitor
|
|
4
|
-
* @param {import("@lerna/package-graph").PackageGraphNode} dependentNode
|
|
5
|
-
* @param {string} dependentName
|
|
6
|
-
* @param {Map<string, import("@lerna/package-graph").PackageGraphNode>} siblingDependents
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.collectDependents = void 0;
|
|
10
|
-
/**
|
|
11
|
-
* Build a set of nodes that are dependents of the input set.
|
|
12
|
-
* @param {Set<import("@lerna/package-graph").PackageGraphNode>} nodes
|
|
13
|
-
*/
|
|
14
|
-
function collectDependents(nodes) {
|
|
15
|
-
/** @type {typeof nodes} */
|
|
16
|
-
const collected = new Set();
|
|
17
|
-
nodes.forEach((currentNode) => {
|
|
18
|
-
if (currentNode.localDependents.size === 0) {
|
|
19
|
-
// no point diving into a non-existent tree
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
// breadth-first search
|
|
23
|
-
const queue = [currentNode];
|
|
24
|
-
const seen = new Set();
|
|
25
|
-
/** @type {LocalDependentVisitor} */
|
|
26
|
-
const visit = (dependentNode, dependentName, siblingDependents) => {
|
|
27
|
-
if (seen.has(dependentNode)) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
seen.add(dependentNode);
|
|
31
|
-
if (dependentNode === currentNode || siblingDependents.has(currentNode.name)) {
|
|
32
|
-
// a direct or transitive cycle, skip it
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
collected.add(dependentNode);
|
|
36
|
-
queue.push(dependentNode);
|
|
37
|
-
};
|
|
38
|
-
while (queue.length) {
|
|
39
|
-
const node = queue.shift();
|
|
40
|
-
node.localDependents.forEach(visit);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
return collected;
|
|
44
|
-
}
|
|
45
|
-
exports.collectDependents = collectDependents;
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @callback LocalDependentVisitor
|
|
4
|
+
* @param {import("@lerna/package-graph").PackageGraphNode} dependentNode
|
|
5
|
+
* @param {string} dependentName
|
|
6
|
+
* @param {Map<string, import("@lerna/package-graph").PackageGraphNode>} siblingDependents
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.collectDependents = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Build a set of nodes that are dependents of the input set.
|
|
12
|
+
* @param {Set<import("@lerna/package-graph").PackageGraphNode>} nodes
|
|
13
|
+
*/
|
|
14
|
+
function collectDependents(nodes) {
|
|
15
|
+
/** @type {typeof nodes} */
|
|
16
|
+
const collected = new Set();
|
|
17
|
+
nodes.forEach((currentNode) => {
|
|
18
|
+
if (currentNode.localDependents.size === 0) {
|
|
19
|
+
// no point diving into a non-existent tree
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// breadth-first search
|
|
23
|
+
const queue = [currentNode];
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
/** @type {LocalDependentVisitor} */
|
|
26
|
+
const visit = (dependentNode, dependentName, siblingDependents) => {
|
|
27
|
+
if (seen.has(dependentNode)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
seen.add(dependentNode);
|
|
31
|
+
if (dependentNode === currentNode || siblingDependents.has(currentNode.name)) {
|
|
32
|
+
// a direct or transitive cycle, skip it
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
collected.add(dependentNode);
|
|
36
|
+
queue.push(dependentNode);
|
|
37
|
+
};
|
|
38
|
+
while (queue.length) {
|
|
39
|
+
const node = queue.shift();
|
|
40
|
+
node.localDependents.forEach(visit);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return collected;
|
|
44
|
+
}
|
|
45
|
+
exports.collectDependents = collectDependents;
|
|
46
46
|
//# sourceMappingURL=collect-dependents.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { PackageGraphNode } from '../../../package-graph/lib/package-graph-node';
|
|
2
|
-
interface PackageCollectorOptions {
|
|
3
|
-
isCandidate?: (node: PackageGraphNode, name: string) => boolean;
|
|
4
|
-
onInclude?: (name: string) => void;
|
|
5
|
-
excludeDependents?: boolean;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Build a list of graph nodes, possibly including dependents, using predicate if available.
|
|
9
|
-
* @param {Map<string, import("@lerna/package-graph").PackageGraphNode>} packages
|
|
10
|
-
* @param {PackageCollectorOptions} options
|
|
11
|
-
*/
|
|
12
|
-
export declare function collectPackages(packages: any, { isCandidate, onInclude, excludeDependents }?: PackageCollectorOptions): PackageGraphNode[];
|
|
13
|
-
export {};
|
|
1
|
+
import { PackageGraphNode } from '../../../package-graph/lib/package-graph-node';
|
|
2
|
+
interface PackageCollectorOptions {
|
|
3
|
+
isCandidate?: (node: PackageGraphNode, name: string) => boolean;
|
|
4
|
+
onInclude?: (name: string) => void;
|
|
5
|
+
excludeDependents?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Build a list of graph nodes, possibly including dependents, using predicate if available.
|
|
9
|
+
* @param {Map<string, import("@lerna/package-graph").PackageGraphNode>} packages
|
|
10
|
+
* @param {PackageCollectorOptions} options
|
|
11
|
+
*/
|
|
12
|
+
export declare function collectPackages(packages: any, { isCandidate, onInclude, excludeDependents }?: PackageCollectorOptions): PackageGraphNode[];
|
|
13
|
+
export {};
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.collectPackages = void 0;
|
|
4
|
-
const collect_dependents_1 = require("./collect-dependents");
|
|
5
|
-
/**
|
|
6
|
-
* Build a list of graph nodes, possibly including dependents, using predicate if available.
|
|
7
|
-
* @param {Map<string, import("@lerna/package-graph").PackageGraphNode>} packages
|
|
8
|
-
* @param {PackageCollectorOptions} options
|
|
9
|
-
*/
|
|
10
|
-
function collectPackages(packages, { isCandidate = () => true, onInclude, excludeDependents } = {}) {
|
|
11
|
-
/** @type {Set<import("@lerna/package-graph").PackageGraphNode>} */
|
|
12
|
-
const candidates = new Set();
|
|
13
|
-
packages.forEach((node, name) => {
|
|
14
|
-
if (isCandidate(node, name)) {
|
|
15
|
-
candidates.add(node);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
if (!excludeDependents) {
|
|
19
|
-
(0, collect_dependents_1.collectDependents)(candidates).forEach((node) => candidates.add(node));
|
|
20
|
-
}
|
|
21
|
-
// The result should always be in the same order as the input
|
|
22
|
-
const updates = [];
|
|
23
|
-
packages.forEach((node, name) => {
|
|
24
|
-
if (candidates.has(node)) {
|
|
25
|
-
if (onInclude) {
|
|
26
|
-
onInclude(name);
|
|
27
|
-
}
|
|
28
|
-
updates.push(node);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
return updates;
|
|
32
|
-
}
|
|
33
|
-
exports.collectPackages = collectPackages;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectPackages = void 0;
|
|
4
|
+
const collect_dependents_1 = require("./collect-dependents");
|
|
5
|
+
/**
|
|
6
|
+
* Build a list of graph nodes, possibly including dependents, using predicate if available.
|
|
7
|
+
* @param {Map<string, import("@lerna/package-graph").PackageGraphNode>} packages
|
|
8
|
+
* @param {PackageCollectorOptions} options
|
|
9
|
+
*/
|
|
10
|
+
function collectPackages(packages, { isCandidate = () => true, onInclude, excludeDependents } = {}) {
|
|
11
|
+
/** @type {Set<import("@lerna/package-graph").PackageGraphNode>} */
|
|
12
|
+
const candidates = new Set();
|
|
13
|
+
packages.forEach((node, name) => {
|
|
14
|
+
if (isCandidate(node, name)) {
|
|
15
|
+
candidates.add(node);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
if (!excludeDependents) {
|
|
19
|
+
(0, collect_dependents_1.collectDependents)(candidates).forEach((node) => candidates.add(node));
|
|
20
|
+
}
|
|
21
|
+
// The result should always be in the same order as the input
|
|
22
|
+
const updates = [];
|
|
23
|
+
packages.forEach((node, name) => {
|
|
24
|
+
if (candidates.has(node)) {
|
|
25
|
+
if (onInclude) {
|
|
26
|
+
onInclude(name);
|
|
27
|
+
}
|
|
28
|
+
updates.push(node);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return updates;
|
|
32
|
+
}
|
|
33
|
+
exports.collectPackages = collectPackages;
|
|
34
34
|
//# sourceMappingURL=collect-packages.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @param {boolean|string|string[]} option
|
|
3
|
-
* @returns {Set<string>} A set of package names (or wildcard) derived from option value.
|
|
4
|
-
*/
|
|
5
|
-
export declare function getPackagesForOption(option?: boolean | string | string[]): Set<string>;
|
|
1
|
+
/**
|
|
2
|
+
* @param {boolean|string|string[]} option
|
|
3
|
+
* @returns {Set<string>} A set of package names (or wildcard) derived from option value.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getPackagesForOption(option?: boolean | string | string[]): Set<string>;
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPackagesForOption = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @param {boolean|string|string[]} option
|
|
6
|
-
* @returns {Set<string>} A set of package names (or wildcard) derived from option value.
|
|
7
|
-
*/
|
|
8
|
-
function getPackagesForOption(option) {
|
|
9
|
-
// new Set(null) is equivalent to new Set([])
|
|
10
|
-
// i.e., an empty Set
|
|
11
|
-
let inputs = null;
|
|
12
|
-
if (option === true) {
|
|
13
|
-
// option passed without specific packages, eg. --force-publish
|
|
14
|
-
inputs = ['*'];
|
|
15
|
-
}
|
|
16
|
-
else if (typeof option === 'string') {
|
|
17
|
-
// option passed with one or more comma separated package names, eg.:
|
|
18
|
-
// --force-publish=*
|
|
19
|
-
// --force-publish=foo
|
|
20
|
-
// --force-publish=foo,bar
|
|
21
|
-
inputs = option.split(',');
|
|
22
|
-
}
|
|
23
|
-
else if (Array.isArray(option)) {
|
|
24
|
-
// option passed multiple times with individual package names
|
|
25
|
-
// --force-publish foo --force-publish baz
|
|
26
|
-
inputs = [...option];
|
|
27
|
-
}
|
|
28
|
-
return new Set(inputs);
|
|
29
|
-
}
|
|
30
|
-
exports.getPackagesForOption = getPackagesForOption;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPackagesForOption = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @param {boolean|string|string[]} option
|
|
6
|
+
* @returns {Set<string>} A set of package names (or wildcard) derived from option value.
|
|
7
|
+
*/
|
|
8
|
+
function getPackagesForOption(option) {
|
|
9
|
+
// new Set(null) is equivalent to new Set([])
|
|
10
|
+
// i.e., an empty Set
|
|
11
|
+
let inputs = null;
|
|
12
|
+
if (option === true) {
|
|
13
|
+
// option passed without specific packages, eg. --force-publish
|
|
14
|
+
inputs = ['*'];
|
|
15
|
+
}
|
|
16
|
+
else if (typeof option === 'string') {
|
|
17
|
+
// option passed with one or more comma separated package names, eg.:
|
|
18
|
+
// --force-publish=*
|
|
19
|
+
// --force-publish=foo
|
|
20
|
+
// --force-publish=foo,bar
|
|
21
|
+
inputs = option.split(',');
|
|
22
|
+
}
|
|
23
|
+
else if (Array.isArray(option)) {
|
|
24
|
+
// option passed multiple times with individual package names
|
|
25
|
+
// --force-publish foo --force-publish baz
|
|
26
|
+
inputs = [...option];
|
|
27
|
+
}
|
|
28
|
+
return new Set(inputs);
|
|
29
|
+
}
|
|
30
|
+
exports.getPackagesForOption = getPackagesForOption;
|
|
31
31
|
//# sourceMappingURL=get-packages-for-option.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ExecOpts } from '../../../models';
|
|
2
|
-
/**
|
|
3
|
-
* Determine if any git tags are reachable.
|
|
4
|
-
* @param {import("@lerna/child-process").ExecOpts} opts
|
|
5
|
-
* @param {string} tagPattern
|
|
6
|
-
*/
|
|
7
|
-
export declare function hasTags(opts?: ExecOpts, tagPattern?: string): boolean;
|
|
1
|
+
import { ExecOpts } from '../../../models';
|
|
2
|
+
/**
|
|
3
|
+
* Determine if any git tags are reachable.
|
|
4
|
+
* @param {import("@lerna/child-process").ExecOpts} opts
|
|
5
|
+
* @param {string} tagPattern
|
|
6
|
+
*/
|
|
7
|
+
export declare function hasTags(opts?: ExecOpts, tagPattern?: string): boolean;
|
|
@@ -1,33 +1,31 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
exports.hasTags = hasTags;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasTags = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const npmlog_1 = tslib_1.__importDefault(require("npmlog"));
|
|
6
|
+
const child_process_1 = require("../../../child-process");
|
|
7
|
+
/**
|
|
8
|
+
* Determine if any git tags are reachable.
|
|
9
|
+
* @param {import("@lerna/child-process").ExecOpts} opts
|
|
10
|
+
* @param {string} tagPattern
|
|
11
|
+
*/
|
|
12
|
+
function hasTags(opts, tagPattern) {
|
|
13
|
+
npmlog_1.default.silly('hasTags', '');
|
|
14
|
+
let result = false;
|
|
15
|
+
const args = ['tag'];
|
|
16
|
+
if (tagPattern) {
|
|
17
|
+
npmlog_1.default.verbose('hasTags', `filter for tags with '${tagPattern}' pattern`);
|
|
18
|
+
args.push('--list', tagPattern);
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
result = !!(0, child_process_1.execSync)('git', args, opts);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
npmlog_1.default.warn('ENOTAGS', 'No git tags were reachable from this branch!');
|
|
25
|
+
npmlog_1.default.verbose('hasTags error', err);
|
|
26
|
+
}
|
|
27
|
+
npmlog_1.default.verbose('hasTags', result.toString());
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
exports.hasTags = hasTags;
|
|
33
31
|
//# sourceMappingURL=has-tags.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-tags.js","sourceRoot":"","sources":["../../../../src/utils/collect-updates/lib/has-tags.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"has-tags.js","sourceRoot":"","sources":["../../../../src/utils/collect-updates/lib/has-tags.ts"],"names":[],"mappings":";;;;AAAA,4DAAyB;AAEzB,0DAAkD;AAGlD;;;;GAIG;AACH,SAAgB,OAAO,CAAC,IAAe,EAAE,UAAmB;IAC1D,gBAAG,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAErB,IAAI,UAAU,EAAE;QACd,gBAAG,CAAC,OAAO,CAAC,SAAS,EAAE,yBAAyB,UAAU,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KACjC;IAED,IAAI;QACF,MAAM,GAAG,CAAC,CAAC,IAAA,wBAAQ,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACxC;IAAC,OAAO,GAAQ,EAAE;QACjB,gBAAG,CAAC,IAAI,CAAC,SAAS,EAAE,8CAA8C,CAAC,CAAC;QACpE,gBAAG,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;KACnC;IAED,gBAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AAChB,CAAC;AApBD,0BAoBC"}
|