@lerna-lite/core 1.0.4 → 1.2.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 +22 -22
- package/dist/command.d.ts +2 -2
- package/dist/command.js +12 -12
- package/dist/command.js.map +1 -1
- package/dist/conventional-commits/recommend-version.d.ts +3 -2
- package/dist/conventional-commits/recommend-version.js.map +1 -1
- package/dist/models/index.d.ts +38 -0
- package/dist/otplease.d.ts +2 -1
- package/dist/otplease.js +1 -5
- package/dist/otplease.js.map +1 -1
- package/dist/package-graph/lib/cyclic-package-graph-node.d.ts +5 -5
- package/dist/package-graph/lib/cyclic-package-graph-node.js +0 -3
- package/dist/package-graph/lib/cyclic-package-graph-node.js.map +1 -1
- package/dist/package-graph/lib/package-graph-node.d.ts +7 -9
- package/dist/package-graph/lib/package-graph-node.js +1 -4
- package/dist/package-graph/lib/package-graph-node.js.map +1 -1
- package/dist/package-graph/package-graph.d.ts +11 -10
- package/dist/package-graph/package-graph.js +33 -12
- package/dist/package-graph/package-graph.js.map +1 -1
- package/dist/package.d.ts +9 -21
- package/dist/package.js +11 -15
- package/dist/package.js.map +1 -1
- package/dist/project/lib/apply-extends.d.ts +5 -1
- package/dist/project/lib/apply-extends.js.map +1 -1
- package/dist/project/lib/make-file-finder.d.ts +3 -2
- package/dist/project/lib/make-file-finder.js.map +1 -1
- package/dist/project/lib/shallow-extend.d.ts +7 -1
- package/dist/project/lib/shallow-extend.js.map +1 -1
- package/dist/project/project.d.ts +12 -17
- package/dist/project/project.js +6 -5
- package/dist/project/project.js.map +1 -1
- package/dist/utils/collect-uncommitted.d.ts +7 -8
- package/dist/utils/collect-uncommitted.js +0 -5
- package/dist/utils/collect-uncommitted.js.map +1 -1
- package/dist/utils/conf.d.ts +3 -1
- package/dist/utils/conf.js.map +1 -1
- package/dist/utils/query-graph.d.ts +1 -1
- package/dist/utils/query-graph.js +2 -2
- package/dist/utils/query-graph.js.map +1 -1
- package/dist/utils/run-topologically.js.map +1 -1
- package/package.json +19 -23
package/LICENSE
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
Copyright (c) 2022-present Lerna-Lite Contributors
|
|
2
|
-
|
|
3
|
-
MIT License
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
-
a copy of this software and associated documentation files (the
|
|
7
|
-
"Software"), to deal in the Software without restriction, including
|
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
-
the following conditions:
|
|
12
|
-
|
|
13
|
-
The above copyright notice and this permission notice shall be
|
|
14
|
-
included in all copies or substantial portions of the Software.
|
|
15
|
-
|
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
1
|
+
Copyright (c) 2022-present Lerna-Lite Contributors
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/dist/command.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Logger } from 'npmlog';
|
|
2
2
|
import { Project } from './project/project';
|
|
3
|
-
import { ExecOpts } from './models';
|
|
3
|
+
import { CommandType, ExecOpts } from './models';
|
|
4
4
|
import { PackageGraph } from './package-graph/package-graph';
|
|
5
5
|
export declare class Command {
|
|
6
6
|
argv: any;
|
|
@@ -9,7 +9,7 @@ export declare class Command {
|
|
|
9
9
|
sort: any;
|
|
10
10
|
toposort?: number;
|
|
11
11
|
execOpts: ExecOpts;
|
|
12
|
-
|
|
12
|
+
commandName: CommandType;
|
|
13
13
|
composed: any;
|
|
14
14
|
logger: Logger;
|
|
15
15
|
options: any;
|
package/dist/command.js
CHANGED
|
@@ -21,15 +21,15 @@ const child_process_1 = require("./child-process");
|
|
|
21
21
|
const DEFAULT_CONCURRENCY = os_1.default.cpus().length;
|
|
22
22
|
class Command {
|
|
23
23
|
constructor(_argv) {
|
|
24
|
-
this.
|
|
24
|
+
this.commandName = '';
|
|
25
25
|
npmlog_1.default.pause();
|
|
26
|
-
npmlog_1.default.heading = 'lerna';
|
|
26
|
+
npmlog_1.default.heading = 'lerna-lite';
|
|
27
27
|
const argv = (0, clone_deep_1.default)(_argv);
|
|
28
28
|
npmlog_1.default.silly('argv', argv);
|
|
29
29
|
// 'FooCommand' => 'foo'
|
|
30
|
-
this.
|
|
30
|
+
this.commandName = (this.constructor.name.replace(/Command$/, '').toLowerCase());
|
|
31
31
|
// composed commands are called from other commands, like publish -> version
|
|
32
|
-
this.composed = typeof argv.composed === 'string' && argv.composed !== this.
|
|
32
|
+
this.composed = typeof argv.composed === 'string' && argv.composed !== this.commandName;
|
|
33
33
|
if (!this.composed) {
|
|
34
34
|
// composed commands have already logged the lerna version
|
|
35
35
|
npmlog_1.default.notice('cli', `v${argv.lernaVersion}`);
|
|
@@ -139,7 +139,7 @@ class Command {
|
|
|
139
139
|
// Command config object normalized to 'command' namespace
|
|
140
140
|
const commandConfig = this.project.config.command || {};
|
|
141
141
|
// The current command always overrides otherCommandConfigs
|
|
142
|
-
const overrides = [this.
|
|
142
|
+
const overrides = [this.commandName, ...this.otherCommandConfigs].map((key) => commandConfig[key]);
|
|
143
143
|
this.options = defaultOptions(
|
|
144
144
|
// CLI flags, which if defined overrule subsequent values
|
|
145
145
|
this.argv,
|
|
@@ -169,7 +169,7 @@ class Command {
|
|
|
169
169
|
npmlog_1.default.addLevel('success', 3001, { fg: 'green', bold: true });
|
|
170
170
|
// create logger that subclasses use
|
|
171
171
|
Object.defineProperty(this, 'logger', {
|
|
172
|
-
value: npmlog_1.default.newGroup(this.
|
|
172
|
+
value: npmlog_1.default.newGroup(this.commandName),
|
|
173
173
|
});
|
|
174
174
|
// emit all buffered logs at configured level and higher
|
|
175
175
|
npmlog_1.default.resume();
|
|
@@ -208,10 +208,10 @@ class Command {
|
|
|
208
208
|
throw new validation_error_1.ValidationError('ENOLERNA', 'No `lerna.json` file exist, please create one in the root of your project.');
|
|
209
209
|
}
|
|
210
210
|
if (this.options.independent && !this.project.isIndependent()) {
|
|
211
|
-
throw new validation_error_1.ValidationError('EVERSIONMODE', (0, dedent_1.default) `
|
|
212
|
-
You ran lerna-lite with --independent or -i, but the repository is not set to independent mode.
|
|
213
|
-
To use independent mode you need to set lerna.json's "version" property to "independent".
|
|
214
|
-
Then you won't need to pass the --independent or -i flags.
|
|
211
|
+
throw new validation_error_1.ValidationError('EVERSIONMODE', (0, dedent_1.default) `
|
|
212
|
+
You ran lerna-lite with --independent or -i, but the repository is not set to independent mode.
|
|
213
|
+
To use independent mode you need to set lerna.json's "version" property to "independent".
|
|
214
|
+
Then you won't need to pass the --independent or -i flags.
|
|
215
215
|
`);
|
|
216
216
|
}
|
|
217
217
|
}
|
|
@@ -241,10 +241,10 @@ class Command {
|
|
|
241
241
|
});
|
|
242
242
|
}
|
|
243
243
|
initialize() {
|
|
244
|
-
throw new validation_error_1.ValidationError(this.
|
|
244
|
+
throw new validation_error_1.ValidationError(this.commandName, 'initialize() needs to be implemented.');
|
|
245
245
|
}
|
|
246
246
|
execute() {
|
|
247
|
-
throw new validation_error_1.ValidationError(this.
|
|
247
|
+
throw new validation_error_1.ValidationError(this.commandName, 'execute() needs to be implemented.');
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
exports.Command = Command;
|
package/dist/command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAmC;AACnC,oDAA4B;AAC5B,kDAA0B;AAC1B,oDAAqC;AACrC,4CAAoB;AAEpB,qDAAiD;AACjD,iEAA4D;AAC5D,6DAAwD;AACxD,2DAAsD;AACtD,+CAA4C;AAC5C,yDAAqD;AAErD,iEAA6D;AAC7D,mDAAiD;AAEjD,mCAAmC;AACnC,MAAM,mBAAmB,GAAG,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;AAE7C,MAAa,OAAO;IAgBlB,YAAY,KAAU;QARtB,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { BaseChangelogOptions, VersioningStrategy } from '../models';
|
|
2
2
|
import { Package } from '../package';
|
|
3
|
+
import { PackageGraphNode } from '../package-graph';
|
|
3
4
|
/**
|
|
4
5
|
* @param {import('@lerna/package').Package} pkg
|
|
5
6
|
* @param {import('..').VersioningStrategy} type
|
|
6
7
|
* @param {import('..').BaseChangelogOptions & { prereleaseId?: string }} commandOptions
|
|
7
8
|
*/
|
|
8
|
-
export declare function recommendVersion(pkg: Package, type: VersioningStrategy, recommendationOptions: BaseChangelogOptions & {
|
|
9
|
+
export declare function recommendVersion(pkg: Package | PackageGraphNode, type: VersioningStrategy, recommendationOptions: BaseChangelogOptions & {
|
|
9
10
|
prereleaseId?: string;
|
|
10
|
-
}): Promise<
|
|
11
|
+
}): Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommend-version.js","sourceRoot":"","sources":["../../src/conventional-commits/recommend-version.ts"],"names":[],"mappings":";;;;;;AAAA,kGAAwE;AAExE,oDAAyB;AACzB,oDAA6C;
|
|
1
|
+
{"version":3,"file":"recommend-version.js","sourceRoot":"","sources":["../../src/conventional-commits/recommend-version.ts"],"names":[],"mappings":"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"}
|
package/dist/models/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import log from 'npmlog';
|
|
2
|
+
import npa from 'npm-package-arg';
|
|
2
3
|
import { Package } from '../package';
|
|
3
4
|
export declare type VersioningStrategy = 'fixed' | 'independent';
|
|
4
5
|
export declare type ChangelogType = 'fixed' | 'independent' | 'root';
|
|
@@ -15,6 +16,7 @@ export interface CommandOptions {
|
|
|
15
16
|
rollPublish?: boolean;
|
|
16
17
|
rollVersion?: boolean;
|
|
17
18
|
}
|
|
19
|
+
export declare type CommandType = '' | 'exec' | 'info' | 'publish' | 'version' | 'run';
|
|
18
20
|
export interface DescribeRefOptions {
|
|
19
21
|
cwd?: string;
|
|
20
22
|
match?: string;
|
|
@@ -89,6 +91,8 @@ export interface ProfileData {
|
|
|
89
91
|
export interface QueryGraphConfig {
|
|
90
92
|
/** "dependencies" excludes devDependencies from graph */
|
|
91
93
|
graphType?: 'allDependencies' | 'dependencies';
|
|
94
|
+
/** Treatment of local sibling dependencies, default "auto" */
|
|
95
|
+
localDependencies?: 'auto' | 'force' | 'explicit';
|
|
92
96
|
/** Whether or not to reject dependency cycles */
|
|
93
97
|
rejectCycles?: boolean;
|
|
94
98
|
}
|
|
@@ -112,6 +116,40 @@ export declare type GitCreateReleaseFn = () => Promise<{
|
|
|
112
116
|
export interface GitClient {
|
|
113
117
|
createRelease: (opts: GitClientRelease) => Promise<void>;
|
|
114
118
|
}
|
|
119
|
+
export declare type NpaResolveResult = (npa.FileResult | npa.HostedGitResult | npa.URLResult | npa.AliasResult | npa.RegistryResult) & {
|
|
120
|
+
explicitWorkspace?: boolean;
|
|
121
|
+
workspaceTarget?: string;
|
|
122
|
+
};
|
|
123
|
+
/** Passed between concurrent executions */
|
|
124
|
+
export interface OneTimePasswordCache {
|
|
125
|
+
otp?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface ProjectConfig {
|
|
128
|
+
command?: string;
|
|
129
|
+
packages: string[];
|
|
130
|
+
useWorkspaces: boolean;
|
|
131
|
+
version: string;
|
|
132
|
+
}
|
|
133
|
+
/** The subset of package.json properties that Lerna-Lite uses */
|
|
134
|
+
export interface RawManifest {
|
|
135
|
+
name: string;
|
|
136
|
+
location: string;
|
|
137
|
+
version: string;
|
|
138
|
+
private?: boolean;
|
|
139
|
+
bin?: Record<string, string> | string;
|
|
140
|
+
scripts?: Record<string, string>;
|
|
141
|
+
dependencies?: Record<string, string>;
|
|
142
|
+
devDependencies?: Record<string, string>;
|
|
143
|
+
optionalDependencies?: Record<string, string>;
|
|
144
|
+
peerDependencies?: Record<string, string>;
|
|
145
|
+
publishConfig?: Record<'directory' | 'registry' | 'tag', string>;
|
|
146
|
+
workspaces?: string[] | {
|
|
147
|
+
packages: string[];
|
|
148
|
+
};
|
|
149
|
+
get: (str: string) => {
|
|
150
|
+
packages?: string[];
|
|
151
|
+
} | string[];
|
|
152
|
+
}
|
|
115
153
|
export interface ReleaseClient {
|
|
116
154
|
repos: {
|
|
117
155
|
createRelease: GitCreateReleaseFn;
|
package/dist/otplease.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OneTimePasswordCache } from './models';
|
|
1
2
|
/**
|
|
2
3
|
* Attempt to execute Promise callback, prompting for OTP if necessary.
|
|
3
4
|
* @template {Record<string, unknown>} T
|
|
@@ -5,7 +6,7 @@
|
|
|
5
6
|
* @param {T} _opts The options to be passed to `fn`
|
|
6
7
|
* @param {OneTimePasswordCache} otpCache
|
|
7
8
|
*/
|
|
8
|
-
export declare function otplease(fn:
|
|
9
|
+
export declare function otplease<T extends Record<string, unknown>>(fn: (opts: T) => Promise<unknown>, _opts: T, otpCache: OneTimePasswordCache): Promise<unknown>;
|
|
9
10
|
/**
|
|
10
11
|
* Prompt user for one-time password.
|
|
11
12
|
* @returns {Promise<string>}
|
package/dist/otplease.js
CHANGED
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getOneTimePassword = exports.otplease = void 0;
|
|
4
4
|
const prompt_1 = require("./prompt");
|
|
5
|
-
/**
|
|
6
|
-
* @typedef {object} OneTimePasswordCache - Passed between concurrent executions
|
|
7
|
-
* @property {string} [otp] The one-time password, passed as an option or received via prompt
|
|
8
|
-
*/
|
|
9
5
|
// basic single-entry semaphore
|
|
10
6
|
const semaphore = {
|
|
11
7
|
wait() {
|
|
@@ -98,7 +94,7 @@ function attempt(fn, opts, otpCache) {
|
|
|
98
94
|
* @returns {Promise<string>}
|
|
99
95
|
*/
|
|
100
96
|
function getOneTimePassword(message = 'This operation requires a one-time password:') {
|
|
101
|
-
// Logic taken from npm internals: https://
|
|
97
|
+
// Logic taken from npm internals: https://github.com/npm/cli/blob/4f801d8a476f7ca52b0f182bf4e17a80db12b4e2/lib/utils/read-user-info.js#L21-L35
|
|
102
98
|
return (0, prompt_1.promptTextInput)(message, {
|
|
103
99
|
filter: (otp) => otp.replace(/\s+/g, ''),
|
|
104
100
|
validate: (otp) => (otp && /^[\d ]+$|^[A-Fa-f0-9]{64,64}$/.test(otp)) ||
|
package/dist/otplease.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otplease.js","sourceRoot":"","sources":["../src/otplease.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"otplease.js","sourceRoot":"","sources":["../src/otplease.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,27 +16,27 @@ export declare class CyclicPackageGraphNode extends Map<string, PackageGraphNode
|
|
|
16
16
|
/**
|
|
17
17
|
* @returns {string} A representation of a cycle, like like `A -> B -> C -> A`.
|
|
18
18
|
*/
|
|
19
|
-
toString():
|
|
19
|
+
toString(): string;
|
|
20
20
|
/**
|
|
21
21
|
* Flattens a CyclicPackageGraphNode (which can have multiple level of cycles).
|
|
22
22
|
*/
|
|
23
|
-
flatten():
|
|
23
|
+
flatten(): PackageGraphNode[];
|
|
24
24
|
/**
|
|
25
25
|
* Checks if a given node is contained in this cycle (or in a nested one)
|
|
26
26
|
*
|
|
27
27
|
* @param {string} name The name of the package to search in this cycle
|
|
28
28
|
* @returns {boolean}
|
|
29
29
|
*/
|
|
30
|
-
contains(name:
|
|
30
|
+
contains(name: string): boolean;
|
|
31
31
|
/**
|
|
32
32
|
* Adds a graph node, or a nested cycle, to this group.
|
|
33
33
|
*
|
|
34
34
|
* @param {import('..').PackageGraphNode | CyclicPackageGraphNode} node
|
|
35
35
|
*/
|
|
36
|
-
insert(node:
|
|
36
|
+
insert(node: PackageGraphNode | CyclicPackageGraphNode): void;
|
|
37
37
|
/**
|
|
38
38
|
* Remove pointers to candidate node from internal collections.
|
|
39
39
|
* @param {import('..').PackageGraphNode | CyclicPackageGraphNode} candidateNode instance to unlink
|
|
40
40
|
*/
|
|
41
|
-
unlink(candidateNode:
|
|
41
|
+
unlink(candidateNode: PackageGraphNode | CyclicPackageGraphNode): void;
|
|
42
42
|
}
|
|
@@ -14,9 +14,7 @@ class CyclicPackageGraphNode extends Map {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
super();
|
|
16
16
|
this.name = `(cycle) ${(lastCollapsedNodeId += 1)}`;
|
|
17
|
-
/** @type {Map<string, import('..').PackageGraphNode | CyclicPackageGraphNode>} */
|
|
18
17
|
this.localDependencies = new Map();
|
|
19
|
-
/** @type {Map<string, import('..').PackageGraphNode | CyclicPackageGraphNode>} */
|
|
20
18
|
this.localDependents = new Map();
|
|
21
19
|
}
|
|
22
20
|
// eslint-disable-next-line class-methods-use-this
|
|
@@ -36,7 +34,6 @@ class CyclicPackageGraphNode extends Map {
|
|
|
36
34
|
* Flattens a CyclicPackageGraphNode (which can have multiple level of cycles).
|
|
37
35
|
*/
|
|
38
36
|
flatten() {
|
|
39
|
-
/** @type {import('..').PackageGraphNode[]} */
|
|
40
37
|
const result = [];
|
|
41
38
|
for (const node of this.values()) {
|
|
42
39
|
if (node.isCycle) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cyclic-package-graph-node.js","sourceRoot":"","sources":["../../../src/package-graph/lib/cyclic-package-graph-node.ts"],"names":[],"mappings":";;;AAEA,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAa,sBAAuB,SAAQ,GAAsD;IAKhG;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cyclic-package-graph-node.js","sourceRoot":"","sources":["../../../src/package-graph/lib/cyclic-package-graph-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Result } from 'npm-package-arg';
|
|
2
|
+
import { Package } from '../../package';
|
|
1
3
|
/**
|
|
2
4
|
* A node in a PackageGraph.
|
|
3
5
|
*/
|
|
@@ -9,11 +11,11 @@ export declare class PackageGraphNode {
|
|
|
9
11
|
/**
|
|
10
12
|
* @param {import("@lerna/package").Package} pkg
|
|
11
13
|
*/
|
|
12
|
-
constructor(pkg:
|
|
13
|
-
get location():
|
|
14
|
-
get pkg():
|
|
14
|
+
constructor(pkg: Package);
|
|
15
|
+
get location(): string;
|
|
16
|
+
get pkg(): Package;
|
|
15
17
|
get prereleaseId(): string | undefined;
|
|
16
|
-
get version():
|
|
18
|
+
get version(): string;
|
|
17
19
|
/**
|
|
18
20
|
* Determine if the Node satisfies a resolved semver range.
|
|
19
21
|
* @see https://github.com/npm/npm-package-arg#result-object
|
|
@@ -21,11 +23,7 @@ export declare class PackageGraphNode {
|
|
|
21
23
|
* @param {!Result} resolved npm-package-arg Result object
|
|
22
24
|
* @returns {Boolean}
|
|
23
25
|
*/
|
|
24
|
-
satisfies({ gitCommittish, gitRange, fetchSpec }:
|
|
25
|
-
gitCommittish: any;
|
|
26
|
-
gitRange: any;
|
|
27
|
-
fetchSpec: any;
|
|
28
|
-
}): boolean;
|
|
26
|
+
satisfies({ gitCommittish, gitRange, fetchSpec }: Partial<Result>): boolean;
|
|
29
27
|
/**
|
|
30
28
|
* Returns a string representation of this node (its name)
|
|
31
29
|
*
|
|
@@ -20,11 +20,8 @@ class PackageGraphNode {
|
|
|
20
20
|
this[PKG] = pkg;
|
|
21
21
|
// omit raw pkg from default util.inspect() output
|
|
22
22
|
Object.defineProperty(this, PKG, { enumerable: false });
|
|
23
|
-
/** @type {Map<string, import("npm-package-arg").Result>} */
|
|
24
23
|
this.externalDependencies = new Map();
|
|
25
|
-
/** @type {Map<string, import("npm-package-arg").Result>} */
|
|
26
24
|
this.localDependencies = new Map();
|
|
27
|
-
/** @type {Map<string, PackageGraphNode>} */
|
|
28
25
|
this.localDependents = new Map();
|
|
29
26
|
}
|
|
30
27
|
get location() {
|
|
@@ -47,7 +44,7 @@ class PackageGraphNode {
|
|
|
47
44
|
* @returns {Boolean}
|
|
48
45
|
*/
|
|
49
46
|
satisfies({ gitCommittish, gitRange, fetchSpec }) {
|
|
50
|
-
return semver_1.default.satisfies(this.version, gitCommittish || gitRange || fetchSpec);
|
|
47
|
+
return semver_1.default.satisfies(this.version, (gitCommittish || gitRange || fetchSpec));
|
|
51
48
|
}
|
|
52
49
|
/**
|
|
53
50
|
* Returns a string representation of this node (its name)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-graph-node.js","sourceRoot":"","sources":["../../../src/package-graph/lib/package-graph-node.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"package-graph-node.js","sourceRoot":"","sources":["../../../src/package-graph/lib/package-graph-node.ts"],"names":[],"mappings":";;;;;;AACA,oDAA4B;AAG5B,uFAAiF;AAEjF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAa,gBAAgB;IAM3B;;OAEG;IACH,YAAY,GAAY;;QACtB,IAAI,CAAC,IAAI,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,mCAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAEhB,kDAAkD;QAClD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC7D,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAA,oDAAuB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAmB;QAC/D,OAAO,gBAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,IAAI,QAAQ,IAAI,SAAS,CAA0B,CAAC,CAAC;IAC3G,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAxDD,4CAwDC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CyclicPackageGraphNode, PackageGraphNode } from './lib';
|
|
1
2
|
import { Package } from '../package';
|
|
2
3
|
/**
|
|
3
4
|
* A graph of packages in the current project.
|
|
@@ -10,9 +11,9 @@ export declare class PackageGraph extends Map {
|
|
|
10
11
|
* @param {'allDependencies'|'dependencies'} [graphType]
|
|
11
12
|
* Pass "dependencies" to create a graph of only dependencies,
|
|
12
13
|
* excluding the devDependencies that would normally be included.
|
|
13
|
-
* @param {boolean} [
|
|
14
|
+
* @param {boolean|'auto'|'force'|'explicit'} [localDependencies] Treatment of local sibling dependencies, default "auto"
|
|
14
15
|
*/
|
|
15
|
-
constructor(packages: Package[], graphType?:
|
|
16
|
+
constructor(packages: Package[], graphType?: 'allDependencies' | 'dependencies', localDependencies?: boolean | 'auto' | 'force' | 'explicit' | 'forceLocal');
|
|
16
17
|
get rawPackageList(): any[];
|
|
17
18
|
/**
|
|
18
19
|
* Takes a list of Packages and returns a list of those same Packages with any Packages
|
|
@@ -21,7 +22,7 @@ export declare class PackageGraph extends Map {
|
|
|
21
22
|
*
|
|
22
23
|
* @param {import("@lerna/package").Package[]} filteredPackages The packages to include dependencies for.
|
|
23
24
|
*/
|
|
24
|
-
addDependencies(filteredPackages:
|
|
25
|
+
addDependencies(filteredPackages: Package[]): Package[];
|
|
25
26
|
/**
|
|
26
27
|
* Takes a list of Packages and returns a list of those same Packages with any Packages
|
|
27
28
|
* that depend on them. i.e if packageC depended on packageD `graph.addDependents([packageD])`
|
|
@@ -29,7 +30,7 @@ export declare class PackageGraph extends Map {
|
|
|
29
30
|
*
|
|
30
31
|
* @param {import("@lerna/package").Package[]} filteredPackages The packages to include dependents for.
|
|
31
32
|
*/
|
|
32
|
-
addDependents(filteredPackages:
|
|
33
|
+
addDependents(filteredPackages: Package[]): Package[];
|
|
33
34
|
/**
|
|
34
35
|
* Extends a list of packages by traversing on a given property, which must refer to a
|
|
35
36
|
* `PackageGraphNode` property that is a collection of `PackageGraphNode`s.
|
|
@@ -38,7 +39,7 @@ export declare class PackageGraph extends Map {
|
|
|
38
39
|
* @param {import("@lerna/package").Package[]} packageList The list of packages to extend
|
|
39
40
|
* @param {'localDependencies'|'localDependents'} nodeProp The property on `PackageGraphNode` used to traverse
|
|
40
41
|
*/
|
|
41
|
-
extendList(packageList:
|
|
42
|
+
extendList(packageList: Package[], nodeProp: 'localDependencies' | 'localDependents'): Package[];
|
|
42
43
|
/**
|
|
43
44
|
* Return a tuple of cycle paths and nodes.
|
|
44
45
|
*
|
|
@@ -47,7 +48,7 @@ export declare class PackageGraph extends Map {
|
|
|
47
48
|
* @param {boolean} rejectCycles Whether or not to reject cycles
|
|
48
49
|
* @returns {[Set<string[]>, Set<PackageGraphNode>]}
|
|
49
50
|
*/
|
|
50
|
-
partitionCycles(rejectCycles
|
|
51
|
+
partitionCycles(rejectCycles?: boolean): (Set<PackageGraphNode> | Set<string[]>)[];
|
|
51
52
|
/**
|
|
52
53
|
* Returns the cycles of this graph. If two cycles share some elements, they will
|
|
53
54
|
* be returned as a single cycle.
|
|
@@ -55,7 +56,7 @@ export declare class PackageGraph extends Map {
|
|
|
55
56
|
* @param {boolean} rejectCycles Whether or not to reject cycles
|
|
56
57
|
* @returns {Set<CyclicPackageGraphNode>}
|
|
57
58
|
*/
|
|
58
|
-
collapseCycles(rejectCycles
|
|
59
|
+
collapseCycles(rejectCycles?: boolean): Set<CyclicPackageGraphNode>;
|
|
59
60
|
/**
|
|
60
61
|
* Remove cycle nodes.
|
|
61
62
|
*
|
|
@@ -63,16 +64,16 @@ export declare class PackageGraph extends Map {
|
|
|
63
64
|
*
|
|
64
65
|
* @param {Set<PackageGraphNode>} cycleNodes
|
|
65
66
|
*/
|
|
66
|
-
pruneCycleNodes(cycleNodes:
|
|
67
|
+
pruneCycleNodes(cycleNodes: Set<PackageGraphNode>): void;
|
|
67
68
|
/**
|
|
68
69
|
* Remove all candidate nodes.
|
|
69
70
|
* @param {PackageGraphNode[]} candidates
|
|
70
71
|
*/
|
|
71
|
-
prune(...candidates:
|
|
72
|
+
prune(...candidates: PackageGraphNode[]): void;
|
|
72
73
|
/**
|
|
73
74
|
* Delete by value (instead of key), as well as removing pointers
|
|
74
75
|
* to itself in the other node's internal collections.
|
|
75
76
|
* @param {PackageGraphNode} candidateNode instance to remove
|
|
76
77
|
*/
|
|
77
|
-
remove(candidateNode:
|
|
78
|
+
remove(candidateNode: PackageGraphNode): void;
|
|
78
79
|
}
|
|
@@ -18,9 +18,13 @@ class PackageGraph extends Map {
|
|
|
18
18
|
* @param {'allDependencies'|'dependencies'} [graphType]
|
|
19
19
|
* Pass "dependencies" to create a graph of only dependencies,
|
|
20
20
|
* excluding the devDependencies that would normally be included.
|
|
21
|
-
* @param {boolean} [
|
|
21
|
+
* @param {boolean|'auto'|'force'|'explicit'} [localDependencies] Treatment of local sibling dependencies, default "auto"
|
|
22
22
|
*/
|
|
23
|
-
constructor(packages, graphType = 'allDependencies',
|
|
23
|
+
constructor(packages, graphType = 'allDependencies', localDependencies = 'auto') {
|
|
24
|
+
// For backward compatibility
|
|
25
|
+
if (localDependencies === true || localDependencies === 'forceLocal') {
|
|
26
|
+
localDependencies = 'force'; // eslint-disable-line
|
|
27
|
+
}
|
|
24
28
|
// @ts-ignore
|
|
25
29
|
super(packages.map((pkg) => { var _a; return [(_a = pkg === null || pkg === void 0 ? void 0 : pkg.name) !== null && _a !== void 0 ? _a : '', new lib_1.PackageGraphNode(pkg)]; }));
|
|
26
30
|
if (packages.length !== this.size) {
|
|
@@ -49,14 +53,38 @@ class PackageGraph extends Map {
|
|
|
49
53
|
// Yarn decided to ignore https://github.com/npm/npm/pull/15900 and implemented "link:"
|
|
50
54
|
// As they apparently have no intention of being compatible, we have to do it for them.
|
|
51
55
|
// @see https://github.com/yarnpkg/yarn/issues/4212
|
|
52
|
-
|
|
56
|
+
let spec = graphDependencies[depName].replace(/^link:/, 'file:');
|
|
57
|
+
// npa doesn't support the explicit workspace: protocol, supported by
|
|
58
|
+
// pnpm and Yarn.
|
|
59
|
+
const explicitWorkspace = /^workspace:/.test(spec);
|
|
60
|
+
let workspaceTarget;
|
|
61
|
+
if (explicitWorkspace) {
|
|
62
|
+
workspaceTarget = spec;
|
|
63
|
+
spec = spec.replace(/^workspace:/, '');
|
|
64
|
+
// when dependency is defined as target workspace, like `workspace:*`,
|
|
65
|
+
// we'll have to pull the version from its parent package version property
|
|
66
|
+
// example with `1.5.0`, ws:* => "1.5.0", ws:^ => "^1.5.0", ws:~ => "~1.5.0", ws:^1.5.0 => "^1.5.0"
|
|
67
|
+
if (spec === '*' || spec === '^' || spec === '~') {
|
|
68
|
+
const depPkg = packages.find(pkg => pkg.name === depName);
|
|
69
|
+
const version = depPkg === null || depPkg === void 0 ? void 0 : depPkg.version;
|
|
70
|
+
const specTarget = spec === '*' ? '' : spec;
|
|
71
|
+
spec = depPkg ? `${specTarget}${version}` : '';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
53
74
|
const resolved = npm_package_arg_1.default.resolve(depName, spec, currentNode.location);
|
|
75
|
+
resolved.explicitWorkspace = explicitWorkspace;
|
|
76
|
+
if (resolved.explicitWorkspace) {
|
|
77
|
+
resolved.workspaceTarget = workspaceTarget;
|
|
78
|
+
}
|
|
54
79
|
if (!depNode) {
|
|
55
80
|
// it's an external dependency, store the resolution and bail
|
|
56
81
|
return currentNode.externalDependencies.set(depName, resolved);
|
|
57
82
|
}
|
|
58
|
-
if (
|
|
59
|
-
|
|
83
|
+
if (explicitWorkspace ||
|
|
84
|
+
localDependencies === 'force' ||
|
|
85
|
+
resolved.fetchSpec === depNode.location ||
|
|
86
|
+
(localDependencies !== 'explicit' && depNode.satisfies(resolved))) {
|
|
87
|
+
// a local file: specifier, a matching semver or a workspace: version
|
|
60
88
|
currentNode.localDependencies.set(depName, resolved);
|
|
61
89
|
depNode.localDependents.set(currentName, currentNode);
|
|
62
90
|
}
|
|
@@ -164,15 +192,10 @@ class PackageGraph extends Map {
|
|
|
164
192
|
* @returns {Set<CyclicPackageGraphNode>}
|
|
165
193
|
*/
|
|
166
194
|
collapseCycles(rejectCycles) {
|
|
167
|
-
/** @type {string[]} */
|
|
168
195
|
const cyclePaths = [];
|
|
169
|
-
/** @type {Map<PackageGraphNode, CyclicPackageGraphNode>} */
|
|
170
196
|
const nodeToCycle = new Map();
|
|
171
|
-
/** @type {Set<CyclicPackageGraphNode>} */
|
|
172
197
|
const cycles = new Set();
|
|
173
|
-
/** @type {Set<PackageGraphNode>} */
|
|
174
198
|
const alreadyVisited = new Set();
|
|
175
|
-
/** @type {(PackageGraphNode | CyclicPackageGraphNode)[]} */
|
|
176
199
|
const walkStack = [];
|
|
177
200
|
function visits(baseNode, dependentNode) {
|
|
178
201
|
if (nodeToCycle.has(baseNode)) {
|
|
@@ -200,14 +223,12 @@ class PackageGraph extends Map {
|
|
|
200
223
|
cyclePaths.push(cycle.toString());
|
|
201
224
|
return;
|
|
202
225
|
}
|
|
203
|
-
// @ts-ignore
|
|
204
226
|
if (walkStack.indexOf(topLevelDependent) === -1) {
|
|
205
227
|
// eslint-disable-next-line no-use-before-define
|
|
206
228
|
visitWithStack(baseNode, topLevelDependent);
|
|
207
229
|
}
|
|
208
230
|
}
|
|
209
231
|
function visitWithStack(baseNode, currentNode = baseNode) {
|
|
210
|
-
// @ts-ignore
|
|
211
232
|
walkStack.push(currentNode);
|
|
212
233
|
currentNode.localDependents.forEach(visits.bind(null, baseNode));
|
|
213
234
|
walkStack.pop();
|