@angular/cli
Advanced tools
| /** | ||
| * @license | ||
| * Copyright Google LLC All Rights Reserved. | ||
| * | ||
| * Use of this source code is governed by an MIT-style license that can be | ||
| * found in the LICENSE file at https://angular.dev/license | ||
| */ | ||
| import { logging } from '@angular-devkit/core'; | ||
| import { NpmRepositoryPackageJson, PackageManifest } from '../../utilities/package-metadata'; | ||
| export type VersionRange = string & { | ||
| __VERSION_RANGE: void; | ||
| }; | ||
| export declare function angularMajorCompatGuarantee(range: string): string; | ||
| export interface PackageVersionInfo { | ||
| version: VersionRange; | ||
| packageJson: PackageManifest; | ||
| updateMetadata: UpdateMetadata; | ||
| } | ||
| export interface PackageInfo { | ||
| name: string; | ||
| npmPackageJson: NpmRepositoryPackageJson; | ||
| installed: PackageVersionInfo; | ||
| target?: PackageVersionInfo; | ||
| packageJsonRange: string; | ||
| } | ||
| export interface UpdateMetadata { | ||
| packageGroupName?: string; | ||
| packageGroup: { | ||
| [packageName: string]: string; | ||
| }; | ||
| requirements: { | ||
| [packageName: string]: string; | ||
| }; | ||
| migrations?: string; | ||
| } | ||
| export interface UpdateResolverOptions { | ||
| packages?: string[]; | ||
| force?: boolean; | ||
| next?: boolean; | ||
| migrateOnly?: boolean; | ||
| from?: string; | ||
| to?: string; | ||
| registry?: string; | ||
| packageManager?: string; | ||
| verbose?: boolean; | ||
| workspaceRoot?: string; | ||
| } | ||
| export interface UpdatePlan { | ||
| packagesToUpdate: Map<string, string>; | ||
| migrationsToRun: { | ||
| package: string; | ||
| collection: string; | ||
| from: string; | ||
| to: string; | ||
| }[]; | ||
| packageInfoMap: Map<string, PackageInfo>; | ||
| } | ||
| export declare function isPnpActive(workspaceRoot: string): boolean; | ||
| export declare function findPackageJson(workspaceDir: string, packageName: string): string | undefined; | ||
| export declare function resolveUserUpdatePlan(options: UpdateResolverOptions, logger: logging.LoggerApi): Promise<UpdatePlan>; | ||
| export declare function printUpdateUsageMessage(infoMap: Map<string, PackageInfo>, logger: logging.LoggerApi, next?: boolean): void; | ||
| export declare function applyUpdatePlan(workspaceRoot: string, plan: UpdatePlan, logger: logging.LoggerApi): Promise<void>; |
| "use strict"; | ||
| /** | ||
| * @license | ||
| * Copyright Google LLC All Rights Reserved. | ||
| * | ||
| * Use of this source code is governed by an MIT-style license that can be | ||
| * found in the LICENSE file at https://angular.dev/license | ||
| */ | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
| Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
| }) : function(o, v) { | ||
| o["default"] = v; | ||
| }); | ||
| var __importStar = (this && this.__importStar) || (function () { | ||
| var ownKeys = function(o) { | ||
| ownKeys = Object.getOwnPropertyNames || function (o) { | ||
| var ar = []; | ||
| for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; | ||
| return ar; | ||
| }; | ||
| return ownKeys(o); | ||
| }; | ||
| return function (mod) { | ||
| if (mod && mod.__esModule) return mod; | ||
| var result = {}; | ||
| if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); | ||
| __setModuleDefault(result, mod); | ||
| return result; | ||
| }; | ||
| })(); | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.angularMajorCompatGuarantee = angularMajorCompatGuarantee; | ||
| exports.isPnpActive = isPnpActive; | ||
| exports.findPackageJson = findPackageJson; | ||
| exports.resolveUserUpdatePlan = resolveUserUpdatePlan; | ||
| exports.printUpdateUsageMessage = printUpdateUsageMessage; | ||
| exports.applyUpdatePlan = applyUpdatePlan; | ||
| const core_1 = require("@angular-devkit/core"); | ||
| const node_fs_1 = require("node:fs"); | ||
| const node_module_1 = require("node:module"); | ||
| const path = __importStar(require("node:path")); | ||
| const npm_package_arg_1 = __importDefault(require("npm-package-arg")); | ||
| const semver = __importStar(require("semver")); | ||
| const package_metadata_1 = require("../../utilities/package-metadata"); | ||
| function angularMajorCompatGuarantee(range) { | ||
| let newRange = semver.validRange(range); | ||
| if (!newRange) { | ||
| return range; | ||
| } | ||
| let major = 1; | ||
| while (!semver.gtr(major + '.0.0', newRange)) { | ||
| major++; | ||
| if (major >= 99) { | ||
| return newRange; | ||
| } | ||
| } | ||
| newRange = range; | ||
| for (let minor = 0; minor < 20; minor++) { | ||
| newRange += ` || ^${major}.${minor}.0-alpha.0 `; | ||
| } | ||
| return semver.validRange(newRange) || range; | ||
| } | ||
| const knownPeerCompatibleList = { | ||
| '@angular/core': angularMajorCompatGuarantee, | ||
| }; | ||
| function _updatePeerVersion(infoMap, name, range) { | ||
| const maybePackageInfo = infoMap.get(name); | ||
| if (!maybePackageInfo) { | ||
| return range; | ||
| } | ||
| if (maybePackageInfo.target) { | ||
| name = maybePackageInfo.target.updateMetadata.packageGroupName || name; | ||
| } | ||
| else { | ||
| name = maybePackageInfo.installed.updateMetadata.packageGroupName || name; | ||
| } | ||
| const maybeTransform = knownPeerCompatibleList[name]; | ||
| if (maybeTransform) { | ||
| if (typeof maybeTransform == 'function') { | ||
| return maybeTransform(range); | ||
| } | ||
| else { | ||
| return maybeTransform; | ||
| } | ||
| } | ||
| return range; | ||
| } | ||
| function _validateForwardPeerDependencies(name, infoMap, logger) { | ||
| let error = false; | ||
| const info = infoMap.get(name); | ||
| if (!info || !info.target) { | ||
| return error; | ||
| } | ||
| const peerDependencies = info.target.packageJson.peerDependencies || {}; | ||
| const peerDependenciesMeta = info.target.packageJson.peerDependenciesMeta || {}; | ||
| for (const [peer, range] of Object.entries(peerDependencies)) { | ||
| const peerInfo = infoMap.get(peer); | ||
| if (!peerInfo) { | ||
| continue; | ||
| } | ||
| const isOptional = !!peerDependenciesMeta[peer]?.optional; | ||
| const resolvedRange = _updatePeerVersion(infoMap, peer, range); | ||
| const resolvedVersion = peerInfo.target ? peerInfo.target.version : peerInfo.installed.version; | ||
| if (!semver.satisfies(resolvedVersion, resolvedRange, { includePrerelease: true })) { | ||
| logger.error(`Package ${JSON.stringify(name)} has an incompatible peer dependency to ` + | ||
| `${JSON.stringify(peer)} (requires ${JSON.stringify(range)}, ` + | ||
| `would install ${JSON.stringify(resolvedVersion)}).`); | ||
| error = error || !isOptional; | ||
| } | ||
| } | ||
| return error; | ||
| } | ||
| function _validateReversePeerDependencies(name, version, infoMap, logger, next) { | ||
| let error = false; | ||
| for (const [installed, installedInfo] of infoMap.entries()) { | ||
| const installedLogger = logger.createChild(installed); | ||
| installedLogger.debug(`${installed}...`); | ||
| const peers = (installedInfo.target || installedInfo.installed).packageJson.peerDependencies; | ||
| const peersMeta = (installedInfo.target || installedInfo.installed).packageJson | ||
| .peerDependenciesMeta; | ||
| for (const [peer, range] of Object.entries(peers || {})) { | ||
| if (peer !== name) { | ||
| continue; | ||
| } | ||
| const isOptional = !!peersMeta?.[peer]?.optional; | ||
| const resolvedRange = _updatePeerVersion(infoMap, name, range); | ||
| if (!semver.satisfies(version, resolvedRange, { includePrerelease: next || undefined })) { | ||
| logger.error(`Package ${JSON.stringify(installed)} has an incompatible peer dependency to ` + | ||
| `${JSON.stringify(name)} (requires ${JSON.stringify(range)}, ` + | ||
| `would install ${JSON.stringify(version)}).`); | ||
| error = error || !isOptional; | ||
| } | ||
| } | ||
| } | ||
| return error; | ||
| } | ||
| function _validateUpdatePackages(infoMap, force, next, logger) { | ||
| logger.debug('Validating peer dependencies...'); | ||
| let error = false; | ||
| for (const name of infoMap.keys()) { | ||
| const info = infoMap.get(name); | ||
| if (!info || !info.target) { | ||
| continue; | ||
| } | ||
| logger.debug(`Checking ${name}...`); | ||
| error = _validateForwardPeerDependencies(name, infoMap, logger) || error; | ||
| error = | ||
| _validateReversePeerDependencies(name, info.target.version, infoMap, logger, next) || error; | ||
| } | ||
| if (error && !force) { | ||
| throw new Error('Incompatible peer dependencies found. See above for details. ' + | ||
| 'You can bypass this check using the --force option.'); | ||
| } | ||
| } | ||
| function _getUpdateMetadata(packageJson, logger) { | ||
| const metadata = packageJson['ng-update']; | ||
| const result = { | ||
| packageGroup: {}, | ||
| requirements: {}, | ||
| }; | ||
| if (!metadata || typeof metadata != 'object' || Array.isArray(metadata)) { | ||
| return result; | ||
| } | ||
| if (metadata['packageGroup']) { | ||
| const packageGroup = metadata['packageGroup']; | ||
| if (Array.isArray(packageGroup) && packageGroup.every((x) => typeof x == 'string')) { | ||
| result.packageGroup = packageGroup.reduce((group, name) => { | ||
| group[name] = packageJson.version; | ||
| return group; | ||
| }, {}); | ||
| } | ||
| else if (typeof packageGroup == 'object' && packageGroup !== null) { | ||
| result.packageGroup = Object.entries(packageGroup).reduce((group, [name, version]) => { | ||
| if (typeof version == 'string') { | ||
| group[name] = version; | ||
| } | ||
| return group; | ||
| }, {}); | ||
| } | ||
| else { | ||
| logger.warn(`PackageGroup metadata for ${packageJson.name} is malformed. Ignoring.`); | ||
| } | ||
| } | ||
| if (typeof metadata['packageGroupName'] == 'string') { | ||
| result.packageGroupName = metadata['packageGroupName']; | ||
| } | ||
| if (typeof metadata['migrations'] == 'string') { | ||
| result.migrations = metadata['migrations']; | ||
| } | ||
| return result; | ||
| } | ||
| function isPnpActive(workspaceRoot) { | ||
| return (process.versions.pnp !== undefined || | ||
| (0, node_fs_1.existsSync)(path.join(workspaceRoot, '.pnp.cjs')) || | ||
| (0, node_fs_1.existsSync)(path.join(workspaceRoot, '.pnp.js'))); | ||
| } | ||
| function findPackageJson(workspaceDir, packageName) { | ||
| if (isPnpActive(workspaceDir)) { | ||
| try { | ||
| const workspaceRequire = (0, node_module_1.createRequire)(path.join(workspaceDir, 'package.json')); | ||
| return workspaceRequire.resolve(`${packageName}/package.json`); | ||
| } | ||
| catch { | ||
| return undefined; | ||
| } | ||
| } | ||
| let currentDir = workspaceDir; | ||
| while (true) { | ||
| const candidatePath = path.join(currentDir, 'node_modules', packageName, 'package.json'); | ||
| if ((0, node_fs_1.existsSync)(candidatePath)) { | ||
| return (0, node_fs_1.realpathSync)(candidatePath); | ||
| } | ||
| const parentDir = path.dirname(currentDir); | ||
| if (parentDir === currentDir) { | ||
| break; | ||
| } | ||
| currentDir = parentDir; | ||
| } | ||
| return undefined; | ||
| } | ||
| function getInstalledPackageJson(packageName, workspaceRoot) { | ||
| try { | ||
| const manifestPath = findPackageJson(workspaceRoot, packageName); | ||
| if (manifestPath) { | ||
| const content = (0, node_fs_1.readFileSync)(manifestPath, 'utf8'); | ||
| return JSON.parse(content); | ||
| } | ||
| } | ||
| catch { } | ||
| return null; | ||
| } | ||
| function getInstalledVersion(packageName, workspaceRoot) { | ||
| const pkgJson = getInstalledPackageJson(packageName, workspaceRoot); | ||
| return pkgJson?.version ?? null; | ||
| } | ||
| function _buildLocalPackageInfo(name, allDependencies, workspaceRoot) { | ||
| const packageJsonRange = allDependencies.get(name); | ||
| if (!packageJsonRange) { | ||
| throw new Error(`Package ${JSON.stringify(name)} was not found in package.json.`); | ||
| } | ||
| const localPkgJson = getInstalledPackageJson(name, workspaceRoot); | ||
| if (!localPkgJson) { | ||
| throw new Error(`Package ${name} is not installed.`); | ||
| } | ||
| const installedVersion = localPkgJson.version; | ||
| const npmPackageJson = { | ||
| name, | ||
| versions: { | ||
| [installedVersion]: localPkgJson, | ||
| }, | ||
| 'dist-tags': {}, | ||
| }; | ||
| const logger = new core_1.logging.NullLogger(); | ||
| return { | ||
| name, | ||
| npmPackageJson, | ||
| installed: { | ||
| version: installedVersion, | ||
| packageJson: localPkgJson, | ||
| updateMetadata: _getUpdateMetadata(localPkgJson, logger), | ||
| }, | ||
| packageJsonRange, | ||
| }; | ||
| } | ||
| function _buildPackageInfo(packages, allDependencies, npmPackageJson, workspaceRoot, logger) { | ||
| const name = npmPackageJson.name; | ||
| const packageJsonRange = allDependencies.get(name); | ||
| if (!packageJsonRange) { | ||
| throw new Error(`Package ${JSON.stringify(name)} was not found in package.json.`); | ||
| } | ||
| const localPkgJson = getInstalledPackageJson(name, workspaceRoot); | ||
| let installedVersion = localPkgJson?.version; | ||
| const packageVersionsNonDeprecated = []; | ||
| const packageVersionsDeprecated = []; | ||
| for (const [version, { deprecated }] of Object.entries(npmPackageJson.versions ?? {})) { | ||
| if (deprecated) { | ||
| packageVersionsDeprecated.push(version); | ||
| } | ||
| else { | ||
| packageVersionsNonDeprecated.push(version); | ||
| } | ||
| } | ||
| const findSatisfyingVersion = (targetVersion) => (semver.maxSatisfying(packageVersionsNonDeprecated, targetVersion) ?? | ||
| semver.maxSatisfying(packageVersionsDeprecated, targetVersion)) ?? | ||
| undefined; | ||
| if (!installedVersion) { | ||
| installedVersion = findSatisfyingVersion(packageJsonRange); | ||
| } | ||
| if (!installedVersion) { | ||
| throw new Error(`An unexpected error happened; could not determine version for package ${name}.`); | ||
| } | ||
| const versions = npmPackageJson.versions ?? {}; | ||
| const installedPackageJson = versions[installedVersion] || localPkgJson; | ||
| if (!installedPackageJson) { | ||
| throw new Error(`An unexpected error happened; package ${name} has no version ${installedVersion}.`); | ||
| } | ||
| let targetVersion = packages.get(name); | ||
| if (targetVersion) { | ||
| const distTags = npmPackageJson['dist-tags'] ?? {}; | ||
| if (distTags[targetVersion]) { | ||
| targetVersion = distTags[targetVersion]; | ||
| } | ||
| else if (targetVersion == 'next') { | ||
| targetVersion = distTags['latest']; | ||
| } | ||
| else { | ||
| targetVersion = findSatisfyingVersion(targetVersion); | ||
| } | ||
| } | ||
| if (targetVersion && semver.lte(targetVersion, installedVersion)) { | ||
| logger.debug(`Package ${name} already satisfied by package.json (${packageJsonRange}).`); | ||
| targetVersion = undefined; | ||
| } | ||
| const target = targetVersion | ||
| ? { | ||
| version: targetVersion, | ||
| packageJson: versions[targetVersion], | ||
| updateMetadata: _getUpdateMetadata(versions[targetVersion], logger), | ||
| } | ||
| : undefined; | ||
| return { | ||
| name, | ||
| npmPackageJson, | ||
| installed: { | ||
| version: installedVersion, | ||
| packageJson: installedPackageJson, | ||
| updateMetadata: _getUpdateMetadata(installedPackageJson, logger), | ||
| }, | ||
| target, | ||
| packageJsonRange, | ||
| }; | ||
| } | ||
| function _buildPackageList(options, allDependencies, logger) { | ||
| const packages = new Map(); | ||
| const inputPackages = options.packages ?? []; | ||
| if (inputPackages.length === 0) { | ||
| return packages; | ||
| } | ||
| for (const pkg of inputPackages) { | ||
| let pkgName = pkg; | ||
| let pkgVersion; | ||
| if (pkg.startsWith('@')) { | ||
| const parts = pkg.split('@'); | ||
| pkgName = '@' + parts[1]; | ||
| pkgVersion = parts[2]; | ||
| } | ||
| else if (pkg.includes('@')) { | ||
| const parts = pkg.split('@'); | ||
| pkgName = parts[0]; | ||
| pkgVersion = parts[1]; | ||
| } | ||
| if (!allDependencies.has(pkgName)) { | ||
| throw new Error(`Package ${JSON.stringify(pkgName)} is not in package.json.`); | ||
| } | ||
| if (options.migrateOnly && !pkgVersion && options.from) { | ||
| pkgVersion = options.from; | ||
| } | ||
| packages.set(pkgName, (pkgVersion || (options.next ? 'next' : 'latest'))); | ||
| } | ||
| return packages; | ||
| } | ||
| function resolvePackageVersion(metadata, range, next = false) { | ||
| const distTags = metadata['dist-tags'] ?? {}; | ||
| if (distTags[range]) { | ||
| return distTags[range]; | ||
| } | ||
| if (range === 'next') { | ||
| return distTags['latest'] ?? null; | ||
| } | ||
| const packageVersionsNonDeprecated = []; | ||
| const packageVersionsDeprecated = []; | ||
| for (const [v, { deprecated }] of Object.entries(metadata.versions ?? {})) { | ||
| if (deprecated) { | ||
| packageVersionsDeprecated.push(v); | ||
| } | ||
| else { | ||
| packageVersionsNonDeprecated.push(v); | ||
| } | ||
| } | ||
| return (semver.maxSatisfying(packageVersionsNonDeprecated, range, { | ||
| includePrerelease: next || undefined, | ||
| }) ?? | ||
| semver.maxSatisfying(packageVersionsDeprecated, range, { | ||
| includePrerelease: next || undefined, | ||
| })); | ||
| } | ||
| function _addPackageGroup(packages, allDependencies, metadata, logger) { | ||
| const maybePackage = packages.get(metadata.name); | ||
| if (!maybePackage) { | ||
| return; | ||
| } | ||
| const distTags = metadata['dist-tags'] ?? {}; | ||
| let version = maybePackage; | ||
| if (distTags[version]) { | ||
| version = distTags[version]; | ||
| } | ||
| else if (version === 'next') { | ||
| version = distTags['latest']; | ||
| } | ||
| else { | ||
| const packageVersionsNonDeprecated = []; | ||
| const packageVersionsDeprecated = []; | ||
| const versions = metadata.versions ?? {}; | ||
| for (const [v, { deprecated }] of Object.entries(versions)) { | ||
| if (deprecated) { | ||
| packageVersionsDeprecated.push(v); | ||
| } | ||
| else { | ||
| packageVersionsNonDeprecated.push(v); | ||
| } | ||
| } | ||
| version = | ||
| (semver.maxSatisfying(packageVersionsNonDeprecated, version) ?? | ||
| semver.maxSatisfying(packageVersionsDeprecated, version)) ?? | ||
| version; | ||
| } | ||
| const versions = metadata.versions ?? {}; | ||
| if (!versions[version]) { | ||
| return; | ||
| } | ||
| const ngUpdateMetadata = versions[version]['ng-update']; | ||
| if (!ngUpdateMetadata) { | ||
| return; | ||
| } | ||
| const packageGroup = ngUpdateMetadata['packageGroup']; | ||
| if (!packageGroup) { | ||
| return; | ||
| } | ||
| let packageGroupNormalized; | ||
| if (Array.isArray(packageGroup) && !packageGroup.some((x) => typeof x != 'string')) { | ||
| packageGroupNormalized = packageGroup.reduce((acc, curr) => { | ||
| acc[curr] = version; | ||
| return acc; | ||
| }, {}); | ||
| } | ||
| else if (typeof packageGroup === 'object' && packageGroup !== null) { | ||
| packageGroupNormalized = Object.entries(packageGroup).reduce((acc, [name, v]) => { | ||
| if (typeof v === 'string') { | ||
| acc[name] = v; | ||
| } | ||
| return acc; | ||
| }, {}); | ||
| } | ||
| else { | ||
| logger.warn(`PackageGroup metadata for ${metadata.name} is malformed. Ignoring.`); | ||
| return; | ||
| } | ||
| for (const [member, memberVersion] of Object.entries(packageGroupNormalized)) { | ||
| if (packages.has(member)) { | ||
| continue; | ||
| } | ||
| if (allDependencies.has(member)) { | ||
| packages.set(member, memberVersion); | ||
| } | ||
| } | ||
| } | ||
| async function _addPeerDependencies(packages, allDependencies, npmPackageJson, workspaceRoot, fetchMetadata, logger) { | ||
| const maybePackage = packages.get(npmPackageJson.name); | ||
| if (!maybePackage) { | ||
| return; | ||
| } | ||
| const distTags = npmPackageJson['dist-tags'] ?? {}; | ||
| const version = distTags[maybePackage] || maybePackage; | ||
| const versions = npmPackageJson.versions ?? {}; | ||
| const packageJson = versions[version]; | ||
| if (!packageJson) { | ||
| return; | ||
| } | ||
| for (const [peer, range] of Object.entries(packageJson.peerDependencies || {})) { | ||
| if (packages.has(peer)) { | ||
| continue; | ||
| } | ||
| const installedVersion = getInstalledVersion(peer, workspaceRoot); | ||
| if (installedVersion) { | ||
| if (semver.satisfies(installedVersion, range)) { | ||
| continue; | ||
| } | ||
| } | ||
| else { | ||
| const packageJsonRange = allDependencies.get(peer); | ||
| if (packageJsonRange) { | ||
| const peerMetadata = await fetchMetadata(peer); | ||
| if (peerMetadata) { | ||
| const packageVersionsNonDeprecated = []; | ||
| const packageVersionsDeprecated = []; | ||
| for (const [v, { deprecated }] of Object.entries(peerMetadata.versions ?? {})) { | ||
| if (deprecated) { | ||
| packageVersionsDeprecated.push(v); | ||
| } | ||
| else { | ||
| packageVersionsNonDeprecated.push(v); | ||
| } | ||
| } | ||
| const resolvedInstalledVersion = semver.maxSatisfying(packageVersionsNonDeprecated, packageJsonRange) ?? | ||
| semver.maxSatisfying(packageVersionsDeprecated, packageJsonRange); | ||
| if (resolvedInstalledVersion && semver.satisfies(resolvedInstalledVersion, range)) { | ||
| continue; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| packages.set(peer, range); | ||
| } | ||
| } | ||
| function _formatVersion(v) { | ||
| if (v === undefined) { | ||
| return v; | ||
| } | ||
| if (semver.valid(v)) { | ||
| return v; | ||
| } | ||
| const coerced = semver.coerce(v); | ||
| return coerced ? coerced.toString() : undefined; | ||
| } | ||
| function isPkgFromRegistry(name, specifier) { | ||
| const result = npm_package_arg_1.default.resolve(name, specifier); | ||
| return !!result.registry; | ||
| } | ||
| async function resolveUserUpdatePlan(options, logger) { | ||
| const workspaceRoot = options.workspaceRoot ?? process.cwd(); | ||
| const packageJsonPath = path.join(workspaceRoot, 'package.json'); | ||
| if (!(0, node_fs_1.existsSync)(packageJsonPath)) { | ||
| throw new Error('Could not find a package.json. Are you in a Node project?'); | ||
| } | ||
| const rawJson = (0, node_fs_1.readFileSync)(packageJsonPath, 'utf8'); | ||
| const packageJsonContent = JSON.parse(rawJson); | ||
| const getDependencies = (deps) => Object.entries(deps ?? {}).map(([name, range]) => [name, range]); | ||
| const allRawDeps = [ | ||
| ...getDependencies(packageJsonContent.dependencies), | ||
| ...getDependencies(packageJsonContent.devDependencies), | ||
| ...getDependencies(packageJsonContent.peerDependencies), | ||
| ]; | ||
| const npmDeps = new Map(allRawDeps.filter(([name, specifier]) => { | ||
| try { | ||
| return isPkgFromRegistry(name, specifier); | ||
| } | ||
| catch { | ||
| logger.warn(`Package ${name} was not found on the registry. Skipping.`); | ||
| return false; | ||
| } | ||
| })); | ||
| const packagesOption = options.packages ?? []; | ||
| const normalizedPackages = packagesOption.reduce((acc, curr) => { | ||
| return acc.concat(curr.split(',')); | ||
| }, []); | ||
| options.packages = normalizedPackages; | ||
| if (options.migrateOnly && options.from) { | ||
| if (options.packages.length !== 1) { | ||
| throw new Error('--from requires that only a single package be passed.'); | ||
| } | ||
| } | ||
| options.from = _formatVersion(options.from); | ||
| options.to = _formatVersion(options.to); | ||
| const usingYarn = options.packageManager === 'yarn'; | ||
| const packages = _buildPackageList(options, npmDeps, logger); | ||
| const npmPackageJsonMap = new Map(); | ||
| const getOrFetchPackageMetadata = async (packageName) => { | ||
| let metadata = npmPackageJsonMap.get(packageName); | ||
| if (!metadata) { | ||
| const raw = await (0, package_metadata_1.getNpmPackageJson)(packageName, logger, { | ||
| registry: options.registry, | ||
| usingYarn, | ||
| verbose: options.verbose, | ||
| }); | ||
| if (raw.name) { | ||
| metadata = raw; | ||
| npmPackageJsonMap.set(packageName, metadata); | ||
| } | ||
| } | ||
| return metadata ?? null; | ||
| }; | ||
| if (packages.size === 0) { | ||
| await Promise.all(Array.from(npmDeps.keys()).map(async (depName) => { | ||
| await getOrFetchPackageMetadata(depName); | ||
| })); | ||
| } | ||
| else { | ||
| let lastPackagesSize; | ||
| do { | ||
| lastPackagesSize = packages.size; | ||
| let lastGroupSize; | ||
| do { | ||
| lastGroupSize = packages.size; | ||
| for (const name of Array.from(packages.keys())) { | ||
| const metadata = await getOrFetchPackageMetadata(name); | ||
| const spec = packages.get(name); | ||
| if (metadata && spec) { | ||
| const resolvedVersion = resolvePackageVersion(metadata, spec, !!options.next); | ||
| if (resolvedVersion) { | ||
| packages.set(name, resolvedVersion); | ||
| } | ||
| _addPackageGroup(packages, npmDeps, metadata, logger); | ||
| } | ||
| } | ||
| } while (packages.size > lastGroupSize); | ||
| for (const name of Array.from(packages.keys())) { | ||
| const metadata = await getOrFetchPackageMetadata(name); | ||
| const spec = packages.get(name); | ||
| if (metadata && spec) { | ||
| const resolvedVersion = resolvePackageVersion(metadata, spec, !!options.next); | ||
| if (resolvedVersion) { | ||
| packages.set(name, resolvedVersion); | ||
| } | ||
| await _addPeerDependencies(packages, npmDeps, metadata, workspaceRoot, getOrFetchPackageMetadata, logger); | ||
| } | ||
| } | ||
| } while (packages.size > lastPackagesSize); | ||
| } | ||
| const packageInfoMap = new Map(); | ||
| for (const depName of npmDeps.keys()) { | ||
| const isUpdating = packages.has(depName); | ||
| const localPkgJson = getInstalledPackageJson(depName, workspaceRoot); | ||
| if (isUpdating || !localPkgJson) { | ||
| const metadata = await getOrFetchPackageMetadata(depName); | ||
| if (metadata) { | ||
| packageInfoMap.set(depName, _buildPackageInfo(packages, npmDeps, metadata, workspaceRoot, logger)); | ||
| } | ||
| else { | ||
| packageInfoMap.set(depName, _buildLocalPackageInfo(depName, npmDeps, workspaceRoot)); | ||
| } | ||
| } | ||
| else { | ||
| packageInfoMap.set(depName, _buildLocalPackageInfo(depName, npmDeps, workspaceRoot)); | ||
| } | ||
| } | ||
| const packagesToUpdate = new Map(); | ||
| const migrationsToRun = []; | ||
| if (packages.size > 0) { | ||
| if (!(options.migrateOnly && options.from && options.packages)) { | ||
| const sublog = new core_1.logging.LevelCapLogger('validation', logger.createChild(''), 'warn'); | ||
| _validateUpdatePackages(packageInfoMap, !!options.force, !!options.next, sublog); | ||
| for (const [name, info] of packageInfoMap.entries()) { | ||
| if (!info.target || !info.installed) { | ||
| continue; | ||
| } | ||
| packagesToUpdate.set(name, info.target.version); | ||
| if (info.target.updateMetadata.migrations) { | ||
| migrationsToRun.push({ | ||
| package: name, | ||
| collection: info.target.updateMetadata.migrations, | ||
| from: info.installed.version, | ||
| to: info.target.version, | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| return { | ||
| packagesToUpdate, | ||
| migrationsToRun, | ||
| packageInfoMap, | ||
| }; | ||
| } | ||
| function printUpdateUsageMessage(infoMap, logger, next = false) { | ||
| const packageGroups = new Map(); | ||
| const packagesToUpdate = [...infoMap.entries()] | ||
| .map(([name, info]) => { | ||
| const distTags = info.npmPackageJson['dist-tags'] ?? {}; | ||
| let tag = next ? (distTags['next'] ? 'next' : 'latest') : 'latest'; | ||
| let version = distTags[tag] ?? info.installed.version; | ||
| const versions = info.npmPackageJson.versions ?? {}; | ||
| let target = versions[version]; | ||
| const versionDiff = semver.diff(info.installed.version, version); | ||
| if (versionDiff !== 'patch' && | ||
| versionDiff !== 'minor' && | ||
| /^@(?:angular|nguniversal)\//.test(name)) { | ||
| const installedMajorVersion = semver.parse(info.installed.version)?.major; | ||
| const toInstallMajorVersion = semver.parse(version)?.major; | ||
| if (installedMajorVersion !== undefined && | ||
| toInstallMajorVersion !== undefined && | ||
| installedMajorVersion < toInstallMajorVersion - 1) { | ||
| const nextMajorVersion = `${installedMajorVersion + 1}.`; | ||
| const nextMajorVersions = Object.keys(versions) | ||
| .filter((v) => v.startsWith(nextMajorVersion)) | ||
| .sort((a, b) => (a > b ? -1 : 1)); | ||
| if (nextMajorVersions.length) { | ||
| version = nextMajorVersions[0]; | ||
| target = versions[version]; | ||
| tag = ''; | ||
| } | ||
| } | ||
| } | ||
| return { | ||
| name, | ||
| info, | ||
| version, | ||
| tag, | ||
| target, | ||
| }; | ||
| }) | ||
| .filter(({ info, version, target }) => target?.['ng-update'] && semver.compare(info.installed.version, version) < 0) | ||
| .map(({ name, info, version, tag, target }) => { | ||
| // Look for packageGroup. | ||
| const ngUpdate = target['ng-update']; | ||
| const packageGroup = ngUpdate?.['packageGroup']; | ||
| if (packageGroup) { | ||
| const packageGroupNames = Array.isArray(packageGroup) | ||
| ? packageGroup | ||
| : Object.keys(packageGroup); | ||
| const packageGroupName = ngUpdate?.['packageGroupName'] || packageGroupNames.find((n) => infoMap.has(n)); | ||
| if (packageGroupName) { | ||
| if (packageGroups.has(name)) { | ||
| return null; | ||
| } | ||
| for (const groupName of packageGroupNames) { | ||
| packageGroups.set(groupName, packageGroupName); | ||
| } | ||
| packageGroups.set(packageGroupName, packageGroupName); | ||
| name = packageGroupName; | ||
| } | ||
| } | ||
| let command = `ng update ${name}`; | ||
| if (!tag) { | ||
| command += `@${semver.parse(version)?.major || version}`; | ||
| } | ||
| else if (tag == 'next') { | ||
| command += ' --next'; | ||
| } | ||
| return [name, `${info.installed.version} -> ${version} `, command]; | ||
| }) | ||
| .filter((x) => x !== null) | ||
| .sort((a, b) => a[0].localeCompare(b[0])); | ||
| if (packagesToUpdate.length == 0) { | ||
| logger.info('We analyzed your package.json and everything seems to be in order. Good work!'); | ||
| return; | ||
| } | ||
| logger.info('We analyzed your package.json, there are some packages to update:\n'); | ||
| // Find the largest name to know the padding needed. | ||
| let namePad = Math.max(...[...infoMap.keys()].map((x) => x.length)) + 2; | ||
| if (!Number.isFinite(namePad)) { | ||
| namePad = 30; | ||
| } | ||
| const pads = [namePad, 25, 0]; | ||
| logger.info(' ' + ['Name', 'Version', 'Command to update'].map((x, i) => x.padEnd(pads[i])).join('')); | ||
| const totalWidth = pads.reduce((sum, width) => sum + width, 20); | ||
| logger.info(` ${'-'.repeat(totalWidth)}`); | ||
| packagesToUpdate.forEach((fields) => { | ||
| if (!fields) { | ||
| return; | ||
| } | ||
| logger.info(' ' + fields.map((x, i) => x.padEnd(pads[i])).join('')); | ||
| }); | ||
| logger.info(`\nThere might be additional packages which don't provide 'ng update' capabilities that are outdated.\n` + | ||
| `You can update the additional packages by running the update command of your package manager.`); | ||
| } | ||
| async function applyUpdatePlan(workspaceRoot, plan, logger) { | ||
| const packageJsonPath = path.join(workspaceRoot, 'package.json'); | ||
| const packageJsonContent = await node_fs_1.promises.readFile(packageJsonPath, 'utf8'); | ||
| const packageJson = JSON.parse(packageJsonContent); | ||
| const updateDependency = (deps, name, newVersion) => { | ||
| const oldVersion = deps[name]; | ||
| const execResult = /^[\^~]/.exec(oldVersion); | ||
| deps[name] = `${execResult ? execResult[0] : ''}${newVersion}`; | ||
| }; | ||
| for (const [name, targetVersion] of plan.packagesToUpdate.entries()) { | ||
| logger.info(`Updating package.json with dependency ${name} to version ${targetVersion}...`); | ||
| if (packageJson.dependencies && packageJson.dependencies[name]) { | ||
| updateDependency(packageJson.dependencies, name, targetVersion); | ||
| if (packageJson.devDependencies) { | ||
| delete packageJson.devDependencies[name]; | ||
| } | ||
| if (packageJson.peerDependencies) { | ||
| delete packageJson.peerDependencies[name]; | ||
| } | ||
| } | ||
| else if (packageJson.devDependencies && packageJson.devDependencies[name]) { | ||
| updateDependency(packageJson.devDependencies, name, targetVersion); | ||
| if (packageJson.peerDependencies) { | ||
| delete packageJson.peerDependencies[name]; | ||
| } | ||
| } | ||
| else if (packageJson.peerDependencies && packageJson.peerDependencies[name]) { | ||
| updateDependency(packageJson.peerDependencies, name, targetVersion); | ||
| } | ||
| else { | ||
| if (!packageJson.dependencies) { | ||
| packageJson.dependencies = {}; | ||
| } | ||
| packageJson.dependencies[name] = `^${targetVersion}`; | ||
| } | ||
| } | ||
| const eofMatches = packageJsonContent.match(/\r?\n$/); | ||
| const eof = eofMatches?.[0] ?? ''; | ||
| const newContent = JSON.stringify(packageJson, null, 2) + eof; | ||
| await node_fs_1.promises.writeFile(packageJsonPath, newContent, 'utf8'); | ||
| } | ||
| //# sourceMappingURL=update-resolver.js.map |
| {"version":3,"file":"update-resolver.js","sourceRoot":"","sources":["update-resolver.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBH,kEAmBC;AAgOD,kCAMC;AAED,0CAyBC;AAiYD,sDA2KC;AAED,0DA2HC;AAED,0CA6CC;AA3/BD,+CAA+C;AAC/C,qCAAiF;AACjF,6CAA4C;AAC5C,gDAAkC;AAClC,sEAAkC;AAClC,+CAAiC;AACjC,uEAI0C;AAK1C,SAAgB,2BAA2B,CAAC,KAAa;IACvD,IAAI,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC7C,KAAK,EAAE,CAAC;QACR,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,QAAQ,IAAI,QAAQ,KAAK,IAAI,KAAK,aAAa,CAAC;IAClD,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;AAC9C,CAAC;AAED,MAAM,uBAAuB,GAA6C;IACxE,eAAe,EAAE,2BAA2B;CAC7C,CAAC;AA0CF,SAAS,kBAAkB,CAAC,OAAiC,EAAE,IAAY,EAAE,KAAa;IACxF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,cAAc,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAC5E,CAAC;IAED,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,OAAO,cAAc,IAAI,UAAU,EAAE,CAAC;YACxC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gCAAgC,CACvC,IAAY,EACZ,OAAiC,EACjC,MAAyB;IAEzB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACxE,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,IAAI,EAAE,CAAC;IAEhF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;QAC1D,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;QAE/F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACnF,MAAM,CAAC,KAAK,CACV,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAA0C;gBACvE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI;gBAC9D,iBAAiB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CACvD,CAAC;YACF,KAAK,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gCAAgC,CACvC,IAAY,EACZ,OAAe,EACf,OAAiC,EACjC,MAAyB,EACzB,IAAa;IAEb,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3D,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACtD,eAAe,CAAC,KAAK,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;QAC7F,MAAM,SAAS,GAAG,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,WAAW;aAC5E,oBAAoB,CAAC;QAExB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YACxD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;YACjD,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC;gBACxF,MAAM,CAAC,KAAK,CACV,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,0CAA0C;oBAC5E,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI;oBAC9D,iBAAiB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAC/C,CAAC;gBACF,KAAK,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAiC,EACjC,KAAc,EACd,IAAa,EACb,MAAyB;IAEzB,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC;QACpC,KAAK,GAAG,gCAAgC,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC;QACzE,KAAK;YACH,gCAAgC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC;IAChG,CAAC;IAED,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,+DAA+D;YAC7D,qDAAqD,CACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,WAA4B,EAC5B,MAAyB;IAEzB,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAmB;QAC7B,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;YACnF,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CACvC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACd,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;gBAElC,OAAO,KAAK,CAAC;YACf,CAAC,EACD,EAA+B,CAChC,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,YAAY,IAAI,QAAQ,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YACpE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACvD,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;gBACzB,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBACxB,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,EACD,EAA+B,CAChC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,6BAA6B,WAAW,CAAC,IAAI,0BAA0B,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,kBAAkB,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpD,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC9C,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,WAAW,CAAC,aAAqB;IAC/C,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS;QAClC,IAAA,oBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAChD,IAAA,oBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,YAAoB,EAAE,WAAmB;IACvE,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAA,2BAAa,EAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;YAEhF,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,GAAG,YAAY,CAAC;IAC9B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACzF,IAAI,IAAA,oBAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAA,sBAAY,EAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAC9B,WAAmB,EACnB,aAAqB;IAErB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACjE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAEnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB,EAAE,aAAqB;IACrE,MAAM,OAAO,GAAG,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEpE,OAAO,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;AAClC,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAY,EACZ,eAAkD,EAClD,aAAqB;IAErB,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAClE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,oBAAoB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC;IAC9C,MAAM,cAAc,GAA6B;QAC/C,IAAI;QACJ,QAAQ,EAAE;YACR,CAAC,gBAAgB,CAAC,EAAE,YAAY;SACjC;QACD,WAAW,EAAE,EAAE;KACuB,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,cAAO,CAAC,UAAU,EAAE,CAAC;IAExC,OAAO;QACL,IAAI;QACJ,cAAc;QACd,SAAS,EAAE;YACT,OAAO,EAAE,gBAAgC;YACzC,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC;SACzD;QACD,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAmC,EACnC,eAAkD,EAClD,cAAwC,EACxC,aAAqB,EACrB,MAAyB;IAEzB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IACjC,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAClE,IAAI,gBAAgB,GAAG,YAAY,EAAE,OAAO,CAAC;IAE7C,MAAM,4BAA4B,GAAa,EAAE,CAAC;IAClD,MAAM,yBAAyB,GAAa,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QACtF,IAAI,UAAU,EAAE,CAAC;YACf,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAG,CAAC,aAA2B,EAA4B,EAAE,CACrF,CAAC,MAAM,CAAC,aAAa,CAAC,4BAA4B,EAAE,aAAa,CAAC;QACjE,MAAM,CAAC,aAAa,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAyB;QACzF,SAAS,CAAC;IAEZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gBAAgB,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,yEAAyE,IAAI,GAAG,CACjF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC/C,MAAM,oBAAoB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC;IACxE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,mBAAmB,gBAAgB,GAAG,CACpF,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,GAA6B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAiB,CAAC;QAC1D,CAAC;aAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;YACnC,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAiB,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,uCAAuC,gBAAgB,IAAI,CAAC,CAAC;QACzF,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAmC,aAAa;QAC1D,CAAC,CAAC;YACE,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC;YACpC,cAAc,EAAE,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;SACpE;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,IAAI;QACJ,cAAc;QACd,SAAS,EAAE;YACT,OAAO,EAAE,gBAAgC;YACzC,WAAW,EAAE,oBAAoB;YACjC,cAAc,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,MAAM,CAAC;SACjE;QACD,MAAM;QACN,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,OAA8B,EAC9B,eAAkD,EAClD,MAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IACjD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAE7C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,UAA8B,CAAC;QAEnC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACvD,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAiB,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAkC,EAClC,KAAa,EACb,IAAI,GAAG,KAAK;IAEZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,MAAM,4BAA4B,GAAa,EAAE,CAAC;IAClD,MAAM,yBAAyB,GAAa,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1E,IAAI,UAAU,EAAE,CAAC;YACf,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,CACL,MAAM,CAAC,aAAa,CAAC,4BAA4B,EAAE,KAAK,EAAE;QACxD,iBAAiB,EAAE,IAAI,IAAI,SAAS;KACrC,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,yBAAyB,EAAE,KAAK,EAAE;YACrD,iBAAiB,EAAE,IAAI,IAAI,SAAS;SACrC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAmC,EACnC,eAAkD,EAClD,QAAkC,EAClC,MAAyB;IAEzB,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,OAAO,GAAG,YAAY,CAAC;IAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAiB,CAAC;IAC9C,CAAC;SAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAiB,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,MAAM,4BAA4B,GAAa,EAAE,CAAC;QAClD,MAAM,yBAAyB,GAAa,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,IAAI,UAAU,EAAE,CAAC;gBACf,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO;YACJ,CAAC,MAAM,CAAC,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;gBAC3D,MAAM,CAAC,aAAa,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAyB;gBACnF,OAAO,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IACD,IAAI,sBAA8C,CAAC;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;QACnF,sBAAsB,GAAG,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACZ,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YAEpB,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA4B,CAC7B,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACrE,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA4B,CAC7B,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,6BAA6B,QAAQ,CAAC,IAAI,0BAA0B,CAAC,CAAC;QAElF,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC7E,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,aAA6B,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,QAAmC,EACnC,eAAkD,EAClD,cAAwC,EACxC,aAAqB,EACrB,aAAyE,EACzE,MAAyB;IAEzB,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;IACvD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/E,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAClE,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC9C,SAAS;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,4BAA4B,GAAa,EAAE,CAAC;oBAClD,MAAM,yBAAyB,GAAa,EAAE,CAAC;oBAC/C,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;wBAC9E,IAAI,UAAU,EAAE,CAAC;4BACf,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpC,CAAC;6BAAM,CAAC;4BACN,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACvC,CAAC;oBACH,CAAC;oBACD,MAAM,wBAAwB,GAC5B,MAAM,CAAC,aAAa,CAAC,4BAA4B,EAAE,gBAAgB,CAAC;wBACpE,MAAM,CAAC,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;oBAEpE,IAAI,wBAAwB,IAAI,MAAM,CAAC,SAAS,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC;wBAClF,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAqB,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,CAAU;IAChC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEjC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,SAAiB;IACxD,MAAM,MAAM,GAAG,yBAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE5C,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3B,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,OAA8B,EAC9B,MAAyB;IAEzB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACjE,IAAI,CAAC,IAAA,oBAAU,EAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;IAElE,MAAM,eAAe,GAAG,CAAC,IAAwC,EAAE,EAAE,CACnE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAG;QACjB,GAAG,eAAe,CAAC,kBAAkB,CAAC,YAAY,CAAC;QACnD,GAAG,eAAe,CAAC,kBAAkB,CAAC,eAAe,CAAC;QACtD,GAAG,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;KACxD,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,OAAO,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,2CAA2C,CAAC,CAAC;YAExE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAA6B,CAC/B,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC9C,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7D,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,EAAc,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,GAAG,kBAAkB,CAAC;IAEtC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC;IAEpD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoC,CAAC;IAEtE,MAAM,yBAAyB,GAAG,KAAK,EACrC,WAAmB,EACuB,EAAE;QAC5C,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,IAAA,oCAAiB,EAAC,WAAW,EAAE,MAAM,EAAE;gBACvD,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS;gBACT,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,QAAQ,GAAG,GAA+B,CAAC;gBAC3C,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,IAAI,IAAI,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/C,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,gBAAgB,CAAC;QACrB,GAAG,CAAC;YACF,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC;YAEjC,IAAI,aAAa,CAAC;YAClB,GAAG,CAAC;gBACF,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC/C,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAC;oBACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAChC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;wBACrB,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC9E,IAAI,eAAe,EAAE,CAAC;4BACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,eAA+B,CAAC,CAAC;wBACtD,CAAC;wBACD,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC,QAAQ,QAAQ,CAAC,IAAI,GAAG,aAAa,EAAE;YAExC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACrB,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC9E,IAAI,eAAe,EAAE,CAAC;wBACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,eAA+B,CAAC,CAAC;oBACtD,CAAC;oBACD,MAAM,oBAAoB,CACxB,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,yBAAyB,EACzB,MAAM,CACP,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,QAAQ,QAAQ,CAAC,IAAI,GAAG,gBAAgB,EAAE;IAC7C,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IACtD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAErE,IAAI,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,QAAQ,EAAE,CAAC;gBACb,cAAc,CAAC,GAAG,CAChB,OAAO,EACP,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CACtE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,MAAM,eAAe,GAAwE,EAAE,CAAC;IAEhG,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,cAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACxF,uBAAuB,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEjF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACpC,SAAS;gBACX,CAAC;gBACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEhD,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;oBAC1C,eAAe,CAAC,IAAI,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU;wBACjD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;wBAC5B,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;qBACxB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,gBAAgB;QAChB,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB,CACrC,OAAiC,EACjC,MAAyB,EACzB,IAAI,GAAG,KAAK;IAEZ,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,MAAM,gBAAgB,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnE,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpD,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjE,IACE,WAAW,KAAK,OAAO;YACvB,WAAW,KAAK,OAAO;YACvB,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EACxC,CAAC;YACD,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;YAC1E,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;YAC3D,IACE,qBAAqB,KAAK,SAAS;gBACnC,qBAAqB,KAAK,SAAS;gBACnC,qBAAqB,GAAG,qBAAqB,GAAG,CAAC,EACjD,CAAC;gBACD,MAAM,gBAAgB,GAAG,GAAG,qBAAqB,GAAG,CAAC,GAAG,CAAC;gBACzD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;qBAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;qBAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpC,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;oBAC7B,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC3B,GAAG,GAAG,EAAE,CAAC;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,GAAG;YACH,MAAM;SACP,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CACL,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAC5B,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAC/E;SACA,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5C,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;gBACnD,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,MAAM,gBAAgB,GACpB,QAAQ,EAAE,CAAC,kBAAkB,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAElF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;oBAC1C,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACjD,CAAC;gBAED,aAAa,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;gBACtD,IAAI,GAAG,gBAAgB,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,aAAa,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,OAAO,EAAE,CAAC;QAC3D,CAAC;aAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,SAAS,CAAC;QACvB,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,OAAO,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAiB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QAE7F,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAEnF,oDAAoD;IACpD,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9B,MAAM,CAAC,IAAI,CACT,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAC1F,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE1C,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CACT,wGAAwG;QACtG,+FAA+F,CAClG,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,IAAgB,EAChB,MAAyB;IAEzB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAoB,CAAC;IAEtE,MAAM,gBAAgB,GAAG,CAAC,IAA4B,EAAE,IAAY,EAAE,UAAkB,EAAE,EAAE;QAC1F,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;IACjE,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,eAAe,aAAa,KAAK,CAAC,CAAC;QAE5F,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,gBAAgB,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;YAChE,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;gBAChC,OAAO,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,CAAC,eAAe,IAAI,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5E,gBAAgB,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;YACnE,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,CAAC,gBAAgB,IAAI,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9E,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC9B,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;YAChC,CAAC;YACD,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9D,MAAM,kBAAE,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC"} |
@@ -838,10 +838,8 @@ export type Schema = { | ||
| export declare enum AiConfig { | ||
| Agents = "agents", | ||
| Claude = "claude", | ||
| Copilot = "copilot", | ||
| ClaudeCode = "claude-code", | ||
| Cursor = "cursor", | ||
| Gemini = "gemini", | ||
| Jetbrains = "jetbrains", | ||
| GeminiCli = "gemini-cli", | ||
| None = "none", | ||
| Windsurf = "windsurf" | ||
| OpenAiCodex = "open-ai-codex", | ||
| Vscode = "vscode" | ||
| } | ||
@@ -848,0 +846,0 @@ /** |
@@ -124,11 +124,9 @@ "use strict"; | ||
| (function (AiConfig) { | ||
| AiConfig["Agents"] = "agents"; | ||
| AiConfig["Claude"] = "claude"; | ||
| AiConfig["Copilot"] = "copilot"; | ||
| AiConfig["ClaudeCode"] = "claude-code"; | ||
| AiConfig["Cursor"] = "cursor"; | ||
| AiConfig["Gemini"] = "gemini"; | ||
| AiConfig["Jetbrains"] = "jetbrains"; | ||
| AiConfig["GeminiCli"] = "gemini-cli"; | ||
| AiConfig["None"] = "none"; | ||
| AiConfig["Windsurf"] = "windsurf"; | ||
| AiConfig["OpenAiCodex"] = "open-ai-codex"; | ||
| AiConfig["Vscode"] = "vscode"; | ||
| })(AiConfig || (exports.AiConfig = AiConfig = {})); | ||
| //# sourceMappingURL=workspace-schema.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"workspace-schema.js","sourceRoot":"","sources":["workspace-schema.ts"],"names":[],"mappings":";AACA,mFAAmF;AACnF,oFAAoF;;;AA4DpF;;GAEG;AACH,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,0BAAW,CAAA;IACX,wBAAS,CAAA;IACT,8BAAe,CAAA;AACnB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED;;;;GAIG;AACH,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;AACjB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB;AAqID;;;;;GAKG;AACH,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,sCAAgB,CAAA;IAChB,sCAAgB,CAAA;AACpB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED;;;;GAIG;AACH,IAAY,iCAMX;AAND,WAAY,iCAAiC;IACzC,gDAAW,CAAA;IACX,kDAAa,CAAA;IACb,kDAAa,CAAA;IACb,kDAAa,CAAA;IACb,0DAAqB,CAAA;AACzB,CAAC,EANW,iCAAiC,iDAAjC,iCAAiC,QAM5C;AAED;;GAEG;AACH,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,+BAAiB,CAAA;AACrB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAED;;;;;;;;;;;GAWG;AACH,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,0CAAqB,CAAA;IACrB,kCAAa,CAAA;IACb,4CAAuB,CAAA;AAC3B,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAsJD;;GAEG;AACH,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,oCAAiB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED;;;GAGG;AACH,IAAY,+BAMX;AAND,WAAY,+BAA+B;IACvC,8CAAW,CAAA;IACX,gDAAa,CAAA;IACb,gDAAa,CAAA;IACb,gDAAa,CAAA;IACb,gDAAa,CAAA;AACjB,CAAC,EANW,+BAA+B,+CAA/B,+BAA+B,QAM1C;AAwJD,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,wCAA2B,CAAA;IAC3B,kDAAqC,CAAA;IACrC,4CAA+B,CAAA;IAC/B,kCAAqB,CAAA;AACzB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAED;;;;;;;;;;;;GAYG;AACH,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,oCAAmB,CAAA;AACvB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAuQD,IAAY,QASX;AATD,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;IACvB,yBAAa,CAAA;IACb,iCAAqB,CAAA;AACzB,CAAC,EATW,QAAQ,wBAAR,QAAQ,QASnB"} | ||
| {"version":3,"file":"workspace-schema.js","sourceRoot":"","sources":["workspace-schema.ts"],"names":[],"mappings":";AACA,mFAAmF;AACnF,oFAAoF;;;AA4DpF;;GAEG;AACH,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,0BAAW,CAAA;IACX,wBAAS,CAAA;IACT,8BAAe,CAAA;AACnB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED;;;;GAIG;AACH,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;AACjB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB;AAqID;;;;;GAKG;AACH,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,sCAAgB,CAAA;IAChB,sCAAgB,CAAA;AACpB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED;;;;GAIG;AACH,IAAY,iCAMX;AAND,WAAY,iCAAiC;IACzC,gDAAW,CAAA;IACX,kDAAa,CAAA;IACb,kDAAa,CAAA;IACb,kDAAa,CAAA;IACb,0DAAqB,CAAA;AACzB,CAAC,EANW,iCAAiC,iDAAjC,iCAAiC,QAM5C;AAED;;GAEG;AACH,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,+BAAiB,CAAA;AACrB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAED;;;;;;;;;;;GAWG;AACH,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,0CAAqB,CAAA;IACrB,kCAAa,CAAA;IACb,4CAAuB,CAAA;AAC3B,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAsJD;;GAEG;AACH,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,oCAAiB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED;;;GAGG;AACH,IAAY,+BAMX;AAND,WAAY,+BAA+B;IACvC,8CAAW,CAAA;IACX,gDAAa,CAAA;IACb,gDAAa,CAAA;IACb,gDAAa,CAAA;IACb,gDAAa,CAAA;AACjB,CAAC,EANW,+BAA+B,+CAA/B,+BAA+B,QAM1C;AAwJD,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,wCAA2B,CAAA;IAC3B,kDAAqC,CAAA;IACrC,4CAA+B,CAAA;IAC/B,kCAAqB,CAAA;AACzB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAED;;;;;;;;;;;;GAYG;AACH,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,oCAAmB,CAAA;AACvB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAuQD,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,sCAA0B,CAAA;IAC1B,6BAAiB,CAAA;IACjB,oCAAwB,CAAA;IACxB,yBAAa,CAAA;IACb,yCAA6B,CAAA;IAC7B,6BAAiB,CAAA;AACrB,CAAC,EAPW,QAAQ,wBAAR,QAAQ,QAOnB"} |
+20
-20
| { | ||
| "name": "@angular/cli", | ||
| "version": "22.0.1", | ||
| "version": "22.1.0-next.0", | ||
| "description": "CLI tool for Angular", | ||
@@ -18,20 +18,20 @@ "main": "lib/cli/index.js", | ||
| "dependencies": { | ||
| "@angular-devkit/architect": "0.2200.1", | ||
| "@angular-devkit/core": "22.0.1", | ||
| "@angular-devkit/schematics": "22.0.1", | ||
| "@inquirer/prompts": "8.4.2", | ||
| "@listr2/prompt-adapter-inquirer": "4.2.3", | ||
| "@angular-devkit/architect": "0.2201.0-next.0", | ||
| "@angular-devkit/core": "22.1.0-next.0", | ||
| "@angular-devkit/schematics": "22.1.0-next.0", | ||
| "@inquirer/prompts": "8.5.2", | ||
| "@listr2/prompt-adapter-inquirer": "4.2.4", | ||
| "@modelcontextprotocol/sdk": "1.29.0", | ||
| "@schematics/angular": "22.0.1", | ||
| "@schematics/angular": "22.1.0-next.0", | ||
| "@yarnpkg/lockfile": "1.1.0", | ||
| "algoliasearch": "5.52.0", | ||
| "ini": "6.0.0", | ||
| "algoliasearch": "5.53.0", | ||
| "ini": "7.0.0", | ||
| "jsonc-parser": "3.3.1", | ||
| "listr2": "10.2.1", | ||
| "npm-package-arg": "13.0.2", | ||
| "npm-package-arg": "14.0.0", | ||
| "pacote": "21.5.0", | ||
| "parse5-html-rewriting-stream": "8.0.1", | ||
| "semver": "7.7.4", | ||
| "semver": "7.8.1", | ||
| "yargs": "18.0.0", | ||
| "zod": "4.4.2" | ||
| "zod": "4.4.3" | ||
| }, | ||
@@ -41,10 +41,10 @@ "ng-update": { | ||
| "packageGroup": { | ||
| "@angular/cli": "22.0.1", | ||
| "@angular/build": "22.0.1", | ||
| "@angular/ssr": "22.0.1", | ||
| "@angular-devkit/architect": "0.2200.1", | ||
| "@angular-devkit/build-angular": "22.0.1", | ||
| "@angular-devkit/build-webpack": "0.2200.1", | ||
| "@angular-devkit/core": "22.0.1", | ||
| "@angular-devkit/schematics": "22.0.1" | ||
| "@angular/cli": "22.1.0-next.0", | ||
| "@angular/build": "22.1.0-next.0", | ||
| "@angular/ssr": "22.1.0-next.0", | ||
| "@angular-devkit/architect": "0.2201.0-next.0", | ||
| "@angular-devkit/build-angular": "22.1.0-next.0", | ||
| "@angular-devkit/build-webpack": "0.2201.0-next.0", | ||
| "@angular-devkit/core": "22.1.0-next.0", | ||
| "@angular-devkit/schematics": "22.1.0-next.0" | ||
| } | ||
@@ -51,0 +51,0 @@ }, |
@@ -13,2 +13,3 @@ You are an expert in TypeScript, Angular, and scalable web application development. You write functional, maintainable, performant, and accessible code following Angular and TypeScript best practices. | ||
| - Must NOT set `standalone: true` inside Angular decorators. It's the default in Angular v20+. | ||
| - Do NOT set `changeDetection: ChangeDetectionStrategy.OnPush` explicitly. `OnPush` is the default in Angular v22+. | ||
| - Use signals for state management | ||
@@ -29,5 +30,8 @@ - Implement lazy loading for feature routes | ||
| - Use `input()` and `output()` functions instead of decorators | ||
| - Use `model()` for two-way bound properties with `[(prop)]` syntax instead of pairing `input()` with `output()` | ||
| - Use `computed()` for derived state | ||
| - Use `linkedSignal()` for state derived from multiple reactive sources that must stay synchronized | ||
| - Prefer inline templates for small components | ||
| - Prefer Reactive forms instead of Template-driven ones | ||
| - Prefer Signal Forms (`@angular/forms/signals`) for new forms. They are stable in Angular v22+ and provide signal-based state, type-safe field access, and schema-based validation | ||
| - When not using Signal Forms, prefer Reactive forms instead of Template-driven ones | ||
| - Do NOT use `ngClass`, use `class` bindings instead | ||
@@ -55,2 +59,3 @@ - Do NOT use `ngStyle`, use `style` bindings instead | ||
| - Use the `providedIn: 'root'` option for singleton services | ||
| - Prefer the `@Service` decorator over `@Injectable({providedIn: 'root'})` for new singleton services (Angular v22+) | ||
| - Use the `inject()` function instead of constructor injection |
+96
-106
@@ -57,2 +57,3 @@ "use strict"; | ||
| const error_1 = require("../../utilities/error"); | ||
| const update_resolver_1 = require("./update-resolver"); | ||
| const cli_version_1 = require("./utilities/cli-version"); | ||
@@ -64,3 +65,2 @@ const constants_1 = require("./utilities/constants"); | ||
| } | ||
| const UPDATE_SCHEMATIC_COLLECTION = path.join(__dirname, 'schematic/collection.json'); | ||
| class UpdateCommandModule extends command_module_1.CommandModule { | ||
@@ -212,12 +212,19 @@ scope = command_module_1.CommandScope.In; | ||
| if (packages.length === 0) { | ||
| // Show status | ||
| const { success } = await (0, migration_1.executeSchematic)(workflow, logger, UPDATE_SCHEMATIC_COLLECTION, 'update', { | ||
| force: options.force, | ||
| next: options.next, | ||
| verbose: options.verbose, | ||
| packageManager: packageManager.name, | ||
| packages: [], | ||
| workspaceRoot: this.context.root, | ||
| }); | ||
| return success ? 0 : 1; | ||
| try { | ||
| const plan = await (0, update_resolver_1.resolveUserUpdatePlan)({ | ||
| force: options.force, | ||
| next: options.next, | ||
| verbose: options.verbose, | ||
| packageManager: packageManager.name, | ||
| packages: [], | ||
| workspaceRoot: this.context.root, | ||
| }, logger); | ||
| (0, update_resolver_1.printUpdateUsageMessage)(plan.packageInfoMap, logger, options.next); | ||
| return 0; | ||
| } | ||
| catch (error) { | ||
| (0, error_1.assertIsError)(error); | ||
| logger.error(error.message); | ||
| return 1; | ||
| } | ||
| } | ||
@@ -243,3 +250,3 @@ return options.migrateOnly | ||
| if (!packageNode) { | ||
| const jsonPath = findPackageJson(this.context.root, packageName); | ||
| const jsonPath = (0, update_resolver_1.findPackageJson)(this.context.root, packageName); | ||
| if (jsonPath) { | ||
@@ -384,57 +391,77 @@ packageNode = await readPackageManifest(jsonPath); | ||
| } | ||
| const { success } = await (0, migration_1.executeSchematic)(workflow, logger, UPDATE_SCHEMATIC_COLLECTION, 'update', { | ||
| verbose: options.verbose, | ||
| force: options.force, | ||
| next: options.next, | ||
| packageManager: this.context.packageManager.name, | ||
| packages: packagesToUpdate, | ||
| workspaceRoot: this.context.root, | ||
| }); | ||
| if (success) { | ||
| const { root: commandRoot } = this.context; | ||
| const ignorePeerDependencies = await (0, cli_version_1.shouldForcePackageManager)(packageManager, logger, options.verbose); | ||
| const tasks = new listr2_1.Listr([ | ||
| { | ||
| title: 'Cleaning node modules directory', | ||
| async task(_, task) { | ||
| try { | ||
| await node_fs_1.promises.rm(path.join(commandRoot, 'node_modules'), { | ||
| force: true, | ||
| recursive: true, | ||
| maxRetries: 3, | ||
| }); | ||
| let plan; | ||
| try { | ||
| plan = await (0, update_resolver_1.resolveUserUpdatePlan)({ | ||
| packages: packagesToUpdate, | ||
| force: options.force, | ||
| next: options.next, | ||
| packageManager: packageManager.name, | ||
| verbose: options.verbose, | ||
| workspaceRoot: this.context.root, | ||
| }, logger); | ||
| } | ||
| catch (error) { | ||
| (0, error_1.assertIsError)(error); | ||
| logger.error(error.message); | ||
| return 1; | ||
| } | ||
| try { | ||
| await (0, update_resolver_1.applyUpdatePlan)(this.context.root, plan, logger); | ||
| } | ||
| catch (error) { | ||
| (0, error_1.assertIsError)(error); | ||
| logger.error(`Error updating package.json: ${error.message}`); | ||
| return 1; | ||
| } | ||
| const { root: commandRoot } = this.context; | ||
| const ignorePeerDependencies = await (0, cli_version_1.shouldForcePackageManager)(packageManager, logger, options.verbose); | ||
| const tasks = new listr2_1.Listr([ | ||
| { | ||
| title: 'Cleaning node modules directory', | ||
| async task(_, task) { | ||
| try { | ||
| await node_fs_1.promises.rm(path.join(commandRoot, 'node_modules'), { | ||
| force: true, | ||
| recursive: true, | ||
| maxRetries: 3, | ||
| }); | ||
| } | ||
| catch (e) { | ||
| (0, error_1.assertIsError)(e); | ||
| if (e.code === 'ENOENT') { | ||
| task.skip('Cleaning not required. Node modules directory not found.'); | ||
| } | ||
| catch (e) { | ||
| (0, error_1.assertIsError)(e); | ||
| if (e.code === 'ENOENT') { | ||
| task.skip('Cleaning not required. Node modules directory not found.'); | ||
| } | ||
| } | ||
| }, | ||
| } | ||
| }, | ||
| { | ||
| title: 'Installing packages', | ||
| async task() { | ||
| try { | ||
| await packageManager.install({ | ||
| ignorePeerDependencies, | ||
| }); | ||
| } | ||
| catch (e) { | ||
| throw new CommandError('Unable to install packages'); | ||
| } | ||
| }, | ||
| }, | ||
| { | ||
| title: 'Installing packages', | ||
| async task() { | ||
| try { | ||
| await packageManager.install({ | ||
| ignorePeerDependencies, | ||
| }); | ||
| } | ||
| catch (e) { | ||
| throw new CommandError('Unable to install packages'); | ||
| } | ||
| }, | ||
| ]); | ||
| try { | ||
| await tasks.run(); | ||
| }, | ||
| ]); | ||
| try { | ||
| await tasks.run(); | ||
| // Clear Node's module resolution path cache to prevent stale lookups | ||
| // when resolving migration package paths. | ||
| const Module = require('node:module'); | ||
| if (Module && Module._pathCache) { | ||
| Module._pathCache = Object.create(null); | ||
| } | ||
| catch (e) { | ||
| if (e instanceof CommandError) { | ||
| return 1; | ||
| } | ||
| throw e; | ||
| } | ||
| catch (e) { | ||
| if (e instanceof CommandError) { | ||
| return 1; | ||
| } | ||
| throw e; | ||
| } | ||
| if (success && options.createCommits) { | ||
| if (options.createCommits) { | ||
| if (!(0, migration_1.commitChanges)(logger, `Angular CLI update for packages - ${packagesToUpdate.join(', ')}`)) { | ||
@@ -444,41 +471,14 @@ return 1; | ||
| } | ||
| // This is a temporary workaround to allow data to be passed back from the update schematic | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| const migrations = global.externalMigrations; | ||
| if (success && migrations) { | ||
| const rootRequire = (0, node_module_1.createRequire)(this.context.root + '/'); | ||
| const migrations = plan.migrationsToRun; | ||
| if (migrations) { | ||
| for (const migration of migrations) { | ||
| // Resolve the package from the workspace root, as otherwise it will be resolved from the temp | ||
| // installed CLI version. | ||
| let packagePath; | ||
| logVerbose(`Resolving migration package '${migration.package}' from '${this.context.root}'...`); | ||
| try { | ||
| try { | ||
| packagePath = path.dirname( | ||
| // This may fail if the `package.json` is not exported as an entry point | ||
| rootRequire.resolve(path.join(migration.package, 'package.json'))); | ||
| } | ||
| catch (e) { | ||
| (0, error_1.assertIsError)(e); | ||
| if (e.code === 'MODULE_NOT_FOUND') { | ||
| // Fallback to trying to resolve the package's main entry point | ||
| packagePath = rootRequire.resolve(migration.package); | ||
| } | ||
| else { | ||
| throw e; | ||
| } | ||
| } | ||
| } | ||
| catch (e) { | ||
| (0, error_1.assertIsError)(e); | ||
| if (e.code === 'MODULE_NOT_FOUND') { | ||
| logVerbose(e.toString()); | ||
| logger.error(`Migrations for package (${migration.package}) were not found.` + | ||
| ' The package could not be found in the workspace.'); | ||
| } | ||
| else { | ||
| logger.error(`Unable to resolve migrations for package (${migration.package}). [${e.message}]`); | ||
| } | ||
| const packageJsonPath = (0, update_resolver_1.findPackageJson)(this.context.root, migration.package); | ||
| if (!packageJsonPath) { | ||
| logger.error(`Migrations for package (${migration.package}) were not found.` + | ||
| ' The package could not be found in the workspace.'); | ||
| return 1; | ||
| } | ||
| const packagePath = path.dirname(packageJsonPath); | ||
| let migrations; | ||
@@ -515,3 +515,3 @@ // Check if it is a package-local location | ||
| } | ||
| return success ? 0 : 1; | ||
| return 0; | ||
| } | ||
@@ -529,12 +529,2 @@ } | ||
| } | ||
| function findPackageJson(workspaceDir, packageName) { | ||
| try { | ||
| const projectRequire = (0, node_module_1.createRequire)(path.join(workspaceDir, 'package.json')); | ||
| const packageJsonPath = projectRequire.resolve(`${packageName}/package.json`); | ||
| return packageJsonPath; | ||
| } | ||
| catch { | ||
| return undefined; | ||
| } | ||
| } | ||
| //# sourceMappingURL=cli.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["cli.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["cli.ts"],"names":[],"mappings":"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"} |
@@ -8,7 +8,2 @@ /** | ||
| */ | ||
| /** | ||
| * @fileoverview This file contains the parser functions that are used to | ||
| * interpret the output of various package manager commands. Separating these | ||
| * into their own file improves modularity and allows for focused testing. | ||
| */ | ||
| import { ErrorInfo } from './error'; | ||
@@ -15,0 +10,0 @@ import { Logger } from './logger'; |
@@ -20,2 +20,8 @@ "use strict"; | ||
| exports.parseYarnModernDependencies = parseYarnModernDependencies; | ||
| /** | ||
| * @fileoverview This file contains the parser functions that are used to | ||
| * interpret the output of various package manager commands. Separating these | ||
| * into their own file improves modularity and allows for focused testing. | ||
| */ | ||
| const semver_1 = require("semver"); | ||
| const MAX_LOG_LENGTH = 1024; | ||
@@ -176,2 +182,11 @@ function logStdout(stdout, logger) { | ||
| } | ||
| function isValidManifest(obj) { | ||
| if (typeof obj !== 'object' || obj === null) { | ||
| return false; | ||
| } | ||
| const record = obj; | ||
| const name = record.name; | ||
| const version = record.version; | ||
| return typeof name === 'string' && typeof version === 'string' && (0, semver_1.valid)(version) !== null; | ||
| } | ||
| /** | ||
@@ -191,3 +206,26 @@ * Parses the output of `npm view` or a compatible command to get a package manifest. | ||
| const result = JSON.parse(stdout); | ||
| return Array.isArray(result) ? result[result.length - 1] : result; | ||
| // npm view returns an array of manifests if the query matches multiple versions | ||
| // (e.g. when using a version range). We find the highest version to ensure | ||
| // we get the latest relevant manifest, even if the output is not sorted. | ||
| if (Array.isArray(result)) { | ||
| let maxManifest = null; | ||
| for (const manifest of result) { | ||
| if (!isValidManifest(manifest)) { | ||
| logger?.debug(' Skipping invalid manifest in array (missing name, version, or invalid SemVer).'); | ||
| continue; | ||
| } | ||
| if (!maxManifest || (0, semver_1.compare)(manifest.version, maxManifest.version) > 0) { | ||
| maxManifest = manifest; | ||
| } | ||
| } | ||
| if (!maxManifest) { | ||
| logger?.debug(' No valid manifests found in the array.'); | ||
| } | ||
| return maxManifest; | ||
| } | ||
| if (!isValidManifest(result)) { | ||
| logger?.debug(' Parsed JSON is not a valid manifest (missing name, version, or invalid SemVer).'); | ||
| return null; | ||
| } | ||
| return result; | ||
| } | ||
@@ -253,2 +291,6 @@ /** | ||
| } | ||
| if (!isValidManifest(manifest)) { | ||
| logger?.debug(' Parsed JSON is not a valid manifest (missing name, version, or invalid SemVer).'); | ||
| return null; | ||
| } | ||
| return manifest; | ||
@@ -255,0 +297,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parsers.js","sourceRoot":"","sources":["parsers.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"parsers.js","sourceRoot":"","sources":["parsers.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA2EH,4DAuFC;AAiBD,oEAgCC;AAoBD,oDA+CC;AAQD,oDAWC;AAeD,4DAiDC;AAQD,4DA2BC;AA6BD,8CA4DC;AAuBD,sDAyCC;AAiBD,oDAqCC;AAiBD,kEAuCC;AAjpBD;;;;GAIG;AAEH,mCAAwC;AAMxC,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,SAAS,SAAS,CAAC,MAAc,EAAE,MAAe;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,8DAA8D;AAC9D,QAAQ,CAAC,CAAC,cAAc,CAAC,MAAc,EAAE,MAAe;IACtD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,EAAE,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAQD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,wBAAwB,CACtC,MAAc,EACd,MAAe,EACf,OAA2C;IAE3C,MAAM,EAAE,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACrD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAE3D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,qCAAqC;QACrC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAC/F,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CACX,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAE7E,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,oBAAoB,GAAG,OAAO,EAAE,oBAAoB,CAAC;IAE3D,IAAI,oBAAoB,EAAE,CAAC;QACzB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACjD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG;oBACjB,IAAI,CAAC,YAAY;oBACjB,IAAI,CAAC,eAAe;oBACpB,IAAI,CAAC,mBAAmB;iBACzB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAwC,CAAC;gBAE5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3D,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;4BACvE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE;gCACrB,IAAI;gCACJ,OAAO,EAAE,UAAU,CAAC,OAAO;gCAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;6BACtB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CACvC,aAA0E,CAC3E,EAAE,CAAC;YACF,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,SAAS;YACX,CAAC;YAED,mFAAmF;YACnF,6EAA6E;YAC7E,oEAAoE;YACpE,MAAM,kBAAkB,GACtB,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC;gBAClC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEhF,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACnE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE;oBACrB,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,CAAC,WAAW,YAAY,CAAC,IAAI,gBAAgB,CAAC,CAAC;IAE5D,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,4BAA4B,CAC1C,MAAc,EACd,MAAe;IAEf,MAAM,EAAE,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAE3D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBAEjD,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE;oBACrB,IAAI;oBACJ,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,CAAC,WAAW,YAAY,CAAC,IAAI,gBAAgB,CAAC,CAAC;IAE5D,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,MAAc,EAAE,MAAe;IAClE,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElC,gFAAgF;IAChF,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,IAAI,WAAW,GAA2B,IAAI,CAAC;QAE/C,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,MAAM,EAAE,KAAK,CACX,kFAAkF,CACnF,CAAC;gBACF,SAAS;YACX,CAAC;YAED,IAAI,CAAC,WAAW,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvE,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,KAAK,CACX,mFAAmF,CACpF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,MAAc,EAAE,MAAe;IAClE,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,wBAAwB,CAAC,MAAc,EAAE,MAAe;IACtE,MAAM,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAClD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mEAAmE;IACnE,IAAI,QAAQ,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,6DAA6D;QAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,EAAE,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,iHAAiH;IACjH,kHAAkH;IAClH,iHAAiH;IACjH,iHAAiH;IACjH,0BAA0B;IAC1B,IACE,QAAQ,CAAC,QAAQ,CAAC;QAClB,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,QAAQ;QACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAC5C,CAAC;QACD,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,KAAK,CACX,mFAAmF,CACpF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,MAAc,EAAE,MAAe;IACtE,MAAM,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAClD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mEAAmE;IACnE,IAAI,QAAQ,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,6DAA6D;QAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,EAAE,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,iBAAiB,CAAC,MAAc,EAAE,MAAe;IAC/D,MAAM,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAClD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC;IAE/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,IACE,SAAS;YACT,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;YAClC,CAAC,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,EAChF,CAAC;YACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC;YACvD,MAAM,EAAE,KAAK,CAAC,+CAA+C,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;YAEjF,OAAO;gBACL,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,OAAO;gBACP,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,EAAE,KAAK,CAAC,qCAAqC,CAAC,8BAA8B,CAAC,CAAC;QACpF,2DAA2D;IAC7D,CAAC;IAED,uFAAuF;IACvF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC9E,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,2CAA2C;QAC3E,IAAI,OAA2B,CAAC;QAEhC,uGAAuG;QACvG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/C,MAAM;YACR,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,EAAE,KAAK,CAAC,+CAA+C,IAAI,IAAI,CAAC,CAAC;QAEvE,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,OAAO,IAAI,0BAA0B,IAAI,EAAE;SACrD,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAE9E,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,MAAe;IACnE,MAAM,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC;IAE/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+DAA+D;IAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC1E,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,oDAAoD;QACpD,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YAC1C,MAAM,EAAE,KAAK,CAAC,sCAAsC,UAAU,sBAAsB,CAAC,CAAC;YAEtF,OAAO;gBACL,IAAI,EAAE,IAAI,UAAU,EAAE;gBACtB,OAAO,EAAE,mCAAmC,UAAU,GAAG;aAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAEnE,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO;aACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,CAAC,kEAAkE,CAAC,CAAC;IAElF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAClC,MAAc,EACd,MAAe;IAEf,MAAM,EAAE,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,qCAAqC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QAED,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAEjD,yBAAyB;QACzB,gCAAgC;QAChC,wBAAwB;QACxB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,CAAC,WAAW,YAAY,CAAC,IAAI,gBAAgB,CAAC,CAAC;IAE5D,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,2BAA2B,CACzC,MAAc,EACd,MAAe;IAEf,MAAM,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACvD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC7C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEvB,uBAAuB;gBACvB,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;gBAED,4FAA4F;gBAC5F,2DAA2D;gBAC3D,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAC7D,IAAI,iBAAiB,EAAE,CAAC;oBACtB,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;gBAED,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,CAAC,WAAW,YAAY,CAAC,IAAI,gBAAgB,CAAC,CAAC;IAE5D,OAAO,YAAY,CAAC;AACtB,CAAC"} |
@@ -25,3 +25,3 @@ "use strict"; | ||
| } | ||
| exports.VERSION = new Version('22.0.1'); | ||
| exports.VERSION = new Version('22.1.0-next.0'); | ||
| //# sourceMappingURL=version.js.map |
| { | ||
| "schematics": { | ||
| "update": { | ||
| "factory": "./index", | ||
| "schema": "./schema.json", | ||
| "description": "Update one or multiple packages to versions, updating peer dependencies along the way." | ||
| } | ||
| } | ||
| } |
| /** | ||
| * @license | ||
| * Copyright Google LLC All Rights Reserved. | ||
| * | ||
| * Use of this source code is governed by an MIT-style license that can be | ||
| * found in the LICENSE file at https://angular.dev/license | ||
| */ | ||
| import { Rule } from '@angular-devkit/schematics'; | ||
| import { Schema as UpdateSchema } from './schema'; | ||
| export declare function angularMajorCompatGuarantee(range: string): string; | ||
| export default function (options: UpdateSchema): Rule; |
| "use strict"; | ||
| /** | ||
| * @license | ||
| * Copyright Google LLC All Rights Reserved. | ||
| * | ||
| * Use of this source code is governed by an MIT-style license that can be | ||
| * found in the LICENSE file at https://angular.dev/license | ||
| */ | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
| Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
| }) : function(o, v) { | ||
| o["default"] = v; | ||
| }); | ||
| var __importStar = (this && this.__importStar) || (function () { | ||
| var ownKeys = function(o) { | ||
| ownKeys = Object.getOwnPropertyNames || function (o) { | ||
| var ar = []; | ||
| for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; | ||
| return ar; | ||
| }; | ||
| return ownKeys(o); | ||
| }; | ||
| return function (mod) { | ||
| if (mod && mod.__esModule) return mod; | ||
| var result = {}; | ||
| if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); | ||
| __setModuleDefault(result, mod); | ||
| return result; | ||
| }; | ||
| })(); | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.angularMajorCompatGuarantee = angularMajorCompatGuarantee; | ||
| exports.default = default_1; | ||
| const core_1 = require("@angular-devkit/core"); | ||
| const schematics_1 = require("@angular-devkit/schematics"); | ||
| const node_fs_1 = require("node:fs"); | ||
| const node_module_1 = require("node:module"); | ||
| const path = __importStar(require("node:path")); | ||
| const npa = __importStar(require("npm-package-arg")); | ||
| const semver = __importStar(require("semver")); | ||
| const package_metadata_1 = require("../../../utilities/package-metadata"); | ||
| // Angular guarantees that a major is compatible with its following major (so packages that depend | ||
| // on Angular 5 are also compatible with Angular 6). This is, in code, represented by verifying | ||
| // that all other packages that have a peer dependency of `"@angular/core": "^5.0.0"` actually | ||
| // supports 6.0, by adding that compatibility to the range, so it is `^5.0.0 || ^6.0.0`. | ||
| // We export it to allow for testing. | ||
| function angularMajorCompatGuarantee(range) { | ||
| let newRange = semver.validRange(range); | ||
| if (!newRange) { | ||
| return range; | ||
| } | ||
| let major = 1; | ||
| while (!semver.gtr(major + '.0.0', newRange)) { | ||
| major++; | ||
| if (major >= 99) { | ||
| // Use original range if it supports a major this high | ||
| // Range is most likely unbounded (e.g., >=5.0.0) | ||
| return newRange; | ||
| } | ||
| } | ||
| // Add the major version as compatible with the angular compatible, with all minors. This is | ||
| // already one major above the greatest supported, because we increment `major` before checking. | ||
| // We add minors like this because a minor beta is still compatible with a minor non-beta. | ||
| newRange = range; | ||
| for (let minor = 0; minor < 20; minor++) { | ||
| newRange += ` || ^${major}.${minor}.0-alpha.0 `; | ||
| } | ||
| return semver.validRange(newRange) || range; | ||
| } | ||
| // This is a map of packageGroupName to range extending function. If it isn't found, the range is | ||
| // kept the same. | ||
| const knownPeerCompatibleList = { | ||
| '@angular/core': angularMajorCompatGuarantee, | ||
| }; | ||
| function _updatePeerVersion(infoMap, name, range) { | ||
| // Resolve packageGroupName. | ||
| const maybePackageInfo = infoMap.get(name); | ||
| if (!maybePackageInfo) { | ||
| return range; | ||
| } | ||
| if (maybePackageInfo.target) { | ||
| name = maybePackageInfo.target.updateMetadata.packageGroupName || name; | ||
| } | ||
| else { | ||
| name = maybePackageInfo.installed.updateMetadata.packageGroupName || name; | ||
| } | ||
| const maybeTransform = knownPeerCompatibleList[name]; | ||
| if (maybeTransform) { | ||
| if (typeof maybeTransform == 'function') { | ||
| return maybeTransform(range); | ||
| } | ||
| else { | ||
| return maybeTransform; | ||
| } | ||
| } | ||
| return range; | ||
| } | ||
| function _validateForwardPeerDependencies(name, infoMap, peers, peersMeta, logger, next) { | ||
| let validationFailed = false; | ||
| for (const [peer, range] of Object.entries(peers)) { | ||
| logger.debug(`Checking forward peer ${peer}...`); | ||
| const maybePeerInfo = infoMap.get(peer); | ||
| const isOptional = peersMeta[peer] && !!peersMeta[peer].optional; | ||
| if (!maybePeerInfo) { | ||
| if (!isOptional) { | ||
| logger.warn([ | ||
| `Package ${JSON.stringify(name)} has a missing peer dependency of`, | ||
| `${JSON.stringify(peer)} @ ${JSON.stringify(range)}.`, | ||
| ].join(' ')); | ||
| } | ||
| continue; | ||
| } | ||
| const peerVersion = maybePeerInfo.target && maybePeerInfo.target.packageJson.version | ||
| ? maybePeerInfo.target.packageJson.version | ||
| : maybePeerInfo.installed.version; | ||
| logger.debug(` Range intersects(${range}, ${peerVersion})...`); | ||
| if (!semver.satisfies(peerVersion, range, { includePrerelease: next || undefined })) { | ||
| logger.error([ | ||
| `Package ${JSON.stringify(name)} has an incompatible peer dependency to`, | ||
| `${JSON.stringify(peer)} (requires ${JSON.stringify(range)},`, | ||
| `would install ${JSON.stringify(peerVersion)})`, | ||
| ].join(' ')); | ||
| validationFailed = true; | ||
| continue; | ||
| } | ||
| } | ||
| return validationFailed; | ||
| } | ||
| function _validateReversePeerDependencies(name, version, infoMap, logger, next) { | ||
| for (const [installed, installedInfo] of infoMap.entries()) { | ||
| const installedLogger = logger.createChild(installed); | ||
| installedLogger.debug(`${installed}...`); | ||
| const peers = (installedInfo.target || installedInfo.installed).packageJson.peerDependencies; | ||
| for (const [peer, range] of Object.entries(peers || {})) { | ||
| if (peer != name) { | ||
| // Only check peers to the packages we're updating. We don't care about peers | ||
| // that are unmet but we have no effect on. | ||
| continue; | ||
| } | ||
| // Ignore peerDependency mismatches for these packages. | ||
| // They are deprecated and removed via a migration. | ||
| const ignoredPackages = [ | ||
| 'codelyzer', | ||
| '@schematics/update', | ||
| '@angular-devkit/build-ng-packagr', | ||
| 'tsickle', | ||
| '@nguniversal/builders', | ||
| ]; | ||
| if (ignoredPackages.includes(installed)) { | ||
| continue; | ||
| } | ||
| // Override the peer version range if it's known as a compatible. | ||
| const extendedRange = _updatePeerVersion(infoMap, peer, range); | ||
| if (!semver.satisfies(version, extendedRange, { includePrerelease: next || undefined })) { | ||
| logger.error([ | ||
| `Package ${JSON.stringify(installed)} has an incompatible peer dependency to`, | ||
| `${JSON.stringify(name)} (requires`, | ||
| `${JSON.stringify(range)}${extendedRange == range ? '' : ' (extended)'},`, | ||
| `would install ${JSON.stringify(version)}).`, | ||
| ].join(' ')); | ||
| return true; | ||
| } | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| function _validateUpdatePackages(infoMap, force, next, logger) { | ||
| logger.debug('Updating the following packages:'); | ||
| infoMap.forEach((info) => { | ||
| if (info.target) { | ||
| logger.debug(` ${info.name} => ${info.target.version}`); | ||
| } | ||
| }); | ||
| let peerErrors = false; | ||
| infoMap.forEach((info) => { | ||
| const { name, target } = info; | ||
| if (!target) { | ||
| return; | ||
| } | ||
| const pkgLogger = logger.createChild(name); | ||
| logger.debug(`${name}...`); | ||
| const { peerDependencies = {}, peerDependenciesMeta = {} } = target.packageJson; | ||
| peerErrors = | ||
| _validateForwardPeerDependencies(name, infoMap, peerDependencies, peerDependenciesMeta, pkgLogger, next) || peerErrors; | ||
| peerErrors = | ||
| _validateReversePeerDependencies(name, target.version, infoMap, pkgLogger, next) || | ||
| peerErrors; | ||
| }); | ||
| if (!force && peerErrors) { | ||
| throw new schematics_1.SchematicsException('Incompatible peer dependencies found.\n' + | ||
| 'Peer dependency warnings when installing dependencies means that those dependencies might not work correctly together.\n' + | ||
| `You can use the '--force' option to ignore incompatible peer dependencies and instead address these warnings later.`); | ||
| } | ||
| } | ||
| function _performUpdate(tree, context, infoMap, logger, migrateOnly) { | ||
| const packageJsonContent = tree.read('/package.json')?.toString(); | ||
| if (!packageJsonContent) { | ||
| throw new schematics_1.SchematicsException('Could not find a package.json. Are you in a Node project?'); | ||
| } | ||
| const packageJson = tree.readJson('/package.json'); | ||
| const updateDependency = (deps, name, newVersion) => { | ||
| const oldVersion = deps[name]; | ||
| // We only respect caret and tilde ranges on update. | ||
| const execResult = /^[\^~]/.exec(oldVersion); | ||
| deps[name] = `${execResult ? execResult[0] : ''}${newVersion}`; | ||
| }; | ||
| const toInstall = [...infoMap.values()] | ||
| .map((x) => [x.name, x.target, x.installed]) | ||
| .filter(([name, target, installed]) => { | ||
| return !!name && !!target && !!installed; | ||
| }); | ||
| toInstall.forEach(([name, target, installed]) => { | ||
| logger.info(`Updating package.json with dependency ${name} ` + | ||
| `@ ${JSON.stringify(target.version)} (was ${JSON.stringify(installed.version)})...`); | ||
| if (packageJson.dependencies && packageJson.dependencies[name]) { | ||
| updateDependency(packageJson.dependencies, name, target.version); | ||
| if (packageJson.devDependencies && packageJson.devDependencies[name]) { | ||
| delete packageJson.devDependencies[name]; | ||
| } | ||
| if (packageJson.peerDependencies && packageJson.peerDependencies[name]) { | ||
| delete packageJson.peerDependencies[name]; | ||
| } | ||
| } | ||
| else if (packageJson.devDependencies && packageJson.devDependencies[name]) { | ||
| updateDependency(packageJson.devDependencies, name, target.version); | ||
| if (packageJson.peerDependencies && packageJson.peerDependencies[name]) { | ||
| delete packageJson.peerDependencies[name]; | ||
| } | ||
| } | ||
| else if (packageJson.peerDependencies && packageJson.peerDependencies[name]) { | ||
| updateDependency(packageJson.peerDependencies, name, target.version); | ||
| } | ||
| else { | ||
| logger.warn(`Package ${name} was not found in dependencies.`); | ||
| } | ||
| }); | ||
| const eofMatches = packageJsonContent.match(/\r?\n$/); | ||
| const eof = eofMatches?.[0] ?? ''; | ||
| const newContent = JSON.stringify(packageJson, null, 2) + eof; | ||
| if (packageJsonContent != newContent || migrateOnly) { | ||
| if (!migrateOnly) { | ||
| tree.overwrite('/package.json', newContent); | ||
| } | ||
| const externalMigrations = []; | ||
| // Run the migrate schematics with the list of packages to use. The collection contains | ||
| // version information and we need to do this post installation. Please note that the | ||
| // migration COULD fail and leave side effects on disk. | ||
| // Run the schematics task of those packages. | ||
| toInstall.forEach(([name, target, installed]) => { | ||
| if (!target.updateMetadata.migrations) { | ||
| return; | ||
| } | ||
| externalMigrations.push({ | ||
| package: name, | ||
| collection: target.updateMetadata.migrations, | ||
| from: installed.version, | ||
| to: target.version, | ||
| }); | ||
| return; | ||
| }); | ||
| if (externalMigrations.length > 0) { | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| global.externalMigrations = externalMigrations; | ||
| } | ||
| } | ||
| } | ||
| function _getUpdateMetadata(packageJson, logger) { | ||
| const metadata = packageJson['ng-update']; | ||
| const result = { | ||
| packageGroup: {}, | ||
| requirements: {}, | ||
| }; | ||
| if (!metadata || typeof metadata != 'object' || Array.isArray(metadata)) { | ||
| return result; | ||
| } | ||
| if (metadata['packageGroup']) { | ||
| const packageGroup = metadata['packageGroup']; | ||
| // Verify that packageGroup is an array of strings or an map of versions. This is not an error | ||
| // but we still warn the user and ignore the packageGroup keys. | ||
| if (Array.isArray(packageGroup) && packageGroup.every((x) => typeof x == 'string')) { | ||
| result.packageGroup = packageGroup.reduce((group, name) => { | ||
| group[name] = packageJson.version; | ||
| return group; | ||
| }, result.packageGroup); | ||
| } | ||
| else if (typeof packageGroup == 'object' && | ||
| packageGroup && | ||
| !Array.isArray(packageGroup) && | ||
| Object.values(packageGroup).every((x) => typeof x == 'string')) { | ||
| result.packageGroup = packageGroup; | ||
| } | ||
| else { | ||
| logger.warn(`packageGroup metadata of package ${packageJson.name} is malformed. Ignoring.`); | ||
| } | ||
| result.packageGroupName = Object.keys(result.packageGroup)[0]; | ||
| } | ||
| if (typeof metadata['packageGroupName'] == 'string') { | ||
| result.packageGroupName = metadata['packageGroupName']; | ||
| } | ||
| if (metadata['migrations']) { | ||
| const migrations = metadata['migrations']; | ||
| if (typeof migrations != 'string') { | ||
| logger.warn(`migrations metadata of package ${packageJson.name} is malformed. Ignoring.`); | ||
| } | ||
| else { | ||
| result.migrations = migrations; | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| function _usageMessage(options, infoMap, logger) { | ||
| const packageGroups = new Map(); | ||
| const packagesToUpdate = [...infoMap.entries()] | ||
| .map(([name, info]) => { | ||
| const distTags = info.npmPackageJson['dist-tags'] ?? {}; | ||
| let tag = options.next ? (distTags['next'] ? 'next' : 'latest') : 'latest'; | ||
| let version = distTags[tag] ?? info.installed.version; | ||
| const versions = info.npmPackageJson.versions ?? {}; | ||
| let target = versions[version]; | ||
| const versionDiff = semver.diff(info.installed.version, version); | ||
| if (versionDiff !== 'patch' && | ||
| versionDiff !== 'minor' && | ||
| /^@(?:angular|nguniversal)\//.test(name)) { | ||
| const installedMajorVersion = semver.parse(info.installed.version)?.major; | ||
| const toInstallMajorVersion = semver.parse(version)?.major; | ||
| if (installedMajorVersion !== undefined && | ||
| toInstallMajorVersion !== undefined && | ||
| installedMajorVersion < toInstallMajorVersion - 1) { | ||
| const nextMajorVersion = `${installedMajorVersion + 1}.`; | ||
| const nextMajorVersions = Object.keys(versions) | ||
| .filter((v) => v.startsWith(nextMajorVersion)) | ||
| .sort((a, b) => (a > b ? -1 : 1)); | ||
| if (nextMajorVersions.length) { | ||
| version = nextMajorVersions[0]; | ||
| target = versions[version]; | ||
| tag = ''; | ||
| } | ||
| } | ||
| } | ||
| return { | ||
| name, | ||
| info, | ||
| version, | ||
| tag, | ||
| target, | ||
| }; | ||
| }) | ||
| .filter(({ info, version, target }) => target?.['ng-update'] && semver.compare(info.installed.version, version) < 0) | ||
| .map(({ name, info, version, tag, target }) => { | ||
| // Look for packageGroup. | ||
| const ngUpdate = target['ng-update']; | ||
| const packageGroup = ngUpdate?.['packageGroup']; | ||
| if (packageGroup) { | ||
| const packageGroupNames = Array.isArray(packageGroup) | ||
| ? packageGroup | ||
| : Object.keys(packageGroup); | ||
| const packageGroupName = ngUpdate?.['packageGroupName'] || packageGroupNames.find((n) => infoMap.has(n)); | ||
| if (packageGroupName) { | ||
| if (packageGroups.has(name)) { | ||
| return null; | ||
| } | ||
| for (const groupName of packageGroupNames) { | ||
| packageGroups.set(groupName, packageGroupName); | ||
| } | ||
| packageGroups.set(packageGroupName, packageGroupName); | ||
| name = packageGroupName; | ||
| } | ||
| } | ||
| let command = `ng update ${name}`; | ||
| if (!tag) { | ||
| command += `@${semver.parse(version)?.major || version}`; | ||
| } | ||
| else if (tag == 'next') { | ||
| command += ' --next'; | ||
| } | ||
| return [name, `${info.installed.version} -> ${version} `, command]; | ||
| }) | ||
| .filter((x) => x !== null) | ||
| .sort((a, b) => (a && b ? a[0].localeCompare(b[0]) : 0)); | ||
| if (packagesToUpdate.length == 0) { | ||
| logger.info('We analyzed your package.json and everything seems to be in order. Good work!'); | ||
| return; | ||
| } | ||
| logger.info('We analyzed your package.json, there are some packages to update:\n'); | ||
| // Find the largest name to know the padding needed. | ||
| let namePad = Math.max(...[...infoMap.keys()].map((x) => x.length)) + 2; | ||
| if (!Number.isFinite(namePad)) { | ||
| namePad = 30; | ||
| } | ||
| const pads = [namePad, 25, 0]; | ||
| logger.info(' ' + ['Name', 'Version', 'Command to update'].map((x, i) => x.padEnd(pads[i])).join('')); | ||
| const totalWidth = pads.reduce((sum, width) => sum + width, 20); | ||
| logger.info(` ${'-'.repeat(totalWidth)}`); | ||
| packagesToUpdate.forEach((fields) => { | ||
| if (!fields) { | ||
| return; | ||
| } | ||
| logger.info(' ' + fields.map((x, i) => x.padEnd(pads[i])).join('')); | ||
| }); | ||
| logger.info(`\nThere might be additional packages which don't provide 'ng update' capabilities that are outdated.\n` + | ||
| `You can update the additional packages by running the update command of your package manager.`); | ||
| return; | ||
| } | ||
| /** | ||
| * Resolves a semver range or npm dist-tag to a specific version based on the package's registry metadata. | ||
| * It prioritizes non-deprecated versions and handles fallback to deprecated versions if necessary. | ||
| * | ||
| * @private | ||
| */ | ||
| function resolvePackageVersion(metadata, range, next = false) { | ||
| // Check if range matches an npm dist-tag directly (e.g. "latest", "next") | ||
| const distTags = metadata['dist-tags'] ?? {}; | ||
| if (distTags[range]) { | ||
| return distTags[range]; | ||
| } | ||
| // If 'next' is requested (e.g. via the --next CLI flag) but the package doesn't publish | ||
| // a 'next' pre-release tag, fallback to 'latest'. | ||
| if (range === 'next') { | ||
| return distTags['latest'] ?? null; | ||
| } | ||
| // Split deprecated and non-deprecated versions from registry metadata | ||
| const packageVersionsNonDeprecated = []; | ||
| const packageVersionsDeprecated = []; | ||
| for (const [v, { deprecated }] of Object.entries(metadata.versions ?? {})) { | ||
| if (deprecated) { | ||
| packageVersionsDeprecated.push(v); | ||
| } | ||
| else { | ||
| packageVersionsNonDeprecated.push(v); | ||
| } | ||
| } | ||
| // Find the highest satisfying version, prioritizing non-deprecated versions | ||
| return (semver.maxSatisfying(packageVersionsNonDeprecated, range, { | ||
| includePrerelease: next || undefined, | ||
| }) ?? | ||
| semver.maxSatisfying(packageVersionsDeprecated, range, { | ||
| includePrerelease: next || undefined, | ||
| })); | ||
| } | ||
| /** | ||
| * Checks if Yarn Plug'n'Play is active in the current workspace. | ||
| * | ||
| * @private | ||
| */ | ||
| function isPnpActive(workspaceRoot) { | ||
| return (process.versions.pnp !== undefined || | ||
| (0, node_fs_1.existsSync)(path.join(workspaceRoot, '.pnp.cjs')) || | ||
| (0, node_fs_1.existsSync)(path.join(workspaceRoot, '.pnp.js'))); | ||
| } | ||
| /** | ||
| * Resolves and reads the installed package.json manifest for a package. | ||
| * It checks the virtual schematic Tree first (vital for unit tests/mocks), | ||
| * and falls back to physical disk resolution using createRequire only if Yarn PnP is active. | ||
| * | ||
| * @private | ||
| */ | ||
| function getInstalledPackageJson(tree, packageName, workspaceRoot) { | ||
| // First, check the virtual tree (critical for testing mocks) | ||
| const pkgJsonPath = `/node_modules/${packageName}/package.json`; | ||
| if (tree.exists(pkgJsonPath)) { | ||
| try { | ||
| return tree.readJson(pkgJsonPath); | ||
| } | ||
| catch { } | ||
| } | ||
| // In Yarn PnP, mock package trees are not written to node_modules in the virtual tree, | ||
| // so we resolve the manifest physically from Yarn's zip cache via createRequire. | ||
| // Note: This fallback resolution is strictly gated on Yarn PnP being active. Because schematics | ||
| // operate on a virtual file system (Tree), running disk lookups in non-PnP | ||
| // environments could cause tests to resolve dependencies from this monorepo's own node_modules | ||
| // instead of the simulated virtual file system. | ||
| if (isPnpActive(workspaceRoot)) { | ||
| try { | ||
| const workspaceRequire = (0, node_module_1.createRequire)(path.join(workspaceRoot, 'package.json')); | ||
| const manifestPath = workspaceRequire.resolve(`${packageName}/package.json`); | ||
| const content = (0, node_fs_1.readFileSync)(manifestPath, 'utf8'); | ||
| return JSON.parse(content); | ||
| } | ||
| catch { } | ||
| } | ||
| return null; | ||
| } | ||
| function getInstalledVersion(tree, packageName, workspaceRoot) { | ||
| const pkgJson = getInstalledPackageJson(tree, packageName, workspaceRoot); | ||
| return pkgJson?.version ?? null; | ||
| } | ||
| function _buildLocalPackageInfo(tree, name, allDependencies, workspaceRoot, logger) { | ||
| const packageJsonRange = allDependencies.get(name); | ||
| if (!packageJsonRange) { | ||
| throw new schematics_1.SchematicsException(`Package ${JSON.stringify(name)} was not found in package.json.`); | ||
| } | ||
| const localPkgJson = getInstalledPackageJson(tree, name, workspaceRoot); | ||
| if (!localPkgJson) { | ||
| throw new schematics_1.SchematicsException(`Package ${name} is not installed.`); | ||
| } | ||
| return { | ||
| name, | ||
| npmPackageJson: {}, | ||
| installed: { | ||
| version: localPkgJson.version, | ||
| packageJson: localPkgJson, | ||
| updateMetadata: _getUpdateMetadata(localPkgJson, logger), | ||
| }, | ||
| packageJsonRange, | ||
| }; | ||
| } | ||
| function _buildPackageInfo(tree, packages, allDependencies, npmPackageJson, workspaceRoot, logger) { | ||
| const name = npmPackageJson.name; | ||
| const packageJsonRange = allDependencies.get(name); | ||
| if (!packageJsonRange) { | ||
| throw new schematics_1.SchematicsException(`Package ${JSON.stringify(name)} was not found in package.json.`); | ||
| } | ||
| const localPkgJson = getInstalledPackageJson(tree, name, workspaceRoot); | ||
| let installedVersion = localPkgJson?.version; | ||
| const packageVersionsNonDeprecated = []; | ||
| const packageVersionsDeprecated = []; | ||
| for (const [version, { deprecated }] of Object.entries(npmPackageJson.versions ?? {})) { | ||
| if (deprecated) { | ||
| packageVersionsDeprecated.push(version); | ||
| } | ||
| else { | ||
| packageVersionsNonDeprecated.push(version); | ||
| } | ||
| } | ||
| const findSatisfyingVersion = (targetVersion) => (semver.maxSatisfying(packageVersionsNonDeprecated, targetVersion) ?? | ||
| semver.maxSatisfying(packageVersionsDeprecated, targetVersion)) ?? | ||
| undefined; | ||
| if (!installedVersion) { | ||
| // Find the version from NPM that fits the range to max. | ||
| installedVersion = findSatisfyingVersion(packageJsonRange); | ||
| } | ||
| if (!installedVersion) { | ||
| throw new schematics_1.SchematicsException(`An unexpected error happened; could not determine version for package ${name}.`); | ||
| } | ||
| const versions = npmPackageJson.versions ?? {}; | ||
| const installedPackageJson = versions[installedVersion] || localPkgJson; | ||
| if (!installedPackageJson) { | ||
| throw new schematics_1.SchematicsException(`An unexpected error happened; package ${name} has no version ${installedVersion}.`); | ||
| } | ||
| let targetVersion = packages.get(name); | ||
| if (targetVersion) { | ||
| const distTags = npmPackageJson['dist-tags'] ?? {}; | ||
| if (distTags[targetVersion]) { | ||
| targetVersion = distTags[targetVersion]; | ||
| } | ||
| else if (targetVersion == 'next') { | ||
| targetVersion = distTags['latest']; | ||
| } | ||
| else { | ||
| targetVersion = findSatisfyingVersion(targetVersion); | ||
| } | ||
| } | ||
| if (targetVersion && semver.lte(targetVersion, installedVersion)) { | ||
| logger.debug(`Package ${name} already satisfied by package.json (${packageJsonRange}).`); | ||
| targetVersion = undefined; | ||
| } | ||
| const target = targetVersion | ||
| ? { | ||
| version: targetVersion, | ||
| packageJson: versions[targetVersion], | ||
| updateMetadata: _getUpdateMetadata(versions[targetVersion], logger), | ||
| } | ||
| : undefined; | ||
| return { | ||
| name, | ||
| npmPackageJson, | ||
| installed: { | ||
| version: installedVersion, | ||
| packageJson: installedPackageJson, | ||
| updateMetadata: _getUpdateMetadata(installedPackageJson, logger), | ||
| }, | ||
| target, | ||
| packageJsonRange, | ||
| }; | ||
| } | ||
| function _buildPackageList(options, projectDeps, logger) { | ||
| // Parse the packages options to set the targeted version. | ||
| const packages = new Map(); | ||
| const commandLinePackages = options.packages && options.packages.length > 0 ? options.packages : []; | ||
| for (const pkg of commandLinePackages) { | ||
| // Split the version asked on command line. | ||
| const m = pkg.match(/^((?:@[^/]{1,100}\/)?[^@]{1,100})(?:@(.{1,100}))?$/); | ||
| if (!m) { | ||
| logger.warn(`Invalid package argument: ${JSON.stringify(pkg)}. Skipping.`); | ||
| continue; | ||
| } | ||
| const [, npmName, maybeVersion] = m; | ||
| const version = projectDeps.get(npmName); | ||
| if (!version) { | ||
| logger.warn(`Package not installed: ${JSON.stringify(npmName)}. Skipping.`); | ||
| continue; | ||
| } | ||
| packages.set(npmName, (maybeVersion || (options.next ? 'next' : 'latest'))); | ||
| } | ||
| return packages; | ||
| } | ||
| function _addPackageGroup(tree, packages, allDependencies, npmPackageJson, logger) { | ||
| const maybePackage = packages.get(npmPackageJson.name); | ||
| if (!maybePackage) { | ||
| return; | ||
| } | ||
| const distTags = npmPackageJson['dist-tags'] ?? {}; | ||
| let version = maybePackage; | ||
| if (distTags[version]) { | ||
| version = distTags[version]; | ||
| } | ||
| else if (version === 'next') { | ||
| version = distTags['latest']; | ||
| } | ||
| else { | ||
| const packageVersionsNonDeprecated = []; | ||
| const packageVersionsDeprecated = []; | ||
| const versions = npmPackageJson.versions ?? {}; | ||
| for (const [v, { deprecated }] of Object.entries(versions)) { | ||
| if (deprecated) { | ||
| packageVersionsDeprecated.push(v); | ||
| } | ||
| else { | ||
| packageVersionsNonDeprecated.push(v); | ||
| } | ||
| } | ||
| version = | ||
| (semver.maxSatisfying(packageVersionsNonDeprecated, version) ?? | ||
| semver.maxSatisfying(packageVersionsDeprecated, version)) ?? | ||
| version; | ||
| } | ||
| const versions = npmPackageJson.versions ?? {}; | ||
| if (!versions[version]) { | ||
| return; | ||
| } | ||
| const ngUpdateMetadata = versions[version]['ng-update']; | ||
| if (!ngUpdateMetadata) { | ||
| return; | ||
| } | ||
| const packageGroup = ngUpdateMetadata['packageGroup']; | ||
| if (!packageGroup) { | ||
| return; | ||
| } | ||
| let packageGroupNormalized; | ||
| if (Array.isArray(packageGroup) && !packageGroup.some((x) => typeof x != 'string')) { | ||
| packageGroupNormalized = packageGroup.reduce((acc, curr) => { | ||
| acc[curr] = maybePackage; | ||
| return acc; | ||
| }, {}); | ||
| } | ||
| else if (typeof packageGroup == 'object' && | ||
| packageGroup && | ||
| !Array.isArray(packageGroup) && | ||
| Object.values(packageGroup).every((x) => typeof x == 'string')) { | ||
| packageGroupNormalized = packageGroup; | ||
| } | ||
| else { | ||
| logger.warn(`packageGroup metadata of package ${npmPackageJson.name} is malformed. Ignoring.`); | ||
| return; | ||
| } | ||
| for (const [name, value] of Object.entries(packageGroupNormalized)) { | ||
| // Don't override names from the command line. | ||
| // Remove packages that aren't installed. | ||
| if (!packages.has(name) && allDependencies.has(name)) { | ||
| packages.set(name, value); | ||
| } | ||
| } | ||
| } | ||
| /** | ||
| * Add peer dependencies of packages on the command line to the list of packages to update. | ||
| * We don't do verification of the versions here as this will be done by a later step (and can | ||
| * be ignored by the --force flag). | ||
| * @private | ||
| */ | ||
| async function _addPeerDependencies(tree, packages, allDependencies, npmPackageJson, workspaceRoot, fetchMetadata, logger) { | ||
| const maybePackage = packages.get(npmPackageJson.name); | ||
| if (!maybePackage) { | ||
| return; | ||
| } | ||
| const distTags = npmPackageJson['dist-tags'] ?? {}; | ||
| const version = distTags[maybePackage] || maybePackage; | ||
| const versions = npmPackageJson.versions ?? {}; | ||
| const packageJson = versions[version]; | ||
| if (!packageJson) { | ||
| return; | ||
| } | ||
| for (const [peer, range] of Object.entries(packageJson.peerDependencies || {})) { | ||
| if (packages.has(peer)) { | ||
| continue; | ||
| } | ||
| const installedVersion = getInstalledVersion(tree, peer, workspaceRoot); | ||
| if (installedVersion) { | ||
| if (semver.satisfies(installedVersion, range)) { | ||
| continue; | ||
| } | ||
| } | ||
| else { | ||
| const packageJsonRange = allDependencies.get(peer); | ||
| if (packageJsonRange) { | ||
| const peerMetadata = await fetchMetadata(peer); | ||
| if (peerMetadata) { | ||
| const packageVersionsNonDeprecated = []; | ||
| const packageVersionsDeprecated = []; | ||
| for (const [v, { deprecated }] of Object.entries(peerMetadata.versions ?? {})) { | ||
| if (deprecated) { | ||
| packageVersionsDeprecated.push(v); | ||
| } | ||
| else { | ||
| packageVersionsNonDeprecated.push(v); | ||
| } | ||
| } | ||
| const resolvedInstalledVersion = semver.maxSatisfying(packageVersionsNonDeprecated, packageJsonRange) ?? | ||
| semver.maxSatisfying(packageVersionsDeprecated, packageJsonRange); | ||
| if (resolvedInstalledVersion && semver.satisfies(resolvedInstalledVersion, range)) { | ||
| continue; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| packages.set(peer, range); | ||
| } | ||
| } | ||
| function _getAllDependencies(tree) { | ||
| const { dependencies, devDependencies, peerDependencies } = tree.readJson('/package.json'); | ||
| return [ | ||
| ...Object.entries(peerDependencies || {}), | ||
| ...Object.entries(devDependencies || {}), | ||
| ...Object.entries(dependencies || {}), | ||
| ]; | ||
| } | ||
| function _formatVersion(version) { | ||
| if (version === undefined) { | ||
| return undefined; | ||
| } | ||
| if (!version.match(/^\d{1,30}\.\d{1,30}\.\d{1,30}/)) { | ||
| version += '.0'; | ||
| } | ||
| if (!version.match(/^\d{1,30}\.\d{1,30}\.\d{1,30}/)) { | ||
| version += '.0'; | ||
| } | ||
| if (!semver.valid(version)) { | ||
| throw new schematics_1.SchematicsException(`Invalid migration version: ${JSON.stringify(version)}`); | ||
| } | ||
| return version; | ||
| } | ||
| /** | ||
| * Returns whether or not the given package specifier (the value string in a | ||
| * `package.json` dependency) is hosted in the NPM registry. | ||
| * @throws When the specifier cannot be parsed. | ||
| */ | ||
| function isPkgFromRegistry(name, specifier) { | ||
| const result = npa.resolve(name, specifier); | ||
| return !!result.registry; | ||
| } | ||
| function default_1(options) { | ||
| if (!options.packages) { | ||
| // We cannot just return this because we need to fetch the packages from NPM still for the | ||
| // help/guide to show. | ||
| options.packages = []; | ||
| } | ||
| else { | ||
| // We split every packages by commas to allow people to pass in multiple and make it an array. | ||
| options.packages = options.packages.reduce((acc, curr) => { | ||
| return acc.concat(curr.split(',')); | ||
| }, []); | ||
| } | ||
| if (options.migrateOnly && options.from) { | ||
| if (options.packages.length !== 1) { | ||
| throw new schematics_1.SchematicsException('--from requires that only a single package be passed.'); | ||
| } | ||
| } | ||
| options.from = _formatVersion(options.from); | ||
| options.to = _formatVersion(options.to); | ||
| const usingYarn = options.packageManager === 'yarn'; | ||
| return async (tree, context) => { | ||
| const logger = context.logger; | ||
| const npmDeps = new Map(_getAllDependencies(tree).filter(([name, specifier]) => { | ||
| try { | ||
| return isPkgFromRegistry(name, specifier); | ||
| } | ||
| catch { | ||
| logger.warn(`Package ${name} was not found on the registry. Skipping.`); | ||
| return false; | ||
| } | ||
| })); | ||
| const packages = _buildPackageList(options, npmDeps, logger); | ||
| const workspaceRoot = options.workspaceRoot ?? process.cwd(); | ||
| const npmPackageJsonMap = new Map(); | ||
| const getOrFetchPackageMetadata = async (packageName) => { | ||
| let metadata = npmPackageJsonMap.get(packageName); | ||
| if (!metadata) { | ||
| const raw = await (0, package_metadata_1.getNpmPackageJson)(packageName, logger, { | ||
| registry: options.registry, | ||
| usingYarn, | ||
| verbose: options.verbose, | ||
| }); | ||
| if (raw.name) { | ||
| metadata = raw; | ||
| npmPackageJsonMap.set(packageName, metadata); | ||
| } | ||
| } | ||
| return metadata ?? null; | ||
| }; | ||
| if (packages.size === 0) { | ||
| // User ran just `ng update` to see the outdated package list. | ||
| // We must fetch metadata for all npm dependencies to generate the usage message. | ||
| await Promise.all(Array.from(npmDeps.keys()).map(async (depName) => { | ||
| await getOrFetchPackageMetadata(depName); | ||
| })); | ||
| } | ||
| else { | ||
| // User requested updates. We resolve dependencies lazily. | ||
| let lastPackagesSize; | ||
| do { | ||
| lastPackagesSize = packages.size; | ||
| let lastGroupSize; | ||
| do { | ||
| lastGroupSize = packages.size; | ||
| for (const name of Array.from(packages.keys())) { | ||
| const metadata = await getOrFetchPackageMetadata(name); | ||
| const spec = packages.get(name); | ||
| if (metadata && spec) { | ||
| const resolvedVersion = resolvePackageVersion(metadata, spec, !!options.next); | ||
| if (resolvedVersion) { | ||
| packages.set(name, resolvedVersion); | ||
| } | ||
| _addPackageGroup(tree, packages, npmDeps, metadata, logger); | ||
| } | ||
| } | ||
| } while (packages.size > lastGroupSize); | ||
| for (const name of Array.from(packages.keys())) { | ||
| const metadata = await getOrFetchPackageMetadata(name); | ||
| const spec = packages.get(name); | ||
| if (metadata && spec) { | ||
| const resolvedVersion = resolvePackageVersion(metadata, spec, !!options.next); | ||
| if (resolvedVersion) { | ||
| packages.set(name, resolvedVersion); | ||
| } | ||
| await _addPeerDependencies(tree, packages, npmDeps, metadata, workspaceRoot, getOrFetchPackageMetadata, logger); | ||
| } | ||
| } | ||
| } while (packages.size > lastPackagesSize); | ||
| } | ||
| // Build the PackageInfo for each module. | ||
| const packageInfoMap = new Map(); | ||
| for (const depName of npmDeps.keys()) { | ||
| const isUpdating = packages.has(depName); | ||
| const localPkgJson = getInstalledPackageJson(tree, depName, workspaceRoot); | ||
| if (isUpdating || !localPkgJson) { | ||
| // If updating OR not installed locally, resolve via registry metadata | ||
| const metadata = await getOrFetchPackageMetadata(depName); | ||
| if (metadata) { | ||
| packageInfoMap.set(depName, _buildPackageInfo(tree, packages, npmDeps, metadata, workspaceRoot, logger)); | ||
| } | ||
| else { | ||
| // Fallback if metadata could not be fetched | ||
| packageInfoMap.set(depName, _buildLocalPackageInfo(tree, depName, npmDeps, workspaceRoot, logger)); | ||
| } | ||
| } | ||
| else { | ||
| // If not updating and installed locally, resolve purely locally | ||
| packageInfoMap.set(depName, _buildLocalPackageInfo(tree, depName, npmDeps, workspaceRoot, logger)); | ||
| } | ||
| } | ||
| // Now that we have all the information, check the flags. | ||
| if (packages.size > 0) { | ||
| if (options.migrateOnly && options.from && options.packages) { | ||
| return; | ||
| } | ||
| const sublog = new core_1.logging.LevelCapLogger('validation', logger.createChild(''), 'warn'); | ||
| _validateUpdatePackages(packageInfoMap, !!options.force, !!options.next, sublog); | ||
| _performUpdate(tree, context, packageInfoMap, logger, !!options.migrateOnly); | ||
| } | ||
| else { | ||
| _usageMessage(options, packageInfoMap, logger); | ||
| } | ||
| }; | ||
| } | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"} |
| export type Schema = { | ||
| /** | ||
| * When false (the default), reports an error if installed packages are incompatible with | ||
| * the update. | ||
| */ | ||
| force?: boolean; | ||
| /** | ||
| * When using `--migrateOnly` for a single package, the version of that package from which | ||
| * to migrate. | ||
| */ | ||
| from?: string; | ||
| /** | ||
| * Perform a migration, but do not update the installed version. | ||
| */ | ||
| migrateOnly?: boolean; | ||
| /** | ||
| * Update to the latest version, including beta and RCs. | ||
| */ | ||
| next?: boolean; | ||
| /** | ||
| * The preferred package manager configuration files to use for registry settings. | ||
| */ | ||
| packageManager?: PackageManager; | ||
| /** | ||
| * The package or packages to update. | ||
| */ | ||
| packages?: string[]; | ||
| /** | ||
| * The npm registry to use. | ||
| */ | ||
| registry?: string; | ||
| /** | ||
| * When using `--migrateOnly` for a single package, the version of that package to which to | ||
| * migrate. | ||
| */ | ||
| to?: string; | ||
| /** | ||
| * Display additional details during the update process. | ||
| */ | ||
| verbose?: boolean; | ||
| /** | ||
| * The path to the workspace root directory. | ||
| */ | ||
| workspaceRoot?: string; | ||
| [property: string]: any; | ||
| }; | ||
| /** | ||
| * The preferred package manager configuration files to use for registry settings. | ||
| */ | ||
| export declare enum PackageManager { | ||
| Bun = "bun", | ||
| Npm = "npm", | ||
| Pnpm = "pnpm", | ||
| Yarn = "yarn" | ||
| } |
| "use strict"; | ||
| // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE | ||
| // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...). | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.PackageManager = void 0; | ||
| /** | ||
| * The preferred package manager configuration files to use for registry settings. | ||
| */ | ||
| var PackageManager; | ||
| (function (PackageManager) { | ||
| PackageManager["Bun"] = "bun"; | ||
| PackageManager["Npm"] = "npm"; | ||
| PackageManager["Pnpm"] = "pnpm"; | ||
| PackageManager["Yarn"] = "yarn"; | ||
| })(PackageManager || (exports.PackageManager = PackageManager = {})); | ||
| //# sourceMappingURL=schema.js.map |
| {"version":3,"file":"schema.js","sourceRoot":"","sources":["schema.ts"],"names":[],"mappings":";AACA,mFAAmF;AACnF,oFAAoF;;;AAiDpF;;GAEG;AACH,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;AACjB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB"} |
| { | ||
| "$schema": "http://json-schema.org/draft-07/schema", | ||
| "$id": "SchematicsUpdateSchema", | ||
| "title": "Schematic Options Schema", | ||
| "type": "object", | ||
| "properties": { | ||
| "packages": { | ||
| "description": "The package or packages to update.", | ||
| "type": "array", | ||
| "items": { | ||
| "type": "string" | ||
| }, | ||
| "$default": { | ||
| "$source": "argv" | ||
| } | ||
| }, | ||
| "force": { | ||
| "description": "When false (the default), reports an error if installed packages are incompatible with the update.", | ||
| "default": false, | ||
| "type": "boolean" | ||
| }, | ||
| "next": { | ||
| "description": "Update to the latest version, including beta and RCs.", | ||
| "default": false, | ||
| "type": "boolean" | ||
| }, | ||
| "migrateOnly": { | ||
| "description": "Perform a migration, but do not update the installed version.", | ||
| "default": false, | ||
| "type": "boolean" | ||
| }, | ||
| "from": { | ||
| "description": "When using `--migrateOnly` for a single package, the version of that package from which to migrate.", | ||
| "type": "string" | ||
| }, | ||
| "to": { | ||
| "description": "When using `--migrateOnly` for a single package, the version of that package to which to migrate.", | ||
| "type": "string" | ||
| }, | ||
| "registry": { | ||
| "description": "The npm registry to use.", | ||
| "type": "string", | ||
| "oneOf": [ | ||
| { | ||
| "format": "uri" | ||
| }, | ||
| { | ||
| "format": "hostname" | ||
| } | ||
| ] | ||
| }, | ||
| "verbose": { | ||
| "description": "Display additional details during the update process.", | ||
| "type": "boolean" | ||
| }, | ||
| "packageManager": { | ||
| "description": "The preferred package manager configuration files to use for registry settings.", | ||
| "type": "string", | ||
| "default": "npm", | ||
| "enum": ["npm", "yarn", "pnpm", "bun"] | ||
| }, | ||
| "workspaceRoot": { | ||
| "description": "The path to the workspace root directory.", | ||
| "type": "string" | ||
| } | ||
| }, | ||
| "required": [] | ||
| } |
Sorry, the diff of this file is too big to display
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1468612
-0.56%348
-1.42%24445
-0.65%1
Infinity%38
2.7%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated
Updated
Updated
Updated
Updated