@backstage/plugin-catalog 1.31.3-next.2 → 1.31.4-next.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 CHANGED
@@ -1,5 +1,49 @@
1
1
  # @backstage/plugin-catalog
2
2
 
3
+ ## 1.31.4-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+ - @backstage/plugin-catalog-react@1.21.2-next.0
9
+ - @backstage/core-components@0.18.2-next.0
10
+ - @backstage/core-compat-api@0.5.3-next.0
11
+ - @backstage/frontend-plugin-api@0.12.1-next.0
12
+ - @backstage/integration-react@1.2.11-next.0
13
+ - @backstage/plugin-search-react@1.9.5-next.0
14
+ - @backstage/plugin-techdocs-react@1.3.4-next.0
15
+ - @backstage/plugin-scaffolder-common@1.7.2-next.0
16
+ - @backstage/catalog-client@1.12.0
17
+ - @backstage/catalog-model@1.7.5
18
+ - @backstage/core-plugin-api@1.11.0
19
+ - @backstage/errors@1.2.7
20
+ - @backstage/types@1.2.2
21
+ - @backstage/version-bridge@1.0.11
22
+ - @backstage/plugin-catalog-common@1.1.5
23
+ - @backstage/plugin-permission-react@0.4.36
24
+ - @backstage/plugin-search-common@1.2.19
25
+ - @backstage/plugin-techdocs-common@0.1.1
26
+
27
+ ## 1.31.3
28
+
29
+ ### Patch Changes
30
+
31
+ - 4316c11: Catalog table columns support i18n
32
+ - ce1239e: Auto-focus the first menu item in `EntityContextMenu`, and do not render a divider if an empty array is passed to `UNSTABLE_extraContextMenuItems`.
33
+ - 85c5e04: Fix incorrect `defaultTarget` on `createComponentRouteRef`.
34
+ - Updated dependencies
35
+ - @backstage/plugin-catalog-react@1.21.0
36
+ - @backstage/plugin-techdocs-react@1.3.3
37
+ - @backstage/frontend-plugin-api@0.12.0
38
+ - @backstage/core-plugin-api@1.11.0
39
+ - @backstage/catalog-client@1.12.0
40
+ - @backstage/core-components@0.18.0
41
+ - @backstage/types@1.2.2
42
+ - @backstage/core-compat-api@0.5.2
43
+ - @backstage/plugin-search-react@1.9.4
44
+ - @backstage/integration-react@1.2.10
45
+ - @backstage/plugin-scaffolder-common@1.7.1
46
+
3
47
  ## 1.31.3-next.2
4
48
 
5
49
  ### 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: "Name",
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: "System",
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: "Owner",
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: "Targets",
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: "Type",
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: "Lifecycle",
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: "Description",
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: "Tags",
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: "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 || "Label",
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: "Namespace",
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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"}
@@ -1,5 +1,5 @@
1
1
  var name = "@backstage/plugin-catalog";
2
- var version = "1.31.3-next.2";
2
+ var version = "1.31.4-next.0";
3
3
  var description = "The Backstage plugin for browsing the Backstage catalog";
4
4
  var backstage = {
5
5
  role: "frontend-plugin",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-catalog",
3
- "version": "1.31.3-next.2",
3
+ "version": "1.31.4-next.0",
4
4
  "description": "The Backstage plugin for browsing the Backstage catalog",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",
@@ -70,23 +70,23 @@
70
70
  "test": "backstage-cli package test"
71
71
  },
72
72
  "dependencies": {
73
- "@backstage/catalog-client": "1.12.0-next.0",
73
+ "@backstage/catalog-client": "1.12.0",
74
74
  "@backstage/catalog-model": "1.7.5",
75
- "@backstage/core-compat-api": "0.5.2-next.2",
76
- "@backstage/core-components": "0.17.6-next.1",
77
- "@backstage/core-plugin-api": "1.10.9",
75
+ "@backstage/core-compat-api": "0.5.3-next.0",
76
+ "@backstage/core-components": "0.18.2-next.0",
77
+ "@backstage/core-plugin-api": "1.11.0",
78
78
  "@backstage/errors": "1.2.7",
79
- "@backstage/frontend-plugin-api": "0.11.1-next.0",
80
- "@backstage/integration-react": "1.2.10-next.0",
79
+ "@backstage/frontend-plugin-api": "0.12.1-next.0",
80
+ "@backstage/integration-react": "1.2.11-next.0",
81
81
  "@backstage/plugin-catalog-common": "1.1.5",
82
- "@backstage/plugin-catalog-react": "1.21.0-next.2",
82
+ "@backstage/plugin-catalog-react": "1.21.2-next.0",
83
83
  "@backstage/plugin-permission-react": "0.4.36",
84
- "@backstage/plugin-scaffolder-common": "1.7.1-next.0",
84
+ "@backstage/plugin-scaffolder-common": "1.7.2-next.0",
85
85
  "@backstage/plugin-search-common": "1.2.19",
86
- "@backstage/plugin-search-react": "1.9.4-next.0",
86
+ "@backstage/plugin-search-react": "1.9.5-next.0",
87
87
  "@backstage/plugin-techdocs-common": "0.1.1",
88
- "@backstage/plugin-techdocs-react": "1.3.3-next.0",
89
- "@backstage/types": "1.2.1",
88
+ "@backstage/plugin-techdocs-react": "1.3.4-next.0",
89
+ "@backstage/types": "1.2.2",
90
90
  "@backstage/version-bridge": "1.0.11",
91
91
  "@material-ui/core": "^4.12.2",
92
92
  "@material-ui/icons": "^4.9.1",
@@ -102,10 +102,10 @@
102
102
  "zen-observable": "^0.10.0"
103
103
  },
104
104
  "devDependencies": {
105
- "@backstage/cli": "0.34.2-next.2",
106
- "@backstage/core-app-api": "1.18.0",
107
- "@backstage/dev-utils": "1.1.14-next.2",
108
- "@backstage/frontend-test-utils": "0.3.6-next.0",
105
+ "@backstage/cli": "0.34.4-next.0",
106
+ "@backstage/core-app-api": "1.19.0",
107
+ "@backstage/dev-utils": "1.1.15-next.0",
108
+ "@backstage/frontend-test-utils": "0.3.7-next.0",
109
109
  "@backstage/plugin-permission-common": "0.9.1",
110
110
  "@backstage/test-utils": "1.7.11",
111
111
  "@testing-library/dom": "^10.0.0",