@cccsaurora/howler-ui 2.19.0-dev.842 → 2.19.0-dev.897

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 (328) hide show
  1. package/api/index.d.ts +0 -4
  2. package/api/index.js +2 -10
  3. package/api/search/facet/hit.d.ts +3 -1
  4. package/api/search/facet/index.d.ts +1 -3
  5. package/api/search/index.d.ts +1 -2
  6. package/api/search/index.js +1 -2
  7. package/commons/components/leftnav/LeftNavDrawer.js +1 -1
  8. package/components/app/App.js +8 -41
  9. package/components/app/hooks/useMatchers.d.ts +1 -1
  10. package/components/app/hooks/useMatchers.js +11 -23
  11. package/components/app/hooks/useMatchers.test.js +22 -22
  12. package/components/app/hooks/useTitle.js +5 -5
  13. package/components/app/providers/FavouritesProvider.js +2 -2
  14. package/components/app/providers/HitProvider.d.ts +22 -0
  15. package/components/app/providers/{RecordProvider.js → HitProvider.js} +41 -41
  16. package/components/app/providers/{RecordSearchProvider.d.ts → HitSearchProvider.d.ts} +6 -6
  17. package/components/app/providers/{RecordSearchProvider.js → HitSearchProvider.js} +17 -12
  18. package/components/app/providers/{RecordSearchProvider.test.js → HitSearchProvider.test.js} +71 -52
  19. package/components/app/providers/ModalProvider.d.ts +0 -1
  20. package/components/app/providers/ParameterProvider.d.ts +2 -9
  21. package/components/app/providers/ParameterProvider.js +240 -165
  22. package/components/app/providers/ParameterProvider.test.js +94 -346
  23. package/components/app/providers/SocketProvider.d.ts +2 -11
  24. package/components/app/providers/SocketProvider.js +5 -18
  25. package/components/app/providers/UserListProvider.js +8 -28
  26. package/components/elements/PluginTypography.d.ts +1 -2
  27. package/components/elements/PluginTypography.js +2 -3
  28. package/components/elements/UserList.d.ts +2 -5
  29. package/components/elements/UserList.js +8 -18
  30. package/components/elements/addons/search/phrase/Phrase.js +1 -1
  31. package/components/elements/display/ChipPopper.d.ts +1 -1
  32. package/components/elements/display/ChipPopper.js +5 -5
  33. package/components/elements/display/HowlerCard.js +1 -1
  34. package/components/elements/display/Modal.js +0 -2
  35. package/components/elements/display/icons/BundleButton.d.ts +6 -0
  36. package/components/elements/display/icons/BundleButton.js +32 -0
  37. package/components/elements/hit/HitActions.js +4 -4
  38. package/components/elements/hit/HitBanner.d.ts +0 -1
  39. package/components/elements/hit/HitBanner.js +47 -29
  40. package/components/elements/hit/HitCard.d.ts +0 -2
  41. package/components/elements/hit/HitCard.js +7 -7
  42. package/components/elements/{record/RecordComments.d.ts → hit/HitComments.d.ts} +4 -5
  43. package/components/elements/{record/RecordComments.js → hit/HitComments.js} +28 -29
  44. package/components/elements/{ObjectDetails.js → hit/HitDetails.js} +17 -17
  45. package/components/elements/hit/HitLabels.js +2 -2
  46. package/components/elements/hit/HitOutline.d.ts +0 -1
  47. package/components/elements/hit/HitOutline.js +3 -3
  48. package/components/elements/hit/{HitPreview.d.ts → HitQuickSearch.d.ts} +3 -3
  49. package/components/elements/hit/{HitPreview.js → HitQuickSearch.js} +4 -10
  50. package/components/elements/hit/HitRelated.d.ts +6 -0
  51. package/components/elements/hit/HitRelated.js +7 -0
  52. package/components/elements/hit/HitSummary.d.ts +1 -2
  53. package/components/elements/hit/HitSummary.js +5 -6
  54. package/components/elements/{record/RecordWorklog.d.ts → hit/HitWorklog.d.ts} +3 -4
  55. package/components/elements/{record/RecordWorklog.js → hit/HitWorklog.js} +13 -15
  56. package/components/elements/hit/aggregate/HitGraph.js +8 -8
  57. package/components/elements/hit/elements/Assigned.js +3 -6
  58. package/components/elements/hit/outlines/DefaultOutline.js +1 -1
  59. package/components/elements/view/ViewTitle.d.ts +0 -1
  60. package/components/elements/view/ViewTitle.js +2 -9
  61. package/components/hooks/useHitActions.d.ts +1 -1
  62. package/components/hooks/useHitActions.js +4 -4
  63. package/components/hooks/{useRecordSelection.d.ts → useHitSelection.d.ts} +2 -2
  64. package/components/hooks/{useRecordSelection.js → useHitSelection.js} +33 -12
  65. package/components/hooks/useMyPreferences.js +1 -10
  66. package/components/hooks/useMySearch.js +2 -2
  67. package/components/hooks/useMySitemap.js +1 -4
  68. package/components/hooks/useMyTheme.js +2 -9
  69. package/components/routes/action/edit/ActionEditor.js +2 -2
  70. package/components/routes/action/view/ActionSearch.js +1 -1
  71. package/components/routes/advanced/QueryBuilder.js +1 -1
  72. package/components/routes/advanced/QueryEditor.js +3 -3
  73. package/components/routes/advanced/historyCompletionProvider.js +3 -3
  74. package/components/routes/analytics/AnalyticDetails.js +2 -2
  75. package/components/routes/analytics/AnalyticSearch.js +1 -1
  76. package/components/routes/dossiers/DossierEditor.js +2 -2
  77. package/components/routes/dossiers/DossierEditor.test.js +1 -1
  78. package/components/routes/help/ApiDocumentation.js +1 -1
  79. package/components/routes/help/BundleDocumentation.d.ts +3 -0
  80. package/components/routes/help/BundleDocumentation.js +12 -0
  81. package/components/routes/help/HitBannerDocumentation.js +0 -1
  82. package/components/routes/help/HitDocumentation.js +3 -1
  83. package/components/routes/help/markdown/en/bundles.md.js +1 -0
  84. package/components/routes/help/markdown/fr/bundles.md.js +1 -0
  85. package/components/routes/hits/search/BundleParentMenu.d.ts +6 -0
  86. package/components/routes/hits/search/BundleParentMenu.js +32 -0
  87. package/components/routes/hits/search/BundleScroller.d.ts +2 -0
  88. package/components/routes/hits/search/BundleScroller.js +6 -0
  89. package/components/routes/hits/search/{RecordBrowser.js → HitBrowser.js} +9 -9
  90. package/components/{elements/record/RecordContextMenu.d.ts → routes/hits/search/HitContextMenu.d.ts} +3 -3
  91. package/components/routes/hits/search/HitContextMenu.js +239 -0
  92. package/components/{elements/record/RecordContextMenu.test.js → routes/hits/search/HitContextMenu.test.js} +43 -98
  93. package/components/routes/hits/search/{RecordQuery.d.ts → HitQuery.d.ts} +2 -2
  94. package/components/routes/hits/search/{RecordQuery.js → HitQuery.js} +6 -6
  95. package/components/routes/hits/search/InformationPane.d.ts +0 -1
  96. package/components/routes/hits/search/InformationPane.js +63 -50
  97. package/components/routes/hits/search/LayoutSettings.js +3 -3
  98. package/components/routes/hits/search/QuerySettings.js +1 -2
  99. package/components/routes/hits/search/QuerySettings.test.js +9 -14
  100. package/components/routes/hits/search/SearchPane.js +49 -26
  101. package/components/routes/hits/search/ViewLink.js +3 -3
  102. package/components/routes/hits/search/ViewLink.test.js +8 -8
  103. package/components/routes/hits/search/grid/AddColumnModal.js +4 -5
  104. package/components/routes/hits/search/grid/EnhancedCell.d.ts +1 -2
  105. package/components/routes/hits/search/grid/EnhancedCell.js +2 -2
  106. package/components/routes/hits/search/grid/HitGrid.js +18 -20
  107. package/components/routes/hits/search/grid/{RecordRow.d.ts → HitRow.d.ts} +2 -3
  108. package/components/routes/hits/search/grid/{RecordRow.js → HitRow.js} +8 -10
  109. package/components/routes/hits/view/HitViewer.js +13 -12
  110. package/components/routes/home/ViewCard.js +41 -47
  111. package/components/{elements/MarkdownEditor.js → routes/overviews/OverviewEditor.js} +3 -3
  112. package/components/routes/overviews/OverviewViewer.js +2 -2
  113. package/components/routes/views/ViewComposer.js +19 -46
  114. package/locales/en/translation.json +3 -122
  115. package/locales/fr/translation.json +3 -120
  116. package/models/WithMetadata.d.ts +1 -2
  117. package/models/entities/generated/{ThreatEnrichment.d.ts → Enrichment.d.ts} +1 -1
  118. package/models/entities/generated/Hit.d.ts +0 -1
  119. package/models/entities/generated/Howler.d.ts +5 -0
  120. package/models/entities/generated/Rule.d.ts +9 -6
  121. package/models/entities/generated/Threat.d.ts +2 -2
  122. package/models/entities/generated/View.d.ts +0 -1
  123. package/package.json +121 -141
  124. package/plugins/clue/components/ClueTypography.js +2 -2
  125. package/plugins/clue/utils.d.ts +1 -2
  126. package/tests/mocks.d.ts +1 -11
  127. package/tests/mocks.js +7 -12
  128. package/tests/server-handlers.js +1 -6
  129. package/tests/utils.d.ts +0 -4
  130. package/tests/utils.js +0 -20
  131. package/utils/constants.d.ts +3 -4
  132. package/utils/constants.js +0 -6
  133. package/utils/hitFunctions.d.ts +1 -2
  134. package/utils/hitFunctions.js +4 -4
  135. package/utils/socketUtils.d.ts +0 -14
  136. package/utils/socketUtils.js +1 -17
  137. package/utils/viewUtils.js +0 -3
  138. package/api/search/case.d.ts +0 -4
  139. package/api/search/case.js +0 -8
  140. package/api/socket/index.d.ts +0 -3
  141. package/api/socket/index.js +0 -6
  142. package/api/socket/viewers.d.ts +0 -2
  143. package/api/socket/viewers.js +0 -8
  144. package/api/socket/viewers.test.js +0 -44
  145. package/api/v2/case/index.d.ts +0 -9
  146. package/api/v2/case/index.js +0 -21
  147. package/api/v2/case/items.d.ts +0 -6
  148. package/api/v2/case/items.js +0 -18
  149. package/api/v2/case/rules.d.ts +0 -6
  150. package/api/v2/case/rules.js +0 -18
  151. package/api/v2/index.d.ts +0 -4
  152. package/api/v2/index.js +0 -6
  153. package/api/v2/search/facet.d.ts +0 -3
  154. package/api/v2/search/facet.js +0 -12
  155. package/api/v2/search/index.d.ts +0 -5
  156. package/api/v2/search/index.js +0 -24
  157. package/components/app/providers/RecordProvider.d.ts +0 -23
  158. package/components/elements/ContextMenu.d.ts +0 -56
  159. package/components/elements/ContextMenu.js +0 -109
  160. package/components/elements/ContextMenu.test.d.ts +0 -1
  161. package/components/elements/ContextMenu.test.js +0 -215
  162. package/components/elements/ObjectDetails.d.ts +0 -6
  163. package/components/elements/case/CaseCard.d.ts +0 -12
  164. package/components/elements/case/CaseCard.js +0 -42
  165. package/components/elements/case/CasePreview.d.ts +0 -6
  166. package/components/elements/case/CasePreview.js +0 -17
  167. package/components/elements/case/StatusIcon.d.ts +0 -5
  168. package/components/elements/case/StatusIcon.js +0 -13
  169. package/components/elements/hit/elements/AnalyticLink.d.ts +0 -9
  170. package/components/elements/hit/elements/AnalyticLink.js +0 -22
  171. package/components/elements/hit/elements/Assigned.test.d.ts +0 -1
  172. package/components/elements/hit/elements/Assigned.test.js +0 -65
  173. package/components/elements/hit/related/RelatedRecords.js +0 -63
  174. package/components/elements/observable/ObservableCard.d.ts +0 -6
  175. package/components/elements/observable/ObservableCard.js +0 -22
  176. package/components/elements/observable/ObservablePreview.d.ts +0 -6
  177. package/components/elements/observable/ObservablePreview.js +0 -12
  178. package/components/elements/record/RecordContextMenu.js +0 -268
  179. package/components/elements/record/RecordContextMenu.test.d.ts +0 -1
  180. package/components/elements/record/RecordRelated.d.ts +0 -7
  181. package/components/elements/record/RecordRelated.js +0 -34
  182. package/components/hooks/useRelatedRecords.d.ts +0 -13
  183. package/components/hooks/useRelatedRecords.js +0 -32
  184. package/components/routes/cases/CaseViewer.d.ts +0 -2
  185. package/components/routes/cases/CaseViewer.js +0 -44
  186. package/components/routes/cases/CaseViewer.test.d.ts +0 -1
  187. package/components/routes/cases/CaseViewer.test.js +0 -133
  188. package/components/routes/cases/Cases.d.ts +0 -2
  189. package/components/routes/cases/Cases.js +0 -148
  190. package/components/routes/cases/constants.d.ts +0 -6
  191. package/components/routes/cases/constants.js +0 -6
  192. package/components/routes/cases/detail/AlertPanel.d.ts +0 -6
  193. package/components/routes/cases/detail/AlertPanel.js +0 -33
  194. package/components/routes/cases/detail/CaseAssets.d.ts +0 -11
  195. package/components/routes/cases/detail/CaseAssets.js +0 -104
  196. package/components/routes/cases/detail/CaseAssets.test.d.ts +0 -1
  197. package/components/routes/cases/detail/CaseAssets.test.js +0 -167
  198. package/components/routes/cases/detail/CaseDashboard.d.ts +0 -7
  199. package/components/routes/cases/detail/CaseDashboard.js +0 -66
  200. package/components/routes/cases/detail/CaseDetails.d.ts +0 -6
  201. package/components/routes/cases/detail/CaseDetails.js +0 -70
  202. package/components/routes/cases/detail/CaseOverview.d.ts +0 -7
  203. package/components/routes/cases/detail/CaseOverview.js +0 -43
  204. package/components/routes/cases/detail/CaseRules.d.ts +0 -7
  205. package/components/routes/cases/detail/CaseRules.js +0 -57
  206. package/components/routes/cases/detail/CaseRules.test.d.ts +0 -1
  207. package/components/routes/cases/detail/CaseRules.test.js +0 -221
  208. package/components/routes/cases/detail/CaseSidebar.d.ts +0 -8
  209. package/components/routes/cases/detail/CaseSidebar.js +0 -107
  210. package/components/routes/cases/detail/CaseSidebar.test.d.ts +0 -1
  211. package/components/routes/cases/detail/CaseSidebar.test.js +0 -266
  212. package/components/routes/cases/detail/CaseTask.d.ts +0 -11
  213. package/components/routes/cases/detail/CaseTask.js +0 -66
  214. package/components/routes/cases/detail/CaseTimeline.d.ts +0 -12
  215. package/components/routes/cases/detail/CaseTimeline.js +0 -106
  216. package/components/routes/cases/detail/CaseTimeline.test.d.ts +0 -1
  217. package/components/routes/cases/detail/CaseTimeline.test.js +0 -320
  218. package/components/routes/cases/detail/CreateRuleDialog.d.ts +0 -9
  219. package/components/routes/cases/detail/CreateRuleDialog.js +0 -163
  220. package/components/routes/cases/detail/CreateRuleDialog.test.d.ts +0 -1
  221. package/components/routes/cases/detail/CreateRuleDialog.test.js +0 -259
  222. package/components/routes/cases/detail/ItemPage.d.ts +0 -6
  223. package/components/routes/cases/detail/ItemPage.js +0 -95
  224. package/components/routes/cases/detail/RelatedCasePanel.d.ts +0 -6
  225. package/components/routes/cases/detail/RelatedCasePanel.js +0 -34
  226. package/components/routes/cases/detail/TaskPanel.d.ts +0 -7
  227. package/components/routes/cases/detail/TaskPanel.js +0 -52
  228. package/components/routes/cases/detail/aggregates/CaseAggregate.d.ts +0 -11
  229. package/components/routes/cases/detail/aggregates/CaseAggregate.js +0 -24
  230. package/components/routes/cases/detail/aggregates/SourceAggregate.d.ts +0 -6
  231. package/components/routes/cases/detail/aggregates/SourceAggregate.js +0 -26
  232. package/components/routes/cases/detail/assets/Asset.d.ts +0 -14
  233. package/components/routes/cases/detail/assets/Asset.js +0 -12
  234. package/components/routes/cases/detail/assets/Asset.test.d.ts +0 -1
  235. package/components/routes/cases/detail/assets/Asset.test.js +0 -72
  236. package/components/routes/cases/detail/sidebar/CaseFolder.d.ts +0 -20
  237. package/components/routes/cases/detail/sidebar/CaseFolder.js +0 -83
  238. package/components/routes/cases/detail/sidebar/CaseFolder.test.d.ts +0 -1
  239. package/components/routes/cases/detail/sidebar/CaseFolder.test.js +0 -295
  240. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.d.ts +0 -34
  241. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.js +0 -103
  242. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.d.ts +0 -1
  243. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.js +0 -363
  244. package/components/routes/cases/detail/sidebar/FolderEntry.d.ts +0 -25
  245. package/components/routes/cases/detail/sidebar/FolderEntry.js +0 -88
  246. package/components/routes/cases/detail/sidebar/FolderEntry.test.d.ts +0 -1
  247. package/components/routes/cases/detail/sidebar/FolderEntry.test.js +0 -206
  248. package/components/routes/cases/detail/sidebar/RootDropZone.d.ts +0 -5
  249. package/components/routes/cases/detail/sidebar/RootDropZone.js +0 -33
  250. package/components/routes/cases/detail/sidebar/types.d.ts +0 -9
  251. package/components/routes/cases/detail/sidebar/utils.d.ts +0 -3
  252. package/components/routes/cases/detail/sidebar/utils.js +0 -29
  253. package/components/routes/cases/detail/sidebar/utils.test.d.ts +0 -1
  254. package/components/routes/cases/detail/sidebar/utils.test.js +0 -82
  255. package/components/routes/cases/hooks/useCase.d.ts +0 -13
  256. package/components/routes/cases/hooks/useCase.js +0 -69
  257. package/components/routes/cases/hooks/useCase.test.d.ts +0 -1
  258. package/components/routes/cases/hooks/useCase.test.js +0 -141
  259. package/components/routes/cases/modals/AddToCaseModal.d.ts +0 -7
  260. package/components/routes/cases/modals/AddToCaseModal.js +0 -59
  261. package/components/routes/cases/modals/AddToCaseModal.test.d.ts +0 -1
  262. package/components/routes/cases/modals/AddToCaseModal.test.js +0 -313
  263. package/components/routes/cases/modals/CaseRecordRow.d.ts +0 -9
  264. package/components/routes/cases/modals/CaseRecordRow.js +0 -15
  265. package/components/routes/cases/modals/CreateCaseModal.d.ts +0 -7
  266. package/components/routes/cases/modals/CreateCaseModal.js +0 -55
  267. package/components/routes/cases/modals/CreateCaseModal.test.d.ts +0 -1
  268. package/components/routes/cases/modals/CreateCaseModal.test.js +0 -358
  269. package/components/routes/cases/modals/RenameItemModal.d.ts +0 -9
  270. package/components/routes/cases/modals/RenameItemModal.js +0 -48
  271. package/components/routes/cases/modals/ResolveModal.d.ts +0 -7
  272. package/components/routes/cases/modals/ResolveModal.js +0 -115
  273. package/components/routes/cases/modals/ResolveModal.test.d.ts +0 -1
  274. package/components/routes/cases/modals/ResolveModal.test.js +0 -394
  275. package/components/routes/cases/modals/hooks.d.ts +0 -7
  276. package/components/routes/cases/modals/hooks.js +0 -44
  277. package/components/routes/cases/modals/types.d.ts +0 -5
  278. package/components/routes/cases/search/CaseAssigneeFilter.d.ts +0 -6
  279. package/components/routes/cases/search/CaseAssigneeFilter.js +0 -33
  280. package/components/routes/cases/search/CaseAssigneeFilter.test.d.ts +0 -1
  281. package/components/routes/cases/search/CaseAssigneeFilter.test.js +0 -127
  282. package/components/routes/cases/search/CaseDateFilter.d.ts +0 -13
  283. package/components/routes/cases/search/CaseDateFilter.js +0 -26
  284. package/components/routes/cases/search/CaseDateFilter.test.d.ts +0 -1
  285. package/components/routes/cases/search/CaseDateFilter.test.js +0 -115
  286. package/components/routes/cases/search/CaseStatusFilter.d.ts +0 -6
  287. package/components/routes/cases/search/CaseStatusFilter.js +0 -13
  288. package/components/routes/cases/search/CaseStatusFilter.test.d.ts +0 -1
  289. package/components/routes/cases/search/CaseStatusFilter.test.js +0 -86
  290. package/components/routes/hits/search/shared/IndexPicker.d.ts +0 -2
  291. package/components/routes/hits/search/shared/IndexPicker.js +0 -20
  292. package/components/routes/observables/ObservableViewer.d.ts +0 -7
  293. package/components/routes/observables/ObservableViewer.js +0 -27
  294. package/models/entities/generated/AttachmentsFile.d.ts +0 -12
  295. package/models/entities/generated/Case.d.ts +0 -28
  296. package/models/entities/generated/DestinationOriginal.d.ts +0 -19
  297. package/models/entities/generated/EmailAttachment.d.ts +0 -8
  298. package/models/entities/generated/EmailParent.d.ts +0 -19
  299. package/models/entities/generated/Enrichments.d.ts +0 -7
  300. package/models/entities/generated/EnrichmentsIndicator.d.ts +0 -21
  301. package/models/entities/generated/HttpResponse.d.ts +0 -11
  302. package/models/entities/generated/Item.d.ts +0 -9
  303. package/models/entities/generated/Observable.d.ts +0 -85
  304. package/models/entities/generated/ObservableCloud.d.ts +0 -20
  305. package/models/entities/generated/ObservableDestination.d.ts +0 -23
  306. package/models/entities/generated/ObservableEmail.d.ts +0 -30
  307. package/models/entities/generated/ObservableFile.d.ts +0 -36
  308. package/models/entities/generated/ObservableHowler.d.ts +0 -42
  309. package/models/entities/generated/ObservableHttp.d.ts +0 -11
  310. package/models/entities/generated/ObservableObserver.d.ts +0 -21
  311. package/models/entities/generated/ObservableOrganization.d.ts +0 -7
  312. package/models/entities/generated/ObservableProcess.d.ts +0 -34
  313. package/models/entities/generated/ObservableSource.d.ts +0 -23
  314. package/models/entities/generated/ObservableThreat.d.ts +0 -21
  315. package/models/entities/generated/ObservableTls.d.ts +0 -12
  316. package/models/entities/generated/ObserverIngress.d.ts +0 -9
  317. package/models/entities/generated/Task.d.ts +0 -10
  318. package/models/socket/CaseUpdate.d.ts +0 -5
  319. package/models/socket/ViewersUpdate.d.ts +0 -4
  320. package/utils/socketUtils.test.d.ts +0 -1
  321. package/utils/socketUtils.test.js +0 -59
  322. package/utils/typeUtils.d.ts +0 -7
  323. package/utils/typeUtils.js +0 -27
  324. /package/{api/socket/viewers.test.d.ts → components/app/providers/HitSearchProvider.test.d.ts} +0 -0
  325. /package/components/elements/hit/{related/RelatedRecords.d.ts → HitDetails.d.ts} +0 -0
  326. /package/components/routes/hits/search/{RecordBrowser.d.ts → HitBrowser.d.ts} +0 -0
  327. /package/components/{app/providers/RecordSearchProvider.test.d.ts → routes/hits/search/HitContextMenu.test.d.ts} +0 -0
  328. /package/components/{elements/MarkdownEditor.d.ts → routes/overviews/OverviewEditor.d.ts} +0 -0
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { AvTimer } from '@mui/icons-material';
3
- import { Autocomplete, Stack, TextField, Typography } from '@mui/material';
4
- import { LocalizationProvider } from '@mui/x-date-pickers';
5
- import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
6
- import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
7
- import ChipPopper from '@cccsaurora/howler-ui/components/elements/display/ChipPopper';
8
- import { useTranslation } from 'react-i18next';
9
- import { DATE_RANGES } from '@cccsaurora/howler-ui/utils/constants';
10
- const CaseDateFilter = ({ dateRange, onChange, customStart, customEnd, onCustomStartChange, onCustomEndChange }) => {
11
- const { t } = useTranslation();
12
- return (_jsx(ChipPopper, { icon: _jsx(AvTimer, { fontSize: "small" }), label: _jsx(Typography, { variant: "body2", children: dateRange === 'date.range.all'
13
- ? t('route.cases.filter.date')
14
- : dateRange === 'date.range.custom'
15
- ? `${customStart.format('YYYY-MM-DD')} ${t('to')} ${customEnd.format('YYYY-MM-DD')}`
16
- : t(dateRange) }), minWidth: "225px", slotProps: { chip: { size: 'small', color: dateRange !== 'date.range.all' ? 'primary' : 'default' } }, children: _jsxs(Stack, { spacing: 1, children: [_jsx(Autocomplete, { size: "small", value: dateRange, options: [...DATE_RANGES], getOptionLabel: o => t(o), disableClearable: true, onChange: (_, nv) => onChange(nv), renderInput: params => _jsx(TextField, { ...params, label: t('route.cases.filter.date') }) }), dateRange === 'date.range.custom' && (_jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: _jsxs(Stack, { direction: "row", spacing: 1, useFlexGap: true, flexWrap: "wrap", children: [_jsx(DateTimePicker, { sx: { minWidth: '175px', flexGrow: 1 }, slotProps: { textField: { size: 'small' } }, label: t('date.select.start'), value: customStart, maxDate: customEnd, onChange: nv => {
17
- if (nv) {
18
- onCustomStartChange(nv);
19
- }
20
- }, ampm: false, disableFuture: true }), _jsx(DateTimePicker, { sx: { minWidth: '175px', flexGrow: 1 }, slotProps: { textField: { size: 'small' } }, label: t('date.select.end'), value: customEnd, minDate: customStart, onChange: nv => {
21
- if (nv) {
22
- onCustomEndChange(nv);
23
- }
24
- }, ampm: false, disableFuture: true })] }) }))] }) }));
25
- };
26
- export default CaseDateFilter;
@@ -1,115 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /// <reference types="vitest" />
3
- import { render, screen, waitFor } from '@testing-library/react';
4
- import userEvent, {} from '@testing-library/user-event';
5
- import dayjs from 'dayjs';
6
- import i18n from '@cccsaurora/howler-ui/i18n';
7
- import { I18nextProvider } from 'react-i18next';
8
- import { beforeEach, describe, expect, it, vi } from 'vitest';
9
- import CaseDateFilter from './CaseDateFilter';
10
- globalThis.IS_REACT_ACT_ENVIRONMENT = true;
11
- // ---------------------------------------------------------------------------
12
- // Stub the date pickers so jsdom doesn't choke on them
13
- // ---------------------------------------------------------------------------
14
- vi.mock('@mui/x-date-pickers/DateTimePicker', () => ({
15
- DateTimePicker: ({ label, onChange }) => (_jsx("button", { id: `picker-${label}`, onClick: () => onChange(dayjs('2025-06-01')), children: label }))
16
- }));
17
- // ---------------------------------------------------------------------------
18
- // Wrapper / render helper
19
- // ---------------------------------------------------------------------------
20
- const FIXED_START = dayjs('2025-01-01');
21
- const FIXED_END = dayjs('2025-03-01');
22
- const Wrapper = ({ children }) => _jsx(I18nextProvider, { i18n: i18n, children: children });
23
- const renderFilter = ({ dateRange = 'date.range.all', onChange = vi.fn(), onCustomStartChange = vi.fn(), onCustomEndChange = vi.fn() } = {}) => render(_jsx(CaseDateFilter, { dateRange: dateRange, onChange: onChange, customStart: FIXED_START, customEnd: FIXED_END, onCustomStartChange: onCustomStartChange, onCustomEndChange: onCustomEndChange }), { wrapper: Wrapper });
24
- const openPopper = async (user) => {
25
- // The chip label varies; find the chip by the AvTimer icon's sibling
26
- const chip = document.querySelector('.MuiChip-root');
27
- await user.click(chip);
28
- await waitFor(() => {
29
- expect(screen.getByRole('combobox')).toBeInTheDocument();
30
- });
31
- };
32
- // ---------------------------------------------------------------------------
33
- // Tests
34
- // ---------------------------------------------------------------------------
35
- describe('CaseDateFilter', () => {
36
- let user;
37
- beforeEach(() => {
38
- user = userEvent.setup();
39
- vi.clearAllMocks();
40
- });
41
- describe('label', () => {
42
- it('shows "Date Range" label when date.range.all is selected', () => {
43
- renderFilter({ dateRange: 'date.range.all' });
44
- expect(screen.getByText(i18n.t('route.cases.filter.date'))).toBeInTheDocument();
45
- });
46
- it('shows the translated range label for a non-all preset', () => {
47
- renderFilter({ dateRange: 'date.range.1.week' });
48
- expect(screen.getByText(i18n.t('date.range.1.week'))).toBeInTheDocument();
49
- });
50
- it('shows formatted start/end dates for the custom range', () => {
51
- renderFilter({ dateRange: 'date.range.custom' });
52
- const expected = `${FIXED_START.format('YYYY-MM-DD')} ${i18n.t('to')} ${FIXED_END.format('YYYY-MM-DD')}`;
53
- expect(screen.getByText(expected)).toBeInTheDocument();
54
- });
55
- });
56
- describe('chip color', () => {
57
- it('uses default color for date.range.all', () => {
58
- renderFilter({ dateRange: 'date.range.all' });
59
- const chip = document.querySelector('.MuiChip-root');
60
- expect(chip).not.toHaveClass('MuiChip-colorPrimary');
61
- });
62
- it('uses primary color for any non-all range', () => {
63
- renderFilter({ dateRange: 'date.range.1.day' });
64
- const chip = document.querySelector('.MuiChip-root');
65
- expect(chip).toHaveClass('MuiChip-colorPrimary');
66
- });
67
- });
68
- describe('popper content', () => {
69
- it('does not show the autocomplete before the chip is clicked', () => {
70
- renderFilter();
71
- expect(screen.queryByRole('combobox')).toBeNull();
72
- });
73
- it('shows the range autocomplete after the chip is clicked', async () => {
74
- renderFilter();
75
- await openPopper(user);
76
- expect(screen.getByRole('combobox')).toBeInTheDocument();
77
- });
78
- it('does not show date pickers when a preset (non-custom) range is active', async () => {
79
- renderFilter({ dateRange: 'date.range.1.day' });
80
- await openPopper(user);
81
- expect(screen.queryByTestId(`picker-${i18n.t('date.select.start')}`)).toBeNull();
82
- });
83
- it('shows start and end date pickers when custom range is active', async () => {
84
- renderFilter({ dateRange: 'date.range.custom' });
85
- await openPopper(user);
86
- expect(screen.getByTestId(`picker-${i18n.t('date.select.start')}`)).toBeInTheDocument();
87
- expect(screen.getByTestId(`picker-${i18n.t('date.select.end')}`)).toBeInTheDocument();
88
- });
89
- });
90
- describe('interactions', () => {
91
- it('calls onChange when a range option is selected from the autocomplete', async () => {
92
- const onChange = vi.fn();
93
- renderFilter({ dateRange: 'date.range.all', onChange });
94
- await openPopper(user);
95
- await user.click(screen.getByRole('combobox'));
96
- const option = await screen.findByRole('option', { name: i18n.t('date.range.1.week') });
97
- await user.click(option);
98
- expect(onChange).toHaveBeenCalledWith('date.range.1.week');
99
- });
100
- it('calls onCustomStartChange when the start date picker fires', async () => {
101
- const onCustomStartChange = vi.fn();
102
- renderFilter({ dateRange: 'date.range.custom', onCustomStartChange });
103
- await openPopper(user);
104
- await user.click(screen.getByTestId(`picker-${i18n.t('date.select.start')}`));
105
- expect(onCustomStartChange).toHaveBeenCalledWith(dayjs('2025-06-01'));
106
- });
107
- it('calls onCustomEndChange when the end date picker fires', async () => {
108
- const onCustomEndChange = vi.fn();
109
- renderFilter({ dateRange: 'date.range.custom', onCustomEndChange });
110
- await openPopper(user);
111
- await user.click(screen.getByTestId(`picker-${i18n.t('date.select.end')}`));
112
- expect(onCustomEndChange).toHaveBeenCalledWith(dayjs('2025-06-01'));
113
- });
114
- });
115
- });
@@ -1,6 +0,0 @@
1
- import type { FC } from 'react';
2
- declare const CaseStatusFilter: FC<{
3
- statusFilter: string[];
4
- onChange: (v: string[]) => void;
5
- }>;
6
- export default CaseStatusFilter;
@@ -1,13 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { FilterList } from '@mui/icons-material';
3
- import { ToggleButton, ToggleButtonGroup, Typography } from '@mui/material';
4
- import ChipPopper from '@cccsaurora/howler-ui/components/elements/display/ChipPopper';
5
- import { useTranslation } from 'react-i18next';
6
- import { CASE_STATUSES } from '../constants';
7
- const CaseStatusFilter = ({ statusFilter, onChange }) => {
8
- const { t } = useTranslation();
9
- return (_jsx(ChipPopper, { icon: _jsx(FilterList, { fontSize: "small" }), label: _jsx(Typography, { variant: "body2", children: statusFilter.length === 0
10
- ? t('route.cases.filter.status')
11
- : statusFilter.map(s => t(`page.cases.status.${s}`)).join(', ') }), minWidth: "200px", slotProps: { chip: { size: 'small', color: statusFilter.length > 0 ? 'primary' : 'default' } }, children: _jsx(ToggleButtonGroup, { value: statusFilter, onChange: (_, nv) => onChange(nv), size: "small", orientation: "vertical", sx: { width: '100%' }, children: CASE_STATUSES.map(s => (_jsx(ToggleButton, { value: s, sx: { justifyContent: 'flex-start' }, children: t(`page.cases.status.${s}`) }, s))) }) }));
12
- };
13
- export default CaseStatusFilter;
@@ -1,86 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /// <reference types="vitest" />
3
- import { render, screen, waitFor } from '@testing-library/react';
4
- import userEvent, {} from '@testing-library/user-event';
5
- import i18n from '@cccsaurora/howler-ui/i18n';
6
- import { I18nextProvider } from 'react-i18next';
7
- import { beforeEach, describe, expect, it, vi } from 'vitest';
8
- import CaseStatusFilter from './CaseStatusFilter';
9
- globalThis.IS_REACT_ACT_ENVIRONMENT = true;
10
- const Wrapper = ({ children }) => _jsx(I18nextProvider, { i18n: i18n, children: children });
11
- const renderFilter = (statusFilter, onChange = vi.fn()) => render(_jsx(CaseStatusFilter, { statusFilter: statusFilter, onChange: onChange }), { wrapper: Wrapper });
12
- const openPopper = async (user) => {
13
- const chip = screen.getByText(i18n.t('route.cases.filter.status')).closest('.MuiChip-root');
14
- await user.click(chip);
15
- await waitFor(() => {
16
- expect(screen.getByRole('group')).toBeInTheDocument();
17
- });
18
- };
19
- describe('CaseStatusFilter', () => {
20
- let user;
21
- beforeEach(() => {
22
- user = userEvent.setup();
23
- vi.clearAllMocks();
24
- });
25
- describe('label', () => {
26
- it('shows the default "Status" label when no statuses are selected', () => {
27
- renderFilter([]);
28
- expect(screen.getByText(i18n.t('route.cases.filter.status'))).toBeInTheDocument();
29
- });
30
- it('shows a comma-separated list of status labels when statuses are selected', () => {
31
- renderFilter(['open', 'on-hold']);
32
- const expected = [i18n.t('page.cases.status.open'), i18n.t('page.cases.status.on-hold')].join(', ');
33
- expect(screen.getByText(expected)).toBeInTheDocument();
34
- });
35
- it('shows a single status label when one status is selected', () => {
36
- renderFilter(['resolved']);
37
- expect(screen.getByText(i18n.t('page.cases.status.resolved'))).toBeInTheDocument();
38
- });
39
- });
40
- describe('chip color', () => {
41
- it('uses default color when no statuses are selected', () => {
42
- renderFilter([]);
43
- const chip = screen.getByText(i18n.t('route.cases.filter.status')).closest('.MuiChip-root');
44
- expect(chip).not.toHaveClass('MuiChip-colorPrimary');
45
- });
46
- it('uses primary color when statuses are selected', () => {
47
- renderFilter(['open']);
48
- const chip = screen.getByText(i18n.t('page.cases.status.open')).closest('.MuiChip-root');
49
- expect(chip).toHaveClass('MuiChip-colorPrimary');
50
- });
51
- });
52
- describe('popper content', () => {
53
- it('does not show toggle buttons before the chip is clicked', () => {
54
- renderFilter([]);
55
- expect(screen.queryByRole('group')).toBeNull();
56
- });
57
- it('shows all four status toggle buttons when the chip is clicked', async () => {
58
- renderFilter([]);
59
- await openPopper(user);
60
- expect(screen.getByText(i18n.t('page.cases.status.open'))).toBeInTheDocument();
61
- expect(screen.getByText(i18n.t('page.cases.status.in-progress'))).toBeInTheDocument();
62
- expect(screen.getByText(i18n.t('page.cases.status.on-hold'))).toBeInTheDocument();
63
- expect(screen.getByText(i18n.t('page.cases.status.resolved'))).toBeInTheDocument();
64
- });
65
- });
66
- describe('interactions', () => {
67
- it('calls onChange when a toggle button is clicked', async () => {
68
- const onChange = vi.fn();
69
- renderFilter([], onChange);
70
- await openPopper(user);
71
- await user.click(screen.getByText(i18n.t('page.cases.status.open')));
72
- expect(onChange).toHaveBeenCalledWith(['open']);
73
- });
74
- it('calls onChange with empty array when the only selected status is deselected', async () => {
75
- const onChange = vi.fn();
76
- renderFilter(['open'], onChange);
77
- const chip = screen.getByText(i18n.t('page.cases.status.open')).closest('.MuiChip-root');
78
- await user.click(chip);
79
- await waitFor(() => {
80
- expect(screen.getByRole('group')).toBeInTheDocument();
81
- });
82
- await user.click(screen.getAllByText(i18n.t('page.cases.status.open'))[1]);
83
- expect(onChange).toHaveBeenCalledWith([]);
84
- });
85
- });
86
- });
@@ -1,2 +0,0 @@
1
- declare const _default: import("react").NamedExoticComponent<{}>;
2
- export default _default;
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { FilterList } from '@mui/icons-material';
3
- import { Autocomplete, TextField } from '@mui/material';
4
- import { ParameterContext } from '@cccsaurora/howler-ui/components/app/providers/ParameterProvider';
5
- import ChipPopper from '@cccsaurora/howler-ui/components/elements/display/ChipPopper';
6
- import { memo } from 'react';
7
- import { useTranslation } from 'react-i18next';
8
- import { useContextSelector } from 'use-context-selector';
9
- const FILTER_OPTIONS = [
10
- { label: 'hit.search.index.hit', value: 'hit' },
11
- { label: 'hit.search.index.observable', value: 'observable' }
12
- ];
13
- const IndexPicker = () => {
14
- const { t } = useTranslation();
15
- const indexes = useContextSelector(ParameterContext, ctx => ctx.indexes);
16
- const setIndexes = useContextSelector(ParameterContext, ctx => ctx.setIndexes);
17
- const selectedOptions = FILTER_OPTIONS.filter(opt => indexes.includes(opt.value));
18
- return (_jsx(ChipPopper, { icon: _jsx(FilterList, { fontSize: "small" }), label: selectedOptions.map(opt => t(opt.label)).join(', '), minWidth: "225px", slotProps: { chip: { size: 'small' } }, children: _jsx(Autocomplete, { size: "small", multiple: true, options: FILTER_OPTIONS, value: selectedOptions, onChange: (_ev, values) => values.length > 0 && setIndexes(values.map(val => val.value)), isOptionEqualToValue: (opt, val) => opt.value === val.value, getOptionLabel: opt => t(opt.label), renderInput: params => _jsx(TextField, { ...params }) }) }));
19
- };
20
- export default memo(IndexPicker);
@@ -1,7 +0,0 @@
1
- import type { Observable } from '@cccsaurora/howler-ui/models/entities/generated/Observable';
2
- import { type FC } from 'react';
3
- declare const ObservableViewer: FC<{
4
- observable?: Observable;
5
- observableId?: string;
6
- }>;
7
- export default ObservableViewer;
@@ -1,27 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Box, Skeleton } from '@mui/material';
3
- import api from '@cccsaurora/howler-ui/api';
4
- import ObjectDetails from '@cccsaurora/howler-ui/components/elements/ObjectDetails';
5
- import useMyApi from '@cccsaurora/howler-ui/components/hooks/useMyApi';
6
- import { useEffect, useState } from 'react';
7
- const ObservableViewer = ({ observable: provided, observableId }) => {
8
- const { dispatchApi } = useMyApi();
9
- const [observable, setObservable] = useState(null);
10
- useEffect(() => {
11
- if (provided) {
12
- setObservable(provided);
13
- }
14
- }, [provided]);
15
- useEffect(() => {
16
- if (observableId) {
17
- dispatchApi(api.v2.search.post('observable', { query: `howler.id:${observableId}`, rows: 1 }), {
18
- throwError: false
19
- }).then(res => setObservable(res.items[0]));
20
- }
21
- }, [dispatchApi, observableId]);
22
- if (!observable) {
23
- return;
24
- }
25
- return _jsx(Box, { p: 1, children: observable ? _jsx(ObjectDetails, { obj: observable }) : _jsx(Skeleton, { height: 120 }) });
26
- };
27
- export default ObservableViewer;
@@ -1,12 +0,0 @@
1
- import type { FileHash } from './FileHash';
2
-
3
- /**
4
- * NOTE: This is an auto-generated file. Don't edit this manually.
5
- */
6
- export interface AttachmentsFile {
7
- extension?: string;
8
- hash?: FileHash;
9
- mime_type?: string;
10
- name?: string;
11
- size?: number;
12
- }
@@ -1,28 +0,0 @@
1
- import type { Enrichments } from './Enrichments';
2
- import type { Item } from './Item';
3
- import type { Rule } from './Rule';
4
- import type { Task } from './Task';
5
-
6
- /**
7
- * NOTE: This is an auto-generated file. Don't edit this manually.
8
- */
9
- export interface Case {
10
- case_id?: string;
11
- created?: string;
12
- end?: string;
13
- enrichments?: Enrichments;
14
- escalation?: string;
15
- indicators?: string[];
16
- items?: Item[];
17
- overview?: string;
18
- participants?: string[];
19
- rules?: Rule[];
20
- status?: string;
21
- start?: string;
22
- summary?: string;
23
- targets?: string[];
24
- tasks?: Task[];
25
- threats?: string[];
26
- title?: string;
27
- updated?: string;
28
- }
@@ -1,19 +0,0 @@
1
- import type { AutonomousSystems } from './AutonomousSystems';
2
- import type { Geo } from './Geo';
3
- import type { Nat } from './Nat';
4
-
5
- /**
6
- * NOTE: This is an auto-generated file. Don't edit this manually.
7
- */
8
- export interface DestinationOriginal {
9
- address?: string;
10
- autonomous_systems?: AutonomousSystems;
11
- bytes?: number;
12
- domain?: string;
13
- geo?: Geo;
14
- ip?: string;
15
- mac?: string;
16
- nat?: Nat;
17
- packets?: number;
18
- port?: number;
19
- }
@@ -1,8 +0,0 @@
1
- import type { AttachmentsFile } from './AttachmentsFile';
2
-
3
- /**
4
- * NOTE: This is an auto-generated file. Don't edit this manually.
5
- */
6
- export interface EmailAttachment {
7
- file?: AttachmentsFile;
8
- }
@@ -1,19 +0,0 @@
1
- import type { Bcc } from './Bcc';
2
- import type { Cc } from './Cc';
3
- import type { From } from './From';
4
- import type { To } from './To';
5
-
6
- /**
7
- * NOTE: This is an auto-generated file. Don't edit this manually.
8
- */
9
- export interface EmailParent {
10
- bcc?: Bcc;
11
- cc?: Cc;
12
- destination?: string;
13
- from?: From;
14
- message_id?: string;
15
- origination_timestamp?: string;
16
- source?: string;
17
- subject?: string;
18
- to?: To;
19
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * NOTE: This is an auto-generated file. Don't edit this manually.
3
- */
4
- export interface Enrichments {
5
- annotations?: string;
6
- path?: string;
7
- }
@@ -1,21 +0,0 @@
1
- import type { IndicatorEmail } from './IndicatorEmail';
2
- import type { IndicatorFile } from './IndicatorFile';
3
-
4
- /**
5
- * NOTE: This is an auto-generated file. Don't edit this manually.
6
- */
7
- export interface EnrichmentsIndicator {
8
- confidence?: string;
9
- description?: string;
10
- email?: IndicatorEmail;
11
- file?: IndicatorFile;
12
- first_seen?: string;
13
- ip?: string;
14
- last_seen?: string;
15
- port?: number;
16
- provider?: string;
17
- reference?: string;
18
- scanner_stats?: number;
19
- sightings?: number;
20
- type?: string;
21
- }
@@ -1,11 +0,0 @@
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
- }
@@ -1,9 +0,0 @@
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
- }
@@ -1,85 +0,0 @@
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
- }
@@ -1,20 +0,0 @@
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
- }
@@ -1,23 +0,0 @@
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
- }
@@ -1,30 +0,0 @@
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
- }