@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.
Files changed (152) hide show
  1. package/dist/child-process.d.ts +62 -62
  2. package/dist/child-process.js +164 -166
  3. package/dist/child-process.js.map +1 -1
  4. package/dist/command.d.ts +37 -37
  5. package/dist/command.js +269 -271
  6. package/dist/command.js.map +1 -1
  7. package/dist/constants.d.ts +1 -1
  8. package/dist/constants.js +4 -4
  9. package/dist/index.d.ts +10 -10
  10. package/dist/index.js +15 -28
  11. package/dist/index.js.map +1 -1
  12. package/dist/models/command-options.d.ts +345 -341
  13. package/dist/models/command-options.js +2 -2
  14. package/dist/models/index.d.ts +2 -2
  15. package/dist/models/index.js +5 -18
  16. package/dist/models/index.js.map +1 -1
  17. package/dist/models/interfaces.d.ts +175 -173
  18. package/dist/models/interfaces.js +2 -2
  19. package/dist/package-graph/index.d.ts +2 -2
  20. package/dist/package-graph/index.js +5 -18
  21. package/dist/package-graph/index.js.map +1 -1
  22. package/dist/package-graph/lib/cyclic-package-graph-node.d.ts +42 -42
  23. package/dist/package-graph/lib/cyclic-package-graph-node.js +97 -97
  24. package/dist/package-graph/lib/index.d.ts +3 -3
  25. package/dist/package-graph/lib/index.js +6 -19
  26. package/dist/package-graph/lib/index.js.map +1 -1
  27. package/dist/package-graph/lib/package-graph-node.d.ts +33 -33
  28. package/dist/package-graph/lib/package-graph-node.js +56 -58
  29. package/dist/package-graph/lib/package-graph-node.js.map +1 -1
  30. package/dist/package-graph/lib/report-cycles.d.ts +1 -1
  31. package/dist/package-graph/lib/report-cycles.js +17 -19
  32. package/dist/package-graph/lib/report-cycles.js.map +1 -1
  33. package/dist/package-graph/package-graph.d.ts +79 -79
  34. package/dist/package-graph/package-graph.js +269 -271
  35. package/dist/package-graph/package-graph.js.map +1 -1
  36. package/dist/package.d.ts +113 -113
  37. package/dist/package.js +352 -354
  38. package/dist/package.js.map +1 -1
  39. package/dist/project/index.d.ts +2 -2
  40. package/dist/project/index.js +5 -18
  41. package/dist/project/index.js.map +1 -1
  42. package/dist/project/lib/apply-extends.d.ts +10 -10
  43. package/dist/project/lib/apply-extends.js +36 -38
  44. package/dist/project/lib/apply-extends.js.map +1 -1
  45. package/dist/project/lib/index.d.ts +3 -3
  46. package/dist/project/lib/index.js +6 -19
  47. package/dist/project/lib/index.js.map +1 -1
  48. package/dist/project/lib/make-file-finder.d.ts +3 -3
  49. package/dist/project/lib/make-file-finder.js +69 -71
  50. package/dist/project/lib/make-file-finder.js.map +1 -1
  51. package/dist/project/lib/shallow-extend.d.ts +11 -11
  52. package/dist/project/lib/shallow-extend.js +24 -24
  53. package/dist/project/project.d.ts +46 -46
  54. package/dist/project/project.js +195 -197
  55. package/dist/project/project.js.map +1 -1
  56. package/dist/prompt.d.ts +23 -23
  57. package/dist/prompt.js +73 -75
  58. package/dist/prompt.js.map +1 -1
  59. package/dist/utils/check-working-tree.d.ts +9 -9
  60. package/dist/utils/check-working-tree.js +41 -41
  61. package/dist/utils/clean-stack.d.ts +5 -5
  62. package/dist/utils/clean-stack.js +18 -18
  63. package/dist/utils/collect-uncommitted.d.ts +17 -17
  64. package/dist/utils/collect-uncommitted.js +37 -39
  65. package/dist/utils/collect-uncommitted.js.map +1 -1
  66. package/dist/utils/collect-updates/__helpers__/build-graph.d.ts +3 -3
  67. package/dist/utils/collect-updates/__helpers__/build-graph.js +74 -74
  68. package/dist/utils/collect-updates/collect-updates.d.ts +11 -11
  69. package/dist/utils/collect-updates/collect-updates.js +89 -89
  70. package/dist/utils/collect-updates/collect-updates.js.map +1 -1
  71. package/dist/utils/collect-updates/index.d.ts +2 -2
  72. package/dist/utils/collect-updates/index.js +5 -18
  73. package/dist/utils/collect-updates/index.js.map +1 -1
  74. package/dist/utils/collect-updates/lib/collect-dependents.d.ts +11 -11
  75. package/dist/utils/collect-updates/lib/collect-dependents.js +45 -45
  76. package/dist/utils/collect-updates/lib/collect-packages.d.ts +13 -13
  77. package/dist/utils/collect-updates/lib/collect-packages.js +33 -33
  78. package/dist/utils/collect-updates/lib/get-packages-for-option.d.ts +5 -5
  79. package/dist/utils/collect-updates/lib/get-packages-for-option.js +30 -30
  80. package/dist/utils/collect-updates/lib/has-tags.d.ts +7 -7
  81. package/dist/utils/collect-updates/lib/has-tags.js +30 -32
  82. package/dist/utils/collect-updates/lib/has-tags.js.map +1 -1
  83. package/dist/utils/collect-updates/lib/index.d.ts +5 -5
  84. package/dist/utils/collect-updates/lib/index.js +8 -21
  85. package/dist/utils/collect-updates/lib/index.js.map +1 -1
  86. package/dist/utils/collect-updates/lib/make-diff-predicate.d.ts +9 -7
  87. package/dist/utils/collect-updates/lib/make-diff-predicate.js +74 -63
  88. package/dist/utils/collect-updates/lib/make-diff-predicate.js.map +1 -1
  89. package/dist/utils/conf.d.ts +25 -25
  90. package/dist/utils/conf.js +253 -255
  91. package/dist/utils/conf.js.map +1 -1
  92. package/dist/utils/defaults.d.ts +1 -1
  93. package/dist/utils/defaults.js +180 -182
  94. package/dist/utils/defaults.js.map +1 -1
  95. package/dist/utils/describe-ref.d.ts +13 -13
  96. package/dist/utils/describe-ref.js +86 -88
  97. package/dist/utils/describe-ref.js.map +1 -1
  98. package/dist/utils/env-replace.d.ts +1 -1
  99. package/dist/utils/env-replace.js +22 -22
  100. package/dist/utils/find-prefix.d.ts +2 -2
  101. package/dist/utils/find-prefix.js +46 -48
  102. package/dist/utils/find-prefix.js.map +1 -1
  103. package/dist/utils/index.d.ts +22 -22
  104. package/dist/utils/index.js +26 -39
  105. package/dist/utils/index.js.map +1 -1
  106. package/dist/utils/log-package-error.d.ts +5 -5
  107. package/dist/utils/log-package-error.js +33 -35
  108. package/dist/utils/log-package-error.js.map +1 -1
  109. package/dist/utils/nerf-dart.d.ts +1 -1
  110. package/dist/utils/nerf-dart.js +16 -18
  111. package/dist/utils/nerf-dart.js.map +1 -1
  112. package/dist/utils/npm-conf.d.ts +4 -4
  113. package/dist/utils/npm-conf.js +53 -78
  114. package/dist/utils/npm-conf.js.map +1 -1
  115. package/dist/utils/object-utils.d.ts +21 -21
  116. package/dist/utils/object-utils.js +51 -53
  117. package/dist/utils/object-utils.js.map +1 -1
  118. package/dist/utils/output.d.ts +1 -1
  119. package/dist/utils/output.js +11 -13
  120. package/dist/utils/output.js.map +1 -1
  121. package/dist/utils/parse-field.d.ts +1 -1
  122. package/dist/utils/parse-field.js +63 -65
  123. package/dist/utils/parse-field.js.map +1 -1
  124. package/dist/utils/prerelease-id-from-version.d.ts +5 -5
  125. package/dist/utils/prerelease-id-from-version.js +13 -15
  126. package/dist/utils/prerelease-id-from-version.js.map +1 -1
  127. package/dist/utils/pulse-till-done.d.ts +1 -1
  128. package/dist/utils/pulse-till-done.js +38 -40
  129. package/dist/utils/pulse-till-done.js.map +1 -1
  130. package/dist/utils/query-graph.d.ts +36 -36
  131. package/dist/utils/query-graph.js +77 -77
  132. package/dist/utils/run-lifecycle.d.ts +10 -10
  133. package/dist/utils/run-lifecycle.js +138 -140
  134. package/dist/utils/run-lifecycle.js.map +1 -1
  135. package/dist/utils/run-topologically.d.ts +12 -12
  136. package/dist/utils/run-topologically.js +34 -36
  137. package/dist/utils/run-topologically.js.map +1 -1
  138. package/dist/utils/string-utils.d.ts +2 -2
  139. package/dist/utils/string-utils.js +9 -9
  140. package/dist/utils/types.d.ts +128 -131
  141. package/dist/utils/types.js +136 -138
  142. package/dist/utils/types.js.map +1 -1
  143. package/dist/utils/warn-if-hanging.d.ts +1 -1
  144. package/dist/utils/warn-if-hanging.js +15 -17
  145. package/dist/utils/warn-if-hanging.js.map +1 -1
  146. package/dist/utils/write-log-file.d.ts +1 -1
  147. package/dist/utils/write-log-file.js +30 -32
  148. package/dist/utils/write-log-file.js.map +1 -1
  149. package/dist/validation-error.d.ts +4 -4
  150. package/dist/validation-error.js +16 -18
  151. package/dist/validation-error.js.map +1 -1
  152. package/package.json +4 -4
