@backstage/cli-module-migrate 0.0.0-nightly-20260317031259

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var cliNode = require('@backstage/cli-node');
6
+ var _package = require('./package.json.cjs.js');
7
+
8
+ var index = cliNode.createCliModule({
9
+ packageJson: _package.default,
10
+ init: async (reg) => {
11
+ reg.addCommand({
12
+ path: ["versions:migrate"],
13
+ description: "Migrate any plugins that have been moved to the @backstage-community namespace automatically",
14
+ execute: { loader: () => import('./commands/versions/migrate.cjs.js') }
15
+ });
16
+ reg.addCommand({
17
+ path: ["versions:bump"],
18
+ description: "Bump Backstage packages to the latest versions",
19
+ execute: { loader: () => import('./commands/versions/bump.cjs.js') }
20
+ });
21
+ reg.addCommand({
22
+ path: ["migrate", "package-roles"],
23
+ description: `Add package role field to packages that don't have it`,
24
+ execute: {
25
+ loader: () => import('./commands/packageRole.cjs.js')
26
+ }
27
+ });
28
+ reg.addCommand({
29
+ path: ["migrate", "package-scripts"],
30
+ description: "Set package scripts according to each package role",
31
+ execute: {
32
+ loader: () => import('./commands/packageScripts.cjs.js')
33
+ }
34
+ });
35
+ reg.addCommand({
36
+ path: ["migrate", "package-exports"],
37
+ description: "Synchronize package subpath export definitions",
38
+ execute: {
39
+ loader: () => import('./commands/packageExports.cjs.js')
40
+ }
41
+ });
42
+ reg.addCommand({
43
+ path: ["migrate", "package-lint-configs"],
44
+ description: "Migrates all packages to use @backstage/cli/config/eslint-factory",
45
+ execute: {
46
+ loader: () => import('./commands/packageLintConfigs.cjs.js')
47
+ }
48
+ });
49
+ reg.addCommand({
50
+ path: ["migrate", "react-router-deps"],
51
+ description: "Migrates the react-router dependencies for all packages to be peer dependencies",
52
+ execute: {
53
+ loader: () => import('./commands/reactRouterDeps.cjs.js')
54
+ }
55
+ });
56
+ }
57
+ });
58
+
59
+ exports.default = index;
60
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createCliModule } from '@backstage/cli-node';\nimport packageJson from '../package.json';\n\nexport default createCliModule({\n packageJson,\n init: async reg => {\n reg.addCommand({\n path: ['versions:migrate'],\n description:\n 'Migrate any plugins that have been moved to the @backstage-community namespace automatically',\n execute: { loader: () => import('./commands/versions/migrate') },\n });\n\n reg.addCommand({\n path: ['versions:bump'],\n description: 'Bump Backstage packages to the latest versions',\n execute: { loader: () => import('./commands/versions/bump') },\n });\n\n reg.addCommand({\n path: ['migrate', 'package-roles'],\n description: `Add package role field to packages that don't have it`,\n execute: {\n loader: () => import('./commands/packageRole'),\n },\n });\n\n reg.addCommand({\n path: ['migrate', 'package-scripts'],\n description: 'Set package scripts according to each package role',\n execute: {\n loader: () => import('./commands/packageScripts'),\n },\n });\n\n reg.addCommand({\n path: ['migrate', 'package-exports'],\n description: 'Synchronize package subpath export definitions',\n execute: {\n loader: () => import('./commands/packageExports'),\n },\n });\n\n reg.addCommand({\n path: ['migrate', 'package-lint-configs'],\n description:\n 'Migrates all packages to use @backstage/cli/config/eslint-factory',\n execute: {\n loader: () => import('./commands/packageLintConfigs'),\n },\n });\n\n reg.addCommand({\n path: ['migrate', 'react-router-deps'],\n description:\n 'Migrates the react-router dependencies for all packages to be peer dependencies',\n execute: {\n loader: () => import('./commands/reactRouterDeps'),\n },\n });\n },\n});\n"],"names":["createCliModule","packageJson"],"mappings":";;;;;;;AAkBA,YAAeA,uBAAA,CAAgB;AAAA,eAC7BC,gBAAA;AAAA,EACA,IAAA,EAAM,OAAM,GAAA,KAAO;AACjB,IAAA,GAAA,CAAI,UAAA,CAAW;AAAA,MACb,IAAA,EAAM,CAAC,kBAAkB,CAAA;AAAA,MACzB,WAAA,EACE,8FAAA;AAAA,MACF,SAAS,EAAE,MAAA,EAAQ,MAAM,OAAO,oCAA6B,CAAA;AAAE,KAChE,CAAA;AAED,IAAA,GAAA,CAAI,UAAA,CAAW;AAAA,MACb,IAAA,EAAM,CAAC,eAAe,CAAA;AAAA,MACtB,WAAA,EAAa,gDAAA;AAAA,MACb,SAAS,EAAE,MAAA,EAAQ,MAAM,OAAO,iCAA0B,CAAA;AAAE,KAC7D,CAAA;AAED,IAAA,GAAA,CAAI,UAAA,CAAW;AAAA,MACb,IAAA,EAAM,CAAC,SAAA,EAAW,eAAe,CAAA;AAAA,MACjC,WAAA,EAAa,CAAA,qDAAA,CAAA;AAAA,MACb,OAAA,EAAS;AAAA,QACP,MAAA,EAAQ,MAAM,OAAO,+BAAwB;AAAA;AAC/C,KACD,CAAA;AAED,IAAA,GAAA,CAAI,UAAA,CAAW;AAAA,MACb,IAAA,EAAM,CAAC,SAAA,EAAW,iBAAiB,CAAA;AAAA,MACnC,WAAA,EAAa,oDAAA;AAAA,MACb,OAAA,EAAS;AAAA,QACP,MAAA,EAAQ,MAAM,OAAO,kCAA2B;AAAA;AAClD,KACD,CAAA;AAED,IAAA,GAAA,CAAI,UAAA,CAAW;AAAA,MACb,IAAA,EAAM,CAAC,SAAA,EAAW,iBAAiB,CAAA;AAAA,MACnC,WAAA,EAAa,gDAAA;AAAA,MACb,OAAA,EAAS;AAAA,QACP,MAAA,EAAQ,MAAM,OAAO,kCAA2B;AAAA;AAClD,KACD,CAAA;AAED,IAAA,GAAA,CAAI,UAAA,CAAW;AAAA,MACb,IAAA,EAAM,CAAC,SAAA,EAAW,sBAAsB,CAAA;AAAA,MACxC,WAAA,EACE,mEAAA;AAAA,MACF,OAAA,EAAS;AAAA,QACP,MAAA,EAAQ,MAAM,OAAO,sCAA+B;AAAA;AACtD,KACD,CAAA;AAED,IAAA,GAAA,CAAI,UAAA,CAAW;AAAA,MACb,IAAA,EAAM,CAAC,SAAA,EAAW,mBAAmB,CAAA;AAAA,MACrC,WAAA,EACE,iFAAA;AAAA,MACF,OAAA,EAAS;AAAA,QACP,MAAA,EAAQ,MAAM,OAAO,mCAA4B;AAAA;AACnD,KACD,CAAA;AAAA,EACH;AACF,CAAC,CAAA;;;;"}
@@ -0,0 +1,5 @@
1
+ import * as _backstage_cli_node from '@backstage/cli-node';
2
+
3
+ declare const _default: _backstage_cli_node.CliModule;
4
+
5
+ export { _default as default };
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var ora = require('ora');
4
+ var chalk = require('chalk');
5
+ var cliCommon = require('@backstage/cli-common');
6
+
7
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
8
+
9
+ var ora__default = /*#__PURE__*/_interopDefaultCompat(ora);
10
+ var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
11
+
12
+ async function runYarnInstall() {
13
+ const spinner = ora__default.default({
14
+ prefixText: `Running ${chalk__default.default.blue("yarn install")} to install new versions`,
15
+ spinner: "arc",
16
+ color: "green"
17
+ }).start();
18
+ const installOutput = new Array();
19
+ try {
20
+ await cliCommon.run(["yarn", "install"], {
21
+ env: {
22
+ FORCE_COLOR: "true",
23
+ // We filter out all of the npm_* environment variables that are added when
24
+ // executing through yarn. This works around an issue where these variables
25
+ // incorrectly override local yarn or npm config in the project directory.
26
+ ...Object.fromEntries(
27
+ Object.entries(process.env).map(
28
+ ([name, value]) => name.startsWith("npm_") ? [name, void 0] : [name, value]
29
+ )
30
+ )
31
+ },
32
+ onStdout: (data) => installOutput.push(data),
33
+ onStderr: (data) => installOutput.push(data)
34
+ }).waitForExit();
35
+ spinner.succeed();
36
+ } catch (error) {
37
+ spinner.fail();
38
+ process.stdout.write(Buffer.concat(installOutput));
39
+ throw error;
40
+ }
41
+ }
42
+
43
+ exports.runYarnInstall = runYarnInstall;
44
+ //# sourceMappingURL=utils.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs.js","sources":["../../src/lib/utils.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ora from 'ora';\nimport chalk from 'chalk';\nimport { run } from '@backstage/cli-common';\n\nexport async function runYarnInstall() {\n const spinner = ora({\n prefixText: `Running ${chalk.blue('yarn install')} to install new versions`,\n spinner: 'arc',\n color: 'green',\n }).start();\n\n const installOutput = new Array<Buffer>();\n try {\n await run(['yarn', 'install'], {\n env: {\n FORCE_COLOR: 'true',\n // We filter out all of the npm_* environment variables that are added when\n // executing through yarn. This works around an issue where these variables\n // incorrectly override local yarn or npm config in the project directory.\n ...Object.fromEntries(\n Object.entries(process.env).map(([name, value]) =>\n name.startsWith('npm_') ? [name, undefined] : [name, value],\n ),\n ),\n },\n onStdout: data => installOutput.push(data),\n onStderr: data => installOutput.push(data),\n }).waitForExit();\n spinner.succeed();\n } catch (error) {\n spinner.fail();\n process.stdout.write(Buffer.concat(installOutput));\n throw error;\n }\n}\n"],"names":["ora","chalk","run"],"mappings":";;;;;;;;;;;AAoBA,eAAsB,cAAA,GAAiB;AACrC,EAAA,MAAM,UAAUA,oBAAA,CAAI;AAAA,IAClB,UAAA,EAAY,CAAA,QAAA,EAAWC,sBAAA,CAAM,IAAA,CAAK,cAAc,CAAC,CAAA,wBAAA,CAAA;AAAA,IACjD,OAAA,EAAS,KAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACR,EAAE,KAAA,EAAM;AAET,EAAA,MAAM,aAAA,GAAgB,IAAI,KAAA,EAAc;AACxC,EAAA,IAAI;AACF,IAAA,MAAMC,aAAA,CAAI,CAAC,MAAA,EAAQ,SAAS,CAAA,EAAG;AAAA,MAC7B,GAAA,EAAK;AAAA,QACH,WAAA,EAAa,MAAA;AAAA;AAAA;AAAA;AAAA,QAIb,GAAG,MAAA,CAAO,WAAA;AAAA,UACR,MAAA,CAAO,OAAA,CAAQ,OAAA,CAAQ,GAAG,CAAA,CAAE,GAAA;AAAA,YAAI,CAAC,CAAC,IAAA,EAAM,KAAK,MAC3C,IAAA,CAAK,UAAA,CAAW,MAAM,CAAA,GAAI,CAAC,IAAA,EAAM,KAAA,CAAS,CAAA,GAAI,CAAC,MAAM,KAAK;AAAA;AAC5D;AACF,OACF;AAAA,MACA,QAAA,EAAU,CAAA,IAAA,KAAQ,aAAA,CAAc,IAAA,CAAK,IAAI,CAAA;AAAA,MACzC,QAAA,EAAU,CAAA,IAAA,KAAQ,aAAA,CAAc,IAAA,CAAK,IAAI;AAAA,KAC1C,EAAE,WAAA,EAAY;AACf,IAAA,OAAA,CAAQ,OAAA,EAAQ;AAAA,EAClB,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,IAAA,EAAK;AACb,IAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,aAAa,CAAC,CAAA;AACjD,IAAA,MAAM,KAAA;AAAA,EACR;AACF;;;;"}
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var minimatch = require('minimatch');
4
+ var getPackages = require('@manypkg/get-packages');
5
+ var yarn = require('./yarn.cjs.js');
6
+ var cliCommon = require('@backstage/cli-common');
7
+ var errors = require('@backstage/errors');
8
+
9
+ const DEP_TYPES = [
10
+ "dependencies",
11
+ "devDependencies",
12
+ "peerDependencies",
13
+ "optionalDependencies"
14
+ ];
15
+ async function fetchPackageInfo(name) {
16
+ const yarnVersion = await yarn.detectYarnVersion();
17
+ const cmd = yarnVersion === "classic" ? ["info"] : ["npm", "info"];
18
+ try {
19
+ const output = await cliCommon.runOutput(["yarn", ...cmd, "--json", name]);
20
+ if (!output) {
21
+ throw new errors.NotFoundError(
22
+ `No package information found for package ${name}`
23
+ );
24
+ }
25
+ if (yarnVersion === "berry") {
26
+ return JSON.parse(output);
27
+ }
28
+ const info = JSON.parse(output);
29
+ if (info.type !== "inspect") {
30
+ throw new Error(`Received unknown yarn info for ${name}, ${output}`);
31
+ }
32
+ return info.data;
33
+ } catch (error) {
34
+ if (yarnVersion === "classic") {
35
+ throw error;
36
+ }
37
+ if (error instanceof Error && "stdout" in error && typeof error.stdout === "string" && error.stdout.includes("Response Code: 404")) {
38
+ throw new errors.NotFoundError(
39
+ `No package information found for package ${name}`
40
+ );
41
+ }
42
+ throw error;
43
+ }
44
+ }
45
+ async function mapDependencies(targetDir, pattern) {
46
+ const { packages, root } = await getPackages.getPackages(targetDir);
47
+ packages.push(root);
48
+ const dependencyMap = /* @__PURE__ */ new Map();
49
+ for (const pkg of packages) {
50
+ const deps = DEP_TYPES.flatMap(
51
+ (t) => Object.entries(pkg.packageJson[t] ?? {})
52
+ );
53
+ for (const [name, range] of deps) {
54
+ if (minimatch.minimatch(name, pattern)) {
55
+ dependencyMap.set(
56
+ name,
57
+ (dependencyMap.get(name) ?? []).concat({
58
+ range,
59
+ name: pkg.packageJson.name,
60
+ location: pkg.dir
61
+ })
62
+ );
63
+ }
64
+ }
65
+ }
66
+ return dependencyMap;
67
+ }
68
+
69
+ exports.fetchPackageInfo = fetchPackageInfo;
70
+ exports.mapDependencies = mapDependencies;
71
+ //# sourceMappingURL=packages.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packages.cjs.js","sources":["../../../src/lib/versioning/packages.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { minimatch } from 'minimatch';\nimport { getPackages } from '@manypkg/get-packages';\nimport { detectYarnVersion } from './yarn';\nimport { runOutput } from '@backstage/cli-common';\nimport { NotFoundError } from '@backstage/errors';\n\nconst DEP_TYPES = [\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'optionalDependencies',\n] as const;\n\n// Package data as returned by `yarn info`\nexport type YarnInfoInspectData = {\n name: string;\n 'dist-tags': Record<string, string>;\n versions: string[];\n time: { [version: string]: string };\n};\n\n// Possible `yarn info` output\ntype YarnInfo = {\n type: 'inspect';\n data: YarnInfoInspectData | { type: string; data: unknown };\n};\n\ntype PkgVersionInfo = {\n range: string;\n name: string;\n location: string;\n};\n\nexport async function fetchPackageInfo(\n name: string,\n): Promise<YarnInfoInspectData> {\n const yarnVersion = await detectYarnVersion();\n\n const cmd = yarnVersion === 'classic' ? ['info'] : ['npm', 'info'];\n try {\n const output = await runOutput(['yarn', ...cmd, '--json', name]);\n\n if (!output) {\n throw new NotFoundError(\n `No package information found for package ${name}`,\n );\n }\n\n if (yarnVersion === 'berry') {\n return JSON.parse(output) as YarnInfoInspectData;\n }\n\n const info = JSON.parse(output) as YarnInfo;\n if (info.type !== 'inspect') {\n throw new Error(`Received unknown yarn info for ${name}, ${output}`);\n }\n\n return info.data as YarnInfoInspectData;\n } catch (error) {\n if (yarnVersion === 'classic') {\n throw error;\n }\n\n if (\n error instanceof Error &&\n 'stdout' in error &&\n typeof error.stdout === 'string' &&\n error.stdout.includes('Response Code: 404')\n ) {\n throw new NotFoundError(\n `No package information found for package ${name}`,\n );\n }\n\n throw error;\n }\n}\n\n/** Map all dependencies in the repo as dependency => dependents */\nexport async function mapDependencies(\n targetDir: string,\n pattern: string,\n): Promise<Map<string, PkgVersionInfo[]>> {\n const { packages, root } = await getPackages(targetDir);\n\n // Include root package.json too\n packages.push(root);\n\n const dependencyMap = new Map<string, PkgVersionInfo[]>();\n for (const pkg of packages) {\n const deps = DEP_TYPES.flatMap(\n t => Object.entries(pkg.packageJson[t] ?? {}) as [string, string][],\n );\n\n for (const [name, range] of deps) {\n if (minimatch(name, pattern)) {\n dependencyMap.set(\n name,\n (dependencyMap.get(name) ?? []).concat({\n range,\n name: pkg.packageJson.name,\n location: pkg.dir,\n }),\n );\n }\n }\n }\n\n return dependencyMap;\n}\n"],"names":["detectYarnVersion","runOutput","NotFoundError","getPackages","minimatch"],"mappings":";;;;;;;;AAsBA,MAAM,SAAA,GAAY;AAAA,EAChB,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA;AAsBA,eAAsB,iBACpB,IAAA,EAC8B;AAC9B,EAAA,MAAM,WAAA,GAAc,MAAMA,sBAAA,EAAkB;AAE5C,EAAA,MAAM,GAAA,GAAM,gBAAgB,SAAA,GAAY,CAAC,MAAM,CAAA,GAAI,CAAC,OAAO,MAAM,CAAA;AACjE,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,MAAMC,mBAAA,CAAU,CAAC,QAAQ,GAAG,GAAA,EAAK,QAAA,EAAU,IAAI,CAAC,CAAA;AAE/D,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAM,IAAIC,oBAAA;AAAA,QACR,4CAA4C,IAAI,CAAA;AAAA,OAClD;AAAA,IACF;AAEA,IAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,MAAA,OAAO,IAAA,CAAK,MAAM,MAAM,CAAA;AAAA,IAC1B;AAEA,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA;AAC9B,IAAA,IAAI,IAAA,CAAK,SAAS,SAAA,EAAW;AAC3B,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,+BAAA,EAAkC,IAAI,CAAA,EAAA,EAAK,MAAM,CAAA,CAAE,CAAA;AAAA,IACrE;AAEA,IAAA,OAAO,IAAA,CAAK,IAAA;AAAA,EACd,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,gBAAgB,SAAA,EAAW;AAC7B,MAAA,MAAM,KAAA;AAAA,IACR;AAEA,IAAA,IACE,KAAA,YAAiB,KAAA,IACjB,QAAA,IAAY,KAAA,IACZ,OAAO,KAAA,CAAM,MAAA,KAAW,QAAA,IACxB,KAAA,CAAM,MAAA,CAAO,QAAA,CAAS,oBAAoB,CAAA,EAC1C;AACA,MAAA,MAAM,IAAIA,oBAAA;AAAA,QACR,4CAA4C,IAAI,CAAA;AAAA,OAClD;AAAA,IACF;AAEA,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAGA,eAAsB,eAAA,CACpB,WACA,OAAA,EACwC;AACxC,EAAA,MAAM,EAAE,QAAA,EAAU,IAAA,EAAK,GAAI,MAAMC,wBAAY,SAAS,CAAA;AAGtD,EAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AAElB,EAAA,MAAM,aAAA,uBAAoB,GAAA,EAA8B;AACxD,EAAA,KAAA,MAAW,OAAO,QAAA,EAAU;AAC1B,IAAA,MAAM,OAAO,SAAA,CAAU,OAAA;AAAA,MACrB,CAAA,CAAA,KAAK,OAAO,OAAA,CAAQ,GAAA,CAAI,YAAY,CAAC,CAAA,IAAK,EAAE;AAAA,KAC9C;AAEA,IAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK,IAAA,EAAM;AAChC,MAAA,IAAIC,mBAAA,CAAU,IAAA,EAAM,OAAO,CAAA,EAAG;AAC5B,QAAA,aAAA,CAAc,GAAA;AAAA,UACZ,IAAA;AAAA,UAAA,CACC,cAAc,GAAA,CAAI,IAAI,CAAA,IAAK,IAAI,MAAA,CAAO;AAAA,YACrC,KAAA;AAAA,YACA,IAAA,EAAM,IAAI,WAAA,CAAY,IAAA;AAAA,YACtB,UAAU,GAAA,CAAI;AAAA,WACf;AAAA,SACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,aAAA;AACT;;;;;"}
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var errors = require('@backstage/errors');
4
+ var cliCommon = require('@backstage/cli-common');
5
+
6
+ const versions = /* @__PURE__ */ new Map();
7
+ function detectYarnVersion(dir) {
8
+ const cwd = process.cwd();
9
+ if (versions.has(cwd)) {
10
+ return versions.get(cwd);
11
+ }
12
+ const promise = Promise.resolve().then(async () => {
13
+ try {
14
+ const stdout = await cliCommon.runOutput(["yarn", "--version"], {
15
+ cwd
16
+ });
17
+ return stdout.trim().startsWith("1.") ? "classic" : "berry";
18
+ } catch (error) {
19
+ errors.assertError(error);
20
+ throw new errors.ForwardedError("Failed to determine yarn version", error);
21
+ }
22
+ });
23
+ versions.set(cwd, promise);
24
+ return promise;
25
+ }
26
+
27
+ exports.detectYarnVersion = detectYarnVersion;
28
+ //# sourceMappingURL=yarn.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yarn.cjs.js","sources":["../../../src/lib/versioning/yarn.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assertError, ForwardedError } from '@backstage/errors';\nimport { runOutput } from '@backstage/cli-common';\n\nconst versions = new Map<string, Promise<'classic' | 'berry'>>();\n\nexport function detectYarnVersion(dir?: string): Promise<'classic' | 'berry'> {\n const cwd = dir ?? process.cwd();\n if (versions.has(cwd)) {\n return versions.get(cwd)!;\n }\n\n const promise = Promise.resolve().then(async () => {\n try {\n const stdout = await runOutput(['yarn', '--version'], {\n cwd,\n });\n return stdout.trim().startsWith('1.') ? 'classic' : 'berry';\n } catch (error) {\n assertError(error);\n throw new ForwardedError('Failed to determine yarn version', error);\n }\n });\n\n versions.set(cwd, promise);\n return promise;\n}\n"],"names":["runOutput","assertError","ForwardedError"],"mappings":";;;;;AAmBA,MAAM,QAAA,uBAAe,GAAA,EAA0C;AAExD,SAAS,kBAAkB,GAAA,EAA4C;AAC5E,EAAA,MAAM,GAAA,GAAa,OAAA,CAAQ,GAAA,EAAI;AAC/B,EAAA,IAAI,QAAA,CAAS,GAAA,CAAI,GAAG,CAAA,EAAG;AACrB,IAAA,OAAO,QAAA,CAAS,IAAI,GAAG,CAAA;AAAA,EACzB;AAEA,EAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,OAAA,EAAQ,CAAE,KAAK,YAAY;AACjD,IAAA,IAAI;AACF,MAAA,MAAM,SAAS,MAAMA,mBAAA,CAAU,CAAC,MAAA,EAAQ,WAAW,CAAA,EAAG;AAAA,QACpD;AAAA,OACD,CAAA;AACD,MAAA,OAAO,OAAO,IAAA,EAAK,CAAE,UAAA,CAAW,IAAI,IAAI,SAAA,GAAY,OAAA;AAAA,IACtD,SAAS,KAAA,EAAO;AACd,MAAAC,kBAAA,CAAY,KAAK,CAAA;AACjB,MAAA,MAAM,IAAIC,qBAAA,CAAe,kCAAA,EAAoC,KAAK,CAAA;AAAA,IACpE;AAAA,EACF,CAAC,CAAA;AAED,EAAA,QAAA,CAAS,GAAA,CAAI,KAAK,OAAO,CAAA;AACzB,EAAA,OAAO,OAAA;AACT;;;;"}
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var name = "@backstage/cli-module-migrate";
6
+ var version = "0.0.0-nightly-20260317031259";
7
+ var description = "CLI module for Backstage CLI";
8
+ var backstage = {
9
+ role: "cli-module"
10
+ };
11
+ var publishConfig = {
12
+ access: "public",
13
+ main: "dist/index.cjs.js",
14
+ types: "dist/index.d.ts"
15
+ };
16
+ var homepage = "https://backstage.io";
17
+ var repository = {
18
+ type: "git",
19
+ url: "https://github.com/backstage/backstage",
20
+ directory: "packages/cli-module-migrate"
21
+ };
22
+ var license = "Apache-2.0";
23
+ var main = "src/index.ts";
24
+ var types = "src/index.ts";
25
+ var files = [
26
+ "dist",
27
+ "bin"
28
+ ];
29
+ var scripts = {
30
+ build: "backstage-cli package build",
31
+ clean: "backstage-cli package clean",
32
+ lint: "backstage-cli package lint",
33
+ prepack: "backstage-cli package prepack",
34
+ postpack: "backstage-cli package postpack",
35
+ test: "backstage-cli package test"
36
+ };
37
+ var dependencies = {
38
+ "@backstage/cli-common": "workspace:*",
39
+ "@backstage/cli-node": "workspace:*",
40
+ "@backstage/errors": "workspace:*",
41
+ "@backstage/release-manifests": "workspace:*",
42
+ "@manypkg/get-packages": "^1.1.3",
43
+ chalk: "^4.0.0",
44
+ cleye: "^2.3.0",
45
+ "fs-extra": "^11.2.0",
46
+ minimatch: "^10.2.1",
47
+ ora: "^5.3.0",
48
+ "replace-in-file": "^7.1.0",
49
+ semver: "^7.5.3"
50
+ };
51
+ var devDependencies = {
52
+ "@backstage/backend-test-utils": "workspace:*",
53
+ "@backstage/cli": "workspace:*",
54
+ "@backstage/test-utils": "workspace:*",
55
+ "@types/fs-extra": "^11.0.0",
56
+ "@types/semver": "^7",
57
+ msw: "^1.0.0"
58
+ };
59
+ var bin = "bin/backstage-cli-module-migrate";
60
+ var packageJson = {
61
+ name: name,
62
+ version: version,
63
+ description: description,
64
+ backstage: backstage,
65
+ publishConfig: publishConfig,
66
+ homepage: homepage,
67
+ repository: repository,
68
+ license: license,
69
+ main: main,
70
+ types: types,
71
+ files: files,
72
+ scripts: scripts,
73
+ dependencies: dependencies,
74
+ devDependencies: devDependencies,
75
+ bin: bin
76
+ };
77
+
78
+ exports.backstage = backstage;
79
+ exports.bin = bin;
80
+ exports.default = packageJson;
81
+ exports.dependencies = dependencies;
82
+ exports.description = description;
83
+ exports.devDependencies = devDependencies;
84
+ exports.files = files;
85
+ exports.homepage = homepage;
86
+ exports.license = license;
87
+ exports.main = main;
88
+ exports.name = name;
89
+ exports.publishConfig = publishConfig;
90
+ exports.repository = repository;
91
+ exports.scripts = scripts;
92
+ exports.types = types;
93
+ exports.version = version;
94
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@backstage/cli-module-migrate",
3
+ "version": "0.0.0-nightly-20260317031259",
4
+ "description": "CLI module for Backstage CLI",
5
+ "backstage": {
6
+ "role": "cli-module"
7
+ },
8
+ "publishConfig": {
9
+ "access": "public",
10
+ "main": "dist/index.cjs.js",
11
+ "types": "dist/index.d.ts"
12
+ },
13
+ "homepage": "https://backstage.io",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/backstage/backstage",
17
+ "directory": "packages/cli-module-migrate"
18
+ },
19
+ "license": "Apache-2.0",
20
+ "main": "dist/index.cjs.js",
21
+ "types": "dist/index.d.ts",
22
+ "files": [
23
+ "dist",
24
+ "bin"
25
+ ],
26
+ "scripts": {
27
+ "build": "backstage-cli package build",
28
+ "clean": "backstage-cli package clean",
29
+ "lint": "backstage-cli package lint",
30
+ "prepack": "backstage-cli package prepack",
31
+ "postpack": "backstage-cli package postpack",
32
+ "test": "backstage-cli package test"
33
+ },
34
+ "dependencies": {
35
+ "@backstage/cli-common": "0.0.0-nightly-20260317031259",
36
+ "@backstage/cli-node": "0.0.0-nightly-20260317031259",
37
+ "@backstage/errors": "1.2.7",
38
+ "@backstage/release-manifests": "0.0.13",
39
+ "@manypkg/get-packages": "^1.1.3",
40
+ "chalk": "^4.0.0",
41
+ "cleye": "^2.3.0",
42
+ "fs-extra": "^11.2.0",
43
+ "minimatch": "^10.2.1",
44
+ "ora": "^5.3.0",
45
+ "replace-in-file": "^7.1.0",
46
+ "semver": "^7.5.3"
47
+ },
48
+ "devDependencies": {
49
+ "@backstage/backend-test-utils": "0.0.0-nightly-20260317031259",
50
+ "@backstage/cli": "0.0.0-nightly-20260317031259",
51
+ "@backstage/test-utils": "0.0.0-nightly-20260317031259",
52
+ "@types/fs-extra": "^11.0.0",
53
+ "@types/semver": "^7",
54
+ "msw": "^1.0.0"
55
+ },
56
+ "bin": "bin/backstage-cli-module-migrate",
57
+ "typesVersions": {
58
+ "*": {
59
+ "package.json": [
60
+ "package.json"
61
+ ]
62
+ }
63
+ }
64
+ }