@oneuptime/common 12.0.23 → 12.0.24

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 (294) hide show
  1. package/Models/DatabaseModels/DetectionRule.ts +55 -0
  2. package/Models/DatabaseModels/NetworkDeviceAutoImportRule.ts +27 -7
  3. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +67 -0
  4. package/Models/DatabaseModels/Project.ts +68 -0
  5. package/Models/DatabaseModels/User.ts +68 -0
  6. package/Server/API/TelemetryAPI.ts +29 -0
  7. package/Server/Infrastructure/Postgres/SchemaMigrations/1789400000000-AddNameToNetworkDeviceDiscoveryScan.ts +28 -0
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/1789500000000-AddCampaignUtmFields.ts +49 -0
  9. package/Server/Infrastructure/Postgres/SchemaMigrations/1789512000000-AddDetectionRuleDistinctCountColumns.ts +33 -0
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  11. package/Server/Middleware/GzipRequestBody.ts +311 -0
  12. package/Server/Middleware/MultipartFormData.ts +87 -3
  13. package/Server/Services/DetectionRuleService.ts +73 -6
  14. package/Server/Services/Index.ts +205 -0
  15. package/Server/Services/NetworkDeviceDiscoveryScanService.ts +59 -0
  16. package/Server/Services/NetworkDeviceService.ts +148 -0
  17. package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +65 -0
  18. package/Server/Services/OnCallDutyPolicyFeedService.ts +1 -1
  19. package/Server/Services/ProjectService.ts +29 -19
  20. package/Server/Services/SecurityEventService.ts +90 -13
  21. package/Server/Services/StatusPageResourceService.ts +223 -0
  22. package/Server/Services/TelemetryAttributeService.ts +17 -0
  23. package/Server/Services/UserService.ts +4 -6
  24. package/Server/Types/Markdown.ts +161 -67
  25. package/Server/Utils/AI/Toolbox/OnCallTools.ts +12 -4
  26. package/Server/Utils/AnalyticsDatabase/Statement.ts +13 -1
  27. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +297 -6
  28. package/Server/Utils/Attribution.ts +4 -0
  29. package/Server/Utils/Marketing/MarketingEventUtil.ts +45 -7
  30. package/Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts +55 -3
  31. package/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.ts +21 -0
  32. package/Server/Utils/StartServer.ts +12 -32
  33. package/Server/Utils/Telemetry/LlmCostBudgetEvaluator.ts +101 -4
  34. package/Server/Utils/Telemetry/LlmMetricSpend.ts +130 -0
  35. package/Server/Views/Partials/AnalyticsConsent.ejs +159 -102
  36. package/Server/Views/Partials/Head.ejs +2 -1
  37. package/Tests/App/Dashboard/AdminUserNotificationMethodsPage.test.tsx +776 -38
  38. package/Tests/App/Dashboard/CorrelateFilterBuilder.test.tsx +359 -0
  39. package/Tests/App/Dashboard/CorrelateGraph.test.tsx +865 -0
  40. package/Tests/App/Dashboard/CorrelationGraph.test.ts +346 -0
  41. package/Tests/App/Dashboard/CriteriaFilterConditionDropdown.test.tsx +256 -0
  42. package/Tests/App/Dashboard/CriteriaFilterDefaults.test.ts +738 -0
  43. package/Tests/App/Dashboard/CriteriaFilterMonitorTypeChange.test.ts +1122 -0
  44. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +283 -0
  45. package/Tests/App/Dashboard/ExternalStatusPageCriteriaFilter.test.ts +407 -0
  46. package/Tests/App/Dashboard/MetricSeriesInvestigateMenu.test.tsx +5 -14
  47. package/Tests/App/Dashboard/MonitorCriteriaActionToggles.test.tsx +426 -0
  48. package/Tests/App/Dashboard/MonitorStepsCriteriaAlignmentWiring.test.tsx +352 -0
  49. package/Tests/App/Dashboard/OnCallLayerCardOverrides.test.tsx +278 -0
  50. package/Tests/App/Dashboard/OnCallLayerShiftPreviewOverrides.test.ts +237 -0
  51. package/Tests/App/Dashboard/OnCallReadinessSurfaces.test.tsx +2 -2
  52. package/Tests/App/Dashboard/OnCallSchedulePreviewOverrides.test.tsx +460 -0
  53. package/Tests/App/Dashboard/SecurityEventAttributeUtil.test.ts +171 -0
  54. package/Tests/App/Dashboard/SecurityEventCorrelation.test.ts +857 -0
  55. package/Tests/App/Dashboard/SecurityEventDetailObservables.test.tsx +194 -0
  56. package/Tests/App/Dashboard/SecurityEventsDetectionRulesPage.test.tsx +124 -0
  57. package/Tests/App/Dashboard/SecurityEventsMonitorStepForm.test.tsx +79 -19
  58. package/Tests/App/Dashboard/SecurityEventsTableColumns.test.tsx +382 -0
  59. package/Tests/App/StatusPage/BulkAddStatusPageMonitors.test.ts +216 -0
  60. package/Tests/App/StatusPage/BulkAddStatusPageMonitorsModal.test.tsx +590 -11
  61. package/Tests/App/StatusPage/StatusPageResourceExplorer.test.tsx +757 -0
  62. package/Tests/Models/DiscoveryScanNameColumn.test.ts +293 -0
  63. package/Tests/Server/API/SecurityEventAttributesAPI.test.ts +564 -0
  64. package/Tests/Server/Infrastructure/Postgres/SchemaMigrationsOrdering.test.ts +120 -4
  65. package/Tests/Server/Middleware/GzipRequestBody.test.ts +725 -0
  66. package/Tests/Server/Middleware/MultipartFormData.test.ts +298 -0
  67. package/Tests/Server/Services/AddDetectionRuleDistinctCountColumnsMigration.test.ts +311 -0
  68. package/Tests/Server/Services/DetectionRuleService.test.ts +134 -2
  69. package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +7 -1
  70. package/Tests/Server/Services/FeedRetentionConsistency.test.ts +131 -0
  71. package/Tests/Server/Services/NetworkDeviceDiscoveryScanService.test.ts +194 -0
  72. package/Tests/Server/Services/NetworkDeviceMonitorStatusStamp.test.ts +800 -0
  73. package/Tests/Server/Services/OnCallScheduleAttachRosterRefresh.test.ts +244 -0
  74. package/Tests/Server/Services/SecurityEventService.test.ts +376 -0
  75. package/Tests/Server/Services/StatusPageResourceDuplicates.test.ts +703 -0
  76. package/Tests/Server/Services/TelemetryAttributeServiceSecurityEvent.test.ts +256 -0
  77. package/Tests/Server/Types/Workflow/Components/ComponentRegistryParity.test.ts +417 -0
  78. package/Tests/Server/Utils/AnalyticsDatabase/StatementGeneratorWhereOperators.test.ts +677 -0
  79. package/Tests/Server/Utils/Marketing/MarketingEventUtil.test.ts +43 -0
  80. package/Tests/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.test.ts +15 -11
  81. package/Tests/Server/Utils/SecurityEvent/DetectionRuleEvaluator.test.ts +369 -8
  82. package/Tests/Server/Utils/SecurityEvent/SigmaClickhouseCompiler.test.ts +35 -0
  83. package/Tests/Server/Utils/Telemetry/LlmCostBudgetEvaluator.test.ts +368 -4
  84. package/Tests/Server/Utils/Telemetry/LlmMetricSpend.test.ts +245 -0
  85. package/Tests/Server/Views/AnalyticsConsentPartial.test.ts +48 -5
  86. package/Tests/Types/Code/YamlSyntax.test.ts +396 -0
  87. package/Tests/Types/Monitor/MetricAndProfileDefaultCriteria.test.ts +957 -0
  88. package/Tests/Types/Monitor/MonitorCriteriaActionValidation.test.ts +598 -0
  89. package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +49 -0
  90. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +6 -6
  91. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.test.ts +4 -4
  92. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +4 -3
  93. package/Tests/Types/Telemetry/LlmMetricConventions.test.ts +193 -0
  94. package/Tests/UI/Components/AiInvestigationSettingsCard.test.tsx +0 -12
  95. package/Tests/UI/Components/CardModelDetailEdit.test.tsx +1 -17
  96. package/Tests/UI/Components/CodeEditor.test.tsx +474 -10
  97. package/Tests/UI/Components/Detail/YamlField.test.tsx +105 -0
  98. package/Tests/UI/Components/EntityDropdownLabelsBulkAdd.test.tsx +319 -0
  99. package/Tests/UI/Components/Forms/FormFieldYaml.test.tsx +231 -0
  100. package/Tests/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.test.ts +1 -0
  101. package/Tests/UI/Components/Forms/ValidationYAML.test.ts +234 -0
  102. package/Tests/UI/Components/ModelTable/AttributeColumns.test.tsx +573 -0
  103. package/Tests/UI/Components/ModelTable/BaseModelTableAttributeColumns.test.tsx +824 -0
  104. package/Tests/UI/Components/ModelTable/ColumnCustomizationModalAddableColumns.test.tsx +707 -0
  105. package/Tests/UI/Components/SideOver.test.tsx +1 -1
  106. package/Tests/UI/Components/StatusPage/ResourceGridSelection.test.tsx +294 -0
  107. package/Tests/UI/Components/StatusPage/ResourceListSelection.test.tsx +436 -0
  108. package/Tests/UI/Components/TableBulkCsvExport.test.tsx +6 -2
  109. package/Tests/UI/Components/Toggle.test.tsx +25 -0
  110. package/Tests/UI/Components/YamlEditor.test.tsx +847 -0
  111. package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +252 -0
  112. package/Tests/Utils/NetworkDiscovery/DiscoveredHostUtil.test.ts +221 -0
  113. package/Tests/Utils/NetworkDiscovery/ScanNameUtil.test.ts +312 -0
  114. package/Tests/Utils/StatusPage/ResourceExplorer.test.ts +468 -0
  115. package/Tests/Utils/Telemetry/LlmMetricQuery.test.ts +472 -0
  116. package/Types/Code/YamlSyntax.ts +396 -0
  117. package/Types/Exception/ExceptionCode.ts +1 -0
  118. package/Types/Exception/PayloadTooLargeException.ts +8 -0
  119. package/Types/Marketing/Attribution.ts +10 -0
  120. package/Types/Marketing/MarketingEvent.ts +4 -0
  121. package/Types/Monitor/MonitorCriteriaInstance.ts +116 -56
  122. package/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.ts +2 -1
  123. package/Types/SecurityEvent/DetectionFindingConstants.ts +11 -0
  124. package/Types/Telemetry/LlmMetricConventions.ts +124 -0
  125. package/UI/Components/AutocompleteTextInput/AutocompleteTextInput.tsx +3 -0
  126. package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +10 -1
  127. package/UI/Components/CodeEditor/CodeEditor.tsx +241 -79
  128. package/UI/Components/CodeEditor/YamlEditor.tsx +369 -0
  129. package/UI/Components/Detail/Detail.tsx +10 -0
  130. package/UI/Components/EntityDropdown/EntityDropdown.tsx +33 -0
  131. package/UI/Components/Forms/Fields/FormField.tsx +31 -0
  132. package/UI/Components/Forms/Types/Field.ts +8 -0
  133. package/UI/Components/Forms/Types/FormFieldSchemaType.ts +1 -0
  134. package/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.ts +2 -0
  135. package/UI/Components/Forms/Validation.ts +46 -0
  136. package/UI/Components/Input/Input.tsx +3 -0
  137. package/UI/Components/ModelTable/AttributeColumns.tsx +321 -0
  138. package/UI/Components/ModelTable/BaseModelTable.tsx +263 -14
  139. package/UI/Components/ModelTable/Column.ts +8 -0
  140. package/UI/Components/ModelTable/ColumnCustomizationModal.tsx +310 -0
  141. package/UI/Components/ModelTable/ColumnPreference.ts +13 -1
  142. package/UI/Components/MonitorTemplateVariables/TemplateVariablesModal.tsx +2 -2
  143. package/UI/Components/SideOver/SideOver.tsx +5 -5
  144. package/UI/Components/StatusPage/ResourceGrid.tsx +82 -2
  145. package/UI/Components/StatusPage/ResourceList.tsx +197 -38
  146. package/UI/Components/Toggle/Toggle.tsx +9 -1
  147. package/UI/Components/Types/FieldType.ts +1 -0
  148. package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +73 -1
  149. package/Utils/NetworkDiscovery/ScanNameUtil.ts +181 -0
  150. package/Utils/StatusPage/ResourceExplorer.ts +258 -0
  151. package/Utils/Telemetry/LlmMetricQuery.ts +204 -0
  152. package/build/dist/Models/DatabaseModels/DetectionRule.js +57 -0
  153. package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -1
  154. package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js +27 -7
  155. package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js.map +1 -1
  156. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +69 -0
  157. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  158. package/build/dist/Models/DatabaseModels/Project.js +76 -0
  159. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  160. package/build/dist/Models/DatabaseModels/User.js +76 -0
  161. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  162. package/build/dist/Server/API/TelemetryAPI.js +17 -0
  163. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  164. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789400000000-AddNameToNetworkDeviceDiscoveryScan.js +21 -0
  165. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789400000000-AddNameToNetworkDeviceDiscoveryScan.js.map +1 -0
  166. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789500000000-AddCampaignUtmFields.js +42 -0
  167. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789500000000-AddCampaignUtmFields.js.map +1 -0
  168. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789512000000-AddDetectionRuleDistinctCountColumns.js +22 -0
  169. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789512000000-AddDetectionRuleDistinctCountColumns.js.map +1 -0
  170. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  171. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  172. package/build/dist/Server/Middleware/GzipRequestBody.js +224 -0
  173. package/build/dist/Server/Middleware/GzipRequestBody.js.map +1 -0
  174. package/build/dist/Server/Middleware/MultipartFormData.js +71 -2
  175. package/build/dist/Server/Middleware/MultipartFormData.js.map +1 -1
  176. package/build/dist/Server/Services/DetectionRuleService.js +49 -4
  177. package/build/dist/Server/Services/DetectionRuleService.js.map +1 -1
  178. package/build/dist/Server/Services/Index.js +204 -0
  179. package/build/dist/Server/Services/Index.js.map +1 -1
  180. package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js +50 -0
  181. package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js.map +1 -1
  182. package/build/dist/Server/Services/NetworkDeviceService.js +124 -0
  183. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  184. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +68 -13
  185. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
  186. package/build/dist/Server/Services/OnCallDutyPolicyFeedService.js +1 -1
  187. package/build/dist/Server/Services/OnCallDutyPolicyFeedService.js.map +1 -1
  188. package/build/dist/Server/Services/ProjectService.js +25 -45
  189. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  190. package/build/dist/Server/Services/SecurityEventService.js +57 -5
  191. package/build/dist/Server/Services/SecurityEventService.js.map +1 -1
  192. package/build/dist/Server/Services/StatusPageResourceService.js +140 -0
  193. package/build/dist/Server/Services/StatusPageResourceService.js.map +1 -1
  194. package/build/dist/Server/Services/TelemetryAttributeService.js +17 -0
  195. package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
  196. package/build/dist/Server/Services/UserService.js +2 -12
  197. package/build/dist/Server/Services/UserService.js.map +1 -1
  198. package/build/dist/Server/Types/Markdown.js +147 -61
  199. package/build/dist/Server/Types/Markdown.js.map +1 -1
  200. package/build/dist/Server/Utils/AI/Toolbox/OnCallTools.js +12 -4
  201. package/build/dist/Server/Utils/AI/Toolbox/OnCallTools.js.map +1 -1
  202. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +12 -1
  203. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
  204. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +246 -9
  205. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  206. package/build/dist/Server/Utils/Attribution.js.map +1 -1
  207. package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js +27 -7
  208. package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js.map +1 -1
  209. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +42 -7
  210. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -1
  211. package/build/dist/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.js +18 -0
  212. package/build/dist/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.js.map +1 -1
  213. package/build/dist/Server/Utils/StartServer.js +12 -21
  214. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  215. package/build/dist/Server/Utils/Telemetry/LlmCostBudgetEvaluator.js +76 -5
  216. package/build/dist/Server/Utils/Telemetry/LlmCostBudgetEvaluator.js.map +1 -1
  217. package/build/dist/Server/Utils/Telemetry/LlmMetricSpend.js +102 -0
  218. package/build/dist/Server/Utils/Telemetry/LlmMetricSpend.js.map +1 -0
  219. package/build/dist/Types/Code/YamlSyntax.js +212 -0
  220. package/build/dist/Types/Code/YamlSyntax.js.map +1 -0
  221. package/build/dist/Types/Exception/ExceptionCode.js +1 -0
  222. package/build/dist/Types/Exception/ExceptionCode.js.map +1 -1
  223. package/build/dist/Types/Exception/PayloadTooLargeException.js +8 -0
  224. package/build/dist/Types/Exception/PayloadTooLargeException.js.map +1 -0
  225. package/build/dist/Types/Marketing/Attribution.js +10 -0
  226. package/build/dist/Types/Marketing/Attribution.js.map +1 -1
  227. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +112 -51
  228. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  229. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js +2 -1
  230. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js.map +1 -1
  231. package/build/dist/Types/SecurityEvent/DetectionFindingConstants.js +9 -0
  232. package/build/dist/Types/SecurityEvent/DetectionFindingConstants.js.map +1 -1
  233. package/build/dist/Types/Telemetry/LlmMetricConventions.js +98 -0
  234. package/build/dist/Types/Telemetry/LlmMetricConventions.js.map +1 -0
  235. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js +1 -1
  236. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js.map +1 -1
  237. package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +5 -2
  238. package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js.map +1 -1
  239. package/build/dist/UI/Components/CodeEditor/CodeEditor.js +206 -76
  240. package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
  241. package/build/dist/UI/Components/CodeEditor/YamlEditor.js +201 -0
  242. package/build/dist/UI/Components/CodeEditor/YamlEditor.js.map +1 -0
  243. package/build/dist/UI/Components/Detail/Detail.js +9 -0
  244. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  245. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js +16 -1
  246. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js.map +1 -1
  247. package/build/dist/UI/Components/Forms/Fields/FormField.js +14 -1
  248. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  249. package/build/dist/UI/Components/Forms/Types/Field.js.map +1 -1
  250. package/build/dist/UI/Components/Forms/Types/FormFieldSchemaType.js +1 -0
  251. package/build/dist/UI/Components/Forms/Types/FormFieldSchemaType.js.map +1 -1
  252. package/build/dist/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.js +2 -0
  253. package/build/dist/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.js.map +1 -1
  254. package/build/dist/UI/Components/Forms/Validation.js +27 -0
  255. package/build/dist/UI/Components/Forms/Validation.js.map +1 -1
  256. package/build/dist/UI/Components/Input/Input.js +1 -1
  257. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  258. package/build/dist/UI/Components/ModelTable/AttributeColumns.js +159 -0
  259. package/build/dist/UI/Components/ModelTable/AttributeColumns.js.map +1 -0
  260. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +179 -17
  261. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  262. package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js +133 -2
  263. package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js.map +1 -1
  264. package/build/dist/UI/Components/ModelTable/ColumnPreference.js +7 -1
  265. package/build/dist/UI/Components/ModelTable/ColumnPreference.js.map +1 -1
  266. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesModal.js +2 -2
  267. package/build/dist/UI/Components/SideOver/SideOver.js +5 -5
  268. package/build/dist/UI/Components/StatusPage/ResourceGrid.js +28 -2
  269. package/build/dist/UI/Components/StatusPage/ResourceGrid.js.map +1 -1
  270. package/build/dist/UI/Components/StatusPage/ResourceList.js +87 -20
  271. package/build/dist/UI/Components/StatusPage/ResourceList.js.map +1 -1
  272. package/build/dist/UI/Components/Toggle/Toggle.js +9 -1
  273. package/build/dist/UI/Components/Toggle/Toggle.js.map +1 -1
  274. package/build/dist/UI/Components/Types/FieldType.js +1 -0
  275. package/build/dist/UI/Components/Types/FieldType.js.map +1 -1
  276. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +37 -1
  277. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -1
  278. package/build/dist/Utils/NetworkDiscovery/ScanNameUtil.js +120 -0
  279. package/build/dist/Utils/NetworkDiscovery/ScanNameUtil.js.map +1 -0
  280. package/build/dist/Utils/StatusPage/ResourceExplorer.js +171 -0
  281. package/build/dist/Utils/StatusPage/ResourceExplorer.js.map +1 -1
  282. package/build/dist/Utils/Telemetry/LlmMetricQuery.js +119 -0
  283. package/build/dist/Utils/Telemetry/LlmMetricQuery.js.map +1 -0
  284. package/jest.config.json +2 -0
  285. package/package.json +1 -1
  286. package/tsconfig.json +2 -1
  287. package/Tests/UI/Components/Toast.test.tsx +0 -197
  288. package/Tests/UI/Components/ToastStacking.test.tsx +0 -198
  289. package/UI/Components/Toast/Toast.tsx +0 -189
  290. package/UI/Components/Toast/ToastInit.tsx +0 -110
  291. package/build/dist/UI/Components/Toast/Toast.js +0 -123
  292. package/build/dist/UI/Components/Toast/Toast.js.map +0 -1
  293. package/build/dist/UI/Components/Toast/ToastInit.js +0 -53
  294. package/build/dist/UI/Components/Toast/ToastInit.js.map +0 -1
