@cccsaurora/howler-ui 2.18.0-dev.778 → 2.18.0-dev.794

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.
Files changed (298) hide show
  1. package/api/index.d.ts +2 -0
  2. package/api/index.js +4 -2
  3. package/api/search/case.d.ts +4 -0
  4. package/api/search/case.js +8 -0
  5. package/api/search/facet/hit.d.ts +1 -3
  6. package/api/search/facet/index.d.ts +3 -1
  7. package/api/search/index.d.ts +2 -1
  8. package/api/search/index.js +2 -1
  9. package/api/v2/case/index.d.ts +8 -0
  10. package/api/v2/case/index.js +20 -0
  11. package/api/v2/case/items.d.ts +6 -0
  12. package/api/v2/case/items.js +18 -0
  13. package/api/v2/index.d.ts +4 -0
  14. package/api/v2/index.js +6 -0
  15. package/api/v2/search/facet.d.ts +3 -0
  16. package/api/v2/search/facet.js +12 -0
  17. package/api/v2/search/index.d.ts +5 -0
  18. package/api/v2/search/index.js +24 -0
  19. package/commons/components/leftnav/LeftNavDrawer.js +1 -1
  20. package/components/app/App.js +36 -8
  21. package/components/app/hooks/useMatchers.d.ts +1 -1
  22. package/components/app/hooks/useMatchers.js +23 -11
  23. package/components/app/hooks/useMatchers.test.js +22 -22
  24. package/components/app/hooks/useTitle.js +3 -3
  25. package/components/app/providers/FavouritesProvider.js +2 -2
  26. package/components/app/providers/ModalProvider.d.ts +1 -0
  27. package/components/app/providers/ParameterProvider.d.ts +9 -2
  28. package/components/app/providers/ParameterProvider.js +165 -240
  29. package/components/app/providers/ParameterProvider.test.js +346 -94
  30. package/components/app/providers/RecordProvider.d.ts +23 -0
  31. package/components/app/providers/{HitProvider.js → RecordProvider.js} +41 -41
  32. package/components/app/providers/{HitSearchProvider.d.ts → RecordSearchProvider.d.ts} +6 -6
  33. package/components/app/providers/{HitSearchProvider.js → RecordSearchProvider.js} +12 -17
  34. package/components/app/providers/{HitSearchProvider.test.js → RecordSearchProvider.test.js} +52 -71
  35. package/components/app/providers/UserListProvider.js +28 -8
  36. package/components/elements/ContextMenu.d.ts +56 -0
  37. package/components/elements/ContextMenu.js +109 -0
  38. package/components/elements/ContextMenu.test.js +215 -0
  39. package/components/{routes/overviews/OverviewEditor.js → elements/MarkdownEditor.js} +3 -3
  40. package/components/elements/ObjectDetails.d.ts +6 -0
  41. package/components/elements/{hit/HitDetails.js → ObjectDetails.js} +17 -17
  42. package/components/elements/PluginTypography.d.ts +2 -1
  43. package/components/elements/PluginTypography.js +3 -2
  44. package/components/elements/UserList.d.ts +5 -2
  45. package/components/elements/UserList.js +18 -8
  46. package/components/elements/addons/search/phrase/Phrase.js +1 -1
  47. package/components/elements/case/CaseCard.d.ts +12 -0
  48. package/components/elements/case/CaseCard.js +42 -0
  49. package/components/elements/case/CasePreview.d.ts +6 -0
  50. package/components/elements/case/CasePreview.js +17 -0
  51. package/components/elements/case/StatusIcon.d.ts +5 -0
  52. package/components/elements/case/StatusIcon.js +13 -0
  53. package/components/elements/display/ChipPopper.d.ts +1 -1
  54. package/components/elements/display/HowlerCard.js +1 -1
  55. package/components/elements/display/Modal.js +2 -0
  56. package/components/elements/hit/HitActions.js +4 -4
  57. package/components/elements/hit/HitBanner.d.ts +1 -0
  58. package/components/elements/hit/HitBanner.js +29 -49
  59. package/components/elements/hit/HitCard.d.ts +2 -0
  60. package/components/elements/hit/HitCard.js +7 -7
  61. package/components/elements/hit/HitLabels.js +2 -2
  62. package/components/elements/hit/HitLinks.js +1 -1
  63. package/components/elements/hit/HitOutline.d.ts +1 -0
  64. package/components/elements/hit/HitOutline.js +3 -3
  65. package/components/elements/hit/{HitQuickSearch.d.ts → HitPreview.d.ts} +3 -3
  66. package/components/elements/hit/{HitQuickSearch.js → HitPreview.js} +10 -4
  67. package/components/elements/hit/HitSummary.d.ts +2 -1
  68. package/components/elements/hit/HitSummary.js +6 -5
  69. package/components/elements/hit/aggregate/HitGraph.js +8 -8
  70. package/components/elements/hit/elements/AnalyticLink.d.ts +9 -0
  71. package/components/elements/hit/elements/AnalyticLink.js +22 -0
  72. package/components/elements/hit/outlines/DefaultOutline.js +1 -1
  73. package/components/elements/hit/related/RelatedRecords.js +63 -0
  74. package/components/elements/observable/ObservableCard.d.ts +6 -0
  75. package/components/elements/observable/ObservableCard.js +22 -0
  76. package/components/elements/observable/ObservablePreview.d.ts +6 -0
  77. package/components/elements/observable/ObservablePreview.js +12 -0
  78. package/components/elements/{hit/HitComments.d.ts → record/RecordComments.d.ts} +5 -4
  79. package/components/elements/{hit/HitComments.js → record/RecordComments.js} +29 -28
  80. package/components/{routes/hits/search/HitContextMenu.d.ts → elements/record/RecordContextMenu.d.ts} +3 -3
  81. package/components/elements/record/RecordContextMenu.js +256 -0
  82. package/components/elements/record/RecordContextMenu.test.d.ts +1 -0
  83. package/components/{routes/hits/search/HitContextMenu.test.js → elements/record/RecordContextMenu.test.js} +94 -39
  84. package/components/elements/record/RecordRelated.d.ts +7 -0
  85. package/components/elements/record/RecordRelated.js +34 -0
  86. package/components/elements/{hit/HitWorklog.d.ts → record/RecordWorklog.d.ts} +4 -3
  87. package/components/elements/{hit/HitWorklog.js → record/RecordWorklog.js} +15 -13
  88. package/components/elements/view/ViewTitle.d.ts +1 -0
  89. package/components/elements/view/ViewTitle.js +9 -2
  90. package/components/hooks/useHitActions.d.ts +1 -1
  91. package/components/hooks/useHitActions.js +4 -4
  92. package/components/hooks/useMyPreferences.js +10 -1
  93. package/components/hooks/useMySearch.js +2 -2
  94. package/components/hooks/useMySitemap.js +4 -1
  95. package/components/hooks/useMyTheme.js +9 -2
  96. package/components/hooks/{useHitSelection.d.ts → useRecordSelection.d.ts} +2 -2
  97. package/components/hooks/{useHitSelection.js → useRecordSelection.js} +12 -33
  98. package/components/hooks/useRelatedRecords.d.ts +13 -0
  99. package/components/hooks/useRelatedRecords.js +32 -0
  100. package/components/routes/action/edit/ActionEditor.js +2 -2
  101. package/components/routes/action/useMyActionFunctions.js +4 -22
  102. package/components/routes/action/view/ActionSearch.js +1 -1
  103. package/components/routes/advanced/QueryBuilder.js +1 -1
  104. package/components/routes/advanced/QueryEditor.js +3 -3
  105. package/components/routes/advanced/historyCompletionProvider.js +3 -3
  106. package/components/routes/analytics/AnalyticDetails.js +2 -2
  107. package/components/routes/analytics/AnalyticSearch.js +1 -1
  108. package/components/routes/cases/CaseViewer.d.ts +2 -0
  109. package/components/routes/cases/CaseViewer.js +22 -0
  110. package/components/routes/cases/Cases.d.ts +2 -0
  111. package/components/routes/cases/Cases.js +148 -0
  112. package/components/routes/cases/constants.d.ts +6 -0
  113. package/components/routes/cases/constants.js +6 -0
  114. package/components/routes/cases/detail/AlertPanel.d.ts +6 -0
  115. package/components/routes/cases/detail/AlertPanel.js +33 -0
  116. package/components/routes/cases/detail/CaseAssets.d.ts +11 -0
  117. package/components/routes/cases/detail/CaseAssets.js +104 -0
  118. package/components/routes/cases/detail/CaseAssets.test.d.ts +1 -0
  119. package/components/routes/cases/detail/CaseAssets.test.js +167 -0
  120. package/components/routes/cases/detail/CaseDashboard.d.ts +7 -0
  121. package/components/routes/cases/detail/CaseDashboard.js +66 -0
  122. package/components/routes/cases/detail/CaseDetails.d.ts +6 -0
  123. package/components/routes/cases/detail/CaseDetails.js +61 -0
  124. package/components/routes/cases/detail/CaseOverview.d.ts +7 -0
  125. package/components/routes/cases/detail/CaseOverview.js +43 -0
  126. package/components/routes/cases/detail/CaseSidebar.d.ts +8 -0
  127. package/components/routes/cases/detail/CaseSidebar.js +107 -0
  128. package/components/routes/cases/detail/CaseSidebar.test.d.ts +1 -0
  129. package/components/routes/cases/detail/CaseSidebar.test.js +246 -0
  130. package/components/routes/cases/detail/CaseTask.d.ts +11 -0
  131. package/components/routes/cases/detail/CaseTask.js +57 -0
  132. package/components/routes/cases/detail/CaseTimeline.d.ts +12 -0
  133. package/components/routes/cases/detail/CaseTimeline.js +106 -0
  134. package/components/routes/cases/detail/CaseTimeline.test.d.ts +1 -0
  135. package/components/routes/cases/detail/CaseTimeline.test.js +320 -0
  136. package/components/routes/cases/detail/ItemPage.d.ts +6 -0
  137. package/components/routes/cases/detail/ItemPage.js +95 -0
  138. package/components/routes/cases/detail/RelatedCasePanel.d.ts +6 -0
  139. package/components/routes/cases/detail/RelatedCasePanel.js +34 -0
  140. package/components/routes/cases/detail/TaskPanel.d.ts +7 -0
  141. package/components/routes/cases/detail/TaskPanel.js +52 -0
  142. package/components/routes/cases/detail/aggregates/CaseAggregate.d.ts +11 -0
  143. package/components/routes/cases/detail/aggregates/CaseAggregate.js +24 -0
  144. package/components/routes/cases/detail/aggregates/SourceAggregate.d.ts +6 -0
  145. package/components/routes/cases/detail/aggregates/SourceAggregate.js +26 -0
  146. package/components/routes/cases/detail/assets/Asset.d.ts +14 -0
  147. package/components/routes/cases/detail/assets/Asset.js +12 -0
  148. package/components/routes/cases/detail/assets/Asset.test.d.ts +1 -0
  149. package/components/routes/cases/detail/assets/Asset.test.js +72 -0
  150. package/components/routes/cases/detail/sidebar/CaseFolder.d.ts +20 -0
  151. package/components/routes/cases/detail/sidebar/CaseFolder.js +83 -0
  152. package/components/routes/cases/detail/sidebar/CaseFolder.test.d.ts +1 -0
  153. package/components/routes/cases/detail/sidebar/CaseFolder.test.js +295 -0
  154. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.d.ts +34 -0
  155. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.js +103 -0
  156. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.d.ts +1 -0
  157. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.js +363 -0
  158. package/components/routes/cases/detail/sidebar/FolderEntry.d.ts +25 -0
  159. package/components/routes/cases/detail/sidebar/FolderEntry.js +88 -0
  160. package/components/routes/cases/detail/sidebar/FolderEntry.test.d.ts +1 -0
  161. package/components/routes/cases/detail/sidebar/FolderEntry.test.js +206 -0
  162. package/components/routes/cases/detail/sidebar/RootDropZone.d.ts +5 -0
  163. package/components/routes/cases/detail/sidebar/RootDropZone.js +33 -0
  164. package/components/routes/cases/detail/sidebar/types.d.ts +9 -0
  165. package/components/routes/cases/detail/sidebar/utils.d.ts +3 -0
  166. package/components/routes/cases/detail/sidebar/utils.js +29 -0
  167. package/components/routes/cases/detail/sidebar/utils.test.d.ts +1 -0
  168. package/components/routes/cases/detail/sidebar/utils.test.js +82 -0
  169. package/components/routes/cases/hooks/useCase.d.ts +13 -0
  170. package/components/routes/cases/hooks/useCase.js +51 -0
  171. package/components/routes/cases/modals/AddToCaseModal.d.ts +7 -0
  172. package/components/routes/cases/modals/AddToCaseModal.js +59 -0
  173. package/components/routes/cases/modals/AddToCaseModal.test.d.ts +1 -0
  174. package/components/routes/cases/modals/AddToCaseModal.test.js +313 -0
  175. package/components/routes/cases/modals/CaseRecordRow.d.ts +9 -0
  176. package/components/routes/cases/modals/CaseRecordRow.js +15 -0
  177. package/components/routes/cases/modals/CreateCaseModal.d.ts +7 -0
  178. package/components/routes/cases/modals/CreateCaseModal.js +55 -0
  179. package/components/routes/cases/modals/CreateCaseModal.test.d.ts +1 -0
  180. package/components/routes/cases/modals/CreateCaseModal.test.js +358 -0
  181. package/components/routes/cases/modals/RenameItemModal.d.ts +9 -0
  182. package/components/routes/cases/modals/RenameItemModal.js +48 -0
  183. package/components/routes/cases/modals/ResolveModal.d.ts +7 -0
  184. package/components/routes/cases/modals/ResolveModal.js +115 -0
  185. package/components/routes/cases/modals/ResolveModal.test.d.ts +1 -0
  186. package/components/routes/cases/modals/ResolveModal.test.js +384 -0
  187. package/components/routes/cases/modals/hooks.d.ts +7 -0
  188. package/components/routes/cases/modals/hooks.js +44 -0
  189. package/components/routes/cases/modals/types.d.ts +5 -0
  190. package/components/routes/cases/search/CaseAssigneeFilter.d.ts +6 -0
  191. package/components/routes/cases/search/CaseAssigneeFilter.js +33 -0
  192. package/components/routes/cases/search/CaseAssigneeFilter.test.d.ts +1 -0
  193. package/components/routes/cases/search/CaseAssigneeFilter.test.js +127 -0
  194. package/components/routes/cases/search/CaseDateFilter.d.ts +13 -0
  195. package/components/routes/cases/search/CaseDateFilter.js +26 -0
  196. package/components/routes/cases/search/CaseDateFilter.test.d.ts +1 -0
  197. package/components/routes/cases/search/CaseDateFilter.test.js +115 -0
  198. package/components/routes/cases/search/CaseStatusFilter.d.ts +6 -0
  199. package/components/routes/cases/search/CaseStatusFilter.js +13 -0
  200. package/components/routes/cases/search/CaseStatusFilter.test.d.ts +1 -0
  201. package/components/routes/cases/search/CaseStatusFilter.test.js +86 -0
  202. package/components/routes/dossiers/DossierEditor.js +2 -2
  203. package/components/routes/dossiers/DossierEditor.test.js +1 -1
  204. package/components/routes/help/ApiDocumentation.js +1 -1
  205. package/components/routes/help/HitBannerDocumentation.js +1 -0
  206. package/components/routes/help/HitDocumentation.js +1 -3
  207. package/components/routes/hits/search/InformationPane.d.ts +1 -0
  208. package/components/routes/hits/search/InformationPane.js +47 -60
  209. package/components/routes/hits/search/LayoutSettings.js +3 -3
  210. package/components/routes/hits/search/QuerySettings.js +2 -1
  211. package/components/routes/hits/search/QuerySettings.test.js +14 -9
  212. package/components/routes/hits/search/{HitBrowser.js → RecordBrowser.js} +9 -9
  213. package/components/routes/hits/search/{HitQuery.d.ts → RecordQuery.d.ts} +2 -2
  214. package/components/routes/hits/search/{HitQuery.js → RecordQuery.js} +6 -6
  215. package/components/routes/hits/search/SearchPane.js +26 -49
  216. package/components/routes/hits/search/ViewLink.js +3 -3
  217. package/components/routes/hits/search/ViewLink.test.js +8 -8
  218. package/components/routes/hits/search/grid/AddColumnModal.js +5 -4
  219. package/components/routes/hits/search/grid/EnhancedCell.d.ts +2 -1
  220. package/components/routes/hits/search/grid/EnhancedCell.js +2 -2
  221. package/components/routes/hits/search/grid/HitGrid.js +20 -18
  222. package/components/routes/hits/search/grid/{HitRow.d.ts → RecordRow.d.ts} +3 -2
  223. package/components/routes/hits/search/grid/{HitRow.js → RecordRow.js} +10 -8
  224. package/components/routes/hits/search/shared/IndexPicker.d.ts +2 -0
  225. package/components/routes/hits/search/shared/IndexPicker.js +20 -0
  226. package/components/routes/hits/view/HitViewer.js +12 -13
  227. package/components/routes/home/ViewCard.js +47 -41
  228. package/components/routes/observables/ObservableViewer.d.ts +7 -0
  229. package/components/routes/observables/ObservableViewer.js +27 -0
  230. package/components/routes/overviews/OverviewViewer.js +2 -2
  231. package/components/routes/views/ViewComposer.js +46 -19
  232. package/locales/en/translation.json +109 -5
  233. package/locales/fr/translation.json +107 -5
  234. package/models/WithMetadata.d.ts +2 -1
  235. package/models/entities/generated/AttachmentsFile.d.ts +12 -0
  236. package/models/entities/generated/Case.d.ts +28 -0
  237. package/models/entities/generated/DestinationOriginal.d.ts +19 -0
  238. package/models/entities/generated/EmailAttachment.d.ts +8 -0
  239. package/models/entities/generated/EmailParent.d.ts +19 -0
  240. package/models/entities/generated/Enrichments.d.ts +7 -0
  241. package/models/entities/generated/EnrichmentsIndicator.d.ts +21 -0
  242. package/models/entities/generated/Hit.d.ts +1 -0
  243. package/models/entities/generated/Howler.d.ts +0 -4
  244. package/models/entities/generated/HttpResponse.d.ts +11 -0
  245. package/models/entities/generated/Item.d.ts +9 -0
  246. package/models/entities/generated/Observable.d.ts +85 -0
  247. package/models/entities/generated/ObservableCloud.d.ts +20 -0
  248. package/models/entities/generated/ObservableDestination.d.ts +23 -0
  249. package/models/entities/generated/ObservableEmail.d.ts +30 -0
  250. package/models/entities/generated/ObservableFile.d.ts +36 -0
  251. package/models/entities/generated/ObservableHowler.d.ts +43 -0
  252. package/models/entities/generated/ObservableHttp.d.ts +11 -0
  253. package/models/entities/generated/ObservableObserver.d.ts +21 -0
  254. package/models/entities/generated/ObservableOrganization.d.ts +7 -0
  255. package/models/entities/generated/ObservableProcess.d.ts +34 -0
  256. package/models/entities/generated/ObservableSource.d.ts +23 -0
  257. package/models/entities/generated/ObservableThreat.d.ts +21 -0
  258. package/models/entities/generated/ObservableTls.d.ts +12 -0
  259. package/models/entities/generated/ObserverIngress.d.ts +9 -0
  260. package/models/entities/generated/Rule.d.ts +2 -10
  261. package/models/entities/generated/Task.d.ts +10 -0
  262. package/models/entities/generated/Threat.d.ts +2 -2
  263. package/models/entities/generated/{Enrichment.d.ts → ThreatEnrichment.d.ts} +1 -1
  264. package/models/entities/generated/View.d.ts +1 -0
  265. package/package.json +21 -3
  266. package/plugins/clue/components/ClueTypography.js +2 -2
  267. package/plugins/clue/utils.d.ts +2 -1
  268. package/tests/mocks.d.ts +11 -1
  269. package/tests/mocks.js +12 -7
  270. package/tests/server-handlers.js +6 -1
  271. package/tests/utils.d.ts +4 -0
  272. package/tests/utils.js +20 -0
  273. package/utils/constants.d.ts +4 -3
  274. package/utils/constants.js +6 -0
  275. package/utils/hitFunctions.d.ts +2 -1
  276. package/utils/hitFunctions.js +4 -4
  277. package/utils/typeUtils.d.ts +7 -0
  278. package/utils/typeUtils.js +27 -0
  279. package/utils/viewUtils.js +3 -0
  280. package/components/app/providers/HitProvider.d.ts +0 -22
  281. package/components/elements/display/icons/BundleButton.d.ts +0 -6
  282. package/components/elements/display/icons/BundleButton.js +0 -32
  283. package/components/elements/hit/HitRelated.d.ts +0 -6
  284. package/components/elements/hit/HitRelated.js +0 -7
  285. package/components/routes/help/BundleDocumentation.d.ts +0 -3
  286. package/components/routes/help/BundleDocumentation.js +0 -12
  287. package/components/routes/help/markdown/en/bundles.md.js +0 -1
  288. package/components/routes/help/markdown/fr/bundles.md.js +0 -1
  289. package/components/routes/hits/search/BundleParentMenu.d.ts +0 -6
  290. package/components/routes/hits/search/BundleParentMenu.js +0 -32
  291. package/components/routes/hits/search/BundleScroller.d.ts +0 -2
  292. package/components/routes/hits/search/BundleScroller.js +0 -6
  293. package/components/routes/hits/search/HitContextMenu.js +0 -227
  294. /package/components/app/providers/{HitSearchProvider.test.d.ts → RecordSearchProvider.test.d.ts} +0 -0
  295. /package/components/{routes/hits/search/HitContextMenu.test.d.ts → elements/ContextMenu.test.d.ts} +0 -0
  296. /package/components/{routes/overviews/OverviewEditor.d.ts → elements/MarkdownEditor.d.ts} +0 -0
  297. /package/components/elements/hit/{HitDetails.d.ts → related/RelatedRecords.d.ts} +0 -0
  298. /package/components/routes/hits/search/{HitBrowser.d.ts → RecordBrowser.d.ts} +0 -0
