diff --git a/packages/cli/package.json b/packages/cli/package.json index 5974116843..429cb85e6c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -31,6 +31,7 @@ }, "dependencies": { "@backstage/cli-common": "workspace:^", + "@backstage/cli-node": "workspace:^", "@backstage/config": "workspace:^", "@backstage/config-loader": "workspace:^", "@backstage/errors": "workspace:^", diff --git a/packages/cli/src/commands/build/command.ts b/packages/cli/src/commands/build/command.ts index 90b76545ce..507085e0a0 100644 --- a/packages/cli/src/commands/build/command.ts +++ b/packages/cli/src/commands/build/command.ts @@ -16,7 +16,8 @@ import { OptionValues } from 'commander'; import { buildPackage, Output } from '../../lib/builder'; -import { findRoleFromCommand, getRoleInfo } from '../../lib/role'; +import { findRoleFromCommand } from '../../lib/role'; +import { PackageRoles } from '@backstage/cli-node'; import { paths } from '../../lib/paths'; import { buildFrontend } from './buildFrontend'; import { buildBackend } from './buildBackend'; @@ -47,7 +48,7 @@ export async function command(opts: OptionValues): Promise { }); } - const roleInfo = getRoleInfo(role); + const roleInfo = PackageRoles.getRoleInfo(role); const outputs = new Set(); diff --git a/packages/cli/src/commands/fix.ts b/packages/cli/src/commands/fix.ts index e4cdc4dc84..263d171fd6 100644 --- a/packages/cli/src/commands/fix.ts +++ b/packages/cli/src/commands/fix.ts @@ -19,7 +19,7 @@ import { ESLint } from 'eslint'; import { join as joinPath, basename } from 'path'; import fs from 'fs-extra'; import { isChildPath } from '@backstage/cli-common'; -import { PackageGraph } from '../lib/monorepo'; +import { PackageGraph } from '@backstage/cli-node'; function isTestPath(filePath: string) { if (!isChildPath(joinPath(paths.targetDir, 'src'), filePath)) { diff --git a/packages/cli/src/commands/migrate/packageExports.ts b/packages/cli/src/commands/migrate/packageExports.ts index ff01f939f9..82d0b73ac2 100644 --- a/packages/cli/src/commands/migrate/packageExports.ts +++ b/packages/cli/src/commands/migrate/packageExports.ts @@ -16,7 +16,7 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; -import { ExtendedPackageJSON, PackageGraph } from '../../lib/monorepo'; +import { BackstagePackageJson, PackageGraph } from '@backstage/cli-node'; function trimRelative(path: string): string { if (path.startsWith('./')) { @@ -94,7 +94,7 @@ export async function command() { newPackageJson = Object.fromEntries( newPkgEntries, - ) as ExtendedPackageJSON; + ) as BackstagePackageJson; changed = true; } diff --git a/packages/cli/src/commands/migrate/packageLintConfigs.ts b/packages/cli/src/commands/migrate/packageLintConfigs.ts index c0007ef59d..03d42846e8 100644 --- a/packages/cli/src/commands/migrate/packageLintConfigs.ts +++ b/packages/cli/src/commands/migrate/packageLintConfigs.ts @@ -16,7 +16,7 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; -import { PackageGraph } from '../../lib/monorepo'; +import { PackageGraph } from '@backstage/cli-node'; import { runPlain } from '../../lib/run'; const PREFIX = `module.exports = require('@backstage/cli/config/eslint-factory')`; diff --git a/packages/cli/src/commands/migrate/packageRole.ts b/packages/cli/src/commands/migrate/packageRole.ts index e8bfb8e7c8..e7abbd3dcd 100644 --- a/packages/cli/src/commands/migrate/packageRole.ts +++ b/packages/cli/src/commands/migrate/packageRole.ts @@ -17,8 +17,8 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; import { getPackages } from '@manypkg/get-packages'; +import { PackageRoles } from '@backstage/cli-node'; import { paths } from '../../lib/paths'; -import { getRoleFromPackage, detectRoleFromPackage } from '../../lib/role'; export default async () => { const { packages } = await getPackages(paths.targetDir); @@ -26,12 +26,12 @@ export default async () => { await Promise.all( packages.map(async ({ dir, packageJson: pkg }) => { const { name } = pkg; - const existingRole = getRoleFromPackage(pkg); + const existingRole = PackageRoles.getRoleFromPackage(pkg); if (existingRole) { return; } - const detectedRole = detectRoleFromPackage(pkg); + const detectedRole = PackageRoles.detectRoleFromPackage(pkg); if (!detectedRole) { console.error(`No role detected for package ${name}`); return; diff --git a/packages/cli/src/commands/migrate/packageScripts.ts b/packages/cli/src/commands/migrate/packageScripts.ts index c7dab9466b..1552208a5f 100644 --- a/packages/cli/src/commands/migrate/packageScripts.ts +++ b/packages/cli/src/commands/migrate/packageScripts.ts @@ -16,8 +16,7 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; -import { PackageGraph } from '../../lib/monorepo'; -import { getRoleFromPackage, getRoleInfo, PackageRole } from '../../lib/role'; +import { PackageGraph, PackageRoles, PackageRole } from '@backstage/cli-node'; const configArgPattern = /--config[=\s][^\s$]+/; @@ -28,12 +27,12 @@ export async function command() { await Promise.all( packages.map(async ({ dir, packageJson }) => { - const role = getRoleFromPackage(packageJson); + const role = PackageRoles.getRoleFromPackage(packageJson); if (!role) { return; } - const roleInfo = getRoleInfo(role); + const roleInfo = PackageRoles.getRoleInfo(role); const hasStart = !noStartRoles.includes(role); const needsPack = !(roleInfo.output.includes('bundle') || role === 'cli'); const scripts = packageJson.scripts ?? {}; diff --git a/packages/cli/src/commands/migrate/reactRouterDeps.ts b/packages/cli/src/commands/migrate/reactRouterDeps.ts index 3c1ddd293d..1617c855ee 100644 --- a/packages/cli/src/commands/migrate/reactRouterDeps.ts +++ b/packages/cli/src/commands/migrate/reactRouterDeps.ts @@ -16,8 +16,7 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; -import { PackageGraph } from '../../lib/monorepo'; -import { getRoleFromPackage } from '../../lib/role'; +import { PackageGraph, PackageRoles } from '@backstage/cli-node'; const REACT_ROUTER_DEPS = ['react-router', 'react-router-dom']; const REACT_ROUTER_RANGE = '6.0.0-beta.0 || ^6.3.0'; @@ -27,7 +26,7 @@ export async function command() { await Promise.all( packages.map(async ({ dir, packageJson }) => { - const role = getRoleFromPackage(packageJson); + const role = PackageRoles.getRoleFromPackage(packageJson); if (role === 'frontend') { console.log(`Skipping ${packageJson.name}`); return; diff --git a/packages/cli/src/commands/new/new.ts b/packages/cli/src/commands/new/new.ts index 8aaa671614..61e27af3c5 100644 --- a/packages/cli/src/commands/new/new.ts +++ b/packages/cli/src/commands/new/new.ts @@ -19,10 +19,10 @@ import fs from 'fs-extra'; import { join as joinPath } from 'path'; import { OptionValues } from 'commander'; import { FactoryRegistry } from '../../lib/new/FactoryRegistry'; +import { isMonoRepo } from '@backstage/cli-node'; import { paths } from '../../lib/paths'; import { assertError } from '@backstage/errors'; import { Task } from '../../lib/tasks'; -import { isMonoRepo } from '../../lib/monorepo/isMonoRepo'; function parseOptions(optionStrings: string[]): Record { const options: Record = {}; diff --git a/packages/cli/src/commands/repo/build.ts b/packages/cli/src/commands/repo/build.ts index d5602a4008..71e58c6201 100644 --- a/packages/cli/src/commands/repo/build.ts +++ b/packages/cli/src/commands/repo/build.ts @@ -18,11 +18,13 @@ import chalk from 'chalk'; import { Command, OptionValues } from 'commander'; import { relative as relativePath } from 'path'; import { buildPackages, getOutputsForRole } from '../../lib/builder'; -import { PackageGraph } from '../../lib/monorepo'; -import { ExtendedPackage } from '../../lib/monorepo/PackageGraph'; -import { runParallelWorkers } from '../../lib/parallel'; import { paths } from '../../lib/paths'; -import { detectRoleFromPackage } from '../../lib/role'; +import { + PackageGraph, + BackstagePackage, + PackageRoles, +} from '@backstage/cli-node'; +import { runParallelWorkers } from '../../lib/parallel'; import { buildFrontend } from '../build/buildFrontend'; import { buildBackend } from '../build/buildBackend'; @@ -93,14 +95,15 @@ export async function command(opts: OptionValues, cmd: Command): Promise { packages = Array.from(withDevDependents).map(name => graph.get(name)!); } - const apps = new Array(); - const backends = new Array(); + const apps = new Array(); + const backends = new Array(); const parseBuildScript = createScriptOptionsParser(cmd, ['package', 'build']); const options = packages.flatMap(pkg => { const role = - pkg.packageJson.backstage?.role ?? detectRoleFromPackage(pkg.packageJson); + pkg.packageJson.backstage?.role ?? + PackageRoles.detectRoleFromPackage(pkg.packageJson); if (!role) { console.warn(`Ignored ${pkg.packageJson.name} because it has no role`); return []; diff --git a/packages/cli/src/commands/repo/clean.ts b/packages/cli/src/commands/repo/clean.ts index 323746e089..13ff061423 100644 --- a/packages/cli/src/commands/repo/clean.ts +++ b/packages/cli/src/commands/repo/clean.ts @@ -18,7 +18,7 @@ import { execFile as execFileCb } from 'child_process'; import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; import { promisify } from 'util'; -import { PackageGraph } from '../../lib/monorepo'; +import { PackageGraph } from '@backstage/cli-node'; import { paths } from '../../lib/paths'; const execFile = promisify(execFileCb); diff --git a/packages/cli/src/commands/repo/lint.ts b/packages/cli/src/commands/repo/lint.ts index 8e8ec20ff8..05fbf7b87e 100644 --- a/packages/cli/src/commands/repo/lint.ts +++ b/packages/cli/src/commands/repo/lint.ts @@ -17,11 +17,11 @@ import chalk from 'chalk'; import { OptionValues } from 'commander'; import { relative as relativePath } from 'path'; -import { PackageGraph, ExtendedPackageJSON } from '../../lib/monorepo'; -import { runWorkerQueueThreads } from '../../lib/parallel'; +import { PackageGraph, BackstagePackageJson } from '@backstage/cli-node'; import { paths } from '../../lib/paths'; +import { runWorkerQueueThreads } from '../../lib/parallel'; -function depCount(pkg: ExtendedPackageJSON) { +function depCount(pkg: BackstagePackageJson) { const deps = pkg.dependencies ? Object.keys(pkg.dependencies).length : 0; const devDeps = pkg.devDependencies ? Object.keys(pkg.devDependencies).length diff --git a/packages/cli/src/commands/repo/list-deprecations.ts b/packages/cli/src/commands/repo/list-deprecations.ts index 97fa384561..69fe51f78e 100644 --- a/packages/cli/src/commands/repo/list-deprecations.ts +++ b/packages/cli/src/commands/repo/list-deprecations.ts @@ -18,8 +18,8 @@ import chalk from 'chalk'; import { ESLint } from 'eslint'; import { OptionValues } from 'commander'; import { join as joinPath, relative as relativePath } from 'path'; +import { PackageGraph } from '@backstage/cli-node'; import { paths } from '../../lib/paths'; -import { PackageGraph } from '../../lib/monorepo'; export async function command(opts: OptionValues) { const packages = await PackageGraph.listTargetPackages(); diff --git a/packages/cli/src/commands/repo/test.ts b/packages/cli/src/commands/repo/test.ts index 2dd778677a..1ca0da5495 100644 --- a/packages/cli/src/commands/repo/test.ts +++ b/packages/cli/src/commands/repo/test.ts @@ -16,7 +16,7 @@ import os from 'os'; import { Command, OptionValues } from 'commander'; -import { PackageGraph } from '../../lib/monorepo'; +import { PackageGraph } from '@backstage/cli-node'; import { paths } from '../../lib/paths'; import { runCheck } from '../../lib/run'; diff --git a/packages/cli/src/commands/start/startFrontend.ts b/packages/cli/src/commands/start/startFrontend.ts index 991439c010..e066a40e7a 100644 --- a/packages/cli/src/commands/start/startFrontend.ts +++ b/packages/cli/src/commands/start/startFrontend.ts @@ -19,10 +19,10 @@ import chalk from 'chalk'; import uniq from 'lodash/uniq'; import { serveBundle } from '../../lib/bundler'; import { loadCliConfig } from '../../lib/config'; -import { paths } from '../../lib/paths'; +import { PackageGraph } from '@backstage/cli-node'; import { Lockfile } from '../../lib/versioning'; import { forbiddenDuplicatesFilter, includedFilter } from '../versions/lint'; -import { PackageGraph } from '../../lib/monorepo'; +import { paths } from '../../lib/paths'; interface StartAppOptions { verifyVersions?: boolean; diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 45b966a52d..997e5f8e60 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -39,7 +39,7 @@ import { ReleaseManifest, } from '@backstage/release-manifests'; import 'global-agent/bootstrap'; -import { PackageGraph } from '../../lib/monorepo'; +import { PackageGraph } from '@backstage/cli-node'; const DEP_TYPES = [ 'dependencies', diff --git a/packages/cli/src/commands/versions/lint.ts b/packages/cli/src/commands/versions/lint.ts index 8de38548a9..9466fd0ab7 100644 --- a/packages/cli/src/commands/versions/lint.ts +++ b/packages/cli/src/commands/versions/lint.ts @@ -18,7 +18,7 @@ import { OptionValues } from 'commander'; import { Lockfile } from '../../lib/versioning'; import { paths } from '../../lib/paths'; import partition from 'lodash/partition'; -import { PackageGraph } from '../../lib/monorepo'; +import { PackageGraph } from '@backstage/cli-node'; // Packages that we try to avoid duplicates for const INCLUDED = [/^@backstage\//]; diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 7bd10cfcc3..8035796cba 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -30,9 +30,9 @@ import { RollupOptions, OutputOptions, RollupWarning } from 'rollup'; import { forwardFileImports } from './plugins'; import { BuildOptions, Output } from './types'; import { paths } from '../paths'; +import { BackstagePackageJson } from '@backstage/cli-node'; import { svgrTemplate } from '../svgrTemplate'; -import { ExtendedPackageJSON } from '../monorepo'; -import { readEntryPoints } from '../monorepo/entryPoints'; +import { readEntryPoints } from '../entryPoints'; const SCRIPT_EXTS = ['.js', '.jsx', '.ts', '.tsx']; @@ -58,7 +58,7 @@ export async function makeRollupConfigs( let targetPkg = options.packageJson; if (!targetPkg) { const packagePath = resolvePath(targetDir, 'package.json'); - targetPkg = (await fs.readJson(packagePath)) as ExtendedPackageJSON; + targetPkg = (await fs.readJson(packagePath)) as BackstagePackageJson; } const onwarn = ({ code, message }: RollupWarning) => { diff --git a/packages/cli/src/lib/builder/packager.ts b/packages/cli/src/lib/builder/packager.ts index c2256c8417..780f9c2cfe 100644 --- a/packages/cli/src/lib/builder/packager.ts +++ b/packages/cli/src/lib/builder/packager.ts @@ -22,7 +22,7 @@ import { paths } from '../paths'; import { makeRollupConfigs } from './config'; import { BuildOptions, Output } from './types'; import { buildTypeDefinitions } from './buildTypeDefinitions'; -import { getRoleInfo } from '../role'; +import { PackageRoles } from '@backstage/cli-node'; import { runParallelWorkers } from '../parallel'; export function formatErrorMessage(error: any) { @@ -152,7 +152,7 @@ export const buildPackages = async (options: BuildOptions[]) => { export function getOutputsForRole(role: string): Set { const outputs = new Set(); - for (const output of getRoleInfo(role).output) { + for (const output of PackageRoles.getRoleInfo(role).output) { if (output === 'cjs') { outputs.add(Output.cjs); } diff --git a/packages/cli/src/lib/builder/types.ts b/packages/cli/src/lib/builder/types.ts index de7e9b10eb..330419235f 100644 --- a/packages/cli/src/lib/builder/types.ts +++ b/packages/cli/src/lib/builder/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ExtendedPackageJSON } from '../monorepo'; +import { BackstagePackageJson } from '@backstage/cli-node'; export enum Output { esm, @@ -25,7 +25,7 @@ export enum Output { export type BuildOptions = { logPrefix?: string; targetDir?: string; - packageJson?: ExtendedPackageJSON; + packageJson?: BackstagePackageJson; outputs: Set; minify?: boolean; useApiExtractor?: boolean; diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 6fc7482dce..94b2a1c561 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -32,12 +32,12 @@ import { LinkedPackageResolvePlugin } from './LinkedPackageResolvePlugin'; import { BundlingOptions, BackendBundlingOptions } from './types'; import { version } from '../../lib/version'; import { paths as cliPaths } from '../../lib/paths'; +import { BackstagePackage } from '@backstage/cli-node'; import { runPlain } from '../run'; import ESLintPlugin from 'eslint-webpack-plugin'; import pickBy from 'lodash/pickBy'; import yn from 'yn'; -import { readEntryPoints } from '../monorepo/entryPoints'; -import { ExtendedPackage } from '../monorepo'; +import { readEntryPoints } from '../entryPoints'; const BUILD_CACHE_ENV_VAR = 'BACKSTAGE_CLI_EXPERIMENTAL_BUILD_CACHE'; @@ -235,7 +235,7 @@ export async function createBackendConfig( // Find all local monorepo packages and their node_modules, and mark them as external. const { packages } = await getPackages(cliPaths.targetDir); const localPackageEntryPoints = packages.flatMap(p => { - const entryPoints = readEntryPoints((p as ExtendedPackage).packageJson); + const entryPoints = readEntryPoints((p as BackstagePackage).packageJson); return entryPoints.map(e => posixPath.join(p.packageJson.name, e.mount)); }); const moduleDirs = packages.map(p => resolvePath(p.dir, 'node_modules')); diff --git a/packages/cli/src/lib/config.ts b/packages/cli/src/lib/config.ts index a76571c3f6..b34e1280c0 100644 --- a/packages/cli/src/lib/config.ts +++ b/packages/cli/src/lib/config.ts @@ -23,7 +23,7 @@ import { ConfigReader } from '@backstage/config'; import { paths } from './paths'; import { isValidUrl } from './urls'; import { getPackages } from '@manypkg/get-packages'; -import { PackageGraph } from './monorepo'; +import { PackageGraph } from '@backstage/cli-node'; type Options = { args: string[]; diff --git a/packages/cli/src/lib/entryPoints.ts b/packages/cli/src/lib/entryPoints.ts index 0ccbea8708..1f6e2feec2 100644 --- a/packages/cli/src/lib/entryPoints.ts +++ b/packages/cli/src/lib/entryPoints.ts @@ -15,7 +15,7 @@ */ import { extname } from 'path'; -import { BackstagePackageJson } from './PackageGraph'; +import { BackstagePackageJson } from '@backstage/cli-node'; export interface EntryPoint { mount: string; diff --git a/packages/cli/src/lib/packager/createDistWorkspace.ts b/packages/cli/src/lib/packager/createDistWorkspace.ts index 601f442a73..ab8b20919f 100644 --- a/packages/cli/src/lib/packager/createDistWorkspace.ts +++ b/packages/cli/src/lib/packager/createDistWorkspace.ts @@ -30,7 +30,6 @@ import { dependencies as cliDependencies, devDependencies as cliDevDependencies, } from '../../../package.json'; -import { PackageGraph, PackageGraphNode } from '../monorepo'; import { BuildOptions, buildPackages, @@ -38,7 +37,11 @@ import { Output, } from '../builder'; import { productionPack } from './productionPack'; -import { getRoleInfo } from '../role'; +import { + PackageRoles, + PackageGraph, + PackageGraphNode, +} from '@backstage/cli-node'; import { runParallelWorkers } from '../parallel'; // These packages aren't safe to pack in parallel since the CLI depends on them @@ -172,7 +175,7 @@ export async function createDistWorkspace( continue; } - if (getRoleInfo(role).output.includes('bundle')) { + if (PackageRoles.getRoleInfo(role).output.includes('bundle')) { console.warn( `Building ${pkg.packageJson.name} separately because it is a bundled package`, ); diff --git a/packages/cli/src/lib/packager/productionPack.ts b/packages/cli/src/lib/packager/productionPack.ts index 30f4545b24..aea5df649a 100644 --- a/packages/cli/src/lib/packager/productionPack.ts +++ b/packages/cli/src/lib/packager/productionPack.ts @@ -17,8 +17,8 @@ import fs from 'fs-extra'; import npmPackList from 'npm-packlist'; import { resolve as resolvePath, posix as posixPath } from 'path'; -import { ExtendedPackageJSON } from '../monorepo'; -import { readEntryPoints } from '../monorepo/entryPoints'; +import { BackstagePackageJson } from '@backstage/cli-node'; +import { readEntryPoints } from '../entryPoints'; const PKG_PATH = 'package.json'; const PKG_BACKUP_PATH = 'package.json-prepack'; @@ -35,7 +35,7 @@ export async function productionPack(options: ProductionPackOptions) { const { packageDir, targetDir } = options; const pkgPath = resolvePath(packageDir, PKG_PATH); const pkgContent = await fs.readFile(pkgPath, 'utf8'); - const pkg = JSON.parse(pkgContent) as ExtendedPackageJSON; + const pkg = JSON.parse(pkgContent) as BackstagePackageJson; // If we're making the update in-line, back up the package.json if (!targetDir) { @@ -147,7 +147,7 @@ function resolveEntrypoint(pkg: any, name: string) { // Writes e.g. alpha/package.json async function writeReleaseStageEntrypoint( - pkg: ExtendedPackageJSON, + pkg: BackstagePackageJson, stage: 'alpha' | 'beta', targetDir: string, ) { @@ -178,7 +178,7 @@ const EXPORT_MAP = { * entry points for importers that don't support exports. */ async function prepareExportsEntryPoints( - pkg: ExtendedPackageJSON, + pkg: BackstagePackageJson, packageDir: string, ) { const distPath = resolvePath(packageDir, 'dist'); diff --git a/packages/cli/src/lib/role.ts b/packages/cli/src/lib/role.ts index 2f77f0d880..49f39f789c 100644 --- a/packages/cli/src/lib/role.ts +++ b/packages/cli/src/lib/role.ts @@ -17,16 +17,17 @@ import fs from 'fs-extra'; import { OptionValues } from 'commander'; import { paths } from './paths'; +import { PackageRoles, PackageRole } from '@backstage/cli-node'; export async function findRoleFromCommand( opts: OptionValues, ): Promise { if (opts.role) { - return getRoleInfo(opts.role)?.role; + return PackageRoles.getRoleInfo(opts.role)?.role; } const pkg = await fs.readJson(paths.resolveTarget('package.json')); - const info = getRoleFromPackage(pkg); + const info = PackageRoles.getRoleFromPackage(pkg); if (!info) { throw new Error(`Target package must have 'backstage.role' set`); } diff --git a/packages/cli/src/lib/versioning/Lockfile.test.ts b/packages/cli/src/lib/versioning/Lockfile.test.ts index 62bab92134..909f8be9aa 100644 --- a/packages/cli/src/lib/versioning/Lockfile.test.ts +++ b/packages/cli/src/lib/versioning/Lockfile.test.ts @@ -16,7 +16,7 @@ import fs from 'fs-extra'; import mockFs from 'mock-fs'; -import { ExtendedPackage } from '../monorepo'; +import { BackstagePackage } from '@backstage/cli-node'; import { Lockfile } from './Lockfile'; const LEGACY_HEADER = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. @@ -290,7 +290,7 @@ describe('New Lockfile', () => { 'b', { packageJson: { version: '2.0.1' }, - } as ExtendedPackage, + } as BackstagePackage, ], ]), }); diff --git a/packages/cli/src/lib/versioning/Lockfile.ts b/packages/cli/src/lib/versioning/Lockfile.ts index b502272776..50d0a77cfd 100644 --- a/packages/cli/src/lib/versioning/Lockfile.ts +++ b/packages/cli/src/lib/versioning/Lockfile.ts @@ -18,7 +18,7 @@ import fs from 'fs-extra'; import semver from 'semver'; import { parseSyml, stringifySyml } from '@yarnpkg/parsers'; import { stringify as legacyStringifyLockfile } from '@yarnpkg/lockfile'; -import { ExtendedPackage } from '../monorepo'; +import { BackstagePackage } from '@backstage/cli-node'; const ENTRY_PATTERN = /^((?:@[^/]+\/)?[^@/]+)@(.+)$/; @@ -156,7 +156,7 @@ export class Lockfile { /** Analyzes the lockfile to identify possible actions and warnings for the entries */ analyze(options: { filter?: (name: string) => boolean; - localPackages: Map; + localPackages: Map; }): AnalyzeResult { const { filter, localPackages } = options; const result: AnalyzeResult = { diff --git a/yarn.lock b/yarn.lock index c4570f3dce..e07a02b7e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3694,7 +3694,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/cli-node@workspace:packages/cli-node": +"@backstage/cli-node@workspace:^, @backstage/cli-node@workspace:packages/cli-node": version: 0.0.0-use.local resolution: "@backstage/cli-node@workspace:packages/cli-node" dependencies: @@ -3717,6 +3717,7 @@ __metadata: dependencies: "@backstage/backend-common": "workspace:^" "@backstage/cli-common": "workspace:^" + "@backstage/cli-node": "workspace:^" "@backstage/config": "workspace:^" "@backstage/config-loader": "workspace:^" "@backstage/core-app-api": "workspace:^"