@@ -1,78 +1,78 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueryGraph = void 0;
4
- const package_graph_1 = require("../package-graph/package-graph");
5
- /**
6
- * A mutable PackageGraph used to query for next available packages.
7
- */
8
- class QueryGraph {
9
- /**
10
- * Sort a list of Packages topologically.
11
- *
12
- * @param {import("@lerna/package").Package[]} packages An array of Packages to build the list out of
13
- * @param {QueryGraphConfig} [options]
14
- *
15
- * @returns {import("@lerna/package").Package[]} A list of Package instances in topological order
16
- */
17
- static toposort(packages, options) {
18
- const graph = new QueryGraph(packages, options);
19
- const result = [];
20
- let batch = graph.getAvailablePackages();
21
- while (batch.length) {
22
- for (const node of batch) {
23
- // no need to take() in synchronous loop
24
- // @ts-ignore
25
- result.push(node.pkg);
26
- graph.markAsDone(node);
27
- }
28
- batch = graph.getAvailablePackages();
29
- }
30
- return result;
31
- }
32
- /**
33
- * @param {import("@lerna/package").Package[]} packages An array of Packages to build the graph out of
34
- * @param {QueryGraphConfig} [options]
35
- */
36
- constructor(packages, { graphType = 'allDependencies', localDependencies = 'auto', rejectCycles } = {}) {
37
- // Create dependency graph
38
- this.graph = new package_graph_1.PackageGraph(packages, graphType, localDependencies);
39
- // Evaluate cycles
40
- this.cycles = this.graph.collapseCycles(rejectCycles);
41
- }
42
- _getNextLeaf() {
43
- return Array.from(this.graph.values()).filter((node) => node.localDependencies.size === 0);
44
- }
45
- _getNextCycle() {
46
- const cycle = Array.from(this.cycles).find((cycleNode) => cycleNode.localDependencies.size === 0);
47
- if (!cycle) {
48
- return [];
49
- }
50
- this.cycles.delete(cycle);
51
- return cycle.flatten();
52
- }
53
- getAvailablePackages() {
54
- // Get the next leaf nodes
55
- const availablePackages = this._getNextLeaf();
56
- if (availablePackages.length > 0) {
57
- return availablePackages;
58
- }
59
- return this._getNextCycle();
60
- }
61
- /**
62
- * @param {string} name
63
- */
64
- markAsTaken(name) {
65
- this.graph.delete(name);
66
- }
67
- /**
68
- * @param {import("@lerna/package-graph").PackageGraphNode} candidateNode
69
- */
70
- markAsDone(candidateNode) {
71
- this.graph.remove(candidateNode);
72
- for (const cycle of this.cycles) {
73
- cycle.unlink(candidateNode);
74
- }
75
- }
76
- }
77
- exports.QueryGraph = QueryGraph;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryGraph = void 0;
4
+ const package_graph_1 = require("../package-graph/package-graph");
5
+ /**
6
+ * A mutable PackageGraph used to query for next available packages.
7
+ */
8
+ class QueryGraph {
9
+ /**
10
+ * Sort a list of Packages topologically.
11
+ *
12
+ * @param {import("@lerna/package").Package[]} packages An array of Packages to build the list out of
13
+ * @param {QueryGraphConfig} [options]
14
+ *
15
+ * @returns {import("@lerna/package").Package[]} A list of Package instances in topological order
16
+ */
17
+ static toposort(packages, options) {
18
+ const graph = new QueryGraph(packages, options);
19
+ const result = [];
20
+ let batch = graph.getAvailablePackages();
21
+ while (batch.length) {
22
+ for (const node of batch) {
23
+ // no need to take() in synchronous loop
24
+ // @ts-ignore
25
+ result.push(node.pkg);
26
+ graph.markAsDone(node);
27
+ }
28
+ batch = graph.getAvailablePackages();
29
+ }
30
+ return result;
31
+ }
32
+ /**
33
+ * @param {import("@lerna/package").Package[]} packages An array of Packages to build the graph out of
34
+ * @param {QueryGraphConfig} [options]
35
+ */
36
+ constructor(packages, { graphType = 'allDependencies', localDependencies = 'auto', rejectCycles } = {}) {
37
+ // Create dependency graph
38
+ this.graph = new package_graph_1.PackageGraph(packages, graphType, localDependencies);
39
+ // Evaluate cycles
40
+ this.cycles = this.graph.collapseCycles(rejectCycles);
41
+ }
42
+ _getNextLeaf() {
43
+ return Array.from(this.graph.values()).filter((node) => node.localDependencies.size === 0);
44
+ }
45
+ _getNextCycle() {
46
+ const cycle = Array.from(this.cycles).find((cycleNode) => cycleNode.localDependencies.size === 0);
47
+ if (!cycle) {
48
+ return [];
49
+ }
50
+ this.cycles.delete(cycle);
51
+ return cycle.flatten();
52
+ }
53
+ getAvailablePackages() {
54
+ // Get the next leaf nodes
55
+ const availablePackages = this._getNextLeaf();
56
+ if (availablePackages.length > 0) {
57
+ return availablePackages;
58
+ }
59
+ return this._getNextCycle();
60
+ }
61
+ /**
62
+ * @param {string} name
63
+ */
64
+ markAsTaken(name) {
65
+ this.graph.delete(name);
66
+ }
67
+ /**
68
+ * @param {import("@lerna/package-graph").PackageGraphNode} candidateNode
69
+ */
70
+ markAsDone(candidateNode) {
71
+ this.graph.remove(candidateNode);
72
+ for (const cycle of this.cycles) {
73
+ cycle.unlink(candidateNode);
74
+ }
75
+ }
76
+ }
77
+ exports.QueryGraph = QueryGraph;
78
78
  //# sourceMappingURL=query-graph.js.map
