@backstage/cli-module-new 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.
Files changed (87) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +14 -0
  3. package/bin/backstage-cli-module-new +32 -0
  4. package/dist/commands/new.cjs.js +115 -0
  5. package/dist/commands/new.cjs.js.map +1 -0
  6. package/dist/index.cjs.js +41 -0
  7. package/dist/index.cjs.js.map +1 -0
  8. package/dist/index.d.ts +5 -0
  9. package/dist/lib/codeowners/codeowners.cjs.js +92 -0
  10. package/dist/lib/codeowners/codeowners.cjs.js.map +1 -0
  11. package/dist/lib/createNewPackage.cjs.js +32 -0
  12. package/dist/lib/createNewPackage.cjs.js.map +1 -0
  13. package/dist/lib/defaultTemplates.cjs.js +17 -0
  14. package/dist/lib/defaultTemplates.cjs.js.map +1 -0
  15. package/dist/lib/execution/PortableTemplater.cjs.js +89 -0
  16. package/dist/lib/execution/PortableTemplater.cjs.js.map +1 -0
  17. package/dist/lib/execution/executePortableTemplate.cjs.js +66 -0
  18. package/dist/lib/execution/executePortableTemplate.cjs.js.map +1 -0
  19. package/dist/lib/execution/installNewPackage.cjs.js +127 -0
  20. package/dist/lib/execution/installNewPackage.cjs.js.map +1 -0
  21. package/dist/lib/execution/writeTemplateContents.cjs.js +116 -0
  22. package/dist/lib/execution/writeTemplateContents.cjs.js.map +1 -0
  23. package/dist/lib/preparation/collectPortableTemplateInput.cjs.js +157 -0
  24. package/dist/lib/preparation/collectPortableTemplateInput.cjs.js.map +1 -0
  25. package/dist/lib/preparation/loadPortableTemplate.cjs.js +81 -0
  26. package/dist/lib/preparation/loadPortableTemplate.cjs.js.map +1 -0
  27. package/dist/lib/preparation/loadPortableTemplateConfig.cjs.js +132 -0
  28. package/dist/lib/preparation/loadPortableTemplateConfig.cjs.js.map +1 -0
  29. package/dist/lib/preparation/resolvePackageParams.cjs.js +40 -0
  30. package/dist/lib/preparation/resolvePackageParams.cjs.js.map +1 -0
  31. package/dist/lib/preparation/selectTemplateInteractively.cjs.js +38 -0
  32. package/dist/lib/preparation/selectTemplateInteractively.cjs.js.map +1 -0
  33. package/dist/lib/tasks.cjs.js +51 -0
  34. package/dist/lib/tasks.cjs.js.map +1 -0
  35. package/dist/lib/types.cjs.js +19 -0
  36. package/dist/lib/types.cjs.js.map +1 -0
  37. package/dist/lib/version.cjs.js +93 -0
  38. package/dist/lib/version.cjs.js.map +1 -0
  39. package/dist/packages/backend-defaults/package.json.cjs.js +6 -0
  40. package/dist/packages/backend-defaults/package.json.cjs.js.map +1 -0
  41. package/dist/packages/backend-plugin-api/package.json.cjs.js +6 -0
  42. package/dist/packages/backend-plugin-api/package.json.cjs.js.map +1 -0
  43. package/dist/packages/backend-test-utils/package.json.cjs.js +6 -0
  44. package/dist/packages/backend-test-utils/package.json.cjs.js.map +1 -0
  45. package/dist/packages/catalog-client/package.json.cjs.js +6 -0
  46. package/dist/packages/catalog-client/package.json.cjs.js.map +1 -0
  47. package/dist/packages/cli/package.json.cjs.js +6 -0
  48. package/dist/packages/cli/package.json.cjs.js.map +1 -0
  49. package/dist/packages/cli-module-new/package.json.cjs.js +99 -0
  50. package/dist/packages/cli-module-new/package.json.cjs.js.map +1 -0
  51. package/dist/packages/config/package.json.cjs.js +6 -0
  52. package/dist/packages/config/package.json.cjs.js.map +1 -0
  53. package/dist/packages/core-app-api/package.json.cjs.js +6 -0
  54. package/dist/packages/core-app-api/package.json.cjs.js.map +1 -0
  55. package/dist/packages/core-components/package.json.cjs.js +6 -0
  56. package/dist/packages/core-components/package.json.cjs.js.map +1 -0
  57. package/dist/packages/core-plugin-api/package.json.cjs.js +6 -0
  58. package/dist/packages/core-plugin-api/package.json.cjs.js.map +1 -0
  59. package/dist/packages/dev-utils/package.json.cjs.js +6 -0
  60. package/dist/packages/dev-utils/package.json.cjs.js.map +1 -0
  61. package/dist/packages/errors/package.json.cjs.js +6 -0
  62. package/dist/packages/errors/package.json.cjs.js.map +1 -0
  63. package/dist/packages/frontend-defaults/package.json.cjs.js +6 -0
  64. package/dist/packages/frontend-defaults/package.json.cjs.js.map +1 -0
  65. package/dist/packages/frontend-dev-utils/package.json.cjs.js +6 -0
  66. package/dist/packages/frontend-dev-utils/package.json.cjs.js.map +1 -0
  67. package/dist/packages/frontend-plugin-api/package.json.cjs.js +6 -0
  68. package/dist/packages/frontend-plugin-api/package.json.cjs.js.map +1 -0
  69. package/dist/packages/frontend-test-utils/package.json.cjs.js +6 -0
  70. package/dist/packages/frontend-test-utils/package.json.cjs.js.map +1 -0
  71. package/dist/packages/test-utils/package.json.cjs.js +6 -0
  72. package/dist/packages/test-utils/package.json.cjs.js.map +1 -0
  73. package/dist/packages/theme/package.json.cjs.js +6 -0
  74. package/dist/packages/theme/package.json.cjs.js.map +1 -0
  75. package/dist/packages/types/package.json.cjs.js +6 -0
  76. package/dist/packages/types/package.json.cjs.js.map +1 -0
  77. package/dist/plugins/auth-backend/package.json.cjs.js +6 -0
  78. package/dist/plugins/auth-backend/package.json.cjs.js.map +1 -0
  79. package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +6 -0
  80. package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js.map +1 -0
  81. package/dist/plugins/catalog-node/package.json.cjs.js +6 -0
  82. package/dist/plugins/catalog-node/package.json.cjs.js.map +1 -0
  83. package/dist/plugins/scaffolder-node/package.json.cjs.js +6 -0
  84. package/dist/plugins/scaffolder-node/package.json.cjs.js.map +1 -0
  85. package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js +6 -0
  86. package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js.map +1 -0
  87. package/package.json +69 -0
