@yarnpkg/plugin-essentials 4.0.0-rc.43 → 4.0.0-rc.45

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.
@@ -172,8 +172,16 @@ class YarnCommand extends cli_1.BaseCommand {
172
172
  stdout: this.context.stdout,
173
173
  includeFooter: false,
174
174
  }, async (report) => {
175
+ let changed = false;
176
+ if (await autofixLegacyPlugins(configuration, immutable)) {
177
+ report.reportInfo(core_1.MessageName.AUTOMERGE_SUCCESS, `Automatically removed core plugins that are now builtins 👍`);
178
+ changed = true;
179
+ }
175
180
  if (await autofixMergeConflicts(configuration, immutable)) {
176
181
  report.reportInfo(core_1.MessageName.AUTOMERGE_SUCCESS, `Automatically fixed merge conflicts 👍`);
182
+ changed = true;
183
+ }
184
+ if (changed) {
177
185
  report.reportSeparator();
178
186
  }
179
187
  });
@@ -386,3 +394,36 @@ async function autofixMergeConflicts(configuration, immutable) {
386
394
  });
387
395
  return true;
388
396
  }
397
+ async function autofixLegacyPlugins(configuration, immutable) {
398
+ if (!configuration.projectCwd)
399
+ return false;
400
+ const legacyPlugins = [];
401
+ const yarnPluginDir = fslib_1.ppath.join(configuration.projectCwd, `.yarn/plugins/@yarnpkg`);
402
+ const changed = await core_1.Configuration.updateConfiguration(configuration.projectCwd, current => {
403
+ if (!Array.isArray(current.plugins))
404
+ return current;
405
+ const plugins = current.plugins.filter((plugin) => {
406
+ if (!plugin.path)
407
+ return true;
408
+ const resolvedPath = fslib_1.ppath.resolve(configuration.projectCwd, plugin.path);
409
+ const isLegacy = core_1.LEGACY_PLUGINS.has(plugin.spec) && fslib_1.ppath.contains(yarnPluginDir, resolvedPath);
410
+ if (isLegacy)
411
+ legacyPlugins.push(resolvedPath);
412
+ return !isLegacy;
413
+ });
414
+ if (current.plugins.length === plugins.length)
415
+ return current;
416
+ return {
417
+ ...current,
418
+ plugins,
419
+ };
420
+ }, {
421
+ immutable,
422
+ });
423
+ if (!changed)
424
+ return false;
425
+ await Promise.all(legacyPlugins.map(async (pluginPath) => {
426
+ await fslib_1.xfs.removePromise(pluginPath);
427
+ }));
428
+ return true;
429
+ }
@@ -111,13 +111,18 @@ class UpCommand extends cli_1.BaseCommand {
111
111
  let isReferenced = false;
112
112
  // The range has to be static
113
113
  const pseudoDescriptor = core_1.structUtils.parseDescriptor(pattern);
114
+ const stringifiedPseudoDescriptor = core_1.structUtils.stringifyIdent(pseudoDescriptor);
114
115
  for (const workspace of project.workspaces) {
115
116
  for (const target of [suggestUtils.Target.REGULAR, suggestUtils.Target.DEVELOPMENT]) {
116
117
  const descriptors = workspace.manifest.getForScope(target);
117
118
  const stringifiedIdents = [...descriptors.values()].map(descriptor => {
118
119
  return core_1.structUtils.stringifyIdent(descriptor);
119
120
  });
120
- for (const stringifiedIdent of (0, micromatch_1.default)(stringifiedIdents, core_1.structUtils.stringifyIdent(pseudoDescriptor))) {
121
+ // As a special case, we support "*" as a pattern to upgrade all packages
122
+ const matches = stringifiedPseudoDescriptor === `*`
123
+ ? stringifiedIdents
124
+ : (0, micromatch_1.default)(stringifiedIdents, stringifiedPseudoDescriptor);
125
+ for (const stringifiedIdent of matches) {
121
126
  const ident = core_1.structUtils.parseIdent(stringifiedIdent);
122
127
  const existingDescriptor = workspace.manifest[target].get(ident.identHash);
123
128
  if (typeof existingDescriptor === `undefined`)
@@ -15,7 +15,7 @@ var Strategy;
15
15
  * - dependencies are never downgraded
16
16
  */
17
17
  Strategy["HIGHEST"] = "highest";
18
- })(Strategy = exports.Strategy || (exports.Strategy = {}));
18
+ })(Strategy || (exports.Strategy = Strategy = {}));
19
19
  exports.acceptedStrategies = new Set(Object.values(Strategy));
20
20
  const DEDUPE_ALGORITHMS = {
21
21
  highest: async (project, patterns, { resolver, fetcher, resolveOptions, fetchOptions }) => {
@@ -12,19 +12,19 @@ var Target;
12
12
  Target["REGULAR"] = "dependencies";
13
13
  Target["DEVELOPMENT"] = "devDependencies";
14
14
  Target["PEER"] = "peerDependencies";
15
- })(Target = exports.Target || (exports.Target = {}));
15
+ })(Target || (exports.Target = Target = {}));
16
16
  var Modifier;
