diff --git a/packages/angular/cli/src/commands/update/schematic/index.ts b/packages/angular/cli/src/commands/update/schematic/index.ts index 86bfe92deca1..73fd3e342a5a 100644 --- a/packages/angular/cli/src/commands/update/schematic/index.ts +++ b/packages/angular/cli/src/commands/update/schematic/index.ts @@ -9,19 +9,14 @@ import { logging } from '@angular-devkit/core'; import { Rule, SchematicContext, SchematicsException, Tree } from '@angular-devkit/schematics'; import * as npa from 'npm-package-arg'; -import type { Manifest } from 'pacote'; import * as semver from 'semver'; import { - NgPackageManifestProperties, NpmRepositoryPackageJson, + PackageManifest, getNpmPackageJson, } from '../../../utilities/package-metadata'; import { Schema as UpdateSchema } from './schema'; -interface JsonSchemaForNpmPackageJsonFiles extends Manifest, NgPackageManifestProperties { - peerDependenciesMeta?: Record; -} - type VersionRange = string & { __VERSION_RANGE: void }; type PeerVersionTransform = string | ((range: string) => string); @@ -64,7 +59,7 @@ const knownPeerCompatibleList: { [name: string]: PeerVersionTransform } = { interface PackageVersionInfo { version: VersionRange; - packageJson: JsonSchemaForNpmPackageJsonFiles; + packageJson: PackageManifest; updateMetadata: UpdateMetadata; } @@ -268,7 +263,7 @@ function _performUpdate( throw new SchematicsException('Could not find a package.json. Are you in a Node project?'); } - const packageJson = tree.readJson('/package.json') as JsonSchemaForNpmPackageJsonFiles; + const packageJson = tree.readJson('/package.json') as PackageManifest; const updateDependency = (deps: Record, name: string, newVersion: string) => { const oldVersion = deps[name]; @@ -347,7 +342,7 @@ function _performUpdate( } function _getUpdateMetadata( - packageJson: JsonSchemaForNpmPackageJsonFiles, + packageJson: PackageManifest, logger: logging.LoggerApi, ): UpdateMetadata { const metadata = packageJson['ng-update']; @@ -548,7 +543,7 @@ function _buildPackageInfo( let installedVersion: string | undefined | null; if (pkgJsonExists) { - const { version } = tree.readJson(pkgJsonPath) as JsonSchemaForNpmPackageJsonFiles; + const { version } = tree.readJson(pkgJsonPath) as PackageManifest; installedVersion = version; } @@ -774,7 +769,7 @@ function _addPeerDependencies( function _getAllDependencies(tree: Tree): Array { const { dependencies, devDependencies, peerDependencies } = tree.readJson( '/package.json', - ) as JsonSchemaForNpmPackageJsonFiles; + ) as PackageManifest; return [ ...(Object.entries(peerDependencies || {}) as Array<[string, VersionRange]>), diff --git a/packages/angular/cli/src/package-managers/package-metadata.ts b/packages/angular/cli/src/package-managers/package-metadata.ts index 6f88ea8a0e8f..45c38ca2602b 100644 --- a/packages/angular/cli/src/package-managers/package-metadata.ts +++ b/packages/angular/cli/src/package-managers/package-metadata.ts @@ -89,6 +89,9 @@ export interface PackageManifest { /** A mapping of peer dependencies. */ peerDependencies?: Record; + /** A mapping of peer dependency metadata */ + peerDependenciesMeta?: Record; + /** A mapping of development dependencies. */ devDependencies?: Record; diff --git a/packages/angular/cli/src/utilities/package-metadata.ts b/packages/angular/cli/src/utilities/package-metadata.ts index 7aa0cb71c8ce..58369ad07ec9 100644 --- a/packages/angular/cli/src/utilities/package-metadata.ts +++ b/packages/angular/cli/src/utilities/package-metadata.ts @@ -49,6 +49,7 @@ export interface NgPackageManifestProperties { export interface PackageManifest extends Manifest, NgPackageManifestProperties { deprecated?: boolean; + peerDependenciesMeta?: Record; } interface PackageManagerOptions extends Record {