@@ -1,10 +1,10 @@
1
- import { LifecycleConfig } from '../models';
2
- import { Package } from '../package';
3
- /**
4
- * Run a lifecycle script for a package.
5
- * @param {import('@lerna/package').Package} pkg
6
- * @param {string} stage
7
- * @param {LifecycleConfig} options
8
- */
9
- export declare function runLifecycle(pkg: Package, stage: string, options: LifecycleConfig): Promise<void>;
10
- export declare function createRunner(commandOptions: any): (pkg: Package, stage: string) => Promise<void>;
1
+ import { LifecycleConfig } from '../models';
2
+ import { Package } from '../package';
3
+ /**
4
+ * Run a lifecycle script for a package.
5
+ * @param {import('@lerna/package').Package} pkg
6
+ * @param {string} stage
7
+ * @param {LifecycleConfig} options
8
+ */
9
+ export declare function runLifecycle(pkg: Package, stage: string, options: LifecycleConfig): Promise<void>;
10
+ export declare function createRunner(commandOptions: any): (pkg: Package, stage: string) => Promise<void>;
@@ -1,141 +1,139 @@
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.createRunner = exports.runLifecycle = void 0;
7
- const npmlog_1 = __importDefault(require("npmlog"));
8
- const run_script_1 = __importDefault(require("@npmcli/run-script"));
9
- const npm_conf_1 = require("../utils/npm-conf");
10
- const p_queue_1 = __importDefault(require("p-queue"));
11
- const queue = new p_queue_1.default({ concurrency: 1 });
12
- /**
13
- * Alias dash-cased npmConf to camelCase
14
- * @param {LifecycleConfig} obj
15
- * @returns {LifecycleConfig}
16
- */
17
- function flattenOptions(obj) {
18
- return {
19
- ignorePrepublish: obj['ignore-prepublish'],
20
- ignoreScripts: obj['ignore-scripts'],
21
- nodeOptions: obj['node-options'],
22
- scriptShell: obj['script-shell'],
23
- scriptsPrependNodePath: obj['scripts-prepend-node-path'],
24
- // unsafePerm: obj['unsafe-perm'],
25
- ...obj,
26
- };
27
- }
28
- /**
29
- * Adapted from https://github.com/npm/run-script/blob/bb5156063ea3a7e167a6d5435847d9389146ec89/lib/run-script-pkg.js#L9
30
- * Modified to add back "path" and make it behave more like "npm-lifecycle"
31
- */
32
- function printCommandBanner(id, event, cmd, path) {
33
- // eslint-disable-next-line no-console
34
- return console.log(`\n> ${id ? `${id} ` : ''}${event} ${path}\n> ${cmd.trim().replace(/\n/g, '\n> ')}\n`);
35
- }
36
- /**
37
- * Run a lifecycle script for a package.
38
- * @param {import('@lerna/package').Package} pkg
39
- * @param {string} stage
40
- * @param {LifecycleConfig} options
41
- */
42
- function runLifecycle(pkg, stage, options) {
43
- // back-compat for @lerna/npm-conf instances
44
- // https://github.com/isaacs/proto-list/blob/27764cd/proto-list.js#L14
45
- if ('root' in options) {
46
- // eslint-disable-next-line no-param-reassign
47
- options = options.snapshot;
48
- }
49
- const opts = {
50
- // @ts-ignore
51
- log: npmlog_1.default,
52
- unsafePerm: true,
53
- ...flattenOptions(options),
54
- };
55
- const dir = pkg.location;
56
- const id = `${pkg.name}@${pkg.version}`;
57
- const config = {};
58
- if (opts.ignoreScripts) {
59
- opts.log.verbose('lifecycle', '%j ignored in %j', stage, pkg.name);
60
- return Promise.resolve();
61
- }
62
- if (!pkg.scripts || !pkg.scripts[stage]) {
63
- opts.log.silly('lifecycle', 'No script for %j in %j, continuing', stage, pkg.name);
64
- return Promise.resolve();
65
- }
66
- if (stage === 'prepublish' && opts.ignorePrepublish) {
67
- opts.log.verbose('lifecycle', '%j ignored in %j', stage, pkg.name);
68
- return Promise.resolve();
69
- }
70
- // https://github.com/zkat/figgy-pudding/blob/7d68bd3/index.js#L42-L64
71
- for (const [key, val] of Object.entries(opts)) {
72
- // omit falsy values and circular objects
73
- if (val !== null && key !== 'log' && key !== 'logstream') {
74
- config[key] = val;
75
- }
76
- }
77
- /* istanbul ignore else */
78
- // eslint-disable-next-line no-underscore-dangle
79
- if (pkg.__isLernaPackage) {
80
- // To ensure npm-lifecycle creates the correct npm_package_* env vars,
81
- // we must pass the _actual_ JSON instead of our fancy Package thingy
82
- // eslint-disable-next-line no-param-reassign
83
- pkg = pkg.toJSON();
84
- }
85
- // _id is needed by @npmcli/run-script
86
- // eslint-disable-next-line no-underscore-dangle
87
- pkg._id = id;
88
- opts.log.silly('lifecycle', '%j starting in %j', stage, pkg.name);
89
- // info log here to reproduce previous behavior when this was powered by "npm-lifecycle"
90
- opts.log.info('lifecycle', `${id}~${stage}: ${id}`);
91
- /**
92
- * In order to match the previous behavior of 'npm-lifecycle', we have to disable the writing
93
- * to the parent process and print the command banner ourselves, unless overridden by the options.
94
- */
95
- const stdio = opts.stdio || 'pipe';
96
- if (npmlog_1.default.level !== 'silent') {
97
- printCommandBanner(id, stage, pkg.scripts[stage], dir);
98
- }
99
- return queue.add(async () => {
100
- try {
101
- const { stdout } = await (0, run_script_1.default)({
102
- event: stage,
103
- path: dir,
104
- pkg,
105
- args: [],
106
- stdio,
107
- banner: false,
108
- scriptShell: config.scriptShell,
109
- });
110
- if (stdout) {
111
- /**
112
- * This adjustment is based on trying to match the existing integration test outputs when migrating
113
- * from "npm-lifecycle" to "@npmcli/run-script".
114
- */
115
- // eslint-disable-next-line no-console
116
- console.log(stdout.toString().trimEnd());
117
- }
118
- opts.log.silly('lifecycle', '%j finished in %j', stage, pkg.name);
119
- }
120
- catch (err) {
121
- // propagate the exit code
122
- const exitCode = err.code || 1;
123
- // error logging has already occurred on stderr, but we need to stop the chain
124
- npmlog_1.default.error('lifecycle', '%j errored in %j, exiting %d', stage, pkg.name, exitCode);
125
- // ensure clean logging, avoiding spurious log dump
126
- err.name = 'ValidationError';
127
- // our yargs.fail() handler expects a numeric .exitCode, not .errno
128
- err.exitCode = exitCode;
129
- process.exitCode = exitCode;
130
- // stop the chain
131
- throw err;
132
- }
133
- });
134
- }
135
- exports.runLifecycle = runLifecycle;
136
- function createRunner(commandOptions) {
137
- const cfg = (0, npm_conf_1.npmConf)(commandOptions).snapshot;
138
- return (pkg, stage) => runLifecycle(pkg, stage, cfg);
139
- }
140
- exports.createRunner = createRunner;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRunner = exports.runLifecycle = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const npmlog_1 = tslib_1.__importDefault(require("npmlog"));
6
+ const run_script_1 = tslib_1.__importDefault(require("@npmcli/run-script"));
7
+ const npm_conf_1 = require("../utils/npm-conf");
8
+ const p_queue_1 = tslib_1.__importDefault(require("p-queue"));
9
+ const queue = new p_queue_1.default({ concurrency: 1 });
10
+ /**
11
+ * Alias dash-cased npmConf to camelCase
12
+ * @param {LifecycleConfig} obj
13
+ * @returns {LifecycleConfig}
14
+ */
15
+ function flattenOptions(obj) {
16
+ return {
17
+ ignorePrepublish: obj['ignore-prepublish'],
18
+ ignoreScripts: obj['ignore-scripts'],
19
+ nodeOptions: obj['node-options'],
20
+ scriptShell: obj['script-shell'],
21
+ scriptsPrependNodePath: obj['scripts-prepend-node-path'],
22
+ // unsafePerm: obj['unsafe-perm'],
23
+ ...obj,
24
+ };
25
+ }
26
+ /**
27
+ * Adapted from https://github.com/npm/run-script/blob/bb5156063ea3a7e167a6d5435847d9389146ec89/lib/run-script-pkg.js#L9
28
+ * Modified to add back "path" and make it behave more like "npm-lifecycle"
29
+ */
30
+ function printCommandBanner(id, event, cmd, path) {
31
+ // eslint-disable-next-line no-console
32
+ return console.log(`\n> ${id ? `${id} ` : ''}${event} ${path}\n> ${cmd.trim().replace(/\n/g, '\n> ')}\n`);
33
+ }
34
+ /**
35
+ * Run a lifecycle script for a package.
36
+ * @param {import('@lerna/package').Package} pkg
37
+ * @param {string} stage
38
+ * @param {LifecycleConfig} options
39
+ */
40
+ function runLifecycle(pkg, stage, options) {
41
+ // back-compat for @lerna/npm-conf instances
42
+ // https://github.com/isaacs/proto-list/blob/27764cd/proto-list.js#L14
43
+ if ('root' in options) {
44
+ // eslint-disable-next-line no-param-reassign
45
+ options = options.snapshot;
46
+ }
47
+ const opts = {
48
+ // @ts-ignore
49
+ log: npmlog_1.default,
50
+ unsafePerm: true,
51
+ ...flattenOptions(options),
52
+ };
53
+ const dir = pkg.location;
54
+ const id = `${pkg.name}@${pkg.version}`;
55
+ const config = {};
56
+ if (opts.ignoreScripts) {
57
+ opts.log.verbose('lifecycle', '%j ignored in %j', stage, pkg.name);
58
+ return Promise.resolve();
59
+ }
60
+ if (!pkg.scripts || !pkg.scripts[stage]) {
61
+ opts.log.silly('lifecycle', 'No script for %j in %j, continuing', stage, pkg.name);
62
+ return Promise.resolve();
63
+ }
64
+ if (stage === 'prepublish' && opts.ignorePrepublish) {
65
+ opts.log.verbose('lifecycle', '%j ignored in %j', stage, pkg.name);
66
+ return Promise.resolve();
67
+ }
68
+ // https://github.com/zkat/figgy-pudding/blob/7d68bd3/index.js#L42-L64
69
+ for (const [key, val] of Object.entries(opts)) {
70
+ // omit falsy values and circular objects
71
+ if (val !== null && key !== 'log' && key !== 'logstream') {
72
+ config[key] = val;
73
+ }
74
+ }
75
+ /* istanbul ignore else */
76
+ // eslint-disable-next-line no-underscore-dangle
77
+ if (pkg.__isLernaPackage) {
78
+ // To ensure npm-lifecycle creates the correct npm_package_* env vars,
79
+ // we must pass the _actual_ JSON instead of our fancy Package thingy
80
+ // eslint-disable-next-line no-param-reassign
81
+ pkg = pkg.toJSON();
82
+ }
83
+ // _id is needed by @npmcli/run-script
84
+ // eslint-disable-next-line no-underscore-dangle
85
+ pkg._id = id;
86
+ opts.log.silly('lifecycle', '%j starting in %j', stage, pkg.name);
87
+ // info log here to reproduce previous behavior when this was powered by "npm-lifecycle"
88
+ opts.log.info('lifecycle', `${id}~${stage}: ${id}`);
89
+ /**
90
+ * In order to match the previous behavior of 'npm-lifecycle', we have to disable the writing
91
+ * to the parent process and print the command banner ourselves, unless overridden by the options.
92
+ */
93
+ const stdio = opts.stdio || 'pipe';
94
+ if (npmlog_1.default.level !== 'silent') {
95
+ printCommandBanner(id, stage, pkg.scripts[stage], dir);
96
+ }
97
+ return queue.add(async () => {
98
+ try {
99
+ const { stdout } = await (0, run_script_1.default)({
100
+ event: stage,
101
+ path: dir,
102
+ pkg,
103
+ args: [],
104
+ stdio,
105
+ banner: false,
106
+ scriptShell: config.scriptShell,
107
+ });
108
+ if (stdout) {
109
+ /**
110
+ * This adjustment is based on trying to match the existing integration test outputs when migrating
111
+ * from "npm-lifecycle" to "@npmcli/run-script".
112
+ */
113
+ // eslint-disable-next-line no-console
114
+ console.log(stdout.toString().trimEnd());
115
+ }
116
+ opts.log.silly('lifecycle', '%j finished in %j', stage, pkg.name);
117
+ }
118
+ catch (err) {
119
+ // propagate the exit code
120
+ const exitCode = err.code || 1;
121
+ // error logging has already occurred on stderr, but we need to stop the chain
122
+ npmlog_1.default.error('lifecycle', '%j errored in %j, exiting %d', stage, pkg.name, exitCode);
123
+ // ensure clean logging, avoiding spurious log dump
124
+ err.name = 'ValidationError';
125
+ // our yargs.fail() handler expects a numeric .exitCode, not .errno
126
+ err.exitCode = exitCode;
127
+ process.exitCode = exitCode;
128
+ // stop the chain
129
+ throw err;
130
+ }
131
+ });
132
+ }
133
+ exports.runLifecycle = runLifecycle;
134
+ function createRunner(commandOptions) {
135
+ const cfg = (0, npm_conf_1.npmConf)(commandOptions).snapshot;
136
+ return (pkg, stage) => runLifecycle(pkg, stage, cfg);
137
+ }
138
+ exports.createRunner = createRunner;
141
139
  //# sourceMappingURL=run-lifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-lifecycle.js","sourceRoot":"","sources":["../../src/utils/run-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-lifecycle.js","sourceRoot":"","sources":["../../src/utils/run-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { TopologicalConfig } from '../models';