@@ -0,0 +1,132 @@
1
+ 'use strict';
2
+
3
+ var fs = require('fs-extra');
4
+ var path = require('node:path');
5
+ var cliCommon = require('@backstage/cli-common');
6
+ var defaultTemplates = require('../defaultTemplates.cjs.js');
7
+ var types = require('../types.cjs.js');
8
+ var yaml = require('yaml');
9
+ var zod = require('zod');
10
+ var v3 = require('zod-validation-error/v3');
11
+ var errors = require('@backstage/errors');
12
+
13
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
14
+
15
+ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
16
+
17
+ const defaults = {
18
+ license: "Apache-2.0",
19
+ version: "0.1.0",
20
+ private: true,
21
+ publishRegistry: void 0,
22
+ packageNamePrefix: "@internal/",
23
+ packageNamePluginInfix: "plugin-"
24
+ };
25
+ const newConfigSchema = zod.z.object({
26
+ templates: zod.z.array(zod.z.string()).optional(),
27
+ globals: zod.z.object({
28
+ license: zod.z.string().optional(),
29
+ version: zod.z.string().optional(),
30
+ private: zod.z.boolean().optional(),
31
+ publishRegistry: zod.z.string().optional(),
32
+ namePrefix: zod.z.string().optional(),
33
+ namePluginInfix: zod.z.string().optional()
34
+ }).optional()
35
+ }).strict();
36
+ const pkgJsonWithNewConfigSchema = zod.z.object({
37
+ backstage: zod.z.object({
38
+ cli: zod.z.object({
39
+ new: newConfigSchema.optional()
40
+ }).optional()
41
+ }).optional()
42
+ });
43
+ function computePackageNamePluginInfix(packageNamePrefix, namePluginInfix) {
44
+ const packageNamePluginInfix = namePluginInfix ?? (packageNamePrefix.includes("backstage") ? defaults.packageNamePluginInfix : "backstage-plugin-");
45
+ return {
46
+ packageNamePluginInfix
47
+ };
48
+ }
49
+ async function loadPortableTemplateConfig(options = {}) {
50
+ const { overrides = {} } = options;
51
+ const pkgPath = options.packagePath ?? cliCommon.targetPaths.resolveRoot("package.json");
52
+ const pkgJson = await fs__default.default.readJson(pkgPath);
53
+ const parsed = pkgJsonWithNewConfigSchema.safeParse(pkgJson);
54
+ if (!parsed.success) {
55
+ throw new errors.ForwardedError(
56
+ `Failed to load templating configuration from '${pkgPath}'`,
57
+ v3.fromZodError(parsed.error)
58
+ );
59
+ }
60
+ const config = parsed.data.backstage?.cli?.new;
61
+ const basePath = path.dirname(pkgPath);
62
+ const templatePointerEntries = await Promise.all(
63
+ (config?.templates ?? defaultTemplates.defaultTemplates).map(async (rawPointer) => {
64
+ try {
65
+ const templatePath = resolveLocalTemplatePath(rawPointer, basePath);
66
+ const pointer = await peekLocalTemplateDefinition(templatePath);
67
+ return { pointer, rawPointer };
68
+ } catch (error) {
69
+ throw new errors.ForwardedError(
70
+ `Failed to load template definition '${rawPointer}'`,
71
+ error
72
+ );
73
+ }
74
+ })
75
+ );
76
+ const templateNameConflicts = /* @__PURE__ */ new Map();
77
+ for (const { pointer, rawPointer } of templatePointerEntries) {
78
+ const conflict = templateNameConflicts.get(pointer.name);
79
+ if (conflict) {
80
+ throw new Error(
81
+ `Invalid template configuration, received conflicting template name '${pointer.name}' from '${conflict}' and '${rawPointer}'`
82
+ );
83
+ }
84
+ templateNameConflicts.set(pointer.name, rawPointer);
85
+ }
86
+ const packageNamePrefix = overrides.packageNamePrefix ?? config?.globals?.namePrefix ?? defaults.packageNamePrefix;
87
+ const { packageNamePluginInfix } = computePackageNamePluginInfix(
88
+ packageNamePrefix,
89
+ overrides.packageNamePluginInfix ?? config?.globals?.namePluginInfix
90
+ );
91
+ return {
92
+ isUsingDefaultTemplates: !config?.templates,
93
+ templatePointers: templatePointerEntries.map(({ pointer }) => pointer),
94
+ license: overrides.license ?? config?.globals?.license ?? defaults.license,
95
+ version: overrides.version ?? config?.globals?.version ?? defaults.version,
96
+ private: overrides.private ?? config?.globals?.private ?? defaults.private,
97
+ publishRegistry: overrides.publishRegistry ?? config?.globals?.publishRegistry ?? defaults.publishRegistry,
98
+ packageNamePrefix,
99
+ packageNamePluginInfix
100
+ };
101
+ }
102
+ function resolveLocalTemplatePath(pointer, basePath) {
103
+ if (path.isAbsolute(pointer)) {
104
+ throw new Error(`Template target may not be an absolute path`);
105
+ }
106
+ if (pointer.startsWith(".")) {
107
+ return path.resolve(basePath, pointer, types.TEMPLATE_FILE_NAME);
108
+ }
109
+ return require.resolve(`${pointer}/${types.TEMPLATE_FILE_NAME}`, {
110
+ paths: [basePath]
111
+ });
112
+ }
113
+ const partialTemplateDefinitionSchema = zod.z.object({
114
+ name: zod.z.string(),
115
+ description: zod.z.string().optional()
116
+ });
117
+ async function peekLocalTemplateDefinition(target) {
118
+ const content = await fs__default.default.readFile(target, "utf8");
119
+ const rawTemplate = yaml.parse(content);
120
+ const parsed = partialTemplateDefinitionSchema.safeParse(rawTemplate);
121
+ if (!parsed.success) {
122
+ throw v3.fromZodError(parsed.error);
123
+ }
124
+ return {
125
+ name: parsed.data.name,
126
+ description: parsed.data.description,
127
+ target
128
+ };
129
+ }
130
+
131
+ exports.loadPortableTemplateConfig = loadPortableTemplateConfig;
132
+ //# sourceMappingURL=loadPortableTemplateConfig.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadPortableTemplateConfig.cjs.js","sources":["../../../src/lib/preparation/loadPortableTemplateConfig.ts"],"sourcesContent":["/*\n * Copyright 2025 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 fs from 'fs-extra';\nimport { resolve as resolvePath, dirname, isAbsolute } from 'node:path';\nimport { targetPaths } from '@backstage/cli-common';\n\nimport { defaultTemplates } from '../defaultTemplates';\nimport {\n PortableTemplateConfig,\n PortableTemplatePointer,\n TEMPLATE_FILE_NAME,\n} from '../types';\nimport { parse as parseYaml } from 'yaml';\nimport { z } from 'zod';\nimport { fromZodError } from 'zod-validation-error/v3';\nimport { ForwardedError } from '@backstage/errors';\n\nconst defaults = {\n license: 'Apache-2.0',\n version: '0.1.0',\n private: true,\n publishRegistry: undefined,\n packageNamePrefix: '@internal/',\n packageNamePluginInfix: 'plugin-',\n};\n\nconst newConfigSchema = z\n .object({\n templates: z.array(z.string()).optional(),\n globals: z\n .object({\n license: z.string().optional(),\n version: z.string().optional(),\n private: z.boolean().optional(),\n publishRegistry: z.string().optional(),\n namePrefix: z.string().optional(),\n namePluginInfix: z.string().optional(),\n })\n .optional(),\n })\n .strict();\n\nconst pkgJsonWithNewConfigSchema = z.object({\n backstage: z\n .object({\n cli: z\n .object({\n new: newConfigSchema.optional(),\n })\n .optional(),\n })\n .optional(),\n});\n\ntype LoadConfigOptions = {\n packagePath?: string;\n overrides?: Partial<PortableTemplateConfig>;\n};\n\nfunction computePackageNamePluginInfix(\n packageNamePrefix: string,\n namePluginInfix?: string,\n) {\n const packageNamePluginInfix =\n namePluginInfix ??\n (packageNamePrefix.includes('backstage')\n ? defaults.packageNamePluginInfix\n : 'backstage-plugin-');\n\n return {\n packageNamePluginInfix,\n };\n}\n\nexport async function loadPortableTemplateConfig(\n options: LoadConfigOptions = {},\n): Promise<PortableTemplateConfig> {\n const { overrides = {} } = options;\n const pkgPath =\n options.packagePath ?? targetPaths.resolveRoot('package.json');\n const pkgJson = await fs.readJson(pkgPath);\n\n const parsed = pkgJsonWithNewConfigSchema.safeParse(pkgJson);\n if (!parsed.success) {\n throw new ForwardedError(\n `Failed to load templating configuration from '${pkgPath}'`,\n fromZodError(parsed.error),\n );\n }\n\n const config = parsed.data.backstage?.cli?.new;\n\n const basePath = dirname(pkgPath);\n const templatePointerEntries = await Promise.all(\n (config?.templates ?? defaultTemplates).map(async rawPointer => {\n try {\n const templatePath = resolveLocalTemplatePath(rawPointer, basePath);\n\n const pointer = await peekLocalTemplateDefinition(templatePath);\n return { pointer, rawPointer };\n } catch (error) {\n throw new ForwardedError(\n `Failed to load template definition '${rawPointer}'`,\n error,\n );\n }\n }),\n );\n\n const templateNameConflicts = new Map<string, string>();\n for (const { pointer, rawPointer } of templatePointerEntries) {\n const conflict = templateNameConflicts.get(pointer.name);\n if (conflict) {\n throw new Error(\n `Invalid template configuration, received conflicting template name '${pointer.name}' from '${conflict}' and '${rawPointer}'`,\n );\n }\n templateNameConflicts.set(pointer.name, rawPointer);\n }\n\n const packageNamePrefix =\n overrides.packageNamePrefix ??\n config?.globals?.namePrefix ??\n defaults.packageNamePrefix;\n\n const { packageNamePluginInfix } = computePackageNamePluginInfix(\n packageNamePrefix,\n overrides.packageNamePluginInfix ?? config?.globals?.namePluginInfix,\n );\n\n return {\n isUsingDefaultTemplates: !config?.templates,\n templatePointers: templatePointerEntries.map(({ pointer }) => pointer),\n license: overrides.license ?? config?.globals?.license ?? defaults.license,\n version: overrides.version ?? config?.globals?.version ?? defaults.version,\n private: overrides.private ?? config?.globals?.private ?? defaults.private,\n publishRegistry:\n overrides.publishRegistry ??\n config?.globals?.publishRegistry ??\n defaults.publishRegistry,\n packageNamePrefix,\n packageNamePluginInfix,\n };\n}\n\nfunction resolveLocalTemplatePath(pointer: string, basePath: string): string {\n if (isAbsolute(pointer)) {\n throw new Error(`Template target may not be an absolute path`);\n }\n\n if (pointer.startsWith('.')) {\n return resolvePath(basePath, pointer, TEMPLATE_FILE_NAME);\n }\n\n return require.resolve(`${pointer}/${TEMPLATE_FILE_NAME}`, {\n paths: [basePath],\n });\n}\n\nconst partialTemplateDefinitionSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\nasync function peekLocalTemplateDefinition(\n target: string,\n): Promise<PortableTemplatePointer> {\n const content = await fs.readFile(target, 'utf8');\n\n const rawTemplate = parseYaml(content);\n const parsed = partialTemplateDefinitionSchema.safeParse(rawTemplate);\n if (!parsed.success) {\n throw fromZodError(parsed.error);\n }\n\n return {\n name: parsed.data.name,\n description: parsed.data.description,\n target,\n };\n}\n"],"names":["z","targetPaths","fs","ForwardedError","fromZodError","dirname","defaultTemplates","isAbsolute","resolvePath","TEMPLATE_FILE_NAME","parseYaml"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var path = require('node:path');
4
+
5
+ function resolvePackageParams(options) {
6
+ const baseName = getBaseNameForRole(options.roleParams);
7
+ const isPlugin = options.roleParams.role.includes("plugin");
8
+ const pluginInfix = isPlugin ? options.pluginInfix : "";
9
+ return {
10
+ packageName: `${options.packagePrefix}${pluginInfix}${baseName}`,
11
+ packagePath: path.join(isPlugin ? "plugins" : "packages", baseName)
12
+ };
13
+ }
14
+ function getBaseNameForRole(roleParams) {
15
+ switch (roleParams.role) {
16
+ case "web-library":
17
+ case "node-library":
18
+ case "common-library":
19
+ return roleParams.name;
20
+ case "plugin-web-library":
21
+ return `${roleParams.pluginId}-react`;
22
+ case "plugin-node-library":
23
+ return `${roleParams.pluginId}-node`;
24
+ case "plugin-common-library":
25
+ return `${roleParams.pluginId}-common`;
26
+ case "frontend-plugin":
27
+ return `${roleParams.pluginId}`;
28
+ case "frontend-plugin-module":
29
+ return `${roleParams.pluginId}-module-${roleParams.moduleId}`;
30
+ case "backend-plugin":
31
+ return `${roleParams.pluginId}-backend`;
32
+ case "backend-plugin-module":
33
+ return `${roleParams.pluginId}-backend-module-${roleParams.moduleId}`;
34
+ default:
35
+ throw new Error(`Unknown role ${roleParams.role}`);
36
+ }
37
+ }
38
+
39
+ exports.resolvePackageParams = resolvePackageParams;
40
+ //# sourceMappingURL=resolvePackageParams.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePackageParams.cjs.js","sources":["../../../src/lib/preparation/resolvePackageParams.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { join as joinPath } from 'node:path';\nimport { PortableTemplateInputRoleParams } from '../types';\n\nexport type ResolvePackageParamsOptions = {\n roleParams: PortableTemplateInputRoleParams;\n pluginInfix: string;\n packagePrefix: string;\n};\n\nexport type PortableTemplatePackageInfo = {\n packageName: string;\n packagePath: string;\n};\n\nexport function resolvePackageParams(\n options: ResolvePackageParamsOptions,\n): PortableTemplatePackageInfo {\n const baseName = getBaseNameForRole(options.roleParams);\n const isPlugin = options.roleParams.role.includes('plugin');\n const pluginInfix = isPlugin ? options.pluginInfix : '';\n return {\n packageName: `${options.packagePrefix}${pluginInfix}${baseName}`,\n packagePath: joinPath(isPlugin ? 'plugins' : 'packages', baseName),\n };\n}\n\nfunction getBaseNameForRole(\n roleParams: PortableTemplateInputRoleParams,\n): string {\n switch (roleParams.role) {\n case 'web-library':\n case 'node-library':\n case 'common-library':\n return roleParams.name;\n case 'plugin-web-library':\n return `${roleParams.pluginId}-react`;\n case 'plugin-node-library':\n return `${roleParams.pluginId}-node`;\n case 'plugin-common-library':\n return `${roleParams.pluginId}-common`;\n case 'frontend-plugin':\n return `${roleParams.pluginId}`;\n case 'frontend-plugin-module':\n return `${roleParams.pluginId}-module-${roleParams.moduleId}`;\n case 'backend-plugin':\n return `${roleParams.pluginId}-backend`;\n case 'backend-plugin-module':\n return `${roleParams.pluginId}-backend-module-${roleParams.moduleId}`;\n default:\n throw new Error(`Unknown role ${(roleParams as { role: string }).role}`);\n }\n}\n"],"names":["joinPath"],"mappings":";;;;AA8BO,SAAS,qBACd,OAAA,EAC6B;AAC7B,EAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,OAAA,CAAQ,UAAU,CAAA;AACtD,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,UAAA,CAAW,IAAA,CAAK,SAAS,QAAQ,CAAA;AAC1D,EAAA,MAAM,WAAA,GAAc,QAAA,GAAW,OAAA,CAAQ,WAAA,GAAc,EAAA;AACrD,EAAA,OAAO;AAAA,IACL,aAAa,CAAA,EAAG,OAAA,CAAQ,aAAa,CAAA,EAAG,WAAW,GAAG,QAAQ,CAAA,CAAA;AAAA,IAC9D,WAAA,EAAaA,SAAA,CAAS,QAAA,GAAW,SAAA,GAAY,YAAY,QAAQ;AAAA,GACnE;AACF;AAEA,SAAS,mBACP,UAAA,EACQ;AACR,EAAA,QAAQ,WAAW,IAAA;AAAM,IACvB,KAAK,aAAA;AAAA,IACL,KAAK,cAAA;AAAA,IACL,KAAK,gBAAA;AACH,MAAA,OAAO,UAAA,CAAW,IAAA;AAAA,IACpB,KAAK,oBAAA;AACH,MAAA,OAAO,CAAA,EAAG,WAAW,QAAQ,CAAA,MAAA,CAAA;AAAA,IAC/B,KAAK,qBAAA;AACH,MAAA,OAAO,CAAA,EAAG,WAAW,QAAQ,CAAA,KAAA,CAAA;AAAA,IAC/B,KAAK,uBAAA;AACH,MAAA,OAAO,CAAA,EAAG,WAAW,QAAQ,CAAA,OAAA,CAAA;AAAA,IAC/B,KAAK,iBAAA;AACH,MAAA,OAAO,CAAA,EAAG,WAAW,QAAQ,CAAA,CAAA;AAAA,IAC/B,KAAK,wBAAA;AACH,MAAA,OAAO,CAAA,EAAG,UAAA,CAAW,QAAQ,CAAA,QAAA,EAAW,WAAW,QAAQ,CAAA,CAAA;AAAA,IAC7D,KAAK,gBAAA;AACH,MAAA,OAAO,CAAA,EAAG,WAAW,QAAQ,CAAA,QAAA,CAAA;AAAA,IAC/B,KAAK,uBAAA;AACH,MAAA,OAAO,CAAA,EAAG,UAAA,CAAW,QAAQ,CAAA,gBAAA,EAAmB,WAAW,QAAQ,CAAA,CAAA;AAAA,IACrE;AACE,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,aAAA,EAAiB,UAAA,CAAgC,IAAI,CAAA,CAAE,CAAA;AAAA;AAE7E;;;;"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var inquirer = require('inquirer');
4
+
5
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
6
+
7
+ var inquirer__default = /*#__PURE__*/_interopDefaultCompat(inquirer);
8
+
9
+ async function selectTemplateInteractively(config, preselectedTemplateName) {
10
+ let selectedName = preselectedTemplateName;
11
+ if (config.isUsingDefaultTemplates && selectedName === "plugin") {
12
+ console.warn(
13
+ `DEPRECATION WARNING: The 'plugin' template is deprecated, use 'frontend-plugin' instead`
14
+ );
15
+ selectedName = "frontend-plugin";
16
+ }
17
+ if (!selectedName) {
18
+ const answers = await inquirer__default.default.prompt([
19
+ {
20
+ type: "list",
21
+ name: "name",
22
+ message: "What do you want to create?",
23
+ choices: config.templatePointers.map(
24
+ (t) => t.description ? { name: `${t.name} - ${t.description}`, value: t.name } : t.name
25
+ )
26
+ }
27
+ ]);
28
+ selectedName = answers.name;
29
+ }
30
+ const template = config.templatePointers.find((t) => t.name === selectedName);
31
+ if (!template) {
32
+ throw new Error(`Template '${selectedName}' not found`);
33
+ }
34
+ return template;
35
+ }
36
+
37
+ exports.selectTemplateInteractively = selectTemplateInteractively;
38
+ //# sourceMappingURL=selectTemplateInteractively.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectTemplateInteractively.cjs.js","sources":["../../../src/lib/preparation/selectTemplateInteractively.ts"],"sourcesContent":["/*\n * Copyright 2025 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 inquirer from 'inquirer';\nimport { PortableTemplateConfig, PortableTemplatePointer } from '../types';\n\nexport async function selectTemplateInteractively(\n config: PortableTemplateConfig,\n preselectedTemplateName?: string,\n): Promise<PortableTemplatePointer> {\n let selectedName = preselectedTemplateName;\n\n if (config.isUsingDefaultTemplates && selectedName === 'plugin') {\n console.warn(\n `DEPRECATION WARNING: The 'plugin' template is deprecated, use 'frontend-plugin' instead`,\n );\n selectedName = 'frontend-plugin';\n }\n\n if (!selectedName) {\n const answers = await inquirer.prompt<{ name: string }>([\n {\n type: 'list',\n name: 'name',\n message: 'What do you want to create?',\n choices: config.templatePointers.map(t =>\n t.description\n ? { name: `${t.name} - ${t.description}`, value: t.name }\n : t.name,\n ),\n },\n ]);\n selectedName = answers.name;\n }\n\n const template = config.templatePointers.find(t => t.name === selectedName);\n if (!template) {\n throw new Error(`Template '${selectedName}' not found`);\n }\n return template;\n}\n"],"names":["inquirer"],"mappings":";;;;;;;;AAmBA,eAAsB,2BAAA,CACpB,QACA,uBAAA,EACkC;AAClC,EAAA,IAAI,YAAA,GAAe,uBAAA;AAEnB,EAAA,IAAI,MAAA,CAAO,uBAAA,IAA2B,YAAA,KAAiB,QAAA,EAAU;AAC/D,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN,CAAA,uFAAA;AAAA,KACF;AACA,IAAA,YAAA,GAAe,iBAAA;AAAA,EACjB;AAEA,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,MAAM,OAAA,GAAU,MAAMA,yBAAA,CAAS,MAAA,CAAyB;AAAA,MACtD;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,IAAA,EAAM,MAAA;AAAA,QACN,OAAA,EAAS,6BAAA;AAAA,QACT,OAAA,EAAS,OAAO,gBAAA,CAAiB,GAAA;AAAA,UAAI,OACnC,CAAA,CAAE,WAAA,GACE,EAAE,IAAA,EAAM,GAAG,CAAA,CAAE,IAAI,CAAA,GAAA,EAAM,CAAA,CAAE,WAAW,CAAA,CAAA,EAAI,KAAA,EAAO,CAAA,CAAE,IAAA,KACjD,CAAA,CAAE;AAAA;AACR;AACF,KACD,CAAA;AACD,IAAA,YAAA,GAAe,OAAA,CAAQ,IAAA;AAAA,EACzB;AAEA,EAAA,MAAM,WAAW,MAAA,CAAO,gBAAA,CAAiB,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,YAAY,CAAA;AAC1E,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,UAAA,EAAa,YAAY,CAAA,WAAA,CAAa,CAAA;AAAA,EACxD;AACA,EAAA,OAAO,QAAA;AACT;;;;"}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var chalk = require('chalk');
4
+ var ora = require('ora');
5
+
6
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
7
+
8
+ var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
9
+ var ora__default = /*#__PURE__*/_interopDefaultCompat(ora);
10
+
11
+ const TASK_NAME_MAX_LENGTH = 14;
12
+ class Task {
13
+ static log(name = "") {
14
+ process.stderr.write(`${chalk__default.default.green(name)}
15
+ `);
16
+ }
17
+ static error(message = "") {
18
+ process.stderr.write(`
19
+ ${chalk__default.default.red(message)}
20
+
21
+ `);
22
+ }
23
+ static section(name) {
24
+ const title = chalk__default.default.green(`${name}:`);
25
+ process.stderr.write(`
26
+ ${title}
27
+ `);
28
+ }
29
+ static exit(code = 0) {
30
+ process.exit(code);
31
+ }
32
+ static async forItem(task, item, taskFunc) {
33
+ const paddedTask = chalk__default.default.green(task.padEnd(TASK_NAME_MAX_LENGTH));
34
+ const spinner = ora__default.default({
35
+ prefixText: chalk__default.default.green(` ${paddedTask}${chalk__default.default.cyan(item)}`),
36
+ spinner: "arc",
37
+ color: "green"
38
+ }).start();
39
+ try {
40
+ const result = await taskFunc();
41
+ spinner.succeed();
42
+ return result;
43
+ } catch (error) {
44
+ spinner.fail();
45
+ throw error;
46
+ }
47
+ }
48
+ }
49
+
50
+ exports.Task = Task;
51
+ //# sourceMappingURL=tasks.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.cjs.js","sources":["../../src/lib/tasks.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 chalk from 'chalk';\nimport ora from 'ora';\n\nconst TASK_NAME_MAX_LENGTH = 14;\n\nexport class Task {\n static log(name: string = '') {\n process.stderr.write(`${chalk.green(name)}\\n`);\n }\n\n static error(message: string = '') {\n process.stderr.write(`\\n${chalk.red(message)}\\n\\n`);\n }\n\n static section(name: string) {\n const title = chalk.green(`${name}:`);\n process.stderr.write(`\\n ${title}\\n`);\n }\n\n static exit(code: number = 0) {\n process.exit(code);\n }\n\n static async forItem<T = void>(\n task: string,\n item: string,\n taskFunc: () => Promise<T>,\n ): Promise<T> {\n const paddedTask = chalk.green(task.padEnd(TASK_NAME_MAX_LENGTH));\n\n const spinner = ora({\n prefixText: chalk.green(` ${paddedTask}${chalk.cyan(item)}`),\n spinner: 'arc',\n color: 'green',\n }).start();\n\n try {\n const result = await taskFunc();\n spinner.succeed();\n return result;\n } catch (error) {\n spinner.fail();\n throw error;\n }\n }\n}\n"],"names":["chalk","ora"],"mappings":";;;;;;;;;;AAmBA,MAAM,oBAAA,GAAuB,EAAA;AAEtB,MAAM,IAAA,CAAK;AAAA,EAChB,OAAO,GAAA,CAAI,IAAA,GAAe,EAAA,EAAI;AAC5B,IAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,CAAA,EAAGA,sBAAA,CAAM,KAAA,CAAM,IAAI,CAAC;AAAA,CAAI,CAAA;AAAA,EAC/C;AAAA,EAEA,OAAO,KAAA,CAAM,OAAA,GAAkB,EAAA,EAAI;AACjC,IAAA,OAAA,CAAQ,OAAO,KAAA,CAAM;AAAA,EAAKA,sBAAA,CAAM,GAAA,CAAI,OAAO,CAAC;;AAAA,CAAM,CAAA;AAAA,EACpD;AAAA,EAEA,OAAO,QAAQ,IAAA,EAAc;AAC3B,IAAA,MAAM,KAAA,GAAQA,sBAAA,CAAM,KAAA,CAAM,CAAA,EAAG,IAAI,CAAA,CAAA,CAAG,CAAA;AACpC,IAAA,OAAA,CAAQ,OAAO,KAAA,CAAM;AAAA,CAAA,EAAM,KAAK;AAAA,CAAI,CAAA;AAAA,EACtC;AAAA,EAEA,OAAO,IAAA,CAAK,IAAA,GAAe,CAAA,EAAG;AAC5B,IAAA,OAAA,CAAQ,KAAK,IAAI,CAAA;AAAA,EACnB;AAAA,EAEA,aAAa,OAAA,CACX,IAAA,EACA,IAAA,EACA,QAAA,EACY;AACZ,IAAA,MAAM,aAAaA,sBAAA,CAAM,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,oBAAoB,CAAC,CAAA;AAEhE,IAAA,MAAM,UAAUC,oBAAA,CAAI;AAAA,MAClB,UAAA,EAAYD,sBAAA,CAAM,KAAA,CAAM,CAAA,EAAA,EAAK,UAAU,GAAGA,sBAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,CAAA;AAAA,MAC5D,OAAA,EAAS,KAAA;AAAA,MACT,KAAA,EAAO;AAAA,KACR,EAAE,KAAA,EAAM;AAET,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,EAAS;AAC9B,MAAA,OAAA,CAAQ,OAAA,EAAQ;AAChB,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,IAAA,EAAK;AACb,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AACF;;;;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ const TEMPLATE_FILE_NAME = "portable-template.yaml";
4
+ const TEMPLATE_ROLES = [
5
+ "web-library",
6
+ "node-library",
7
+ "common-library",
8
+ "plugin-web-library",
9
+ "plugin-node-library",
10
+ "plugin-common-library",
11
+ "frontend-plugin",
12
+ "frontend-plugin-module",
13
+ "backend-plugin",
14
+ "backend-plugin-module"
15
+ ];
16
+
17
+ exports.TEMPLATE_FILE_NAME = TEMPLATE_FILE_NAME;
18
+ exports.TEMPLATE_ROLES = TEMPLATE_ROLES;
19
+ //# sourceMappingURL=types.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs.js","sources":["../../src/lib/types.ts"],"sourcesContent":["/*\n * Copyright 2021 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\nexport type PortableTemplateConfig = {\n /**\n * The pointers to templates that can be used.\n */\n templatePointers: PortableTemplatePointer[];\n\n /**\n * Whether the default set of templates are being used or not.\n */\n isUsingDefaultTemplates: boolean;\n\n license: string;\n\n version: string;\n\n private: boolean;\n\n publishRegistry?: string;\n\n packageNamePrefix: string;\n\n packageNamePluginInfix: string;\n};\n\nexport const TEMPLATE_FILE_NAME = 'portable-template.yaml';\n\nexport type PortableTemplatePointer = {\n name: string;\n description?: string;\n target: string;\n};\n\nexport const TEMPLATE_ROLES = [\n 'web-library',\n 'node-library',\n 'common-library',\n 'plugin-web-library',\n 'plugin-node-library',\n 'plugin-common-library',\n 'frontend-plugin',\n 'frontend-plugin-module',\n 'backend-plugin',\n 'backend-plugin-module',\n] as const;\n\nexport type PortableTemplateRole = (typeof TEMPLATE_ROLES)[number];\n\nexport type PortableTemplateFile = {\n path: string;\n content: string;\n syntax?: 'handlebars';\n};\n\nexport type PortableTemplate = {\n name: string;\n role: PortableTemplateRole;\n files: PortableTemplateFile[];\n values: Record<string, string>;\n};\n\nexport type PortableTemplateParams = {\n [KName in string]?: string | number | boolean;\n};\n\nexport type PortableTemplateInputRoleParams =\n | {\n role: 'web-library' | 'node-library' | 'common-library';\n name: string;\n }\n | {\n role:\n | 'plugin-web-library'\n | 'plugin-node-library'\n | 'plugin-common-library'\n | 'frontend-plugin'\n | 'backend-plugin';\n pluginId: string;\n }\n | {\n role: 'frontend-plugin-module' | 'backend-plugin-module';\n pluginId: string;\n moduleId: string;\n };\n\nexport type PortableTemplateInput = {\n roleParams: PortableTemplateInputRoleParams;\n\n owner?: string;\n\n license: string;\n\n version: string;\n\n private: boolean;\n\n publishRegistry?: string;\n\n packageName: string;\n\n packagePath: string;\n};\n"],"names":[],"mappings":";;AAwCO,MAAM,kBAAA,GAAqB;AAQ3B,MAAM,cAAA,GAAiB;AAAA,EAC5B,aAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,qBAAA;AAAA,EACA,uBAAA;AAAA,EACA,iBAAA;AAAA,EACA,wBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF;;;;;"}
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ var semver = require('semver');
4
+ var _package$m = require('../packages/backend-defaults/package.json.cjs.js');
5
+ var _package$l = require('../packages/backend-plugin-api/package.json.cjs.js');
6
+ var _package$k = require('../packages/backend-test-utils/package.json.cjs.js');
7
+ var _package$j = require('../packages/catalog-client/package.json.cjs.js');
8
+ var _package$i = require('../packages/cli/package.json.cjs.js');
9
+ var _package$h = require('../packages/config/package.json.cjs.js');
10
+ var _package$g = require('../packages/core-app-api/package.json.cjs.js');
11
+ var _package$f = require('../packages/core-components/package.json.cjs.js');
12
+ var _package$e = require('../packages/core-plugin-api/package.json.cjs.js');
13
+ var _package$d = require('../packages/dev-utils/package.json.cjs.js');
14
+ var _package$c = require('../packages/errors/package.json.cjs.js');
15
+ var _package$b = require('../packages/frontend-dev-utils/package.json.cjs.js');
16
+ var _package$a = require('../packages/frontend-defaults/package.json.cjs.js');
17
+ var _package$9 = require('../packages/frontend-plugin-api/package.json.cjs.js');
18
+ var _package$8 = require('../packages/frontend-test-utils/package.json.cjs.js');
19
+ var _package$7 = require('../packages/test-utils/package.json.cjs.js');
20
+ var _package$6 = require('../packages/theme/package.json.cjs.js');
21
+ var _package$5 = require('../packages/types/package.json.cjs.js');
22
+ var _package$2 = require('../plugins/auth-backend/package.json.cjs.js');
23
+ var _package$1 = require('../plugins/auth-backend-module-guest-provider/package.json.cjs.js');
24
+ var _package = require('../plugins/catalog-node/package.json.cjs.js');
25
+ var _package$4 = require('../plugins/scaffolder-node/package.json.cjs.js');
26
+ var _package$3 = require('../plugins/scaffolder-node-test-utils/package.json.cjs.js');
27
+
28
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
29
+
30
+ var semver__default = /*#__PURE__*/_interopDefaultCompat(semver);
31
+
32
+ const packageVersions = {
33
+ "@backstage/backend-defaults": _package$m.version,
34
+ "@backstage/backend-plugin-api": _package$l.version,
35
+ "@backstage/backend-test-utils": _package$k.version,
36
+ "@backstage/catalog-client": _package$j.version,
37
+ "@backstage/cli": _package$i.version,
38
+ "@backstage/config": _package$h.version,
39
+ "@backstage/core-app-api": _package$g.version,
40
+ "@backstage/core-components": _package$f.version,
41
+ "@backstage/core-plugin-api": _package$e.version,
42
+ "@backstage/dev-utils": _package$d.version,
43
+ "@backstage/errors": _package$c.version,
44
+ "@backstage/frontend-dev-utils": _package$b.version,
45
+ "@backstage/frontend-defaults": _package$a.version,
46
+ "@backstage/frontend-plugin-api": _package$9.version,
47
+ "@backstage/frontend-test-utils": _package$8.version,
48
+ "@backstage/test-utils": _package$7.version,
49
+ "@backstage/theme": _package$6.version,
50
+ "@backstage/types": _package$5.version,
51
+ "@backstage/plugin-scaffolder-node": _package$4.version,
52
+ "@backstage/plugin-scaffolder-node-test-utils": _package$3.version,
53
+ "@backstage/plugin-auth-backend": _package$2.version,
54
+ "@backstage/plugin-auth-backend-module-guest-provider": _package$1.version,
55
+ "@backstage/plugin-catalog-node": _package.version
56
+ };
57
+ function createPackageVersionProvider(lockfile, options) {
58
+ return (name, versionHint) => {
59
+ const packageVersion = packageVersions[name];
60
+ const lockfileEntries = lockfile?.get(name);
61
+ const lockfileEntry = lockfileEntries?.find(
62
+ (entry) => entry.range.startsWith("workspace:")
63
+ );
64
+ if (lockfileEntry) {
65
+ return "workspace:^";
66
+ }
67
+ if (options?.preferBackstageProtocol && name.startsWith("@backstage/")) {
68
+ return "backstage:^";
69
+ }
70
+ const targetVersion = versionHint || packageVersion;
71
+ if (!targetVersion) {
72
+ throw new Error(`No version available for package ${name}`);
73
+ }
74
+ const validRanges = lockfileEntries?.filter(
75
+ (entry) => semver__default.default.satisfies(targetVersion, entry.range)
76
+ );
77
+ const highestRange = validRanges?.slice(-1)[0];
78
+ if (highestRange?.range) {
79
+ return highestRange?.range;
80
+ }
81
+ if (packageVersion) {
82
+ return `^${packageVersion}`;
83
+ }
84
+ if (semver__default.default.parse(versionHint)?.prerelease.length) {
85
+ return versionHint;
86
+ }
87
+ return versionHint?.match(/^[\d\.]+$/) ? `^${versionHint}` : versionHint;
88
+ };
89
+ }
90
+
91
+ exports.createPackageVersionProvider = createPackageVersionProvider;
92
+ exports.packageVersions = packageVersions;
93
+ //# sourceMappingURL=version.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.cjs.js","sources":["../../src/lib/version.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 semver from 'semver';\nimport { Lockfile } from '@backstage/cli-node';\n\n/* eslint-disable @backstage/no-relative-monorepo-imports */\n/*\nThis is a list of all packages used by the templates. If dependencies are added or removed,\nthis list should be updated as well.\n\nThe list, and the accompanying devDependencies entries, are here to ensure correct versioning\nand bumping of this package. Without this list the version would not be bumped unless we\nmanually trigger a release.\n\nThis does not create an actual dependency on these packages and does not bring in any code.\nRollup will extract the value of the version field in each package at build time without\nleaving any imports in place.\n*/\n\nimport { version as backendDefaults } from '../../../backend-defaults/package.json';\nimport { version as backendPluginApi } from '../../../backend-plugin-api/package.json';\nimport { version as backendTestUtils } from '../../../backend-test-utils/package.json';\nimport { version as catalogClient } from '../../../catalog-client/package.json';\nimport { version as cli } from '../../../cli/package.json';\nimport { version as config } from '../../../config/package.json';\nimport { version as coreAppApi } from '../../../core-app-api/package.json';\nimport { version as coreComponents } from '../../../core-components/package.json';\nimport { version as corePluginApi } from '../../../core-plugin-api/package.json';\nimport { version as devUtils } from '../../../dev-utils/package.json';\nimport { version as errors } from '../../../errors/package.json';\nimport { version as frontendDevUtils } from '../../../frontend-dev-utils/package.json';\nimport { version as frontendDefaults } from '../../../frontend-defaults/package.json';\nimport { version as frontendPluginApi } from '../../../frontend-plugin-api/package.json';\nimport { version as frontendTestUtils } from '../../../frontend-test-utils/package.json';\nimport { version as testUtils } from '../../../test-utils/package.json';\nimport { version as theme } from '../../../theme/package.json';\nimport { version as types } from '../../../types/package.json';\nimport { version as authBackend } from '../../../../plugins/auth-backend/package.json';\nimport { version as authBackendModuleGuestProvider } from '../../../../plugins/auth-backend-module-guest-provider/package.json';\nimport { version as catalogNode } from '../../../../plugins/catalog-node/package.json';\nimport { version as scaffolderNode } from '../../../../plugins/scaffolder-node/package.json';\nimport { version as scaffolderNodeTestUtils } from '../../../../plugins/scaffolder-node-test-utils/package.json';\n\nexport const packageVersions: Record<string, string> = {\n '@backstage/backend-defaults': backendDefaults,\n '@backstage/backend-plugin-api': backendPluginApi,\n '@backstage/backend-test-utils': backendTestUtils,\n '@backstage/catalog-client': catalogClient,\n '@backstage/cli': cli,\n '@backstage/config': config,\n '@backstage/core-app-api': coreAppApi,\n '@backstage/core-components': coreComponents,\n '@backstage/core-plugin-api': corePluginApi,\n '@backstage/dev-utils': devUtils,\n '@backstage/errors': errors,\n '@backstage/frontend-dev-utils': frontendDevUtils,\n '@backstage/frontend-defaults': frontendDefaults,\n '@backstage/frontend-plugin-api': frontendPluginApi,\n '@backstage/frontend-test-utils': frontendTestUtils,\n '@backstage/test-utils': testUtils,\n '@backstage/theme': theme,\n '@backstage/types': types,\n '@backstage/plugin-scaffolder-node': scaffolderNode,\n '@backstage/plugin-scaffolder-node-test-utils': scaffolderNodeTestUtils,\n '@backstage/plugin-auth-backend': authBackend,\n '@backstage/plugin-auth-backend-module-guest-provider':\n authBackendModuleGuestProvider,\n '@backstage/plugin-catalog-node': catalogNode,\n};\n\nexport function createPackageVersionProvider(\n lockfile?: Lockfile,\n options?: {\n preferBackstageProtocol?: boolean;\n },\n) {\n return (name: string, versionHint?: string): string => {\n const packageVersion = packageVersions[name];\n\n // 1) workspace precedence (existing logic) - check this first\n const lockfileEntries = lockfile?.get(name);\n const lockfileEntry = lockfileEntries?.find(entry =>\n entry.range.startsWith('workspace:'),\n );\n if (lockfileEntry) {\n return 'workspace:^';\n }\n\n // 2) backstage:^ when plugin is present and allowed\n if (options?.preferBackstageProtocol && name.startsWith('@backstage/')) {\n return 'backstage:^';\n }\n\n // 3) fallback to current npm resolution\n const targetVersion = versionHint || packageVersion;\n if (!targetVersion) {\n throw new Error(`No version available for package ${name}`);\n }\n\n const validRanges = lockfileEntries?.filter(entry =>\n semver.satisfies(targetVersion, entry.range),\n );\n const highestRange = validRanges?.slice(-1)[0];\n\n if (highestRange?.range) {\n return highestRange?.range;\n }\n if (packageVersion) {\n return `^${packageVersion}`;\n }\n if (semver.parse(versionHint)?.prerelease.length) {\n return versionHint!;\n }\n return versionHint?.match(/^[\\d\\.]+$/) ? `^${versionHint}` : versionHint!;\n };\n}\n"],"names":["backendDefaults","backendPluginApi","backendTestUtils","catalogClient","cli","config","coreAppApi","coreComponents","corePluginApi","devUtils","errors","frontendDevUtils","frontendDefaults","frontendPluginApi","frontendTestUtils","testUtils","theme","types","scaffolderNode","scaffolderNodeTestUtils","authBackend","authBackendModuleGuestProvider","catalogNode","semver"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDO,MAAM,eAAA,GAA0C;AAAA,EACrD,6BAAA,EAA+BA,kBAAA;AAAA,EAC/B,+BAAA,EAAiCC,kBAAA;AAAA,EACjC,+BAAA,EAAiCC,kBAAA;AAAA,EACjC,2BAAA,EAA6BC,kBAAA;AAAA,EAC7B,gBAAA,EAAkBC,kBAAA;AAAA,EAClB,mBAAA,EAAqBC,kBAAA;AAAA,EACrB,yBAAA,EAA2BC,kBAAA;AAAA,EAC3B,4BAAA,EAA8BC,kBAAA;AAAA,EAC9B,4BAAA,EAA8BC,kBAAA;AAAA,EAC9B,sBAAA,EAAwBC,kBAAA;AAAA,EACxB,mBAAA,EAAqBC,kBAAA;AAAA,EACrB,+BAAA,EAAiCC,kBAAA;AAAA,EACjC,8BAAA,EAAgCC,kBAAA;AAAA,EAChC,gCAAA,EAAkCC,kBAAA;AAAA,EAClC,gCAAA,EAAkCC,kBAAA;AAAA,EAClC,uBAAA,EAAyBC,kBAAA;AAAA,EACzB,kBAAA,EAAoBC,kBAAA;AAAA,EACpB,kBAAA,EAAoBC,kBAAA;AAAA,EACpB,mCAAA,EAAqCC,kBAAA;AAAA,EACrC,8CAAA,EAAgDC,kBAAA;AAAA,EAChD,gCAAA,EAAkCC,kBAAA;AAAA,EAClC,sDAAA,EACEC,kBAAA;AAAA,EACF,gCAAA,EAAkCC;AACpC;AAEO,SAAS,4BAAA,CACd,UACA,OAAA,EAGA;AACA,EAAA,OAAO,CAAC,MAAc,WAAA,KAAiC;AACrD,IAAA,MAAM,cAAA,GAAiB,gBAAgB,IAAI,CAAA;AAG3C,IAAA,MAAM,eAAA,GAAkB,QAAA,EAAU,GAAA,CAAI,IAAI,CAAA;AAC1C,IAAA,MAAM,gBAAgB,eAAA,EAAiB,IAAA;AAAA,MAAK,CAAA,KAAA,KAC1C,KAAA,CAAM,KAAA,CAAM,UAAA,CAAW,YAAY;AAAA,KACrC;AACA,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,OAAO,aAAA;AAAA,IACT;AAGA,IAAA,IAAI,OAAA,EAAS,uBAAA,IAA2B,IAAA,CAAK,UAAA,CAAW,aAAa,CAAA,EAAG;AACtE,MAAA,OAAO,aAAA;AAAA,IACT;AAGA,IAAA,MAAM,gBAAgB,WAAA,IAAe,cAAA;AACrC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iCAAA,EAAoC,IAAI,CAAA,CAAE,CAAA;AAAA,IAC5D;AAEA,IAAA,MAAM,cAAc,eAAA,EAAiB,MAAA;AAAA,MAAO,CAAA,KAAA,KAC1CC,uBAAA,CAAO,SAAA,CAAU,aAAA,EAAe,MAAM,KAAK;AAAA,KAC7C;AACA,IAAA,MAAM,YAAA,GAAe,WAAA,EAAa,KAAA,CAAM,EAAE,EAAE,CAAC,CAAA;AAE7C,IAAA,IAAI,cAAc,KAAA,EAAO;AACvB,MAAA,OAAO,YAAA,EAAc,KAAA;AAAA,IACvB;AACA,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,OAAO,IAAI,cAAc,CAAA,CAAA;AAAA,IAC3B;AACA,IAAA,IAAIA,uBAAA,CAAO,KAAA,CAAM,WAAW,CAAA,EAAG,WAAW,MAAA,EAAQ;AAChD,MAAA,OAAO,WAAA;AAAA,IACT;AACA,IAAA,OAAO,aAAa,KAAA,CAAM,WAAW,CAAA,GAAI,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,GAAK,WAAA;AAAA,EAC/D,CAAA;AACF;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var version = "0.0.0-nightly-20260317031259";
4
+
5
+ exports.version = version;
6
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var version = "0.0.0-nightly-20260317031259";
4
+
5
+ exports.version = version;
6
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var version = "0.0.0-nightly-20260317031259";
4
+
5
+ exports.version = version;
6
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var version = "0.0.0-nightly-20260317031259";
4
+
5
+ exports.version = version;
6
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var version = "0.0.0-nightly-20260317031259";
4
+
5
+ exports.version = version;
6
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,99 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var name = "@backstage/cli-module-new";
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-new"
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
+ chalk: "^4.0.0",
42
+ cleye: "^2.3.0",
43
+ "fs-extra": "^11.2.0",
44
+ handlebars: "^4.7.3",
45
+ inquirer: "^8.2.0",
46
+ lodash: "^4.17.21",
47
+ ora: "^5.3.0",
48
+ "recursive-readdir": "^2.2.2",
49
+ semver: "^7.5.3",
50
+ yaml: "^2.0.0",
51
+ zod: "^3.25.76",
52
+ "zod-validation-error": "^4.0.2"
53
+ };
54
+ var devDependencies = {
55
+ "@backstage/backend-test-utils": "workspace:*",
56
+ "@backstage/cli": "workspace:*",
57
+ "@backstage/core-plugin-api": "workspace:*",
58
+ "@backstage/test-utils": "workspace:*",
59
+ "@types/fs-extra": "^11.0.0",
60
+ "@types/inquirer": "^8.1.3",
61
+ "@types/lodash": "^4.14.151",
62
+ "@types/recursive-readdir": "^2.2.0"
63
+ };
64
+ var bin = "bin/backstage-cli-module-new";
65
+ var packageJson = {
66
+ name: name,
67
+ version: version,
68
+ description: description,
69
+ backstage: backstage,
70
+ publishConfig: publishConfig,
71
+ homepage: homepage,
72
+ repository: repository,
73
+ license: license,
74
+ main: main,
75
+ types: types,
76
+ files: files,
77
+ scripts: scripts,
78
+ dependencies: dependencies,
79
+ devDependencies: devDependencies,
80
+ bin: bin
81
+ };
82
+
83
+ exports.backstage = backstage;
84
+ exports.bin = bin;
85
+ exports.default = packageJson;
86
+ exports.dependencies = dependencies;
87
+ exports.description = description;
88
+ exports.devDependencies = devDependencies;
89
+ exports.files = files;
90
+ exports.homepage = homepage;
91
+ exports.license = license;
92
+ exports.main = main;
93
+ exports.name = name;
94
+ exports.publishConfig = publishConfig;
95
+ exports.repository = repository;
96
+ exports.scripts = scripts;
97
+ exports.types = types;
98
+ exports.version = version;
99
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var version = "1.3.6";
4
+
5
+ exports.version = version;
6
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var version = "0.0.0-nightly-20260317031259";
4
+
5
+ exports.version = version;
6
+ //# sourceMappingURL=package.json.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}