@drodil/backstage-plugin-qeta 3.59.7 → 3.59.10
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 +152 -0
- package/dist/alpha.d.ts +0 -21
- package/dist/alpha.esm.js +3 -9
- package/dist/alpha.esm.js.map +1 -1
- package/dist/package.json.esm.js +2 -2
- package/package.json +28 -28
- package/configSchema.d.ts +0 -147
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"qeta": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"allowAnonymous": {
|
|
9
|
+
"type": "boolean",
|
|
10
|
+
"description": "Allow anonymous questions",
|
|
11
|
+
"visibility": "frontend"
|
|
12
|
+
},
|
|
13
|
+
"permissions": {
|
|
14
|
+
"type": "boolean",
|
|
15
|
+
"visibility": "frontend"
|
|
16
|
+
},
|
|
17
|
+
"entityKinds": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
},
|
|
22
|
+
"description": "Determine what kind of entities can be attached to questions. For example [System, Component, API, Location, Template]. Default is [Component, System].",
|
|
23
|
+
"visibility": "frontend",
|
|
24
|
+
"deprecated": "use `entities` config instead"
|
|
25
|
+
},
|
|
26
|
+
"entities": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"properties": {
|
|
29
|
+
"kinds": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"description": "Determine what kind of entities can be attached to posts. For example [System, Component, API, Location, Template]. Default is [Component, System].",
|
|
35
|
+
"visibility": "frontend"
|
|
36
|
+
},
|
|
37
|
+
"max": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"description": "Maximum entities to attach to posts.",
|
|
40
|
+
"visibility": "frontend"
|
|
41
|
+
},
|
|
42
|
+
"min": {
|
|
43
|
+
"type": "number",
|
|
44
|
+
"description": "Minimum entities required to attach to post.",
|
|
45
|
+
"visibility": "frontend"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"description": "Entities configuration for posts.",
|
|
49
|
+
"visibility": "frontend"
|
|
50
|
+
},
|
|
51
|
+
"tags": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"properties": {
|
|
54
|
+
"allowCreation": {
|
|
55
|
+
"type": "boolean",
|
|
56
|
+
"description": "Allow creation of new tags. Default: true",
|
|
57
|
+
"visibility": "frontend"
|
|
58
|
+
},
|
|
59
|
+
"allowedTags": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"items": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"description": "Allowed tags to be used with posts. Only valid if allowCreation is false.",
|
|
65
|
+
"visibility": "frontend"
|
|
66
|
+
},
|
|
67
|
+
"max": {
|
|
68
|
+
"type": "number",
|
|
69
|
+
"description": "Maximum number of tags per post. Default: 5",
|
|
70
|
+
"visibility": "frontend"
|
|
71
|
+
},
|
|
72
|
+
"min": {
|
|
73
|
+
"type": "number",
|
|
74
|
+
"description": "Minimum number of tags required per post.",
|
|
75
|
+
"visibility": "frontend"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"description": "Posts tags specific configuration",
|
|
79
|
+
"visibility": "frontend"
|
|
80
|
+
},
|
|
81
|
+
"mentions": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"properties": {
|
|
84
|
+
"supportedKinds": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"items": {
|
|
87
|
+
"type": "string"
|
|
88
|
+
},
|
|
89
|
+
"description": "List of types of mentions that can be used in posts.\n\nCurrently supported types are:\n- `user`: Mention a user\n- `group`: Mention a group",
|
|
90
|
+
"visibility": "frontend"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"description": "Posts mentions specific configuration",
|
|
94
|
+
"visibility": "frontend"
|
|
95
|
+
},
|
|
96
|
+
"moderators": {
|
|
97
|
+
"type": "array",
|
|
98
|
+
"items": {
|
|
99
|
+
"type": "string"
|
|
100
|
+
},
|
|
101
|
+
"description": "List of users/groups that can moderate questions and answers in case permission framework is not in use. In case permission framework is in use, this list is used to determine if user can access the moderator panel",
|
|
102
|
+
"visibility": "frontend"
|
|
103
|
+
},
|
|
104
|
+
"storage": {
|
|
105
|
+
"type": "object",
|
|
106
|
+
"properties": {
|
|
107
|
+
"disabled": {
|
|
108
|
+
"type": "boolean",
|
|
109
|
+
"description": "If desire to disable image upload.",
|
|
110
|
+
"visibility": "frontend"
|
|
111
|
+
},
|
|
112
|
+
"allowedMimeTypes": {
|
|
113
|
+
"type": "array",
|
|
114
|
+
"items": {
|
|
115
|
+
"type": "string"
|
|
116
|
+
},
|
|
117
|
+
"description": "Allowed mime types for images.",
|
|
118
|
+
"visibility": "frontend"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"description": "If desire to disable image upload.",
|
|
122
|
+
"visibility": "frontend"
|
|
123
|
+
},
|
|
124
|
+
"aiBotName": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"description": "Name of the AI bot that responds to users questions. Defaults to 'AI'",
|
|
127
|
+
"visibility": "frontend"
|
|
128
|
+
},
|
|
129
|
+
"history": {
|
|
130
|
+
"type": "object",
|
|
131
|
+
"properties": {
|
|
132
|
+
"enabled": {
|
|
133
|
+
"type": "boolean",
|
|
134
|
+
"description": "Enable or disable revision tracking. Default: false",
|
|
135
|
+
"visibility": "frontend"
|
|
136
|
+
},
|
|
137
|
+
"enabledContent": {
|
|
138
|
+
"type": "array",
|
|
139
|
+
"items": {
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
"description": "Content types that should have revision tracking enabled. Possible values: 'article', 'question', 'link' Default: ['article']",
|
|
143
|
+
"visibility": "frontend"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"description": "Post history / revision tracking configuration",
|
|
147
|
+
"visibility": "frontend"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
package/dist/alpha.d.ts
CHANGED
|
@@ -160,27 +160,6 @@ declare const qetaPlugin: _backstage_frontend_plugin_api.OverridableFrontendPlug
|
|
|
160
160
|
inputs: {};
|
|
161
161
|
params: _backstage_plugin_home_react_alpha.HomePageWidgetBlueprintParams;
|
|
162
162
|
}>;
|
|
163
|
-
"nav-item:qeta": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
164
|
-
kind: "nav-item";
|
|
165
|
-
name: undefined;
|
|
166
|
-
config: {
|
|
167
|
-
title: string | undefined;
|
|
168
|
-
};
|
|
169
|
-
configInput: {
|
|
170
|
-
title?: string | undefined;
|
|
171
|
-
};
|
|
172
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<{
|
|
173
|
-
title: string;
|
|
174
|
-
icon: _backstage_frontend_plugin_api.IconComponent;
|
|
175
|
-
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
176
|
-
}, "core.nav-item.target", {}>;
|
|
177
|
-
inputs: {};
|
|
178
|
-
params: {
|
|
179
|
-
title: string;
|
|
180
|
-
icon: _backstage_frontend_plugin_api.IconComponent;
|
|
181
|
-
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
182
|
-
};
|
|
183
|
-
}>;
|
|
184
163
|
"page:qeta": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
185
164
|
config: {
|
|
186
165
|
subtitle: string | undefined;
|
package/dist/alpha.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { ApiBlueprint, createExtensionInput, PageBlueprint, coreExtensionData,
|
|
2
|
+
import { ApiBlueprint, createExtensionInput, PageBlueprint, coreExtensionData, createFrontendPlugin } from '@backstage/frontend-plugin-api';
|
|
3
3
|
import { compatWrapper, convertLegacyRouteRef, convertLegacyRouteRefs } from '@backstage/core-compat-api';
|
|
4
4
|
import { qetaApiRef, qetaRouteRef } from '@drodil/backstage-plugin-qeta-react';
|
|
5
5
|
export { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';
|
|
@@ -87,6 +87,8 @@ const qetaPage = PageBlueprint.makeWithOverrides({
|
|
|
87
87
|
const rehypePlugins = pluginsApi?.getRehypePlugins();
|
|
88
88
|
return originalFactory({
|
|
89
89
|
path: config.path ?? "/qeta",
|
|
90
|
+
title: config.title ?? "Q&A",
|
|
91
|
+
icon: /* @__PURE__ */ jsx(ContactSupportIcon, {}),
|
|
90
92
|
routeRef: convertLegacyRouteRef(qetaRouteRef),
|
|
91
93
|
loader: () => import('./components/QetaPage/index.esm.js').then(
|
|
92
94
|
(m) => compatWrapper(
|
|
@@ -152,13 +154,6 @@ const EntityPostsContent = EntityContentBlueprint.makeWithOverrides({
|
|
|
152
154
|
});
|
|
153
155
|
}
|
|
154
156
|
});
|
|
155
|
-
const qetaNavItem = NavItemBlueprint.make({
|
|
156
|
-
params: {
|
|
157
|
-
title: "Q&A",
|
|
158
|
-
routeRef: convertLegacyRouteRef(qetaRouteRef),
|
|
159
|
-
icon: ContactSupportIcon
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
157
|
const qetaSearchResultItem = SearchResultListItemBlueprint.make({
|
|
163
158
|
params: {
|
|
164
159
|
predicate: (result) => result.type === "qeta",
|
|
@@ -230,7 +225,6 @@ const qetaPlugin = createFrontendPlugin({
|
|
|
230
225
|
qetaApi,
|
|
231
226
|
qetaPage,
|
|
232
227
|
EntityPostsContent,
|
|
233
|
-
qetaNavItem,
|
|
234
228
|
qetaSearchResultItem,
|
|
235
229
|
qetaPostSearchFilterType,
|
|
236
230
|
techDocsAskQuestionAddon,
|
package/dist/alpha.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["import {\n ApiBlueprint,\n coreExtensionData,\n createExtensionInput,\n createFrontendPlugin,\n NavItemBlueprint,\n PageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n convertLegacyRouteRefs,\n} from '@backstage/core-compat-api';\nimport { qetaApiRef, qetaRouteRef } from '@drodil/backstage-plugin-qeta-react';\nimport {\n configApiRef,\n createApiRef,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n getSupportedEntityKinds,\n QetaClient,\n} from '@drodil/backstage-plugin-qeta-common';\nimport ContactSupportIcon from '@material-ui/icons/ContactSupport';\nimport { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';\nimport { Entity } from '@backstage/catalog-model';\nimport {\n SearchFilterResultTypeBlueprint,\n SearchResultListItemBlueprint,\n} from '@backstage/plugin-search-react/alpha';\nimport { TechDocsAddonLocations } from '@backstage/plugin-techdocs-react';\nimport { AddonBlueprint } from '@backstage/plugin-techdocs-react/alpha';\nimport { TechDocsAskQuestionAddon } from './components/TechDocsAskQuestionAddon';\nimport { Pluggable } from 'unified';\nimport { markdownPlugin } from '@drodil/backstage-plugin-qeta-react/alpha';\nimport { HomePageWidgetBlueprint } from '@backstage/plugin-home-react/alpha';\n\ninterface QetaMarkdownPluginsApi {\n getRehypePlugins(): Pluggable[];\n getRemarkPlugins(): Pluggable[];\n}\n\nexport const qetaMarkdownPluginsApiRef = createApiRef<QetaMarkdownPluginsApi>({\n id: 'plugin.qeta.addons',\n});\n\nexport const qetaMarkdownPluginsApiExtension = ApiBlueprint.makeWithOverrides({\n name: 'addons',\n inputs: {\n rehypePlugins: createExtensionInput([markdownPlugin]),\n remarkPlugins: createExtensionInput([markdownPlugin]),\n },\n factory(originalFactory, { inputs }) {\n const rehypePlugins = inputs.rehypePlugins.map(output =>\n output.get(markdownPlugin),\n );\n const remarkPlugins = inputs.remarkPlugins.map(output =>\n output.get(markdownPlugin),\n );\n return originalFactory(defineParams =>\n defineParams({\n api: qetaMarkdownPluginsApiRef,\n deps: {},\n factory: () => ({\n getRehypePlugins: () => rehypePlugins,\n getRemarkPlugins: () => remarkPlugins,\n }),\n }),\n );\n },\n});\n\nconst qetaApi = ApiBlueprint.make({\n params: defineParams =>\n defineParams({\n api: qetaApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory({ discoveryApi, fetchApi }) {\n return new QetaClient({ discoveryApi, fetchApi });\n },\n }),\n});\n\nconst qetaPage = PageBlueprint.makeWithOverrides({\n config: {\n schema: {\n subtitle: z => z.string().optional(),\n themeId: z => z.string().optional(),\n headerTooltip: z => z.string().optional(),\n headerType: z => z.string().optional(),\n headerTypeLink: z => z.string().optional(),\n },\n },\n inputs: {\n introElement: createExtensionInput([coreExtensionData.reactElement], {\n singleton: true,\n optional: true,\n }),\n headerElements: createExtensionInput([coreExtensionData.reactElement], {\n singleton: false,\n optional: true,\n }),\n },\n factory: (originalFactory, { config, inputs, apis }) => {\n const introElement = inputs.introElement?.get(\n coreExtensionData.reactElement,\n );\n const headerElements = inputs.headerElements.map(e =>\n e.get(coreExtensionData.reactElement),\n );\n const pluginsApi = apis.get(qetaMarkdownPluginsApiRef);\n const remarkPlugins = pluginsApi?.getRemarkPlugins();\n const rehypePlugins = pluginsApi?.getRehypePlugins();\n return originalFactory({\n path: config.path ?? '/qeta',\n routeRef: convertLegacyRouteRef(qetaRouteRef),\n loader: () =>\n import('./components/QetaPage').then(m =>\n compatWrapper(\n <m.QetaPage\n {...config}\n introElement={introElement}\n headerElements={headerElements}\n remarkPlugins={remarkPlugins}\n rehypePlugins={rehypePlugins}\n />,\n ),\n ),\n });\n },\n});\n\nconst EntityPostsContent = EntityContentBlueprint.makeWithOverrides({\n name: 'entity-posts-content',\n config: {\n schema: {\n showFilters: z => z.boolean().optional(),\n showTitle: z => z.boolean().optional(),\n showAskButton: z => z.boolean().optional(),\n showWriteButton: z => z.boolean().optional(),\n showLinkButton: z => z.boolean().optional(),\n showNoQuestionsBtn: z => z.boolean().optional(),\n initialPageSize: z => z.number().optional(),\n type: z => z.enum(['question', 'article', 'link']).optional(),\n view: z => z.enum(['list', 'grid']).optional(),\n relations: z => z.array(z.string()).optional(),\n },\n },\n inputs: {},\n factory: (originalFactory, { config, apis }) => {\n return originalFactory({\n path: config.path ?? '/qeta',\n title: config.title ?? 'Q&A',\n filter: (entity: Entity) => {\n const configApi = apis.get(configApiRef);\n const supportedKinds = getSupportedEntityKinds(configApi);\n const entityKind = entity.kind.toLowerCase();\n return supportedKinds?.includes(entityKind);\n },\n loader: async () => {\n const pluginsApi = apis.get(qetaMarkdownPluginsApiRef);\n const remarkPlugins = pluginsApi?.getRemarkPlugins();\n const rehypePlugins = pluginsApi?.getRehypePlugins();\n return import('./components/EntityPostsContent/EntityPostsContent.tsx').then(\n m =>\n compatWrapper(\n <m.EntityPostsContent\n {...config}\n remarkPlugins={remarkPlugins}\n rehypePlugins={rehypePlugins}\n />,\n ),\n );\n },\n });\n },\n});\n\nconst qetaNavItem = NavItemBlueprint.make({\n params: {\n title: 'Q&A',\n routeRef: convertLegacyRouteRef(qetaRouteRef),\n icon: ContactSupportIcon,\n },\n});\n\nconst qetaSearchResultItem = SearchResultListItemBlueprint.make({\n params: {\n predicate: result => result.type === 'qeta',\n component: () =>\n import('./components/QetaSearchResultListItem').then(\n m => m.QetaSearchResultListItem,\n ),\n },\n});\n\nconst qetaPostSearchFilterType = SearchFilterResultTypeBlueprint.make({\n name: 'qeta',\n params: {\n value: 'qeta',\n name: 'Q&A',\n icon: <ContactSupportIcon />,\n },\n});\n\nconst techDocsAskQuestionAddon = AddonBlueprint.make({\n name: 'ask-question',\n params: {\n name: 'AskQuestion',\n location: TechDocsAddonLocations.Content,\n component: TechDocsAskQuestionAddon,\n },\n});\n\nconst homePageTable = HomePageWidgetBlueprint.make({\n name: 'home-posts-table',\n params: {\n title: 'Q&A posts',\n description: 'Shows latest Q&A posts',\n components: () =>\n import('../src/components/PostsTableCard').then(m => ({\n Content: m.Content,\n })),\n settings: {\n schema: {\n title: 'Post settings',\n type: 'object',\n properties: {\n rowsPerPage: {\n title: 'Rows per page',\n type: 'number',\n },\n postType: {\n title: 'Post type',\n type: 'string',\n enum: ['all', 'question', 'article', 'link'],\n },\n },\n },\n },\n },\n});\n\nconst homeTimeline = HomePageWidgetBlueprint.make({\n name: 'home-posts-timeline',\n params: {\n title: 'Q&A timeline',\n description: 'Shows Q&A latest events',\n components: () =>\n import('../src/components/HomeTimeline').then(m => ({\n Content: m.HomeTimeline,\n })),\n },\n});\n\n/**\n * Backstage frontend plugin.\n *\n * @alpha\n */\nconst qetaPlugin = createFrontendPlugin({\n pluginId: 'qeta',\n info: { packageJson: () => import('../package.json') },\n routes: convertLegacyRouteRefs({\n root: qetaRouteRef,\n }),\n extensions: [\n qetaApi,\n qetaPage,\n EntityPostsContent,\n qetaNavItem,\n qetaSearchResultItem,\n qetaPostSearchFilterType,\n techDocsAskQuestionAddon,\n qetaMarkdownPluginsApiExtension,\n homePageTable,\n homeTimeline,\n ],\n});\n\nexport default qetaPlugin;\n\nexport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\n\n// TODO: To be removed in favor of direct imports from `@drodil/backstage-plugin-qeta-react/alpha` in the next major release, after the deprecation period has ended.\nexport {\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaMarkdownRehypePluginBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaPageIntroElementBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaPageHeaderElementBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaMarkdownRemarkPluginBlueprint,\n} from '@drodil/backstage-plugin-qeta-react/alpha';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["import {\n ApiBlueprint,\n coreExtensionData,\n createExtensionInput,\n createFrontendPlugin,\n PageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n convertLegacyRouteRefs,\n} from '@backstage/core-compat-api';\nimport { qetaApiRef, qetaRouteRef } from '@drodil/backstage-plugin-qeta-react';\nimport {\n configApiRef,\n createApiRef,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n getSupportedEntityKinds,\n QetaClient,\n} from '@drodil/backstage-plugin-qeta-common';\nimport ContactSupportIcon from '@material-ui/icons/ContactSupport';\nimport { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';\nimport { Entity } from '@backstage/catalog-model';\nimport {\n SearchFilterResultTypeBlueprint,\n SearchResultListItemBlueprint,\n} from '@backstage/plugin-search-react/alpha';\nimport { TechDocsAddonLocations } from '@backstage/plugin-techdocs-react';\nimport { AddonBlueprint } from '@backstage/plugin-techdocs-react/alpha';\nimport { TechDocsAskQuestionAddon } from './components/TechDocsAskQuestionAddon';\nimport { Pluggable } from 'unified';\nimport { markdownPlugin } from '@drodil/backstage-plugin-qeta-react/alpha';\nimport { HomePageWidgetBlueprint } from '@backstage/plugin-home-react/alpha';\n\ninterface QetaMarkdownPluginsApi {\n getRehypePlugins(): Pluggable[];\n getRemarkPlugins(): Pluggable[];\n}\n\nexport const qetaMarkdownPluginsApiRef = createApiRef<QetaMarkdownPluginsApi>({\n id: 'plugin.qeta.addons',\n});\n\nexport const qetaMarkdownPluginsApiExtension = ApiBlueprint.makeWithOverrides({\n name: 'addons',\n inputs: {\n rehypePlugins: createExtensionInput([markdownPlugin]),\n remarkPlugins: createExtensionInput([markdownPlugin]),\n },\n factory(originalFactory, { inputs }) {\n const rehypePlugins = inputs.rehypePlugins.map(output =>\n output.get(markdownPlugin),\n );\n const remarkPlugins = inputs.remarkPlugins.map(output =>\n output.get(markdownPlugin),\n );\n return originalFactory(defineParams =>\n defineParams({\n api: qetaMarkdownPluginsApiRef,\n deps: {},\n factory: () => ({\n getRehypePlugins: () => rehypePlugins,\n getRemarkPlugins: () => remarkPlugins,\n }),\n }),\n );\n },\n});\n\nconst qetaApi = ApiBlueprint.make({\n params: defineParams =>\n defineParams({\n api: qetaApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory({ discoveryApi, fetchApi }) {\n return new QetaClient({ discoveryApi, fetchApi });\n },\n }),\n});\n\nconst qetaPage = PageBlueprint.makeWithOverrides({\n config: {\n schema: {\n subtitle: z => z.string().optional(),\n themeId: z => z.string().optional(),\n headerTooltip: z => z.string().optional(),\n headerType: z => z.string().optional(),\n headerTypeLink: z => z.string().optional(),\n },\n },\n inputs: {\n introElement: createExtensionInput([coreExtensionData.reactElement], {\n singleton: true,\n optional: true,\n }),\n headerElements: createExtensionInput([coreExtensionData.reactElement], {\n singleton: false,\n optional: true,\n }),\n },\n factory: (originalFactory, { config, inputs, apis }) => {\n const introElement = inputs.introElement?.get(\n coreExtensionData.reactElement,\n );\n const headerElements = inputs.headerElements.map(e =>\n e.get(coreExtensionData.reactElement),\n );\n const pluginsApi = apis.get(qetaMarkdownPluginsApiRef);\n const remarkPlugins = pluginsApi?.getRemarkPlugins();\n const rehypePlugins = pluginsApi?.getRehypePlugins();\n return originalFactory({\n path: config.path ?? '/qeta',\n title: config.title ?? 'Q&A',\n icon: <ContactSupportIcon />,\n routeRef: convertLegacyRouteRef(qetaRouteRef),\n loader: () =>\n import('./components/QetaPage').then(m =>\n compatWrapper(\n <m.QetaPage\n {...config}\n introElement={introElement}\n headerElements={headerElements}\n remarkPlugins={remarkPlugins}\n rehypePlugins={rehypePlugins}\n />,\n ),\n ),\n });\n },\n});\n\nconst EntityPostsContent = EntityContentBlueprint.makeWithOverrides({\n name: 'entity-posts-content',\n config: {\n schema: {\n showFilters: z => z.boolean().optional(),\n showTitle: z => z.boolean().optional(),\n showAskButton: z => z.boolean().optional(),\n showWriteButton: z => z.boolean().optional(),\n showLinkButton: z => z.boolean().optional(),\n showNoQuestionsBtn: z => z.boolean().optional(),\n initialPageSize: z => z.number().optional(),\n type: z => z.enum(['question', 'article', 'link']).optional(),\n view: z => z.enum(['list', 'grid']).optional(),\n relations: z => z.array(z.string()).optional(),\n },\n },\n inputs: {},\n factory: (originalFactory, { config, apis }) => {\n return originalFactory({\n path: config.path ?? '/qeta',\n title: config.title ?? 'Q&A',\n filter: (entity: Entity) => {\n const configApi = apis.get(configApiRef);\n const supportedKinds = getSupportedEntityKinds(configApi);\n const entityKind = entity.kind.toLowerCase();\n return supportedKinds?.includes(entityKind);\n },\n loader: async () => {\n const pluginsApi = apis.get(qetaMarkdownPluginsApiRef);\n const remarkPlugins = pluginsApi?.getRemarkPlugins();\n const rehypePlugins = pluginsApi?.getRehypePlugins();\n return import('./components/EntityPostsContent/EntityPostsContent.tsx').then(\n m =>\n compatWrapper(\n <m.EntityPostsContent\n {...config}\n remarkPlugins={remarkPlugins}\n rehypePlugins={rehypePlugins}\n />,\n ),\n );\n },\n });\n },\n});\n\nconst qetaSearchResultItem = SearchResultListItemBlueprint.make({\n params: {\n predicate: result => result.type === 'qeta',\n component: () =>\n import('./components/QetaSearchResultListItem').then(\n m => m.QetaSearchResultListItem,\n ),\n },\n});\n\nconst qetaPostSearchFilterType = SearchFilterResultTypeBlueprint.make({\n name: 'qeta',\n params: {\n value: 'qeta',\n name: 'Q&A',\n icon: <ContactSupportIcon />,\n },\n});\n\nconst techDocsAskQuestionAddon = AddonBlueprint.make({\n name: 'ask-question',\n params: {\n name: 'AskQuestion',\n location: TechDocsAddonLocations.Content,\n component: TechDocsAskQuestionAddon,\n },\n});\n\nconst homePageTable = HomePageWidgetBlueprint.make({\n name: 'home-posts-table',\n params: {\n title: 'Q&A posts',\n description: 'Shows latest Q&A posts',\n components: () =>\n import('../src/components/PostsTableCard').then(m => ({\n Content: m.Content,\n })),\n settings: {\n schema: {\n title: 'Post settings',\n type: 'object',\n properties: {\n rowsPerPage: {\n title: 'Rows per page',\n type: 'number',\n },\n postType: {\n title: 'Post type',\n type: 'string',\n enum: ['all', 'question', 'article', 'link'],\n },\n },\n },\n },\n },\n});\n\nconst homeTimeline = HomePageWidgetBlueprint.make({\n name: 'home-posts-timeline',\n params: {\n title: 'Q&A timeline',\n description: 'Shows Q&A latest events',\n components: () =>\n import('../src/components/HomeTimeline').then(m => ({\n Content: m.HomeTimeline,\n })),\n },\n});\n\n/**\n * Backstage frontend plugin.\n *\n * @alpha\n */\nconst qetaPlugin = createFrontendPlugin({\n pluginId: 'qeta',\n info: { packageJson: () => import('../package.json') },\n routes: convertLegacyRouteRefs({\n root: qetaRouteRef,\n }),\n extensions: [\n qetaApi,\n qetaPage,\n EntityPostsContent,\n qetaSearchResultItem,\n qetaPostSearchFilterType,\n techDocsAskQuestionAddon,\n qetaMarkdownPluginsApiExtension,\n homePageTable,\n homeTimeline,\n ],\n});\n\nexport default qetaPlugin;\n\nexport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\n\n// TODO: To be removed in favor of direct imports from `@drodil/backstage-plugin-qeta-react/alpha` in the next major release, after the deprecation period has ended.\nexport {\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaMarkdownRehypePluginBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaPageIntroElementBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaPageHeaderElementBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaMarkdownRemarkPluginBlueprint,\n} from '@drodil/backstage-plugin-qeta-react/alpha';\n"],"names":[],"mappings":"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"}
|
package/dist/package.json.esm.js
CHANGED
|
@@ -6,7 +6,7 @@ var keywords = [
|
|
|
6
6
|
"frontend",
|
|
7
7
|
"backstage.io"
|
|
8
8
|
];
|
|
9
|
-
var version = "3.59.
|
|
9
|
+
var version = "3.59.10";
|
|
10
10
|
var main = "src/index.ts";
|
|
11
11
|
var types = "src/index.ts";
|
|
12
12
|
var prepublishOnly = "yarn tsc && yarn build";
|
|
@@ -83,7 +83,7 @@ var dependencies = {
|
|
|
83
83
|
unified: "^11.0.5"
|
|
84
84
|
};
|
|
85
85
|
var peerDependencies = {
|
|
86
|
-
"@backstage/catalog-client": "^1.
|
|
86
|
+
"@backstage/catalog-client": "^1.16.1",
|
|
87
87
|
react: " ^18.0.0 || ^19.0.0",
|
|
88
88
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
89
89
|
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"frontend",
|
|
8
8
|
"backstage.io"
|
|
9
9
|
],
|
|
10
|
-
"version": "3.59.
|
|
10
|
+
"version": "3.59.10",
|
|
11
11
|
"main": "./dist/index.esm.js",
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
13
13
|
"prepublishOnly": "yarn tsc && yarn build",
|
|
@@ -73,19 +73,19 @@
|
|
|
73
73
|
"tsc": "tsc"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@backstage/catalog-model": "^1.
|
|
77
|
-
"@backstage/core-compat-api": "^0.5.
|
|
78
|
-
"@backstage/core-components": "^0.18.
|
|
79
|
-
"@backstage/core-plugin-api": "^1.12.
|
|
80
|
-
"@backstage/frontend-plugin-api": "^0.
|
|
81
|
-
"@backstage/plugin-catalog-react": "^2.
|
|
82
|
-
"@backstage/plugin-home-react": "^0.1.
|
|
83
|
-
"@backstage/plugin-search-common": "^1.2.
|
|
84
|
-
"@backstage/plugin-search-react": "^1.11.
|
|
85
|
-
"@backstage/plugin-signals-react": "^0.0.
|
|
86
|
-
"@backstage/plugin-techdocs-react": "^1.3.
|
|
87
|
-
"@drodil/backstage-plugin-qeta-common": "^3.59.
|
|
88
|
-
"@drodil/backstage-plugin-qeta-react": "^3.59.
|
|
76
|
+
"@backstage/catalog-model": "^1.9.0",
|
|
77
|
+
"@backstage/core-compat-api": "^0.5.13",
|
|
78
|
+
"@backstage/core-components": "^0.18.12",
|
|
79
|
+
"@backstage/core-plugin-api": "^1.12.8",
|
|
80
|
+
"@backstage/frontend-plugin-api": "^0.17.3",
|
|
81
|
+
"@backstage/plugin-catalog-react": "^3.2.0",
|
|
82
|
+
"@backstage/plugin-home-react": "^0.1.40",
|
|
83
|
+
"@backstage/plugin-search-common": "^1.2.24",
|
|
84
|
+
"@backstage/plugin-search-react": "^1.11.6",
|
|
85
|
+
"@backstage/plugin-signals-react": "^0.0.24",
|
|
86
|
+
"@backstage/plugin-techdocs-react": "^1.3.13",
|
|
87
|
+
"@drodil/backstage-plugin-qeta-common": "^3.59.10",
|
|
88
|
+
"@drodil/backstage-plugin-qeta-react": "^3.59.10",
|
|
89
89
|
"@material-ui/core": "^4.12.2",
|
|
90
90
|
"@material-ui/icons": "^4.11.3",
|
|
91
91
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"unified": "^11.0.5"
|
|
97
97
|
},
|
|
98
98
|
"peerDependencies": {
|
|
99
|
-
"@backstage/catalog-client": "^1.
|
|
99
|
+
"@backstage/catalog-client": "^1.16.1",
|
|
100
100
|
"react": " ^18.0.0 || ^19.0.0",
|
|
101
101
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
102
102
|
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
|
@@ -105,17 +105,17 @@
|
|
|
105
105
|
"react-markdown": "8.0.7"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
|
-
"@backstage/cli": "^0.36.
|
|
109
|
-
"@backstage/frontend-defaults": "^0.5.
|
|
110
|
-
"@backstage/plugin-catalog": "^2.0.
|
|
111
|
-
"@backstage/plugin-home": "^0.9.
|
|
112
|
-
"@backstage/plugin-notifications": "^0.5.
|
|
113
|
-
"@backstage/plugin-search": "^1.7.
|
|
114
|
-
"@backstage/plugin-search-react": "^1.11.
|
|
115
|
-
"@backstage/plugin-signals": "^0.0.
|
|
116
|
-
"@backstage/plugin-techdocs": "^1.17.
|
|
117
|
-
"@backstage/plugin-user-settings": "^0.9.
|
|
118
|
-
"@backstage/ui": "^0.
|
|
108
|
+
"@backstage/cli": "^0.36.4",
|
|
109
|
+
"@backstage/frontend-defaults": "^0.5.4",
|
|
110
|
+
"@backstage/plugin-catalog": "^2.0.7",
|
|
111
|
+
"@backstage/plugin-home": "^0.9.8",
|
|
112
|
+
"@backstage/plugin-notifications": "^0.5.19",
|
|
113
|
+
"@backstage/plugin-search": "^1.7.6",
|
|
114
|
+
"@backstage/plugin-search-react": "^1.11.6",
|
|
115
|
+
"@backstage/plugin-signals": "^0.0.33",
|
|
116
|
+
"@backstage/plugin-techdocs": "^1.17.8",
|
|
117
|
+
"@backstage/plugin-user-settings": "^0.9.5",
|
|
118
|
+
"@backstage/ui": "^0.17.0",
|
|
119
119
|
"@testing-library/jest-dom": "^6.1.3",
|
|
120
120
|
"@types/lodash": "^4.14.199",
|
|
121
121
|
"@types/luxon": "^3",
|
|
@@ -124,8 +124,8 @@
|
|
|
124
124
|
},
|
|
125
125
|
"files": [
|
|
126
126
|
"dist",
|
|
127
|
-
"
|
|
127
|
+
"config.schema.json"
|
|
128
128
|
],
|
|
129
|
-
"configSchema": "
|
|
129
|
+
"configSchema": "config.schema.json",
|
|
130
130
|
"module": "./dist/index.esm.js"
|
|
131
131
|
}
|
package/configSchema.d.ts
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
export interface Config {
|
|
2
|
-
qeta?: {
|
|
3
|
-
/**
|
|
4
|
-
* Allow anonymous questions
|
|
5
|
-
*
|
|
6
|
-
* @visibility frontend
|
|
7
|
-
*/
|
|
8
|
-
allowAnonymous?: boolean;
|
|
9
|
-
/**
|
|
10
|
-
* @visibility frontend
|
|
11
|
-
*/
|
|
12
|
-
permissions?: boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Determine what kind of entities can be attached to questions.
|
|
15
|
-
* For example [System, Component, API, Location, Template]. Default is [Component, System].
|
|
16
|
-
*
|
|
17
|
-
* @visibility frontend
|
|
18
|
-
* @deprecated use `entities` config instead
|
|
19
|
-
*/
|
|
20
|
-
entityKinds?: string[];
|
|
21
|
-
/**
|
|
22
|
-
* Entities configuration for posts.
|
|
23
|
-
*
|
|
24
|
-
* @visibility frontend
|
|
25
|
-
*/
|
|
26
|
-
entities?: {
|
|
27
|
-
/**
|
|
28
|
-
* Determine what kind of entities can be attached to posts.
|
|
29
|
-
* For example [System, Component, API, Location, Template]. Default is [Component, System].
|
|
30
|
-
*
|
|
31
|
-
* @visibility frontend
|
|
32
|
-
*/
|
|
33
|
-
kinds?: string[];
|
|
34
|
-
/**
|
|
35
|
-
* Maximum entities to attach to posts.
|
|
36
|
-
*
|
|
37
|
-
* @visibility frontend
|
|
38
|
-
*/
|
|
39
|
-
max?: number;
|
|
40
|
-
/**
|
|
41
|
-
* Minimum entities required to attach to post.
|
|
42
|
-
*
|
|
43
|
-
* @visibility frontend
|
|
44
|
-
*/
|
|
45
|
-
min?: number;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Posts tags specific configuration
|
|
49
|
-
*
|
|
50
|
-
* @visibility frontend
|
|
51
|
-
*/
|
|
52
|
-
tags?: {
|
|
53
|
-
/**
|
|
54
|
-
* Allow creation of new tags. Default: true
|
|
55
|
-
*
|
|
56
|
-
* @visibility frontend
|
|
57
|
-
*/
|
|
58
|
-
allowCreation?: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Allowed tags to be used with posts.
|
|
61
|
-
* Only valid if allowCreation is false.
|
|
62
|
-
*
|
|
63
|
-
* @visibility frontend
|
|
64
|
-
*/
|
|
65
|
-
allowedTags?: string[];
|
|
66
|
-
/**
|
|
67
|
-
* Maximum number of tags per post. Default: 5
|
|
68
|
-
*
|
|
69
|
-
* @visibility frontend
|
|
70
|
-
*/
|
|
71
|
-
max?: number;
|
|
72
|
-
/**
|
|
73
|
-
* Minimum number of tags required per post.
|
|
74
|
-
*
|
|
75
|
-
* @visibility frontend
|
|
76
|
-
*/
|
|
77
|
-
min?: number;
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Posts mentions specific configuration
|
|
81
|
-
*
|
|
82
|
-
* @visibility frontend
|
|
83
|
-
*/
|
|
84
|
-
mentions?: {
|
|
85
|
-
/**
|
|
86
|
-
* List of types of mentions that can be used in posts.
|
|
87
|
-
*
|
|
88
|
-
* Currently supported types are:
|
|
89
|
-
* - `user`: Mention a user
|
|
90
|
-
* - `group`: Mention a group
|
|
91
|
-
*
|
|
92
|
-
* @visibility frontend
|
|
93
|
-
*/
|
|
94
|
-
supportedKinds?: string[];
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* List of users/groups that can moderate questions and answers in case permission framework is not in use.
|
|
98
|
-
* In case permission framework is in use, this list is used to determine if user
|
|
99
|
-
* can access the moderator panel
|
|
100
|
-
*
|
|
101
|
-
* @visibility frontend
|
|
102
|
-
*/
|
|
103
|
-
moderators?: string[];
|
|
104
|
-
/**
|
|
105
|
-
* If desire to disable image upload.
|
|
106
|
-
* @visibility frontend
|
|
107
|
-
*/
|
|
108
|
-
storage?: {
|
|
109
|
-
/**
|
|
110
|
-
* If desire to disable image upload.
|
|
111
|
-
* @visibility frontend
|
|
112
|
-
*/
|
|
113
|
-
disabled?: boolean;
|
|
114
|
-
/**
|
|
115
|
-
* Allowed mime types for images.
|
|
116
|
-
* @visibility frontend
|
|
117
|
-
*/
|
|
118
|
-
allowedMimeTypes?: string[];
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* Name of the AI bot that responds to users questions. Defaults to 'AI'
|
|
122
|
-
* @visibility frontend
|
|
123
|
-
*/
|
|
124
|
-
aiBotName?: string;
|
|
125
|
-
/**
|
|
126
|
-
* Post history / revision tracking configuration
|
|
127
|
-
*
|
|
128
|
-
* @visibility frontend
|
|
129
|
-
*/
|
|
130
|
-
history?: {
|
|
131
|
-
/**
|
|
132
|
-
* Enable or disable revision tracking. Default: false
|
|
133
|
-
*
|
|
134
|
-
* @visibility frontend
|
|
135
|
-
*/
|
|
136
|
-
enabled?: boolean;
|
|
137
|
-
/**
|
|
138
|
-
* Content types that should have revision tracking enabled.
|
|
139
|
-
* Possible values: 'article', 'question', 'link'
|
|
140
|
-
* Default: ['article']
|
|
141
|
-
*
|
|
142
|
-
* @visibility frontend
|
|
143
|
-
*/
|
|
144
|
-
enabledContent?: string[];
|
|
145
|
-
};
|
|
146
|
-
};
|
|
147
|
-
}
|