@@ -0,0 +1,120 @@
1
+ import ColumnLength from "../../Types/Database/ColumnLength";
2
+ export class ScanNameUtil {
3
+ /*
4
+ * The name as it should be stored, or null when the operator supplied none.
5
+ *
6
+ * Three things happen here, in this order:
7
+ *
8
+ * - anything that is not a string becomes null. The value arrives straight
9
+ * from request JSON (BaseAPI assigns ShortText columns verbatim), so a
10
+ * client really can hand over a number, an object or an array. Callers
11
+ * that want to REJECT those call getValidationError() first; this
12
+ * function's job is only to say what would be stored.
13
+ * - control characters — a newline pasted out of a spreadsheet cell, a
14
+ * stray tab — become spaces, and every run of whitespace collapses to a
15
+ * single space. A name is rendered on one line in a table cell and
16
+ * inlined into log messages; a multi-line one breaks both, and nothing
17
+ * downstream would ever repair it.
18
+ * - the result is trimmed, and an empty result is null rather than "".
19
+ * "Not named" is one state, not two: an empty string in the column would
20
+ * read as a name everywhere `name ?` is asked, and render as a blank
21
+ * first line above the scan target.
22
+ */
23
+ static normalize(name) {
24
+ if (typeof name !== "string") {
25
+ return null;
26
+ }
27
+ const collapsed = name
28
+ .replace(ScanNameUtil.CONTROL_CHARACTERS, " ")
29
+ .replace(/\s+/g, " ")
30
+ .trim();
31
+ return collapsed.length > 0 ? collapsed : null;
32
+ }
33
+ /*
34
+ * The single validation entry point for a scan name, shared by the create
35
+ * form and both write hooks. Returns null when the name is storable —
36
+ * INCLUDING when there is no name at all, because the field is optional and
37
+ * "" is a perfectly good way to say so.
38
+ *
39
+ * `name` is typed unknown for the same reason ScanTargetUtil's target is:
40
+ * the server hook runs before the model's own type and length checks, so it
41
+ * is the first thing to see whatever the client actually sent.
42
+ */
43
+ static getValidationError(name) {
44
+ if (name === undefined || name === null) {
45
+ return null;
46
+ }
47
+ if (typeof name !== "string") {
48
+ return "A scan name must be text.";
49
+ }
50
+ const normalized = ScanNameUtil.normalize(name);
51
+ if (normalized === null) {
52
+ return null;
53
+ }
54
+ /*
55
+ * Measured against the NORMALIZED value, which is what would be stored:
56
+ * rejecting a 101-character value that is 100 characters plus a trailing
57
+ * newline would be refusing to save something this module was about to fix
58
+ * anyway.
59
+ */
60
+ if (normalized.length > ScanNameUtil.MAX_SCAN_NAME_LENGTH) {
61
+ return (`A scan name cannot be longer than ${ScanNameUtil.MAX_SCAN_NAME_LENGTH} characters. ` +
62
+ `This one is ${normalized.length}.`);
63
+ }
64
+ return null;
65
+ }
66
+ /*
67
+ * The name to show for a scan, or null when it has none — so a caller can
68
+ * render the scan target instead rather than an empty line.
69
+ *
70
+ * Normalized on the way out as well as on the way in, because rows written
71
+ * before this column existed, and rows written by any writer that bypasses
72
+ * the hooks (migrations, the probe-ingest endpoints), are not guaranteed to
73
+ * have been through normalize().
74
+ */
75
+ static getDisplayName(scan) {
76
+ return ScanNameUtil.normalize(scan.name);
77
+ }
78
+ /*
79
+ * How to refer to a scan in one line of running text — a log message, a
80
+ * modal's description, a status note.
81
+ *
82
+ * A named scan carries its target along with it (`Router Discovery — Region
83
+ * 1100 (10.15.128.0-255)`): the name says which scan, the target says what
84
+ * it sweeps, and an operator reading a log line usually wants both. An
85
+ * unnamed one is exactly what it was before this column existed — the target
86
+ * alone.
87
+ *
88
+ * Returns "" when the row has neither, which happens only when the caller
89
+ * selected neither column. Callers append their own fallback (the scan id)
90
+ * rather than having one invented for them here.
91
+ */
92
+ static getScanLabel(scan) {
93
+ const name = ScanNameUtil.getDisplayName(scan);
94
+ const target = typeof scan.cidr === "string" ? scan.cidr.trim() : "";
95
+ if (name && target) {
96
+ return `${name} (${target})`;
97
+ }
98
+ return name || target || "";
99
+ }
100
+ }
101
+ /*
102
+ * Matches the column: NetworkDeviceDiscoveryScan.name is a ShortText, so a
103
+ * longer value does not truncate in Postgres — it throws, failing the whole
104
+ * INSERT. Read off ColumnLength rather than written as 100 so the two cannot
105
+ * drift apart if the column type ever changes.
106
+ */
107
+ ScanNameUtil.MAX_SCAN_NAME_LENGTH = ColumnLength.ShortText;
108
+ /*
109
+ * ASCII control characters, including DEL. Written as escapes rather than as
110
+ * a literal range so the characters this guards against cannot end up inside
111
+ * the guard itself, and so the file stays readable in a diff.
112
+ *
113
+ * no-control-regex is disabled deliberately, the same way
114
+ * MetricResourceAttributeUtil disables it: a control character inside a
115
+ * user-typed name is precisely what this has to match in order to remove it.
116
+ */
117
+ // eslint-disable-next-line no-control-regex
118
+ ScanNameUtil.CONTROL_CHARACTERS = /[\u0000-\u001F\u007F]/g;
119
+ export default ScanNameUtil;
120
+ //# sourceMappingURL=ScanNameUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanNameUtil.js","sourceRoot":"","sources":["../../../../Utils/NetworkDiscovery/ScanNameUtil.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mCAAmC,CAAC;AA6C7D,MAAM,OAAO,YAAY;IAqBvB;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,CAAC,SAAS,CAAC,IAAa;QACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAW,IAAI;aAC3B,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC;aAC7C,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAC;QAEV,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,kBAAkB,CAAC,IAAa;QAC5C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,2BAA2B,CAAC;QACrC,CAAC;QAED,MAAM,UAAU,GAAkB,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED;;;;;WAKG;QACH,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,oBAAoB,EAAE,CAAC;YAC1D,OAAO,CACL,qCAAqC,YAAY,CAAC,oBAAoB,eAAe;gBACrF,eAAe,UAAU,CAAC,MAAM,GAAG,CACpC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,cAAc,CAAC,IAA2B;QACtD,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,YAAY,CAAC,IAA2B;QACpD,MAAM,IAAI,GAAkB,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GACV,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAExD,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,OAAO,GAAG,IAAI,KAAK,MAAM,GAAG,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,IAAI,MAAM,IAAI,EAAE,CAAC;IAC9B,CAAC;;AAnID;;;;;GAKG;AACoB,iCAAoB,GAAW,YAAY,CAAC,SAAS,CAAC;AAE7E;;;;;;;;GAQG;AACH,4CAA4C;AACpB,+BAAkB,GAAW,wBAAwB,CAAC;AAoHhF,eAAe,YAAY,CAAC"}
@@ -334,6 +334,177 @@ class StatusPageResourceExplorerUtil {
334
334
  });