17
17
  (function (Modifier) {
18
18
  Modifier["CARET"] = "^";
19
19
  Modifier["TILDE"] = "~";
20
20
  Modifier["EXACT"] = "";
21
- })(Modifier = exports.Modifier || (exports.Modifier = {}));
21
+ })(Modifier || (exports.Modifier = Modifier = {}));
22
22
  var WorkspaceModifier;
23
23
  (function (WorkspaceModifier) {
24
24
  WorkspaceModifier["CARET"] = "^";
25
25
  WorkspaceModifier["TILDE"] = "~";
26
26
  WorkspaceModifier["EXACT"] = "*";
27
- })(WorkspaceModifier = exports.WorkspaceModifier || (exports.WorkspaceModifier = {}));
27
+ })(WorkspaceModifier || (exports.WorkspaceModifier = WorkspaceModifier = {}));
28
28
  var Strategy;
29
29
  (function (Strategy) {
30
30
  /**
@@ -52,7 +52,7 @@ var Strategy;
52
52
  * versions of the package that are already within our cache.
53
53
  */
54
54
  Strategy["CACHE"] = "cache";
55
- })(Strategy = exports.Strategy || (exports.Strategy = {}));
55
+ })(Strategy || (exports.Strategy = Strategy = {}));
56
56
  function getModifier(flags, project) {
57
57
  if (flags.exact)
58
58
  return Modifier.EXACT;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yarnpkg/plugin-essentials",
3
- "version": "4.0.0-rc.43",
3
+ "version": "4.0.0-rc.45",
4
4
  "stableVersion": "3.3.0",
5
5
  "license": "BSD-2-Clause",
6
6
  "main": "./lib/index.js",
@@ -9,8 +9,8 @@
9
9
  "./package.json": "./package.json"
10
10
  },
11
11
  "dependencies": {
12
- "@yarnpkg/fslib": "^3.0.0-rc.43",
13
- "@yarnpkg/parsers": "^3.0.0-rc.43",
12
+ "@yarnpkg/fslib": "^3.0.0-rc.45",
13
+ "@yarnpkg/parsers": "^3.0.0-rc.45",
14
14
  "ci-info": "^3.2.0",
15
15
  "clipanion": "^3.2.0-rc.10",
16
16
  "enquirer": "^2.3.6",
@@ -21,17 +21,17 @@
21
21
  "typanion": "^3.3.0"
22
22
  },
23
23
  "peerDependencies": {
24
- "@yarnpkg/cli": "^4.0.0-rc.43",
25
- "@yarnpkg/core": "^4.0.0-rc.43",
26
- "@yarnpkg/plugin-git": "^3.0.0-rc.43"
24
+ "@yarnpkg/cli": "^4.0.0-rc.45",
25
+ "@yarnpkg/core": "^4.0.0-rc.45",
26
+ "@yarnpkg/plugin-git": "^3.0.0-rc.45"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/lodash": "^4.14.136",
30
30
  "@types/micromatch": "^4.0.1",
31
31
  "@types/semver": "^7.1.0",
32
- "@yarnpkg/cli": "^4.0.0-rc.43",
33
- "@yarnpkg/core": "^4.0.0-rc.43",
34
- "@yarnpkg/plugin-git": "^3.0.0-rc.43"
32
+ "@yarnpkg/cli": "^4.0.0-rc.45",
33
+ "@yarnpkg/core": "^4.0.0-rc.45",
34
+ "@yarnpkg/plugin-git": "^3.0.0-rc.45"
35
35
  },
36
36
  "repository": {
37
37
  "type": "git",