@cccsaurora/clue-ui 1.3.0-dev.361 → 1.3.0-dev.390
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/{ActionForm-BGVd1hea.js → ActionForm-CqKcnDWC.js} +9 -9
- package/{AnnotationDetails-D4f9aw7S.js → AnnotationDetails-BlPd3T8k.js} +3 -3
- package/{AnnotationPreview-LLor6159.js → AnnotationPreview-Bl447SKT.js} +2 -2
- package/{ClueEnrichContext-DKZ2iqmV.js → ClueEnrichContext-B3YrTCaJ.js} +10 -8
- package/{_MapCache-DWYVyFVH.js → _MapCache-kuEY_iOH.js} +2 -4
- package/_Set-BrSMTlHn.js +6 -0
- package/{_Uint8Array-BgBspS6l.js → _Uint8Array-OPpgYQj7.js} +8 -13
- package/_arrayIncludes-BNqL-9ZP.js +31 -0
- package/_arrayPush-CBkQqaE_.js +10 -0
- package/{_baseAssignValue-Dltt6-s5.js → _baseAssignValue-CNUVPOBW.js} +2 -11
- package/{_baseClone-BUfES2sT.js → _baseClone-9FaRd1R2.js} +10 -6
- package/{_baseExtremum-kob8QXyt.js → _baseExtremum-wOGT4Dgw.js} +1 -1
- package/{_baseFlatten-D3wtzJ86.js → _baseFlatten-Co6QHDlG.js} +6 -6
- package/{_baseGet-DKnGz1D3.js → _baseGet-Cmp6FztG.js} +4 -3
- package/{isObjectLike-OAgjjZye.js → _baseGetTag-Hj-0NTYF.js} +0 -4
- package/{_baseIsEqual-CTfFNmaR.js → _baseIsEqual-1CpU47TZ.js} +8 -5
- package/{_baseIteratee-C004Z9XE.js → _baseIteratee-BN7Vbe5g.js} +6 -6
- package/_baseRest-BZ_hQ9PC.js +8 -0
- package/_baseUniq-BnvS3JHL.js +63 -0
- package/{_setToArray-CGeR30xg.js → _cacheHas-_aF2y2Xv.js} +2 -10
- package/{_createAggregator-BDMdCE6g.js → _createAggregator-BUZrP_is.js} +4 -4
- package/_defineProperty-DolZLKmv.js +12 -0
- package/{_getPrototype-uU2uJIbq.js → _getPrototype-Bb4gm-5m.js} +1 -1
- package/{_getTag-DuA1kj2A.js → _getTag-CML_cXiN.js} +10 -31
- package/{_isIterateeCall-CEvg7Bo6.js → _isIterateeCall-B1IFEqVv.js} +3 -3
- package/_setToArray-CqyqC8ib.js +10 -0
- package/{cloneDeep-C_PzHHQ0.js → cloneDeep-l3UkXG5M.js} +1 -1
- package/components/AnnotationDetailPopover.js +1 -1
- package/components/AnnotationDetails.js +4 -4
- package/components/AnnotationEntry.js +1 -1
- package/components/AnnotationPreview.js +2 -2
- package/components/EnrichedCard.js +2 -2
- package/components/EnrichedChip.js +2 -2
- package/components/EnrichedTypography.js +2 -2
- package/components/RetryFailedEnrichments.js +1 -1
- package/components/SourcePicker.js +1 -1
- package/components/actions/ActionForm.js +3 -3
- package/components/actions/ExecutePopover.js +1 -1
- package/components/actions/ResultModal.js +1 -1
- package/components/actions/form/schemaAdapter.js +2 -2
- package/components/actions/formats/index.d.ts +2 -0
- package/components/actions/formats/index.js +30 -14
- package/components/display/graph/elements/NodeCard.js +5 -5
- package/components/display/graph/index.js +2 -2
- package/components/display/graph/visualizations/Leaf.js +2 -1
- package/components/display/graph/visualizations/cloud/index.js +2 -2
- package/components/display/graph/visualizations/tree/index.js +5 -5
- package/components/display/json/index.js +2 -2
- package/components/enrichment/EnrichPopover.js +1 -1
- package/components/fetchers/Fetcher.js +21 -10
- package/components/fetchers/FetcherResultView.d.ts +7 -0
- package/components/fetchers/FetcherResultView.js +41 -0
- package/components/fetchers/PreviewModal.d.ts +6 -1
- package/components/fetchers/PreviewModal.js +5 -2
- package/components/group/Entry.js +1 -1
- package/components/group/GroupControl.js +1 -1
- package/components/stats/QueryStatus.js +1 -1
- package/{countBy-Bkq0mSO-.js → countBy-Bqcp3VCs.js} +2 -2
- package/database/index.js +2 -2
- package/database/replication.js +2 -2
- package/en/translation.json +1 -0
- package/fr/translation.json +1 -0
- package/{get-DlGeJ2uz.js → get-CdMThM8x.js} +1 -1
- package/{groupBy-CXx1vslF.js → groupBy-BVV07EGQ.js} +2 -2
- package/hooks/ClueActionContext.js +2 -2
- package/hooks/ClueDatabaseContext.js +1 -1
- package/hooks/ClueEnrichContext.js +8 -7
- package/hooks/ClueFetcherContext.js +1 -1
- package/hooks/ClueGroupContext.js +1 -1
- package/hooks/CluePopupContext.js +2 -2
- package/hooks/ClueProvider.d.ts +2 -1
- package/hooks/ClueProvider.js +5 -4
- package/hooks/ClueUIPluginContext.d.ts +21 -0
- package/hooks/ClueUIPluginContext.js +57 -0
- package/hooks/selectors.js +2 -2
- package/hooks/useActionResult.js +1 -1
- package/hooks/useAnnotations.js +2 -2
- package/hooks/useClue.js +1 -1
- package/hooks/useClueActions.js +1 -1
- package/hooks/useClueTypeConfig.js +54 -6
- package/hooks/useComparator.js +1 -1
- package/hooks/useErrors.js +1 -1
- package/hooks/useFetcherResult.js +1 -1
- package/icons/Action.js +3 -3
- package/icons/Assessment.js +5 -5
- package/icons/Context.js +2 -2
- package/icons/Opinion.js +4 -4
- package/{index-C28rIsy3.js → index-CAvu7vwt.js} +1 -1
- package/{index-IPF68v-l.js → index-DUEubgWN.js} +1 -1
- package/{index-VDwFWSqU.js → index-Dj1N4IQP.js} +3 -3
- package/{index-CmQM2DaO.js → index-DpJxD74E.js} +1 -1
- package/isArguments-CuYlEuhP.js +27 -0
- package/isArray-RJPfgWqI.js +4 -0
- package/isEmpty-BE656RUK.js +30 -0
- package/isObjectLike-CeENW9FN.js +6 -0
- package/{isSymbol-Xd2FsJyp.js → isSymbol-D_H4HPZQ.js} +2 -1
- package/main.d.ts +4 -2
- package/main.js +9 -7
- package/{maxBy-a49mqwW9.js → maxBy-BjjQmX5t.js} +2 -2
- package/package.json +16 -2
- package/plugins/ClueUIPlugin.d.ts +40 -0
- package/plugins/ClueUIPlugin.js +442 -0
- package/plugins/file/index.d.ts +15 -0
- package/plugins/file/index.js +22 -0
- package/plugins/graph/index.d.ts +17 -0
- package/plugins/graph/index.js +25 -0
- package/plugins/image/index.d.ts +12 -0
- package/plugins/image/index.js +26 -0
- package/plugins/json/index.d.ts +17 -0
- package/plugins/json/index.js +25 -0
- package/plugins/markdown/index.d.ts +17 -0
- package/plugins/markdown/index.js +25 -0
- package/plugins/registry.d.ts +13 -0
- package/plugins/registry.js +21 -0
- package/plugins/store.d.ts +40 -0
- package/plugins/store.js +6 -0
- package/plugins/test/index.d.ts +17 -0
- package/plugins/test/index.js +25 -0
- package/{replication-DvYQDhM_.js → replication--gLEZw8a.js} +1 -1
- package/{sessionStorage-Dbmo2Exe.js → sessionStorage-B68y-wnE.js} +2 -2
- package/{sortBy-Tf6pz1tg.js → sortBy-B8JVsLQY.js} +10 -11
- package/store-DMdRx9g0.js +2156 -0
- package/{sumBy-DZSVfXDE.js → sumBy-D-HCzM2i.js} +1 -1
- package/text/Frequency.js +1 -1
- package/{toFinite-Bc55msYj.js → toFinite-meZTg4Su.js} +1 -1
- package/{toNumber-DPxy1FBy.js → toNumber-B5JaA1vX.js} +1 -1
- package/uniq-CahZPAwp.js +7 -0
- package/utils/chain.js +12 -12
- package/utils/sessionStorage.js +1 -1
- package/utils/utils.js +3 -3
- package/{utils-BN7Z0YiP.js → utils-CEySTPtg.js} +7 -5
- package/_baseUniq-BqxNeJD9.js +0 -115
- package/useClueTypeConfig-CnMg5Ny8.js +0 -59
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
|
|
3
|
+
var __publicField = (obj, key, value2) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value2);
|
|
4
|
+
import i18n from "i18next";
|
|
5
|
+
import LanguageDetector from "i18next-browser-languagedetector";
|
|
6
|
+
import { initReactI18next } from "react-i18next";
|
|
7
|
+
import { S as SetCache, c as cacheHas } from "../_cacheHas-_aF2y2Xv.js";
|
|
8
|
+
import { a as arrayIncludes } from "../_arrayIncludes-BNqL-9ZP.js";
|
|
9
|
+
import { b as baseFlatten } from "../_baseFlatten-Co6QHDlG.js";
|
|
10
|
+
import { b as baseRest } from "../_baseRest-BZ_hQ9PC.js";
|
|
11
|
+
import { a as isArrayLike } from "../isArguments-CuYlEuhP.js";
|
|
12
|
+
import { i as isObjectLike } from "../isObjectLike-CeENW9FN.js";
|
|
13
|
+
function isArrayLikeObject(value2) {
|
|
14
|
+
return isObjectLike(value2) && isArrayLike(value2);
|
|
15
|
+
}
|
|
16
|
+
var LARGE_ARRAY_SIZE = 200;
|
|
17
|
+
function baseDifference(array, values, iteratee, comparator) {
|
|
18
|
+
var index = -1, includes = arrayIncludes, isCommon = true, length = array.length, result = [], valuesLength = values.length;
|
|
19
|
+
if (!length) {
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
if (values.length >= LARGE_ARRAY_SIZE) {
|
|
23
|
+
includes = cacheHas;
|
|
24
|
+
isCommon = false;
|
|
25
|
+
values = new SetCache(values);
|
|
26
|
+
}
|
|
27
|
+
outer:
|
|
28
|
+
while (++index < length) {
|
|
29
|
+
var value2 = array[index], computed = value2;
|
|
30
|
+
value2 = value2 !== 0 ? value2 : 0;
|
|
31
|
+
if (isCommon && computed === computed) {
|
|
32
|
+
var valuesIndex = valuesLength;
|
|
33
|
+
while (valuesIndex--) {
|
|
34
|
+
if (values[valuesIndex] === computed) {
|
|
35
|
+
continue outer;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
result.push(value2);
|
|
39
|
+
} else if (!includes(values, computed, comparator)) {
|
|
40
|
+
result.push(value2);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
var difference = baseRest(function(array, values) {
|
|
46
|
+
return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : [];
|
|
47
|
+
});
|
|
48
|
+
const adminmenu$1 = "Admin menu";
|
|
49
|
+
const all$1 = "All";
|
|
50
|
+
const cancel$1 = "Cancel";
|
|
51
|
+
const classification$1 = "Classification";
|
|
52
|
+
const clipboard$1 = "Copy value to clipboard";
|
|
53
|
+
const close$1 = "Close";
|
|
54
|
+
const download$1 = "Download {{file}}";
|
|
55
|
+
const enrich$1 = "Enrich";
|
|
56
|
+
const error$1 = "Error";
|
|
57
|
+
const personalization$1 = "Personalization";
|
|
58
|
+
const refresh$1 = "Refresh";
|
|
59
|
+
const selected$1 = "selected";
|
|
60
|
+
const sources$1 = "Sources";
|
|
61
|
+
const type$1 = "Type";
|
|
62
|
+
const unknown$1 = "Unknown";
|
|
63
|
+
const usermenu$1 = "User menu";
|
|
64
|
+
const value$1 = "Value";
|
|
65
|
+
const translationEN = {
|
|
66
|
+
"action.available": "Available Actions",
|
|
67
|
+
"action.parameters": "Action parameters",
|
|
68
|
+
"actions.execute": "Execute",
|
|
69
|
+
"actions.execute.menu": "Execute with options",
|
|
70
|
+
"actions.executing": "Executing",
|
|
71
|
+
"actions.json.hide": "Hide JSON",
|
|
72
|
+
"actions.json.show": "Show JSON",
|
|
73
|
+
"actions.result.file.description": "The action {{actionName}} has provided a file for download. If you wish to download the result, use the download button below.",
|
|
74
|
+
"actions.result.file.stats.calculating": "Calculating...",
|
|
75
|
+
"actions.result.file.stats.label.base64_length": "Base64 Length:",
|
|
76
|
+
"actions.result.file.stats.label.decoded_bytes": "Decoded Bytes:",
|
|
77
|
+
"actions.result.file.stats.label.decoded_size": "Decoded Size:",
|
|
78
|
+
"actions.result.file.stats.label.sha256": "SHA-256:",
|
|
79
|
+
"actions.result.file.stats.title": "File statistics",
|
|
80
|
+
"actions.result.file.title": "{{actionName}} has provided a file",
|
|
81
|
+
"actions.result.file.unknown": "Unknown",
|
|
82
|
+
adminmenu: adminmenu$1,
|
|
83
|
+
"adminmenu.config": "Configuration",
|
|
84
|
+
"adminmenu.users": "Users",
|
|
85
|
+
all: all$1,
|
|
86
|
+
"annotation.failed": "Failed",
|
|
87
|
+
"app.language": "Language",
|
|
88
|
+
"app.list.empty": "No Results",
|
|
89
|
+
"app.search.fullscreen": "Activate fullscreen search",
|
|
90
|
+
"app.search.shortcut": "Perform search",
|
|
91
|
+
"app.search.starttyping": "Start typing and/or press ENTER",
|
|
92
|
+
"breadcrumb.404": "404",
|
|
93
|
+
cancel: cancel$1,
|
|
94
|
+
classification: classification$1,
|
|
95
|
+
clipboard: clipboard$1,
|
|
96
|
+
"clipboard.failure": "could not be copied to clipboard",
|
|
97
|
+
"clipboard.success": "was copied to clipboard.",
|
|
98
|
+
close: close$1,
|
|
99
|
+
"details.open": "Open Details",
|
|
100
|
+
download: download$1,
|
|
101
|
+
"drawer.chat": "Chat",
|
|
102
|
+
"drawer.collapse": "Collapse Menu",
|
|
103
|
+
"drawer.dashboard": "Dashboard",
|
|
104
|
+
"drawer.expand": "Expand Menu",
|
|
105
|
+
"drawer.help": "Help",
|
|
106
|
+
"drawer.home": "Home",
|
|
107
|
+
"drawer.items": "Items",
|
|
108
|
+
"drawer.items.create": "Create",
|
|
109
|
+
"drawer.items.edit": "Edit",
|
|
110
|
+
"drawer.items.list": "List",
|
|
111
|
+
"drawer.mail": "Email",
|
|
112
|
+
"drawer.mail.inbox": "Inbox",
|
|
113
|
+
"drawer.mail.inbox.message": "Message",
|
|
114
|
+
"drawer.mail.sent": "Sent",
|
|
115
|
+
"drawer.mail.trash": "Trash",
|
|
116
|
+
enrich: enrich$1,
|
|
117
|
+
error: error$1,
|
|
118
|
+
"error.unexpected": "An unexpected error occurred",
|
|
119
|
+
"format.not.recognized": "Unable to display result. No available plugins to display returned format: `{{format}}`.",
|
|
120
|
+
"graph.no.dataset": "No dataset has been selected!",
|
|
121
|
+
"graph.node.input.label": "Enter a node ID, and press [ctrl + enter] to select it. [ctrl + space] will open an autocomplete menu.",
|
|
122
|
+
"graph.show.more": "show more",
|
|
123
|
+
"graph.visualization": "Visualization",
|
|
124
|
+
"json.viewer.search.label": "Search JSON",
|
|
125
|
+
"notification.title": "Notifications",
|
|
126
|
+
"page.404.description": "The page you are looking for cannot be found...",
|
|
127
|
+
"page.404.title": "404: Not found",
|
|
128
|
+
"page.actions.context.extra": "Use extra context",
|
|
129
|
+
"page.actions.context.include": "Include context",
|
|
130
|
+
"page.actions.menu.force": "Force menu",
|
|
131
|
+
"page.dashboard.title": "Dashboard",
|
|
132
|
+
"page.home.cache": "Skip Plugins' Cache",
|
|
133
|
+
"page.home.classification": "Classification",
|
|
134
|
+
"page.home.includeraw": "Include Raw Data",
|
|
135
|
+
"page.home.timeout": "Customize Timeout",
|
|
136
|
+
"page.home.title": "Home",
|
|
137
|
+
"page.home.types": "Types supported (one per line)",
|
|
138
|
+
"page.login.button": "Sign in",
|
|
139
|
+
"page.login.password": "Password",
|
|
140
|
+
"page.login.username": "Username",
|
|
141
|
+
"page.logout": "Logging out current user ... ",
|
|
142
|
+
personalization: personalization$1,
|
|
143
|
+
"personalization.autohideappbar": "Auto Hide Topbar",
|
|
144
|
+
"personalization.dark": "Dark Mode",
|
|
145
|
+
"personalization.minimizebreadcrumbs": "Minimize Breadcrumbs",
|
|
146
|
+
"personalization.quicksearch": "Show Quick Search",
|
|
147
|
+
"personalization.reset_text": "Reset to site defaults",
|
|
148
|
+
"personalization.showbreadcrumbs": "Show Breadcrumbs",
|
|
149
|
+
"personalization.sticky": "Sticky Topbar",
|
|
150
|
+
"query.status.complete": "Complete",
|
|
151
|
+
"query.status.inprogress": "In Progress",
|
|
152
|
+
"query.status.pending": "Pending",
|
|
153
|
+
"quicksearch.aria": "search",
|
|
154
|
+
"quicksearch.placeholder": "Search ...",
|
|
155
|
+
refresh: refresh$1,
|
|
156
|
+
"retry.enrich": "Retry Failed Enrichments",
|
|
157
|
+
"route.actions": "Actions",
|
|
158
|
+
"route.actions.action": "Select Action",
|
|
159
|
+
"route.actions.context.description": "Provide additional key/value context entries, one per line as `key: value`.",
|
|
160
|
+
"route.actions.description": "Execute predefined actions on selectors using the form below.",
|
|
161
|
+
"route.actions.submit": "Execute Action",
|
|
162
|
+
"route.actions.type": "Selector Type",
|
|
163
|
+
"route.actions.value": "Selector Value",
|
|
164
|
+
"route.examples": "Example Components",
|
|
165
|
+
"route.fetchers": "Fetchers",
|
|
166
|
+
"route.fetchers.available": "Available Fetchers",
|
|
167
|
+
"route.fetchers.description": "Add a new fetcher to render using the form above.",
|
|
168
|
+
"route.fetchers.fetcher": "Select Fetcher",
|
|
169
|
+
"route.fetchers.submit": "Add Fetcher",
|
|
170
|
+
"route.fetchers.title": "No Fetchers",
|
|
171
|
+
"route.fetchers.type": "Selector Type",
|
|
172
|
+
"route.fetchers.value": "Selector Value",
|
|
173
|
+
"route.help": "Help",
|
|
174
|
+
"route.help.contributing": "Contributing",
|
|
175
|
+
"route.help.dashboard": "Plugin Dashboard",
|
|
176
|
+
"route.help.error": "An error occurred in loading the documentation",
|
|
177
|
+
"route.help.loading": "Loading Documentation",
|
|
178
|
+
"route.home": "Enrich Data",
|
|
179
|
+
"route.login.button.oauth.azure": "Azure",
|
|
180
|
+
"route.login.button.oauth.keycloak": "Keycloak",
|
|
181
|
+
"route.plugin": "Plugin",
|
|
182
|
+
"route.plugin.active": "Active",
|
|
183
|
+
selected: selected$1,
|
|
184
|
+
sources: sources$1,
|
|
185
|
+
"sources.select.all": "Select All Sources",
|
|
186
|
+
"sources.select.none": "Deselect All Sources",
|
|
187
|
+
"summary.unfound": "Summary not found",
|
|
188
|
+
"tooltip.breadcrumbs.max": "Expand Breadcrumbs",
|
|
189
|
+
"tooltip.breadcrumbs.min": "Collapse Breadcrumbs",
|
|
190
|
+
type: type$1,
|
|
191
|
+
unknown: unknown$1,
|
|
192
|
+
usermenu: usermenu$1,
|
|
193
|
+
"usermenu.logout": "Logout",
|
|
194
|
+
"usermenu.settings": "Settings",
|
|
195
|
+
value: value$1
|
|
196
|
+
};
|
|
197
|
+
const adminmenu = "Menu d'administration";
|
|
198
|
+
const all = "Tout";
|
|
199
|
+
const cancel = "Cancel";
|
|
200
|
+
const classification = "Classification";
|
|
201
|
+
const clipboard = "Copier la valeur dans le presse-papiers";
|
|
202
|
+
const close = "Fermer";
|
|
203
|
+
const download = "Télécharger {{file}}";
|
|
204
|
+
const enrich = "Enrichir";
|
|
205
|
+
const error = "Erreur";
|
|
206
|
+
const personalization = "Personnalisation";
|
|
207
|
+
const refresh = "Rafraîchir";
|
|
208
|
+
const selected = "sélectionné(s)";
|
|
209
|
+
const sources = "Sources";
|
|
210
|
+
const type = "Type";
|
|
211
|
+
const unknown = "Inconnu";
|
|
212
|
+
const usermenu = "Menu d'utilisateur";
|
|
213
|
+
const value = "Valeur";
|
|
214
|
+
const translationFR = {
|
|
215
|
+
"action.available": "Actions disponibles",
|
|
216
|
+
"action.parameters": "Paramètres de l'action",
|
|
217
|
+
"actions.execute": "Execute",
|
|
218
|
+
"actions.execute.menu": "Exécuter avec options",
|
|
219
|
+
"actions.executing": "Executing",
|
|
220
|
+
"actions.json.hide": "Masquer JSON",
|
|
221
|
+
"actions.json.show": "Afficher JSON",
|
|
222
|
+
"actions.result.file.description": "L'action {{actionName}} a fourni un fichier à télécharger. Si vous souhaitez télécharger le résultat, utilisez le bouton de téléchargement ci-dessous.",
|
|
223
|
+
"actions.result.file.stats.calculating": "Calcul en cours...",
|
|
224
|
+
"actions.result.file.stats.label.base64_length": "Longueur base64 :",
|
|
225
|
+
"actions.result.file.stats.label.decoded_bytes": "Octets décodés :",
|
|
226
|
+
"actions.result.file.stats.label.decoded_size": "Taille décodée :",
|
|
227
|
+
"actions.result.file.stats.label.sha256": "SHA-256 :",
|
|
228
|
+
"actions.result.file.stats.title": "Statistiques du fichier",
|
|
229
|
+
"actions.result.file.title": "{{actionName}} a fourni un fichier",
|
|
230
|
+
"actions.result.file.unknown": "Inconnu",
|
|
231
|
+
adminmenu,
|
|
232
|
+
"adminmenu.config": "Configuration",
|
|
233
|
+
"adminmenu.users": "Usagers",
|
|
234
|
+
all,
|
|
235
|
+
"annotation.failed": "Échoué",
|
|
236
|
+
"app.language": "Langage",
|
|
237
|
+
"app.list.empty": "Aucun résultat",
|
|
238
|
+
"app.search.fullscreen": "Activer la recherche plein écran",
|
|
239
|
+
"app.search.shortcut": "Effectuer une recherche",
|
|
240
|
+
"app.search.starttyping": "Commencez à taper et/ou appuyez sur ENTRER",
|
|
241
|
+
"breadcrumb.404": "404",
|
|
242
|
+
cancel,
|
|
243
|
+
classification,
|
|
244
|
+
clipboard,
|
|
245
|
+
"clipboard.failure": "n'a pas pu être copié dans le presse-papiers.",
|
|
246
|
+
"clipboard.success": "a été copié dans le presse-papiers.",
|
|
247
|
+
close,
|
|
248
|
+
"details.open": "Ouvrir les détails",
|
|
249
|
+
download,
|
|
250
|
+
"drawer.chat": "Clavardage",
|
|
251
|
+
"drawer.collapse": "Fermer le Menu",
|
|
252
|
+
"drawer.dashboard": "Tableau de bord",
|
|
253
|
+
"drawer.expand": "Ouvrir le Menu",
|
|
254
|
+
"drawer.help": "Aide",
|
|
255
|
+
"drawer.home": "Acceuil",
|
|
256
|
+
"drawer.items": "Items",
|
|
257
|
+
"drawer.items.create": "Créé",
|
|
258
|
+
"drawer.items.edit": "Modifier",
|
|
259
|
+
"drawer.items.list": "Liste",
|
|
260
|
+
"drawer.mail": "Courriel",
|
|
261
|
+
"drawer.mail.inbox": "Boîte de réception",
|
|
262
|
+
"drawer.mail.inbox.message": "Message",
|
|
263
|
+
"drawer.mail.sent": "Expédié",
|
|
264
|
+
"drawer.mail.trash": "Poubelle",
|
|
265
|
+
enrich,
|
|
266
|
+
error,
|
|
267
|
+
"error.unexpected": "Une erreur inattendue s'est produite",
|
|
268
|
+
"format.not.recognized": "Impossible d'afficher le résultat. Aucun plugin disponible pour afficher le format renvoyé : `{{format}}`.",
|
|
269
|
+
"graph.no.dataset": "Aucun jeu de données n'a été sélectionné!",
|
|
270
|
+
"graph.node.input.label": "Entrez un ID de nœud et appuyez sur [ctrl + entrée] pour le sélectionner. [ctrl + espace] ouvrira un menu d'auto-complétion.",
|
|
271
|
+
"graph.show.more": "Afficher plus",
|
|
272
|
+
"graph.visualization": "Visualisation",
|
|
273
|
+
"json.viewer.search.label": "Recherche JSON",
|
|
274
|
+
"notification.title": "Notifications",
|
|
275
|
+
"page.404.description": "La page que vous recherchez est introuvable ...",
|
|
276
|
+
"page.404.title": "404: Introuvable",
|
|
277
|
+
"page.actions.context.extra": "Utiliser un contexte supplémentaire",
|
|
278
|
+
"page.actions.context.include": "Inclure le contexte",
|
|
279
|
+
"page.actions.menu.force": "Forcer le menu",
|
|
280
|
+
"page.dashboard.title": "Tableau de bord",
|
|
281
|
+
"page.home.cache": "Sauter le cache du plugin",
|
|
282
|
+
"page.home.classification": "Classification",
|
|
283
|
+
"page.home.includeraw": "Inclure les données brutes",
|
|
284
|
+
"page.home.timeout": "Personnaliser le délai d'attente",
|
|
285
|
+
"page.home.title": "Accueil",
|
|
286
|
+
"page.home.types": "Types supportés (un par ligne)",
|
|
287
|
+
"page.login.button": "Se connecter",
|
|
288
|
+
"page.login.password": "Mot de passe",
|
|
289
|
+
"page.login.username": "Nom d'utilisateur",
|
|
290
|
+
"page.logout": "Déconnexion de l'utilisateur actuel ... ",
|
|
291
|
+
personalization,
|
|
292
|
+
"personalization.autohideappbar": "Masquer la barre supérieure",
|
|
293
|
+
"personalization.dark": "Mode Sombre",
|
|
294
|
+
"personalization.minimizebreadcrumbs": "Minimiser fils d'ariane",
|
|
295
|
+
"personalization.quicksearch": "Afficher recherche rapide",
|
|
296
|
+
"personalization.reset_text": "Réinitialiser les paramètres",
|
|
297
|
+
"personalization.showbreadcrumbs": "Afficher fils d'ariane",
|
|
298
|
+
"personalization.sticky": "Barre supérieure collante",
|
|
299
|
+
"query.status.complete": "Terminé",
|
|
300
|
+
"query.status.inprogress": "En cours",
|
|
301
|
+
"query.status.pending": "En attente",
|
|
302
|
+
"quicksearch.aria": "recherche",
|
|
303
|
+
"quicksearch.placeholder": "Recherche ...",
|
|
304
|
+
refresh,
|
|
305
|
+
"retry.enrich": "Réessayer les enrichissements qui ont échoué",
|
|
306
|
+
"route.actions": "Actions",
|
|
307
|
+
"route.actions.action": "Sélectionner une action",
|
|
308
|
+
"route.actions.context.description": "Fournissez des entrées de contexte clé/valeur supplémentaires, une par ligne au format `clé: valeur`.",
|
|
309
|
+
"route.actions.description": "Exécutez des actions prédéfinies sur les sélecteurs en utilisant le formulaire ci-dessous.",
|
|
310
|
+
"route.actions.submit": "Exécuter l'action",
|
|
311
|
+
"route.actions.type": "Type de sélecteur",
|
|
312
|
+
"route.actions.value": "Valeur du sélecteur",
|
|
313
|
+
"route.examples": "Exemples de composants",
|
|
314
|
+
"route.fetchers": "Fetchers",
|
|
315
|
+
"route.fetchers.available": "Fetchers disponibles",
|
|
316
|
+
"route.fetchers.description": "Ajoutez un nouveau moteur de recherche à rendre en utilisant le formulaire ci-dessus.",
|
|
317
|
+
"route.fetchers.fetcher": "Sélectionner un sélecteur",
|
|
318
|
+
"route.fetchers.submit": "Ajouter un fetcher",
|
|
319
|
+
"route.fetchers.title": "Pas d'extrait",
|
|
320
|
+
"route.fetchers.type": "Type de sélecteur",
|
|
321
|
+
"route.fetchers.value": "Valeur du sélecteur",
|
|
322
|
+
"route.help": "Aide",
|
|
323
|
+
"route.help.contributing": "Contribuer",
|
|
324
|
+
"route.help.dashboard": "Tableau de bord du plugin",
|
|
325
|
+
"route.help.error": "Une erreur s'est produite lors du chargement de la documentation",
|
|
326
|
+
"route.help.loading": "Chargement de la documentation",
|
|
327
|
+
"route.home": "Enrichir les données",
|
|
328
|
+
"route.login.button.oauth.azure": "Azure",
|
|
329
|
+
"route.login.button.oauth.keycloak": "Keycloak",
|
|
330
|
+
"route.plugin": "Plugin",
|
|
331
|
+
"route.plugin.active": "Actif",
|
|
332
|
+
selected,
|
|
333
|
+
sources,
|
|
334
|
+
"sources.select.all": "Sélectionner toutes les sources",
|
|
335
|
+
"sources.select.none": "Désélectionner toutes les sources",
|
|
336
|
+
"summary.unfound": "Résumé introuvable",
|
|
337
|
+
"tooltip.breadcrumbs.max": "Maximiser fils d'ariane",
|
|
338
|
+
"tooltip.breadcrumbs.min": "Minimiser fils d'ariane",
|
|
339
|
+
type,
|
|
340
|
+
unknown,
|
|
341
|
+
usermenu,
|
|
342
|
+
"usermenu.logout": "Se déconnecter",
|
|
343
|
+
"usermenu.settings": "Paramètres",
|
|
344
|
+
value
|
|
345
|
+
};
|
|
346
|
+
const resources = {
|
|
347
|
+
en: {
|
|
348
|
+
clue: translationEN
|
|
349
|
+
},
|
|
350
|
+
fr: {
|
|
351
|
+
clue: translationFR
|
|
352
|
+
},
|
|
353
|
+
woof: {
|
|
354
|
+
clue: Object.keys(translationEN).reduce(
|
|
355
|
+
(acc, key) => {
|
|
356
|
+
acc[key] = "woof";
|
|
357
|
+
return acc;
|
|
358
|
+
},
|
|
359
|
+
{}
|
|
360
|
+
)
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
i18n.use(LanguageDetector).use(initReactI18next).init({
|
|
364
|
+
defaultNS: "clue",
|
|
365
|
+
fallbackLng: "en",
|
|
366
|
+
keySeparator: false,
|
|
367
|
+
interpolation: {
|
|
368
|
+
escapeValue: false
|
|
369
|
+
},
|
|
370
|
+
detection: {
|
|
371
|
+
order: ["localStorage", "cookie"]
|
|
372
|
+
},
|
|
373
|
+
resources
|
|
374
|
+
});
|
|
375
|
+
const INTERNAL_FUNCTIONS = ["constructor", "getPluginName", "getDependencies", "init", "activate", "deactivate"];
|
|
376
|
+
class ClueUIPlugin {
|
|
377
|
+
constructor() {
|
|
378
|
+
__publicField(this, "actionIds");
|
|
379
|
+
__publicField(this, "fetcherIds");
|
|
380
|
+
__publicField(this, "pluginStore");
|
|
381
|
+
__publicField(this, "functionsToRemove", []);
|
|
382
|
+
}
|
|
383
|
+
getPluginName() {
|
|
384
|
+
return `${this.name}@${this.version}`;
|
|
385
|
+
}
|
|
386
|
+
getPluginFormat() {
|
|
387
|
+
return this.format;
|
|
388
|
+
}
|
|
389
|
+
getPluginActionIds() {
|
|
390
|
+
return this.actionIds;
|
|
391
|
+
}
|
|
392
|
+
getPluginFetcherIds() {
|
|
393
|
+
return this.fetcherIds;
|
|
394
|
+
}
|
|
395
|
+
getDependencies() {
|
|
396
|
+
return [];
|
|
397
|
+
}
|
|
398
|
+
init(pluginStore) {
|
|
399
|
+
this.pluginStore = pluginStore;
|
|
400
|
+
}
|
|
401
|
+
activate() {
|
|
402
|
+
const functionNames = /* @__PURE__ */ new Set([
|
|
403
|
+
...Object.getOwnPropertyNames(this),
|
|
404
|
+
...Object.getOwnPropertyNames(Object.getPrototypeOf(this)),
|
|
405
|
+
...Object.getOwnPropertyNames(ClueUIPlugin.prototype)
|
|
406
|
+
]);
|
|
407
|
+
const functions = difference(Array.from(functionNames), [
|
|
408
|
+
...INTERNAL_FUNCTIONS,
|
|
409
|
+
"actionResult",
|
|
410
|
+
"fetcherResult",
|
|
411
|
+
"localization"
|
|
412
|
+
]);
|
|
413
|
+
functions.forEach((_function) => {
|
|
414
|
+
const fn = this[_function];
|
|
415
|
+
if (typeof fn === "function") {
|
|
416
|
+
this.pluginStore.addFunction(`${this.name}.${_function}`, fn.bind(this));
|
|
417
|
+
this.functionsToRemove.push(`${this.name}.${_function}`);
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
if (this.actionResult) {
|
|
421
|
+
this.pluginStore.addFunction(`${this.name}.actionResult`, this.actionResult.bind(this));
|
|
422
|
+
this.functionsToRemove.push(`${this.name}.actionResult`);
|
|
423
|
+
}
|
|
424
|
+
if (this.fetcherResult) {
|
|
425
|
+
this.pluginStore.addFunction(`${this.name}.fetcherResult`, this.fetcherResult.bind(this));
|
|
426
|
+
this.functionsToRemove.push(`${this.name}.fetcherResult`);
|
|
427
|
+
}
|
|
428
|
+
this.localization(i18n);
|
|
429
|
+
}
|
|
430
|
+
deactivate() {
|
|
431
|
+
this.functionsToRemove.forEach((name) => this.pluginStore.removeFunction(name));
|
|
432
|
+
this.functionsToRemove = [];
|
|
433
|
+
}
|
|
434
|
+
localization(_i18n) {
|
|
435
|
+
}
|
|
436
|
+
documentation(md) {
|
|
437
|
+
return md;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
export {
|
|
441
|
+
ClueUIPlugin as default
|
|
442
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ActionResult } from "../../main";
|
|
2
|
+
import { WithActionData } from "../../types/WithActionData";
|
|
3
|
+
import { default as ClueUIPlugin } from '../ClueUIPlugin';
|
|
4
|
+
|
|
5
|
+
declare class FilePlugin extends ClueUIPlugin {
|
|
6
|
+
name: string;
|
|
7
|
+
format: string;
|
|
8
|
+
version: string;
|
|
9
|
+
author: string;
|
|
10
|
+
description: string;
|
|
11
|
+
actionResult({ result }: {
|
|
12
|
+
result: WithActionData<ActionResult>;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
}
|
|
15
|
+
export default FilePlugin;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import FileResult from "../../components/actions/formats/FileResult.js";
|
|
6
|
+
import ClueUIPlugin from "../ClueUIPlugin.js";
|
|
7
|
+
class FilePlugin extends ClueUIPlugin {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
__publicField(this, "name", "FilePlugin");
|
|
11
|
+
__publicField(this, "format", "file");
|
|
12
|
+
__publicField(this, "version", "1.0.0");
|
|
13
|
+
__publicField(this, "author", "Canadian Centre for Cyber Security Matthew.Rafuse@cyber.gc.ca");
|
|
14
|
+
__publicField(this, "description", "Render a file action result with metadata, hash statistics, and download support.");
|
|
15
|
+
}
|
|
16
|
+
actionResult({ result }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(FileResult, { result });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
FilePlugin as default
|
|
22
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ActionResult, FetcherResult } from "../../main";
|
|
2
|
+
import { default as ClueUIPlugin } from '../ClueUIPlugin';
|
|
3
|
+
|
|
4
|
+
declare class GraphPlugin extends ClueUIPlugin {
|
|
5
|
+
name: string;
|
|
6
|
+
format: string;
|
|
7
|
+
version: string;
|
|
8
|
+
author: string;
|
|
9
|
+
description: string;
|
|
10
|
+
actionResult({ result }: {
|
|
11
|
+
result: ActionResult;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
fetcherResult({ result }: {
|
|
14
|
+
result: FetcherResult;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
}
|
|
17
|
+
export default GraphPlugin;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import Graph from "../../components/display/graph/index.js";
|
|
6
|
+
import ClueUIPlugin from "../ClueUIPlugin.js";
|
|
7
|
+
class GraphPlugin extends ClueUIPlugin {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
__publicField(this, "name", "GraphPlugin");
|
|
11
|
+
__publicField(this, "format", "graph");
|
|
12
|
+
__publicField(this, "version", "1.0.0");
|
|
13
|
+
__publicField(this, "author", "Canadian Centre for Cyber Security Matthew.Rafuse@cyber.gc.ca");
|
|
14
|
+
__publicField(this, "description", "Renders an interactive tree visualization.");
|
|
15
|
+
}
|
|
16
|
+
actionResult({ result }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(Graph, { graph: result.output, sx: { minHeight: "600px" } });
|
|
18
|
+
}
|
|
19
|
+
fetcherResult({ result }) {
|
|
20
|
+
return /* @__PURE__ */ jsx(Graph, { graph: result.data, sx: { minHeight: "600px" } });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
GraphPlugin as default
|
|
25
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RenderActionResultProps, RenderFetcherResultProps, default as ClueUIPlugin } from '../ClueUIPlugin';
|
|
2
|
+
|
|
3
|
+
declare class ImagePlugin extends ClueUIPlugin {
|
|
4
|
+
name: string;
|
|
5
|
+
format: string;
|
|
6
|
+
version: string;
|
|
7
|
+
author: string;
|
|
8
|
+
description: string;
|
|
9
|
+
actionResult(props: RenderActionResultProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
fetcherResult(props: RenderFetcherResultProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
}
|
|
12
|
+
export default ImagePlugin;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import ClueUIPlugin from "../ClueUIPlugin.js";
|
|
6
|
+
class ImagePlugin extends ClueUIPlugin {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
__publicField(this, "name", "ImagePlugin");
|
|
10
|
+
__publicField(this, "format", "image");
|
|
11
|
+
__publicField(this, "version", "1.0.0");
|
|
12
|
+
__publicField(this, "author", "Canadian Centre for Cyber Security Matthew.Rafuse@cyber.gc.ca");
|
|
13
|
+
__publicField(this, "description", "Renders images.");
|
|
14
|
+
}
|
|
15
|
+
actionResult(props) {
|
|
16
|
+
const { result, fetcherId: _fetcherId, ...additionalProps } = props;
|
|
17
|
+
return /* @__PURE__ */ jsx("img", { src: result.output.image, alt: result.output.alt, ...additionalProps });
|
|
18
|
+
}
|
|
19
|
+
fetcherResult(props) {
|
|
20
|
+
const { result, fetcherId: _fetcherId, ...additionalProps } = props;
|
|
21
|
+
return /* @__PURE__ */ jsx("img", { src: result.data.image, alt: result.data.alt, ...additionalProps });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
ImagePlugin as default
|
|
26
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ActionResult, FetcherResult } from "../../main";
|
|
2
|
+
import { default as ClueUIPlugin } from '../ClueUIPlugin';
|
|
3
|
+
|
|
4
|
+
declare class JsonPlugin extends ClueUIPlugin {
|
|
5
|
+
name: string;
|
|
6
|
+
format: string;
|
|
7
|
+
version: string;
|
|
8
|
+
author: string;
|
|
9
|
+
description: string;
|
|
10
|
+
actionResult({ result }: {
|
|
11
|
+
result: ActionResult;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
fetcherResult({ result }: {
|
|
14
|
+
result: FetcherResult;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
}
|
|
17
|
+
export default JsonPlugin;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { J as JSONViewer } from "../../index-DUEubgWN.js";
|
|
6
|
+
import ClueUIPlugin from "../ClueUIPlugin.js";
|
|
7
|
+
class JsonPlugin extends ClueUIPlugin {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
__publicField(this, "name", "JsonPlugin");
|
|
11
|
+
__publicField(this, "format", "json");
|
|
12
|
+
__publicField(this, "version", "1.0.0");
|
|
13
|
+
__publicField(this, "author", "Canadian Centre for Cyber Security Matthew.Rafuse@cyber.gc.ca");
|
|
14
|
+
__publicField(this, "description", "Renders JSON with the default renderer or the overridden json component defined in the clue component provider.");
|
|
15
|
+
}
|
|
16
|
+
actionResult({ result }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(JSONViewer, { data: result.output, collapse: true, forceCompact: true });
|
|
18
|
+
}
|
|
19
|
+
fetcherResult({ result }) {
|
|
20
|
+
return /* @__PURE__ */ jsx(JSONViewer, { data: result.data });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
JsonPlugin as default
|
|
25
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ActionResult, FetcherResult } from "../../main";
|
|
2
|
+
import { default as ClueUIPlugin } from '../ClueUIPlugin';
|
|
3
|
+
|
|
4
|
+
declare class MarkdownPlugin extends ClueUIPlugin {
|
|
5
|
+
name: string;
|
|
6
|
+
format: string;
|
|
7
|
+
version: string;
|
|
8
|
+
author: string;
|
|
9
|
+
description: string;
|
|
10
|
+
actionResult({ result }: {
|
|
11
|
+
result: ActionResult;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
fetcherResult({ result }: {
|
|
14
|
+
result: FetcherResult;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
}
|
|
17
|
+
export default MarkdownPlugin;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import Markdown from "../../components/display/markdown/index.js";
|
|
6
|
+
import ClueUIPlugin from "../ClueUIPlugin.js";
|
|
7
|
+
class MarkdownPlugin extends ClueUIPlugin {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
__publicField(this, "name", "MarkdownPlugin");
|
|
11
|
+
__publicField(this, "format", "markdown");
|
|
12
|
+
__publicField(this, "version", "1.0.0");
|
|
13
|
+
__publicField(this, "author", "Canadian Centre for Cyber Security Matthew.Rafuse@cyber.gc.ca");
|
|
14
|
+
__publicField(this, "description", "Renders Markdown.");
|
|
15
|
+
}
|
|
16
|
+
actionResult({ result }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(Markdown, { md: result.output });
|
|
18
|
+
}
|
|
19
|
+
fetcherResult({ result }) {
|
|
20
|
+
return /* @__PURE__ */ jsx(Markdown, { md: result.data });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
MarkdownPlugin as default
|
|
25
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as ClueUIPlugin } from './ClueUIPlugin';
|
|
2
|
+
|
|
3
|
+
export type ClueUIPluginDefinition = {
|
|
4
|
+
name: string;
|
|
5
|
+
id: string;
|
|
6
|
+
loadPlugin: () => Promise<{
|
|
7
|
+
default: new () => ClueUIPlugin;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
export default class ClueUIPluginsRegistry {
|
|
11
|
+
private _plugins;
|
|
12
|
+
getPlugins(): ClueUIPluginDefinition[];
|
|
13
|
+
}
|