@backstage/plugin-catalog 1.31.3-next.2 → 1.31.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @backstage/plugin-catalog
|
|
2
2
|
|
|
3
|
+
## 1.31.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4316c11: Catalog table columns support i18n
|
|
8
|
+
- ce1239e: Auto-focus the first menu item in `EntityContextMenu`, and do not render a divider if an empty array is passed to `UNSTABLE_extraContextMenuItems`.
|
|
9
|
+
- 85c5e04: Fix incorrect `defaultTarget` on `createComponentRouteRef`.
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
- @backstage/plugin-catalog-react@1.21.0
|
|
12
|
+
- @backstage/plugin-techdocs-react@1.3.3
|
|
13
|
+
- @backstage/frontend-plugin-api@0.12.0
|
|
14
|
+
- @backstage/core-plugin-api@1.11.0
|
|
15
|
+
- @backstage/catalog-client@1.12.0
|
|
16
|
+
- @backstage/core-components@0.18.0
|
|
17
|
+
- @backstage/types@1.2.2
|
|
18
|
+
- @backstage/core-compat-api@0.5.2
|
|
19
|
+
- @backstage/plugin-search-react@1.9.4
|
|
20
|
+
- @backstage/integration-react@1.2.10
|
|
21
|
+
- @backstage/plugin-scaffolder-common@1.7.1
|
|
22
|
+
|
|
3
23
|
## 1.31.3-next.2
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
|
@@ -2,6 +2,7 @@ import { jsx, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { EntityRefLinks, EntityRefLink, humanizeEntityRef } from '@backstage/plugin-catalog-react';
|
|
3
3
|
import Chip from '@material-ui/core/Chip';
|
|
4
4
|
import { OverflowTooltip } from '@backstage/core-components';
|
|
5
|
+
import { EntityTableColumnTitle } from '@backstage/plugin-catalog-react/alpha';
|
|
5
6
|
|
|
6
7
|
const columnFactories = Object.freeze({
|
|
7
8
|
createNameColumn(options) {
|
|
@@ -11,7 +12,7 @@ const columnFactories = Object.freeze({
|
|
|
11
12
|
});
|
|
12
13
|
}
|
|
13
14
|
return {
|
|
14
|
-
title: "
|
|
15
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "name" }),
|
|
15
16
|
field: "resolved.entityRef",
|
|
16
17
|
highlight: true,
|
|
17
18
|
customSort({ entity: entity1 }, { entity: entity2 }) {
|
|
@@ -28,7 +29,7 @@ const columnFactories = Object.freeze({
|
|
|
28
29
|
},
|
|
29
30
|
createSystemColumn() {
|
|
30
31
|
return {
|
|
31
|
-
title: "
|
|
32
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "system" }),
|
|
32
33
|
field: "resolved.partOfSystemRelationTitle",
|
|
33
34
|
customFilterAndSearch: (query, row) => {
|
|
34
35
|
if (!row.resolved.partOfSystemRelations) {
|
|
@@ -51,7 +52,7 @@ const columnFactories = Object.freeze({
|
|
|
51
52
|
},
|
|
52
53
|
createOwnerColumn() {
|
|
53
54
|
return {
|
|
54
|
-
title: "
|
|
55
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "owner" }),
|
|
55
56
|
field: "resolved.ownedByRelationsTitle",
|
|
56
57
|
render: ({ resolved }) => /* @__PURE__ */ jsx(
|
|
57
58
|
EntityRefLinks,
|
|
@@ -64,7 +65,7 @@ const columnFactories = Object.freeze({
|
|
|
64
65
|
},
|
|
65
66
|
createSpecTargetsColumn() {
|
|
66
67
|
return {
|
|
67
|
-
title: "
|
|
68
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "targets" }),
|
|
68
69
|
field: "entity.spec.targets",
|
|
69
70
|
customFilterAndSearch: (query, row) => {
|
|
70
71
|
let targets = [];
|
|
@@ -86,7 +87,7 @@ const columnFactories = Object.freeze({
|
|
|
86
87
|
},
|
|
87
88
|
createSpecTypeColumn(options = { hidden: false }) {
|
|
88
89
|
return {
|
|
89
|
-
title: "
|
|
90
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "type" }),
|
|
90
91
|
field: "entity.spec.type",
|
|
91
92
|
hidden: options.hidden,
|
|
92
93
|
width: "auto"
|
|
@@ -94,13 +95,13 @@ const columnFactories = Object.freeze({
|
|
|
94
95
|
},
|
|
95
96
|
createSpecLifecycleColumn() {
|
|
96
97
|
return {
|
|
97
|
-
title: "
|
|
98
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "lifecycle" }),
|
|
98
99
|
field: "entity.spec.lifecycle"
|
|
99
100
|
};
|
|
100
101
|
},
|
|
101
102
|
createMetadataDescriptionColumn() {
|
|
102
103
|
return {
|
|
103
|
-
title: "
|
|
104
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "description" }),
|
|
104
105
|
field: "entity.metadata.description",
|
|
105
106
|
render: ({ entity }) => /* @__PURE__ */ jsx(
|
|
106
107
|
OverflowTooltip,
|
|
@@ -114,7 +115,7 @@ const columnFactories = Object.freeze({
|
|
|
114
115
|
},
|
|
115
116
|
createTagsColumn() {
|
|
116
117
|
return {
|
|
117
|
-
title: "
|
|
118
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "tags" }),
|
|
118
119
|
field: "entity.metadata.tags",
|
|
119
120
|
cellStyle: {
|
|
120
121
|
padding: "0px 16px 0px 20px"
|
|
@@ -134,7 +135,7 @@ const columnFactories = Object.freeze({
|
|
|
134
135
|
},
|
|
135
136
|
createTitleColumn(options) {
|
|
136
137
|
return {
|
|
137
|
-
title: "
|
|
138
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "title" }),
|
|
138
139
|
field: "entity.metadata.title",
|
|
139
140
|
hidden: options?.hidden,
|
|
140
141
|
searchable: true
|
|
@@ -146,7 +147,7 @@ const columnFactories = Object.freeze({
|
|
|
146
147
|
return labels && labels[keyLabel] || "";
|
|
147
148
|
}
|
|
148
149
|
return {
|
|
149
|
-
title: options?.title || "
|
|
150
|
+
title: options?.title || /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "label" }),
|
|
150
151
|
field: "entity.metadata.labels",
|
|
151
152
|
cellStyle: {
|
|
152
153
|
padding: "0px 16px 0px 20px"
|
|
@@ -174,7 +175,7 @@ const columnFactories = Object.freeze({
|
|
|
174
175
|
},
|
|
175
176
|
createNamespaceColumn() {
|
|
176
177
|
return {
|
|
177
|
-
title: "
|
|
178
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "namespace" }),
|
|
178
179
|
field: "entity.metadata.namespace",
|
|
179
180
|
width: "auto"
|
|
180
181
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.esm.js","sources":["../../../src/components/CatalogTable/columns.tsx"],"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 */\nimport {\n humanizeEntityRef,\n EntityRefLink,\n EntityRefLinks,\n} from '@backstage/plugin-catalog-react';\nimport Chip from '@material-ui/core/Chip';\nimport { CatalogTableRow } from './types';\nimport { OverflowTooltip, TableColumn } from '@backstage/core-components';\nimport { Entity } from '@backstage/catalog-model';\nimport { JsonArray } from '@backstage/types';\n\n// The columnFactories symbol is not directly exported, but through the\n// CatalogTable.columns field.\n/** @public */\nexport const columnFactories = Object.freeze({\n createNameColumn(options?: {\n defaultKind?: string;\n }): TableColumn<CatalogTableRow> {\n function formatContent(entity: Entity): string {\n return (\n entity.metadata?.title ||\n humanizeEntityRef(entity, {\n defaultKind: options?.defaultKind,\n })\n );\n }\n\n return {\n title: 'Name',\n field: 'resolved.entityRef',\n highlight: true,\n customSort({ entity: entity1 }, { entity: entity2 }) {\n // TODO: We could implement this more efficiently by comparing field by field.\n // This has similar issues as above.\n return formatContent(entity1).localeCompare(formatContent(entity2));\n },\n render: ({ entity }) => (\n <EntityRefLink\n entityRef={entity}\n defaultKind={options?.defaultKind || 'Component'}\n />\n ),\n };\n },\n createSystemColumn(): TableColumn<CatalogTableRow> {\n return {\n title: 'System',\n field: 'resolved.partOfSystemRelationTitle',\n customFilterAndSearch: (query, row) => {\n if (!row.resolved.partOfSystemRelations) {\n return false;\n }\n\n const systemNames = row.resolved.partOfSystemRelations.map(\n ref => ref.name,\n ); // Extract system names from entityRefs\n\n const searchText = systemNames.join(', ').toLocaleUpperCase('en-US');\n return searchText.includes(query.toLocaleUpperCase('en-US'));\n },\n render: ({ resolved }) => (\n <EntityRefLinks\n entityRefs={resolved.partOfSystemRelations}\n defaultKind=\"system\"\n />\n ),\n };\n },\n createOwnerColumn(): TableColumn<CatalogTableRow> {\n return {\n title: 'Owner',\n field: 'resolved.ownedByRelationsTitle',\n render: ({ resolved }) => (\n <EntityRefLinks\n entityRefs={resolved.ownedByRelations}\n defaultKind=\"group\"\n />\n ),\n };\n },\n createSpecTargetsColumn(): TableColumn<CatalogTableRow> {\n return {\n title: 'Targets',\n field: 'entity.spec.targets',\n customFilterAndSearch: (query, row) => {\n let targets: JsonArray = [];\n if (\n row.entity?.spec?.targets &&\n Array.isArray(row.entity?.spec?.targets)\n ) {\n targets = row.entity?.spec?.targets;\n } else if (row.entity?.spec?.target) {\n targets = [row.entity?.spec?.target];\n }\n return targets\n .join(', ')\n .toLocaleUpperCase('en-US')\n .includes(query.toLocaleUpperCase('en-US'));\n },\n render: ({ entity }) => (\n <>\n {(entity?.spec?.targets || entity?.spec?.target) && (\n <OverflowTooltip\n text={(\n (entity!.spec!.targets as JsonArray) || [entity.spec.target]\n ).join(', ')}\n placement=\"bottom-start\"\n />\n )}\n </>\n ),\n };\n },\n createSpecTypeColumn(\n options: {\n hidden: boolean;\n } = { hidden: false },\n ): TableColumn<CatalogTableRow> {\n return {\n title: 'Type',\n field: 'entity.spec.type',\n hidden: options.hidden,\n width: 'auto',\n };\n },\n createSpecLifecycleColumn(): TableColumn<CatalogTableRow> {\n return {\n title: 'Lifecycle',\n field: 'entity.spec.lifecycle',\n };\n },\n createMetadataDescriptionColumn(): TableColumn<CatalogTableRow> {\n return {\n title: 'Description',\n field: 'entity.metadata.description',\n render: ({ entity }) => (\n <OverflowTooltip\n text={entity.metadata.description}\n placement=\"bottom-start\"\n />\n ),\n width: 'auto',\n };\n },\n createTagsColumn(): TableColumn<CatalogTableRow> {\n return {\n title: 'Tags',\n field: 'entity.metadata.tags',\n cellStyle: {\n padding: '0px 16px 0px 20px',\n },\n render: ({ entity }) => (\n <>\n {entity.metadata.tags &&\n entity.metadata.tags.map(t => (\n <Chip\n key={t}\n label={t}\n size=\"small\"\n variant=\"outlined\"\n style={{ marginBottom: '0px' }}\n />\n ))}\n </>\n ),\n width: 'auto',\n };\n },\n createTitleColumn(options?: {\n hidden?: boolean;\n }): TableColumn<CatalogTableRow> {\n return {\n title: 'Title',\n field: 'entity.metadata.title',\n hidden: options?.hidden,\n searchable: true,\n };\n },\n createLabelColumn(\n key: string,\n options?: { title?: string; defaultValue?: string },\n ): TableColumn<CatalogTableRow> {\n function formatContent(keyLabel: string, entity: Entity): string {\n const labels: Record<string, string> | undefined =\n entity.metadata?.labels;\n return (labels && labels[keyLabel]) || '';\n }\n\n return {\n title: options?.title || 'Label',\n field: 'entity.metadata.labels',\n cellStyle: {\n padding: '0px 16px 0px 20px',\n },\n customSort({ entity: entity1 }, { entity: entity2 }) {\n return formatContent(key, entity1).localeCompare(\n formatContent(key, entity2),\n );\n },\n render: ({ entity }: { entity: Entity }) => {\n const labels: Record<string, string> | undefined =\n entity.metadata?.labels;\n const specifiedLabelValue =\n (labels && labels[key]) || options?.defaultValue;\n return (\n <>\n {specifiedLabelValue && (\n <Chip\n key={specifiedLabelValue}\n label={specifiedLabelValue}\n size=\"small\"\n variant=\"outlined\"\n />\n )}\n </>\n );\n },\n width: 'auto',\n };\n },\n createNamespaceColumn(): TableColumn<CatalogTableRow> {\n return {\n title: 'Namespace',\n field: 'entity.metadata.namespace',\n width: 'auto',\n };\n },\n});\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columns.esm.js","sources":["../../../src/components/CatalogTable/columns.tsx"],"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 */\nimport {\n humanizeEntityRef,\n EntityRefLink,\n EntityRefLinks,\n} from '@backstage/plugin-catalog-react';\nimport Chip from '@material-ui/core/Chip';\nimport { CatalogTableRow } from './types';\nimport { OverflowTooltip, TableColumn } from '@backstage/core-components';\nimport { Entity } from '@backstage/catalog-model';\nimport { JsonArray } from '@backstage/types';\nimport { EntityTableColumnTitle } from '@backstage/plugin-catalog-react/alpha';\n\n// The columnFactories symbol is not directly exported, but through the\n// CatalogTable.columns field.\n/** @public */\nexport const columnFactories = Object.freeze({\n createNameColumn(options?: {\n defaultKind?: string;\n }): TableColumn<CatalogTableRow> {\n function formatContent(entity: Entity): string {\n return (\n entity.metadata?.title ||\n humanizeEntityRef(entity, {\n defaultKind: options?.defaultKind,\n })\n );\n }\n\n return {\n title: <EntityTableColumnTitle translationKey=\"name\" />,\n field: 'resolved.entityRef',\n highlight: true,\n customSort({ entity: entity1 }, { entity: entity2 }) {\n // TODO: We could implement this more efficiently by comparing field by field.\n // This has similar issues as above.\n return formatContent(entity1).localeCompare(formatContent(entity2));\n },\n render: ({ entity }) => (\n <EntityRefLink\n entityRef={entity}\n defaultKind={options?.defaultKind || 'Component'}\n />\n ),\n };\n },\n createSystemColumn(): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"system\" />,\n field: 'resolved.partOfSystemRelationTitle',\n customFilterAndSearch: (query, row) => {\n if (!row.resolved.partOfSystemRelations) {\n return false;\n }\n\n const systemNames = row.resolved.partOfSystemRelations.map(\n ref => ref.name,\n ); // Extract system names from entityRefs\n\n const searchText = systemNames.join(', ').toLocaleUpperCase('en-US');\n return searchText.includes(query.toLocaleUpperCase('en-US'));\n },\n render: ({ resolved }) => (\n <EntityRefLinks\n entityRefs={resolved.partOfSystemRelations}\n defaultKind=\"system\"\n />\n ),\n };\n },\n createOwnerColumn(): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"owner\" />,\n field: 'resolved.ownedByRelationsTitle',\n render: ({ resolved }) => (\n <EntityRefLinks\n entityRefs={resolved.ownedByRelations}\n defaultKind=\"group\"\n />\n ),\n };\n },\n createSpecTargetsColumn(): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"targets\" />,\n field: 'entity.spec.targets',\n customFilterAndSearch: (query, row) => {\n let targets: JsonArray = [];\n if (\n row.entity?.spec?.targets &&\n Array.isArray(row.entity?.spec?.targets)\n ) {\n targets = row.entity?.spec?.targets;\n } else if (row.entity?.spec?.target) {\n targets = [row.entity?.spec?.target];\n }\n return targets\n .join(', ')\n .toLocaleUpperCase('en-US')\n .includes(query.toLocaleUpperCase('en-US'));\n },\n render: ({ entity }) => (\n <>\n {(entity?.spec?.targets || entity?.spec?.target) && (\n <OverflowTooltip\n text={(\n (entity!.spec!.targets as JsonArray) || [entity.spec.target]\n ).join(', ')}\n placement=\"bottom-start\"\n />\n )}\n </>\n ),\n };\n },\n createSpecTypeColumn(\n options: {\n hidden: boolean;\n } = { hidden: false },\n ): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"type\" />,\n field: 'entity.spec.type',\n hidden: options.hidden,\n width: 'auto',\n };\n },\n createSpecLifecycleColumn(): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"lifecycle\" />,\n field: 'entity.spec.lifecycle',\n };\n },\n createMetadataDescriptionColumn(): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"description\" />,\n field: 'entity.metadata.description',\n render: ({ entity }) => (\n <OverflowTooltip\n text={entity.metadata.description}\n placement=\"bottom-start\"\n />\n ),\n width: 'auto',\n };\n },\n createTagsColumn(): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"tags\" />,\n field: 'entity.metadata.tags',\n cellStyle: {\n padding: '0px 16px 0px 20px',\n },\n render: ({ entity }) => (\n <>\n {entity.metadata.tags &&\n entity.metadata.tags.map(t => (\n <Chip\n key={t}\n label={t}\n size=\"small\"\n variant=\"outlined\"\n style={{ marginBottom: '0px' }}\n />\n ))}\n </>\n ),\n width: 'auto',\n };\n },\n createTitleColumn(options?: {\n hidden?: boolean;\n }): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"title\" />,\n field: 'entity.metadata.title',\n hidden: options?.hidden,\n searchable: true,\n };\n },\n createLabelColumn(\n key: string,\n options?: { title?: string; defaultValue?: string },\n ): TableColumn<CatalogTableRow> {\n function formatContent(keyLabel: string, entity: Entity): string {\n const labels: Record<string, string> | undefined =\n entity.metadata?.labels;\n return (labels && labels[keyLabel]) || '';\n }\n\n return {\n title: options?.title || (\n <EntityTableColumnTitle translationKey=\"label\" />\n ),\n field: 'entity.metadata.labels',\n cellStyle: {\n padding: '0px 16px 0px 20px',\n },\n customSort({ entity: entity1 }, { entity: entity2 }) {\n return formatContent(key, entity1).localeCompare(\n formatContent(key, entity2),\n );\n },\n render: ({ entity }: { entity: Entity }) => {\n const labels: Record<string, string> | undefined =\n entity.metadata?.labels;\n const specifiedLabelValue =\n (labels && labels[key]) || options?.defaultValue;\n return (\n <>\n {specifiedLabelValue && (\n <Chip\n key={specifiedLabelValue}\n label={specifiedLabelValue}\n size=\"small\"\n variant=\"outlined\"\n />\n )}\n </>\n );\n },\n width: 'auto',\n };\n },\n createNamespaceColumn(): TableColumn<CatalogTableRow> {\n return {\n title: <EntityTableColumnTitle translationKey=\"namespace\" />,\n field: 'entity.metadata.namespace',\n width: 'auto',\n };\n },\n});\n"],"names":[],"mappings":"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"}
|
package/dist/package.json.esm.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-catalog",
|
|
3
|
-
"version": "1.31.3
|
|
3
|
+
"version": "1.31.3",
|
|
4
4
|
"description": "The Backstage plugin for browsing the Backstage catalog",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -70,24 +70,24 @@
|
|
|
70
70
|
"test": "backstage-cli package test"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@backstage/catalog-client": "1.12.0
|
|
74
|
-
"@backstage/catalog-model": "1.7.5",
|
|
75
|
-
"@backstage/core-compat-api": "0.5.2
|
|
76
|
-
"@backstage/core-components": "0.
|
|
77
|
-
"@backstage/core-plugin-api": "1.
|
|
78
|
-
"@backstage/errors": "1.2.7",
|
|
79
|
-
"@backstage/frontend-plugin-api": "0.
|
|
80
|
-
"@backstage/integration-react": "1.2.10
|
|
81
|
-
"@backstage/plugin-catalog-common": "1.1.5",
|
|
82
|
-
"@backstage/plugin-catalog-react": "1.21.0
|
|
83
|
-
"@backstage/plugin-permission-react": "0.4.36",
|
|
84
|
-
"@backstage/plugin-scaffolder-common": "1.7.1
|
|
85
|
-
"@backstage/plugin-search-common": "1.2.19",
|
|
86
|
-
"@backstage/plugin-search-react": "1.9.4
|
|
87
|
-
"@backstage/plugin-techdocs-common": "0.1.1",
|
|
88
|
-
"@backstage/plugin-techdocs-react": "1.3.3
|
|
89
|
-
"@backstage/types": "1.2.
|
|
90
|
-
"@backstage/version-bridge": "1.0.11",
|
|
73
|
+
"@backstage/catalog-client": "^1.12.0",
|
|
74
|
+
"@backstage/catalog-model": "^1.7.5",
|
|
75
|
+
"@backstage/core-compat-api": "^0.5.2",
|
|
76
|
+
"@backstage/core-components": "^0.18.0",
|
|
77
|
+
"@backstage/core-plugin-api": "^1.11.0",
|
|
78
|
+
"@backstage/errors": "^1.2.7",
|
|
79
|
+
"@backstage/frontend-plugin-api": "^0.12.0",
|
|
80
|
+
"@backstage/integration-react": "^1.2.10",
|
|
81
|
+
"@backstage/plugin-catalog-common": "^1.1.5",
|
|
82
|
+
"@backstage/plugin-catalog-react": "^1.21.0",
|
|
83
|
+
"@backstage/plugin-permission-react": "^0.4.36",
|
|
84
|
+
"@backstage/plugin-scaffolder-common": "^1.7.1",
|
|
85
|
+
"@backstage/plugin-search-common": "^1.2.19",
|
|
86
|
+
"@backstage/plugin-search-react": "^1.9.4",
|
|
87
|
+
"@backstage/plugin-techdocs-common": "^0.1.1",
|
|
88
|
+
"@backstage/plugin-techdocs-react": "^1.3.3",
|
|
89
|
+
"@backstage/types": "^1.2.2",
|
|
90
|
+
"@backstage/version-bridge": "^1.0.11",
|
|
91
91
|
"@material-ui/core": "^4.12.2",
|
|
92
92
|
"@material-ui/icons": "^4.9.1",
|
|
93
93
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
@@ -102,12 +102,12 @@
|
|
|
102
102
|
"zen-observable": "^0.10.0"
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
|
-
"@backstage/cli": "0.34.2
|
|
106
|
-
"@backstage/core-app-api": "1.
|
|
107
|
-
"@backstage/dev-utils": "1.1.14
|
|
108
|
-
"@backstage/frontend-test-utils": "0.3.6
|
|
109
|
-
"@backstage/plugin-permission-common": "0.9.1",
|
|
110
|
-
"@backstage/test-utils": "1.7.11",
|
|
105
|
+
"@backstage/cli": "^0.34.2",
|
|
106
|
+
"@backstage/core-app-api": "^1.19.0",
|
|
107
|
+
"@backstage/dev-utils": "^1.1.14",
|
|
108
|
+
"@backstage/frontend-test-utils": "^0.3.6",
|
|
109
|
+
"@backstage/plugin-permission-common": "^0.9.1",
|
|
110
|
+
"@backstage/test-utils": "^1.7.11",
|
|
111
111
|
"@testing-library/dom": "^10.0.0",
|
|
112
112
|
"@testing-library/jest-dom": "^6.0.0",
|
|
113
113
|
"@testing-library/react": "^16.0.0",
|