2
- import { Package } from '../package';
3
- /**
4
- * Run callback in maximally-saturated topological order.
5
- *
6
- * @template T
7
- * @param {import("@lerna/package").Package[]} packages List of `Package` instances
8
- * @param {(pkg: import("@lerna/package").Package) => Promise<T>} runner Callback to map each `Package` with
9
- * @param {TopologicalConfig} [options]
10
- * @returns {Promise<T[]>} when all executions complete
11
- */
12
- export declare function runTopologically<T = any>(packages: Package[], runner: (pkg: Package) => Promise<T>, { concurrency, graphType, rejectCycles }?: TopologicalConfig): Promise<unknown>;
1
+ import { TopologicalConfig } from '../models';
2
+ import { Package } from '../package';
3
+ /**
4
+ * Run callback in maximally-saturated topological order.
5
+ *
6
+ * @template T
7
+ * @param {import("@lerna/package").Package[]} packages List of `Package` instances
8
+ * @param {(pkg: import("@lerna/package").Package) => Promise<T>} runner Callback to map each `Package` with
9
+ * @param {TopologicalConfig} [options]
10
+ * @returns {Promise<T[]>} when all executions complete
11
+ */
12
+ export declare function runTopologically<T = any>(packages: Package[], runner: (pkg: Package) => Promise<T>, { concurrency, graphType, rejectCycles }?: TopologicalConfig): Promise<unknown>;
@@ -1,37 +1,35 @@
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.runTopologically = void 0;
7
- const p_queue_1 = __importDefault(require("p-queue"));
8
- const query_graph_1 = require("./query-graph");
9
- /**
10
- * Run callback in maximally-saturated topological order.
11
- *
12
- * @template T
13
- * @param {import("@lerna/package").Package[]} packages List of `Package` instances
14
- * @param {(pkg: import("@lerna/package").Package) => Promise<T>} runner Callback to map each `Package` with
15
- * @param {TopologicalConfig} [options]
16
- * @returns {Promise<T[]>} when all executions complete
17
- */
18
- function runTopologically(packages, runner, { concurrency, graphType, rejectCycles } = {}) {
19
- const queue = new p_queue_1.default({ concurrency });
20
- const graph = new query_graph_1.QueryGraph(packages, { graphType, rejectCycles });
21
- return new Promise((resolve, reject) => {
22
- const returnValues = [];
23
- const queueNextAvailablePackages = () => graph.getAvailablePackages().forEach(({ pkg, name }) => {
24
- graph.markAsTaken(name);
25
- queue
26
- .add(() => runner(pkg)
27
- .then((value) => returnValues.push(value))
28
- .then(() => graph.markAsDone(pkg))
29
- .then(() => queueNextAvailablePackages()))
30
- .catch(reject);
31
- });
32
- queueNextAvailablePackages();
33
- return queue.onIdle().then(() => resolve(returnValues));
34
- });
35
- }
36
- exports.runTopologically = runTopologically;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runTopologically = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const p_queue_1 = tslib_1.__importDefault(require("p-queue"));
6
+ const query_graph_1 = require("./query-graph");
7
+ /**
8
+ * Run callback in maximally-saturated topological order.
9
+ *
10
+ * @template T
11
+ * @param {import("@lerna/package").Package[]} packages List of `Package` instances
12
+ * @param {(pkg: import("@lerna/package").Package) => Promise<T>} runner Callback to map each `Package` with
13
+ * @param {TopologicalConfig} [options]
14
+ * @returns {Promise<T[]>} when all executions complete
15
+ */
16
+ function runTopologically(packages, runner, { concurrency, graphType, rejectCycles } = {}) {
17
+ const queue = new p_queue_1.default({ concurrency });
18
+ const graph = new query_graph_1.QueryGraph(packages, { graphType, rejectCycles });
19
+ return new Promise((resolve, reject) => {
20
+ const returnValues = [];
21
+ const queueNextAvailablePackages = () => graph.getAvailablePackages().forEach(({ pkg, name }) => {
22
+ graph.markAsTaken(name);
23
+ queue
24
+ .add(() => runner(pkg)
25
+ .then((value) => returnValues.push(value))
26
+ .then(() => graph.markAsDone(pkg))
27
+ .then(() => queueNextAvailablePackages()))
28
+ .catch(reject);
29
+ });
30
+ queueNextAvailablePackages();
31
+ return queue.onIdle().then(() => resolve(returnValues));
32
+ });
33
+ }
34
+ exports.runTopologically = runTopologically;
37
35
  //# sourceMappingURL=run-topologically.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-topologically.js","sourceRoot":"","sources":["../../src/utils/run-topologically.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAE7B,+CAA2C;AAK3C;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,QAAmB,EACnB,MAAoC,EACpC,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,KAAK,EAAuB;IAElE,MAAM,KAAK,GAAG,IAAI,iBAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,wBAAU,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;IAEpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,YAAY,GAAU,EAAE,CAAC;QAE/B,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,KAAK,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACrD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAExB,KAAK;iBACF,GAAG,CAAC,GAAG,EAAE,CACR,MAAM,CAAC,GAAG,CAAC;iBACR,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC9C,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAkC,CAAC,CAAC;iBAChE,IAAI,CAAC,GAAG,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAC5C;iBACA,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEL,0BAA0B,EAAE,CAAC;QAE7B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AA7BD,4CA6BC"}
