@cccsaurora/howler-ui 2.18.0-dev.752 → 2.18.0-dev.757
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/api/index.d.ts +0 -2
- package/api/index.js +2 -4
- package/api/search/facet/hit.d.ts +3 -1
- package/api/search/facet/index.d.ts +1 -3
- package/api/search/index.d.ts +1 -2
- package/api/search/index.js +1 -2
- package/commons/components/leftnav/LeftNavDrawer.js +1 -1
- package/components/app/App.js +10 -45
- package/components/app/hooks/useMatchers.d.ts +1 -1
- package/components/app/hooks/useMatchers.js +11 -23
- package/components/app/hooks/useMatchers.test.js +22 -22
- package/components/app/hooks/useTitle.js +3 -3
- package/components/app/providers/FavouritesProvider.js +2 -2
- package/components/app/providers/HitProvider.d.ts +22 -0
- package/components/app/providers/{RecordProvider.js → HitProvider.js} +41 -41
- package/components/app/providers/{RecordSearchProvider.d.ts → HitSearchProvider.d.ts} +6 -6
- package/components/app/providers/{RecordSearchProvider.js → HitSearchProvider.js} +17 -12
- package/components/app/providers/{RecordSearchProvider.test.js → HitSearchProvider.test.js} +71 -52
- package/components/app/providers/ModalProvider.d.ts +0 -1
- package/components/app/providers/ParameterProvider.d.ts +2 -9
- package/components/app/providers/ParameterProvider.js +240 -165
- package/components/app/providers/ParameterProvider.test.js +94 -346
- package/components/app/providers/UserListProvider.js +8 -28
- package/components/elements/PluginTypography.d.ts +1 -2
- package/components/elements/PluginTypography.js +2 -3
- package/components/elements/UserList.d.ts +2 -5
- package/components/elements/UserList.js +8 -18
- package/components/elements/addons/search/phrase/Phrase.js +1 -1
- package/components/elements/display/ChipPopper.d.ts +1 -1
- package/components/elements/display/HowlerCard.js +1 -1
- package/components/elements/display/Modal.js +0 -2
- package/components/elements/display/icons/BundleButton.d.ts +6 -0
- package/components/elements/display/icons/BundleButton.js +32 -0
- package/components/elements/hit/HitActions.js +4 -4
- package/components/elements/hit/HitBanner.d.ts +0 -1
- package/components/elements/hit/HitBanner.js +49 -29
- package/components/elements/hit/HitCard.d.ts +0 -2
- package/components/elements/hit/HitCard.js +7 -7
- package/components/elements/{record/RecordComments.d.ts → hit/HitComments.d.ts} +4 -5
- package/components/elements/{record/RecordComments.js → hit/HitComments.js} +28 -29
- package/components/elements/{ObjectDetails.js → hit/HitDetails.js} +17 -17
- package/components/elements/hit/HitLabels.js +2 -2
- package/components/elements/hit/HitOutline.d.ts +0 -1
- package/components/elements/hit/HitOutline.js +3 -3
- package/components/elements/hit/{HitPreview.d.ts → HitQuickSearch.d.ts} +3 -3
- package/components/elements/hit/{HitPreview.js → HitQuickSearch.js} +4 -10
- package/components/elements/hit/HitRelated.d.ts +6 -0
- package/components/elements/hit/HitRelated.js +7 -0
- package/components/elements/hit/HitSummary.d.ts +1 -2
- package/components/elements/hit/HitSummary.js +5 -6
- package/components/elements/{record/RecordWorklog.d.ts → hit/HitWorklog.d.ts} +3 -4
- package/components/elements/{record/RecordWorklog.js → hit/HitWorklog.js} +13 -15
- package/components/elements/hit/aggregate/HitGraph.js +8 -8
- package/components/elements/hit/outlines/DefaultOutline.js +1 -1
- package/components/elements/view/ViewTitle.d.ts +0 -1
- package/components/elements/view/ViewTitle.js +2 -9
- package/components/hooks/useHitActions.d.ts +1 -1
- package/components/hooks/useHitActions.js +4 -4
- package/components/hooks/{useRecordSelection.d.ts → useHitSelection.d.ts} +2 -2
- package/components/hooks/{useRecordSelection.js → useHitSelection.js} +33 -12
- package/components/hooks/useMyPreferences.js +1 -10
- package/components/hooks/useMySearch.js +2 -2
- package/components/hooks/useMySitemap.js +1 -4
- package/components/hooks/useMyTheme.js +2 -9
- package/components/routes/action/edit/ActionEditor.js +2 -2
- package/components/routes/action/view/ActionSearch.js +1 -1
- package/components/routes/advanced/QueryBuilder.js +1 -1
- package/components/routes/advanced/QueryEditor.js +3 -3
- package/components/routes/advanced/historyCompletionProvider.js +3 -3
- package/components/routes/analytics/AnalyticDetails.js +2 -2
- package/components/routes/analytics/AnalyticSearch.js +1 -1
- package/components/routes/dossiers/DossierEditor.js +2 -2
- package/components/routes/dossiers/DossierEditor.test.js +1 -1
- package/components/routes/help/ApiDocumentation.js +1 -1
- package/components/routes/help/BundleDocumentation.d.ts +3 -0
- package/components/routes/help/BundleDocumentation.js +12 -0
- package/components/routes/help/HitBannerDocumentation.js +0 -1
- package/components/routes/help/HitDocumentation.js +3 -1
- package/components/routes/help/markdown/en/bundles.md.js +1 -0
- package/components/routes/help/markdown/fr/bundles.md.js +1 -0
- package/components/routes/hits/search/BundleParentMenu.d.ts +6 -0
- package/components/routes/hits/search/BundleParentMenu.js +32 -0
- package/components/routes/hits/search/BundleScroller.d.ts +2 -0
- package/components/routes/hits/search/BundleScroller.js +6 -0
- package/components/routes/hits/search/{RecordBrowser.js → HitBrowser.js} +9 -9
- package/components/{elements/record/RecordContextMenu.d.ts → routes/hits/search/HitContextMenu.d.ts} +3 -3
- package/components/routes/hits/search/HitContextMenu.js +227 -0
- package/components/{elements/record/RecordContextMenu.test.js → routes/hits/search/HitContextMenu.test.js} +39 -94
- package/components/routes/hits/search/{RecordQuery.d.ts → HitQuery.d.ts} +2 -2
- package/components/routes/hits/search/{RecordQuery.js → HitQuery.js} +6 -6
- package/components/routes/hits/search/InformationPane.d.ts +0 -1
- package/components/routes/hits/search/InformationPane.js +60 -47
- package/components/routes/hits/search/LayoutSettings.js +3 -3
- package/components/routes/hits/search/QuerySettings.js +1 -2
- package/components/routes/hits/search/QuerySettings.test.js +9 -14
- package/components/routes/hits/search/SearchPane.js +49 -26
- package/components/routes/hits/search/ViewLink.js +3 -3
- package/components/routes/hits/search/ViewLink.test.js +8 -8
- package/components/routes/hits/search/grid/AddColumnModal.js +4 -5
- package/components/routes/hits/search/grid/EnhancedCell.d.ts +1 -2
- package/components/routes/hits/search/grid/EnhancedCell.js +2 -2
- package/components/routes/hits/search/grid/HitGrid.js +18 -20
- package/components/routes/hits/search/grid/{RecordRow.d.ts → HitRow.d.ts} +2 -3
- package/components/routes/hits/search/grid/{RecordRow.js → HitRow.js} +8 -10
- package/components/routes/hits/view/HitViewer.js +13 -12
- package/components/routes/home/ViewCard.js +41 -47
- package/components/{elements/MarkdownEditor.js → routes/overviews/OverviewEditor.js} +3 -3
- package/components/routes/overviews/OverviewViewer.js +2 -2
- package/components/routes/views/ViewComposer.js +19 -46
- package/locales/en/translation.json +3 -100
- package/locales/fr/translation.json +3 -98
- package/models/WithMetadata.d.ts +1 -2
- package/models/entities/generated/{ThreatEnrichment.d.ts → Enrichment.d.ts} +1 -1
- package/models/entities/generated/Hit.d.ts +0 -1
- package/models/entities/generated/Howler.d.ts +4 -0
- package/models/entities/generated/Rule.d.ts +10 -2
- package/models/entities/generated/Threat.d.ts +2 -2
- package/models/entities/generated/View.d.ts +0 -1
- package/package.json +1 -18
- package/plugins/clue/components/ClueTypography.js +2 -2
- package/plugins/clue/utils.d.ts +1 -2
- package/tests/mocks.d.ts +1 -11
- package/tests/mocks.js +7 -12
- package/tests/server-handlers.js +1 -6
- package/tests/utils.d.ts +0 -4
- package/tests/utils.js +0 -20
- package/utils/constants.d.ts +3 -3
- package/utils/hitFunctions.d.ts +1 -2
- package/utils/hitFunctions.js +4 -4
- package/utils/viewUtils.js +0 -3
- package/api/search/case.d.ts +0 -4
- package/api/search/case.js +0 -8
- package/api/v2/case/index.d.ts +0 -8
- package/api/v2/case/index.js +0 -20
- package/api/v2/case/items.d.ts +0 -6
- package/api/v2/case/items.js +0 -18
- package/api/v2/index.d.ts +0 -4
- package/api/v2/index.js +0 -6
- package/api/v2/search/facet.d.ts +0 -3
- package/api/v2/search/facet.js +0 -12
- package/api/v2/search/index.d.ts +0 -5
- package/api/v2/search/index.js +0 -24
- package/components/app/providers/RecordProvider.d.ts +0 -23
- package/components/elements/ContextMenu.d.ts +0 -56
- package/components/elements/ContextMenu.js +0 -109
- package/components/elements/ContextMenu.test.js +0 -215
- package/components/elements/ObjectDetails.d.ts +0 -6
- package/components/elements/case/CaseCard.d.ts +0 -12
- package/components/elements/case/CaseCard.js +0 -42
- package/components/elements/case/CasePreview.d.ts +0 -6
- package/components/elements/case/CasePreview.js +0 -17
- package/components/elements/case/StatusIcon.d.ts +0 -5
- package/components/elements/case/StatusIcon.js +0 -13
- package/components/elements/hit/elements/AnalyticLink.d.ts +0 -9
- package/components/elements/hit/elements/AnalyticLink.js +0 -22
- package/components/elements/hit/related/RelatedRecords.js +0 -63
- package/components/elements/observable/ObservableCard.d.ts +0 -6
- package/components/elements/observable/ObservableCard.js +0 -22
- package/components/elements/observable/ObservablePreview.d.ts +0 -6
- package/components/elements/observable/ObservablePreview.js +0 -12
- package/components/elements/record/RecordContextMenu.js +0 -256
- package/components/elements/record/RecordContextMenu.test.d.ts +0 -1
- package/components/elements/record/RecordRelated.d.ts +0 -7
- package/components/elements/record/RecordRelated.js +0 -34
- package/components/hooks/useRelatedRecords.d.ts +0 -13
- package/components/hooks/useRelatedRecords.js +0 -32
- package/components/routes/cases/CaseViewer.d.ts +0 -2
- package/components/routes/cases/CaseViewer.js +0 -22
- package/components/routes/cases/Cases.d.ts +0 -2
- package/components/routes/cases/Cases.js +0 -101
- package/components/routes/cases/constants.d.ts +0 -5
- package/components/routes/cases/constants.js +0 -5
- package/components/routes/cases/detail/AlertPanel.d.ts +0 -6
- package/components/routes/cases/detail/AlertPanel.js +0 -33
- package/components/routes/cases/detail/CaseAssets.d.ts +0 -11
- package/components/routes/cases/detail/CaseAssets.js +0 -104
- package/components/routes/cases/detail/CaseAssets.test.d.ts +0 -1
- package/components/routes/cases/detail/CaseAssets.test.js +0 -167
- package/components/routes/cases/detail/CaseDashboard.d.ts +0 -7
- package/components/routes/cases/detail/CaseDashboard.js +0 -66
- package/components/routes/cases/detail/CaseDetails.d.ts +0 -6
- package/components/routes/cases/detail/CaseDetails.js +0 -61
- package/components/routes/cases/detail/CaseOverview.d.ts +0 -7
- package/components/routes/cases/detail/CaseOverview.js +0 -43
- package/components/routes/cases/detail/CaseSidebar.d.ts +0 -8
- package/components/routes/cases/detail/CaseSidebar.js +0 -107
- package/components/routes/cases/detail/CaseSidebar.test.d.ts +0 -1
- package/components/routes/cases/detail/CaseSidebar.test.js +0 -246
- package/components/routes/cases/detail/CaseTask.d.ts +0 -11
- package/components/routes/cases/detail/CaseTask.js +0 -57
- package/components/routes/cases/detail/CaseTimeline.d.ts +0 -12
- package/components/routes/cases/detail/CaseTimeline.js +0 -106
- package/components/routes/cases/detail/CaseTimeline.test.d.ts +0 -1
- package/components/routes/cases/detail/CaseTimeline.test.js +0 -227
- package/components/routes/cases/detail/ItemPage.d.ts +0 -6
- package/components/routes/cases/detail/ItemPage.js +0 -99
- package/components/routes/cases/detail/RelatedCasePanel.d.ts +0 -6
- package/components/routes/cases/detail/RelatedCasePanel.js +0 -34
- package/components/routes/cases/detail/TaskPanel.d.ts +0 -7
- package/components/routes/cases/detail/TaskPanel.js +0 -52
- package/components/routes/cases/detail/aggregates/CaseAggregate.d.ts +0 -11
- package/components/routes/cases/detail/aggregates/CaseAggregate.js +0 -24
- package/components/routes/cases/detail/aggregates/SourceAggregate.d.ts +0 -6
- package/components/routes/cases/detail/aggregates/SourceAggregate.js +0 -26
- package/components/routes/cases/detail/assets/Asset.d.ts +0 -14
- package/components/routes/cases/detail/assets/Asset.js +0 -12
- package/components/routes/cases/detail/assets/Asset.test.d.ts +0 -1
- package/components/routes/cases/detail/assets/Asset.test.js +0 -72
- package/components/routes/cases/detail/sidebar/CaseFolder.d.ts +0 -20
- package/components/routes/cases/detail/sidebar/CaseFolder.js +0 -83
- package/components/routes/cases/detail/sidebar/CaseFolder.test.d.ts +0 -1
- package/components/routes/cases/detail/sidebar/CaseFolder.test.js +0 -295
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.d.ts +0 -34
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.js +0 -103
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.d.ts +0 -1
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.js +0 -363
- package/components/routes/cases/detail/sidebar/FolderEntry.d.ts +0 -25
- package/components/routes/cases/detail/sidebar/FolderEntry.js +0 -88
- package/components/routes/cases/detail/sidebar/FolderEntry.test.d.ts +0 -1
- package/components/routes/cases/detail/sidebar/FolderEntry.test.js +0 -206
- package/components/routes/cases/detail/sidebar/RootDropZone.d.ts +0 -5
- package/components/routes/cases/detail/sidebar/RootDropZone.js +0 -33
- package/components/routes/cases/detail/sidebar/types.d.ts +0 -9
- package/components/routes/cases/detail/sidebar/utils.d.ts +0 -3
- package/components/routes/cases/detail/sidebar/utils.js +0 -29
- package/components/routes/cases/detail/sidebar/utils.test.d.ts +0 -1
- package/components/routes/cases/detail/sidebar/utils.test.js +0 -82
- package/components/routes/cases/hooks/useCase.d.ts +0 -13
- package/components/routes/cases/hooks/useCase.js +0 -51
- package/components/routes/cases/modals/AddToCaseModal.d.ts +0 -7
- package/components/routes/cases/modals/AddToCaseModal.js +0 -59
- package/components/routes/cases/modals/AddToCaseModal.test.d.ts +0 -1
- package/components/routes/cases/modals/AddToCaseModal.test.js +0 -313
- package/components/routes/cases/modals/CaseRecordRow.d.ts +0 -9
- package/components/routes/cases/modals/CaseRecordRow.js +0 -15
- package/components/routes/cases/modals/CreateCaseModal.d.ts +0 -7
- package/components/routes/cases/modals/CreateCaseModal.js +0 -55
- package/components/routes/cases/modals/CreateCaseModal.test.d.ts +0 -1
- package/components/routes/cases/modals/CreateCaseModal.test.js +0 -358
- package/components/routes/cases/modals/RenameItemModal.d.ts +0 -9
- package/components/routes/cases/modals/RenameItemModal.js +0 -48
- package/components/routes/cases/modals/ResolveModal.d.ts +0 -7
- package/components/routes/cases/modals/ResolveModal.js +0 -115
- package/components/routes/cases/modals/ResolveModal.test.d.ts +0 -1
- package/components/routes/cases/modals/ResolveModal.test.js +0 -384
- package/components/routes/cases/modals/hooks.d.ts +0 -7
- package/components/routes/cases/modals/hooks.js +0 -44
- package/components/routes/cases/modals/types.d.ts +0 -5
- package/components/routes/hits/search/shared/IndexPicker.d.ts +0 -2
- package/components/routes/hits/search/shared/IndexPicker.js +0 -20
- package/components/routes/observables/ObservableViewer.d.ts +0 -7
- package/components/routes/observables/ObservableViewer.js +0 -27
- package/models/entities/generated/AttachmentsFile.d.ts +0 -12
- package/models/entities/generated/Case.d.ts +0 -28
- package/models/entities/generated/DestinationOriginal.d.ts +0 -19
- package/models/entities/generated/EmailAttachment.d.ts +0 -8
- package/models/entities/generated/EmailParent.d.ts +0 -19
- package/models/entities/generated/Enrichments.d.ts +0 -7
- package/models/entities/generated/EnrichmentsIndicator.d.ts +0 -21
- package/models/entities/generated/HttpResponse.d.ts +0 -11
- package/models/entities/generated/Item.d.ts +0 -9
- package/models/entities/generated/Observable.d.ts +0 -85
- package/models/entities/generated/ObservableCloud.d.ts +0 -20
- package/models/entities/generated/ObservableDestination.d.ts +0 -23
- package/models/entities/generated/ObservableEmail.d.ts +0 -30
- package/models/entities/generated/ObservableFile.d.ts +0 -36
- package/models/entities/generated/ObservableHowler.d.ts +0 -43
- package/models/entities/generated/ObservableHttp.d.ts +0 -11
- package/models/entities/generated/ObservableObserver.d.ts +0 -21
- package/models/entities/generated/ObservableOrganization.d.ts +0 -7
- package/models/entities/generated/ObservableProcess.d.ts +0 -34
- package/models/entities/generated/ObservableSource.d.ts +0 -23
- package/models/entities/generated/ObservableThreat.d.ts +0 -21
- package/models/entities/generated/ObservableTls.d.ts +0 -12
- package/models/entities/generated/ObserverIngress.d.ts +0 -9
- package/models/entities/generated/Task.d.ts +0 -10
- package/utils/typeUtils.d.ts +0 -7
- package/utils/typeUtils.js +0 -27
- /package/components/app/providers/{RecordSearchProvider.test.d.ts → HitSearchProvider.test.d.ts} +0 -0
- /package/components/elements/hit/{related/RelatedRecords.d.ts → HitDetails.d.ts} +0 -0
- /package/components/routes/hits/search/{RecordBrowser.d.ts → HitBrowser.d.ts} +0 -0
- /package/components/{elements/ContextMenu.test.d.ts → routes/hits/search/HitContextMenu.test.d.ts} +0 -0
- /package/components/{elements/MarkdownEditor.d.ts → routes/overviews/OverviewEditor.d.ts} +0 -0
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"analytic.notebook.error.minFields": "Nom et lien requis.",
|
|
14
14
|
"analytic.notebook.link": "Lien",
|
|
15
15
|
"analytic.notebook.name": "Nom",
|
|
16
|
-
"analytic.open": "Ouvrir l'analyse",
|
|
17
16
|
"any": "Tous",
|
|
18
17
|
"api.user.apikey.removed": "Clé API supprimée avec succès",
|
|
19
18
|
"api.user.apikey.updated": "Nouvelle clé API ajoutée avec succès.",
|
|
@@ -82,8 +81,6 @@
|
|
|
82
81
|
"comments.edit.stop": "Arrêter Modification",
|
|
83
82
|
"comments.edited": "Modifié",
|
|
84
83
|
"comments.quote": "Citation Réponse",
|
|
85
|
-
"complete": "Terminé",
|
|
86
|
-
"crisis": "Crise",
|
|
87
84
|
"custom": "Personnalisé",
|
|
88
85
|
"date.range.1.day": "Dernier jour",
|
|
89
86
|
"date.range.1.month": "Le dernier mois",
|
|
@@ -109,11 +106,8 @@
|
|
|
109
106
|
"drawer.expand": "Ouvrir le Menu",
|
|
110
107
|
"duplicates.omitted": "Certains doublons ont été omis.",
|
|
111
108
|
"edit": "Modifier",
|
|
112
|
-
"event.module": "Module d'événement",
|
|
113
|
-
"event.type": "Type d'événement",
|
|
114
109
|
"features.warning.description": "Cette fonctionnalité fait l'objet d'un développement actif et n'est pas encore achevée. Il est possible que vous rencontriez des problèmes ou de l'instabilité.",
|
|
115
110
|
"features.warning.title": "Fonctionnalité en développement actif",
|
|
116
|
-
"focus": "Focus principal",
|
|
117
111
|
"global": "Global",
|
|
118
112
|
"help.actions.introduction": "Introduction aux actions",
|
|
119
113
|
"help.hit.banner.description": "Voir l'exemple d'en-tête de résultat ci-dessous pour connaître les clés de résultat nécessaires pour le remplir correctement. Si vous avez d'autres questions, posez-les dans le réseau d'assistance HOWLER.",
|
|
@@ -170,20 +164,16 @@
|
|
|
170
164
|
"hit.header.assignment": "Affectation: {{user}}",
|
|
171
165
|
"hit.header.assignment.add": "Attribuer à un utilisateur",
|
|
172
166
|
"hit.header.assignment.change": "Changer l'affectation",
|
|
167
|
+
"hit.header.bundlesize": "{{hits}} hits",
|
|
173
168
|
"hit.header.escalation": "Niveau d'escalade: ",
|
|
174
169
|
"hit.header.indicators": "Indicateurs",
|
|
175
170
|
"hit.header.rationale": "Justification",
|
|
176
|
-
"hit.header.related": "{{count}} documrents associés",
|
|
177
171
|
"hit.header.scrutiny": "Examen minutieux: ",
|
|
178
172
|
"hit.header.status": "Statut: ",
|
|
179
173
|
"hit.header.summary": "Résumé",
|
|
180
174
|
"hit.header.target": "Cible",
|
|
181
175
|
"hit.header.threat": "Menace",
|
|
182
|
-
"hit.header.view.case": "Voir le cas {{id}}",
|
|
183
|
-
"hit.header.view.hit": "Voir l'alerte {{id}}",
|
|
184
|
-
"hit.header.view.observable": "Voir l'observable {{id}}",
|
|
185
176
|
"hit.header.votes": "Votes: ",
|
|
186
|
-
"hit.howler.related": "{{count}} enregistrements associés",
|
|
187
177
|
"hit.label": "Étiquettes",
|
|
188
178
|
"hit.label.category.assignments": "Catégorie : Affectation - Indique quel analyste ou quelle équipe d'analystes est chargé(e) de trier cette réponse positive.",
|
|
189
179
|
"hit.label.category.campaign": "Catégorie : Campagne - Identifie les campagnes en cours menées par des familles de logiciels malveillants ou des initiatives d'hameçonnage spécifiques. Elles ne doivent être considérées comme des attributions correctes que si le résultat positif est promu au rang de preuve.",
|
|
@@ -206,9 +196,9 @@
|
|
|
206
196
|
"hit.notebook.goTo": "Aller a Jupyterhub",
|
|
207
197
|
"hit.notebook.select": "Veuillez sélectionner un notebook",
|
|
208
198
|
"hit.notebook.tooltip": "Ouvrir dans Jupyterhub",
|
|
209
|
-
"hit.open": "Ouvrir hit",
|
|
210
199
|
"hit.overview.missing": "Aucune vue d'ensemble n'a été créée pour ce hit. Pour créer une vue d'ensemble, cliquez sur le bouton pour ajouter à droite.",
|
|
211
200
|
"hit.panel.aggregation.run": "Créer un sommaire",
|
|
201
|
+
"hit.panel.analytic.open": "Ouvrir l'analyse",
|
|
212
202
|
"hit.panel.bundles.open": "Groupes parentaux",
|
|
213
203
|
"hit.panel.bundles.open.prompt": "Ouvrir le groupe parent",
|
|
214
204
|
"hit.panel.close": "Fermer",
|
|
@@ -221,12 +211,9 @@
|
|
|
221
211
|
"hit.panel.exclude": "Exclure par",
|
|
222
212
|
"hit.panel.hit.noselection": "Aucun résultat n'a été sélectionné",
|
|
223
213
|
"hit.panel.include": "Inclure par",
|
|
214
|
+
"hit.panel.open": "Ouvrir hit",
|
|
224
215
|
"hit.panel.view.layout": "Modifier le panneau d'affichage",
|
|
225
216
|
"hit.quicksearch": "Recherche par affectation, analytique, détection ou état",
|
|
226
|
-
"hit.related.tab.case": "Cas",
|
|
227
|
-
"hit.related.tab.hit": "Alertes",
|
|
228
|
-
"hit.related.tab.links": "Liens",
|
|
229
|
-
"hit.related.tab.observable": "Observables",
|
|
230
217
|
"hit.search.aggregate.button": "Créer un sommaire",
|
|
231
218
|
"hit.search.button": "Effectuer une recherche",
|
|
232
219
|
"hit.search.custom": "Triage personnalisé",
|
|
@@ -235,8 +222,6 @@
|
|
|
235
222
|
"hit.search.filter.fields": "Paramètres",
|
|
236
223
|
"hit.search.filter.label": "Filtres de recherche",
|
|
237
224
|
"hit.search.filter.values": "Valeurs",
|
|
238
|
-
"hit.search.index.hit": "Hits",
|
|
239
|
-
"hit.search.index.observable": "Observables",
|
|
240
225
|
"hit.search.invalid": "Requête invalide",
|
|
241
226
|
"hit.search.keyboard": "Raccourcis clavier",
|
|
242
227
|
"hit.search.keyboard.no_shortcuts": "Pas de raccourcis",
|
|
@@ -310,31 +295,6 @@
|
|
|
310
295
|
"modal.action.empty": "Le nom de l'action ne peut pas être vide.",
|
|
311
296
|
"modal.action.label": "Nom de l'action",
|
|
312
297
|
"modal.action.title": "Enregistrer l'action",
|
|
313
|
-
"modal.cases.add_to_case": "Ajouter au cas",
|
|
314
|
-
"modal.cases.add_to_case.full_path": "Chemin complet : {{path}}",
|
|
315
|
-
"modal.cases.add_to_case.items_section": "Placement des alertes",
|
|
316
|
-
"modal.cases.add_to_case.path_invalid": "Le chemin ne doit pas commencer ou se terminer par un /",
|
|
317
|
-
"modal.cases.add_to_case.select_case": "Rechercher des cas",
|
|
318
|
-
"modal.cases.add_to_case.select_path": "Sélectionner le chemin du dossier",
|
|
319
|
-
"modal.cases.add_to_case.title": "Titre de l'élément",
|
|
320
|
-
"modal.cases.alerts.resolved": "Alertes résolues",
|
|
321
|
-
"modal.cases.create_case": "Créer un cas",
|
|
322
|
-
"modal.cases.create_case.escalation": "Escalade",
|
|
323
|
-
"modal.cases.create_case.full_path": "Chemin complet : {{path}}",
|
|
324
|
-
"modal.cases.create_case.item.path": "Chemin du dossier (optionnel)",
|
|
325
|
-
"modal.cases.create_case.item.title": "Titre de l'élément",
|
|
326
|
-
"modal.cases.create_case.items_section": "Placement des alertes",
|
|
327
|
-
"modal.cases.create_case.overview": "Vue d'ensemble du cas (Markdown, optionnel)",
|
|
328
|
-
"modal.cases.create_case.summary": "Résumé court du cas",
|
|
329
|
-
"modal.cases.create_case.title": "Titre du cas",
|
|
330
|
-
"modal.cases.rename_item": "Renommer l'élément",
|
|
331
|
-
"modal.cases.rename_item.error.empty": "Le nom ne peut pas être vide",
|
|
332
|
-
"modal.cases.rename_item.error.slash": "Le nom ne peut pas contenir '/'",
|
|
333
|
-
"modal.cases.rename_item.error.taken": "Un élément existe déjà à ce chemin",
|
|
334
|
-
"modal.cases.rename_item.folder_path": "Dossier : {{path}}",
|
|
335
|
-
"modal.cases.rename_item.new_name": "Nouveau nom",
|
|
336
|
-
"modal.cases.resolve": "Résoudre le cas",
|
|
337
|
-
"modal.cases.resolve.description": "Lors de la résolution d'un cas, vous devez soit évaluer toutes les alertes ouvertes, soit ajouter une évaluation aux alertes.",
|
|
338
298
|
"modal.confirm.delete.description": "Êtes-vous sûr de vouloir supprimer cet élément ?",
|
|
339
299
|
"modal.confirm.delete.title": "Confirmer la suppression",
|
|
340
300
|
"modal.rationale.description": "Fournissez une justification qui explique succinctement aux autres analystes les raisons pour lesquelles vous êtes confiant dans cette évaluation.",
|
|
@@ -356,8 +316,6 @@
|
|
|
356
316
|
"modal.rule.title": "Créer une nouvelle règle",
|
|
357
317
|
"no.data": "Aucune donnée",
|
|
358
318
|
"none": "Rien",
|
|
359
|
-
"normal": "Priorité normale",
|
|
360
|
-
"observable.open": "Ouvrir observable",
|
|
361
319
|
"on": "sur",
|
|
362
320
|
"open": "Ouvert",
|
|
363
321
|
"operations.add_label": "Ajouter un label",
|
|
@@ -377,45 +335,6 @@
|
|
|
377
335
|
"owner": "Propriétaire",
|
|
378
336
|
"page.404.description": "La page que vous recherchez est introuvable ...",
|
|
379
337
|
"page.404.title": "404: Introuvable",
|
|
380
|
-
"page.cases.assets": "Actifs",
|
|
381
|
-
"page.cases.assets.empty": "Aucun actif trouvé.",
|
|
382
|
-
"page.cases.assets.filter_by_type": "Filtrer par type :",
|
|
383
|
-
"page.cases.assets.seen_in": "Vu dans",
|
|
384
|
-
"page.cases.assets.type.hash": "Hachage",
|
|
385
|
-
"page.cases.assets.type.hosts": "Hôte",
|
|
386
|
-
"page.cases.assets.type.id": "Identifiant",
|
|
387
|
-
"page.cases.assets.type.ids": "Identifiant",
|
|
388
|
-
"page.cases.assets.type.ip": "IP",
|
|
389
|
-
"page.cases.assets.type.signature": "Signature",
|
|
390
|
-
"page.cases.assets.type.uri": "URI",
|
|
391
|
-
"page.cases.assets.type.user": "Utilisateur",
|
|
392
|
-
"page.cases.created": "Créé",
|
|
393
|
-
"page.cases.dashboard": "Tableau de bord",
|
|
394
|
-
"page.cases.dashboard.alerts": "Alertes",
|
|
395
|
-
"page.cases.dashboard.cases": "Cas connexes",
|
|
396
|
-
"page.cases.dashboard.duration": "Durée",
|
|
397
|
-
"page.cases.dashboard.indicators": "Indicateurs",
|
|
398
|
-
"page.cases.dashboard.target": "Cibles",
|
|
399
|
-
"page.cases.dashboard.tasks": "Tâches",
|
|
400
|
-
"page.cases.dashboard.threat": "Menaces",
|
|
401
|
-
"page.cases.detail.participants": "Participants",
|
|
402
|
-
"page.cases.detail.properties": "Propriétés",
|
|
403
|
-
"page.cases.detail.status": "Statut",
|
|
404
|
-
"page.cases.escalation": "Escalade",
|
|
405
|
-
"page.cases.folder.drop.root": "Déposer ici pour déplacer à la racine",
|
|
406
|
-
"page.cases.sidebar.folder.remove": "Supprimer le dossier",
|
|
407
|
-
"page.cases.sidebar.item.open": "Ouvrir l'élément",
|
|
408
|
-
"page.cases.sidebar.item.remove": "Supprimer l'élément",
|
|
409
|
-
"page.cases.sidebar.item.rename": "Renommer l'élément",
|
|
410
|
-
"page.cases.sources": "Sources",
|
|
411
|
-
"page.cases.timeline": "Chronologie",
|
|
412
|
-
"page.cases.timeline.empty": "Aucun événement ne correspond aux filtres sélectionnés.",
|
|
413
|
-
"page.cases.timeline.filter.escalation": "Escalade",
|
|
414
|
-
"page.cases.timeline.filter.escalation.empty": "Aucun niveau d'escalade trouvé.",
|
|
415
|
-
"page.cases.timeline.filter.label": "Afficher uniquement",
|
|
416
|
-
"page.cases.timeline.filter.mitre": "MITRE ATT&CK",
|
|
417
|
-
"page.cases.timeline.filter.mitre.empty": "Aucune tactique ou technique trouvée.",
|
|
418
|
-
"page.cases.updated": "Mis à jour",
|
|
419
338
|
"page.dashboard.settings.edit": "Modifier le tableau de bord",
|
|
420
339
|
"page.dashboard.settings.refreshRate": "Fréquence de rafraîchissement",
|
|
421
340
|
"page.dashboard.title": "Tableau de bord",
|
|
@@ -487,8 +406,6 @@
|
|
|
487
406
|
"page.user.search.column.groups": "Groupes",
|
|
488
407
|
"page.user.search.column.username": "Nom d'utilisateur",
|
|
489
408
|
"page.user.search.prompt": "Rechercher par nom d'utilisateur, nom complet, e-mail ou groupe",
|
|
490
|
-
"pages.cases.detail.participants": "Participants",
|
|
491
|
-
"pages.cases.detail.status": "Statut",
|
|
492
409
|
"password": "Nouveau mot de passe",
|
|
493
410
|
"password.confirm": "Confirmer le mot de passe",
|
|
494
411
|
"password.match": "Le mot de passe et le mot de passe de confirmation doivent correspondre",
|
|
@@ -521,7 +438,6 @@
|
|
|
521
438
|
"route.actions.create": "Nouveau action",
|
|
522
439
|
"route.actions.edit": "Modifier",
|
|
523
440
|
"route.actions.execute": "Exécuter",
|
|
524
|
-
"route.actions.manager": "Gestionnaire d'actions",
|
|
525
441
|
"route.actions.name": "Nom de l'action",
|
|
526
442
|
"route.actions.open": "Ouvrir la requête",
|
|
527
443
|
"route.actions.operation.add": "Ajouter une nouvelle opération",
|
|
@@ -618,11 +534,6 @@
|
|
|
618
534
|
"route.analytics.triage.title": "Paramètres de triage",
|
|
619
535
|
"route.analytics.updated": "Analytic mis a jour!",
|
|
620
536
|
"route.analytics.view": "Voir l'analyse",
|
|
621
|
-
"route.cases": "Cas",
|
|
622
|
-
"route.cases.create": "Créer un cas",
|
|
623
|
-
"route.cases.manager.search": "Rechercher des cas",
|
|
624
|
-
"route.cases.search.prompt": "Rechercher des cas par titre, résumé ou indicateurs",
|
|
625
|
-
"route.cases.view": "Voir le cas",
|
|
626
537
|
"route.clear": "Effacer la requête",
|
|
627
538
|
"route.dossiers": "Dossiers",
|
|
628
539
|
"route.dossiers.create": "Nouveau dossier",
|
|
@@ -682,7 +593,6 @@
|
|
|
682
593
|
"route.dossiers.search.prompt": "Recherche par titre, requête ou propriétaire.",
|
|
683
594
|
"route.dossiers.view": "Voir le dossier",
|
|
684
595
|
"route.help": "Aide",
|
|
685
|
-
"route.help.actions": "Documentation sur les actions",
|
|
686
596
|
"route.help.api": "Documentation de l'API",
|
|
687
597
|
"route.help.auth": "Authentification",
|
|
688
598
|
"route.help.bundles": "Groupes des hits",
|
|
@@ -746,7 +656,6 @@
|
|
|
746
656
|
"route.overviews.theme.dark": "Prévoyez en mode sombre",
|
|
747
657
|
"route.overviews.theme.light": "Prévoyez en mode clair",
|
|
748
658
|
"route.overviews.view": "Voir la vue d'ensemble",
|
|
749
|
-
"route.search": "Rechercher",
|
|
750
659
|
"route.templates": "Modèles",
|
|
751
660
|
"route.templates.analytic": "Choisir une analyse",
|
|
752
661
|
"route.templates.builtin": "Intégré",
|
|
@@ -757,7 +666,6 @@
|
|
|
757
666
|
"route.templates.detection": "Choisir une détection",
|
|
758
667
|
"route.templates.global": "Général",
|
|
759
668
|
"route.templates.manager.global": "Global",
|
|
760
|
-
"route.templates.manager.open": "Ouvrir la vue",
|
|
761
669
|
"route.templates.manager.personal": "Personnel",
|
|
762
670
|
"route.templates.manager.readonly": "Intégré",
|
|
763
671
|
"route.templates.manager.search": "Rechercher les modèles",
|
|
@@ -781,10 +689,8 @@
|
|
|
781
689
|
"route.views.manager.personal": "Personnel",
|
|
782
690
|
"route.views.manager.readonly": "Intégré",
|
|
783
691
|
"route.views.manager.search": "Rechercher les vues",
|
|
784
|
-
"route.views.name": "Nom de la vue",
|
|
785
692
|
"route.views.save": "Enregistrer cette requête comme vue",
|
|
786
693
|
"route.views.saved": "Vues épinglées",
|
|
787
|
-
"route.views.search.prompt": "Rechercher par nom, requête ou propriétaire.",
|
|
788
694
|
"route.views.show": "Voir les vues",
|
|
789
695
|
"route.views.update.success": "Vue actualisée.",
|
|
790
696
|
"rule.interval": "Intervalle d'exécution de la règle",
|
|
@@ -801,7 +707,6 @@
|
|
|
801
707
|
"search.result.showing": "Affichage de {{offset}} à {{length}} sur {{total}} articles",
|
|
802
708
|
"search.result.showing.single": "Aucun articles",
|
|
803
709
|
"search.total": "Il y a un total de {{count}} résultats correspondant à cette requête.",
|
|
804
|
-
"started": "Démarré",
|
|
805
710
|
"templates.edit.analytic": "Modifier modèle pour cette analyse",
|
|
806
711
|
"templates.edit.detection": "Modifier modèle pour cette détection",
|
|
807
712
|
"to": "à",
|
package/models/WithMetadata.d.ts
CHANGED
|
@@ -4,10 +4,9 @@ import type { Overview } from './entities/generated/Overview';
|
|
|
4
4
|
import type { Template } from './entities/generated/Template';
|
|
5
5
|
|
|
6
6
|
export type WithMetadata<T> = T & {
|
|
7
|
-
__index?: string;
|
|
8
|
-
|
|
9
7
|
__analytic?: Analytic;
|
|
10
8
|
__overview?: Overview;
|
|
11
9
|
__template?: Template;
|
|
10
|
+
|
|
12
11
|
__dossiers?: Dossier[];
|
|
13
12
|
};
|
|
@@ -14,6 +14,8 @@ export interface Howler {
|
|
|
14
14
|
analytic: string;
|
|
15
15
|
assessment?: string;
|
|
16
16
|
assignment: string;
|
|
17
|
+
bundle_size?: number;
|
|
18
|
+
bundles?: string[];
|
|
17
19
|
comment?: HowlerComment[];
|
|
18
20
|
confidence?: number;
|
|
19
21
|
data?: string[];
|
|
@@ -22,8 +24,10 @@ export interface Howler {
|
|
|
22
24
|
escalation?: string;
|
|
23
25
|
expiry?: string;
|
|
24
26
|
hash: string;
|
|
27
|
+
hits?: string[];
|
|
25
28
|
id: string;
|
|
26
29
|
incidents?: Incident[];
|
|
30
|
+
is_bundle?: boolean;
|
|
27
31
|
labels?: Labels;
|
|
28
32
|
links?: Link[];
|
|
29
33
|
log?: Log[];
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
3
3
|
*/
|
|
4
4
|
export interface Rule {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
author?: string;
|
|
6
|
+
category?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
id?: string;
|
|
9
|
+
license?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
reference?: string;
|
|
12
|
+
ruleset?: string;
|
|
13
|
+
uuid?: string;
|
|
14
|
+
version?: string;
|
|
7
15
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { Enrichment } from './Enrichment';
|
|
1
2
|
import type { Feed } from './Feed';
|
|
2
3
|
import type { Software } from './Software';
|
|
3
|
-
import type { ThreatEnrichment } from './ThreatEnrichment';
|
|
4
4
|
import type { ThreatGroup } from './ThreatGroup';
|
|
5
5
|
import type { ThreatIndicator } from './ThreatIndicator';
|
|
6
6
|
import type { ThreatTactic } from './ThreatTactic';
|
|
@@ -10,7 +10,7 @@ import type { ThreatTechnique } from './ThreatTechnique';
|
|
|
10
10
|
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
11
11
|
*/
|
|
12
12
|
export interface Threat {
|
|
13
|
-
enrichments?:
|
|
13
|
+
enrichments?: Enrichment[];
|
|
14
14
|
feed?: Feed;
|
|
15
15
|
framework?: string;
|
|
16
16
|
group?: ThreatGroup;
|
package/package.json
CHANGED
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"internal-slot": "1.0.7"
|
|
102
102
|
},
|
|
103
103
|
"type": "module",
|
|
104
|
-
"version": "2.18.0-dev.
|
|
104
|
+
"version": "2.18.0-dev.757",
|
|
105
105
|
"exports": {
|
|
106
106
|
"./i18n": "./i18n.js",
|
|
107
107
|
"./index.css": "./index.css",
|
|
@@ -148,11 +148,9 @@
|
|
|
148
148
|
"./components/routes/home": "./components/routes/home/index.js",
|
|
149
149
|
"./components/routes/dossiers/*": "./components/routes/dossiers/*.js",
|
|
150
150
|
"./components/routes/help/*": "./components/routes/help/*.js",
|
|
151
|
-
"./components/routes/observables/*": "./components/routes/observables/*.js",
|
|
152
151
|
"./components/routes/admin/*": "./components/routes/admin/*.js",
|
|
153
152
|
"./components/routes/action/*": "./components/routes/action/*.js",
|
|
154
153
|
"./components/routes/settings/*": "./components/routes/settings/*.js",
|
|
155
|
-
"./components/routes/cases/*": "./components/routes/cases/*.js",
|
|
156
154
|
"./components/routes/views/*": "./components/routes/views/*.js",
|
|
157
155
|
"./components/routes/overviews/*": "./components/routes/overviews/*.js",
|
|
158
156
|
"./components/routes/analytics/*": "./components/routes/analytics/*.js",
|
|
@@ -170,21 +168,12 @@
|
|
|
170
168
|
"./components/routes/action/shared/*": "./components/routes/action/shared/*.js",
|
|
171
169
|
"./components/routes/action/view/*": "./components/routes/action/view/*.js",
|
|
172
170
|
"./components/routes/action/view/markdown/*.md": "./components/routes/action/view/markdown/*.md.js",
|
|
173
|
-
"./components/routes/cases/modals/*": "./components/routes/cases/modals/*.js",
|
|
174
|
-
"./components/routes/cases/detail/*": "./components/routes/cases/detail/*.js",
|
|
175
|
-
"./components/routes/cases/hooks/*": "./components/routes/cases/hooks/*.js",
|
|
176
|
-
"./components/routes/cases/detail/assets/*": "./components/routes/cases/detail/assets/*.js",
|
|
177
|
-
"./components/routes/cases/detail/sidebar/*": "./components/routes/cases/detail/sidebar/*.js",
|
|
178
|
-
"./components/routes/cases/detail/aggregates/*": "./components/routes/cases/detail/aggregates/*.js",
|
|
179
171
|
"./components/routes/overviews/template/*": "./components/routes/overviews/template/*.js",
|
|
180
172
|
"./components/routes/analytics/widgets/*": "./components/routes/analytics/widgets/*.js",
|
|
181
173
|
"./components/logins/auth/*": "./components/logins/auth/*.js",
|
|
182
174
|
"./components/logins/hooks/*": "./components/logins/hooks/*.js",
|
|
183
175
|
"./components/elements/hit/*": "./components/elements/hit/*.js",
|
|
184
176
|
"./components/elements/addons/*": "./components/elements/addons/*.js",
|
|
185
|
-
"./components/elements/record/*": "./components/elements/record/*.js",
|
|
186
|
-
"./components/elements/observable/*": "./components/elements/observable/*.js",
|
|
187
|
-
"./components/elements/case/*": "./components/elements/case/*.js",
|
|
188
177
|
"./components/elements/view/*": "./components/elements/view/*.js",
|
|
189
178
|
"./components/elements/display/*": "./components/elements/display/*.js",
|
|
190
179
|
"./components/elements/hit/aggregate/*": "./components/elements/hit/aggregate/*.js",
|
|
@@ -235,8 +224,6 @@
|
|
|
235
224
|
"./api/template": "./api/template/index.js",
|
|
236
225
|
"./api/analytic/*": "./api/analytic/*.js",
|
|
237
226
|
"./api/analytic": "./api/analytic/index.js",
|
|
238
|
-
"./api/v2/*": "./api/v2/*.js",
|
|
239
|
-
"./api/v2": "./api/v2/index.js",
|
|
240
227
|
"./api/auth/*": "./api/auth/*.js",
|
|
241
228
|
"./api/auth": "./api/auth/index.js",
|
|
242
229
|
"./api/user/*": "./api/user/*.js",
|
|
@@ -257,10 +244,6 @@
|
|
|
257
244
|
"./api/analytic/comments": "./api/analytic/comments/index.js",
|
|
258
245
|
"./api/analytic/notebooks/*": "./api/analytic/notebooks/*.js",
|
|
259
246
|
"./api/analytic/notebooks": "./api/analytic/notebooks/index.js",
|
|
260
|
-
"./api/v2/case/*": "./api/v2/case/*.js",
|
|
261
|
-
"./api/v2/case": "./api/v2/case/index.js",
|
|
262
|
-
"./api/v2/search/*": "./api/v2/search/*.js",
|
|
263
|
-
"./api/v2/search": "./api/v2/search/index.js",
|
|
264
247
|
"./api/user/avatar/*": "./api/user/avatar/*.js",
|
|
265
248
|
"./api/user/avatar": "./api/user/avatar/index.js",
|
|
266
249
|
"./api/search/count/*": "./api/search/count/*.js",
|
|
@@ -3,8 +3,8 @@ import EnrichedTypography from '@cccsaurora/clue-ui/components/EnrichedTypograph
|
|
|
3
3
|
import { Typography } from '@mui/material';
|
|
4
4
|
import { memo } from 'react';
|
|
5
5
|
import { useType } from '../utils';
|
|
6
|
-
const ClueTypography = ({ children, value, context, field,
|
|
7
|
-
const type = useType(
|
|
6
|
+
const ClueTypography = ({ children, value, context, field, hit, ...props }) => {
|
|
7
|
+
const type = useType(hit, field, value);
|
|
8
8
|
if (!type) {
|
|
9
9
|
return _jsx(Typography, { ...props, children: children ?? value });
|
|
10
10
|
}
|
package/plugins/clue/utils.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
|
|
2
|
-
|
|
3
|
-
export declare const useType: (hit?: Hit | Observable, field?: string, value?: string) => any;
|
|
2
|
+
export declare const useType: (hit?: Hit, field?: string, value?: string) => any;
|
package/tests/mocks.d.ts
CHANGED
|
@@ -7,17 +7,7 @@ export declare const setupContextSelectorMock: () => void;
|
|
|
7
7
|
* Sets up a mock for react-router-dom with common defaults
|
|
8
8
|
* @param options - Override specific router behavior
|
|
9
9
|
*/
|
|
10
|
-
export declare const setupReactRouterMock: () =>
|
|
11
|
-
mockSearchParams: URLSearchParams;
|
|
12
|
-
mockSetParams: import("vitest").Mock<(...args: any[]) => any>;
|
|
13
|
-
mockLocation: {
|
|
14
|
-
pathname: string;
|
|
15
|
-
search: string;
|
|
16
|
-
};
|
|
17
|
-
mockParams: {
|
|
18
|
-
id: any;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
10
|
+
export declare const setupReactRouterMock: () => void;
|
|
21
11
|
/**
|
|
22
12
|
* Sets up a mock localStorage instance
|
|
23
13
|
*/
|
package/tests/mocks.js
CHANGED
|
@@ -31,20 +31,15 @@ export const setupReactRouterMock = () => {
|
|
|
31
31
|
const mockSearchParams = vi.hoisted(() => new URLSearchParams());
|
|
32
32
|
const mockSetParams = vi.hoisted(() => vi.fn());
|
|
33
33
|
beforeAll(() => {
|
|
34
|
-
vi.mock('react-router-dom',
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
useSearchParams: vi.fn(() => [mockSearchParams, mockSetParams]),
|
|
42
|
-
useNavigate: () => vi.fn()
|
|
43
|
-
};
|
|
44
|
-
});
|
|
34
|
+
vi.mock('react-router-dom', () => ({
|
|
35
|
+
Link: forwardRef(({ to, children, ...props }, ref) => (_jsx("a", { ref: ref, href: to, ...props, children: children }))),
|
|
36
|
+
useLocation: vi.fn(() => mockLocation),
|
|
37
|
+
useParams: vi.fn(() => mockParams),
|
|
38
|
+
useSearchParams: vi.fn(() => [mockSearchParams, mockSetParams]),
|
|
39
|
+
useNavigate: () => vi.fn()
|
|
40
|
+
}));
|
|
45
41
|
});
|
|
46
42
|
afterAll(() => vi.resetModules());
|
|
47
|
-
return { mockSearchParams, mockSetParams, mockLocation, mockParams };
|
|
48
43
|
};
|
|
49
44
|
/**
|
|
50
45
|
* Sets up a mock localStorage instance
|
package/tests/server-handlers.js
CHANGED
|
@@ -30,12 +30,7 @@ export const MOCK_RESPONSES = {
|
|
|
30
30
|
total: 1,
|
|
31
31
|
rows: 1
|
|
32
32
|
},
|
|
33
|
-
'/api/v1/analytic': [createMockAnalytic()]
|
|
34
|
-
'/api/v2/search/hit,observable': {
|
|
35
|
-
items: [],
|
|
36
|
-
total: 0,
|
|
37
|
-
rows: 0
|
|
38
|
-
}
|
|
33
|
+
'/api/v1/analytic': [createMockAnalytic()]
|
|
39
34
|
};
|
|
40
35
|
const handlers = [
|
|
41
36
|
...Object.entries(MOCK_RESPONSES).map(([path, data]) => http.all(path, async () => HttpResponse.json({ api_response: data }))),
|
package/tests/utils.d.ts
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import type { Action } from '@cccsaurora/howler-ui/models/entities/generated/Action';
|
|
2
2
|
import type { Analytic } from '@cccsaurora/howler-ui/models/entities/generated/Analytic';
|
|
3
|
-
import type { Case } from '@cccsaurora/howler-ui/models/entities/generated/Case';
|
|
4
3
|
import type { Dossier } from '@cccsaurora/howler-ui/models/entities/generated/Dossier';
|
|
5
4
|
import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
|
|
6
|
-
import type { Observable } from '@cccsaurora/howler-ui/models/entities/generated/Observable';
|
|
7
5
|
import type { Template } from '@cccsaurora/howler-ui/models/entities/generated/Template';
|
|
8
6
|
import type { View } from '@cccsaurora/howler-ui/models/entities/generated/View';
|
|
9
7
|
type RecursivePartial<T> = {
|
|
10
8
|
[P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];
|
|
11
9
|
};
|
|
12
10
|
export declare const createMockHit: (overrides?: RecursivePartial<Hit>) => Hit;
|
|
13
|
-
export declare const createMockObservable: (overrides?: RecursivePartial<Observable>) => Observable;
|
|
14
11
|
export declare const createMockAnalytic: (overrides?: Partial<Analytic>) => Analytic;
|
|
15
12
|
export declare const createMockTemplate: (overrides?: Partial<Template>) => Template;
|
|
16
13
|
export declare const createMockAction: (overrides?: Partial<Action>) => Action;
|
|
17
14
|
export declare const createMockView: (overrides?: Partial<View>) => View;
|
|
18
|
-
export declare const createMockCase: (overrides?: Partial<Case>) => Case;
|
|
19
15
|
export declare const createMockDossier: (overrides?: Partial<Dossier>) => Dossier;
|
|
20
16
|
export {};
|
package/tests/utils.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
// Mock data factories
|
|
2
2
|
export const createMockHit = (overrides) => ({
|
|
3
|
-
...overrides,
|
|
4
|
-
__index: 'hit',
|
|
5
3
|
howler: {
|
|
6
4
|
id: 'test-hit-1',
|
|
7
5
|
analytic: 'test-analytic',
|
|
@@ -16,17 +14,6 @@ export const createMockHit = (overrides) => ({
|
|
|
16
14
|
...overrides?.event
|
|
17
15
|
}
|
|
18
16
|
});
|
|
19
|
-
export const createMockObservable = (overrides) => ({
|
|
20
|
-
...overrides,
|
|
21
|
-
__index: 'observable',
|
|
22
|
-
howler: {
|
|
23
|
-
id: 'test-observable-1',
|
|
24
|
-
analytic: 'test-analytic',
|
|
25
|
-
detection: 'Test Detection',
|
|
26
|
-
hash: '',
|
|
27
|
-
...overrides?.howler
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
17
|
export const createMockAnalytic = (overrides) => ({
|
|
31
18
|
analytic_id: 'test-analytic-id',
|
|
32
19
|
name: 'test-analytic',
|
|
@@ -65,13 +52,6 @@ export const createMockView = (overrides) => ({
|
|
|
65
52
|
},
|
|
66
53
|
...overrides
|
|
67
54
|
});
|
|
68
|
-
export const createMockCase = (overrides) => ({
|
|
69
|
-
case_id: 'test-case-id',
|
|
70
|
-
title: 'Test Case',
|
|
71
|
-
summary: 'Test case summary',
|
|
72
|
-
items: [],
|
|
73
|
-
...overrides
|
|
74
|
-
});
|
|
75
55
|
// Helper function to create mock dossiers
|
|
76
56
|
export const createMockDossier = (overrides) => ({
|
|
77
57
|
dossier_id: 'test-dossier-id',
|
package/utils/constants.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ export declare const VERSION: any;
|
|
|
5
5
|
export declare const MY_LOCAL_STORAGE_PREFIX = "howler.ui";
|
|
6
6
|
export declare const MY_SESSION_STORAGE_PREFIX = "howler.ui.cache";
|
|
7
7
|
export declare const ESCALATION_COLORS: {
|
|
8
|
-
alert:
|
|
9
|
-
evidence:
|
|
10
|
-
hit:
|
|
8
|
+
alert: string;
|
|
9
|
+
evidence: string;
|
|
10
|
+
hit: string;
|
|
11
11
|
};
|
|
12
12
|
export declare const STATUS_COLORS: {
|
|
13
13
|
open: string;
|
package/utils/hitFunctions.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
|
|
2
|
-
|
|
3
|
-
export declare const getUserList: (record: Hit | Observable) => Set<string>;
|
|
2
|
+
export declare const getUserList: (hit: Hit) => Set<string>;
|
package/utils/hitFunctions.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export const getUserList = (
|
|
1
|
+
export const getUserList = (hit) => {
|
|
2
2
|
const ids = new Set();
|
|
3
|
-
if (
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
if (hit) {
|
|
4
|
+
hit.howler?.log?.forEach(l => ids.add(l.user));
|
|
5
|
+
hit.howler?.comment?.forEach(c => ids.add(c.user), ids);
|
|
6
6
|
}
|
|
7
7
|
return ids;
|
|
8
8
|
};
|
package/utils/viewUtils.js
CHANGED
package/api/search/case.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { HowlerSearchRequest, HowlerSearchResponse } from '@cccsaurora/howler-ui/api/search';
|
|
2
|
-
import type { Case } from '@cccsaurora/howler-ui/models/entities/generated/Case';
|
|
3
|
-
export declare const uri: () => string;
|
|
4
|
-
export declare const post: (request?: HowlerSearchRequest) => Promise<HowlerSearchResponse<Case>>;
|
package/api/search/case.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { hpost, joinUri } from '@cccsaurora/howler-ui/api';
|
|
2
|
-
import { uri as parentUri } from '@cccsaurora/howler-ui/api/search';
|
|
3
|
-
export const uri = () => {
|
|
4
|
-
return joinUri(parentUri(), 'case');
|
|
5
|
-
};
|
|
6
|
-
export const post = (request) => {
|
|
7
|
-
return hpost(uri(), { ...(request || {}), query: request?.query || 'case_id:*' });
|
|
8
|
-
};
|
package/api/v2/case/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as items from '@cccsaurora/howler-ui/api/v2/case/items';
|
|
2
|
-
import type { Case } from '@cccsaurora/howler-ui/models/entities/generated/Case';
|
|
3
|
-
export declare const uri: (id?: string) => string;
|
|
4
|
-
export declare const get: (id: string) => Promise<Case>;
|
|
5
|
-
export declare const post: (newData: Partial<Case>) => Promise<Case>;
|
|
6
|
-
export declare const put: (id: string, _case: Partial<Case>) => Promise<Case>;
|
|
7
|
-
export declare const del: (id: string) => Promise<void>;
|
|
8
|
-
export { items };
|
package/api/v2/case/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line import/no-cycle
|
|
2
|
-
import { hdelete, hget, hpost, hput, joinAllUri, joinUri } from '@cccsaurora/howler-ui/api';
|
|
3
|
-
import { uri as parentUri } from '@cccsaurora/howler-ui/api/v2';
|
|
4
|
-
import * as items from '@cccsaurora/howler-ui/api/v2/case/items';
|
|
5
|
-
export const uri = (id) => {
|
|
6
|
-
return id ? joinAllUri(parentUri(), 'case', id) : joinUri(parentUri(), 'case');
|
|
7
|
-
};
|
|
8
|
-
export const get = (id) => {
|
|
9
|
-
return hget(uri(id));
|
|
10
|
-
};
|
|
11
|
-
export const post = (newData) => {
|
|
12
|
-
return hpost(uri(), newData);
|
|
13
|
-
};
|
|
14
|
-
export const put = (id, _case) => {
|
|
15
|
-
return hput(uri(id), _case);
|
|
16
|
-
};
|
|
17
|
-
export const del = (id) => {
|
|
18
|
-
return hdelete(uri(id));
|
|
19
|
-
};
|
|
20
|
-
export { items };
|