@backstage/cli 0.36.0-next.2 → 0.36.0
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 +95 -0
- package/config/eslint-factory.js +1 -0
- package/config/getJestEnvironment.js +7 -29
- package/config/jest-environment-jsdom/index.js +9 -43
- package/config/jest.js +7 -401
- package/config/jestCacheResultProcessor.cjs +10 -6
- package/config/jestCachingModuleLoader.js +11 -19
- package/config/jestFileTransform.js +11 -28
- package/config/jestRejectNetworkRequests.js +10 -53
- package/config/jestSucraseTransform.js +10 -70
- package/config/jestSwcTransform.js +10 -27
- package/config/jestYamlTransform.js +11 -24
- package/config/nodeTransform.cjs +10 -70
- package/config/nodeTransformHooks.mjs +4 -278
- package/config/webpack-public-path.js +10 -14
- package/dist/cli-internal/src/InternalCliModule.cjs.js +11 -0
- package/dist/cli-internal/src/InternalCommandNode.cjs.js +25 -0
- package/dist/cli-internal/src/knownPluginPackages.cjs.js +40 -0
- package/dist/index.cjs.js +21 -11
- package/dist/wiring/CliInitializer.cjs.js +61 -30
- package/dist/wiring/CommandGraph.cjs.js +81 -23
- package/dist/wiring/discoverCliModules.cjs.js +44 -0
- package/package.json +27 -160
- package/dist/modules/auth/commands/list.cjs.js +0 -23
- package/dist/modules/auth/commands/login.cjs.js +0 -316
- package/dist/modules/auth/commands/logout.cjs.js +0 -55
- package/dist/modules/auth/commands/printToken.cjs.js +0 -41
- package/dist/modules/auth/commands/select.cjs.js +0 -32
- package/dist/modules/auth/commands/show.cjs.js +0 -59
- package/dist/modules/auth/index.cjs.js +0 -44
- package/dist/modules/auth/lib/auth.cjs.js +0 -60
- package/dist/modules/auth/lib/http.cjs.js +0 -26
- package/dist/modules/auth/lib/localServer.cjs.js +0 -80
- package/dist/modules/auth/lib/pkce.cjs.js +0 -23
- package/dist/modules/auth/lib/prompt.cjs.js +0 -44
- package/dist/modules/auth/lib/secretStore.cjs.js +0 -81
- package/dist/modules/auth/lib/storage.cjs.js +0 -152
- package/dist/modules/build/commands/buildWorkspace.cjs.js +0 -53
- package/dist/modules/build/commands/package/build/command.cjs.js +0 -136
- package/dist/modules/build/commands/package/build/index.cjs.js +0 -10
- package/dist/modules/build/commands/package/clean.cjs.js +0 -21
- package/dist/modules/build/commands/package/postpack.cjs.js +0 -15
- package/dist/modules/build/commands/package/prepack.cjs.js +0 -29
- package/dist/modules/build/commands/package/start/command.cjs.js +0 -80
- package/dist/modules/build/commands/package/start/index.cjs.js +0 -10
- package/dist/modules/build/commands/package/start/resolveLinkedWorkspace.cjs.js +0 -34
- package/dist/modules/build/commands/package/start/startBackend.cjs.js +0 -46
- package/dist/modules/build/commands/package/start/startFrontend.cjs.js +0 -50
- package/dist/modules/build/commands/package/start/startPackage.cjs.js +0 -53
- package/dist/modules/build/commands/repo/build.cjs.js +0 -149
- package/dist/modules/build/commands/repo/clean.cjs.js +0 -41
- package/dist/modules/build/commands/repo/start.cjs.js +0 -199
- package/dist/modules/build/index.cjs.js +0 -68
- package/dist/modules/build/lib/buildBackend.cjs.js +0 -81
- package/dist/modules/build/lib/buildFrontend.cjs.js +0 -50
- package/dist/modules/build/lib/builder/config.cjs.js +0 -257
- package/dist/modules/build/lib/builder/packager.cjs.js +0 -131
- package/dist/modules/build/lib/builder/plugins.cjs.js +0 -125
- package/dist/modules/build/lib/builder/types.cjs.js +0 -10
- package/dist/modules/build/lib/bundler/ConfigInjectingHtmlWebpackPlugin.cjs.js +0 -43
- package/dist/modules/build/lib/bundler/bundle.cjs.js +0 -189
- package/dist/modules/build/lib/bundler/config.cjs.js +0 -308
- package/dist/modules/build/lib/bundler/hasReactDomClient.cjs.js +0 -17
- package/dist/modules/build/lib/bundler/linkWorkspaces.cjs.js +0 -34
- package/dist/modules/build/lib/bundler/moduleFederation.cjs.js +0 -135
- package/dist/modules/build/lib/bundler/optimization.cjs.js +0 -68
- package/dist/modules/build/lib/bundler/packageDetection.cjs.js +0 -124
- package/dist/modules/build/lib/bundler/paths.cjs.js +0 -62
- package/dist/modules/build/lib/bundler/server.cjs.js +0 -231
- package/dist/modules/build/lib/bundler/transforms.cjs.js +0 -145
- package/dist/modules/build/lib/config.cjs.js +0 -94
- package/dist/modules/build/lib/entryPoints.cjs.js +0 -49
- package/dist/modules/build/lib/ipc/IpcServer.cjs.js +0 -60
- package/dist/modules/build/lib/ipc/ServerDataStore.cjs.js +0 -36
- package/dist/modules/build/lib/optionsParser.cjs.js +0 -22
- package/dist/modules/build/lib/packager/createDistWorkspace.cjs.js +0 -235
- package/dist/modules/build/lib/packager/productionPack.cjs.js +0 -160
- package/dist/modules/build/lib/publishing.cjs.js +0 -40
- package/dist/modules/build/lib/role.cjs.js +0 -24
- package/dist/modules/build/lib/runner/runBackend.cjs.js +0 -136
- package/dist/modules/build/lib/typeDistProject.cjs.js +0 -89
- package/dist/modules/build/lib/urls.cjs.js +0 -13
- package/dist/modules/config/commands/docs.cjs.js +0 -63
- package/dist/modules/config/commands/print.cjs.js +0 -81
- package/dist/modules/config/commands/schema.cjs.js +0 -56
- package/dist/modules/config/commands/validate.cjs.js +0 -50
- package/dist/modules/config/index.cjs.js +0 -51
- package/dist/modules/config/lib/config.cjs.js +0 -94
- package/dist/modules/create-github-app/commands/create-github-app/GithubCreateAppServer.cjs.js +0 -127
- package/dist/modules/create-github-app/commands/create-github-app/index.cjs.js +0 -126
- package/dist/modules/create-github-app/index.cjs.js +0 -19
- package/dist/modules/info/commands/info.cjs.js +0 -182
- package/dist/modules/info/index.cjs.js +0 -19
- package/dist/modules/lint/commands/package/lint.cjs.js +0 -78
- package/dist/modules/lint/commands/repo/lint.cjs.js +0 -282
- package/dist/modules/lint/index.cjs.js +0 -24
- package/dist/modules/lint/lib/optionsParser.cjs.js +0 -22
- package/dist/modules/maintenance/commands/repo/fix.cjs.js +0 -426
- package/dist/modules/maintenance/commands/repo/list-deprecations.cjs.js +0 -90
- package/dist/modules/maintenance/index.cjs.js +0 -24
- package/dist/modules/migrate/commands/packageExports.cjs.js +0 -15
- package/dist/modules/migrate/commands/packageLintConfigs.cjs.js +0 -77
- package/dist/modules/migrate/commands/packageRole.cjs.js +0 -57
- package/dist/modules/migrate/commands/packageScripts.cjs.js +0 -87
- package/dist/modules/migrate/commands/reactRouterDeps.cjs.js +0 -51
- package/dist/modules/migrate/commands/versions/bump.cjs.js +0 -403
- package/dist/modules/migrate/commands/versions/migrate.cjs.js +0 -133
- package/dist/modules/migrate/index.cjs.js +0 -59
- package/dist/modules/migrate/lib/utils.cjs.js +0 -44
- package/dist/modules/migrate/lib/versioning/packages.cjs.js +0 -71
- package/dist/modules/migrate/lib/versioning/yarn.cjs.js +0 -28
- package/dist/modules/new/commands/new.cjs.js +0 -115
- package/dist/modules/new/index.cjs.js +0 -40
- package/dist/modules/new/lib/codeowners/codeowners.cjs.js +0 -92
- package/dist/modules/new/lib/createNewPackage.cjs.js +0 -32
- package/dist/modules/new/lib/defaultTemplates.cjs.js +0 -17
- package/dist/modules/new/lib/execution/PortableTemplater.cjs.js +0 -89
- package/dist/modules/new/lib/execution/executePortableTemplate.cjs.js +0 -66
- package/dist/modules/new/lib/execution/installNewPackage.cjs.js +0 -127
- package/dist/modules/new/lib/execution/writeTemplateContents.cjs.js +0 -116
- package/dist/modules/new/lib/preparation/collectPortableTemplateInput.cjs.js +0 -157
- package/dist/modules/new/lib/preparation/loadPortableTemplate.cjs.js +0 -81
- package/dist/modules/new/lib/preparation/loadPortableTemplateConfig.cjs.js +0 -132
- package/dist/modules/new/lib/preparation/resolvePackageParams.cjs.js +0 -40
- package/dist/modules/new/lib/preparation/selectTemplateInteractively.cjs.js +0 -38
- package/dist/modules/new/lib/tasks.cjs.js +0 -51
- package/dist/modules/new/lib/types.cjs.js +0 -19
- package/dist/modules/new/lib/version.cjs.js +0 -91
- package/dist/modules/test/commands/package/test.cjs.js +0 -59
- package/dist/modules/test/commands/repo/test.cjs.js +0 -299
- package/dist/modules/test/index.cjs.js +0 -24
- package/dist/modules/translations/commands/export.cjs.js +0 -128
- package/dist/modules/translations/commands/import.cjs.js +0 -165
- package/dist/modules/translations/index.cjs.js +0 -24
- package/dist/modules/translations/lib/discoverPackages.cjs.js +0 -121
- package/dist/modules/translations/lib/extractTranslations.cjs.js +0 -71
- package/dist/modules/translations/lib/messageFilePath.cjs.js +0 -43
- package/dist/packages/backend-defaults/package.json.cjs.js +0 -6
- package/dist/packages/backend-plugin-api/package.json.cjs.js +0 -6
- package/dist/packages/backend-test-utils/package.json.cjs.js +0 -6
- package/dist/packages/catalog-client/package.json.cjs.js +0 -6
- package/dist/packages/cli/package.json.cjs.js +0 -159
- package/dist/packages/config/package.json.cjs.js +0 -6
- package/dist/packages/core-app-api/package.json.cjs.js +0 -6
- package/dist/packages/core-components/package.json.cjs.js +0 -6
- package/dist/packages/core-plugin-api/package.json.cjs.js +0 -6
- package/dist/packages/dev-utils/package.json.cjs.js +0 -6
- package/dist/packages/errors/package.json.cjs.js +0 -6
- package/dist/packages/frontend-defaults/package.json.cjs.js +0 -6
- package/dist/packages/frontend-plugin-api/package.json.cjs.js +0 -6
- package/dist/packages/frontend-plugin-api/src/routing/describeParentCallSite.cjs.js +0 -26
- package/dist/packages/frontend-test-utils/package.json.cjs.js +0 -6
- package/dist/packages/test-utils/package.json.cjs.js +0 -6
- package/dist/packages/theme/package.json.cjs.js +0 -6
- package/dist/packages/types/package.json.cjs.js +0 -6
- package/dist/plugins/auth-backend/package.json.cjs.js +0 -6
- package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +0 -6
- package/dist/plugins/catalog-node/package.json.cjs.js +0 -6
- package/dist/plugins/scaffolder-node/package.json.cjs.js +0 -6
- package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js +0 -6
- package/dist/wiring/CommandRegistry.cjs.js +0 -14
- package/dist/wiring/factory.cjs.js +0 -15
- package/dist/wiring/types.cjs.js +0 -11
- package/templates/backend-plugin/.eslintrc.js.hbs +0 -1
- package/templates/backend-plugin/README.md.hbs +0 -28
- package/templates/backend-plugin/dev/index.ts.hbs +0 -60
- package/templates/backend-plugin/package.json.hbs +0 -44
- package/templates/backend-plugin/portable-template.yaml +0 -5
- package/templates/backend-plugin/src/index.ts.hbs +0 -1
- package/templates/backend-plugin/src/plugin.test.ts.hbs +0 -129
- package/templates/backend-plugin/src/plugin.ts.hbs +0 -32
- package/templates/backend-plugin/src/router.test.ts +0 -67
- package/templates/backend-plugin/src/router.ts +0 -51
- package/templates/backend-plugin/src/services/TodoListService.ts +0 -155
- package/templates/backend-plugin/src/setupTests.ts +0 -1
- package/templates/backend-plugin-module/.eslintrc.js.hbs +0 -1
- package/templates/backend-plugin-module/README.md.hbs +0 -5
- package/templates/backend-plugin-module/package.json.hbs +0 -34
- package/templates/backend-plugin-module/portable-template.yaml +0 -5
- package/templates/backend-plugin-module/src/index.ts.hbs +0 -8
- package/templates/backend-plugin-module/src/module.ts.hbs +0 -17
- package/templates/catalog-provider-module/.eslintrc.js.hbs +0 -1
- package/templates/catalog-provider-module/README.md.hbs +0 -5
- package/templates/catalog-provider-module/config.d.ts.hbs +0 -34
- package/templates/catalog-provider-module/package.json.hbs +0 -36
- package/templates/catalog-provider-module/portable-template.yaml +0 -9
- package/templates/catalog-provider-module/src/index.ts.hbs +0 -8
- package/templates/catalog-provider-module/src/module.ts.hbs +0 -29
- package/templates/catalog-provider-module/src/provider/readProviderConfigs.ts.hbs +0 -78
- package/templates/catalog-provider-module/src/provider/{{providerClass}}.test.ts.hbs +0 -18
- package/templates/catalog-provider-module/src/provider/{{providerClass}}.ts.hbs +0 -109
- package/templates/frontend-plugin/.eslintrc.js.hbs +0 -1
- package/templates/frontend-plugin/README.md.hbs +0 -13
- package/templates/frontend-plugin/dev/index.tsx.hbs +0 -11
- package/templates/frontend-plugin/package.json.hbs +0 -54
- package/templates/frontend-plugin/portable-template.yaml +0 -6
- package/templates/frontend-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +0 -28
- package/templates/frontend-plugin/src/components/ExampleComponent/ExampleComponent.tsx.hbs +0 -37
- package/templates/frontend-plugin/src/components/ExampleComponent/index.ts +0 -1
- package/templates/frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +0 -19
- package/templates/frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs +0 -308
- package/templates/frontend-plugin/src/components/ExampleFetchComponent/index.ts +0 -1
- package/templates/frontend-plugin/src/index.ts.hbs +0 -1
- package/templates/frontend-plugin/src/plugin.test.ts.hbs +0 -7
- package/templates/frontend-plugin/src/plugin.ts.hbs +0 -22
- package/templates/frontend-plugin/src/routes.ts.hbs +0 -5
- package/templates/frontend-plugin/src/setupTests.ts +0 -1
- package/templates/new-frontend-plugin/.eslintrc.js.hbs +0 -1
- package/templates/new-frontend-plugin/README.md.hbs +0 -20
- package/templates/new-frontend-plugin/dev/index.tsx +0 -10
- package/templates/new-frontend-plugin/package.json.hbs +0 -49
- package/templates/new-frontend-plugin/portable-template.yaml +0 -5
- package/templates/new-frontend-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +0 -28
- package/templates/new-frontend-plugin/src/components/ExampleComponent/ExampleComponent.tsx.hbs +0 -37
- package/templates/new-frontend-plugin/src/components/ExampleComponent/index.ts +0 -1
- package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +0 -19
- package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs +0 -308
- package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/index.ts +0 -1
- package/templates/new-frontend-plugin/src/index.ts.hbs +0 -1
- package/templates/new-frontend-plugin/src/plugin.test.ts.hbs +0 -7
- package/templates/new-frontend-plugin/src/plugin.tsx.hbs +0 -25
- package/templates/new-frontend-plugin/src/routes.ts +0 -3
- package/templates/new-frontend-plugin/src/setupTests.ts +0 -1
- package/templates/new-frontend-plugin-module/.eslintrc.js.hbs +0 -1
- package/templates/new-frontend-plugin-module/README.md.hbs +0 -5
- package/templates/new-frontend-plugin-module/package.json.hbs +0 -35
- package/templates/new-frontend-plugin-module/portable-template.yaml +0 -5
- package/templates/new-frontend-plugin-module/src/index.ts.hbs +0 -1
- package/templates/new-frontend-plugin-module/src/module.tsx.hbs +0 -8
- package/templates/new-frontend-plugin-module/src/setupTests.ts +0 -1
- package/templates/node-library/.eslintrc.js.hbs +0 -1
- package/templates/node-library/README.md.hbs +0 -12
- package/templates/node-library/package.json.hbs +0 -29
- package/templates/node-library/portable-template.yaml +0 -3
- package/templates/node-library/src/index.ts.hbs +0 -1
- package/templates/node-library/src/setupTests.ts +0 -1
- package/templates/plugin-common-library/.eslintrc.js.hbs +0 -1
- package/templates/plugin-common-library/README.md.hbs +0 -5
- package/templates/plugin-common-library/package.json.hbs +0 -31
- package/templates/plugin-common-library/portable-template.yaml +0 -3
- package/templates/plugin-common-library/src/index.ts.hbs +0 -19
- package/templates/plugin-common-library/src/setupTests.ts +0 -1
- package/templates/plugin-node-library/.eslintrc.js.hbs +0 -1
- package/templates/plugin-node-library/README.md.hbs +0 -5
- package/templates/plugin-node-library/package.json.hbs +0 -30
- package/templates/plugin-node-library/portable-template.yaml +0 -3
- package/templates/plugin-node-library/src/index.ts.hbs +0 -18
- package/templates/plugin-node-library/src/setupTests.ts +0 -1
- package/templates/plugin-web-library/.eslintrc.js.hbs +0 -1
- package/templates/plugin-web-library/README.md.hbs +0 -5
- package/templates/plugin-web-library/package.json.hbs +0 -42
- package/templates/plugin-web-library/portable-template.yaml +0 -3
- package/templates/plugin-web-library/src/components/ExampleComponent/ExampleComponent.test.tsx +0 -17
- package/templates/plugin-web-library/src/components/ExampleComponent/ExampleComponent.tsx +0 -28
- package/templates/plugin-web-library/src/components/ExampleComponent/index.ts +0 -2
- package/templates/plugin-web-library/src/components/index.ts +0 -5
- package/templates/plugin-web-library/src/hooks/index.ts +0 -5
- package/templates/plugin-web-library/src/hooks/useExample/index.ts +0 -1
- package/templates/plugin-web-library/src/hooks/useExample/useExample.ts +0 -15
- package/templates/plugin-web-library/src/index.ts.hbs +0 -12
- package/templates/plugin-web-library/src/setupTests.ts +0 -1
- package/templates/scaffolder-backend-module/.eslintrc.js.hbs +0 -1
- package/templates/scaffolder-backend-module/README.md.hbs +0 -5
- package/templates/scaffolder-backend-module/package.json.hbs +0 -36
- package/templates/scaffolder-backend-module/portable-template.yaml +0 -6
- package/templates/scaffolder-backend-module/src/actions/example.test.ts +0 -24
- package/templates/scaffolder-backend-module/src/actions/example.ts +0 -39
- package/templates/scaffolder-backend-module/src/index.ts.hbs +0 -8
- package/templates/scaffolder-backend-module/src/module.ts +0 -21
- package/templates/web-library/.eslintrc.js.hbs +0 -1
- package/templates/web-library/README.md.hbs +0 -12
- package/templates/web-library/package.json.hbs +0 -30
- package/templates/web-library/portable-template.yaml +0 -3
- package/templates/web-library/src/index.ts.hbs +0 -1
- package/templates/web-library/src/setupTests.ts +0 -1
- /package/dist/{packages/opaque-internal → opaque-internal}/src/OpaqueType.cjs.js +0 -0
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2025 The Backstage Authors
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import crypto from 'node:crypto';
|
|
17
|
-
import {
|
|
18
|
-
coreServices,
|
|
19
|
-
createServiceFactory,
|
|
20
|
-
createServiceRef,
|
|
21
|
-
LoggerService,
|
|
22
|
-
} from '@backstage/backend-plugin-api';
|
|
23
|
-
import { NotFoundError } from '@backstage/errors';
|
|
24
|
-
import { catalogServiceRef } from '@backstage/plugin-catalog-node';
|
|
25
|
-
import {
|
|
26
|
-
BackstageCredentials,
|
|
27
|
-
BackstageUserPrincipal,
|
|
28
|
-
} from '@backstage/backend-plugin-api';
|
|
29
|
-
import { Expand } from '@backstage/types';
|
|
30
|
-
|
|
31
|
-
export interface TodoItem {
|
|
32
|
-
title: string;
|
|
33
|
-
id: string;
|
|
34
|
-
createdBy: string;
|
|
35
|
-
createdAt: string;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// TEMPLATE NOTE:
|
|
39
|
-
// This is a simple in-memory todo list store. It is recommended to use a
|
|
40
|
-
// database to store data in a real application. See the database service
|
|
41
|
-
// documentation for more information on how to do this:
|
|
42
|
-
// https://backstage.io/docs/backend-system/core-services/database
|
|
43
|
-
export class TodoListService {
|
|
44
|
-
readonly #logger: LoggerService;
|
|
45
|
-
readonly #catalog: typeof catalogServiceRef.T;
|
|
46
|
-
|
|
47
|
-
readonly #storedTodos = new Array<TodoItem>();
|
|
48
|
-
|
|
49
|
-
static create(options: {
|
|
50
|
-
logger: LoggerService;
|
|
51
|
-
catalog: typeof catalogServiceRef.T;
|
|
52
|
-
}) {
|
|
53
|
-
return new TodoListService(options.logger, options.catalog);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
private constructor(
|
|
57
|
-
logger: LoggerService,
|
|
58
|
-
catalog: typeof catalogServiceRef.T,
|
|
59
|
-
) {
|
|
60
|
-
this.#logger = logger;
|
|
61
|
-
this.#catalog = catalog;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
async createTodo(
|
|
65
|
-
input: {
|
|
66
|
-
title: string;
|
|
67
|
-
entityRef?: string;
|
|
68
|
-
},
|
|
69
|
-
options: {
|
|
70
|
-
credentials: BackstageCredentials<BackstageUserPrincipal>;
|
|
71
|
-
},
|
|
72
|
-
): Promise<TodoItem> {
|
|
73
|
-
let title = input.title;
|
|
74
|
-
|
|
75
|
-
// TEMPLATE NOTE:
|
|
76
|
-
// A common pattern for Backstage plugins is to pass an entity reference
|
|
77
|
-
// from the frontend to then fetch the entire entity from the catalog in the
|
|
78
|
-
// backend plugin.
|
|
79
|
-
if (input.entityRef) {
|
|
80
|
-
// TEMPLATE NOTE:
|
|
81
|
-
// Cross-plugin communication uses service-to-service authentication. The
|
|
82
|
-
// `AuthService` lets you generate a token that is valid for communication
|
|
83
|
-
// with the target plugin only. You must also provide credentials for the
|
|
84
|
-
// identity that you are making the request on behalf of.
|
|
85
|
-
//
|
|
86
|
-
// If you want to make a request using the plugin backend's own identity,
|
|
87
|
-
// you can access it via the `auth.getOwnServiceCredentials()` method.
|
|
88
|
-
// Beware that this bypasses any user permission checks.
|
|
89
|
-
const entity = await this.#catalog.getEntityByRef(
|
|
90
|
-
input.entityRef,
|
|
91
|
-
options,
|
|
92
|
-
);
|
|
93
|
-
if (!entity) {
|
|
94
|
-
throw new NotFoundError(`No entity found for ref '${input.entityRef}'`);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// TEMPLATE NOTE:
|
|
98
|
-
// Here you could read any form of data from the entity. A common use case
|
|
99
|
-
// is to read the value of a custom annotation for your plugin. You can
|
|
100
|
-
// read more about how to add custom annotations here:
|
|
101
|
-
// https://backstage.io/docs/features/software-catalog/extending-the-model#adding-a-new-annotation
|
|
102
|
-
//
|
|
103
|
-
// In this example we just use the entity title to decorate the todo item.
|
|
104
|
-
|
|
105
|
-
const entityDisplay = entity.metadata.title ?? input.entityRef;
|
|
106
|
-
title = `[${entityDisplay}] ${input.title}`;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
const id = crypto.randomUUID();
|
|
110
|
-
const createdBy = options.credentials.principal.userEntityRef;
|
|
111
|
-
const newTodo = {
|
|
112
|
-
title,
|
|
113
|
-
id,
|
|
114
|
-
createdBy,
|
|
115
|
-
createdAt: new Date().toISOString(),
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
this.#storedTodos.push(newTodo);
|
|
119
|
-
|
|
120
|
-
// TEMPLATE NOTE:
|
|
121
|
-
// The second argument of the logger methods can be used to pass
|
|
122
|
-
// structured metadata. You can read more about the logger service here:
|
|
123
|
-
// https://backstage.io/docs/backend-system/core-services/logger
|
|
124
|
-
this.#logger.info('Created new todo item', { id, title, createdBy });
|
|
125
|
-
|
|
126
|
-
return newTodo;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
async listTodos(): Promise<{ items: TodoItem[] }> {
|
|
130
|
-
return { items: Array.from(this.#storedTodos) };
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
async getTodo(request: { id: string }): Promise<TodoItem> {
|
|
134
|
-
const todo = this.#storedTodos.find(item => item.id === request.id);
|
|
135
|
-
if (!todo) {
|
|
136
|
-
throw new NotFoundError(`No todo found with id '${request.id}'`);
|
|
137
|
-
}
|
|
138
|
-
return todo;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export const todoListServiceRef = createServiceRef<Expand<TodoListService>>({
|
|
143
|
-
id: 'todo.list',
|
|
144
|
-
defaultFactory: async service =>
|
|
145
|
-
createServiceFactory({
|
|
146
|
-
service,
|
|
147
|
-
deps: {
|
|
148
|
-
logger: coreServices.logger,
|
|
149
|
-
catalog: catalogServiceRef,
|
|
150
|
-
},
|
|
151
|
-
async factory(deps) {
|
|
152
|
-
return TodoListService.create(deps);
|
|
153
|
-
},
|
|
154
|
-
}),
|
|
155
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "{{packageName}}",
|
|
3
|
-
"description": "The {{moduleId}} backend module for the {{pluginId}} plugin.",
|
|
4
|
-
"main": "src/index.ts",
|
|
5
|
-
"types": "src/index.ts",
|
|
6
|
-
"publishConfig": {
|
|
7
|
-
"access": "public",
|
|
8
|
-
"main": "dist/index.cjs.js",
|
|
9
|
-
"types": "dist/index.d.ts"
|
|
10
|
-
},
|
|
11
|
-
"backstage": {
|
|
12
|
-
"role": "backend-plugin-module",
|
|
13
|
-
"pluginId": "{{pluginId}}"
|
|
14
|
-
},
|
|
15
|
-
"scripts": {
|
|
16
|
-
"start": "backstage-cli package start",
|
|
17
|
-
"build": "backstage-cli package build",
|
|
18
|
-
"lint": "backstage-cli package lint",
|
|
19
|
-
"test": "backstage-cli package test",
|
|
20
|
-
"clean": "backstage-cli package clean",
|
|
21
|
-
"prepack": "backstage-cli package prepack",
|
|
22
|
-
"postpack": "backstage-cli package postpack"
|
|
23
|
-
},
|
|
24
|
-
"dependencies": {
|
|
25
|
-
"@backstage/backend-plugin-api": "{{versionQuery '@backstage/backend-plugin-api'}}"
|
|
26
|
-
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"@backstage/backend-test-utils": "{{versionQuery '@backstage/backend-test-utils'}}",
|
|
29
|
-
"@backstage/cli": "{{versionQuery '@backstage/cli'}}"
|
|
30
|
-
},
|
|
31
|
-
"files": [
|
|
32
|
-
"dist"
|
|
33
|
-
]
|
|
34
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
coreServices,
|
|
3
|
-
createBackendModule,
|
|
4
|
-
} from '@backstage/backend-plugin-api';
|
|
5
|
-
|
|
6
|
-
export const {{moduleVar}} = createBackendModule({
|
|
7
|
-
pluginId: '{{pluginId}}',
|
|
8
|
-
moduleId: '{{moduleId}}',
|
|
9
|
-
register(reg) {
|
|
10
|
-
reg.registerInit({
|
|
11
|
-
deps: { logger: coreServices.logger },
|
|
12
|
-
async init({ logger }) {
|
|
13
|
-
logger.info('Hello World!');
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
},
|
|
17
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
|
2
|
-
|
|
3
|
-
export interface Config {
|
|
4
|
-
catalog?: {
|
|
5
|
-
providers?: {
|
|
6
|
-
/**
|
|
7
|
-
* {{providerClass}} configuration.
|
|
8
|
-
*/
|
|
9
|
-
{{providerVar}}?:
|
|
10
|
-
| {
|
|
11
|
-
/**
|
|
12
|
-
* The target that this provider should consume.
|
|
13
|
-
*/
|
|
14
|
-
target: string;
|
|
15
|
-
/**
|
|
16
|
-
* Overrides the schedule at which this provider runs.
|
|
17
|
-
*/
|
|
18
|
-
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
|
19
|
-
}
|
|
20
|
-
| {
|
|
21
|
-
[name: string]: {
|
|
22
|
-
/**
|
|
23
|
-
* The target that this provider should consume.
|
|
24
|
-
*/
|
|
25
|
-
target: string;
|
|
26
|
-
/**
|
|
27
|
-
* Overrides the schedule at which this provider runs.
|
|
28
|
-
*/
|
|
29
|
-
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "{{packageName}}",
|
|
3
|
-
"description": "The {{fullModuleId}} module for @backstage/plugin-catalog-backend",
|
|
4
|
-
"main": "src/index.ts",
|
|
5
|
-
"types": "src/index.ts",
|
|
6
|
-
"publishConfig": {
|
|
7
|
-
"access": "public",
|
|
8
|
-
"main": "dist/index.cjs.js",
|
|
9
|
-
"types": "dist/index.d.ts"
|
|
10
|
-
},
|
|
11
|
-
"backstage": {
|
|
12
|
-
"role": "backend-plugin-module",
|
|
13
|
-
"pluginId": "catalog",
|
|
14
|
-
"pluginPackage": "@backstage/plugin-catalog-backend"
|
|
15
|
-
},
|
|
16
|
-
"scripts": {
|
|
17
|
-
"start": "backstage-cli package start",
|
|
18
|
-
"build": "backstage-cli package build",
|
|
19
|
-
"lint": "backstage-cli package lint",
|
|
20
|
-
"test": "backstage-cli package test",
|
|
21
|
-
"clean": "backstage-cli package clean",
|
|
22
|
-
"prepack": "backstage-cli package prepack",
|
|
23
|
-
"postpack": "backstage-cli package postpack"
|
|
24
|
-
},
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"@backstage/backend-plugin-api": "{{versionQuery '@backstage/backend-plugin-api'}}",
|
|
27
|
-
"@backstage/plugin-catalog-node": "{{versionQuery '@backstage/plugin-catalog-node'}}"
|
|
28
|
-
},
|
|
29
|
-
"devDependencies": {
|
|
30
|
-
"@backstage/cli": "{{versionQuery '@backstage/cli'}}",
|
|
31
|
-
"@backstage/backend-test-utils": "{{versionQuery '@backstage/backend-test-utils'}}"
|
|
32
|
-
},
|
|
33
|
-
"files": [
|
|
34
|
-
"dist"
|
|
35
|
-
]
|
|
36
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
name: catalog-provider-module
|
|
2
|
-
role: backend-plugin-module
|
|
3
|
-
description: An Entity Provider module for the Software Catalog
|
|
4
|
-
values:
|
|
5
|
-
pluginId: catalog
|
|
6
|
-
fullModuleId: '{{ moduleId }}-provider'
|
|
7
|
-
moduleVar: '{{ camelCase pluginId }}Module{{ upperFirst ( camelCase moduleId ) }}'
|
|
8
|
-
providerVar: '{{ camelCase moduleId }}Provider'
|
|
9
|
-
providerClass: '{{ upperFirst ( camelCase moduleId ) }}Provider'
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
coreServices,
|
|
3
|
-
createBackendModule,
|
|
4
|
-
} from '@backstage/backend-plugin-api';
|
|
5
|
-
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node';
|
|
6
|
-
import { {{providerClass}} } from './provider/{{providerClass}}';
|
|
7
|
-
|
|
8
|
-
export const {{moduleVar}} = createBackendModule({
|
|
9
|
-
moduleId: '{{fullModuleId}}',
|
|
10
|
-
pluginId: '{{pluginId}}',
|
|
11
|
-
register({ registerInit }) {
|
|
12
|
-
registerInit({
|
|
13
|
-
deps: {
|
|
14
|
-
logger: coreServices.logger,
|
|
15
|
-
config: coreServices.rootConfig,
|
|
16
|
-
scheduler: coreServices.scheduler,
|
|
17
|
-
processing: catalogProcessingExtensionPoint,
|
|
18
|
-
},
|
|
19
|
-
async init({ logger, scheduler, config, processing }) {
|
|
20
|
-
processing.addEntityProvider(
|
|
21
|
-
{{providerClass}}.fromConfig(config, {
|
|
22
|
-
logger,
|
|
23
|
-
scheduler,
|
|
24
|
-
}),
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
},
|
|
29
|
-
})
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
readSchedulerServiceTaskScheduleDefinitionFromConfig,
|
|
3
|
-
SchedulerServiceTaskScheduleDefinition,
|
|
4
|
-
} from '@backstage/backend-plugin-api';
|
|
5
|
-
import { Config } from '@backstage/config';
|
|
6
|
-
|
|
7
|
-
const DEFAULT_PROVIDER_ID = 'default';
|
|
8
|
-
const DEFAULT_SCHEDULE: SchedulerServiceTaskScheduleDefinition = {
|
|
9
|
-
frequency: {
|
|
10
|
-
minutes: 30,
|
|
11
|
-
},
|
|
12
|
-
timeout: {
|
|
13
|
-
minutes: 3,
|
|
14
|
-
},
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export type {{providerClass}}ProviderConfig = {
|
|
18
|
-
id: string;
|
|
19
|
-
target: string;
|
|
20
|
-
schedule: SchedulerServiceTaskScheduleDefinition;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Parses all configured providers.
|
|
25
|
-
*
|
|
26
|
-
* @param config - The root of the provider config hierarchy
|
|
27
|
-
*
|
|
28
|
-
* @public
|
|
29
|
-
*/
|
|
30
|
-
export function readProviderConfigs(
|
|
31
|
-
config: Config,
|
|
32
|
-
): {{providerClass}}ProviderConfig[] {
|
|
33
|
-
const providersConfig = config.getOptionalConfig(
|
|
34
|
-
'catalog.providers.{{providerVar}}',
|
|
35
|
-
);
|
|
36
|
-
if (!providersConfig) {
|
|
37
|
-
return [];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if ((providersConfig).has('target')) {
|
|
41
|
-
// simple/single config variant
|
|
42
|
-
return [readProviderConfig(DEFAULT_PROVIDER_ID, providersConfig)];
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return providersConfig.keys().map(id => {
|
|
46
|
-
const providerConfig = providersConfig.getConfig(id);
|
|
47
|
-
|
|
48
|
-
return readProviderConfig(id, providerConfig);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Parses a single configured provider by id.
|
|
54
|
-
*
|
|
55
|
-
* @param id - the id of the provider to parse
|
|
56
|
-
* @param config - The root of the provider config hierarchy
|
|
57
|
-
*
|
|
58
|
-
* @public
|
|
59
|
-
*/
|
|
60
|
-
export function readProviderConfig(
|
|
61
|
-
id: string,
|
|
62
|
-
config: Config,
|
|
63
|
-
): {{providerClass}}ProviderConfig {
|
|
64
|
-
|
|
65
|
-
const target = config.getString('target');
|
|
66
|
-
|
|
67
|
-
const schedule = config.has('schedule')
|
|
68
|
-
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
|
69
|
-
config.getConfig('schedule'),
|
|
70
|
-
)
|
|
71
|
-
: DEFAULT_SCHEDULE;
|
|
72
|
-
|
|
73
|
-
return {
|
|
74
|
-
id,
|
|
75
|
-
target,
|
|
76
|
-
schedule,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { {{providerClass}} } from './{{providerClass}}';
|
|
2
|
-
import { mockServices } from '@backstage/backend-test-utils';
|
|
3
|
-
|
|
4
|
-
describe('{{providerClass}}', () => {
|
|
5
|
-
it('should read entities from the target', async () => {
|
|
6
|
-
const logger = mockServices.logger.mock();
|
|
7
|
-
const provider = new {{providerClass}}({
|
|
8
|
-
id: 'test',
|
|
9
|
-
target: 'https://example.com',
|
|
10
|
-
logger: mockServices.logger.mock(),
|
|
11
|
-
taskRunner: { run: jest.fn() },
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
const entities = await provider.read({ logger });
|
|
15
|
-
|
|
16
|
-
expect(entities).toEqual([]);
|
|
17
|
-
});
|
|
18
|
-
})
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { Config } from '@backstage/config';
|
|
2
|
-
import {
|
|
3
|
-
DeferredEntity,
|
|
4
|
-
EntityProvider,
|
|
5
|
-
EntityProviderConnection,
|
|
6
|
-
} from '@backstage/plugin-catalog-node';
|
|
7
|
-
import * as uuid from 'uuid';
|
|
8
|
-
import { readProviderConfigs } from './readProviderConfigs';
|
|
9
|
-
import {
|
|
10
|
-
LoggerService,
|
|
11
|
-
SchedulerService,
|
|
12
|
-
SchedulerServiceTaskRunner,
|
|
13
|
-
} from '@backstage/backend-plugin-api';
|
|
14
|
-
|
|
15
|
-
export type {{providerClass}}Options = {
|
|
16
|
-
/**
|
|
17
|
-
* The logger to use.
|
|
18
|
-
*/
|
|
19
|
-
logger: LoggerService;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Scheduler used to schedule refreshes based on
|
|
23
|
-
* the schedule config.
|
|
24
|
-
*/
|
|
25
|
-
scheduler: SchedulerService;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export class {{providerClass}} implements EntityProvider {
|
|
29
|
-
static fromConfig(
|
|
30
|
-
configRoot: Config,
|
|
31
|
-
options: {{providerClass}}Options,
|
|
32
|
-
): {{providerClass}}[] {
|
|
33
|
-
return readProviderConfigs(configRoot).map(providerConfig => {
|
|
34
|
-
return new {{providerClass}}({
|
|
35
|
-
id: providerConfig.id,
|
|
36
|
-
target: providerConfig.target,
|
|
37
|
-
logger: options.logger,
|
|
38
|
-
taskRunner: options.scheduler.createScheduledTaskRunner(
|
|
39
|
-
providerConfig.schedule,
|
|
40
|
-
),
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
readonly #id: string;
|
|
46
|
-
readonly #target: string;
|
|
47
|
-
readonly #logger: LoggerService;
|
|
48
|
-
readonly #taskRunner: SchedulerServiceTaskRunner;
|
|
49
|
-
|
|
50
|
-
constructor(options: {
|
|
51
|
-
id: string;
|
|
52
|
-
target: string;
|
|
53
|
-
logger: LoggerService;
|
|
54
|
-
taskRunner: SchedulerServiceTaskRunner;
|
|
55
|
-
}) {
|
|
56
|
-
this.#id = options.id;
|
|
57
|
-
this.#target = options.target;
|
|
58
|
-
this.#logger = options.logger;
|
|
59
|
-
this.#taskRunner = options.taskRunner;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/** {@inheritdoc @backstage/plugin-catalog-node#EntityProvider.getProviderName} */
|
|
63
|
-
getProviderName() {
|
|
64
|
-
return `{{providerClass}}:${this.#id}`;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/** {@inheritdoc @backstage/plugin-catalog-node#EntityProvider.connect} */
|
|
68
|
-
async connect(connection: EntityProviderConnection) {
|
|
69
|
-
const id = `${this.getProviderName()}:refresh`;
|
|
70
|
-
|
|
71
|
-
// Schedule a refresh task to be run periodically
|
|
72
|
-
await this.#taskRunner.run({
|
|
73
|
-
id,
|
|
74
|
-
fn: async () => {
|
|
75
|
-
const logger = this.#logger.child({
|
|
76
|
-
taskId: id,
|
|
77
|
-
taskInstanceId: uuid.v4(),
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
try {
|
|
81
|
-
const entities = await this.read({ logger });
|
|
82
|
-
|
|
83
|
-
logger.info(`Read ${entities.length} entities`);
|
|
84
|
-
|
|
85
|
-
await connection.applyMutation({
|
|
86
|
-
type: 'full',
|
|
87
|
-
entities,
|
|
88
|
-
});
|
|
89
|
-
} catch (error) {
|
|
90
|
-
logger.error(`Refresh failed`, error);
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Reads entities to be added to the catalog.
|
|
98
|
-
*/
|
|
99
|
-
async read(options: { logger: LoggerService }): Promise<DeferredEntity[]> {
|
|
100
|
-
const { logger } = options;
|
|
101
|
-
|
|
102
|
-
logger.info(`Reading entities from ${this.#target}`);
|
|
103
|
-
|
|
104
|
-
// TODO: Implement entity reading logic from the target
|
|
105
|
-
const entities: DeferredEntity[] = [];
|
|
106
|
-
|
|
107
|
-
return entities;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# {{pluginId}}
|
|
2
|
-
|
|
3
|
-
Welcome to the {{pluginId}} plugin!
|
|
4
|
-
|
|
5
|
-
_This plugin was created through the Backstage CLI_
|
|
6
|
-
|
|
7
|
-
## Getting started
|
|
8
|
-
|
|
9
|
-
Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/{{pluginId}}](http://localhost:3000/{{pluginId}}).
|
|
10
|
-
|
|
11
|
-
You can also serve the plugin in isolation by running `yarn start` in the plugin directory.
|
|
12
|
-
This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads.
|
|
13
|
-
It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory.
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { createDevApp } from '@backstage/dev-utils';
|
|
2
|
-
import { {{ pluginVar }}, {{ extensionName }} } from '../src/plugin';
|
|
3
|
-
|
|
4
|
-
createDevApp()
|
|
5
|
-
.registerPlugin({{ pluginVar }})
|
|
6
|
-
.addPage({
|
|
7
|
-
element: <{{ extensionName }} />,
|
|
8
|
-
title: 'Root Page',
|
|
9
|
-
path: '/{{pluginId}}',
|
|
10
|
-
})
|
|
11
|
-
.render();
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "{{packageName}}",
|
|
3
|
-
"main": "src/index.ts",
|
|
4
|
-
"types": "src/index.ts",
|
|
5
|
-
"publishConfig": {
|
|
6
|
-
"access": "public",
|
|
7
|
-
"main": "dist/index.esm.js",
|
|
8
|
-
"types": "dist/index.d.ts"
|
|
9
|
-
},
|
|
10
|
-
"backstage": {
|
|
11
|
-
"role": "frontend-plugin",
|
|
12
|
-
"pluginId": "{{pluginId}}"
|
|
13
|
-
},
|
|
14
|
-
"sideEffects": false,
|
|
15
|
-
"scripts": {
|
|
16
|
-
"start": "backstage-cli package start",
|
|
17
|
-
"build": "backstage-cli package build",
|
|
18
|
-
"lint": "backstage-cli package lint",
|
|
19
|
-
"test": "backstage-cli package test",
|
|
20
|
-
"clean": "backstage-cli package clean",
|
|
21
|
-
"prepack": "backstage-cli package prepack",
|
|
22
|
-
"postpack": "backstage-cli package postpack"
|
|
23
|
-
},
|
|
24
|
-
"dependencies": {
|
|
25
|
-
"@backstage/core-components": "{{versionQuery '@backstage/core-components'}}",
|
|
26
|
-
"@backstage/core-plugin-api": "{{versionQuery '@backstage/core-plugin-api'}}",
|
|
27
|
-
"@backstage/theme": "{{versionQuery '@backstage/theme'}}",
|
|
28
|
-
"@material-ui/core": "{{versionQuery '@material-ui/core' '4.12.2'}}",
|
|
29
|
-
"@material-ui/icons": "{{versionQuery '@material-ui/icons' '4.9.1'}}",
|
|
30
|
-
"@material-ui/lab": "{{versionQuery '@material-ui/lab' '4.0.0-alpha.61'}}",
|
|
31
|
-
"react-use": "{{versionQuery 'react-use' '17.2.4'}}"
|
|
32
|
-
},
|
|
33
|
-
"peerDependencies": {
|
|
34
|
-
"react": "{{versionQuery 'react' '^16.13.1 || ^17.0.0 || ^18.0.0'}}",
|
|
35
|
-
"react-dom": "{{versionQuery 'react-dom' '^16.13.1 || ^17.0.0 || ^18.0.0'}}",
|
|
36
|
-
"react-router-dom": "{{versionQuery 'react-router-dom' '^6.0.0'}}"
|
|
37
|
-
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"@backstage/cli": "{{versionQuery '@backstage/cli'}}",
|
|
40
|
-
"@backstage/core-app-api": "{{versionQuery '@backstage/core-app-api'}}",
|
|
41
|
-
"@backstage/dev-utils": "{{versionQuery '@backstage/dev-utils'}}",
|
|
42
|
-
"@backstage/test-utils": "{{versionQuery '@backstage/test-utils'}}",
|
|
43
|
-
"@testing-library/jest-dom": "{{versionQuery '@testing-library/jest-dom' '6.0.0'}}",
|
|
44
|
-
"@testing-library/react": "{{versionQuery '@testing-library/react' '14.0.0'}}",
|
|
45
|
-
"@testing-library/user-event": "{{versionQuery '@testing-library/user-event' '14.0.0'}}",
|
|
46
|
-
"msw": "{{versionQuery 'msw' '1.0.0'}}",
|
|
47
|
-
"react": "{{versionQuery 'react' '^16.13.1 || ^17.0.0 || ^18.0.0'}}",
|
|
48
|
-
"react-dom": "{{versionQuery 'react-dom' '^16.13.1 || ^17.0.0 || ^18.0.0'}}",
|
|
49
|
-
"react-router-dom": "{{versionQuery 'react-router-dom' '^6.0.0'}}"
|
|
50
|
-
},
|
|
51
|
-
"files": [
|
|
52
|
-
"dist"
|
|
53
|
-
]
|
|
54
|
-
}
|