@angular/cli 20.3.27 → 20.3.28

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/cli",
3
- "version": "20.3.27",
3
+ "version": "20.3.28",
4
4
  "description": "CLI tool for Angular",
5
5
  "main": "lib/cli/index.js",
6
6
  "bin": {
@@ -25,13 +25,13 @@
25
25
  },
26
26
  "homepage": "https://github.com/angular/angular-cli",
27
27
  "dependencies": {
28
- "@angular-devkit/architect": "0.2003.27",
29
- "@angular-devkit/core": "20.3.27",
30
- "@angular-devkit/schematics": "20.3.27",
28
+ "@angular-devkit/architect": "0.2003.28",
29
+ "@angular-devkit/core": "20.3.28",
30
+ "@angular-devkit/schematics": "20.3.28",
31
31
  "@inquirer/prompts": "7.8.2",
32
32
  "@listr2/prompt-adapter-inquirer": "3.0.1",
33
33
  "@modelcontextprotocol/sdk": "1.26.0",
34
- "@schematics/angular": "20.3.27",
34
+ "@schematics/angular": "20.3.28",
35
35
  "@yarnpkg/lockfile": "1.1.0",
36
36
  "algoliasearch": "5.35.0",
37
37
  "ini": "5.0.0",
@@ -47,14 +47,14 @@
47
47
  "ng-update": {
48
48
  "migrations": "@schematics/angular/migrations/migration-collection.json",
49
49
  "packageGroup": {
50
- "@angular/cli": "20.3.27",
51
- "@angular/build": "20.3.27",
52
- "@angular/ssr": "20.3.27",
53
- "@angular-devkit/architect": "0.2003.27",
54
- "@angular-devkit/build-angular": "20.3.27",
55
- "@angular-devkit/build-webpack": "0.2003.27",
56
- "@angular-devkit/core": "20.3.27",
57
- "@angular-devkit/schematics": "20.3.27"
50
+ "@angular/cli": "20.3.28",
51
+ "@angular/build": "20.3.28",
52
+ "@angular/ssr": "20.3.28",
53
+ "@angular-devkit/architect": "0.2003.28",
54
+ "@angular-devkit/build-angular": "20.3.28",
55
+ "@angular-devkit/build-webpack": "0.2003.28",
56
+ "@angular-devkit/core": "20.3.28",
57
+ "@angular-devkit/schematics": "20.3.28"
58
58
  }
59
59
  },
60
60
  "packageManager": "pnpm@10.19.0",
@@ -495,25 +495,24 @@ class UpdateCommandModule extends command_module_1.CommandModule {
495
495
  case 'version':
496
496
  manifest = metadata.versions[requestIdentifier.fetchSpec];
497
497
  break;
498
- case 'range':
499
- for (const potentialManifest of Object.values(metadata.versions)) {
500
- // Ignore deprecated package versions
501
- if (potentialManifest.deprecated) {
502
- continue;
503
- }
504
- // Only consider versions that are within the range
505
- if (!semver.satisfies(potentialManifest.version, requestIdentifier.fetchSpec, {
506
- loose: true,
507
- })) {
508
- continue;
509
- }
510
- // Update the used manifest if current potential is newer than existing or there is not one yet
511
- if (!manifest ||
512
- semver.gt(potentialManifest.version, manifest.version, { loose: true })) {
513
- manifest = potentialManifest;
498
+ case 'range': {
499
+ const potentialManifests = Object.values(metadata.versions).filter((potentialManifest) => semver.satisfies(potentialManifest.version, requestIdentifier.fetchSpec, {
500
+ loose: true,
501
+ }));
502
+ const nonDeprecated = potentialManifests.filter((m) => !m.deprecated);
503
+ const deprecated = potentialManifests.filter((m) => !!m.deprecated);
504
+ const selectLatest = (manifests) => {
505
+ let max;
506
+ for (const m of manifests) {
507
+ if (!max || semver.gt(m.version, max.version, { loose: true })) {
508
+ max = m;
509
+ }
514
510
  }
515
- }
511
+ return max;
512
+ };
513
+ manifest = selectLatest(nonDeprecated) ?? selectLatest(deprecated);
516
514
  break;
515
+ }
517
516
  }
518
517
  if (!manifest) {
519
518
  logger.error(`Package specified by '${requestIdentifier.raw}' does not exist within the registry.`);
@@ -541,7 +541,7 @@ function _addPackageGroup(tree, packages, allDependencies, npmPackageJson, logge
541
541
  let packageGroupNormalized = {};
542
542
  if (Array.isArray(packageGroup) && !packageGroup.some((x) => typeof x != 'string')) {
543
543
  packageGroupNormalized = packageGroup.reduce((acc, curr) => {
544
- acc[curr] = maybePackage;
544
+ acc[curr] = version;
545
545
  return acc;
546
546
  }, {});
547
547
  }
@@ -143,19 +143,6 @@ function normalizeOptions(rawOptions, location = process.cwd(), existingNormaliz
143
143
  substitutedValue = value.replace(/\$\{([^}]+)\}/, (_, name) => process.env[name] || '');
144
144
  }
145
145
  switch (key) {
146
- // Unless auth options are scope with the registry url it appears that npm-registry-fetch ignores them,
147
- // even though they are documented.
148
- // https://github.com/npm/npm-registry-fetch/blob/8954f61d8d703e5eb7f3d93c9b40488f8b1b62ac/README.md
149
- // https://github.com/npm/npm-registry-fetch/blob/8954f61d8d703e5eb7f3d93c9b40488f8b1b62ac/auth.js#L45-L91
150
- case '_authToken':
151
- case 'token':
152
- case 'username':
153
- case 'password':
154
- case '_auth':
155
- case 'auth':
156
- options['forceAuth'] ??= {};
157
- options['forceAuth'][key] = substitutedValue;
158
- break;
159
146
  case 'noproxy':
160
147
  case 'no-proxy':
161
148
  options['noProxy'] = substitutedValue;
@@ -22,4 +22,4 @@ class Version {
22
22
  this.patch = patch;
23
23
  }
24
24
  }
25
- exports.VERSION = new Version('20.3.27');
25
+ exports.VERSION = new Version('20.3.28');