@teambit/yarn 0.0.803 → 0.0.804
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/create-root-components-dir.d.ts +17 -0
- package/dist/create-root-components-dir.js +166 -0
- package/dist/create-root-components-dir.js.map +1 -0
- package/dist/yarn.package-manager.d.ts +6 -0
- package/dist/yarn.package-manager.js +163 -15
- package/dist/yarn.package-manager.js.map +1 -1
- package/package-tar/teambit-yarn-0.0.804.tgz +0 -0
- package/package.json +13 -12
- package/{preview-1659151732866.js → preview-1659271062546.js} +2 -2
- package/package-tar/teambit-yarn-0.0.803.tgz +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
2
|
+
import { ComponentMap } from '@teambit/component';
|
|
3
|
+
/**
|
|
4
|
+
* All components are copied to a temporary folder (`<workspace-root>/.bit_components`).
|
|
5
|
+
* Each of the copies gets a `package.json` generated, where the component dependencies
|
|
6
|
+
* from the workspace are declared using the `file:` protocol.
|
|
7
|
+
* Every workspace component is then referenced from the `node_modules/<pkgname>` directory (using the `file:` protocol).
|
|
8
|
+
* The peer dependencies of the components are added as runtime dependencies of `node_modules/<pkgname>`.
|
|
9
|
+
*
|
|
10
|
+
* This way Yarn will install each workspace component in isolation with its component dependencies and peer dependencies
|
|
11
|
+
* inside `node_modules/<pkgName>/node_modules`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createRootComponentsDir({ depResolver, rootDir, componentDirectoryMap, }: {
|
|
14
|
+
depResolver: DependencyResolverMain;
|
|
15
|
+
rootDir: string;
|
|
16
|
+
componentDirectoryMap: ComponentMap<string>;
|
|
17
|
+
}): Promise<Record<string, object>>;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.array.iterator.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.promise.js");
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: true
|
|
11
|
+
});
|
|
12
|
+
exports.createRootComponentsDir = createRootComponentsDir;
|
|
13
|
+
|
|
14
|
+
function _defineProperty2() {
|
|
15
|
+
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
+
|
|
17
|
+
_defineProperty2 = function () {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function _fsExtra() {
|
|
25
|
+
const data = _interopRequireDefault(require("fs-extra"));
|
|
26
|
+
|
|
27
|
+
_fsExtra = function () {
|
|
28
|
+
return data;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function _path() {
|
|
35
|
+
const data = _interopRequireDefault(require("path"));
|
|
36
|
+
|
|
37
|
+
_path = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function _dependencyResolver() {
|
|
45
|
+
const data = require("@teambit/dependency-resolver");
|
|
46
|
+
|
|
47
|
+
_dependencyResolver = function () {
|
|
48
|
+
return data;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function _packageJsonFile() {
|
|
55
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component/package-json-file"));
|
|
56
|
+
|
|
57
|
+
_packageJsonFile = function () {
|
|
58
|
+
return data;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
65
|
+
|
|
66
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* All components are copied to a temporary folder (`<workspace-root>/.bit_components`).
|
|
70
|
+
* Each of the copies gets a `package.json` generated, where the component dependencies
|
|
71
|
+
* from the workspace are declared using the `file:` protocol.
|
|
72
|
+
* Every workspace component is then referenced from the `node_modules/<pkgname>` directory (using the `file:` protocol).
|
|
73
|
+
* The peer dependencies of the components are added as runtime dependencies of `node_modules/<pkgname>`.
|
|
74
|
+
*
|
|
75
|
+
* This way Yarn will install each workspace component in isolation with its component dependencies and peer dependencies
|
|
76
|
+
* inside `node_modules/<pkgName>/node_modules`.
|
|
77
|
+
*/
|
|
78
|
+
async function createRootComponentsDir({
|
|
79
|
+
depResolver,
|
|
80
|
+
rootDir,
|
|
81
|
+
componentDirectoryMap
|
|
82
|
+
}) {
|
|
83
|
+
const pickedComponents = new Map();
|
|
84
|
+
const deps = await pickComponentsAndAllDeps(depResolver, Array.from(componentDirectoryMap.hashMap.keys()), componentDirectoryMap, pickedComponents);
|
|
85
|
+
|
|
86
|
+
const copiesDir = _path().default.join(rootDir, 'node_modules/.bit_components');
|
|
87
|
+
|
|
88
|
+
await Promise.all(Array.from(pickedComponents.entries()).map(async ([rootComponentDir, packageJson]) => {
|
|
89
|
+
const rel = _path().default.relative(rootDir, rootComponentDir);
|
|
90
|
+
|
|
91
|
+
const targetDir = _path().default.join(copiesDir, rel);
|
|
92
|
+
|
|
93
|
+
const modulesDir = _path().default.join(rootComponentDir, 'node_modules');
|
|
94
|
+
|
|
95
|
+
await _fsExtra().default.copy(rootComponentDir, targetDir, {
|
|
96
|
+
filter: src => src !== modulesDir,
|
|
97
|
+
overwrite: true
|
|
98
|
+
});
|
|
99
|
+
await _fsExtra().default.writeJson(_path().default.join(targetDir, 'package.json'), packageJson, {
|
|
100
|
+
spaces: 2
|
|
101
|
+
});
|
|
102
|
+
}));
|
|
103
|
+
const newManifestsByPaths = {};
|
|
104
|
+
|
|
105
|
+
for (const rootComponentDir of deps) {
|
|
106
|
+
const rel = _path().default.relative(rootDir, rootComponentDir);
|
|
107
|
+
|
|
108
|
+
const targetDir = _path().default.join(copiesDir, rel);
|
|
109
|
+
|
|
110
|
+
const pkgJson = pickedComponents.get(rootComponentDir);
|
|
111
|
+
|
|
112
|
+
if (pkgJson) {
|
|
113
|
+
const compDir = _path().default.join(rootDir, 'node_modules', pkgJson.name);
|
|
114
|
+
|
|
115
|
+
newManifestsByPaths[compDir] = {
|
|
116
|
+
name: pkgJson.name,
|
|
117
|
+
dependencies: _objectSpread(_objectSpread({
|
|
118
|
+
[pkgJson.name]: `file:${_path().default.relative(compDir, targetDir)}`
|
|
119
|
+
}, pkgJson.peerDependencies), pkgJson['defaultPeerDependencies']),
|
|
120
|
+
// is it needed?
|
|
121
|
+
installConfig: {
|
|
122
|
+
hoistingLimits: 'dependencies'
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return newManifestsByPaths;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* This function generates a `package.json` for each component in the workspace.
|
|
132
|
+
* Any component dependencies that are present in the workspace are added to the dependencies
|
|
133
|
+
* as local `file:` dependencies.
|
|
134
|
+
*/
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
async function pickComponentsAndAllDeps(depResolver, rootComponentIds, componentDirectoryMap, pickedComponents) {
|
|
138
|
+
const dependencies = [];
|
|
139
|
+
await Promise.all(rootComponentIds.map(async rootComponentId => {
|
|
140
|
+
const component = componentDirectoryMap.hashMap.get(rootComponentId);
|
|
141
|
+
|
|
142
|
+
if (component) {
|
|
143
|
+
dependencies.push(component[1]);
|
|
144
|
+
let packageJsonObject = pickedComponents.get(component[1]);
|
|
145
|
+
|
|
146
|
+
if (!packageJsonObject) {
|
|
147
|
+
packageJsonObject = _packageJsonFile().default.createFromComponent(component[1], component[0].state._consumer).packageJsonObject;
|
|
148
|
+
pickedComponents.set(component[1], packageJsonObject);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const depsList = await depResolver.getDependencies(component[0]);
|
|
152
|
+
const deps = await pickComponentsAndAllDeps(depResolver, depsList.dependencies.filter(dep => dep instanceof _dependencyResolver().ComponentDependency).map(dep => dep.componentId.toString()), componentDirectoryMap, pickedComponents);
|
|
153
|
+
|
|
154
|
+
for (const dep of deps) {
|
|
155
|
+
const pkgJson = pickedComponents.get(dep);
|
|
156
|
+
|
|
157
|
+
if (pkgJson) {
|
|
158
|
+
packageJsonObject.dependencies[pkgJson.name] = `file:${_path().default.relative(component[1], dep)}`;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}));
|
|
163
|
+
return dependencies;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
//# sourceMappingURL=create-root-components-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createRootComponentsDir","depResolver","rootDir","componentDirectoryMap","pickedComponents","Map","deps","pickComponentsAndAllDeps","Array","from","hashMap","keys","copiesDir","path","join","Promise","all","entries","map","rootComponentDir","packageJson","rel","relative","targetDir","modulesDir","fs","copy","filter","src","overwrite","writeJson","spaces","newManifestsByPaths","pkgJson","get","compDir","name","dependencies","peerDependencies","installConfig","hoistingLimits","rootComponentIds","rootComponentId","component","push","packageJsonObject","PackageJsonFile","createFromComponent","state","_consumer","set","depsList","getDependencies","dep","ComponentDependency","componentId","toString"],"sources":["create-root-components-dir.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport { ComponentDependency, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ComponentMap } from '@teambit/component';\nimport PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';\n\n/**\n * All components are copied to a temporary folder (`<workspace-root>/.bit_components`).\n * Each of the copies gets a `package.json` generated, where the component dependencies\n * from the workspace are declared using the `file:` protocol.\n * Every workspace component is then referenced from the `node_modules/<pkgname>` directory (using the `file:` protocol).\n * The peer dependencies of the components are added as runtime dependencies of `node_modules/<pkgname>`.\n *\n * This way Yarn will install each workspace component in isolation with its component dependencies and peer dependencies\n * inside `node_modules/<pkgName>/node_modules`.\n */\nexport async function createRootComponentsDir({\n depResolver,\n rootDir,\n componentDirectoryMap,\n}: {\n depResolver: DependencyResolverMain;\n rootDir: string;\n componentDirectoryMap: ComponentMap<string>;\n}): Promise<Record<string, object>> {\n const pickedComponents = new Map<string, Record<string, any>>();\n const deps = await pickComponentsAndAllDeps(\n depResolver,\n Array.from(componentDirectoryMap.hashMap.keys()),\n componentDirectoryMap,\n pickedComponents\n );\n const copiesDir = path.join(rootDir, 'node_modules/.bit_components');\n await Promise.all(\n Array.from(pickedComponents.entries()).map(async ([rootComponentDir, packageJson]) => {\n const rel = path.relative(rootDir, rootComponentDir);\n const targetDir = path.join(copiesDir, rel);\n const modulesDir = path.join(rootComponentDir, 'node_modules');\n await fs.copy(rootComponentDir, targetDir, {\n filter: (src) => src !== modulesDir,\n overwrite: true,\n });\n await fs.writeJson(path.join(targetDir, 'package.json'), packageJson, { spaces: 2 });\n })\n );\n const newManifestsByPaths: Record<string, object> = {};\n for (const rootComponentDir of deps) {\n const rel = path.relative(rootDir, rootComponentDir);\n const targetDir = path.join(copiesDir, rel);\n const pkgJson = pickedComponents.get(rootComponentDir);\n if (pkgJson) {\n const compDir = path.join(rootDir, 'node_modules', pkgJson.name);\n newManifestsByPaths[compDir] = {\n name: pkgJson.name,\n dependencies: {\n [pkgJson.name]: `file:${path.relative(compDir, targetDir)}`,\n ...pkgJson.peerDependencies,\n ...pkgJson['defaultPeerDependencies'], // eslint-disable-line\n },\n // is it needed?\n installConfig: {\n hoistingLimits: 'dependencies',\n },\n };\n }\n }\n return newManifestsByPaths;\n}\n\n/**\n * This function generates a `package.json` for each component in the workspace.\n * Any component dependencies that are present in the workspace are added to the dependencies\n * as local `file:` dependencies.\n */\nasync function pickComponentsAndAllDeps(\n depResolver: DependencyResolverMain,\n rootComponentIds: string[],\n componentDirectoryMap: ComponentMap<string>,\n pickedComponents: Map<string, Record<string, any>>\n) {\n const dependencies: string[] = [];\n await Promise.all(\n rootComponentIds.map(async (rootComponentId) => {\n const component = componentDirectoryMap.hashMap.get(rootComponentId);\n if (component) {\n dependencies.push(component[1]);\n let packageJsonObject = pickedComponents.get(component[1]);\n if (!packageJsonObject) {\n packageJsonObject = PackageJsonFile.createFromComponent(\n component[1],\n component[0].state._consumer\n ).packageJsonObject;\n pickedComponents.set(component[1], packageJsonObject);\n }\n const depsList = await depResolver.getDependencies(component[0]);\n const deps = await pickComponentsAndAllDeps(\n depResolver,\n depsList.dependencies\n .filter((dep) => dep instanceof ComponentDependency)\n .map((dep: any) => dep.componentId.toString()),\n componentDirectoryMap,\n pickedComponents\n );\n for (const dep of deps) {\n const pkgJson = pickedComponents.get(dep);\n if (pkgJson) {\n packageJsonObject.dependencies[pkgJson.name] = `file:${path.relative(component[1], dep)}`;\n }\n }\n }\n })\n );\n return dependencies;\n}\n"],"mappings":"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"}
|
|
@@ -8,6 +8,11 @@ export declare class YarnPackageManager implements PackageManager {
|
|
|
8
8
|
private logger;
|
|
9
9
|
constructor(depResolver: DependencyResolverMain, pkg: PkgMain, logger: Logger);
|
|
10
10
|
install(rootDir: string, rootPolicy: WorkspacePolicy, componentDirectoryMap: ComponentMap<string>, installOptions?: PackageManagerInstallOptions): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Every component is overriden with a local directory of that component.
|
|
13
|
+
* So the component will be installed from the local directory, not from the registry.
|
|
14
|
+
*/
|
|
15
|
+
private _createLocalDirectoryOverrides;
|
|
11
16
|
private getPackageJsonPath;
|
|
12
17
|
private backupPackageJsons;
|
|
13
18
|
private restorePackageJsons;
|
|
@@ -32,4 +37,5 @@ export declare class YarnPackageManager implements PackageManager {
|
|
|
32
37
|
private computeComponents;
|
|
33
38
|
private computeDeps;
|
|
34
39
|
resolveRemoteVersion(packageName: string, options: PackageManagerResolveRemoteVersionOptions): Promise<ResolvedPackageVersion>;
|
|
40
|
+
getInjectedDirs(rootDir: string, componentDir: string, packageName: string): Promise<string[]>;
|
|
35
41
|
}
|
|
@@ -11,6 +11,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
11
11
|
});
|
|
12
12
|
exports.YarnPackageManager = void 0;
|
|
13
13
|
|
|
14
|
+
function _defineProperty2() {
|
|
15
|
+
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
+
|
|
17
|
+
_defineProperty2 = function () {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
|
|
14
24
|
function _parsePackageName() {
|
|
15
25
|
const data = _interopRequireDefault(require("parse-package-name"));
|
|
16
26
|
|
|
@@ -121,6 +131,30 @@ function _versionSelectorType2() {
|
|
|
121
131
|
return data;
|
|
122
132
|
}
|
|
123
133
|
|
|
134
|
+
function _yaml() {
|
|
135
|
+
const data = _interopRequireDefault(require("yaml"));
|
|
136
|
+
|
|
137
|
+
_yaml = function () {
|
|
138
|
+
return data;
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
return data;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function _createRootComponentsDir() {
|
|
145
|
+
const data = require("./create-root-components-dir");
|
|
146
|
+
|
|
147
|
+
_createRootComponentsDir = function () {
|
|
148
|
+
return data;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
return data;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
155
|
+
|
|
156
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
157
|
+
|
|
124
158
|
class YarnPackageManager {
|
|
125
159
|
constructor(depResolver, pkg, logger) {
|
|
126
160
|
this.depResolver = depResolver;
|
|
@@ -133,7 +167,7 @@ class YarnPackageManager {
|
|
|
133
167
|
const options = {
|
|
134
168
|
filterComponentsFromManifests: true,
|
|
135
169
|
createManifestForComponentsWithoutDependencies: true,
|
|
136
|
-
dedupe:
|
|
170
|
+
dedupe: !installOptions.rootComponentsForCapsules,
|
|
137
171
|
dependencyFilterFn: installOptions.dependencyFilterFn
|
|
138
172
|
};
|
|
139
173
|
const components = componentDirectoryMap.components;
|
|
@@ -155,28 +189,70 @@ class YarnPackageManager {
|
|
|
155
189
|
}).manifest; // @ts-ignore
|
|
156
190
|
|
|
157
191
|
project.setupResolutions();
|
|
158
|
-
const rootWs = await this.createWorkspace(rootDir, project, rootManifest, installOptions.overrides); // const manifests = Array.from(workspaceManifest.componentsManifestsMap.entries());
|
|
159
192
|
|
|
160
|
-
|
|
161
|
-
|
|
193
|
+
if (installOptions.rootComponentsForCapsules && !installOptions.useNesting) {
|
|
194
|
+
installOptions.overrides = _objectSpread(_objectSpread({}, installOptions.overrides), this._createLocalDirectoryOverrides(rootDir, componentDirectoryMap));
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
const rootWs = await this.createWorkspace(rootDir, project, rootManifest, installOptions.overrides);
|
|
198
|
+
|
|
199
|
+
if (installOptions.rootComponents) {
|
|
200
|
+
rootWs.manifest.installConfig = {
|
|
201
|
+
hoistingLimits: 'dependencies'
|
|
202
|
+
};
|
|
203
|
+
} // const manifests = Array.from(workspaceManifest.componentsManifestsMap.entries());
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
let manifests = this.computeComponents(workspaceManifest.componentsManifestsMap, componentDirectoryMap, installOptions.copyPeerToRuntimeOnComponents);
|
|
207
|
+
|
|
208
|
+
if (installOptions.rootComponents) {
|
|
209
|
+
// Manifests are extended with "wrapper components"
|
|
210
|
+
// that group all workspace components with their dependencies and peer dependencies.
|
|
211
|
+
manifests = _objectSpread(_objectSpread({}, await (0, _createRootComponentsDir().createRootComponentsDir)({
|
|
212
|
+
depResolver: this.depResolver,
|
|
213
|
+
rootDir,
|
|
214
|
+
componentDirectoryMap
|
|
215
|
+
})), manifests);
|
|
216
|
+
} else if (installOptions.useNesting) {
|
|
217
|
+
// Nesting is used for scope aspect capsules.
|
|
218
|
+
// In a capsule, all peer dependencies should be installed,
|
|
219
|
+
// so we make runtime dependencies from peer dependencies.
|
|
220
|
+
manifests[rootDir].dependencies = _objectSpread(_objectSpread(_objectSpread({}, manifests[rootDir].peerDependencies), manifests[rootDir].defaultPeerDependencies), manifests[rootDir].dependencies);
|
|
221
|
+
} else if (installOptions.rootComponentsForCapsules) {
|
|
222
|
+
await updateManifestsForInstallationInWorkspaceCapsules(manifests);
|
|
223
|
+
} else {
|
|
224
|
+
await (0, _dependencyResolver().extendWithComponentsFromDir)(rootDir, manifests);
|
|
225
|
+
}
|
|
226
|
+
|
|
162
227
|
this.logger.debug('root manifest for installation', rootManifest);
|
|
163
228
|
this.logger.debug('components manifests for installation', manifests);
|
|
164
|
-
const workspacesIdents = {};
|
|
165
229
|
const workspacesP = Object.keys(manifests).map(async path => {
|
|
166
230
|
const manifest = manifests[path];
|
|
167
231
|
const workspace = await this.createWorkspace(path, project, manifest);
|
|
168
|
-
const workspaceIdentHash = workspace.locator.identHash; //
|
|
169
|
-
|
|
170
|
-
if (workspacesIdents[workspaceIdentHash]) {
|
|
171
|
-
this.logger.debug(`overriding internal workspace fields to prevent duplications for workspace ${workspace.cwd}`);
|
|
172
|
-
this.overrideInternalWorkspaceParams(workspace);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
workspacesIdents[workspace.locator.identHash] = true;
|
|
176
232
|
return workspace;
|
|
177
233
|
});
|
|
178
234
|
const workspaces = await Promise.all(workspacesP);
|
|
179
|
-
|
|
235
|
+
|
|
236
|
+
if (!installOptions.rootComponents && !installOptions.rootComponentsForCapsules && !installOptions.useNesting) {
|
|
237
|
+
const workspacesIdents = {};
|
|
238
|
+
|
|
239
|
+
for (const workspace of workspaces) {
|
|
240
|
+
const workspaceIdentHash = workspace.locator.identHash;
|
|
241
|
+
|
|
242
|
+
if (workspacesIdents[workspaceIdentHash]) {
|
|
243
|
+
this.logger.debug(`overriding internal workspace fields to prevent duplications for workspace ${workspace.cwd}`);
|
|
244
|
+
this.overrideInternalWorkspaceParams(workspace);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
workspacesIdents[workspace.locator.identHash] = true;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (!manifests[rootDir]) {
|
|
252
|
+
workspaces.push(rootWs);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
this.setupWorkspaces(project, workspaces);
|
|
180
256
|
const cache = await _core().Cache.find(config); // const existingPackageJsons = await this.backupPackageJsons(rootDir, componentDirectoryMap);
|
|
181
257
|
|
|
182
258
|
const installReport = await _core().StreamReport.start({
|
|
@@ -197,6 +273,20 @@ class YarnPackageManager {
|
|
|
197
273
|
if (installReport.hasErrors()) process.exit(installReport.exitCode());
|
|
198
274
|
this.logger.consoleSuccess('installing dependencies');
|
|
199
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Every component is overriden with a local directory of that component.
|
|
278
|
+
* So the component will be installed from the local directory, not from the registry.
|
|
279
|
+
*/
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
_createLocalDirectoryOverrides(rootDir, componentDirectoryMap) {
|
|
283
|
+
const overrides = {};
|
|
284
|
+
Array.from(componentDirectoryMap.hashMap.entries()).forEach(([, [component, path]]) => {
|
|
285
|
+
const name = this.depResolver.getPackageName(component);
|
|
286
|
+
overrides[name] = `file:${(0, _path().relative)(rootDir, path)}`;
|
|
287
|
+
});
|
|
288
|
+
return overrides;
|
|
289
|
+
}
|
|
200
290
|
|
|
201
291
|
getPackageJsonPath(dir) {
|
|
202
292
|
const packageJsonPath = (0, _path().join)(dir, 'package.json');
|
|
@@ -272,6 +362,7 @@ class YarnPackageManager {
|
|
|
272
362
|
ws.manifest.dependencies = this.computeDeps(manifest.dependencies);
|
|
273
363
|
ws.manifest.devDependencies = this.computeDeps(manifest.devDependencies);
|
|
274
364
|
ws.manifest.peerDependencies = this.computeDeps(manifest.peerDependencies);
|
|
365
|
+
ws.manifest.installConfig = manifest.installConfig;
|
|
275
366
|
|
|
276
367
|
if (overrides) {
|
|
277
368
|
ws.manifest.resolutions = convertOverridesToResolutions(overrides);
|
|
@@ -393,7 +484,9 @@ class YarnPackageManager {
|
|
|
393
484
|
httpsProxy: proxyConfig === null || proxyConfig === void 0 ? void 0 : proxyConfig.httpsProxy,
|
|
394
485
|
enableStrictSsl: networkConfig === null || networkConfig === void 0 ? void 0 : networkConfig.strictSSL,
|
|
395
486
|
// enableInlineBuilds: true,
|
|
396
|
-
globalFolder: `${_userHome().default}/.yarn/global
|
|
487
|
+
globalFolder: `${_userHome().default}/.yarn/global`,
|
|
488
|
+
// We need to disable self-references as say create circular symlinks.
|
|
489
|
+
nmSelfReferences: false // TODO: check about support for the following: (see more here - https://github.com/yarnpkg/berry/issues/1434#issuecomment-801449010)
|
|
397
490
|
// ca?: string;
|
|
398
491
|
// cert?: string;
|
|
399
492
|
// key?: string;
|
|
@@ -506,6 +599,34 @@ class YarnPackageManager {
|
|
|
506
599
|
};
|
|
507
600
|
}
|
|
508
601
|
|
|
602
|
+
async getInjectedDirs(rootDir, componentDir, packageName) {
|
|
603
|
+
const modulesDir = (0, _path().join)(rootDir, 'node_modules');
|
|
604
|
+
(0, _path().relative)(modulesDir, componentDir);
|
|
605
|
+
let yarnStateContent;
|
|
606
|
+
|
|
607
|
+
try {
|
|
608
|
+
yarnStateContent = await _fsExtra().default.readFile((0, _path().join)(modulesDir, '.yarn-state.yml'), 'utf-8');
|
|
609
|
+
} catch (err) {
|
|
610
|
+
if (err.code === 'ENOENT') return [];
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
const yarnState = _yaml().default.parse(yarnStateContent);
|
|
614
|
+
|
|
615
|
+
const injectedDirs = [];
|
|
616
|
+
|
|
617
|
+
for (const [key, {
|
|
618
|
+
locations
|
|
619
|
+
}] of Object.entries(yarnState)) {
|
|
620
|
+
if (key.startsWith(`${packageName}@`) || key.startsWith(`${packageName}__root@`)) {
|
|
621
|
+
for (const location of locations) {
|
|
622
|
+
injectedDirs.push(location);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
return injectedDirs;
|
|
628
|
+
}
|
|
629
|
+
|
|
509
630
|
}
|
|
510
631
|
|
|
511
632
|
exports.YarnPackageManager = YarnPackageManager;
|
|
@@ -530,5 +651,32 @@ function toYarnResolutionSelector({
|
|
|
530
651
|
description: pref
|
|
531
652
|
};
|
|
532
653
|
}
|
|
654
|
+
/**
|
|
655
|
+
* This function prepares the component manifests for installation inside a capsule.
|
|
656
|
+
* Inside a capsule, all peer dependencies of the component should be installed.
|
|
657
|
+
* So peer dependencies are added to the manifest as runtime dependencies.
|
|
658
|
+
* Also, the package.json files are update to contain other component dependencies
|
|
659
|
+
* in dependencies as local "file:" dependencies.
|
|
660
|
+
*/
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
async function updateManifestsForInstallationInWorkspaceCapsules(manifests) {
|
|
664
|
+
await Promise.all(Object.entries(manifests).map(async ([dir, manifest]) => {
|
|
665
|
+
const pkgJsonPath = (0, _path().join)(dir, 'package.json');
|
|
666
|
+
const pkgJson = await _fsExtra().default.readJson(pkgJsonPath); // We need to write the package.json files because they need to contain the workspace dependencies.
|
|
667
|
+
// When packages are installed via the "file:" protocol, Yarn reads their package.json files
|
|
668
|
+
// from the file system even if they are from the workspace.
|
|
669
|
+
|
|
670
|
+
await _fsExtra().default.writeJson(pkgJsonPath, _objectSpread(_objectSpread({}, pkgJson), {}, {
|
|
671
|
+
dependencies: manifest.dependencies
|
|
672
|
+
}), {
|
|
673
|
+
spaces: 2
|
|
674
|
+
});
|
|
675
|
+
manifest.dependencies = _objectSpread(_objectSpread(_objectSpread({}, manifest.peerDependencies), manifest.defaultPeerDependencies), manifest.dependencies);
|
|
676
|
+
manifest.installConfig = {
|
|
677
|
+
hoistingLimits: 'workspaces'
|
|
678
|
+
};
|
|
679
|
+
}));
|
|
680
|
+
}
|
|
533
681
|
|
|
534
682
|
//# sourceMappingURL=yarn.package-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["YarnPackageManager","constructor","depResolver","pkg","logger","install","rootDir","rootPolicy","componentDirectoryMap","installOptions","setStatusLine","options","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","dependencyFilterFn","components","workspaceManifest","getWorkspaceManifest","undefined","rootDirPath","npath","toPortablePath","cacheDir","getCacheFolder","cacheRootDir","config","computeConfiguration","nodeLinker","packageManagerConfigRootDir","project","Project","configuration","rootManifest","toJsonWithDir","copyPeerToRuntime","copyPeerToRuntimeOnRoot","installPeersFromEnvs","manifest","setupResolutions","rootWs","createWorkspace","overrides","manifests","computeComponents","componentsManifestsMap","copyPeerToRuntimeOnComponents","extendWithComponentsFromDir","debug","workspacesIdents","workspacesP","Object","keys","map","path","workspace","workspaceIdentHash","locator","identHash","cwd","overrideInternalWorkspaceParams","workspaces","Promise","all","setupWorkspaces","concat","cache","Cache","find","installReport","StreamReport","start","stdout","process","report","persistProject","persistLockfile","hasErrors","exit","exitCode","consoleSuccess","getPackageJsonPath","dir","packageJsonPath","join","backupPackageJsons","result","rootPackageJsonPath","getFileToBackup","componentsBackupsP","toArray","component","file","getComponentPackageJsonToBackup","restorePackageJsons","backupJsons","promises","entries","exists","fs","pathExists","remove","writeFile","existingFile","readFile","resolve","wsPath","name","ws","Workspace","setup","identity","structUtils","parseIdent","version","dependencies","computeDeps","devDependencies","peerDependencies","resolutions","convertOverridesToResolutions","ident","makeIdent","scope","makeLocator","reference","anchoredDescriptor","makeDescriptor","WorkspaceResolver","protocol","relativeCwd","anchoredLocator","workspacesByCwd","Map","workspacesByIdent","forEach","dup","get","Error","push","set","getScopedRegistries","registries","scopedRegistries","scopes","reduce","acc","scopeName","regDef","authProp","getAuthProp","npmRegistryServer","uri","npmAlwaysAuth","alwaysAuth","keyName","value","registry","token","baseToken","baseDir","userHome","cacheFolder","getRegistries","proxyConfig","getProxyConfig","networkConfig","getNetworkConfig","pluginConfig","getPluginConfiguration","startingCwd","Configuration","defaultRegistry","defaultAuthProp","data","installStatePath","pnpDataPath","npmScopes","virtualFolder","httpProxy","httpsProxy","enableStrictSsl","strictSSL","globalFolder","use","componentManifests","componentsDirMap","copyPeer","packageName","getPackageName","has","toJson","rawDeps","resolveRemoteVersion","parsedPackage","parsePackageName","parsedVersion","versionType","versionSelectorType","type","isSemver","npmPlugin","resolvers","_NpmRemapResolver","NpmSemverResolver","NpmTagResolver","resolver","range","LightReport","descriptor","resolveOptions","candidates","getCandidates","parsedRange","parseRange","selector","parsedOverrides","parseOverrides","override","pattern","from","parentPkg","toYarnResolutionSelector","targetPkg","newPref","pref","fullName","description"],"sources":["yarn.package-manager.ts"],"sourcesContent":["import parsePackageName from 'parse-package-name';\nimport {\n extendWithComponentsFromDir,\n WorkspacePolicy,\n DependencyResolverMain,\n PackageManager,\n PackageManagerInstallOptions,\n ComponentsManifestsMap,\n CreateFromComponentsOptions,\n Registries,\n Registry,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n} from '@teambit/dependency-resolver';\nimport { ComponentMap, Component } from '@teambit/component';\nimport fs from 'fs-extra';\nimport { join, resolve } from 'path';\nimport {\n Workspace,\n Project,\n Configuration,\n structUtils,\n IdentHash,\n Descriptor,\n Cache,\n StreamReport,\n ResolveOptions,\n LightReport,\n WorkspaceResolver,\n} from '@yarnpkg/core';\nimport { getPluginConfiguration } from '@yarnpkg/cli';\nimport { npath, PortablePath } from '@yarnpkg/fslib';\nimport { Resolution } from '@yarnpkg/parsers';\nimport npmPlugin from '@yarnpkg/plugin-npm';\nimport parseOverrides from '@pnpm/parse-overrides';\nimport { PkgMain } from '@teambit/pkg';\nimport userHome from 'user-home';\nimport { Logger } from '@teambit/logger';\nimport versionSelectorType from 'version-selector-type';\n\ntype BackupJsons = {\n [path: string]: Buffer | undefined;\n};\n\nexport class YarnPackageManager implements PackageManager {\n constructor(private depResolver: DependencyResolverMain, private pkg: PkgMain, private logger: Logger) {}\n\n async install(\n rootDir: string,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<void> {\n this.logger.setStatusLine('installing dependencies');\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n dependencyFilterFn: installOptions.dependencyFilterFn,\n };\n const components = componentDirectoryMap.components;\n const workspaceManifest = await this.depResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n components,\n options\n );\n\n const rootDirPath = npath.toPortablePath(rootDir);\n const cacheDir = this.getCacheFolder(installOptions.cacheRootDir);\n const config = await this.computeConfiguration(rootDirPath, cacheDir, {\n nodeLinker: installOptions.nodeLinker,\n packageManagerConfigRootDir: installOptions.packageManagerConfigRootDir,\n });\n\n const project = new Project(rootDirPath, { configuration: config });\n\n const rootManifest = workspaceManifest.toJsonWithDir({\n copyPeerToRuntime: installOptions.copyPeerToRuntimeOnRoot,\n installPeersFromEnvs: installOptions.installPeersFromEnvs,\n }).manifest;\n\n // @ts-ignore\n project.setupResolutions();\n const rootWs = await this.createWorkspace(rootDir, project, rootManifest, installOptions.overrides);\n\n // const manifests = Array.from(workspaceManifest.componentsManifestsMap.entries());\n const manifests = this.computeComponents(\n workspaceManifest.componentsManifestsMap,\n componentDirectoryMap,\n installOptions.copyPeerToRuntimeOnComponents\n );\n await extendWithComponentsFromDir(rootDir, manifests);\n\n this.logger.debug('root manifest for installation', rootManifest);\n this.logger.debug('components manifests for installation', manifests);\n\n const workspacesIdents = {};\n\n const workspacesP = Object.keys(manifests).map(async (path) => {\n const manifest = manifests[path];\n const workspace = await this.createWorkspace(path, project, manifest);\n const workspaceIdentHash = workspace.locator.identHash;\n //\n if (workspacesIdents[workspaceIdentHash]) {\n this.logger.debug(\n `overriding internal workspace fields to prevent duplications for workspace ${workspace.cwd}`\n );\n this.overrideInternalWorkspaceParams(workspace);\n }\n workspacesIdents[workspace.locator.identHash] = true;\n return workspace;\n });\n\n const workspaces = await Promise.all(workspacesP);\n\n this.setupWorkspaces(project, workspaces.concat(rootWs));\n\n const cache = await Cache.find(config);\n // const existingPackageJsons = await this.backupPackageJsons(rootDir, componentDirectoryMap);\n\n const installReport = await StreamReport.start(\n {\n stdout: process.stdout,\n configuration: config,\n },\n async (report) => {\n await project.install({\n persistProject: false,\n cache,\n report,\n });\n await project.persistLockfile();\n }\n );\n\n // TODO: check if package.json and link files generation can be prevented through the yarn API or\n // mock the files by hooking to `xfs`.\n // see the persistProject: false above\n // await this.restorePackageJsons(existingPackageJsons);\n\n if (installReport.hasErrors()) process.exit(installReport.exitCode());\n\n this.logger.consoleSuccess('installing dependencies');\n }\n\n private getPackageJsonPath(dir: string): string {\n const packageJsonPath = join(dir, 'package.json');\n return packageJsonPath;\n }\n\n private async backupPackageJsons(rootDir: string, componentDirectoryMap: ComponentMap<string>): Promise<BackupJsons> {\n const result: BackupJsons = {};\n const rootPackageJsonPath = this.getPackageJsonPath(rootDir);\n result[rootPackageJsonPath] = await this.getFileToBackup(rootPackageJsonPath);\n const componentsBackupsP = componentDirectoryMap.toArray().map(async ([component, dir]) => {\n const { packageJsonPath, file } = await this.getComponentPackageJsonToBackup(component, dir);\n result[packageJsonPath] = file;\n });\n await Promise.all(componentsBackupsP);\n return result;\n }\n\n private async restorePackageJsons(backupJsons: BackupJsons): Promise<void | undefined> {\n const promises = Object.entries(backupJsons).map(async ([packageJsonPath, file]) => {\n const exists = await fs.pathExists(packageJsonPath);\n // if there is no backup it means it wasn't there before and should be deleted\n if (!file) {\n if (exists) {\n return fs.remove(packageJsonPath);\n }\n return undefined;\n }\n return fs.writeFile(packageJsonPath, file);\n });\n await Promise.all(promises);\n }\n\n private async getFileToBackup(packageJsonPath: string): Promise<Buffer | undefined> {\n const exists = await fs.pathExists(packageJsonPath);\n if (!exists) {\n return undefined;\n }\n const existingFile = await fs.readFile(packageJsonPath);\n return existingFile;\n }\n\n private async getComponentPackageJsonToBackup(\n component: Component,\n dir: string\n ): Promise<{ packageJsonPath: string; file: Buffer | undefined }> {\n const packageJsonPath = resolve(join(dir, 'package.json'));\n const result = {\n packageJsonPath,\n file: await this.getFileToBackup(packageJsonPath),\n };\n return result;\n }\n\n private async createWorkspace(rootDir: string, project: Project, manifest: any, overrides?: Record<string, string>) {\n const wsPath = npath.toPortablePath(rootDir);\n const name = manifest.name || 'workspace';\n\n const ws = new Workspace(wsPath, { project });\n await ws.setup();\n const identity = structUtils.parseIdent(name);\n // const needOverrideInternal = !!ws.manifest.name && !!manifest.name;\n ws.manifest.name = identity;\n ws.manifest.version = manifest.version;\n ws.manifest.dependencies = this.computeDeps(manifest.dependencies);\n ws.manifest.devDependencies = this.computeDeps(manifest.devDependencies);\n ws.manifest.peerDependencies = this.computeDeps(manifest.peerDependencies);\n if (overrides) {\n ws.manifest.resolutions = convertOverridesToResolutions(overrides);\n }\n\n // if (needOverrideInternal) this.overrideInternalWorkspaceParams(ws);\n\n return ws;\n }\n\n /**\n * This is used to handle cases where in the capsules dirs we have the same component with different versions\n * The yarn ident is calculated by the manifest (package.json) name if exist\n * in our case for the same component with different versions we will get the same ident which will result errors later.\n * This is make sense in the original case of yarn workspace (it make sense you don't have 2 workspace with same name)\n * However in our case it doesn't make sense.\n * This function will make sure the ident will use the version as well\n * @param ws\n */\n private overrideInternalWorkspaceParams(ws: Workspace) {\n const ident = structUtils.makeIdent(\n ws.manifest.name?.scope || null,\n `${ws.manifest.name?.name}-${ws.manifest.version}`\n );\n\n ws.manifest.name = ident;\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.locator = structUtils.makeLocator(ident, ws.reference);\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.anchoredDescriptor = structUtils.makeDescriptor(ws.locator, `${WorkspaceResolver.protocol}${ws.relativeCwd}`);\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.anchoredLocator = structUtils.makeLocator(ws.locator, `${WorkspaceResolver.protocol}${ws.relativeCwd}`);\n }\n\n private setupWorkspaces(project: Project, workspaces: Workspace[]) {\n project.workspaces = [];\n project.workspacesByCwd = new Map();\n project.workspacesByIdent = new Map();\n\n workspaces.forEach((workspace) => {\n const dup = project.workspacesByIdent.get(workspace.locator.identHash);\n if (typeof dup !== `undefined`) {\n throw new Error(`Duplicate workspace name: ${workspace.cwd} conflicts with ${dup.cwd}`);\n }\n\n project.workspaces.push(workspace);\n project.workspacesByCwd.set(workspace.cwd, workspace);\n project.workspacesByIdent.set(workspace.locator.identHash, workspace);\n });\n }\n\n private async getScopedRegistries(registries: Registries) {\n const scopedRegistries = Object.keys(registries.scopes).reduce((acc, scopeName) => {\n const regDef = registries.scopes[scopeName];\n const authProp = this.getAuthProp(regDef);\n acc[scopeName] = {\n npmRegistryServer: regDef.uri,\n npmAlwaysAuth: regDef.alwaysAuth,\n };\n if (authProp) {\n acc[scopeName][authProp.keyName] = authProp.value;\n }\n\n return acc;\n }, {});\n return scopedRegistries;\n }\n\n private getAuthProp(registry: Registry) {\n if (registry.token) {\n return {\n keyName: 'npmAuthToken',\n value: registry.token,\n };\n }\n if (registry.baseToken) {\n return {\n keyName: 'npmAuthIdent',\n value: registry.baseToken,\n };\n }\n return undefined;\n }\n\n private getCacheFolder(baseDir: string = userHome) {\n return `${baseDir}/.yarn/cache`;\n }\n\n // TODO: implement this to automate configuration.\n private async computeConfiguration(\n rootDirPath: PortablePath,\n cacheFolder: string,\n options: {\n nodeLinker?: 'hoisted' | 'isolated';\n packageManagerConfigRootDir?: string;\n }\n ): Promise<Configuration> {\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const pluginConfig = getPluginConfiguration();\n let startingCwd: PortablePath;\n if (options.packageManagerConfigRootDir) {\n startingCwd = npath.toPortablePath(options.packageManagerConfigRootDir);\n } else {\n startingCwd = rootDirPath;\n }\n const config = await Configuration.find(startingCwd, pluginConfig);\n const scopedRegistries = await this.getScopedRegistries(registries);\n const defaultRegistry = registries.defaultRegistry;\n const defaultAuthProp = this.getAuthProp(defaultRegistry);\n\n const data = {\n nodeLinker: options.nodeLinker === 'isolated' ? 'pnpm' : 'node-modules',\n installStatePath: `${rootDirPath}/.yarn/install-state.gz`,\n cacheFolder,\n pnpDataPath: `${rootDirPath}/.pnp.meta.json`,\n npmScopes: scopedRegistries,\n virtualFolder: `${rootDirPath}/.yarn/__virtual__`,\n npmRegistryServer: defaultRegistry.uri || 'https://registry.yarnpkg.com',\n npmAlwaysAuth: defaultRegistry.alwaysAuth,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n enableStrictSsl: networkConfig?.strictSSL,\n // enableInlineBuilds: true,\n globalFolder: `${userHome}/.yarn/global`,\n\n // TODO: check about support for the following: (see more here - https://github.com/yarnpkg/berry/issues/1434#issuecomment-801449010)\n // ca?: string;\n // cert?: string;\n // key?: string;\n // noProxy?: boolean | string;\n };\n\n if (defaultAuthProp) {\n data[defaultAuthProp.keyName] = defaultAuthProp.value;\n }\n // TODO: node-modules is hardcoded now until adding support for pnp.\n config.use('<bit>', data, rootDirPath, {});\n\n return config;\n }\n\n private computeComponents(\n componentManifests: ComponentsManifestsMap,\n componentsDirMap: ComponentMap<string>,\n copyPeer = false\n ): { [key: string]: any } {\n return componentsDirMap.toArray().reduce((acc, [component, dir]) => {\n const packageName = this.pkg.getPackageName(component);\n if (componentManifests.has(packageName)) {\n acc[dir] = componentManifests.get(packageName)?.toJson({ copyPeerToRuntime: copyPeer });\n }\n\n return acc;\n }, {});\n }\n\n private computeDeps(rawDeps?: { [key: string]: string }): Map<IdentHash, Descriptor> {\n const map = new Map<IdentHash, Descriptor>();\n if (!rawDeps) return map;\n\n Object.keys(rawDeps).forEach((packageName) => {\n const ident = structUtils.parseIdent(packageName);\n map.set(ident.identHash, structUtils.makeDescriptor(ident, rawDeps[packageName]));\n });\n\n return map;\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n const parsedPackage = parsePackageName(packageName);\n const parsedVersion = parsedPackage.version;\n const versionType = parsedVersion && versionSelectorType(parsedVersion)?.type;\n if (versionType === 'version') {\n return {\n packageName: parsedPackage.name,\n version: parsedVersion,\n isSemver: true,\n };\n }\n if (!npmPlugin.resolvers) {\n throw new Error('npm resolvers for yarn API not found');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_NpmRemapResolver, NpmSemverResolver, NpmTagResolver] = npmPlugin.resolvers;\n let resolver = new NpmSemverResolver();\n const ident = structUtils.parseIdent(parsedPackage.name);\n let range = 'npm:*';\n const rootDirPath = npath.toPortablePath(options.rootDir);\n const cacheDir = this.getCacheFolder(options.cacheRootDir);\n const config = await this.computeConfiguration(rootDirPath, cacheDir, {\n packageManagerConfigRootDir: options.packageManagerConfigRootDir,\n });\n\n const project = new Project(rootDirPath, { configuration: config });\n const report = new LightReport({ configuration: config, stdout: process.stdout });\n\n // Handle cases when the version is a dist tag like dev / latest for example bit install lodash@latest\n if (versionType === 'tag') {\n resolver = new NpmTagResolver();\n range = `npm:${parsedPackage.version}`;\n }\n const descriptor = structUtils.makeDescriptor(ident, range);\n\n // @ts-ignore\n project.setupResolutions();\n const resolveOptions: ResolveOptions = {\n project,\n resolver,\n report,\n };\n // const candidates = await resolver.getCandidates(descriptor, new Map(), resolveOptions);\n const candidates = await resolver.getCandidates(descriptor, new Map(), resolveOptions);\n const parsedRange = structUtils.parseRange(candidates[0].reference);\n const version = parsedRange.selector;\n return {\n packageName: parsedPackage.name,\n version,\n isSemver: true,\n };\n }\n}\n\nfunction convertOverridesToResolutions(\n overrides: Record<string, string>\n): Array<{ pattern: Resolution; reference: string }> {\n const parsedOverrides = parseOverrides(overrides);\n return parsedOverrides.map((override) => ({\n pattern: {\n from: override.parentPkg ? toYarnResolutionSelector(override.parentPkg) : undefined,\n descriptor: toYarnResolutionSelector(override.targetPkg),\n },\n reference: override.newPref,\n }));\n}\n\nfunction toYarnResolutionSelector({ name, pref }: { name: string; pref?: string }) {\n return {\n fullName: name,\n description: pref,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["YarnPackageManager","constructor","depResolver","pkg","logger","install","rootDir","rootPolicy","componentDirectoryMap","installOptions","setStatusLine","options","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","rootComponentsForCapsules","dependencyFilterFn","components","workspaceManifest","getWorkspaceManifest","undefined","rootDirPath","npath","toPortablePath","cacheDir","getCacheFolder","cacheRootDir","config","computeConfiguration","nodeLinker","packageManagerConfigRootDir","project","Project","configuration","rootManifest","toJsonWithDir","copyPeerToRuntime","copyPeerToRuntimeOnRoot","installPeersFromEnvs","manifest","setupResolutions","useNesting","overrides","_createLocalDirectoryOverrides","rootWs","createWorkspace","rootComponents","installConfig","hoistingLimits","manifests","computeComponents","componentsManifestsMap","copyPeerToRuntimeOnComponents","createRootComponentsDir","dependencies","peerDependencies","defaultPeerDependencies","updateManifestsForInstallationInWorkspaceCapsules","extendWithComponentsFromDir","debug","workspacesP","Object","keys","map","path","workspace","workspaces","Promise","all","workspacesIdents","workspaceIdentHash","locator","identHash","cwd","overrideInternalWorkspaceParams","push","setupWorkspaces","cache","Cache","find","installReport","StreamReport","start","stdout","process","report","persistProject","persistLockfile","hasErrors","exit","exitCode","consoleSuccess","Array","from","hashMap","entries","forEach","component","name","getPackageName","relative","getPackageJsonPath","dir","packageJsonPath","join","backupPackageJsons","result","rootPackageJsonPath","getFileToBackup","componentsBackupsP","toArray","file","getComponentPackageJsonToBackup","restorePackageJsons","backupJsons","promises","exists","fs","pathExists","remove","writeFile","existingFile","readFile","resolve","wsPath","ws","Workspace","setup","identity","structUtils","parseIdent","version","computeDeps","devDependencies","resolutions","convertOverridesToResolutions","ident","makeIdent","scope","makeLocator","reference","anchoredDescriptor","makeDescriptor","WorkspaceResolver","protocol","relativeCwd","anchoredLocator","workspacesByCwd","Map","workspacesByIdent","dup","get","Error","set","getScopedRegistries","registries","scopedRegistries","scopes","reduce","acc","scopeName","regDef","authProp","getAuthProp","npmRegistryServer","uri","npmAlwaysAuth","alwaysAuth","keyName","value","registry","token","baseToken","baseDir","userHome","cacheFolder","getRegistries","proxyConfig","getProxyConfig","networkConfig","getNetworkConfig","pluginConfig","getPluginConfiguration","startingCwd","Configuration","defaultRegistry","defaultAuthProp","data","installStatePath","pnpDataPath","npmScopes","virtualFolder","httpProxy","httpsProxy","enableStrictSsl","strictSSL","globalFolder","nmSelfReferences","use","componentManifests","componentsDirMap","copyPeer","packageName","has","toJson","rawDeps","resolveRemoteVersion","parsedPackage","parsePackageName","parsedVersion","versionType","versionSelectorType","type","isSemver","npmPlugin","resolvers","_NpmRemapResolver","NpmSemverResolver","NpmTagResolver","resolver","range","LightReport","descriptor","resolveOptions","candidates","getCandidates","parsedRange","parseRange","selector","getInjectedDirs","componentDir","modulesDir","yarnStateContent","err","code","yarnState","YAML","parse","injectedDirs","key","locations","startsWith","location","parsedOverrides","parseOverrides","override","pattern","parentPkg","toYarnResolutionSelector","targetPkg","newPref","pref","fullName","description","pkgJsonPath","pkgJson","readJson","writeJson","spaces"],"sources":["yarn.package-manager.ts"],"sourcesContent":["import parsePackageName from 'parse-package-name';\nimport {\n extendWithComponentsFromDir,\n WorkspacePolicy,\n DependencyResolverMain,\n PackageManager,\n PackageManagerInstallOptions,\n ComponentsManifestsMap,\n CreateFromComponentsOptions,\n Registries,\n Registry,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n} from '@teambit/dependency-resolver';\nimport { ComponentMap, Component } from '@teambit/component';\nimport fs from 'fs-extra';\nimport { join, relative, resolve } from 'path';\nimport {\n Workspace,\n Project,\n Configuration,\n structUtils,\n IdentHash,\n Descriptor,\n Cache,\n StreamReport,\n ResolveOptions,\n LightReport,\n WorkspaceResolver,\n} from '@yarnpkg/core';\nimport { getPluginConfiguration } from '@yarnpkg/cli';\nimport { npath, PortablePath } from '@yarnpkg/fslib';\nimport { Resolution } from '@yarnpkg/parsers';\nimport npmPlugin from '@yarnpkg/plugin-npm';\nimport parseOverrides from '@pnpm/parse-overrides';\nimport { PkgMain } from '@teambit/pkg';\nimport userHome from 'user-home';\nimport { Logger } from '@teambit/logger';\nimport versionSelectorType from 'version-selector-type';\nimport YAML from 'yaml';\nimport { createRootComponentsDir } from './create-root-components-dir';\n\ntype BackupJsons = {\n [path: string]: Buffer | undefined;\n};\n\nexport class YarnPackageManager implements PackageManager {\n constructor(private depResolver: DependencyResolverMain, private pkg: PkgMain, private logger: Logger) {}\n\n async install(\n rootDir: string,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<void> {\n this.logger.setStatusLine('installing dependencies');\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: !installOptions.rootComponentsForCapsules,\n dependencyFilterFn: installOptions.dependencyFilterFn,\n };\n const components = componentDirectoryMap.components;\n const workspaceManifest = await this.depResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n components,\n options\n );\n\n const rootDirPath = npath.toPortablePath(rootDir);\n const cacheDir = this.getCacheFolder(installOptions.cacheRootDir);\n const config = await this.computeConfiguration(rootDirPath, cacheDir, {\n nodeLinker: installOptions.nodeLinker,\n packageManagerConfigRootDir: installOptions.packageManagerConfigRootDir,\n });\n\n const project = new Project(rootDirPath, { configuration: config });\n\n const rootManifest = workspaceManifest.toJsonWithDir({\n copyPeerToRuntime: installOptions.copyPeerToRuntimeOnRoot,\n installPeersFromEnvs: installOptions.installPeersFromEnvs,\n }).manifest;\n\n // @ts-ignore\n project.setupResolutions();\n if (installOptions.rootComponentsForCapsules && !installOptions.useNesting) {\n installOptions.overrides = {\n ...installOptions.overrides,\n ...this._createLocalDirectoryOverrides(rootDir, componentDirectoryMap),\n };\n }\n const rootWs = await this.createWorkspace(rootDir, project, rootManifest, installOptions.overrides);\n if (installOptions.rootComponents) {\n rootWs.manifest.installConfig = {\n hoistingLimits: 'dependencies',\n };\n }\n\n // const manifests = Array.from(workspaceManifest.componentsManifestsMap.entries());\n let manifests = this.computeComponents(\n workspaceManifest.componentsManifestsMap,\n componentDirectoryMap,\n installOptions.copyPeerToRuntimeOnComponents\n );\n if (installOptions.rootComponents) {\n // Manifests are extended with \"wrapper components\"\n // that group all workspace components with their dependencies and peer dependencies.\n manifests = {\n ...(await createRootComponentsDir({\n depResolver: this.depResolver,\n rootDir,\n componentDirectoryMap,\n })),\n ...manifests,\n };\n } else if (installOptions.useNesting) {\n // Nesting is used for scope aspect capsules.\n // In a capsule, all peer dependencies should be installed,\n // so we make runtime dependencies from peer dependencies.\n manifests[rootDir].dependencies = {\n ...manifests[rootDir].peerDependencies,\n ...manifests[rootDir].defaultPeerDependencies,\n ...manifests[rootDir].dependencies,\n };\n } else if (installOptions.rootComponentsForCapsules) {\n await updateManifestsForInstallationInWorkspaceCapsules(manifests);\n } else {\n await extendWithComponentsFromDir(rootDir, manifests);\n }\n\n this.logger.debug('root manifest for installation', rootManifest);\n this.logger.debug('components manifests for installation', manifests);\n\n const workspacesP = Object.keys(manifests).map(async (path) => {\n const manifest = manifests[path];\n const workspace = await this.createWorkspace(path, project, manifest);\n return workspace;\n });\n\n const workspaces = await Promise.all(workspacesP);\n\n if (!installOptions.rootComponents && !installOptions.rootComponentsForCapsules && !installOptions.useNesting) {\n const workspacesIdents = {};\n for (const workspace of workspaces) {\n const workspaceIdentHash = workspace.locator.identHash;\n if (workspacesIdents[workspaceIdentHash]) {\n this.logger.debug(\n `overriding internal workspace fields to prevent duplications for workspace ${workspace.cwd}`\n );\n this.overrideInternalWorkspaceParams(workspace);\n }\n workspacesIdents[workspace.locator.identHash] = true;\n }\n }\n\n if (!manifests[rootDir]) {\n workspaces.push(rootWs);\n }\n this.setupWorkspaces(project, workspaces);\n\n const cache = await Cache.find(config);\n // const existingPackageJsons = await this.backupPackageJsons(rootDir, componentDirectoryMap);\n\n const installReport = await StreamReport.start(\n {\n stdout: process.stdout,\n configuration: config,\n },\n async (report) => {\n await project.install({\n persistProject: false,\n cache,\n report,\n });\n await project.persistLockfile();\n }\n );\n\n // TODO: check if package.json and link files generation can be prevented through the yarn API or\n // mock the files by hooking to `xfs`.\n // see the persistProject: false above\n // await this.restorePackageJsons(existingPackageJsons);\n\n if (installReport.hasErrors()) process.exit(installReport.exitCode());\n\n this.logger.consoleSuccess('installing dependencies');\n }\n\n /**\n * Every component is overriden with a local directory of that component.\n * So the component will be installed from the local directory, not from the registry.\n */\n private _createLocalDirectoryOverrides(\n rootDir: string,\n componentDirectoryMap: ComponentMap<string>\n ): Record<string, string> {\n const overrides = {};\n Array.from(componentDirectoryMap.hashMap.entries()).forEach(([, [component, path]]) => {\n const name = this.depResolver.getPackageName(component);\n overrides[name] = `file:${relative(rootDir, path)}`;\n });\n return overrides;\n }\n\n private getPackageJsonPath(dir: string): string {\n const packageJsonPath = join(dir, 'package.json');\n return packageJsonPath;\n }\n\n private async backupPackageJsons(rootDir: string, componentDirectoryMap: ComponentMap<string>): Promise<BackupJsons> {\n const result: BackupJsons = {};\n const rootPackageJsonPath = this.getPackageJsonPath(rootDir);\n result[rootPackageJsonPath] = await this.getFileToBackup(rootPackageJsonPath);\n const componentsBackupsP = componentDirectoryMap.toArray().map(async ([component, dir]) => {\n const { packageJsonPath, file } = await this.getComponentPackageJsonToBackup(component, dir);\n result[packageJsonPath] = file;\n });\n await Promise.all(componentsBackupsP);\n return result;\n }\n\n private async restorePackageJsons(backupJsons: BackupJsons): Promise<void | undefined> {\n const promises = Object.entries(backupJsons).map(async ([packageJsonPath, file]) => {\n const exists = await fs.pathExists(packageJsonPath);\n // if there is no backup it means it wasn't there before and should be deleted\n if (!file) {\n if (exists) {\n return fs.remove(packageJsonPath);\n }\n return undefined;\n }\n return fs.writeFile(packageJsonPath, file);\n });\n await Promise.all(promises);\n }\n\n private async getFileToBackup(packageJsonPath: string): Promise<Buffer | undefined> {\n const exists = await fs.pathExists(packageJsonPath);\n if (!exists) {\n return undefined;\n }\n const existingFile = await fs.readFile(packageJsonPath);\n return existingFile;\n }\n\n private async getComponentPackageJsonToBackup(\n component: Component,\n dir: string\n ): Promise<{ packageJsonPath: string; file: Buffer | undefined }> {\n const packageJsonPath = resolve(join(dir, 'package.json'));\n const result = {\n packageJsonPath,\n file: await this.getFileToBackup(packageJsonPath),\n };\n return result;\n }\n\n private async createWorkspace(rootDir: string, project: Project, manifest: any, overrides?: Record<string, string>) {\n const wsPath = npath.toPortablePath(rootDir);\n const name = manifest.name || 'workspace';\n\n const ws = new Workspace(wsPath, { project });\n await ws.setup();\n const identity = structUtils.parseIdent(name);\n // const needOverrideInternal = !!ws.manifest.name && !!manifest.name;\n ws.manifest.name = identity;\n ws.manifest.version = manifest.version;\n ws.manifest.dependencies = this.computeDeps(manifest.dependencies);\n ws.manifest.devDependencies = this.computeDeps(manifest.devDependencies);\n ws.manifest.peerDependencies = this.computeDeps(manifest.peerDependencies);\n ws.manifest.installConfig = manifest.installConfig;\n if (overrides) {\n ws.manifest.resolutions = convertOverridesToResolutions(overrides);\n }\n\n // if (needOverrideInternal) this.overrideInternalWorkspaceParams(ws);\n\n return ws;\n }\n\n /**\n * This is used to handle cases where in the capsules dirs we have the same component with different versions\n * The yarn ident is calculated by the manifest (package.json) name if exist\n * in our case for the same component with different versions we will get the same ident which will result errors later.\n * This is make sense in the original case of yarn workspace (it make sense you don't have 2 workspace with same name)\n * However in our case it doesn't make sense.\n * This function will make sure the ident will use the version as well\n * @param ws\n */\n private overrideInternalWorkspaceParams(ws: Workspace) {\n const ident = structUtils.makeIdent(\n ws.manifest.name?.scope || null,\n `${ws.manifest.name?.name}-${ws.manifest.version}`\n );\n\n ws.manifest.name = ident;\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.locator = structUtils.makeLocator(ident, ws.reference);\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.anchoredDescriptor = structUtils.makeDescriptor(ws.locator, `${WorkspaceResolver.protocol}${ws.relativeCwd}`);\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.anchoredLocator = structUtils.makeLocator(ws.locator, `${WorkspaceResolver.protocol}${ws.relativeCwd}`);\n }\n\n private setupWorkspaces(project: Project, workspaces: Workspace[]) {\n project.workspaces = [];\n project.workspacesByCwd = new Map();\n project.workspacesByIdent = new Map();\n\n workspaces.forEach((workspace) => {\n const dup = project.workspacesByIdent.get(workspace.locator.identHash);\n if (typeof dup !== `undefined`) {\n throw new Error(`Duplicate workspace name: ${workspace.cwd} conflicts with ${dup.cwd}`);\n }\n\n project.workspaces.push(workspace);\n project.workspacesByCwd.set(workspace.cwd, workspace);\n project.workspacesByIdent.set(workspace.locator.identHash, workspace);\n });\n }\n\n private async getScopedRegistries(registries: Registries) {\n const scopedRegistries = Object.keys(registries.scopes).reduce((acc, scopeName) => {\n const regDef = registries.scopes[scopeName];\n const authProp = this.getAuthProp(regDef);\n acc[scopeName] = {\n npmRegistryServer: regDef.uri,\n npmAlwaysAuth: regDef.alwaysAuth,\n };\n if (authProp) {\n acc[scopeName][authProp.keyName] = authProp.value;\n }\n\n return acc;\n }, {});\n return scopedRegistries;\n }\n\n private getAuthProp(registry: Registry) {\n if (registry.token) {\n return {\n keyName: 'npmAuthToken',\n value: registry.token,\n };\n }\n if (registry.baseToken) {\n return {\n keyName: 'npmAuthIdent',\n value: registry.baseToken,\n };\n }\n return undefined;\n }\n\n private getCacheFolder(baseDir: string = userHome) {\n return `${baseDir}/.yarn/cache`;\n }\n\n // TODO: implement this to automate configuration.\n private async computeConfiguration(\n rootDirPath: PortablePath,\n cacheFolder: string,\n options: {\n nodeLinker?: 'hoisted' | 'isolated';\n packageManagerConfigRootDir?: string;\n }\n ): Promise<Configuration> {\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const pluginConfig = getPluginConfiguration();\n let startingCwd: PortablePath;\n if (options.packageManagerConfigRootDir) {\n startingCwd = npath.toPortablePath(options.packageManagerConfigRootDir);\n } else {\n startingCwd = rootDirPath;\n }\n const config = await Configuration.find(startingCwd, pluginConfig);\n const scopedRegistries = await this.getScopedRegistries(registries);\n const defaultRegistry = registries.defaultRegistry;\n const defaultAuthProp = this.getAuthProp(defaultRegistry);\n\n const data = {\n nodeLinker: options.nodeLinker === 'isolated' ? 'pnpm' : 'node-modules',\n installStatePath: `${rootDirPath}/.yarn/install-state.gz`,\n cacheFolder,\n pnpDataPath: `${rootDirPath}/.pnp.meta.json`,\n npmScopes: scopedRegistries,\n virtualFolder: `${rootDirPath}/.yarn/__virtual__`,\n npmRegistryServer: defaultRegistry.uri || 'https://registry.yarnpkg.com',\n npmAlwaysAuth: defaultRegistry.alwaysAuth,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n enableStrictSsl: networkConfig?.strictSSL,\n // enableInlineBuilds: true,\n globalFolder: `${userHome}/.yarn/global`,\n // We need to disable self-references as say create circular symlinks.\n nmSelfReferences: false,\n\n // TODO: check about support for the following: (see more here - https://github.com/yarnpkg/berry/issues/1434#issuecomment-801449010)\n // ca?: string;\n // cert?: string;\n // key?: string;\n // noProxy?: boolean | string;\n };\n\n if (defaultAuthProp) {\n data[defaultAuthProp.keyName] = defaultAuthProp.value;\n }\n // TODO: node-modules is hardcoded now until adding support for pnp.\n config.use('<bit>', data, rootDirPath, {});\n\n return config;\n }\n\n private computeComponents(\n componentManifests: ComponentsManifestsMap,\n componentsDirMap: ComponentMap<string>,\n copyPeer = false\n ): { [key: string]: any } {\n return componentsDirMap.toArray().reduce((acc, [component, dir]) => {\n const packageName = this.pkg.getPackageName(component);\n if (componentManifests.has(packageName)) {\n acc[dir] = componentManifests.get(packageName)?.toJson({ copyPeerToRuntime: copyPeer });\n }\n\n return acc;\n }, {});\n }\n\n private computeDeps(rawDeps?: { [key: string]: string }): Map<IdentHash, Descriptor> {\n const map = new Map<IdentHash, Descriptor>();\n if (!rawDeps) return map;\n\n Object.keys(rawDeps).forEach((packageName) => {\n const ident = structUtils.parseIdent(packageName);\n map.set(ident.identHash, structUtils.makeDescriptor(ident, rawDeps[packageName]));\n });\n\n return map;\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n const parsedPackage = parsePackageName(packageName);\n const parsedVersion = parsedPackage.version;\n const versionType = parsedVersion && versionSelectorType(parsedVersion)?.type;\n if (versionType === 'version') {\n return {\n packageName: parsedPackage.name,\n version: parsedVersion,\n isSemver: true,\n };\n }\n if (!npmPlugin.resolvers) {\n throw new Error('npm resolvers for yarn API not found');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_NpmRemapResolver, NpmSemverResolver, NpmTagResolver] = npmPlugin.resolvers;\n let resolver = new NpmSemverResolver();\n const ident = structUtils.parseIdent(parsedPackage.name);\n let range = 'npm:*';\n const rootDirPath = npath.toPortablePath(options.rootDir);\n const cacheDir = this.getCacheFolder(options.cacheRootDir);\n const config = await this.computeConfiguration(rootDirPath, cacheDir, {\n packageManagerConfigRootDir: options.packageManagerConfigRootDir,\n });\n\n const project = new Project(rootDirPath, { configuration: config });\n const report = new LightReport({ configuration: config, stdout: process.stdout });\n\n // Handle cases when the version is a dist tag like dev / latest for example bit install lodash@latest\n if (versionType === 'tag') {\n resolver = new NpmTagResolver();\n range = `npm:${parsedPackage.version}`;\n }\n const descriptor = structUtils.makeDescriptor(ident, range);\n\n // @ts-ignore\n project.setupResolutions();\n const resolveOptions: ResolveOptions = {\n project,\n resolver,\n report,\n };\n // const candidates = await resolver.getCandidates(descriptor, new Map(), resolveOptions);\n const candidates = await resolver.getCandidates(descriptor, new Map(), resolveOptions);\n const parsedRange = structUtils.parseRange(candidates[0].reference);\n const version = parsedRange.selector;\n return {\n packageName: parsedPackage.name,\n version,\n isSemver: true,\n };\n }\n\n async getInjectedDirs(rootDir: string, componentDir: string, packageName: string): Promise<string[]> {\n const modulesDir = join(rootDir, 'node_modules');\n relative(modulesDir, componentDir);\n let yarnStateContent!: string;\n try {\n yarnStateContent = await fs.readFile(join(modulesDir, '.yarn-state.yml'), 'utf-8');\n } catch (err: any) {\n if (err.code === 'ENOENT') return [];\n }\n const yarnState = YAML.parse(yarnStateContent) as Record<string, { locations: string[] }>;\n const injectedDirs: string[] = [];\n for (const [key, { locations }] of Object.entries(yarnState)) {\n if (key.startsWith(`${packageName}@`) || key.startsWith(`${packageName}__root@`)) {\n for (const location of locations) {\n injectedDirs.push(location);\n }\n }\n }\n return injectedDirs;\n }\n}\n\nfunction convertOverridesToResolutions(\n overrides: Record<string, string>\n): Array<{ pattern: Resolution; reference: string }> {\n const parsedOverrides = parseOverrides(overrides);\n return parsedOverrides.map((override) => ({\n pattern: {\n from: override.parentPkg ? toYarnResolutionSelector(override.parentPkg) : undefined,\n descriptor: toYarnResolutionSelector(override.targetPkg),\n },\n reference: override.newPref,\n }));\n}\n\nfunction toYarnResolutionSelector({ name, pref }: { name: string; pref?: string }) {\n return {\n fullName: name,\n description: pref,\n };\n}\n\n/**\n * This function prepares the component manifests for installation inside a capsule.\n * Inside a capsule, all peer dependencies of the component should be installed.\n * So peer dependencies are added to the manifest as runtime dependencies.\n * Also, the package.json files are update to contain other component dependencies\n * in dependencies as local \"file:\" dependencies.\n */\nasync function updateManifestsForInstallationInWorkspaceCapsules(manifests: { [key: string]: any }) {\n await Promise.all(\n Object.entries(manifests).map(async ([dir, manifest]) => {\n const pkgJsonPath = join(dir, 'package.json');\n const pkgJson = await fs.readJson(pkgJsonPath);\n // We need to write the package.json files because they need to contain the workspace dependencies.\n // When packages are installed via the \"file:\" protocol, Yarn reads their package.json files\n // from the file system even if they are from the workspace.\n await fs.writeJson(\n pkgJsonPath,\n {\n ...pkgJson,\n dependencies: manifest.dependencies,\n },\n { spaces: 2 }\n );\n manifest.dependencies = {\n ...manifest.peerDependencies,\n ...manifest.defaultPeerDependencies,\n ...manifest.dependencies,\n };\n manifest.installConfig = {\n hoistingLimits: 'workspaces',\n };\n })\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAcA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAaA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAMO,MAAMA,kBAAN,CAAmD;EACxDC,WAAW,CAASC,WAAT,EAAsDC,GAAtD,EAA4EC,MAA5E,EAA4F;IAAA,KAAnFF,WAAmF,GAAnFA,WAAmF;IAAA,KAAtCC,GAAsC,GAAtCA,GAAsC;IAAA,KAAhBC,MAAgB,GAAhBA,MAAgB;EAAE;;EAE5F,MAAPC,OAAO,CACXC,OADW,EAEXC,UAFW,EAGXC,qBAHW,EAIXC,cAA4C,GAAG,EAJpC,EAKI;IACf,KAAKL,MAAL,CAAYM,aAAZ,CAA0B,yBAA1B;IACA,MAAMC,OAAoC,GAAG;MAC3CC,6BAA6B,EAAE,IADY;MAE3CC,8CAA8C,EAAE,IAFL;MAG3CC,MAAM,EAAE,CAACL,cAAc,CAACM,yBAHmB;MAI3CC,kBAAkB,EAAEP,cAAc,CAACO;IAJQ,CAA7C;IAMA,MAAMC,UAAU,GAAGT,qBAAqB,CAACS,UAAzC;IACA,MAAMC,iBAAiB,GAAG,MAAM,KAAKhB,WAAL,CAAiBiB,oBAAjB,CAC9BC,SAD8B,EAE9BA,SAF8B,EAG9Bb,UAH8B,EAI9BD,OAJ8B,EAK9BW,UAL8B,EAM9BN,OAN8B,CAAhC;;IASA,MAAMU,WAAW,GAAGC,cAAA,CAAMC,cAAN,CAAqBjB,OAArB,CAApB;;IACA,MAAMkB,QAAQ,GAAG,KAAKC,cAAL,CAAoBhB,cAAc,CAACiB,YAAnC,CAAjB;IACA,MAAMC,MAAM,GAAG,MAAM,KAAKC,oBAAL,CAA0BP,WAA1B,EAAuCG,QAAvC,EAAiD;MACpEK,UAAU,EAAEpB,cAAc,CAACoB,UADyC;MAEpEC,2BAA2B,EAAErB,cAAc,CAACqB;IAFwB,CAAjD,CAArB;IAKA,MAAMC,OAAO,GAAG,KAAIC,eAAJ,EAAYX,WAAZ,EAAyB;MAAEY,aAAa,EAAEN;IAAjB,CAAzB,CAAhB;IAEA,MAAMO,YAAY,GAAGhB,iBAAiB,CAACiB,aAAlB,CAAgC;MACnDC,iBAAiB,EAAE3B,cAAc,CAAC4B,uBADiB;MAEnDC,oBAAoB,EAAE7B,cAAc,CAAC6B;IAFc,CAAhC,EAGlBC,QAHH,CA3Be,CAgCf;;IACAR,OAAO,CAACS,gBAAR;;IACA,IAAI/B,cAAc,CAACM,yBAAf,IAA4C,CAACN,cAAc,CAACgC,UAAhE,EAA4E;MAC1EhC,cAAc,CAACiC,SAAf,mCACKjC,cAAc,CAACiC,SADpB,GAEK,KAAKC,8BAAL,CAAoCrC,OAApC,EAA6CE,qBAA7C,CAFL;IAID;;IACD,MAAMoC,MAAM,GAAG,MAAM,KAAKC,eAAL,CAAqBvC,OAArB,EAA8ByB,OAA9B,EAAuCG,YAAvC,EAAqDzB,cAAc,CAACiC,SAApE,CAArB;;IACA,IAAIjC,cAAc,CAACqC,cAAnB,EAAmC;MACjCF,MAAM,CAACL,QAAP,CAAgBQ,aAAhB,GAAgC;QAC9BC,cAAc,EAAE;MADc,CAAhC;IAGD,CA7Cc,CA+Cf;;;IACA,IAAIC,SAAS,GAAG,KAAKC,iBAAL,CACdhC,iBAAiB,CAACiC,sBADJ,EAEd3C,qBAFc,EAGdC,cAAc,CAAC2C,6BAHD,CAAhB;;IAKA,IAAI3C,cAAc,CAACqC,cAAnB,EAAmC;MACjC;MACA;MACAG,SAAS,mCACH,MAAM,IAAAI,kDAAA,EAAwB;QAChCnD,WAAW,EAAE,KAAKA,WADc;QAEhCI,OAFgC;QAGhCE;MAHgC,CAAxB,CADH,GAMJyC,SANI,CAAT;IAQD,CAXD,MAWO,IAAIxC,cAAc,CAACgC,UAAnB,EAA+B;MACpC;MACA;MACA;MACAQ,SAAS,CAAC3C,OAAD,CAAT,CAAmBgD,YAAnB,iDACKL,SAAS,CAAC3C,OAAD,CAAT,CAAmBiD,gBADxB,GAEKN,SAAS,CAAC3C,OAAD,CAAT,CAAmBkD,uBAFxB,GAGKP,SAAS,CAAC3C,OAAD,CAAT,CAAmBgD,YAHxB;IAKD,CATM,MASA,IAAI7C,cAAc,CAACM,yBAAnB,EAA8C;MACnD,MAAM0C,iDAAiD,CAACR,SAAD,CAAvD;IACD,CAFM,MAEA;MACL,MAAM,IAAAS,iDAAA,EAA4BpD,OAA5B,EAAqC2C,SAArC,CAAN;IACD;;IAED,KAAK7C,MAAL,CAAYuD,KAAZ,CAAkB,gCAAlB,EAAoDzB,YAApD;IACA,KAAK9B,MAAL,CAAYuD,KAAZ,CAAkB,uCAAlB,EAA2DV,SAA3D;IAEA,MAAMW,WAAW,GAAGC,MAAM,CAACC,IAAP,CAAYb,SAAZ,EAAuBc,GAAvB,CAA2B,MAAOC,IAAP,IAAgB;MAC7D,MAAMzB,QAAQ,GAAGU,SAAS,CAACe,IAAD,CAA1B;MACA,MAAMC,SAAS,GAAG,MAAM,KAAKpB,eAAL,CAAqBmB,IAArB,EAA2BjC,OAA3B,EAAoCQ,QAApC,CAAxB;MACA,OAAO0B,SAAP;IACD,CAJmB,CAApB;IAMA,MAAMC,UAAU,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYR,WAAZ,CAAzB;;IAEA,IAAI,CAACnD,cAAc,CAACqC,cAAhB,IAAkC,CAACrC,cAAc,CAACM,yBAAlD,IAA+E,CAACN,cAAc,CAACgC,UAAnG,EAA+G;MAC7G,MAAM4B,gBAAgB,GAAG,EAAzB;;MACA,KAAK,MAAMJ,SAAX,IAAwBC,UAAxB,EAAoC;QAClC,MAAMI,kBAAkB,GAAGL,SAAS,CAACM,OAAV,CAAkBC,SAA7C;;QACA,IAAIH,gBAAgB,CAACC,kBAAD,CAApB,EAA0C;UACxC,KAAKlE,MAAL,CAAYuD,KAAZ,CACG,8EAA6EM,SAAS,CAACQ,GAAI,EAD9F;UAGA,KAAKC,+BAAL,CAAqCT,SAArC;QACD;;QACDI,gBAAgB,CAACJ,SAAS,CAACM,OAAV,CAAkBC,SAAnB,CAAhB,GAAgD,IAAhD;MACD;IACF;;IAED,IAAI,CAACvB,SAAS,CAAC3C,OAAD,CAAd,EAAyB;MACvB4D,UAAU,CAACS,IAAX,CAAgB/B,MAAhB;IACD;;IACD,KAAKgC,eAAL,CAAqB7C,OAArB,EAA8BmC,UAA9B;IAEA,MAAMW,KAAK,GAAG,MAAMC,aAAA,CAAMC,IAAN,CAAWpD,MAAX,CAApB,CA7Ge,CA8Gf;;IAEA,MAAMqD,aAAa,GAAG,MAAMC,oBAAA,CAAaC,KAAb,CAC1B;MACEC,MAAM,EAAEC,OAAO,CAACD,MADlB;MAEElD,aAAa,EAAEN;IAFjB,CAD0B,EAK1B,MAAO0D,MAAP,IAAkB;MAChB,MAAMtD,OAAO,CAAC1B,OAAR,CAAgB;QACpBiF,cAAc,EAAE,KADI;QAEpBT,KAFoB;QAGpBQ;MAHoB,CAAhB,CAAN;MAKA,MAAMtD,OAAO,CAACwD,eAAR,EAAN;IACD,CAZyB,CAA5B,CAhHe,CA+Hf;IACA;IACA;IACA;;IAEA,IAAIP,aAAa,CAACQ,SAAd,EAAJ,EAA+BJ,OAAO,CAACK,IAAR,CAAaT,aAAa,CAACU,QAAd,EAAb;IAE/B,KAAKtF,MAAL,CAAYuF,cAAZ,CAA2B,yBAA3B;EACD;EAED;AACF;AACA;AACA;;;EACUhD,8BAA8B,CACpCrC,OADoC,EAEpCE,qBAFoC,EAGZ;IACxB,MAAMkC,SAAS,GAAG,EAAlB;IACAkD,KAAK,CAACC,IAAN,CAAWrF,qBAAqB,CAACsF,OAAtB,CAA8BC,OAA9B,EAAX,EAAoDC,OAApD,CAA4D,CAAC,GAAG,CAACC,SAAD,EAAYjC,IAAZ,CAAH,CAAD,KAA2B;MACrF,MAAMkC,IAAI,GAAG,KAAKhG,WAAL,CAAiBiG,cAAjB,CAAgCF,SAAhC,CAAb;MACAvD,SAAS,CAACwD,IAAD,CAAT,GAAmB,QAAO,IAAAE,gBAAA,EAAS9F,OAAT,EAAkB0D,IAAlB,CAAwB,EAAlD;IACD,CAHD;IAIA,OAAOtB,SAAP;EACD;;EAEO2D,kBAAkB,CAACC,GAAD,EAAsB;IAC9C,MAAMC,eAAe,GAAG,IAAAC,YAAA,EAAKF,GAAL,EAAU,cAAV,CAAxB;IACA,OAAOC,eAAP;EACD;;EAE+B,MAAlBE,kBAAkB,CAACnG,OAAD,EAAkBE,qBAAlB,EAAqF;IACnH,MAAMkG,MAAmB,GAAG,EAA5B;IACA,MAAMC,mBAAmB,GAAG,KAAKN,kBAAL,CAAwB/F,OAAxB,CAA5B;IACAoG,MAAM,CAACC,mBAAD,CAAN,GAA8B,MAAM,KAAKC,eAAL,CAAqBD,mBAArB,CAApC;IACA,MAAME,kBAAkB,GAAGrG,qBAAqB,CAACsG,OAAtB,GAAgC/C,GAAhC,CAAoC,OAAO,CAACkC,SAAD,EAAYK,GAAZ,CAAP,KAA4B;MACzF,MAAM;QAAEC,eAAF;QAAmBQ;MAAnB,IAA4B,MAAM,KAAKC,+BAAL,CAAqCf,SAArC,EAAgDK,GAAhD,CAAxC;MACAI,MAAM,CAACH,eAAD,CAAN,GAA0BQ,IAA1B;IACD,CAH0B,CAA3B;IAIA,MAAM5C,OAAO,CAACC,GAAR,CAAYyC,kBAAZ,CAAN;IACA,OAAOH,MAAP;EACD;;EAEgC,MAAnBO,mBAAmB,CAACC,WAAD,EAAsD;IACrF,MAAMC,QAAQ,GAAGtD,MAAM,CAACkC,OAAP,CAAemB,WAAf,EAA4BnD,GAA5B,CAAgC,OAAO,CAACwC,eAAD,EAAkBQ,IAAlB,CAAP,KAAmC;MAClF,MAAMK,MAAM,GAAG,MAAMC,kBAAA,CAAGC,UAAH,CAAcf,eAAd,CAArB,CADkF,CAElF;;MACA,IAAI,CAACQ,IAAL,EAAW;QACT,IAAIK,MAAJ,EAAY;UACV,OAAOC,kBAAA,CAAGE,MAAH,CAAUhB,eAAV,CAAP;QACD;;QACD,OAAOnF,SAAP;MACD;;MACD,OAAOiG,kBAAA,CAAGG,SAAH,CAAajB,eAAb,EAA8BQ,IAA9B,CAAP;IACD,CAVgB,CAAjB;IAWA,MAAM5C,OAAO,CAACC,GAAR,CAAY+C,QAAZ,CAAN;EACD;;EAE4B,MAAfP,eAAe,CAACL,eAAD,EAAuD;IAClF,MAAMa,MAAM,GAAG,MAAMC,kBAAA,CAAGC,UAAH,CAAcf,eAAd,CAArB;;IACA,IAAI,CAACa,MAAL,EAAa;MACX,OAAOhG,SAAP;IACD;;IACD,MAAMqG,YAAY,GAAG,MAAMJ,kBAAA,CAAGK,QAAH,CAAYnB,eAAZ,CAA3B;IACA,OAAOkB,YAAP;EACD;;EAE4C,MAA/BT,+BAA+B,CAC3Cf,SAD2C,EAE3CK,GAF2C,EAGqB;IAChE,MAAMC,eAAe,GAAG,IAAAoB,eAAA,EAAQ,IAAAnB,YAAA,EAAKF,GAAL,EAAU,cAAV,CAAR,CAAxB;IACA,MAAMI,MAAM,GAAG;MACbH,eADa;MAEbQ,IAAI,EAAE,MAAM,KAAKH,eAAL,CAAqBL,eAArB;IAFC,CAAf;IAIA,OAAOG,MAAP;EACD;;EAE4B,MAAf7D,eAAe,CAACvC,OAAD,EAAkByB,OAAlB,EAAoCQ,QAApC,EAAmDG,SAAnD,EAAuF;IAClH,MAAMkF,MAAM,GAAGtG,cAAA,CAAMC,cAAN,CAAqBjB,OAArB,CAAf;;IACA,MAAM4F,IAAI,GAAG3D,QAAQ,CAAC2D,IAAT,IAAiB,WAA9B;IAEA,MAAM2B,EAAE,GAAG,KAAIC,iBAAJ,EAAcF,MAAd,EAAsB;MAAE7F;IAAF,CAAtB,CAAX;IACA,MAAM8F,EAAE,CAACE,KAAH,EAAN;;IACA,MAAMC,QAAQ,GAAGC,mBAAA,CAAYC,UAAZ,CAAuBhC,IAAvB,CAAjB,CANkH,CAOlH;;;IACA2B,EAAE,CAACtF,QAAH,CAAY2D,IAAZ,GAAmB8B,QAAnB;IACAH,EAAE,CAACtF,QAAH,CAAY4F,OAAZ,GAAsB5F,QAAQ,CAAC4F,OAA/B;IACAN,EAAE,CAACtF,QAAH,CAAYe,YAAZ,GAA2B,KAAK8E,WAAL,CAAiB7F,QAAQ,CAACe,YAA1B,CAA3B;IACAuE,EAAE,CAACtF,QAAH,CAAY8F,eAAZ,GAA8B,KAAKD,WAAL,CAAiB7F,QAAQ,CAAC8F,eAA1B,CAA9B;IACAR,EAAE,CAACtF,QAAH,CAAYgB,gBAAZ,GAA+B,KAAK6E,WAAL,CAAiB7F,QAAQ,CAACgB,gBAA1B,CAA/B;IACAsE,EAAE,CAACtF,QAAH,CAAYQ,aAAZ,GAA4BR,QAAQ,CAACQ,aAArC;;IACA,IAAIL,SAAJ,EAAe;MACbmF,EAAE,CAACtF,QAAH,CAAY+F,WAAZ,GAA0BC,6BAA6B,CAAC7F,SAAD,CAAvD;IACD,CAhBiH,CAkBlH;;;IAEA,OAAOmF,EAAP;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACUnD,+BAA+B,CAACmD,EAAD,EAAgB;IAAA;;IACrD,MAAMW,KAAK,GAAGP,mBAAA,CAAYQ,SAAZ,CACZ,sBAAAZ,EAAE,CAACtF,QAAH,CAAY2D,IAAZ,wEAAkBwC,KAAlB,KAA2B,IADf,EAEX,GAAD,sBAAGb,EAAE,CAACtF,QAAH,CAAY2D,IAAf,uDAAG,mBAAkBA,IAAK,IAAG2B,EAAE,CAACtF,QAAH,CAAY4F,OAAQ,EAFrC,CAAd;;IAKAN,EAAE,CAACtF,QAAH,CAAY2D,IAAZ,GAAmBsC,KAAnB,CANqD,CAQrD;;IACAX,EAAE,CAACtD,OAAH,GAAa0D,mBAAA,CAAYU,WAAZ,CAAwBH,KAAxB,EAA+BX,EAAE,CAACe,SAAlC,CAAb,CATqD,CAWrD;;IACAf,EAAE,CAACgB,kBAAH,GAAwBZ,mBAAA,CAAYa,cAAZ,CAA2BjB,EAAE,CAACtD,OAA9B,EAAwC,GAAEwE,yBAAA,CAAkBC,QAAS,GAAEnB,EAAE,CAACoB,WAAY,EAAtF,CAAxB,CAZqD,CAcrD;;IACApB,EAAE,CAACqB,eAAH,GAAqBjB,mBAAA,CAAYU,WAAZ,CAAwBd,EAAE,CAACtD,OAA3B,EAAqC,GAAEwE,yBAAA,CAAkBC,QAAS,GAAEnB,EAAE,CAACoB,WAAY,EAAnF,CAArB;EACD;;EAEOrE,eAAe,CAAC7C,OAAD,EAAmBmC,UAAnB,EAA4C;IACjEnC,OAAO,CAACmC,UAAR,GAAqB,EAArB;IACAnC,OAAO,CAACoH,eAAR,GAA0B,IAAIC,GAAJ,EAA1B;IACArH,OAAO,CAACsH,iBAAR,GAA4B,IAAID,GAAJ,EAA5B;IAEAlF,UAAU,CAAC8B,OAAX,CAAoB/B,SAAD,IAAe;MAChC,MAAMqF,GAAG,GAAGvH,OAAO,CAACsH,iBAAR,CAA0BE,GAA1B,CAA8BtF,SAAS,CAACM,OAAV,CAAkBC,SAAhD,CAAZ;;MACA,IAAI,OAAO8E,GAAP,KAAgB,WAApB,EAAgC;QAC9B,MAAM,IAAIE,KAAJ,CAAW,6BAA4BvF,SAAS,CAACQ,GAAI,mBAAkB6E,GAAG,CAAC7E,GAAI,EAA/E,CAAN;MACD;;MAED1C,OAAO,CAACmC,UAAR,CAAmBS,IAAnB,CAAwBV,SAAxB;MACAlC,OAAO,CAACoH,eAAR,CAAwBM,GAAxB,CAA4BxF,SAAS,CAACQ,GAAtC,EAA2CR,SAA3C;MACAlC,OAAO,CAACsH,iBAAR,CAA0BI,GAA1B,CAA8BxF,SAAS,CAACM,OAAV,CAAkBC,SAAhD,EAA2DP,SAA3D;IACD,CATD;EAUD;;EAEgC,MAAnByF,mBAAmB,CAACC,UAAD,EAAyB;IACxD,MAAMC,gBAAgB,GAAG/F,MAAM,CAACC,IAAP,CAAY6F,UAAU,CAACE,MAAvB,EAA+BC,MAA/B,CAAsC,CAACC,GAAD,EAAMC,SAAN,KAAoB;MACjF,MAAMC,MAAM,GAAGN,UAAU,CAACE,MAAX,CAAkBG,SAAlB,CAAf;MACA,MAAME,QAAQ,GAAG,KAAKC,WAAL,CAAiBF,MAAjB,CAAjB;MACAF,GAAG,CAACC,SAAD,CAAH,GAAiB;QACfI,iBAAiB,EAAEH,MAAM,CAACI,GADX;QAEfC,aAAa,EAAEL,MAAM,CAACM;MAFP,CAAjB;;MAIA,IAAIL,QAAJ,EAAc;QACZH,GAAG,CAACC,SAAD,CAAH,CAAeE,QAAQ,CAACM,OAAxB,IAAmCN,QAAQ,CAACO,KAA5C;MACD;;MAED,OAAOV,GAAP;IACD,CAZwB,EAYtB,EAZsB,CAAzB;IAaA,OAAOH,gBAAP;EACD;;EAEOO,WAAW,CAACO,QAAD,EAAqB;IACtC,IAAIA,QAAQ,CAACC,KAAb,EAAoB;MAClB,OAAO;QACLH,OAAO,EAAE,cADJ;QAELC,KAAK,EAAEC,QAAQ,CAACC;MAFX,CAAP;IAID;;IACD,IAAID,QAAQ,CAACE,SAAb,EAAwB;MACtB,OAAO;QACLJ,OAAO,EAAE,cADJ;QAELC,KAAK,EAAEC,QAAQ,CAACE;MAFX,CAAP;IAID;;IACD,OAAOxJ,SAAP;EACD;;EAEOK,cAAc,CAACoJ,OAAe,GAAGC,mBAAnB,EAA6B;IACjD,OAAQ,GAAED,OAAQ,cAAlB;EACD,CA5TuD,CA8TxD;;;EACkC,MAApBjJ,oBAAoB,CAChCP,WADgC,EAEhC0J,WAFgC,EAGhCpK,OAHgC,EAOR;IACxB,MAAMgJ,UAAU,GAAG,MAAM,KAAKzJ,WAAL,CAAiB8K,aAAjB,EAAzB;IACA,MAAMC,WAAW,GAAG,MAAM,KAAK/K,WAAL,CAAiBgL,cAAjB,EAA1B;IACA,MAAMC,aAAa,GAAG,MAAM,KAAKjL,WAAL,CAAiBkL,gBAAjB,EAA5B;IACA,MAAMC,YAAY,GAAG,IAAAC,6BAAA,GAArB;IACA,IAAIC,WAAJ;;IACA,IAAI5K,OAAO,CAACmB,2BAAZ,EAAyC;MACvCyJ,WAAW,GAAGjK,cAAA,CAAMC,cAAN,CAAqBZ,OAAO,CAACmB,2BAA7B,CAAd;IACD,CAFD,MAEO;MACLyJ,WAAW,GAAGlK,WAAd;IACD;;IACD,MAAMM,MAAM,GAAG,MAAM6J,qBAAA,CAAczG,IAAd,CAAmBwG,WAAnB,EAAgCF,YAAhC,CAArB;IACA,MAAMzB,gBAAgB,GAAG,MAAM,KAAKF,mBAAL,CAAyBC,UAAzB,CAA/B;IACA,MAAM8B,eAAe,GAAG9B,UAAU,CAAC8B,eAAnC;IACA,MAAMC,eAAe,GAAG,KAAKvB,WAAL,CAAiBsB,eAAjB,CAAxB;IAEA,MAAME,IAAI,GAAG;MACX9J,UAAU,EAAElB,OAAO,CAACkB,UAAR,KAAuB,UAAvB,GAAoC,MAApC,GAA6C,cAD9C;MAEX+J,gBAAgB,EAAG,GAAEvK,WAAY,yBAFtB;MAGX0J,WAHW;MAIXc,WAAW,EAAG,GAAExK,WAAY,iBAJjB;MAKXyK,SAAS,EAAElC,gBALA;MAMXmC,aAAa,EAAG,GAAE1K,WAAY,oBANnB;MAOX+I,iBAAiB,EAAEqB,eAAe,CAACpB,GAAhB,IAAuB,8BAP/B;MAQXC,aAAa,EAAEmB,eAAe,CAAClB,UARpB;MASXyB,SAAS,EAAEf,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAEe,SATb;MAUXC,UAAU,EAAEhB,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAEgB,UAVd;MAWXC,eAAe,EAAEf,aAAF,aAAEA,aAAF,uBAAEA,aAAa,CAAEgB,SAXrB;MAYX;MACAC,YAAY,EAAG,GAAEtB,mBAAS,eAbf;MAcX;MACAuB,gBAAgB,EAAE,KAfP,CAiBX;MACA;MACA;MACA;MACA;;IArBW,CAAb;;IAwBA,IAAIX,eAAJ,EAAqB;MACnBC,IAAI,CAACD,eAAe,CAAClB,OAAjB,CAAJ,GAAgCkB,eAAe,CAACjB,KAAhD;IACD,CA1CuB,CA2CxB;;;IACA9I,MAAM,CAAC2K,GAAP,CAAW,OAAX,EAAoBX,IAApB,EAA0BtK,WAA1B,EAAuC,EAAvC;IAEA,OAAOM,MAAP;EACD;;EAEOuB,iBAAiB,CACvBqJ,kBADuB,EAEvBC,gBAFuB,EAGvBC,QAAQ,GAAG,KAHY,EAIC;IACxB,OAAOD,gBAAgB,CAAC1F,OAAjB,GAA2BgD,MAA3B,CAAkC,CAACC,GAAD,EAAM,CAAC9D,SAAD,EAAYK,GAAZ,CAAN,KAA2B;MAClE,MAAMoG,WAAW,GAAG,KAAKvM,GAAL,CAASgG,cAAT,CAAwBF,SAAxB,CAApB;;MACA,IAAIsG,kBAAkB,CAACI,GAAnB,CAAuBD,WAAvB,CAAJ,EAAyC;QAAA;;QACvC3C,GAAG,CAACzD,GAAD,CAAH,4BAAWiG,kBAAkB,CAAChD,GAAnB,CAAuBmD,WAAvB,CAAX,0DAAW,sBAAqCE,MAArC,CAA4C;UAAExK,iBAAiB,EAAEqK;QAArB,CAA5C,CAAX;MACD;;MAED,OAAO1C,GAAP;IACD,CAPM,EAOJ,EAPI,CAAP;EAQD;;EAEO3B,WAAW,CAACyE,OAAD,EAAkE;IACnF,MAAM9I,GAAG,GAAG,IAAIqF,GAAJ,EAAZ;IACA,IAAI,CAACyD,OAAL,EAAc,OAAO9I,GAAP;IAEdF,MAAM,CAACC,IAAP,CAAY+I,OAAZ,EAAqB7G,OAArB,CAA8B0G,WAAD,IAAiB;MAC5C,MAAMlE,KAAK,GAAGP,mBAAA,CAAYC,UAAZ,CAAuBwE,WAAvB,CAAd;;MACA3I,GAAG,CAAC0F,GAAJ,CAAQjB,KAAK,CAAChE,SAAd,EAAyByD,mBAAA,CAAYa,cAAZ,CAA2BN,KAA3B,EAAkCqE,OAAO,CAACH,WAAD,CAAzC,CAAzB;IACD,CAHD;IAKA,OAAO3I,GAAP;EACD;;EAEyB,MAApB+I,oBAAoB,CACxBJ,WADwB,EAExB/L,OAFwB,EAGS;IAAA;;IACjC,MAAMoM,aAAa,GAAG,IAAAC,2BAAA,EAAiBN,WAAjB,CAAtB;IACA,MAAMO,aAAa,GAAGF,aAAa,CAAC5E,OAApC;IACA,MAAM+E,WAAW,GAAGD,aAAa,6BAAI,IAAAE,+BAAA,EAAoBF,aAApB,CAAJ,yDAAI,qBAAoCG,IAAxC,CAAjC;;IACA,IAAIF,WAAW,KAAK,SAApB,EAA+B;MAC7B,OAAO;QACLR,WAAW,EAAEK,aAAa,CAAC7G,IADtB;QAELiC,OAAO,EAAE8E,aAFJ;QAGLI,QAAQ,EAAE;MAHL,CAAP;IAKD;;IACD,IAAI,CAACC,oBAAA,CAAUC,SAAf,EAA0B;MACxB,MAAM,IAAI/D,KAAJ,CAAU,sCAAV,CAAN;IACD,CAbgC,CAejC;;;IACA,MAAM,CAACgE,iBAAD,EAAoBC,iBAApB,EAAuCC,cAAvC,IAAyDJ,oBAAA,CAAUC,SAAzE;;IACA,IAAII,QAAQ,GAAG,IAAIF,iBAAJ,EAAf;;IACA,MAAMjF,KAAK,GAAGP,mBAAA,CAAYC,UAAZ,CAAuB6E,aAAa,CAAC7G,IAArC,CAAd;;IACA,IAAI0H,KAAK,GAAG,OAAZ;;IACA,MAAMvM,WAAW,GAAGC,cAAA,CAAMC,cAAN,CAAqBZ,OAAO,CAACL,OAA7B,CAApB;;IACA,MAAMkB,QAAQ,GAAG,KAAKC,cAAL,CAAoBd,OAAO,CAACe,YAA5B,CAAjB;IACA,MAAMC,MAAM,GAAG,MAAM,KAAKC,oBAAL,CAA0BP,WAA1B,EAAuCG,QAAvC,EAAiD;MACpEM,2BAA2B,EAAEnB,OAAO,CAACmB;IAD+B,CAAjD,CAArB;IAIA,MAAMC,OAAO,GAAG,KAAIC,eAAJ,EAAYX,WAAZ,EAAyB;MAAEY,aAAa,EAAEN;IAAjB,CAAzB,CAAhB;IACA,MAAM0D,MAAM,GAAG,KAAIwI,mBAAJ,EAAgB;MAAE5L,aAAa,EAAEN,MAAjB;MAAyBwD,MAAM,EAAEC,OAAO,CAACD;IAAzC,CAAhB,CAAf,CA3BiC,CA6BjC;;IACA,IAAI+H,WAAW,KAAK,KAApB,EAA2B;MACzBS,QAAQ,GAAG,IAAID,cAAJ,EAAX;MACAE,KAAK,GAAI,OAAMb,aAAa,CAAC5E,OAAQ,EAArC;IACD;;IACD,MAAM2F,UAAU,GAAG7F,mBAAA,CAAYa,cAAZ,CAA2BN,KAA3B,EAAkCoF,KAAlC,CAAnB,CAlCiC,CAoCjC;;;IACA7L,OAAO,CAACS,gBAAR;IACA,MAAMuL,cAA8B,GAAG;MACrChM,OADqC;MAErC4L,QAFqC;MAGrCtI;IAHqC,CAAvC,CAtCiC,CA2CjC;;IACA,MAAM2I,UAAU,GAAG,MAAML,QAAQ,CAACM,aAAT,CAAuBH,UAAvB,EAAmC,IAAI1E,GAAJ,EAAnC,EAA8C2E,cAA9C,CAAzB;;IACA,MAAMG,WAAW,GAAGjG,mBAAA,CAAYkG,UAAZ,CAAuBH,UAAU,CAAC,CAAD,CAAV,CAAcpF,SAArC,CAApB;;IACA,MAAMT,OAAO,GAAG+F,WAAW,CAACE,QAA5B;IACA,OAAO;MACL1B,WAAW,EAAEK,aAAa,CAAC7G,IADtB;MAELiC,OAFK;MAGLkF,QAAQ,EAAE;IAHL,CAAP;EAKD;;EAEoB,MAAfgB,eAAe,CAAC/N,OAAD,EAAkBgO,YAAlB,EAAwC5B,WAAxC,EAAgF;IACnG,MAAM6B,UAAU,GAAG,IAAA/H,YAAA,EAAKlG,OAAL,EAAc,cAAd,CAAnB;IACA,IAAA8F,gBAAA,EAASmI,UAAT,EAAqBD,YAArB;IACA,IAAIE,gBAAJ;;IACA,IAAI;MACFA,gBAAgB,GAAG,MAAMnH,kBAAA,CAAGK,QAAH,CAAY,IAAAlB,YAAA,EAAK+H,UAAL,EAAiB,iBAAjB,CAAZ,EAAiD,OAAjD,CAAzB;IACD,CAFD,CAEE,OAAOE,GAAP,EAAiB;MACjB,IAAIA,GAAG,CAACC,IAAJ,KAAa,QAAjB,EAA2B,OAAO,EAAP;IAC5B;;IACD,MAAMC,SAAS,GAAGC,eAAA,CAAKC,KAAL,CAAWL,gBAAX,CAAlB;;IACA,MAAMM,YAAsB,GAAG,EAA/B;;IACA,KAAK,MAAM,CAACC,GAAD,EAAM;MAAEC;IAAF,CAAN,CAAX,IAAmCnL,MAAM,CAACkC,OAAP,CAAe4I,SAAf,CAAnC,EAA8D;MAC5D,IAAII,GAAG,CAACE,UAAJ,CAAgB,GAAEvC,WAAY,GAA9B,KAAqCqC,GAAG,CAACE,UAAJ,CAAgB,GAAEvC,WAAY,SAA9B,CAAzC,EAAkF;QAChF,KAAK,MAAMwC,QAAX,IAAuBF,SAAvB,EAAkC;UAChCF,YAAY,CAACnK,IAAb,CAAkBuK,QAAlB;QACD;MACF;IACF;;IACD,OAAOJ,YAAP;EACD;;AA9duD;;;;AAie1D,SAASvG,6BAAT,CACE7F,SADF,EAEqD;EACnD,MAAMyM,eAAe,GAAG,IAAAC,yBAAA,EAAe1M,SAAf,CAAxB;EACA,OAAOyM,eAAe,CAACpL,GAAhB,CAAqBsL,QAAD,KAAe;IACxCC,OAAO,EAAE;MACPzJ,IAAI,EAAEwJ,QAAQ,CAACE,SAAT,GAAqBC,wBAAwB,CAACH,QAAQ,CAACE,SAAV,CAA7C,GAAoEnO,SADnE;MAEP0M,UAAU,EAAE0B,wBAAwB,CAACH,QAAQ,CAACI,SAAV;IAF7B,CAD+B;IAKxC7G,SAAS,EAAEyG,QAAQ,CAACK;EALoB,CAAf,CAApB,CAAP;AAOD;;AAED,SAASF,wBAAT,CAAkC;EAAEtJ,IAAF;EAAQyJ;AAAR,CAAlC,EAAmF;EACjF,OAAO;IACLC,QAAQ,EAAE1J,IADL;IAEL2J,WAAW,EAAEF;EAFR,CAAP;AAID;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAelM,iDAAf,CAAiER,SAAjE,EAAoG;EAClG,MAAMkB,OAAO,CAACC,GAAR,CACJP,MAAM,CAACkC,OAAP,CAAe9C,SAAf,EAA0Bc,GAA1B,CAA8B,OAAO,CAACuC,GAAD,EAAM/D,QAAN,CAAP,KAA2B;IACvD,MAAMuN,WAAW,GAAG,IAAAtJ,YAAA,EAAKF,GAAL,EAAU,cAAV,CAApB;IACA,MAAMyJ,OAAO,GAAG,MAAM1I,kBAAA,CAAG2I,QAAH,CAAYF,WAAZ,CAAtB,CAFuD,CAGvD;IACA;IACA;;IACA,MAAMzI,kBAAA,CAAG4I,SAAH,CACJH,WADI,kCAGCC,OAHD;MAIFzM,YAAY,EAAEf,QAAQ,CAACe;IAJrB,IAMJ;MAAE4M,MAAM,EAAE;IAAV,CANI,CAAN;IAQA3N,QAAQ,CAACe,YAAT,iDACKf,QAAQ,CAACgB,gBADd,GAEKhB,QAAQ,CAACiB,uBAFd,GAGKjB,QAAQ,CAACe,YAHd;IAKAf,QAAQ,CAACQ,aAAT,GAAyB;MACvBC,cAAc,EAAE;IADO,CAAzB;EAGD,CAtBD,CADI,CAAN;AAyBD"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/yarn",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.804",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/dependencies/yarn",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.dependencies",
|
|
8
8
|
"name": "yarn",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.804"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"
|
|
12
|
+
"fs-extra": "10.0.0",
|
|
13
|
+
"@pnpm/parse-overrides": "2.0.2",
|
|
13
14
|
"@yarnpkg/cli": "3.2.1",
|
|
14
15
|
"@yarnpkg/core": "^3.2.2",
|
|
15
16
|
"@yarnpkg/fslib": "2.6.2",
|
|
16
17
|
"@yarnpkg/parsers": "2.5.1",
|
|
17
18
|
"@yarnpkg/plugin-npm": "2.7.1",
|
|
18
|
-
"fs-extra": "10.0.0",
|
|
19
19
|
"parse-package-name": "0.1.0",
|
|
20
20
|
"user-home": "2.0.0",
|
|
21
21
|
"version-selector-type": "3.0.0",
|
|
22
|
+
"yaml": "1.10.2",
|
|
22
23
|
"@babel/runtime": "7.12.18",
|
|
23
24
|
"core-js": "^3.0.0",
|
|
24
25
|
"@teambit/harmony": "0.3.3",
|
|
25
|
-
"@teambit/
|
|
26
|
-
"@teambit/dependency-resolver": "0.0.
|
|
27
|
-
"@teambit/
|
|
28
|
-
"@teambit/
|
|
29
|
-
"@teambit/
|
|
26
|
+
"@teambit/component": "0.0.803",
|
|
27
|
+
"@teambit/dependency-resolver": "0.0.803",
|
|
28
|
+
"@teambit/cli": "0.0.535",
|
|
29
|
+
"@teambit/logger": "0.0.628",
|
|
30
|
+
"@teambit/pkg": "0.0.803",
|
|
30
31
|
"@teambit/ui-foundation.ui.use-box.menu": "0.0.116",
|
|
31
|
-
"@teambit/ui": "0.0.
|
|
32
|
+
"@teambit/ui": "0.0.803"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
|
-
"@types/react": "^17.0.8",
|
|
35
35
|
"@types/fs-extra": "9.0.7",
|
|
36
|
+
"@types/react": "^17.0.8",
|
|
36
37
|
"@types/mocha": "9.1.0",
|
|
37
38
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
38
39
|
"@types/jest": "^26.0.0",
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
"@teambit/dependencies.aspect-docs.yarn": "0.0.139"
|
|
42
43
|
},
|
|
43
44
|
"peerDependencies": {
|
|
44
|
-
"@teambit/legacy": "1.0.
|
|
45
|
+
"@teambit/legacy": "1.0.317",
|
|
45
46
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
46
47
|
"react": "^16.8.0 || ^17.0.0"
|
|
47
48
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_yarn@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_yarn@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_yarn@0.0.804/dist/yarn.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_yarn@0.0.804/dist/yarn.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
Binary file
|