@drodil/backstage-plugin-qeta 4.1.0 → 4.1.2
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/config.schema.json +1 -1
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js +2 -3
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/plugins/qeta/package.json.esm.js +2 -4
- package/dist/plugins/qeta/package.json.esm.js.map +1 -1
- package/package.json +26 -28
package/config.schema.json
CHANGED
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
"properties": {
|
|
173
173
|
"disabled": {
|
|
174
174
|
"type": "boolean",
|
|
175
|
-
"description": "Hide user profile statistics and
|
|
175
|
+
"description": "Hide user profile statistics, user-directory activity metrics, and activity-based sorting. Prevent access to other users' activity.",
|
|
176
176
|
"visibility": "frontend"
|
|
177
177
|
},
|
|
178
178
|
"lastSeen": {
|
|
@@ -6,7 +6,6 @@ import { HighlightedSearchResultText } from '@backstage/plugin-search-react';
|
|
|
6
6
|
import { selectByPostType, truncate, removeMarkdownFormatting } from '@drodil/backstage-plugin-qeta-common';
|
|
7
7
|
import { EntityRefLink } from '@backstage/plugin-catalog-react';
|
|
8
8
|
import DOMPurify from 'dompurify';
|
|
9
|
-
import { capitalize } from 'lodash';
|
|
10
9
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
11
10
|
import { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';
|
|
12
11
|
import { parseEntityRef } from '@backstage/catalog-model';
|
|
@@ -44,7 +43,7 @@ const Excerpt = (props) => {
|
|
|
44
43
|
variant: "body-small",
|
|
45
44
|
color: "secondary",
|
|
46
45
|
children: [
|
|
47
|
-
|
|
46
|
+
t(`common.${document.postType}`).charAt(0).toLocaleUpperCase() + t(`common.${document.postType}`).slice(1).toLocaleLowerCase(),
|
|
48
47
|
" \xB7 ",
|
|
49
48
|
t("searchResult.created"),
|
|
50
49
|
" ",
|
|
@@ -87,7 +86,7 @@ const Excerpt = (props) => {
|
|
|
87
86
|
variant: "body-small",
|
|
88
87
|
color: "secondary",
|
|
89
88
|
children: [
|
|
90
|
-
|
|
89
|
+
t("common.collection").charAt(0).toLocaleUpperCase() + t("common.collection").slice(1).toLocaleLowerCase(),
|
|
91
90
|
" \xB7 ",
|
|
92
91
|
t("searchResult.created"),
|
|
93
92
|
" ",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QetaSearchResultListItem.esm.js","sources":["../../../src/components/QetaSearchResultListItem/QetaSearchResultListItem.tsx"],"sourcesContent":["import { DateTime } from 'luxon';\nimport { Link } from 'react-router-dom';\nimport { Text } from '@backstage/ui';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport {\n QetaCollectionDocument,\n QetaPostDocument,\n QetaSearchDocument,\n removeMarkdownFormatting,\n selectByPostType,\n truncate,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport DOMPurify from 'dompurify';\nimport { capitalize } from 'lodash';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\nimport { parseEntityRef } from '@backstage/catalog-model';\nimport {\n RiBookOpenLine,\n RiLink,\n RiPlayList2Line,\n RiQuestionLine,\n} from '@remixicon/react';\nimport styles from './QetaSearchResultListItem.module.css';\n\nexport type QetaSearchResultListItemProps = {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n hideIcon?: boolean;\n};\n\nconst isQetaSearchDocument = (\n document: IndexableDocument,\n): document is QetaSearchDocument => {\n return (\n 'docType' in document &&\n (document.docType === 'qeta_post' || document.docType === 'qeta_collection')\n );\n};\n\nconst isQetaPostDocument = (\n document: QetaSearchDocument,\n): document is QetaPostDocument => {\n return document.docType === 'qeta_post';\n};\n\nconst isQetaCollectionDocument = (\n document: QetaSearchDocument,\n): document is QetaCollectionDocument => {\n return document.docType === 'qeta_collection';\n};\n\nconst Excerpt = (props: {\n document: QetaSearchDocument;\n highlight?: ResultHighlight;\n}) => {\n const { document, highlight } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n\n const text = DOMPurify.sanitize(\n truncate(\n removeMarkdownFormatting(highlight?.fields.text ?? document.text),\n 300,\n ),\n );\n\n if (isQetaPostDocument(document)) {\n const authorEntity = parseEntityRef(document.author, {\n defaultKind: 'user',\n defaultNamespace: 'default',\n });\n return (\n <>\n <Text\n className={styles.excerptMeta}\n variant=\"body-small\"\n color=\"secondary\"\n >\n {capitalize(t(`common.${document.postType}`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={authorEntity} hideIcon />\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.score', { score: document.score.toString(10) })}\n </>\n )}\n {' · '}\n {document.postType === 'link' &&\n t('common.clicksCount', { count: document.views })}\n {document.postType !== 'link' &&\n t('common.viewsShort', { count: document.views })}\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.answersCount', { count: document.answerCount })}\n </>\n )}\n </Text>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n } else if (isQetaCollectionDocument(document)) {\n const ownerEntity = parseEntityRef(document.owner, {\n defaultKind: 'user',\n defaultNamespace: 'default',\n });\n return (\n <>\n <Text\n className={styles.excerptMeta}\n variant=\"body-small\"\n color=\"secondary\"\n >\n {capitalize(t(`common.collection`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={ownerEntity} hideIcon />\n {' · '}\n {t('common.posts', {\n count: document.postsCount,\n itemType: t('common.post'),\n })}\n </Text>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n }\n\n return null;\n};\n\nconst ResultIcon = (props: { document: QetaSearchDocument }) => {\n const { document } = props;\n if (isQetaPostDocument(document)) {\n return selectByPostType(\n document.postType,\n <RiQuestionLine size={20} />,\n <RiBookOpenLine size={20} />,\n <RiLink size={20} />,\n );\n }\n\n return <RiPlayList2Line size={20} />;\n};\n\nexport const QetaSearchResultListItem = (\n props: QetaSearchResultListItemProps,\n) => {\n const { result, highlight, hideIcon } = props;\n\n if (!result || !isQetaSearchDocument(result)) {\n return null;\n }\n\n const title = (\n <Link to={result.location}>\n {highlight?.fields.title ? (\n <HighlightedSearchResultText\n text={highlight.fields.title}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.title\n )}\n </Link>\n );\n\n return (\n <>\n <article\n className={styles.resultItem}\n aria-labelledby={`search-result-${result.title}`}\n >\n {hideIcon !== true && (\n <span className={styles.resultIcon}>\n <ResultIcon document={result} aria-hidden=\"true\" />\n </span>\n )}\n <div className={styles.itemText}>\n <h3 id={`search-result-${result.title}`} className={styles.title}>\n {title}\n </h3>\n <div className={styles.excerpt}>\n <Excerpt document={result} highlight={highlight} />\n </div>\n </div>\n </article>\n\n <hr className={styles.divider} aria-hidden=\"true\" />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QetaSearchResultListItem.esm.js","sources":["../../../src/components/QetaSearchResultListItem/QetaSearchResultListItem.tsx"],"sourcesContent":["import { DateTime } from 'luxon';\nimport { Link } from 'react-router-dom';\nimport { Text } from '@backstage/ui';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport {\n QetaCollectionDocument,\n QetaPostDocument,\n QetaSearchDocument,\n removeMarkdownFormatting,\n selectByPostType,\n truncate,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport DOMPurify from 'dompurify';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\nimport { parseEntityRef } from '@backstage/catalog-model';\nimport {\n RiBookOpenLine,\n RiLink,\n RiPlayList2Line,\n RiQuestionLine,\n} from '@remixicon/react';\nimport styles from './QetaSearchResultListItem.module.css';\n\nexport type QetaSearchResultListItemProps = {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n hideIcon?: boolean;\n};\n\nconst isQetaSearchDocument = (\n document: IndexableDocument,\n): document is QetaSearchDocument => {\n return (\n 'docType' in document &&\n (document.docType === 'qeta_post' || document.docType === 'qeta_collection')\n );\n};\n\nconst isQetaPostDocument = (\n document: QetaSearchDocument,\n): document is QetaPostDocument => {\n return document.docType === 'qeta_post';\n};\n\nconst isQetaCollectionDocument = (\n document: QetaSearchDocument,\n): document is QetaCollectionDocument => {\n return document.docType === 'qeta_collection';\n};\n\nconst Excerpt = (props: {\n document: QetaSearchDocument;\n highlight?: ResultHighlight;\n}) => {\n const { document, highlight } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n\n const text = DOMPurify.sanitize(\n truncate(\n removeMarkdownFormatting(highlight?.fields.text ?? document.text),\n 300,\n ),\n );\n\n if (isQetaPostDocument(document)) {\n const authorEntity = parseEntityRef(document.author, {\n defaultKind: 'user',\n defaultNamespace: 'default',\n });\n return (\n <>\n <Text\n className={styles.excerptMeta}\n variant=\"body-small\"\n color=\"secondary\"\n >\n {t(`common.${document.postType}`).charAt(0).toLocaleUpperCase() +\n t(`common.${document.postType}`).slice(1).toLocaleLowerCase()}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={authorEntity} hideIcon />\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.score', { score: document.score.toString(10) })}\n </>\n )}\n {' · '}\n {document.postType === 'link' &&\n t('common.clicksCount', { count: document.views })}\n {document.postType !== 'link' &&\n t('common.viewsShort', { count: document.views })}\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.answersCount', { count: document.answerCount })}\n </>\n )}\n </Text>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n } else if (isQetaCollectionDocument(document)) {\n const ownerEntity = parseEntityRef(document.owner, {\n defaultKind: 'user',\n defaultNamespace: 'default',\n });\n return (\n <>\n <Text\n className={styles.excerptMeta}\n variant=\"body-small\"\n color=\"secondary\"\n >\n {t('common.collection').charAt(0).toLocaleUpperCase() +\n t('common.collection').slice(1).toLocaleLowerCase()}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={ownerEntity} hideIcon />\n {' · '}\n {t('common.posts', {\n count: document.postsCount,\n itemType: t('common.post'),\n })}\n </Text>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n }\n\n return null;\n};\n\nconst ResultIcon = (props: { document: QetaSearchDocument }) => {\n const { document } = props;\n if (isQetaPostDocument(document)) {\n return selectByPostType(\n document.postType,\n <RiQuestionLine size={20} />,\n <RiBookOpenLine size={20} />,\n <RiLink size={20} />,\n );\n }\n\n return <RiPlayList2Line size={20} />;\n};\n\nexport const QetaSearchResultListItem = (\n props: QetaSearchResultListItemProps,\n) => {\n const { result, highlight, hideIcon } = props;\n\n if (!result || !isQetaSearchDocument(result)) {\n return null;\n }\n\n const title = (\n <Link to={result.location}>\n {highlight?.fields.title ? (\n <HighlightedSearchResultText\n text={highlight.fields.title}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.title\n )}\n </Link>\n );\n\n return (\n <>\n <article\n className={styles.resultItem}\n aria-labelledby={`search-result-${result.title}`}\n >\n {hideIcon !== true && (\n <span className={styles.resultIcon}>\n <ResultIcon document={result} aria-hidden=\"true\" />\n </span>\n )}\n <div className={styles.itemText}>\n <h3 id={`search-result-${result.title}`} className={styles.title}>\n {title}\n </h3>\n <div className={styles.excerpt}>\n <Excerpt document={result} highlight={highlight} />\n </div>\n </div>\n </article>\n\n <hr className={styles.divider} aria-hidden=\"true\" />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -92,7 +92,7 @@ declare const qetaPlugin: _backstage_frontend_plugin_api.OverridableFrontendPlug
|
|
|
92
92
|
relations: string[] | undefined;
|
|
93
93
|
path: string | undefined;
|
|
94
94
|
title: string | undefined;
|
|
95
|
-
filter: _backstage_filter_predicates.FilterPredicate | undefined;
|
|
95
|
+
filter: string | _backstage_filter_predicates.FilterPredicate | undefined;
|
|
96
96
|
group: string | false | undefined;
|
|
97
97
|
icon: string | undefined;
|
|
98
98
|
};
|
|
@@ -109,7 +109,7 @@ declare const qetaPlugin: _backstage_frontend_plugin_api.OverridableFrontendPlug
|
|
|
109
109
|
relations?: string[] | undefined;
|
|
110
110
|
path?: string | undefined | undefined;
|
|
111
111
|
title?: string | undefined | undefined;
|
|
112
|
-
filter?: _backstage_filter_predicates.FilterPredicate | undefined;
|
|
112
|
+
filter?: string | _backstage_filter_predicates.FilterPredicate | undefined;
|
|
113
113
|
group?: string | false | undefined | undefined;
|
|
114
114
|
icon?: string | undefined | undefined;
|
|
115
115
|
};
|
|
@@ -6,7 +6,7 @@ var keywords = [
|
|
|
6
6
|
"frontend",
|
|
7
7
|
"backstage.io"
|
|
8
8
|
];
|
|
9
|
-
var version = "4.1.
|
|
9
|
+
var version = "4.1.2";
|
|
10
10
|
var main = "src/index.tsx";
|
|
11
11
|
var types = "src/index.tsx";
|
|
12
12
|
var prepublishOnly = "yarn tsc && yarn build";
|
|
@@ -72,14 +72,13 @@ var dependencies = {
|
|
|
72
72
|
"@drodil/backstage-plugin-qeta-react": "workspace:^",
|
|
73
73
|
"@remixicon/react": "^4.2.0",
|
|
74
74
|
dompurify: "^3.2.4",
|
|
75
|
-
lodash: "^4.17.23",
|
|
76
75
|
luxon: "^3.5.0",
|
|
77
76
|
"react-use": "^17.4.0",
|
|
78
77
|
unified: "^11.0.5",
|
|
79
78
|
zod: "^4.0.0"
|
|
80
79
|
};
|
|
81
80
|
var peerDependencies = {
|
|
82
|
-
"@backstage/catalog-client": "^1.16.
|
|
81
|
+
"@backstage/catalog-client": "^1.16.3",
|
|
83
82
|
react: " ^18.0.0 || ^19.0.0",
|
|
84
83
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
85
84
|
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
|
@@ -99,7 +98,6 @@ var devDependencies = {
|
|
|
99
98
|
"@backstage/plugin-techdocs": "backstage:^",
|
|
100
99
|
"@backstage/plugin-user-settings": "backstage:^",
|
|
101
100
|
"@testing-library/jest-dom": "^6.1.3",
|
|
102
|
-
"@types/lodash": "^4.14.199",
|
|
103
101
|
"@types/luxon": "^3",
|
|
104
102
|
"cross-fetch": "^3.1.5",
|
|
105
103
|
"rehype-mermaid": "^3.0.0"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"frontend",
|
|
8
8
|
"backstage.io"
|
|
9
9
|
],
|
|
10
|
-
"version": "4.1.
|
|
10
|
+
"version": "4.1.2",
|
|
11
11
|
"main": "./dist/index.esm.js",
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
13
13
|
"prepublishOnly": "yarn tsc && yarn build",
|
|
@@ -65,30 +65,29 @@
|
|
|
65
65
|
"tsc": "tsc"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@backstage/catalog-model": "^1.10.
|
|
69
|
-
"@backstage/core-compat-api": "^0.5.
|
|
70
|
-
"@backstage/core-components": "^0.18.
|
|
71
|
-
"@backstage/core-plugin-api": "^1.12.
|
|
72
|
-
"@backstage/frontend-plugin-api": "^0.18.
|
|
73
|
-
"@backstage/plugin-catalog-react": "^3.
|
|
74
|
-
"@backstage/plugin-home-react": "^0.1.
|
|
75
|
-
"@backstage/plugin-search-common": "^1.2.
|
|
76
|
-
"@backstage/plugin-search-react": "^1.11.
|
|
77
|
-
"@backstage/plugin-signals-react": "^0.0.
|
|
78
|
-
"@backstage/plugin-techdocs-react": "^1.
|
|
79
|
-
"@backstage/ui": "^0.
|
|
80
|
-
"@drodil/backstage-plugin-qeta-common": "^4.1.
|
|
81
|
-
"@drodil/backstage-plugin-qeta-react": "^4.1.
|
|
68
|
+
"@backstage/catalog-model": "^1.10.2",
|
|
69
|
+
"@backstage/core-compat-api": "^0.5.16",
|
|
70
|
+
"@backstage/core-components": "^0.18.15",
|
|
71
|
+
"@backstage/core-plugin-api": "^1.12.11",
|
|
72
|
+
"@backstage/frontend-plugin-api": "^0.18.2",
|
|
73
|
+
"@backstage/plugin-catalog-react": "^3.3.0",
|
|
74
|
+
"@backstage/plugin-home-react": "^0.1.43",
|
|
75
|
+
"@backstage/plugin-search-common": "^1.2.26",
|
|
76
|
+
"@backstage/plugin-search-react": "^1.11.9",
|
|
77
|
+
"@backstage/plugin-signals-react": "^0.0.27",
|
|
78
|
+
"@backstage/plugin-techdocs-react": "^1.4.0",
|
|
79
|
+
"@backstage/ui": "^0.19.0",
|
|
80
|
+
"@drodil/backstage-plugin-qeta-common": "^4.1.2",
|
|
81
|
+
"@drodil/backstage-plugin-qeta-react": "^4.1.2",
|
|
82
82
|
"@remixicon/react": "^4.2.0",
|
|
83
83
|
"dompurify": "^3.2.4",
|
|
84
|
-
"lodash": "^4.17.23",
|
|
85
84
|
"luxon": "^3.5.0",
|
|
86
85
|
"react-use": "^17.4.0",
|
|
87
86
|
"unified": "^11.0.5",
|
|
88
87
|
"zod": "^4.0.0"
|
|
89
88
|
},
|
|
90
89
|
"peerDependencies": {
|
|
91
|
-
"@backstage/catalog-client": "^1.16.
|
|
90
|
+
"@backstage/catalog-client": "^1.16.3",
|
|
92
91
|
"react": " ^18.0.0 || ^19.0.0",
|
|
93
92
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
94
93
|
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
|
@@ -97,18 +96,17 @@
|
|
|
97
96
|
"react-markdown": "8.0.7"
|
|
98
97
|
},
|
|
99
98
|
"devDependencies": {
|
|
100
|
-
"@backstage/cli": "^0.36.
|
|
101
|
-
"@backstage/frontend-defaults": "^0.5.
|
|
102
|
-
"@backstage/plugin-catalog": "^2.0.
|
|
103
|
-
"@backstage/plugin-home": "^0.9.
|
|
104
|
-
"@backstage/plugin-notifications": "^0.6.
|
|
105
|
-
"@backstage/plugin-search": "^1.7.
|
|
106
|
-
"@backstage/plugin-search-react": "^1.11.
|
|
107
|
-
"@backstage/plugin-signals": "^0.0.
|
|
108
|
-
"@backstage/plugin-techdocs": "^1.
|
|
109
|
-
"@backstage/plugin-user-settings": "^0.9.
|
|
99
|
+
"@backstage/cli": "^0.36.7",
|
|
100
|
+
"@backstage/frontend-defaults": "^0.5.7",
|
|
101
|
+
"@backstage/plugin-catalog": "^2.0.10",
|
|
102
|
+
"@backstage/plugin-home": "^0.9.11",
|
|
103
|
+
"@backstage/plugin-notifications": "^0.6.1",
|
|
104
|
+
"@backstage/plugin-search": "^1.7.9",
|
|
105
|
+
"@backstage/plugin-search-react": "^1.11.9",
|
|
106
|
+
"@backstage/plugin-signals": "^0.0.36",
|
|
107
|
+
"@backstage/plugin-techdocs": "^1.19.0",
|
|
108
|
+
"@backstage/plugin-user-settings": "^0.9.8",
|
|
110
109
|
"@testing-library/jest-dom": "^6.1.3",
|
|
111
|
-
"@types/lodash": "^4.14.199",
|
|
112
110
|
"@types/luxon": "^3",
|
|
113
111
|
"cross-fetch": "^3.1.5",
|
|
114
112
|
"rehype-mermaid": "^3.0.0"
|