335
335
  });
336
336
  }
337
+ /* ------------------------------------------------------------------ */
338
+ /* Selecting resources */
339
+ /* ------------------------------------------------------------------ */
340
+ /*
341
+ * Removing monitors from a status page used to be a row at a time: open the
342
+ * row's menu, confirm, wait for the refetch, and do it again for the next of
343
+ * twenty seven (issue #3419). The list carries a checkbox column instead, and
344
+ * everything below is the model behind it.
345
+ *
346
+ * A selection is a set of id STRINGS rather than of resources. Resources are
347
+ * re-fetched constantly here - every create, delete, reorder and refresh
348
+ * replaces the whole array - so holding the objects would mean holding rows
349
+ * that no longer exist, compared by identity against their own replacements.
350
+ */
351
+ /*
352
+ * A resource's id as a selection holds it.
353
+ *
354
+ * Null when there is nothing to hold on to. The server never returns such a
355
+ * row, but a list drawn from local state briefly can, and a set containing
356
+ * `""` would silently make every id-less row the same row.
357
+ */
358
+ static getResourceId(statusPageResource) {
359
+ var _a;
360
+ const id = ((_a = statusPageResource._id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
361
+ return id.length > 0 ? id : null;
362
+ }
363
+ /*
364
+ * The ids of everything in the list that can be selected at all, in the order
365
+ * the list draws them and without repeats.
366
+ */
367
+ static getResourceIds(statusPageResources) {
368
+ const ids = [];
369
+ const seen = new Set();
370
+ for (const statusPageResource of statusPageResources) {
371
+ const id = StatusPageResourceExplorerUtil.getResourceId(statusPageResource);
372
+ if (!id || seen.has(id)) {
373
+ continue;
374
+ }
375
+ seen.add(id);
376
+ ids.push(id);
377
+ }
378
+ return ids;
379
+ }
380
+ /*
381
+ * One row's box, ticked or unticked. Always a new set, because it always
382
+ * changes something.
383
+ */
384
+ static toggleSelectedResourceId(data) {
385
+ const next = new Set(data.selectedResourceIds);
386
+ if (next.has(data.resourceId)) {
387
+ next.delete(data.resourceId);
388
+ }
389
+ else {
390
+ next.add(data.resourceId);
391
+ }
392
+ return next;
393
+ }
394
+ /*
395
+ * The box at the top of the list: every resource handed in is selected, or
396
+ * none of them is.
397
+ *
398
+ * Only the resources handed in are touched. A search is on while this is
399
+ * pressed as often as not, and un-ticking "select all" over four matching
400
+ * rows must not quietly drop the twenty the operator selected before they
401
+ * started typing.
402
+ *
403
+ * Returns the set it was given when nothing would change, so a component
404
+ * holding it in state does not re-render itself for a no-op.
405
+ */
406
+ static setResourcesSelected(data) {
407
+ const ids = StatusPageResourceExplorerUtil.getResourceIds(data.statusPageResources);
408
+ const next = new Set(data.selectedResourceIds);
409
+ let hasChanged = false;
410
+ for (const id of ids) {
411
+ if (data.isSelected) {
412
+ if (!next.has(id)) {
413
+ next.add(id);
414
+ hasChanged = true;
415
+ }
416
+ continue;
417
+ }
418
+ if (next.delete(id)) {
419
+ hasChanged = true;
420
+ }
421
+ }
422
+ return hasChanged ? next : data.selectedResourceIds;
423
+ }
424
+ /*
425
+ * What the box at the top of the list should look like, over whichever
426
+ * resources are being drawn.
427
+ *
428
+ * An empty list is never "all selected": a ticked box over nothing to tick
429
+ * reads as a selection that was lost.
430
+ */
431
+ static getSelectionState(data) {
432
+ const ids = StatusPageResourceExplorerUtil.getResourceIds(data.statusPageResources);
433
+ let selectedCount = 0;
434
+ for (const id of ids) {
435
+ if (data.selectedResourceIds.has(id)) {
436
+ selectedCount++;
437
+ }
438
+ }
439
+ const isAllSelected = ids.length > 0 && selectedCount === ids.length;
440
+ return {
441
+ isAllSelected: isAllSelected,
442
+ isIndeterminate: selectedCount > 0 && !isAllSelected,
443
+ selectedCount: selectedCount,
444
+ selectableCount: ids.length,
445
+ };
446
+ }
447
+ /*
448
+ * The selected resources themselves, in the order the list holds them, so a
449
+ * bulk action reports its progress in the order the operator is looking at.
450
+ *
451
+ * Ids in the selection that match nothing in the list are dropped rather than
452
+ * guessed at - see retainSelectedResourceIds for where they come from.
453
+ */
454
+ static getSelectedResources(data) {
455
+ const seen = new Set();
456
+ return data.statusPageResources.filter((statusPageResource) => {
457
+ const id = StatusPageResourceExplorerUtil.getResourceId(statusPageResource);
458
+ if (!id || seen.has(id) || !data.selectedResourceIds.has(id)) {
459
+ return false;
460
+ }
461
+ seen.add(id);
462
+ return true;
463
+ });
464
+ }
465
+ /*
466
+ * The selection, minus anything the list no longer holds.
467
+ *
468
+ * Every write on this pane ends in a refetch, and a resource that was removed
469
+ * - by this operator's own bulk action, or by somebody else's - must not stay
470
+ * in the selection: the bulk bar would go on counting it, and the next action
471
+ * would try to delete a row that is already gone.
472
+ *
473
+ * Returns the set it was given when nothing was dropped, for the same reason
474
+ * setResourcesSelected does.
475
+ */
476
+ static retainSelectedResourceIds(data) {
477
+ if (data.selectedResourceIds.size === 0) {
478
+ return data.selectedResourceIds;
479
+ }
480
+ const present = new Set(StatusPageResourceExplorerUtil.getResourceIds(data.statusPageResources));
481
+ const next = new Set();
482
+ for (const id of data.selectedResourceIds) {
483
+ if (present.has(id)) {
484
+ next.add(id);
485
+ }
486
+ }
487
+ return next.size === data.selectedResourceIds.size
488
+ ? data.selectedResourceIds
489
+ : next;
490
+ }
491
+ /*
492
+ * What the confirmation for a bulk removal is called, and what it says.
493
+ *
494
+ * It says the monitors survive, for the same reason the single-row confirm
495
+ * does: "remove" on a status page means "stop publishing this", and an
496
+ * operator clearing twenty seven rows deserves to be told that once, loudly,
497
+ * rather than to wonder afterwards.
498
+ */
499
+ static getBulkRemoveConfirmTitle(data) {
500
+ return `Remove ${data.count.toLocaleString()} ${data.count === 1 ? "resource" : "resources"}`;
501
+ }
502
+ static getBulkRemoveConfirmMessage(data) {
503
+ if (data.count === 1) {
504
+ return "Are you sure you want to remove 1 resource from this status page? The monitor itself is not deleted.";
505
+ }
506
+ return `Are you sure you want to remove ${data.count.toLocaleString()} resources from this status page? The monitors themselves are not deleted.`;
507
+ }
337
508
  /*
338
509
  * The `order` to write when a resource is dragged from one position to
339
510
  * another.
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceExplorer.js","sourceRoot":"","sources":["../../../../Utils/StatusPage/ResourceExplorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResourceExplorer.js","sourceRoot":"","sources":["../../../../Utils/StatusPage/ResourceExplorer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import InBetween from "../../Types/BaseDatabase/InBetween";
2
+ import Includes from "../../Types/BaseDatabase/Includes";
3
+ import { LlmRequestModelAttributeKeys, LlmSystemAttributeKeys, } from "../../Types/Telemetry/LlmConventions";
4
+ import { LlmCostMetricNames, LlmTokenTypeAttributeKeys, LlmTokenUsageMetricNames, getLlmTokenDirection, } from "../../Types/Telemetry/LlmMetricConventions";
5
+ /*
6
+ * Both convention lists are ordered preferred-first, so element zero is the
7
+ * semantic-convention key.
8
+ */
9
+ export const METRIC_SYSTEM_ATTRIBUTE_KEY = LlmSystemAttributeKeys[0];
10
+ export const METRIC_MODEL_ATTRIBUTE_KEY = LlmRequestModelAttributeKeys[0];
11
+ export default class LlmMetricQuery {
12
+ /**
13
+ * Shared filter for both the cost and token queries: the project, the
14
+ * window, the candidate metric names, and the caller's optional scoping.
15
+ *
16
+ * The `time` predicate has to live in the query itself. AggregateBy's
17
+ * startTimestamp/endTimestamp only choose the bucket grid — without this the
18
+ * aggregate scans the metric's whole retention (the same trap the span query
19
+ * documents).
20
+ */
21
+ static buildBaseQuery(data) {
22
+ const query = {
23
+ projectId: data.scope.projectId,
24
+ name: new Includes(data.metricNames),
25
+ time: new InBetween(data.scope.startTime, data.scope.endTime),
26
+ };
27
+ if (data.scope.serviceId) {
28
+ query["primaryEntityId"] = data.scope.serviceId;
29
+ }
30
+ const attributes = {};
31
+ if (data.scope.llmSystem) {
32
+ attributes[METRIC_SYSTEM_ATTRIBUTE_KEY] = data.scope.llmSystem;
33
+ }
34
+ if (data.scope.llmModel) {
35
+ attributes[METRIC_MODEL_ATTRIBUTE_KEY] = data.scope.llmModel;
36
+ }
37
+ if (Object.keys(attributes).length > 0) {
38
+ query["attributes"] = attributes;
39
+ }
40
+ return query;
41
+ }
42
+ static buildCostQuery(scope) {
43
+ return this.buildBaseQuery({
44
+ scope: scope,
45
+ metricNames: LlmCostMetricNames,
46
+ });
47
+ }
48
+ static buildTokenQuery(scope) {
49
+ return this.buildBaseQuery({
50
+ scope: scope,
51
+ metricNames: LlmTokenUsageMetricNames,
52
+ });
53
+ }
54
+ /**
55
+ * Sum an aggregate result's buckets. Non-numeric, missing, NaN and infinite
56
+ * values contribute nothing rather than poisoning the total — these figures
57
+ * feed monitors, and one bad row must not turn a budget's spend into NaN.
58
+ */
59
+ static sumAggregatedRows(rows) {
60
+ if (!rows || !Array.isArray(rows)) {
61
+ return 0;
62
+ }
63
+ return rows.reduce((acc, row) => {
64
+ var _a;
65
+ const value = Number((_a = row === null || row === void 0 ? void 0 : row.value) !== null && _a !== void 0 ? _a : 0);
66
+ if (!isFinite(value)) {
67
+ return acc;
68
+ }
69
+ return acc + value;
70
+ }, 0);
71
+ }
72
+ /**
73
+ * Fold grouped token rows into input/output totals.
74
+ *
75
+ * A row is counted once, against the first recognized token-type attribute
76
+ * it carries (the keys are ordered preferred-first). Rows whose token type
77
+ * is absent, unrecognized, or one of the kinds we deliberately exclude
78
+ * (cache_read / cache_creation) are dropped rather than guessed at.
79
+ */
80
+ static reduceTokenRows(rows) {
81
+ var _a;
82
+ const totals = {
83
+ inputTokens: 0,
84
+ outputTokens: 0,
85
+ };
86
+ if (!rows || !Array.isArray(rows)) {
87
+ return totals;
88
+ }
89
+ for (const row of rows) {
90
+ if (!row) {
91
+ continue;
92
+ }
93
+ const attributes = row["attributes"] || {};
94
+ let direction = null;
95
+ for (const key of LlmTokenTypeAttributeKeys) {
96
+ const candidate = getLlmTokenDirection(attributes[key]);
97
+ if (candidate) {
98
+ direction = candidate;
99
+ break;
100
+ }
101
+ }
102
+ if (!direction) {
103
+ continue;
104
+ }
105
+ const value = Number((_a = row.value) !== null && _a !== void 0 ? _a : 0);
106
+ if (!isFinite(value)) {
107
+ continue;
108
+ }
109
+ if (direction === "input") {
110
+ totals.inputTokens += value;
111
+ }
112
+ else {
113
+ totals.outputTokens += value;
114
+ }
115
+ }
116
+ return totals;
117
+ }
118
+ }
119
+ //# sourceMappingURL=LlmMetricQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LlmMetricQuery.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/LlmMetricQuery.ts"],"names":[],"mappings":"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"}
package/jest.config.json CHANGED
@@ -31,6 +31,8 @@
31
31
  "^react-i18next$": "<rootDir>/node_modules/react-i18next",
32
32
  "^i18next$": "<rootDir>/node_modules/i18next",
33
33
  "^use-async-effect$": "<rootDir>/node_modules/use-async-effect",
34
+ "^reactflow$": "<rootDir>/node_modules/reactflow",
35
+ "^react-beautiful-dnd$": "<rootDir>/node_modules/react-beautiful-dnd",
34
36
  "^i18next-browser-languagedetector$": "<rootDir>/Tests/__mocks__/i18next-browser-languagedetector.js",
35
37
  "^react-markdown$": "<rootDir>/Tests/__mocks__/react-markdown.js",
36
38
  "^remark-gfm$": "<rootDir>/Tests/__mocks__/remark-gfm.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneuptime/common",
3
- "version": "12.0.23",
3
+ "version": "12.0.24",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
package/tsconfig.json CHANGED
@@ -68,7 +68,8 @@
68
68
  "react-router-dom": ["./node_modules/react-router-dom"],
69
69
  "react-i18next": ["./node_modules/react-i18next"],
70
70
  "i18next": ["./node_modules/i18next"],
71
- "use-async-effect": ["./node_modules/use-async-effect"]
71
+ "use-async-effect": ["./node_modules/use-async-effect"],
72
+ "reactflow": ["./node_modules/reactflow"]
72
73
  },
73
74
  // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
74
75
  "typeRoots": [