UNPKG

@backstage/cli

Version:

CLI for developing Backstage plugins and apps

92 lines (86 loc) 4.22 kB
'use strict'; var fs = require('fs-extra'); var semver = require('semver'); var paths = require('./paths.cjs.js'); var _package$1 = require('../packages/backend-plugin-api/package.json.cjs.js'); var _package$2 = require('../packages/backend-test-utils/package.json.cjs.js'); var _package$3 = require('../packages/catalog-client/package.json.cjs.js'); var _package$4 = require('../packages/cli/package.json.cjs.js'); var _package$5 = require('../packages/config/package.json.cjs.js'); var _package$6 = require('../packages/core-app-api/package.json.cjs.js'); var _package$7 = require('../packages/core-components/package.json.cjs.js'); var _package$8 = require('../packages/core-plugin-api/package.json.cjs.js'); var _package$9 = require('../packages/dev-utils/package.json.cjs.js'); var _package$a = require('../packages/errors/package.json.cjs.js'); var _package$b = require('../packages/test-utils/package.json.cjs.js'); var _package$d = require('../plugins/scaffolder-node/package.json.cjs.js'); var _package$e = require('../plugins/scaffolder-node-test-utils/package.json.cjs.js'); var _package$f = require('../plugins/auth-backend/package.json.cjs.js'); var _package$g = require('../plugins/auth-backend-module-guest-provider/package.json.cjs.js'); var _package$h = require('../plugins/catalog-node/package.json.cjs.js'); var _package$c = require('../packages/theme/package.json.cjs.js'); var _package = require('../packages/backend-defaults/package.json.cjs.js'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var fs__default = /*#__PURE__*/_interopDefaultCompat(fs); var semver__default = /*#__PURE__*/_interopDefaultCompat(semver); const packageVersions = { "@backstage/backend-defaults": _package.version, "@backstage/backend-plugin-api": _package$1.version, "@backstage/backend-test-utils": _package$2.version, "@backstage/catalog-client": _package$3.version, "@backstage/cli": _package$4.version, "@backstage/config": _package$5.version, "@backstage/core-app-api": _package$6.version, "@backstage/core-components": _package$7.version, "@backstage/core-plugin-api": _package$8.version, "@backstage/dev-utils": _package$9.version, "@backstage/errors": _package$a.version, "@backstage/test-utils": _package$b.version, "@backstage/theme": _package$c.version, "@backstage/plugin-scaffolder-node": _package$d.version, "@backstage/plugin-scaffolder-node-test-utils": _package$e.version, "@backstage/plugin-auth-backend": _package$f.version, "@backstage/plugin-auth-backend-module-guest-provider": _package$g.version, "@backstage/plugin-catalog-node": _package$h.version }; function findVersion() { const pkgContent = fs__default.default.readFileSync(paths.paths.resolveOwn("package.json"), "utf8"); return JSON.parse(pkgContent).version; } const version = findVersion(); fs__default.default.pathExistsSync(paths.paths.resolveOwn("src")); function createPackageVersionProvider(lockfile) { return (name, versionHint) => { const packageVersion = packageVersions[name]; const targetVersion = versionHint || packageVersion; if (!targetVersion) { throw new Error(`No version available for package ${name}`); } const lockfileEntries = lockfile?.get(name); for (const specifier of ["^", "~", "*"]) { const range = `workspace:${specifier}`; if (lockfileEntries?.some((entry) => entry.range === range)) { return range; } } const validRanges = lockfileEntries?.filter( (entry) => semver__default.default.satisfies(targetVersion, entry.range) ); const highestRange = validRanges?.slice(-1)[0]; if (highestRange?.range) { return highestRange?.range; } if (packageVersion) { return `^${packageVersion}`; } if (semver__default.default.parse(versionHint)?.prerelease.length) { return versionHint; } return versionHint?.match(/^[\d\.]+$/) ? `^${versionHint}` : versionHint; }; } exports.createPackageVersionProvider = createPackageVersionProvider; exports.findVersion = findVersion; exports.packageVersions = packageVersions; exports.version = version; //# sourceMappingURL=version.cjs.js.map