@backstage/cli-module-migrate 0.1.2-next.0 → 0.1.3
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.
- package/CHANGELOG.md +18 -0
- package/bin/backstage-cli-module-migrate +2 -2
- package/dist/commands/packageExports.cjs.js +1 -1
- package/dist/commands/packageExports.cjs.js.map +1 -1
- package/dist/commands/packageLintConfigs.cjs.js +1 -1
- package/dist/commands/packageLintConfigs.cjs.js.map +1 -1
- package/dist/commands/packageRole.cjs.js +1 -1
- package/dist/commands/packageRole.cjs.js.map +1 -1
- package/dist/commands/packageScripts.cjs.js +1 -1
- package/dist/commands/packageScripts.cjs.js.map +1 -1
- package/dist/commands/reactRouterDeps.cjs.js +1 -1
- package/dist/commands/reactRouterDeps.cjs.js.map +1 -1
- package/dist/commands/versions/bump.cjs.js +1 -1
- package/dist/commands/versions/bump.cjs.js.map +1 -1
- package/dist/commands/versions/migrate.cjs.js +1 -1
- package/dist/commands/versions/migrate.cjs.js.map +1 -1
- package/dist/package.json.cjs.js +5 -5
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @backstage/cli-module-migrate
|
|
2
2
|
|
|
3
|
+
## 0.1.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 696c78c: The `--help` output for commands now shows a generated usage line that lists the available flags and any positional arguments the command accepts.
|
|
8
|
+
- 2e6ffe6: Updated the standalone CLI executable to use the new CLI module runner.
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
- @backstage/cli-node@0.3.3
|
|
11
|
+
|
|
12
|
+
## 0.1.2
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
- @backstage/errors@1.3.1
|
|
18
|
+
- @backstage/cli-node@0.3.2
|
|
19
|
+
- @backstage/cli-common@0.2.2
|
|
20
|
+
|
|
3
21
|
## 0.1.2-next.0
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -26,7 +26,7 @@ if (isLocal) {
|
|
|
26
26
|
require('@backstage/cli-node/config/nodeTransform.cjs');
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const {
|
|
29
|
+
const { runCli } = require('@backstage/cli-node');
|
|
30
30
|
const cliModule = require(isLocal ? '../src/index' : '..').default;
|
|
31
31
|
const pkg = require('../package.json');
|
|
32
|
-
|
|
32
|
+
runCli({ modules: [cliModule], name: pkg.name, version: pkg.version });
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var cleye = require('cleye');
|
|
6
6
|
|
|
7
7
|
var packageExports = async ({ args, info }) => {
|
|
8
|
-
cleye.cli({
|
|
8
|
+
cleye.cli({ name: info.usage, booleanFlagNegation: true }, void 0, args);
|
|
9
9
|
throw new Error(
|
|
10
10
|
"The `migrate package-exports` command has been removed, use `repo fix` instead."
|
|
11
11
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageExports.cjs.js","sources":["../../src/commands/packageExports.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 { cli } from 'cleye';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({
|
|
1
|
+
{"version":3,"file":"packageExports.cjs.js","sources":["../../src/commands/packageExports.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 { cli } from 'cleye';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({ name: info.usage, booleanFlagNegation: true }, undefined, args);\n throw new Error(\n 'The `migrate package-exports` command has been removed, use `repo fix` instead.',\n );\n};\n"],"names":["cli"],"mappings":";;;;;;AAmBA,qBAAe,OAAO,EAAE,IAAA,EAAM,IAAA,EAAK,KAAyB;AAC1D,EAAAA,SAAA,CAAI,EAAE,MAAM,IAAA,CAAK,KAAA,EAAO,qBAAqB,IAAA,EAAK,EAAG,QAAW,IAAI,CAAA;AACpE,EAAA,MAAM,IAAI,KAAA;AAAA,IACR;AAAA,GACF;AACF,CAAA;;;;"}
|
|
@@ -14,7 +14,7 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
|
14
14
|
|
|
15
15
|
const PREFIX = `module.exports = require('@backstage/cli/config/eslint-factory')`;
|
|
16
16
|
var packageLintConfigs = async ({ args, info }) => {
|
|
17
|
-
cleye.cli({
|
|
17
|
+
cleye.cli({ name: info.usage, booleanFlagNegation: true }, void 0, args);
|
|
18
18
|
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
19
19
|
const oldConfigs = [
|
|
20
20
|
require.resolve("@backstage/cli/config/eslint.js"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageLintConfigs.cjs.js","sources":["../../src/commands/packageLintConfigs.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 { cli } from 'cleye';\nimport fs from 'fs-extra';\nimport { resolve as resolvePath } from 'node:path';\nimport { PackageGraph } from '@backstage/cli-node';\nimport { runOutput } from '@backstage/cli-common';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nconst PREFIX = `module.exports = require('@backstage/cli/config/eslint-factory')`;\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({
|
|
1
|
+
{"version":3,"file":"packageLintConfigs.cjs.js","sources":["../../src/commands/packageLintConfigs.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 { cli } from 'cleye';\nimport fs from 'fs-extra';\nimport { resolve as resolvePath } from 'node:path';\nimport { PackageGraph } from '@backstage/cli-node';\nimport { runOutput } from '@backstage/cli-common';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nconst PREFIX = `module.exports = require('@backstage/cli/config/eslint-factory')`;\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({ name: info.usage, booleanFlagNegation: true }, undefined, args);\n const packages = await PackageGraph.listTargetPackages();\n\n const oldConfigs = [\n require.resolve('@backstage/cli/config/eslint.js'),\n require.resolve('@backstage/cli/config/eslint.backend.js'),\n ];\n\n const configPaths = new Array<string>();\n await Promise.all(\n packages.map(async ({ dir, packageJson }) => {\n const configPath = resolvePath(dir, '.eslintrc.js');\n if (!(await fs.pathExists(configPath))) {\n console.log(`Skipping ${packageJson.name}, missing .eslintrc.js`);\n return;\n }\n let existingConfig: Record<string, unknown>;\n try {\n existingConfig = require(configPath);\n } catch (error) {\n console.log(\n `Skipping ${packageJson.name}, failed to load .eslintrc.js, ${error}`,\n );\n return;\n }\n\n // Only transform configs that extend the old config files, and\n // we remove that entry from the extends array.\n const extendsArray = (existingConfig.extends as string[]) ?? [];\n const extendIndex = extendsArray.findIndex(p => oldConfigs.includes(p));\n if (extendIndex === -1) {\n console.log(\n `Skipping ${packageJson.name}, .eslintrc.js does not extend the legacy config`,\n );\n return;\n }\n extendsArray.splice(extendIndex, 1);\n if (extendsArray.length === 0) {\n delete existingConfig.extends;\n }\n\n if (Object.keys(existingConfig).length > 0) {\n await fs.writeFile(\n configPath,\n `${PREFIX}(__dirname, ${JSON.stringify(existingConfig, null, 2)});\\n`,\n );\n } else {\n await fs.writeFile(configPath, `${PREFIX}(__dirname);\\n`);\n }\n configPaths.push(configPath);\n }),\n );\n\n // If prettier is present, then we run that too\n let hasPrettier = false;\n try {\n require.resolve('prettier');\n hasPrettier = true;\n } catch {\n /* ignore */\n }\n\n if (hasPrettier) {\n await runOutput(['prettier', '--write', ...configPaths]);\n }\n};\n"],"names":["cli","PackageGraph","resolvePath","fs","runOutput"],"mappings":";;;;;;;;;;;;;;AAuBA,MAAM,MAAA,GAAS,CAAA,gEAAA,CAAA;AAEf,yBAAe,OAAO,EAAE,IAAA,EAAM,IAAA,EAAK,KAAyB;AAC1D,EAAAA,SAAA,CAAI,EAAE,MAAM,IAAA,CAAK,KAAA,EAAO,qBAAqB,IAAA,EAAK,EAAG,QAAW,IAAI,CAAA;AACpE,EAAA,MAAM,QAAA,GAAW,MAAMC,oBAAA,CAAa,kBAAA,EAAmB;AAEvD,EAAA,MAAM,UAAA,GAAa;AAAA,IACjB,OAAA,CAAQ,QAAQ,iCAAiC,CAAA;AAAA,IACjD,OAAA,CAAQ,QAAQ,yCAAyC;AAAA,GAC3D;AAEA,EAAA,MAAM,WAAA,GAAc,IAAI,KAAA,EAAc;AACtC,EAAA,MAAM,OAAA,CAAQ,GAAA;AAAA,IACZ,SAAS,GAAA,CAAI,OAAO,EAAE,GAAA,EAAK,aAAY,KAAM;AAC3C,MAAA,MAAM,UAAA,GAAaC,iBAAA,CAAY,GAAA,EAAK,cAAc,CAAA;AAClD,MAAA,IAAI,CAAE,MAAMC,mBAAA,CAAG,UAAA,CAAW,UAAU,CAAA,EAAI;AACtC,QAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAY,WAAA,CAAY,IAAI,CAAA,sBAAA,CAAwB,CAAA;AAChE,QAAA;AAAA,MACF;AACA,MAAA,IAAI,cAAA;AACJ,MAAA,IAAI;AACF,QAAA,cAAA,GAAiB,QAAQ,UAAU,CAAA;AAAA,MACrC,SAAS,KAAA,EAAO;AACd,QAAA,OAAA,CAAQ,GAAA;AAAA,UACN,CAAA,SAAA,EAAY,WAAA,CAAY,IAAI,CAAA,+BAAA,EAAkC,KAAK,CAAA;AAAA,SACrE;AACA,QAAA;AAAA,MACF;AAIA,MAAA,MAAM,YAAA,GAAgB,cAAA,CAAe,OAAA,IAAwB,EAAC;AAC9D,MAAA,MAAM,cAAc,YAAA,CAAa,SAAA,CAAU,OAAK,UAAA,CAAW,QAAA,CAAS,CAAC,CAAC,CAAA;AACtE,MAAA,IAAI,gBAAgB,EAAA,EAAI;AACtB,QAAA,OAAA,CAAQ,GAAA;AAAA,UACN,CAAA,SAAA,EAAY,YAAY,IAAI,CAAA,gDAAA;AAAA,SAC9B;AACA,QAAA;AAAA,MACF;AACA,MAAA,YAAA,CAAa,MAAA,CAAO,aAAa,CAAC,CAAA;AAClC,MAAA,IAAI,YAAA,CAAa,WAAW,CAAA,EAAG;AAC7B,QAAA,OAAO,cAAA,CAAe,OAAA;AAAA,MACxB;AAEA,MAAA,IAAI,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA,CAAE,SAAS,CAAA,EAAG;AAC1C,QAAA,MAAMA,mBAAA,CAAG,SAAA;AAAA,UACP,UAAA;AAAA,UACA,CAAA,EAAG,MAAM,CAAA,YAAA,EAAe,IAAA,CAAK,UAAU,cAAA,EAAgB,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA;AAAA,SACjE;AAAA,MACF,CAAA,MAAO;AACL,QAAA,MAAMA,mBAAA,CAAG,SAAA,CAAU,UAAA,EAAY,CAAA,EAAG,MAAM,CAAA;AAAA,CAAgB,CAAA;AAAA,MAC1D;AACA,MAAA,WAAA,CAAY,KAAK,UAAU,CAAA;AAAA,IAC7B,CAAC;AAAA,GACH;AAGA,EAAA,IAAI,WAAA,GAAc,KAAA;AAClB,EAAA,IAAI;AACF,IAAA,OAAA,CAAQ,QAAQ,UAAU,CAAA;AAC1B,IAAA,WAAA,GAAc,IAAA;AAAA,EAChB,CAAA,CAAA,MAAQ;AAAA,EAER;AAEA,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,MAAMC,oBAAU,CAAC,UAAA,EAAY,SAAA,EAAW,GAAG,WAAW,CAAC,CAAA;AAAA,EACzD;AACF,CAAA;;;;"}
|
|
@@ -14,7 +14,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
14
14
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
15
15
|
|
|
16
16
|
var packageRole = async ({ args, info }) => {
|
|
17
|
-
cleye.cli({
|
|
17
|
+
cleye.cli({ name: info.usage, booleanFlagNegation: true }, void 0, args);
|
|
18
18
|
const { packages } = await getPackages.getPackages(cliCommon.targetPaths.dir);
|
|
19
19
|
await Promise.all(
|
|
20
20
|
packages.map(async ({ dir, packageJson: pkg }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageRole.cjs.js","sources":["../../src/commands/packageRole.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 { cli } from 'cleye';\nimport fs from 'fs-extra';\nimport { resolve as resolvePath } from 'node:path';\nimport { getPackages } from '@manypkg/get-packages';\nimport { PackageRoles } from '@backstage/cli-node';\nimport { targetPaths } from '@backstage/cli-common';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({
|
|
1
|
+
{"version":3,"file":"packageRole.cjs.js","sources":["../../src/commands/packageRole.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 { cli } from 'cleye';\nimport fs from 'fs-extra';\nimport { resolve as resolvePath } from 'node:path';\nimport { getPackages } from '@manypkg/get-packages';\nimport { PackageRoles } from '@backstage/cli-node';\nimport { targetPaths } from '@backstage/cli-common';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({ name: info.usage, booleanFlagNegation: true }, undefined, args);\n const { packages } = await getPackages(targetPaths.dir);\n\n await Promise.all(\n packages.map(async ({ dir, packageJson: pkg }) => {\n const { name } = pkg;\n const existingRole = PackageRoles.getRoleFromPackage(pkg);\n if (existingRole) {\n return;\n }\n\n const detectedRole = PackageRoles.detectRoleFromPackage(pkg);\n if (!detectedRole) {\n console.error(`No role detected for package ${name}`);\n return;\n }\n\n console.log(`Detected package role of ${name} as ${detectedRole}`);\n\n let newPkg = pkg as any;\n\n const pkgKeys = Object.keys(pkg);\n if (pkgKeys.includes('backstage')) {\n newPkg.backstage = {\n ...newPkg.backstage,\n role: detectedRole,\n };\n } else {\n // We insert the backstage field after one of these fields, otherwise at the end\n const index =\n Math.max(\n pkgKeys.indexOf('version'),\n pkgKeys.indexOf('private'),\n pkgKeys.indexOf('publishConfig'),\n ) + 1 || pkgKeys.length;\n\n const pkgEntries = Object.entries(pkg);\n pkgEntries.splice(index, 0, ['backstage', { role: detectedRole }]);\n newPkg = Object.fromEntries(pkgEntries);\n }\n\n await fs.writeJson(resolvePath(dir, 'package.json'), newPkg, {\n spaces: 2,\n });\n }),\n );\n};\n"],"names":["cli","getPackages","targetPaths","PackageRoles","fs","resolvePath"],"mappings":";;;;;;;;;;;;;;;AAwBA,kBAAe,OAAO,EAAE,IAAA,EAAM,IAAA,EAAK,KAAyB;AAC1D,EAAAA,SAAA,CAAI,EAAE,MAAM,IAAA,CAAK,KAAA,EAAO,qBAAqB,IAAA,EAAK,EAAG,QAAW,IAAI,CAAA;AACpE,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,MAAMC,uBAAA,CAAYC,sBAAY,GAAG,CAAA;AAEtD,EAAA,MAAM,OAAA,CAAQ,GAAA;AAAA,IACZ,SAAS,GAAA,CAAI,OAAO,EAAE,GAAA,EAAK,WAAA,EAAa,KAAI,KAAM;AAChD,MAAA,MAAM,EAAE,MAAK,GAAI,GAAA;AACjB,MAAA,MAAM,YAAA,GAAeC,oBAAA,CAAa,kBAAA,CAAmB,GAAG,CAAA;AACxD,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,YAAA,GAAeA,oBAAA,CAAa,qBAAA,CAAsB,GAAG,CAAA;AAC3D,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,6BAAA,EAAgC,IAAI,CAAA,CAAE,CAAA;AACpD,QAAA;AAAA,MACF;AAEA,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,yBAAA,EAA4B,IAAI,CAAA,IAAA,EAAO,YAAY,CAAA,CAAE,CAAA;AAEjE,MAAA,IAAI,MAAA,GAAS,GAAA;AAEb,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AAC/B,MAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,EAAG;AACjC,QAAA,MAAA,CAAO,SAAA,GAAY;AAAA,UACjB,GAAG,MAAA,CAAO,SAAA;AAAA,UACV,IAAA,EAAM;AAAA,SACR;AAAA,MACF,CAAA,MAAO;AAEL,QAAA,MAAM,QACJ,IAAA,CAAK,GAAA;AAAA,UACH,OAAA,CAAQ,QAAQ,SAAS,CAAA;AAAA,UACzB,OAAA,CAAQ,QAAQ,SAAS,CAAA;AAAA,UACzB,OAAA,CAAQ,QAAQ,eAAe;AAAA,SACjC,GAAI,KAAK,OAAA,CAAQ,MAAA;AAEnB,QAAA,MAAM,UAAA,GAAa,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA;AACrC,QAAA,UAAA,CAAW,MAAA,CAAO,OAAO,CAAA,EAAG,CAAC,aAAa,EAAE,IAAA,EAAM,YAAA,EAAc,CAAC,CAAA;AACjE,QAAA,MAAA,GAAS,MAAA,CAAO,YAAY,UAAU,CAAA;AAAA,MACxC;AAEA,MAAA,MAAMC,oBAAG,SAAA,CAAUC,iBAAA,CAAY,GAAA,EAAK,cAAc,GAAG,MAAA,EAAQ;AAAA,QAC3D,MAAA,EAAQ;AAAA,OACT,CAAA;AAAA,IACH,CAAC;AAAA,GACH;AACF,CAAA;;;;"}
|
|
@@ -14,7 +14,7 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
|
14
14
|
const configArgPattern = /--config[=\s][^\s$]+/;
|
|
15
15
|
const noStartRoles = ["cli", "cli-module", "common-library"];
|
|
16
16
|
var packageScripts = async ({ args, info }) => {
|
|
17
|
-
cleye.cli({
|
|
17
|
+
cleye.cli({ name: info.usage, booleanFlagNegation: true }, void 0, args);
|
|
18
18
|
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
19
19
|
await Promise.all(
|
|
20
20
|
packages.map(async ({ dir, packageJson }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageScripts.cjs.js","sources":["../../src/commands/packageScripts.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 { cli } from 'cleye';\nimport fs from 'fs-extra';\nimport { resolve as resolvePath } from 'node:path';\nimport { PackageGraph, PackageRoles, PackageRole } from '@backstage/cli-node';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nconst configArgPattern = /--config[=\\s][^\\s$]+/;\n\nconst noStartRoles: PackageRole[] = ['cli', 'cli-module', 'common-library'];\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({
|
|
1
|
+
{"version":3,"file":"packageScripts.cjs.js","sources":["../../src/commands/packageScripts.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 { cli } from 'cleye';\nimport fs from 'fs-extra';\nimport { resolve as resolvePath } from 'node:path';\nimport { PackageGraph, PackageRoles, PackageRole } from '@backstage/cli-node';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nconst configArgPattern = /--config[=\\s][^\\s$]+/;\n\nconst noStartRoles: PackageRole[] = ['cli', 'cli-module', 'common-library'];\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({ name: info.usage, booleanFlagNegation: true }, undefined, args);\n const packages = await PackageGraph.listTargetPackages();\n\n await Promise.all(\n packages.map(async ({ dir, packageJson }) => {\n const role = PackageRoles.getRoleFromPackage(packageJson);\n if (!role) {\n return;\n }\n\n const roleInfo = PackageRoles.getRoleInfo(role);\n const hasStart = !noStartRoles.includes(role);\n const needsPack = !(roleInfo.output.includes('bundle') || role === 'cli');\n const scripts = packageJson.scripts ?? {};\n\n const startCmd = ['start'];\n if (scripts.start?.includes('--check')) {\n startCmd.push('--check');\n }\n if (scripts.start?.includes('--config')) {\n startCmd.push(...(scripts.start.match(configArgPattern) ?? []));\n }\n\n const buildCmd = ['build'];\n if (scripts.build?.includes('--minify')) {\n buildCmd.push('--minify');\n }\n if (scripts.build?.includes('--config')) {\n buildCmd.push(...(scripts.build.match(configArgPattern) ?? []));\n }\n\n // For test scripts we keep all existing flags except for --passWithNoTests, since that's now default\n const testCmd = ['test'];\n if (scripts.test?.startsWith('backstage-cli test')) {\n const testArgs = scripts.test\n .slice('backstage-cli test'.length)\n .split(' ')\n .filter(Boolean);\n if (testArgs.includes('--passWithNoTests')) {\n testArgs.splice(testArgs.indexOf('--passWithNoTests'), 1);\n }\n testCmd.push(...testArgs);\n }\n\n const expectedScripts = {\n ...(hasStart && {\n start: `backstage-cli package ${startCmd.join(' ')}`,\n }),\n build: `backstage-cli package ${buildCmd.join(' ')}`,\n lint: 'backstage-cli package lint',\n test: `backstage-cli package ${testCmd.join(' ')}`,\n clean: 'backstage-cli package clean',\n ...(needsPack && {\n postpack: 'backstage-cli package postpack',\n prepack: 'backstage-cli package prepack',\n }),\n };\n\n let changed = false;\n const currentScripts: Record<string, string | undefined> =\n (packageJson.scripts = packageJson.scripts || {});\n\n for (const [name, value] of Object.entries(expectedScripts)) {\n const currentScript = currentScripts[name];\n\n const isMissing = !currentScript;\n const isDifferent = currentScript !== value;\n const isBackstageScript = currentScript?.includes('backstage-cli');\n if (isMissing || (isDifferent && isBackstageScript)) {\n changed = true;\n currentScripts[name] = value;\n }\n }\n\n if (changed) {\n console.log(`Updating scripts for ${packageJson.name}`);\n await fs.writeJson(resolvePath(dir, 'package.json'), packageJson, {\n spaces: 2,\n });\n }\n }),\n );\n};\n"],"names":["cli","PackageGraph","PackageRoles","fs","resolvePath"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
|
14
14
|
const REACT_ROUTER_DEPS = ["react-router", "react-router-dom"];
|
|
15
15
|
const REACT_ROUTER_RANGE = "6.0.0-beta.0 || ^6.3.0";
|
|
16
16
|
var reactRouterDeps = async ({ args, info }) => {
|
|
17
|
-
cleye.cli({
|
|
17
|
+
cleye.cli({ name: info.usage, booleanFlagNegation: true }, void 0, args);
|
|
18
18
|
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
19
19
|
await Promise.all(
|
|
20
20
|
packages.map(async ({ dir, packageJson }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactRouterDeps.cjs.js","sources":["../../src/commands/reactRouterDeps.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 { cli } from 'cleye';\nimport fs from 'fs-extra';\nimport { resolve as resolvePath } from 'node:path';\nimport { PackageGraph, PackageRoles } from '@backstage/cli-node';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nconst REACT_ROUTER_DEPS = ['react-router', 'react-router-dom'];\nconst REACT_ROUTER_RANGE = '6.0.0-beta.0 || ^6.3.0';\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({
|
|
1
|
+
{"version":3,"file":"reactRouterDeps.cjs.js","sources":["../../src/commands/reactRouterDeps.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 { cli } from 'cleye';\nimport fs from 'fs-extra';\nimport { resolve as resolvePath } from 'node:path';\nimport { PackageGraph, PackageRoles } from '@backstage/cli-node';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nconst REACT_ROUTER_DEPS = ['react-router', 'react-router-dom'];\nconst REACT_ROUTER_RANGE = '6.0.0-beta.0 || ^6.3.0';\n\nexport default async ({ args, info }: CliCommandContext) => {\n cli({ name: info.usage, booleanFlagNegation: true }, undefined, args);\n const packages = await PackageGraph.listTargetPackages();\n\n await Promise.all(\n packages.map(async ({ dir, packageJson }) => {\n const role = PackageRoles.getRoleFromPackage(packageJson);\n if (role === 'frontend') {\n console.log(`Skipping ${packageJson.name}`);\n return;\n }\n\n let changed = false;\n for (const depName of ['dependencies', 'devDependencies'] as const) {\n const depsCollection = packageJson[depName];\n if (depsCollection) {\n for (const key of Object.keys(depsCollection)) {\n if (REACT_ROUTER_DEPS.includes(key)) {\n delete depsCollection[key];\n const peerDeps = (packageJson.peerDependencies =\n packageJson.peerDependencies ?? {});\n peerDeps[key] = REACT_ROUTER_RANGE;\n changed = true;\n }\n }\n }\n }\n\n if (changed) {\n console.log(`Updating dependencies for ${packageJson.name}`);\n await fs.writeJson(resolvePath(dir, 'package.json'), packageJson, {\n spaces: 2,\n });\n }\n }),\n );\n};\n"],"names":["cli","PackageGraph","PackageRoles","fs","resolvePath"],"mappings":";;;;;;;;;;;;;AAsBA,MAAM,iBAAA,GAAoB,CAAC,cAAA,EAAgB,kBAAkB,CAAA;AAC7D,MAAM,kBAAA,GAAqB,wBAAA;AAE3B,sBAAe,OAAO,EAAE,IAAA,EAAM,IAAA,EAAK,KAAyB;AAC1D,EAAAA,SAAA,CAAI,EAAE,MAAM,IAAA,CAAK,KAAA,EAAO,qBAAqB,IAAA,EAAK,EAAG,QAAW,IAAI,CAAA;AACpE,EAAA,MAAM,QAAA,GAAW,MAAMC,oBAAA,CAAa,kBAAA,EAAmB;AAEvD,EAAA,MAAM,OAAA,CAAQ,GAAA;AAAA,IACZ,SAAS,GAAA,CAAI,OAAO,EAAE,GAAA,EAAK,aAAY,KAAM;AAC3C,MAAA,MAAM,IAAA,GAAOC,oBAAA,CAAa,kBAAA,CAAmB,WAAW,CAAA;AACxD,MAAA,IAAI,SAAS,UAAA,EAAY;AACvB,QAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAY,WAAA,CAAY,IAAI,CAAA,CAAE,CAAA;AAC1C,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,OAAA,GAAU,KAAA;AACd,MAAA,KAAA,MAAW,OAAA,IAAW,CAAC,cAAA,EAAgB,iBAAiB,CAAA,EAAY;AAClE,QAAA,MAAM,cAAA,GAAiB,YAAY,OAAO,CAAA;AAC1C,QAAA,IAAI,cAAA,EAAgB;AAClB,UAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA,EAAG;AAC7C,YAAA,IAAI,iBAAA,CAAkB,QAAA,CAAS,GAAG,CAAA,EAAG;AACnC,cAAA,OAAO,eAAe,GAAG,CAAA;AACzB,cAAA,MAAM,QAAA,GAAY,WAAA,CAAY,gBAAA,GAC5B,WAAA,CAAY,oBAAoB,EAAC;AACnC,cAAA,QAAA,CAAS,GAAG,CAAA,GAAI,kBAAA;AAChB,cAAA,OAAA,GAAU,IAAA;AAAA,YACZ;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,0BAAA,EAA6B,WAAA,CAAY,IAAI,CAAA,CAAE,CAAA;AAC3D,QAAA,MAAMC,oBAAG,SAAA,CAAUC,iBAAA,CAAY,GAAA,EAAK,cAAc,GAAG,WAAA,EAAa;AAAA,UAChE,MAAA,EAAQ;AAAA,SACT,CAAA;AAAA,MACH;AAAA,IACF,CAAC;AAAA,GACH;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bump.cjs.js","sources":["../../../src/commands/versions/bump.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 */\nimport {\n BACKSTAGE_JSON,\n bootstrapEnvProxyAgents,\n targetPaths,\n} from '@backstage/cli-common';\n\nbootstrapEnvProxyAgents();\n\nimport { env } from 'node:process';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\nimport { minimatch } from 'minimatch';\nimport semver from 'semver';\nimport { cli } from 'cleye';\nimport { isError, NotFoundError } from '@backstage/errors';\nimport { resolve as resolvePath } from 'node:path';\n\nimport {\n hasBackstageYarnPlugin,\n Lockfile,\n runConcurrentTasks,\n} from '@backstage/cli-node';\nimport {\n fetchPackageInfo,\n mapDependencies,\n YarnInfoInspectData,\n} from '../../lib/versioning/packages';\nimport {\n getManifestByReleaseLine,\n getManifestByVersion,\n ReleaseManifest,\n} from '@backstage/release-manifests';\nimport { migrateMovedPackages } from './migrate';\nimport { runYarnInstall } from '../../lib/utils';\nimport { run } from '@backstage/cli-common';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nconst DEP_TYPES = [\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'optionalDependencies',\n];\n\nconst DEFAULT_PATTERN_GLOB = '@backstage/*';\n\ntype PkgVersionInfo = {\n range: string;\n target: string;\n name: string;\n location: string;\n};\n\nfunction extendsDefaultPattern(pattern: string): boolean {\n if (!pattern.endsWith('/*')) {\n return false;\n }\n\n return minimatch('@backstage/', pattern.slice(0, -1));\n}\n\nexport default async ({ args, info }: CliCommandContext) => {\n const {\n flags: { pattern: patternFlag, release, skipInstall, skipMigrate },\n } = cli(\n {\n help: info,\n booleanFlagNegation: true,\n flags: {\n pattern: {\n type: String,\n description: 'Override glob for matching packages to upgrade',\n },\n release: {\n type: String,\n description: 'Bump to a specific Backstage release line or version',\n default: 'main',\n },\n skipInstall: {\n type: Boolean,\n description: 'Skips yarn install step',\n },\n skipMigrate: {\n type: Boolean,\n description: 'Skips migration of any moved packages',\n },\n },\n },\n undefined,\n args,\n );\n\n const lockfilePath = targetPaths.resolveRoot('yarn.lock');\n const lockfile = await Lockfile.load(lockfilePath);\n const yarnPluginEnabled = await hasBackstageYarnPlugin();\n\n let pattern = patternFlag;\n\n if (!pattern) {\n console.log(`Using default pattern glob ${DEFAULT_PATTERN_GLOB}`);\n pattern = DEFAULT_PATTERN_GLOB;\n } else if (pattern === '*') {\n throw new Error(`Rejected pattern '*', please use a more specific pattern`);\n } else {\n console.log(`Using custom pattern glob ${pattern}`);\n }\n\n let findTargetVersion: (name: string) => Promise<string>;\n let releaseManifest: ReleaseManifest;\n if (env.BACKSTAGE_MANIFEST_FILE) {\n // Use specific manifest file if provided\n releaseManifest = await fs.readJson(env.BACKSTAGE_MANIFEST_FILE);\n findTargetVersion = createStrictVersionFinder({\n releaseManifest,\n });\n } else if (semver.valid(release)) {\n // Specific release specified. Be strict when resolving versions\n releaseManifest = await getManifestByVersion({ version: release! });\n findTargetVersion = createStrictVersionFinder({\n releaseManifest,\n });\n } else {\n // Release line specified. Be lenient when resolving versions.\n if (release === 'next') {\n const next = await getManifestByReleaseLine({\n releaseLine: 'next',\n versionsBaseUrl: env.BACKSTAGE_VERSIONS_BASE_URL,\n });\n const main = await getManifestByReleaseLine({\n releaseLine: 'main',\n versionsBaseUrl: env.BACKSTAGE_VERSIONS_BASE_URL,\n });\n // Prefer manifest with the latest release version\n releaseManifest = semver.gt(next.releaseVersion, main.releaseVersion)\n ? next\n : main;\n } else {\n releaseManifest = await getManifestByReleaseLine({\n releaseLine: release!,\n versionsBaseUrl: env.BACKSTAGE_VERSIONS_BASE_URL,\n });\n }\n findTargetVersion = createVersionFinder({\n releaseLine: release,\n releaseManifest,\n });\n }\n\n if (yarnPluginEnabled) {\n console.log();\n console.log(\n `Updating yarn plugin to v${releaseManifest.releaseVersion}...`,\n );\n console.log();\n\n const yarnPluginUrl = env.BACKSTAGE_VERSIONS_BASE_URL\n ? `${env.BACKSTAGE_VERSIONS_BASE_URL}/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`\n : `https://versions.backstage.io/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`;\n\n await run(['yarn', 'plugin', 'import', yarnPluginUrl]).waitForExit();\n console.log();\n }\n\n // First we discover all Backstage dependencies within our own repo\n const dependencyMap = await mapDependencies(targetPaths.dir, pattern);\n\n // Next check with the package registry to see which dependency ranges we need to bump\n const versionBumps = new Map<string, PkgVersionInfo[]>();\n\n await runConcurrentTasks({\n concurrencyFactor: 4,\n items: dependencyMap.entries(),\n async worker([name, pkgs]) {\n let target: string;\n try {\n target = await findTargetVersion(name);\n } catch (error) {\n if (isError(error) && error.name === 'NotFoundError') {\n console.log(`Package info not found, ignoring package ${name}`);\n return;\n }\n throw error;\n }\n\n for (const pkg of pkgs) {\n versionBumps.set(\n pkg.name,\n (versionBumps.get(pkg.name) ?? []).concat({\n name,\n location: pkg.location,\n range: `^${target}`, // TODO(Rugvip): Option to use something else than ^?\n target,\n }),\n );\n }\n },\n });\n\n // Write all discovered version bumps to package.json in this repo\n if (versionBumps.size === 0) {\n console.log(chalk.green('All Backstage packages are up to date!'));\n } else {\n console.log(chalk.yellow('Some packages are outdated, updating'));\n console.log();\n\n const breakingUpdates = new Map<string, { from: string; to: string }>();\n await runConcurrentTasks({\n concurrencyFactor: 4,\n items: versionBumps.entries(),\n async worker([name, deps]) {\n const pkgPath = resolvePath(deps[0].location, 'package.json');\n const pkgJson = await fs.readJson(pkgPath);\n\n for (const dep of deps) {\n console.log(\n `${chalk.cyan('bumping')} ${dep.name} in ${chalk.cyan(\n name,\n )} to ${chalk.yellow(dep.range)}`,\n );\n\n for (const depType of DEP_TYPES) {\n if (depType in pkgJson && dep.name in pkgJson[depType]) {\n const oldRange = pkgJson[depType][dep.name];\n\n // backstage:^ are written to the lockfile as\n // backstage:<backstage-version>, so that updates to\n // backstage.json can be detected during yarn install. In order to\n // locate the corresponding lockfile entry for \"backstage:^\"\n // versions, we need to perform the same transformation.\n const oldLockfileRange = await asLockfileVersion(oldRange);\n\n const useBackstageRange =\n yarnPluginEnabled &&\n // Only use backstage:^ versions if the package is present in\n // the manifest for the release we're bumping to.\n releaseManifest.packages.find(\n ({ name: manifestPackageName }) =>\n dep.name === manifestPackageName,\n ) &&\n // Don't use backstage:^ versions for peerDependencies; they only\n // support npm and workspace: versions.\n depType !== 'peerDependencies';\n\n const newRange = useBackstageRange ? 'backstage:^' : dep.range;\n\n pkgJson[depType][dep.name] = newRange;\n\n // Check if the update was at least a pre-v1 minor or post-v1 major release\n const lockfileEntry = lockfile\n .get(dep.name)\n ?.find(entry => entry.range === oldLockfileRange);\n if (lockfileEntry) {\n const from = lockfileEntry.version;\n const to = dep.target;\n if (!semver.satisfies(to, `^${from}`)) {\n breakingUpdates.set(dep.name, { from, to });\n }\n }\n }\n }\n }\n\n await fs.writeJson(pkgPath, pkgJson, { spaces: 2 });\n },\n });\n\n console.log();\n\n // Do not update backstage.json when default pattern is not covered\n if (extendsDefaultPattern(pattern)) {\n await bumpBackstageJsonVersion(\n releaseManifest.releaseVersion,\n yarnPluginEnabled,\n );\n } else {\n console.log(\n chalk.yellow(\n `Skipping backstage.json update as custom pattern is used`,\n ),\n );\n }\n\n if (!skipInstall) {\n await runYarnInstall();\n } else {\n console.log();\n\n console.log(chalk.yellow(`Skipping yarn install`));\n }\n\n if (!skipMigrate) {\n console.log();\n\n const changed = await migrateMovedPackages({\n pattern: patternFlag,\n });\n\n if (changed && !skipInstall) {\n await runYarnInstall();\n }\n }\n\n if (breakingUpdates.size > 0) {\n console.log();\n console.log(\n chalk.yellow('⚠️ The following packages may have breaking changes:'),\n );\n console.log();\n\n for (const [name, { from, to }] of Array.from(\n breakingUpdates.entries(),\n ).sort()) {\n console.log(\n ` ${chalk.yellow(name)} : ${chalk.yellow(from)} ~> ${chalk.yellow(\n to,\n )}`,\n );\n\n let path;\n if (name.startsWith('@backstage/plugin-')) {\n path = `plugins/${name.replace('@backstage/plugin-', '')}`;\n } else if (name.startsWith('@backstage/')) {\n path = `packages/${name.replace('@backstage/', '')}`;\n }\n if (path) {\n // TODO(Rugvip): Grab these URLs and paths from package.json, possibly verify existence\n // Possibly invent new \"changelog\" field in package.json or some sh*t.\n console.log(\n ` https://github.com/backstage/backstage/blob/master/${path}/CHANGELOG.md`,\n );\n }\n console.log();\n }\n } else {\n console.log();\n }\n\n if (yarnPluginEnabled) {\n console.log();\n console.log(\n chalk.blue(\n `${chalk.bold(\n 'NOTE',\n )}: this bump used backstage:^ versions in package.json files, since the Backstage ` +\n `yarn plugin was detected in the repository. To migrate back to explicit npm versions, ` +\n `remove the plugin by running \"yarn plugin remove @yarnpkg/plugin-backstage\", then ` +\n `repeat this command.`,\n ),\n );\n console.log();\n }\n\n console.log(chalk.green('Version bump complete!'));\n }\n\n console.log();\n};\n\nexport function createStrictVersionFinder(options: {\n releaseManifest: ReleaseManifest;\n}) {\n const releasePackages = new Map(\n options.releaseManifest.packages.map(p => [p.name, p.version]),\n );\n return async function findTargetVersion(name: string) {\n console.log(`Checking for updates of ${name}`);\n const manifestVersion = releasePackages.get(name);\n if (manifestVersion) {\n return manifestVersion;\n }\n throw new NotFoundError(`Package ${name} not found in release manifest`);\n };\n}\n\nexport function createVersionFinder(options: {\n releaseLine?: string;\n packageInfoFetcher?: () => Promise<YarnInfoInspectData>;\n releaseManifest?: ReleaseManifest;\n}) {\n const {\n releaseLine = 'latest',\n packageInfoFetcher = fetchPackageInfo,\n releaseManifest,\n } = options;\n // The main release line is just an alias for latest\n const distTag = releaseLine === 'main' ? 'latest' : releaseLine;\n const found = new Map<string, string>();\n const releasePackages = new Map(\n releaseManifest?.packages.map(p => [p.name, p.version]),\n );\n return async function findTargetVersion(name: string) {\n const existing = found.get(name);\n if (existing) {\n return existing;\n }\n\n console.log(`Checking for updates of ${name}`);\n const manifestVersion = releasePackages.get(name);\n if (manifestVersion) {\n return manifestVersion;\n }\n\n const info = await packageInfoFetcher(name);\n const latestVersion = info['dist-tags'].latest;\n if (!latestVersion) {\n throw new Error(`No target 'latest' version found for ${name}`);\n }\n\n const taggedVersion = info['dist-tags'][distTag];\n if (distTag === 'latest' || !taggedVersion) {\n found.set(name, latestVersion);\n return latestVersion;\n }\n\n const latestVersionDateStr = info.time[latestVersion];\n const taggedVersionDateStr = info.time[taggedVersion];\n if (!latestVersionDateStr) {\n throw new Error(\n `No time available for version '${latestVersion}' of ${name}`,\n );\n }\n if (!taggedVersionDateStr) {\n throw new Error(\n `No time available for version '${taggedVersion}' of ${name}`,\n );\n }\n\n const latestVersionRelease = new Date(latestVersionDateStr).getTime();\n const taggedVersionRelease = new Date(taggedVersionDateStr).getTime();\n if (latestVersionRelease > taggedVersionRelease) {\n // Prefer latest version if it's newer.\n found.set(name, latestVersion);\n return latestVersion;\n }\n\n found.set(name, taggedVersion);\n return taggedVersion;\n };\n}\n\nfunction getBackstageJsonPath() {\n return targetPaths.resolveRoot(BACKSTAGE_JSON);\n}\n\nasync function getBackstageJson() {\n const backstageJsonPath = getBackstageJsonPath();\n return fs.readJSON(backstageJsonPath).catch(e => {\n if (e.code === 'ENOENT') {\n // gracefully continue in case the file doesn't exist\n return;\n }\n throw e;\n });\n}\n\nexport async function bumpBackstageJsonVersion(\n version: string,\n useYarnPlugin?: boolean,\n) {\n const backstageJson = await getBackstageJson();\n const prevVersion = backstageJson?.version;\n\n if (prevVersion === version) {\n return;\n }\n\n const { yellow, cyan, green } = chalk;\n if (prevVersion) {\n const from = encodeURIComponent(prevVersion);\n const to = encodeURIComponent(version);\n let link = `https://backstage.github.io/upgrade-helper/?from=${from}&to=${to}`;\n\n if (useYarnPlugin) {\n link += '&yarnPlugin=1';\n }\n\n console.log(\n yellow(\n `Upgraded from release ${green(prevVersion)} to ${green(\n version,\n )}, please review these template changes:`,\n ),\n );\n console.log();\n console.log(` ${cyan(link)}`);\n console.log();\n } else {\n console.log(\n yellow(\n `Your project is now at version ${version}, which has been written to ${BACKSTAGE_JSON}`,\n ),\n );\n }\n\n await fs.writeJson(\n getBackstageJsonPath(),\n { ...backstageJson, version },\n {\n spaces: 2,\n encoding: 'utf8',\n },\n );\n}\n\nasync function asLockfileVersion(version: string) {\n if (version === 'backstage:^') {\n return `backstage:${(await getBackstageJson())?.version}`;\n }\n\n return version;\n}\n"],"names":["bootstrapEnvProxyAgents","minimatch","cli","targetPaths","Lockfile","hasBackstageYarnPlugin","env","fs","semver","getManifestByVersion","getManifestByReleaseLine","run","mapDependencies","runConcurrentTasks","isError","chalk","resolvePath","runYarnInstall","migrateMovedPackages","NotFoundError","fetchPackageInfo","BACKSTAGE_JSON"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bump.cjs.js","sources":["../../../src/commands/versions/bump.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 */\nimport {\n BACKSTAGE_JSON,\n bootstrapEnvProxyAgents,\n targetPaths,\n} from '@backstage/cli-common';\n\nbootstrapEnvProxyAgents();\n\nimport { env } from 'node:process';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\nimport { minimatch } from 'minimatch';\nimport semver from 'semver';\nimport { cli } from 'cleye';\nimport { isError, NotFoundError } from '@backstage/errors';\nimport { resolve as resolvePath } from 'node:path';\n\nimport {\n hasBackstageYarnPlugin,\n Lockfile,\n runConcurrentTasks,\n} from '@backstage/cli-node';\nimport {\n fetchPackageInfo,\n mapDependencies,\n YarnInfoInspectData,\n} from '../../lib/versioning/packages';\nimport {\n getManifestByReleaseLine,\n getManifestByVersion,\n ReleaseManifest,\n} from '@backstage/release-manifests';\nimport { migrateMovedPackages } from './migrate';\nimport { runYarnInstall } from '../../lib/utils';\nimport { run } from '@backstage/cli-common';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\nconst DEP_TYPES = [\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'optionalDependencies',\n];\n\nconst DEFAULT_PATTERN_GLOB = '@backstage/*';\n\ntype PkgVersionInfo = {\n range: string;\n target: string;\n name: string;\n location: string;\n};\n\nfunction extendsDefaultPattern(pattern: string): boolean {\n if (!pattern.endsWith('/*')) {\n return false;\n }\n\n return minimatch('@backstage/', pattern.slice(0, -1));\n}\n\nexport default async ({ args, info }: CliCommandContext) => {\n const {\n flags: { pattern: patternFlag, release, skipInstall, skipMigrate },\n } = cli(\n {\n name: info.usage,\n booleanFlagNegation: true,\n flags: {\n pattern: {\n type: String,\n description: 'Override glob for matching packages to upgrade',\n },\n release: {\n type: String,\n description: 'Bump to a specific Backstage release line or version',\n default: 'main',\n },\n skipInstall: {\n type: Boolean,\n description: 'Skips yarn install step',\n },\n skipMigrate: {\n type: Boolean,\n description: 'Skips migration of any moved packages',\n },\n },\n },\n undefined,\n args,\n );\n\n const lockfilePath = targetPaths.resolveRoot('yarn.lock');\n const lockfile = await Lockfile.load(lockfilePath);\n const yarnPluginEnabled = await hasBackstageYarnPlugin();\n\n let pattern = patternFlag;\n\n if (!pattern) {\n console.log(`Using default pattern glob ${DEFAULT_PATTERN_GLOB}`);\n pattern = DEFAULT_PATTERN_GLOB;\n } else if (pattern === '*') {\n throw new Error(`Rejected pattern '*', please use a more specific pattern`);\n } else {\n console.log(`Using custom pattern glob ${pattern}`);\n }\n\n let findTargetVersion: (name: string) => Promise<string>;\n let releaseManifest: ReleaseManifest;\n if (env.BACKSTAGE_MANIFEST_FILE) {\n // Use specific manifest file if provided\n releaseManifest = await fs.readJson(env.BACKSTAGE_MANIFEST_FILE);\n findTargetVersion = createStrictVersionFinder({\n releaseManifest,\n });\n } else if (semver.valid(release)) {\n // Specific release specified. Be strict when resolving versions\n releaseManifest = await getManifestByVersion({ version: release! });\n findTargetVersion = createStrictVersionFinder({\n releaseManifest,\n });\n } else {\n // Release line specified. Be lenient when resolving versions.\n if (release === 'next') {\n const next = await getManifestByReleaseLine({\n releaseLine: 'next',\n versionsBaseUrl: env.BACKSTAGE_VERSIONS_BASE_URL,\n });\n const main = await getManifestByReleaseLine({\n releaseLine: 'main',\n versionsBaseUrl: env.BACKSTAGE_VERSIONS_BASE_URL,\n });\n // Prefer manifest with the latest release version\n releaseManifest = semver.gt(next.releaseVersion, main.releaseVersion)\n ? next\n : main;\n } else {\n releaseManifest = await getManifestByReleaseLine({\n releaseLine: release!,\n versionsBaseUrl: env.BACKSTAGE_VERSIONS_BASE_URL,\n });\n }\n findTargetVersion = createVersionFinder({\n releaseLine: release,\n releaseManifest,\n });\n }\n\n if (yarnPluginEnabled) {\n console.log();\n console.log(\n `Updating yarn plugin to v${releaseManifest.releaseVersion}...`,\n );\n console.log();\n\n const yarnPluginUrl = env.BACKSTAGE_VERSIONS_BASE_URL\n ? `${env.BACKSTAGE_VERSIONS_BASE_URL}/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`\n : `https://versions.backstage.io/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`;\n\n await run(['yarn', 'plugin', 'import', yarnPluginUrl]).waitForExit();\n console.log();\n }\n\n // First we discover all Backstage dependencies within our own repo\n const dependencyMap = await mapDependencies(targetPaths.dir, pattern);\n\n // Next check with the package registry to see which dependency ranges we need to bump\n const versionBumps = new Map<string, PkgVersionInfo[]>();\n\n await runConcurrentTasks({\n concurrencyFactor: 4,\n items: dependencyMap.entries(),\n async worker([name, pkgs]) {\n let target: string;\n try {\n target = await findTargetVersion(name);\n } catch (error) {\n if (isError(error) && error.name === 'NotFoundError') {\n console.log(`Package info not found, ignoring package ${name}`);\n return;\n }\n throw error;\n }\n\n for (const pkg of pkgs) {\n versionBumps.set(\n pkg.name,\n (versionBumps.get(pkg.name) ?? []).concat({\n name,\n location: pkg.location,\n range: `^${target}`, // TODO(Rugvip): Option to use something else than ^?\n target,\n }),\n );\n }\n },\n });\n\n // Write all discovered version bumps to package.json in this repo\n if (versionBumps.size === 0) {\n console.log(chalk.green('All Backstage packages are up to date!'));\n } else {\n console.log(chalk.yellow('Some packages are outdated, updating'));\n console.log();\n\n const breakingUpdates = new Map<string, { from: string; to: string }>();\n await runConcurrentTasks({\n concurrencyFactor: 4,\n items: versionBumps.entries(),\n async worker([name, deps]) {\n const pkgPath = resolvePath(deps[0].location, 'package.json');\n const pkgJson = await fs.readJson(pkgPath);\n\n for (const dep of deps) {\n console.log(\n `${chalk.cyan('bumping')} ${dep.name} in ${chalk.cyan(\n name,\n )} to ${chalk.yellow(dep.range)}`,\n );\n\n for (const depType of DEP_TYPES) {\n if (depType in pkgJson && dep.name in pkgJson[depType]) {\n const oldRange = pkgJson[depType][dep.name];\n\n // backstage:^ are written to the lockfile as\n // backstage:<backstage-version>, so that updates to\n // backstage.json can be detected during yarn install. In order to\n // locate the corresponding lockfile entry for \"backstage:^\"\n // versions, we need to perform the same transformation.\n const oldLockfileRange = await asLockfileVersion(oldRange);\n\n const useBackstageRange =\n yarnPluginEnabled &&\n // Only use backstage:^ versions if the package is present in\n // the manifest for the release we're bumping to.\n releaseManifest.packages.find(\n ({ name: manifestPackageName }) =>\n dep.name === manifestPackageName,\n ) &&\n // Don't use backstage:^ versions for peerDependencies; they only\n // support npm and workspace: versions.\n depType !== 'peerDependencies';\n\n const newRange = useBackstageRange ? 'backstage:^' : dep.range;\n\n pkgJson[depType][dep.name] = newRange;\n\n // Check if the update was at least a pre-v1 minor or post-v1 major release\n const lockfileEntry = lockfile\n .get(dep.name)\n ?.find(entry => entry.range === oldLockfileRange);\n if (lockfileEntry) {\n const from = lockfileEntry.version;\n const to = dep.target;\n if (!semver.satisfies(to, `^${from}`)) {\n breakingUpdates.set(dep.name, { from, to });\n }\n }\n }\n }\n }\n\n await fs.writeJson(pkgPath, pkgJson, { spaces: 2 });\n },\n });\n\n console.log();\n\n // Do not update backstage.json when default pattern is not covered\n if (extendsDefaultPattern(pattern)) {\n await bumpBackstageJsonVersion(\n releaseManifest.releaseVersion,\n yarnPluginEnabled,\n );\n } else {\n console.log(\n chalk.yellow(\n `Skipping backstage.json update as custom pattern is used`,\n ),\n );\n }\n\n if (!skipInstall) {\n await runYarnInstall();\n } else {\n console.log();\n\n console.log(chalk.yellow(`Skipping yarn install`));\n }\n\n if (!skipMigrate) {\n console.log();\n\n const changed = await migrateMovedPackages({\n pattern: patternFlag,\n });\n\n if (changed && !skipInstall) {\n await runYarnInstall();\n }\n }\n\n if (breakingUpdates.size > 0) {\n console.log();\n console.log(\n chalk.yellow('⚠️ The following packages may have breaking changes:'),\n );\n console.log();\n\n for (const [name, { from, to }] of Array.from(\n breakingUpdates.entries(),\n ).sort()) {\n console.log(\n ` ${chalk.yellow(name)} : ${chalk.yellow(from)} ~> ${chalk.yellow(\n to,\n )}`,\n );\n\n let path;\n if (name.startsWith('@backstage/plugin-')) {\n path = `plugins/${name.replace('@backstage/plugin-', '')}`;\n } else if (name.startsWith('@backstage/')) {\n path = `packages/${name.replace('@backstage/', '')}`;\n }\n if (path) {\n // TODO(Rugvip): Grab these URLs and paths from package.json, possibly verify existence\n // Possibly invent new \"changelog\" field in package.json or some sh*t.\n console.log(\n ` https://github.com/backstage/backstage/blob/master/${path}/CHANGELOG.md`,\n );\n }\n console.log();\n }\n } else {\n console.log();\n }\n\n if (yarnPluginEnabled) {\n console.log();\n console.log(\n chalk.blue(\n `${chalk.bold(\n 'NOTE',\n )}: this bump used backstage:^ versions in package.json files, since the Backstage ` +\n `yarn plugin was detected in the repository. To migrate back to explicit npm versions, ` +\n `remove the plugin by running \"yarn plugin remove @yarnpkg/plugin-backstage\", then ` +\n `repeat this command.`,\n ),\n );\n console.log();\n }\n\n console.log(chalk.green('Version bump complete!'));\n }\n\n console.log();\n};\n\nexport function createStrictVersionFinder(options: {\n releaseManifest: ReleaseManifest;\n}) {\n const releasePackages = new Map(\n options.releaseManifest.packages.map(p => [p.name, p.version]),\n );\n return async function findTargetVersion(name: string) {\n console.log(`Checking for updates of ${name}`);\n const manifestVersion = releasePackages.get(name);\n if (manifestVersion) {\n return manifestVersion;\n }\n throw new NotFoundError(`Package ${name} not found in release manifest`);\n };\n}\n\nexport function createVersionFinder(options: {\n releaseLine?: string;\n packageInfoFetcher?: () => Promise<YarnInfoInspectData>;\n releaseManifest?: ReleaseManifest;\n}) {\n const {\n releaseLine = 'latest',\n packageInfoFetcher = fetchPackageInfo,\n releaseManifest,\n } = options;\n // The main release line is just an alias for latest\n const distTag = releaseLine === 'main' ? 'latest' : releaseLine;\n const found = new Map<string, string>();\n const releasePackages = new Map(\n releaseManifest?.packages.map(p => [p.name, p.version]),\n );\n return async function findTargetVersion(name: string) {\n const existing = found.get(name);\n if (existing) {\n return existing;\n }\n\n console.log(`Checking for updates of ${name}`);\n const manifestVersion = releasePackages.get(name);\n if (manifestVersion) {\n return manifestVersion;\n }\n\n const info = await packageInfoFetcher(name);\n const latestVersion = info['dist-tags'].latest;\n if (!latestVersion) {\n throw new Error(`No target 'latest' version found for ${name}`);\n }\n\n const taggedVersion = info['dist-tags'][distTag];\n if (distTag === 'latest' || !taggedVersion) {\n found.set(name, latestVersion);\n return latestVersion;\n }\n\n const latestVersionDateStr = info.time[latestVersion];\n const taggedVersionDateStr = info.time[taggedVersion];\n if (!latestVersionDateStr) {\n throw new Error(\n `No time available for version '${latestVersion}' of ${name}`,\n );\n }\n if (!taggedVersionDateStr) {\n throw new Error(\n `No time available for version '${taggedVersion}' of ${name}`,\n );\n }\n\n const latestVersionRelease = new Date(latestVersionDateStr).getTime();\n const taggedVersionRelease = new Date(taggedVersionDateStr).getTime();\n if (latestVersionRelease > taggedVersionRelease) {\n // Prefer latest version if it's newer.\n found.set(name, latestVersion);\n return latestVersion;\n }\n\n found.set(name, taggedVersion);\n return taggedVersion;\n };\n}\n\nfunction getBackstageJsonPath() {\n return targetPaths.resolveRoot(BACKSTAGE_JSON);\n}\n\nasync function getBackstageJson() {\n const backstageJsonPath = getBackstageJsonPath();\n return fs.readJSON(backstageJsonPath).catch(e => {\n if (e.code === 'ENOENT') {\n // gracefully continue in case the file doesn't exist\n return;\n }\n throw e;\n });\n}\n\nexport async function bumpBackstageJsonVersion(\n version: string,\n useYarnPlugin?: boolean,\n) {\n const backstageJson = await getBackstageJson();\n const prevVersion = backstageJson?.version;\n\n if (prevVersion === version) {\n return;\n }\n\n const { yellow, cyan, green } = chalk;\n if (prevVersion) {\n const from = encodeURIComponent(prevVersion);\n const to = encodeURIComponent(version);\n let link = `https://backstage.github.io/upgrade-helper/?from=${from}&to=${to}`;\n\n if (useYarnPlugin) {\n link += '&yarnPlugin=1';\n }\n\n console.log(\n yellow(\n `Upgraded from release ${green(prevVersion)} to ${green(\n version,\n )}, please review these template changes:`,\n ),\n );\n console.log();\n console.log(` ${cyan(link)}`);\n console.log();\n } else {\n console.log(\n yellow(\n `Your project is now at version ${version}, which has been written to ${BACKSTAGE_JSON}`,\n ),\n );\n }\n\n await fs.writeJson(\n getBackstageJsonPath(),\n { ...backstageJson, version },\n {\n spaces: 2,\n encoding: 'utf8',\n },\n );\n}\n\nasync function asLockfileVersion(version: string) {\n if (version === 'backstage:^') {\n return `backstage:${(await getBackstageJson())?.version}`;\n }\n\n return version;\n}\n"],"names":["bootstrapEnvProxyAgents","minimatch","cli","targetPaths","Lockfile","hasBackstageYarnPlugin","env","fs","semver","getManifestByVersion","getManifestByReleaseLine","run","mapDependencies","runConcurrentTasks","isError","chalk","resolvePath","runYarnInstall","migrateMovedPackages","NotFoundError","fetchPackageInfo","BACKSTAGE_JSON"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.cjs.js","sources":["../../../src/commands/versions/migrate.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 { BackstagePackageJson, PackageGraph } from '@backstage/cli-node';\nimport chalk from 'chalk';\nimport { resolve as resolvePath, join as joinPath } from 'node:path';\nimport { cli } from 'cleye';\nimport { readJson, writeJson } from 'fs-extra';\nimport { minimatch } from 'minimatch';\nimport { runYarnInstall } from '../../lib/utils';\nimport replace from 'replace-in-file';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\ndeclare module 'replace-in-file' {\n export default function (config: {\n files: string | string[];\n processor: (content: string, file: string) => string;\n ignore?: string | string[];\n allowEmptyPaths?: boolean;\n }): Promise<\n {\n file: string;\n hasChanged: boolean;\n numMatches?: number;\n numReplacements?: number;\n }[]\n >;\n}\n\nexport default async ({ args, info }: CliCommandContext) => {\n const {\n flags: { pattern, skipCodeChanges },\n } = cli(\n {\n
|
|
1
|
+
{"version":3,"file":"migrate.cjs.js","sources":["../../../src/commands/versions/migrate.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 { BackstagePackageJson, PackageGraph } from '@backstage/cli-node';\nimport chalk from 'chalk';\nimport { resolve as resolvePath, join as joinPath } from 'node:path';\nimport { cli } from 'cleye';\nimport { readJson, writeJson } from 'fs-extra';\nimport { minimatch } from 'minimatch';\nimport { runYarnInstall } from '../../lib/utils';\nimport replace from 'replace-in-file';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\ndeclare module 'replace-in-file' {\n export default function (config: {\n files: string | string[];\n processor: (content: string, file: string) => string;\n ignore?: string | string[];\n allowEmptyPaths?: boolean;\n }): Promise<\n {\n file: string;\n hasChanged: boolean;\n numMatches?: number;\n numReplacements?: number;\n }[]\n >;\n}\n\nexport default async ({ args, info }: CliCommandContext) => {\n const {\n flags: { pattern, skipCodeChanges },\n } = cli(\n {\n name: info.usage,\n booleanFlagNegation: true,\n flags: {\n pattern: {\n type: String,\n description: 'Override glob for matching packages to upgrade',\n },\n skipCodeChanges: {\n type: Boolean,\n description: 'Skip code changes and only update package.json files',\n },\n },\n },\n undefined,\n args,\n );\n\n const changed = await migrateMovedPackages({\n pattern,\n skipCodeChanges,\n });\n\n if (changed) {\n await runYarnInstall();\n }\n};\n\nexport async function migrateMovedPackages(options?: {\n pattern?: string;\n skipCodeChanges?: boolean;\n}) {\n console.log(\n 'Checking for moved packages to the @backstage-community namespace...',\n );\n const packages = await PackageGraph.listTargetPackages();\n let didAnythingChange = false;\n\n for (const pkg of packages) {\n const pkgName = pkg.packageJson.name;\n let didPackageChange = false;\n const movedPackages = new Map<string, string>();\n\n for (const depType of [\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n ] as const) {\n const depsObj = pkg.packageJson[depType];\n if (!depsObj) {\n continue;\n }\n for (const [depName, depVersion] of Object.entries(depsObj)) {\n if (options?.pattern && !minimatch(depName, options.pattern)) {\n continue;\n }\n let packageInfo: BackstagePackageJson;\n try {\n packageInfo = await readJson(\n require.resolve(`${depName}/package.json`, {\n paths: [pkg.dir],\n }),\n );\n } catch (ex) {\n console.warn(\n chalk.yellow(\n `Could not find package.json for ${depName}@${depVersion} in ${pkgName} (${depType})`,\n ),\n );\n continue;\n }\n\n const movedPackageName = packageInfo.backstage?.moved;\n\n if (movedPackageName) {\n movedPackages.set(depName, movedPackageName);\n console.log(\n chalk.yellow(\n `Found a moved package ${depName}@${depVersion} -> ${movedPackageName} in ${pkgName} (${depType})`,\n ),\n );\n\n didPackageChange = true;\n didAnythingChange = true;\n\n depsObj[movedPackageName] = depsObj[depName];\n delete depsObj[depName];\n }\n }\n }\n\n if (didPackageChange) {\n await writeJson(resolvePath(pkg.dir, 'package.json'), pkg.packageJson, {\n spaces: 2,\n });\n\n if (!options?.skipCodeChanges) {\n // Replace all occurrences of the old package names in the code.\n const files = await replace({\n files: joinPath(pkg.dir, 'src', '**'),\n allowEmptyPaths: true,\n processor: content => {\n return Array.from(movedPackages.entries()).reduce(\n (newContent, [oldName, newName]) => {\n return newContent\n .replace(new RegExp(`\"${oldName}\"`, 'g'), `\"${newName}\"`)\n .replace(new RegExp(`'${oldName}'`, 'g'), `'${newName}'`)\n .replace(new RegExp(`${oldName}/`, 'g'), `${newName}/`);\n },\n content,\n );\n },\n });\n\n if (files.length > 0) {\n console.log(\n chalk.green(\n `Updated ${files.length} files in ${pkgName} to use the new package names`,\n ),\n );\n }\n }\n }\n }\n\n return didAnythingChange;\n}\n"],"names":["cli","runYarnInstall","PackageGraph","minimatch","readJson","chalk","writeJson","resolvePath","replace","joinPath"],"mappings":"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"}
|
package/dist/package.json.cjs.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var name = "@backstage/cli-module-migrate";
|
|
6
|
-
var version = "0.1.
|
|
6
|
+
var version = "0.1.3";
|
|
7
7
|
var description = "CLI module for Backstage CLI";
|
|
8
8
|
var backstage = {
|
|
9
9
|
role: "cli-module"
|
|
@@ -22,6 +22,7 @@ var repository = {
|
|
|
22
22
|
var license = "Apache-2.0";
|
|
23
23
|
var main = "src/index.ts";
|
|
24
24
|
var types = "src/index.ts";
|
|
25
|
+
var bin = "bin/backstage-cli-module-migrate";
|
|
25
26
|
var files = [
|
|
26
27
|
"dist",
|
|
27
28
|
"bin"
|
|
@@ -41,7 +42,7 @@ var dependencies = {
|
|
|
41
42
|
"@backstage/release-manifests": "workspace:^",
|
|
42
43
|
"@manypkg/get-packages": "^1.1.3",
|
|
43
44
|
chalk: "^4.0.0",
|
|
44
|
-
cleye: "^2.
|
|
45
|
+
cleye: "^2.6.0",
|
|
45
46
|
"fs-extra": "^11.2.0",
|
|
46
47
|
minimatch: "^10.2.1",
|
|
47
48
|
ora: "^5.3.0",
|
|
@@ -56,7 +57,6 @@ var devDependencies = {
|
|
|
56
57
|
"@types/semver": "^7",
|
|
57
58
|
msw: "^1.0.0"
|
|
58
59
|
};
|
|
59
|
-
var bin = "bin/backstage-cli-module-migrate";
|
|
60
60
|
var packageJson = {
|
|
61
61
|
name: name,
|
|
62
62
|
version: version,
|
|
@@ -68,11 +68,11 @@ var packageJson = {
|
|
|
68
68
|
license: license,
|
|
69
69
|
main: main,
|
|
70
70
|
types: types,
|
|
71
|
+
bin: bin,
|
|
71
72
|
files: files,
|
|
72
73
|
scripts: scripts,
|
|
73
74
|
dependencies: dependencies,
|
|
74
|
-
devDependencies: devDependencies
|
|
75
|
-
bin: bin
|
|
75
|
+
devDependencies: devDependencies
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
exports.backstage = backstage;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/cli-module-migrate",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "CLI module for Backstage CLI",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "cli-module"
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"license": "Apache-2.0",
|
|
20
20
|
"main": "dist/index.cjs.js",
|
|
21
21
|
"types": "dist/index.d.ts",
|
|
22
|
+
"bin": "bin/backstage-cli-module-migrate",
|
|
22
23
|
"files": [
|
|
23
24
|
"dist",
|
|
24
25
|
"bin"
|
|
@@ -32,13 +33,13 @@
|
|
|
32
33
|
"test": "backstage-cli package test"
|
|
33
34
|
},
|
|
34
35
|
"dependencies": {
|
|
35
|
-
"@backstage/cli-common": "0.2.2
|
|
36
|
-
"@backstage/cli-node": "0.3.
|
|
37
|
-
"@backstage/errors": "1.3.1
|
|
38
|
-
"@backstage/release-manifests": "0.0.13",
|
|
36
|
+
"@backstage/cli-common": "^0.2.2",
|
|
37
|
+
"@backstage/cli-node": "^0.3.3",
|
|
38
|
+
"@backstage/errors": "^1.3.1",
|
|
39
|
+
"@backstage/release-manifests": "^0.0.13",
|
|
39
40
|
"@manypkg/get-packages": "^1.1.3",
|
|
40
41
|
"chalk": "^4.0.0",
|
|
41
|
-
"cleye": "^2.
|
|
42
|
+
"cleye": "^2.6.0",
|
|
42
43
|
"fs-extra": "^11.2.0",
|
|
43
44
|
"minimatch": "^10.2.1",
|
|
44
45
|
"ora": "^5.3.0",
|
|
@@ -46,14 +47,13 @@
|
|
|
46
47
|
"semver": "^7.5.3"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
|
-
"@backstage/backend-test-utils": "1.11.
|
|
50
|
-
"@backstage/cli": "0.36.
|
|
51
|
-
"@backstage/test-utils": "1.7.
|
|
50
|
+
"@backstage/backend-test-utils": "^1.11.4",
|
|
51
|
+
"@backstage/cli": "^0.36.3",
|
|
52
|
+
"@backstage/test-utils": "^1.7.19",
|
|
52
53
|
"@types/fs-extra": "^11.0.0",
|
|
53
54
|
"@types/semver": "^7",
|
|
54
55
|
"msw": "^1.0.0"
|
|
55
56
|
},
|
|
56
|
-
"bin": "bin/backstage-cli-module-migrate",
|
|
57
57
|
"typesVersions": {
|
|
58
58
|
"*": {
|
|
59
59
|
"package.json": [
|