1
+ {"version":3,"file":"run-topologically.js","sourceRoot":"","sources":["../../src/utils/run-topologically.ts"],"names":[],"mappings":";;;;AAAA,8DAA6B;AAE7B,+CAA2C;AAK3C;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,QAAmB,EACnB,MAAoC,EACpC,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,KAAK,EAAuB;IAElE,MAAM,KAAK,GAAG,IAAI,iBAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,wBAAU,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;IAEpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,YAAY,GAAU,EAAE,CAAC;QAE/B,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,KAAK,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACrD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAExB,KAAK;iBACF,GAAG,CAAC,GAAG,EAAE,CACR,MAAM,CAAC,GAAG,CAAC;iBACR,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC9C,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAkC,CAAC,CAAC;iBAChE,IAAI,CAAC,GAAG,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAC5C;iBACA,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEL,0BAA0B,EAAE,CAAC;QAE7B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AA7BD,4CA6BC"}
@@ -1,2 +1,2 @@
1
- /** Pluralize a string */
2
- export declare function pluralize(str: any, strLn: any, customPluralStr?: string): any;
1
+ /** Pluralize a string */
2
+ export declare function pluralize(str: any, strLn: any, customPluralStr?: string): any;
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pluralize = void 0;
4
- /** Pluralize a string */
5
- function pluralize(str, strLn, customPluralStr = '') {
6
- const pluralStr = customPluralStr || `${str}s`;
7
- return strLn > 1 ? pluralStr : str;
8
- }
9
- exports.pluralize = pluralize;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pluralize = void 0;
4
+ /** Pluralize a string */
5
+ function pluralize(str, strLn, customPluralStr = '') {
6
+ const pluralStr = customPluralStr || `${str}s`;
7
+ return strLn > 1 ? pluralStr : str;
8
+ }
9
+ exports.pluralize = pluralize;
10
10
  //# sourceMappingURL=string-utils.js.map