@@ -40,6 +40,7 @@ import type { Vulnerability } from './Vulnerability';
40
40
  * NOTE: This is an auto-generated file. Don't edit this manually.
41
41
  */
42
42
  export interface Hit {
43
+ __index: 'hit';
43
44
  agent?: Agent;
44
45
  assemblyline?: Assemblyline;
45
46
  aws?: Aws;
@@ -14,8 +14,6 @@ export interface Howler {
14
14
  analytic: string;
15
15
  assessment?: string;
16
16
  assignment: string;
17
- bundle_size?: number;
18
- bundles?: string[];
19
17
  comment?: HowlerComment[];
20
18
  confidence?: number;
21
19
  data?: string[];
@@ -24,10 +22,8 @@ export interface Howler {
24
22
  escalation?: string;
25
23
  expiry?: string;
26
24
  hash: string;
27
- hits?: string[];
28
25
  id: string;
29
26
  incidents?: Incident[];
30
- is_bundle?: boolean;
31
27
  labels?: Labels;
32
28
  links?: Link[];
33
29
  log?: Log[];
@@ -0,0 +1,11 @@
1
+ import type { Body } from './Body';
2
+
3
+ /**
4
+ * NOTE: This is an auto-generated file. Don't edit this manually.
5
+ */
6
+ export interface HttpResponse {
7
+ body?: Body;
8
+ bytes?: number;
9
+ mime_type?: string;
10
+ status_code?: number;
11
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * NOTE: This is an auto-generated file. Don't edit this manually.
3
+ */
4
+ export interface Item {
5
+ path?: string;
6
+ type?: string;
7
+ value?: string;
8
+ visible?: boolean;
9
+ }
@@ -0,0 +1,85 @@
1
+ import type { Agent } from './Agent';
2
+ import type { Assemblyline } from './Assemblyline';
3
+ import type { Aws } from './Aws';
4
+ import type { Azure } from './Azure';
5
+ import type { Cbs } from './Cbs';
6
+ import type { Clue } from './Clue';
7
+ import type { Container } from './Container';
8
+ import type { Dns } from './Dns';
9
+ import type { Ecs } from './Ecs';
10
+ import type { Error } from './Error';
11
+ import type { Event } from './Event';
12
+ import type { Faas } from './Faas';
13
+ import type { Gcp } from './Gcp';
14
+ import type { Group } from './Group';
15
+ import type { Host } from './Host';
16
+ import type { Interface } from './Interface';
17
+ import type { Network } from './Network';
18
+ import type { ObservableCloud } from './ObservableCloud';
19
+ import type { ObservableDestination } from './ObservableDestination';
20
+ import type { ObservableEmail } from './ObservableEmail';
21
+ import type { ObservableFile } from './ObservableFile';
22
+ import type { ObservableHowler } from './ObservableHowler';
23
+ import type { ObservableHttp } from './ObservableHttp';
24
+ import type { ObservableObserver } from './ObservableObserver';
25
+ import type { ObservableOrganization } from './ObservableOrganization';
26
+ import type { ObservableProcess } from './ObservableProcess';
27
+ import type { ObservableSource } from './ObservableSource';
28
+ import type { ObservableThreat } from './ObservableThreat';
29
+ import type { ObservableTls } from './ObservableTls';
30
+ import type { Registry } from './Registry';
31
+ import type { Related } from './Related';
32
+ import type { Rule } from './Rule';
33
+ import type { Server } from './Server';
34
+ import type { Url } from './Url';
35
+ import type { User } from './User';
36
+ import type { UserAgent } from './UserAgent';
37
+ import type { Vulnerability } from './Vulnerability';
38
+
39
+ /**
40
+ * NOTE: This is an auto-generated file. Don't edit this manually.
41
+ */
42
+ export interface Observable {
43
+ __index: 'observable';
44
+ agent?: Agent;
45
+ assemblyline?: Assemblyline;
46
+ aws?: Aws;
47
+ azure?: Azure;
48
+ cbs?: Cbs;
49
+ cloud?: ObservableCloud;
50
+ clue?: Clue;
51
+ container?: Container;
52
+ destination?: ObservableDestination;
53
+ dns?: Dns;
54
+ ecs?: Ecs;
55
+ email?: ObservableEmail;
56
+ error?: Error;
57
+ event?: Event;
58
+ faas?: Faas;
59
+ file?: ObservableFile;
60
+ gcp?: Gcp;
61
+ group?: Group;
62
+ host?: Host;
63
+ howler: ObservableHowler;
64
+ http?: ObservableHttp;
65
+ interface?: Interface;
66
+ labels?: { [index: string]: string };
67
+ message?: string;
68
+ network?: Network;
69
+ observer?: ObservableObserver;
70
+ organization?: ObservableOrganization;
71
+ process?: ObservableProcess;
72
+ registry?: Registry;
73
+ related?: Related;
74
+ rule?: Rule;
75
+ server?: Server;
76
+ source?: ObservableSource;
77
+ tags?: string[];
78
+ threat?: ObservableThreat;
79
+ timestamp: string;
80
+ tls?: ObservableTls;
81
+ url?: Url;
82
+ user?: User;
83
+ user_agent?: UserAgent;
84
+ vulnerability?: Vulnerability;
85
+ }
@@ -0,0 +1,20 @@
1
+ import type { CloudAccount } from './CloudAccount';
2
+ import type { Instance } from './Instance';
3
+ import type { Machine } from './Machine';
4
+ import type { Project } from './Project';
5
+ import type { Service } from './Service';
6
+
7
+ /**
8
+ * NOTE: This is an auto-generated file. Don't edit this manually.
9
+ */
10
+ export interface ObservableCloud {
11
+ account?: CloudAccount;
12
+ availability_zone?: string;
13
+ instance?: Instance;
14
+ machine?: Machine;
15
+ project?: Project;
16
+ provider?: string;
17
+ region?: string;
18
+ service?: Service;
19
+ tenant_id?: string;
20
+ }
@@ -0,0 +1,23 @@
1
+ import type { AutonomousSystems } from './AutonomousSystems';
2
+ import type { DestinationOriginal } from './DestinationOriginal';
3
+ import type { Geo } from './Geo';
4
+ import type { Nat } from './Nat';
5
+ import type { User } from './User';
6
+
7
+ /**
8
+ * NOTE: This is an auto-generated file. Don't edit this manually.
9
+ */
10
+ export interface ObservableDestination {
11
+ address?: string;
12
+ autonomous_systems?: AutonomousSystems;
13
+ bytes?: number;
14
+ domain?: string;
15
+ geo?: Geo;
16
+ ip?: string;
17
+ mac?: string;
18
+ nat?: Nat;
19
+ original?: DestinationOriginal;
20
+ packets?: number;
21
+ port?: number;
22
+ user?: User;
23
+ }
@@ -0,0 +1,30 @@
1
+ import type { Bcc } from './Bcc';
2
+ import type { Cc } from './Cc';
3
+ import type { EmailAttachment } from './EmailAttachment';
4
+ import type { EmailParent } from './EmailParent';
5
+ import type { From } from './From';
6
+ import type { ReplyTo } from './ReplyTo';
7
+ import type { Sender } from './Sender';
8
+ import type { To } from './To';
9
+
10
+ /**
11
+ * NOTE: This is an auto-generated file. Don't edit this manually.
12
+ */
13
+ export interface ObservableEmail {
14
+ attachments?: EmailAttachment[];
15
+ bcc?: Bcc;
16
+ cc?: Cc;
17
+ content_type?: string;
18
+ delivery_timestamp?: string;
19
+ direction?: string;
20
+ from?: From;
21
+ local_id?: string;
22
+ message_id?: string;
23
+ origination_timestamp?: string;
24
+ parent?: EmailParent;
25
+ reply_to?: ReplyTo;
26
+ sender?: Sender;
27
+ subject?: string;
28
+ to?: To;
29
+ x_mailer?: string;
30
+ }
@@ -0,0 +1,36 @@
1
+ import type { CodeSignature } from './CodeSignature';
2
+ import type { Elf } from './Elf';
3
+ import type { FileHash } from './FileHash';
4
+ import type { Pe } from './Pe';
5
+
6
+ /**
7
+ * NOTE: This is an auto-generated file. Don't edit this manually.
8
+ */
9
+ export interface ObservableFile {
10
+ accessed?: string;
11
+ attributes?: string[];
12
+ code_signature?: CodeSignature;
13
+ created?: string;
14
+ ctime?: string;
15
+ device?: string;
16
+ directory?: string;
17
+ drive_letter?: string;
18
+ elf?: Elf;
19
+ extension?: string;
20
+ fork_name?: string;
21
+ gid?: string;
22
+ group?: string;
23
+ hash?: FileHash;
24
+ inode?: string;
25
+ mime_type?: string;
26
+ mode?: string;
27
+ mtime?: string;
28
+ name?: string;
29
+ owner?: string;
30
+ path?: string;
31
+ pe?: Pe;
32
+ size?: number;
33
+ target_path?: string;
34
+ type?: string;
35
+ uid?: string;
36
+ }
@@ -0,0 +1,43 @@
1
+ import type { HowlerComment } from './HowlerComment';
2
+ import type { HowlerDossier } from './HowlerDossier';
3
+ import type { Incident } from './Incident';
4
+ import type { Labels } from './Labels';
5
+ import type { Link } from './Link';
6
+ import type { Log } from './Log';
7
+ import type { Outline } from './Outline';
8
+ import type { Votes } from './Votes';
9
+
10
+ /**
11
+ * NOTE: This is an auto-generated file. Don't edit this manually.
12
+ */
13
+ export interface ObservableHowler {
14
+ analytic: string;
15
+ assessment?: string;
16
+ comment?: HowlerComment[];
17
+ confidence?: number;
18
+ data?: string[];
19
+ detection?: string;
20
+ dossier?: HowlerDossier[];
21
+ escalation?: string;
22
+ expiry?: string;
23
+ hash: string;
24
+ id: string;
25
+ incidents?: Incident[];
26
+ labels?: Labels;
27
+ links?: Link[];
28
+ log?: Log[];
29
+ mitigated?: string;
30
+ monitored?: string;
31
+ outline?: Outline;
32
+ rationale?: string;
33
+ related?: string[];
34
+ reliability?: number;
35
+ reported?: string;
36
+ score?: number;
37
+ scrutiny?: string;
38
+ severity?: number;
39
+ status?: string;
40
+ viewers?: string[];
41
+ volume?: number;
42
+ votes?: Votes;
43
+ }
@@ -0,0 +1,11 @@
1
+ import type { HttpResponse } from './HttpResponse';
2
+ import type { Request } from './Request';
3
+
4
+ /**
5
+ * NOTE: This is an auto-generated file. Don't edit this manually.
6
+ */
7
+ export interface ObservableHttp {
8
+ request?: Request;
9
+ response?: HttpResponse;
10
+ version?: string;
11
+ }
@@ -0,0 +1,21 @@
1
+ import type { Egress } from './Egress';
2
+ import type { Interface } from './Interface';
3
+ import type { ObserverIngress } from './ObserverIngress';
4
+
5
+ /**
6
+ * NOTE: This is an auto-generated file. Don't edit this manually.
7
+ */
8
+ export interface ObservableObserver {
9
+ egress?: Egress;
10
+ hostname?: string;
11
+ ingress?: ObserverIngress;
12
+ interface?: Interface;
13
+ ip?: string[];
14
+ mac?: string[];
15
+ name?: string;
16
+ product?: string;
17
+ serial_number?: string;
18
+ type?: string;
19
+ vendor?: string;
20
+ version?: string;
21
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * NOTE: This is an auto-generated file. Don't edit this manually.
3
+ */
4
+ export interface ObservableOrganization {
5
+ id?: string;
6
+ name?: string;
7
+ }
@@ -0,0 +1,34 @@
1
+ import type { CodeSignature } from './CodeSignature';
2
+ import type { EntryMeta } from './EntryMeta';
3
+ import type { Pe } from './Pe';
4
+ import type { ProcessHash } from './ProcessHash';
5
+ import type { ProcessParent } from './ProcessParent';
6
+ import type { ProcessUser } from './ProcessUser';
7
+
8
+ /**
9
+ * NOTE: This is an auto-generated file. Don't edit this manually.
10
+ */
11
+ export interface ObservableProcess {
12
+ args?: string[];
13
+ args_count?: number;
14
+ code_signature?: CodeSignature;
15
+ command_line?: string;
16
+ end?: string;
17
+ entity_id?: string;
18
+ entry_meta?: EntryMeta;
19
+ env_vars?: { [index: string]: string };
20
+ executable?: string;
21
+ exit_code?: number;
22
+ hash?: ProcessHash;
23
+ interactive?: boolean;
24
+ name?: string;
25
+ parent?: ProcessParent;
26
+ pe?: Pe;
27
+ pid?: number;
28
+ same_as_process?: boolean;
29
+ start?: string;
30
+ title?: string;
31
+ uptime?: number;
32
+ user?: ProcessUser;
33
+ working_directory?: string;
34
+ }
@@ -0,0 +1,23 @@
1
+ import type { AutonomousSystems } from './AutonomousSystems';
2
+ import type { Geo } from './Geo';
3
+ import type { Nat } from './Nat';
4
+ import type { SourceOriginal } from './SourceOriginal';
5
+ import type { User } from './User';
6
+
7
+ /**
8
+ * NOTE: This is an auto-generated file. Don't edit this manually.
9
+ */
10
+ export interface ObservableSource {
11
+ address?: string;
12
+ autonomous_systems?: AutonomousSystems;
13
+ bytes?: number;
14
+ domain?: string;
15
+ geo?: Geo;
16
+ ip?: string;
17
+ mac?: string;
18
+ nat?: Nat;
19
+ original?: SourceOriginal;
20
+ packets?: number;
21
+ port?: number;
22
+ user?: User;
23
+ }
@@ -0,0 +1,21 @@
1
+ import type { Feed } from './Feed';
2
+ import type { Software } from './Software';
3
+ import type { ThreatEnrichment } from './ThreatEnrichment';
4
+ import type { ThreatGroup } from './ThreatGroup';
5
+ import type { ThreatIndicator } from './ThreatIndicator';
6
+ import type { ThreatTactic } from './ThreatTactic';
7
+ import type { ThreatTechnique } from './ThreatTechnique';
8
+
9
+ /**
10
+ * NOTE: This is an auto-generated file. Don't edit this manually.
11
+ */
12
+ export interface ObservableThreat {
13
+ enrichments?: ThreatEnrichment[];
14
+ feed?: Feed;
15
+ framework?: string;
16
+ group?: ThreatGroup;
17
+ indicator?: ThreatIndicator;
18
+ software?: Software;
19
+ tactic?: ThreatTactic;
20
+ technique?: ThreatTechnique;
21
+ }
@@ -0,0 +1,12 @@
1
+ import type { Client } from './Client';
2
+ import type { TlsServer } from './TlsServer';
3
+
4
+ /**
5
+ * NOTE: This is an auto-generated file. Don't edit this manually.
6
+ */
7
+ export interface ObservableTls {
8
+ client?: Client;
9
+ server?: TlsServer;
10
+ version?: string;
11
+ version_protocol?: string;
12
+ }
@@ -0,0 +1,9 @@
1
+ import type { Interface } from './Interface';
2
+
3
+ /**
4
+ * NOTE: This is an auto-generated file. Don't edit this manually.
5
+ */
6
+ export interface ObserverIngress {
7
+ interface?: Interface;
8
+ zone?: string;
9
+ }
@@ -2,14 +2,6 @@
2
2
  * NOTE: This is an auto-generated file. Don't edit this manually.
3
3
  */
4
4
  export interface Rule {
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;
5
+ destination?: string;
6
+ query?: string;
15
7
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * NOTE: This is an auto-generated file. Don't edit this manually.
3
+ */
4
+ export interface Task {
5
+ assignment?: string;
6
+ complete?: boolean;
7
+ id?: string;
8
+ path?: string;
9
+ summary?: string;
10
+ }
@@ -1,6 +1,6 @@
1
- import type { Enrichment } from './Enrichment';
2
1
  import type { Feed } from './Feed';
3
2
  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?: Enrichment[];
13
+ enrichments?: ThreatEnrichment[];
14
14
  feed?: Feed;
15
15
  framework?: string;
16
16
  group?: ThreatGroup;
@@ -4,7 +4,7 @@ import type { Matched } from './Matched';
4
4
  /**
5
5
  * NOTE: This is an auto-generated file. Don't edit this manually.
6
6
  */
7
- export interface Enrichment {
7
+ export interface ThreatEnrichment {
8
8
  indicator?: Indicator;
9
9
  matched?: Matched;
10
10
  }
@@ -12,4 +12,5 @@ export interface View {
12
12
  title?: string;
13
13
  type?: string;
14
14
  view_id?: string;
15
+ indexes?: string[];
15
16
  }
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "@jsonforms/core": "^3.7.0",
25
25
  "@jsonforms/material-renderers": "^3.7.0",
26
26
  "@jsonforms/react": "^3.7.0",
27
- "@microlink/react-json-view": "^1.31.18",
27
+ "@microlink/react-json-view": "^1.31.17",
28
28
  "@monaco-editor/react": "^4.7.0",
29
29
  "ajv": "^8.18.0",
30
30
  "ajv-i18n": "^4.2.0",
@@ -34,7 +34,7 @@
34
34
  "chartjs-adapter-dayjs-4": "^1.0.4",
35
35
  "chartjs-plugin-zoom": "^2.2.0",
36
36
  "dayjs": "^1.11.20",
37
- "dompurify": "^3.4.0",
37
+ "dompurify": "^3.3.3",
38
38
  "flat": "^6.0.1",
39
39
  "fuse.js": "^7.3.0",
40
40
  "handlebars": "^4.7.9",
@@ -101,7 +101,7 @@
101
101
  "internal-slot": "1.0.7"
102
102
  },
103
103
  "type": "module",
104
- "version": "2.18.0-dev.778",
104
+ "version": "2.18.0-dev.794",
105
105
  "exports": {
106
106
  "./i18n": "./i18n.js",
107
107
  "./index.css": "./index.css",
@@ -148,9 +148,11 @@
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",
151
152
  "./components/routes/admin/*": "./components/routes/admin/*.js",
152
153
  "./components/routes/action/*": "./components/routes/action/*.js",
153
154
  "./components/routes/settings/*": "./components/routes/settings/*.js",
155
+ "./components/routes/cases/*": "./components/routes/cases/*.js",
154
156
  "./components/routes/views/*": "./components/routes/views/*.js",
155
157
  "./components/routes/overviews/*": "./components/routes/overviews/*.js",
156
158
  "./components/routes/analytics/*": "./components/routes/analytics/*.js",
@@ -168,12 +170,22 @@
168
170
  "./components/routes/action/shared/*": "./components/routes/action/shared/*.js",
169
171
  "./components/routes/action/view/*": "./components/routes/action/view/*.js",
170
172
  "./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/search/*": "./components/routes/cases/search/*.js",
176
+ "./components/routes/cases/hooks/*": "./components/routes/cases/hooks/*.js",
177
+ "./components/routes/cases/detail/assets/*": "./components/routes/cases/detail/assets/*.js",
178
+ "./components/routes/cases/detail/sidebar/*": "./components/routes/cases/detail/sidebar/*.js",
179
+ "./components/routes/cases/detail/aggregates/*": "./components/routes/cases/detail/aggregates/*.js",
171
180
  "./components/routes/overviews/template/*": "./components/routes/overviews/template/*.js",
172
181
  "./components/routes/analytics/widgets/*": "./components/routes/analytics/widgets/*.js",
173
182
  "./components/logins/auth/*": "./components/logins/auth/*.js",
174
183
  "./components/logins/hooks/*": "./components/logins/hooks/*.js",
175
184
  "./components/elements/hit/*": "./components/elements/hit/*.js",
176
185
  "./components/elements/addons/*": "./components/elements/addons/*.js",
186
+ "./components/elements/record/*": "./components/elements/record/*.js",
187
+ "./components/elements/observable/*": "./components/elements/observable/*.js",
188
+ "./components/elements/case/*": "./components/elements/case/*.js",
177
189
  "./components/elements/view/*": "./components/elements/view/*.js",
178
190
  "./components/elements/display/*": "./components/elements/display/*.js",
179
191
  "./components/elements/hit/aggregate/*": "./components/elements/hit/aggregate/*.js",
@@ -224,6 +236,8 @@
224
236
  "./api/template": "./api/template/index.js",
225
237
  "./api/analytic/*": "./api/analytic/*.js",
226
238
  "./api/analytic": "./api/analytic/index.js",
239
+ "./api/v2/*": "./api/v2/*.js",
240
+ "./api/v2": "./api/v2/index.js",
227
241
  "./api/auth/*": "./api/auth/*.js",
228
242
  "./api/auth": "./api/auth/index.js",
229
243
  "./api/user/*": "./api/user/*.js",
@@ -244,6 +258,10 @@
244
258
  "./api/analytic/comments": "./api/analytic/comments/index.js",
245
259
  "./api/analytic/notebooks/*": "./api/analytic/notebooks/*.js",
246
260
  "./api/analytic/notebooks": "./api/analytic/notebooks/index.js",
261
+ "./api/v2/case/*": "./api/v2/case/*.js",
262
+ "./api/v2/case": "./api/v2/case/index.js",
263
+ "./api/v2/search/*": "./api/v2/search/*.js",
264
+ "./api/v2/search": "./api/v2/search/index.js",
247
265
  "./api/user/avatar/*": "./api/user/avatar/*.js",
248
266
  "./api/user/avatar": "./api/user/avatar/index.js",
249
267
  "./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, hit, ...props }) => {
7
- const type = useType(hit, field, value);
6
+ const ClueTypography = ({ children, value, context, field, obj, ...props }) => {
7
+ const type = useType(obj, field, value);
8
8
  if (!type) {
9
9
  return _jsx(Typography, { ...props, children: children ?? value });
10
10
  }
@@ -1,2 +1,3 @@
1
1
  import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
2
- export declare const useType: (hit?: Hit, field?: string, value?: string) => any;
2
+ import type { Observable } from '@cccsaurora/howler-ui/models/entities/generated/Observable';
3
+ export declare const useType: (hit?: Hit | Observable, field?: string, value?: string) => any;
package/tests/mocks.d.ts CHANGED
@@ -7,7 +7,17 @@ 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: () => void;
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
+ };
11
21
  /**
12
22
  * Sets up a mock localStorage instance
13
23
  */
package/tests/mocks.js CHANGED
@@ -31,15 +31,20 @@ 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
- 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
- }));
34
+ vi.mock('react-router-dom', async () => {
35
+ const actual = await vi.importActual('react-router-dom');
36
+ return {
37
+ ...actual,
38
+ Link: forwardRef(({ to, children, ...props }, ref) => (_jsx("a", { ref: ref, href: to, ...props, children: children }))),
39
+ useLocation: vi.fn(() => mockLocation),
40
+ useParams: vi.fn(() => mockParams),
41
+ useSearchParams: vi.fn(() => [mockSearchParams, mockSetParams]),
42
+ useNavigate: () => vi.fn()
43
+ };
44
+ });
41
45
  });
42
46
  afterAll(() => vi.resetModules());
47
+ return { mockSearchParams, mockSetParams, mockLocation, mockParams };
43
48
  };
44
49
  /**
45
50
  * Sets up a mock localStorage instance