@oneuptime/common 11.5.8 → 11.5.10

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 (542) hide show
  1. package/Models/AnalyticsModels/Index.ts +13 -0
  2. package/Models/AnalyticsModels/MetricItemAggMV1mByContainer.ts +178 -0
  3. package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +179 -0
  4. package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +179 -0
  5. package/Models/AnalyticsModels/NetworkFlow.ts +397 -0
  6. package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +15 -6
  7. package/Models/DatabaseModels/AIRun.ts +37 -0
  8. package/Models/DatabaseModels/AIRunEvent.ts +34 -1
  9. package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +18 -0
  10. package/Models/DatabaseModels/GlobalConfig.ts +36 -0
  11. package/Models/DatabaseModels/Index.ts +2 -0
  12. package/Models/DatabaseModels/MarketingConversion.ts +198 -0
  13. package/Models/DatabaseModels/MetricSavedView.ts +34 -0
  14. package/Models/DatabaseModels/MetricType.ts +74 -0
  15. package/Models/DatabaseModels/NetworkDevice.ts +332 -0
  16. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +328 -0
  17. package/Models/DatabaseModels/NetworkInterface.ts +58 -0
  18. package/Models/DatabaseModels/Project.ts +62 -0
  19. package/Models/DatabaseModels/StatusPage.ts +42 -0
  20. package/Models/DatabaseModels/User.ts +37 -0
  21. package/Server/API/AIAgentTaskAPI.ts +38 -12
  22. package/Server/API/AIAgentTaskLogAPI.ts +49 -0
  23. package/Server/API/AIChatAPI.ts +16 -0
  24. package/Server/API/AIReadinessAPI.ts +84 -0
  25. package/Server/API/BaseAnalyticsAPI.ts +23 -0
  26. package/Server/API/CodeFixRunAPI.ts +182 -0
  27. package/Server/API/EnterpriseLicenseAPI.ts +14 -0
  28. package/Server/API/TelemetryExceptionAPI.ts +6 -1
  29. package/Server/EnvironmentConfig.ts +84 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.ts +95 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.ts +52 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.ts +30 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.ts +38 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.ts +28 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.ts +49 -0
  36. package/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.ts +108 -0
  37. package/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.ts +31 -0
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.ts +29 -0
  39. package/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.ts +35 -0
  40. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
  41. package/Server/Services/AIRunEventService.ts +15 -1
  42. package/Server/Services/AIRunService.ts +38 -1
  43. package/Server/Services/AnalyticsDatabaseService.ts +70 -1
  44. package/Server/Services/IncidentService.ts +13 -0
  45. package/Server/Services/Index.ts +10 -0
  46. package/Server/Services/LlmProviderService.ts +2 -0
  47. package/Server/Services/MarketingConversionService.ts +10 -0
  48. package/Server/Services/MetricItemAggMV1mByContainerService.ts +31 -0
  49. package/Server/Services/MetricItemAggMV1mByK8sClusterService.ts +31 -0
  50. package/Server/Services/MetricItemAggMV1mByServiceService.ts +31 -0
  51. package/Server/Services/MetricService.ts +970 -122
  52. package/Server/Services/MonitorService.ts +14 -0
  53. package/Server/Services/NetworkDeviceOwnerTeamService.ts +42 -0
  54. package/Server/Services/NetworkDeviceOwnerUserService.ts +106 -0
  55. package/Server/Services/NetworkFlowService.ts +11 -0
  56. package/Server/Services/OnCallDutyPolicyService.ts +11 -1
  57. package/Server/Services/ProjectService.ts +178 -0
  58. package/Server/Services/SpanService.ts +13 -9
  59. package/Server/Services/StatusPageService.ts +97 -0
  60. package/Server/Services/TeamMemberService.ts +11 -0
  61. package/Server/Services/TelemetryExceptionService.ts +19 -90
  62. package/Server/Services/UserService.ts +59 -0
  63. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +37 -7
  64. package/Server/Types/Markdown.ts +9 -9
  65. package/Server/Types/MarkdownSlugify.ts +47 -0
  66. package/Server/Utils/AI/AIRunTranscript.ts +240 -0
  67. package/Server/Utils/AI/Chat/ChatAgentRunner.ts +9 -0
  68. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +119 -5
  69. package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +75 -0
  70. package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +235 -0
  71. package/Server/Utils/AI/SRE/Insights/FixRouting.ts +2 -3
  72. package/Server/Utils/AI/Toolbox/CodeTools.ts +883 -0
  73. package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +519 -0
  74. package/Server/Utils/AI/Toolbox/Index.ts +27 -0
  75. package/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.ts +279 -0
  76. package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +19 -1
  77. package/Server/Utils/Attribution.ts +99 -0
  78. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +600 -0
  79. package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +7 -2
  80. package/Server/Utils/LLM/LLMService.ts +397 -18
  81. package/Server/Utils/Marketing/ConversionUploadProvider.ts +103 -0
  82. package/Server/Utils/Marketing/ConversionUploadProviders.ts +22 -0
  83. package/Server/Utils/Marketing/Providers/GoogleAds.ts +270 -0
  84. package/Server/Utils/Marketing/Providers/LinkedIn.ts +147 -0
  85. package/Server/Utils/Marketing/Providers/Meta.ts +148 -0
  86. package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +196 -0
  87. package/Server/Utils/Marketing/Providers/Reddit.ts +178 -0
  88. package/Server/Utils/Monitor/MonitorAlert.ts +71 -7
  89. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +31 -19
  90. package/Server/Utils/Monitor/MonitorIncident.ts +71 -7
  91. package/Server/Utils/Monitor/MonitorMetricUtil.ts +57 -0
  92. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +94 -0
  93. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +19 -11
  94. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +125 -14
  95. package/Server/Utils/ProductAnalytics.ts +133 -0
  96. package/Server/Utils/Telemetry/Telemetry.ts +39 -0
  97. package/Server/Utils/Telemetry/TelemetryEntity.ts +21 -0
  98. package/Tests/Models/StatusPageEnableMcpServer.test.ts +125 -0
  99. package/Tests/Server/API/BaseAnalyticsAPI.test.ts +72 -0
  100. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +9 -1
  101. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +21 -2
  102. package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +173 -0
  103. package/Tests/Server/Services/MetricServiceAggregate.test.ts +1391 -0
  104. package/Tests/Server/Services/NetworkDeviceOwnerServices.test.ts +260 -0
  105. package/Tests/Server/Services/StatusPageServiceMcp.test.ts +223 -0
  106. package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +26 -3
  107. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +12 -0
  108. package/Tests/Server/Types/Markdown.test.ts +106 -0
  109. package/Tests/Server/Utils/AI/AIRunTranscript.test.ts +182 -0
  110. package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +411 -0
  111. package/Tests/Server/Utils/AI/CodeTools.test.ts +596 -0
  112. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +475 -0
  113. package/Tests/Server/Utils/AI/LLMServiceModelCompatibility.test.ts +548 -0
  114. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +142 -0
  115. package/Tests/Server/Utils/AI/ScheduledMaintenanceTools.test.ts +176 -0
  116. package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +63 -0
  117. package/Tests/Server/Utils/GitHubGetFileContent.test.ts +197 -0
  118. package/Tests/Server/Utils/Monitor/MonitorTemplateUtilNetworkDevice.test.ts +389 -0
  119. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +502 -0
  120. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +764 -0
  121. package/Tests/Types/AI/AIAgentTaskStatus.test.ts +7 -6
  122. package/Tests/Types/AI/AIChatPageContext.test.ts +0 -0
  123. package/Tests/Types/AI/AIRunStatus.test.ts +42 -0
  124. package/Tests/Types/BaseDatabase/AggregationIntervalUtil.test.ts +111 -2
  125. package/Tests/Types/Database/EndsWith.test.ts +64 -0
  126. package/Tests/Types/Database/GreaterThan.test.ts +62 -0
  127. package/Tests/Types/Database/GreaterThanOrEqual.test.ts +65 -0
  128. package/Tests/Types/Database/GreaterThanOrNull.test.ts +63 -0
  129. package/Tests/Types/Database/Includes.test.ts +65 -0
  130. package/Tests/Types/Database/IncludesAll.test.ts +65 -0
  131. package/Tests/Types/Database/IncludesNone.test.ts +65 -0
  132. package/Tests/Types/Database/IsNull.test.ts +44 -0
  133. package/Tests/Types/Database/LessThan.test.ts +62 -0
  134. package/Tests/Types/Database/LessThanOrEqual.test.ts +62 -0
  135. package/Tests/Types/Database/LessThanOrNull.test.ts +62 -0
  136. package/Tests/Types/Database/MultiSearch.test.ts +81 -0
  137. package/Tests/Types/Database/NotContains.test.ts +64 -0
  138. package/Tests/Types/Database/NotNull.test.ts +44 -0
  139. package/Tests/Types/Database/StartsWith.test.ts +64 -0
  140. package/Tests/Types/Log/LogSeverity.test.ts +78 -0
  141. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +83 -1
  142. package/Tests/Types/Monitor/SnmpV3EnumParsing.test.ts +247 -0
  143. package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +263 -0
  144. package/Tests/UI/Components/BasicFormDropdownNormalization.test.tsx +167 -0
  145. package/Tests/UI/Components/Charts/AxisTickColor.test.tsx +66 -0
  146. package/Tests/UI/Components/XAxis.test.ts +5 -3
  147. package/Tests/UI/Utils/AIChatExport/ChatWidgetData.test.ts +319 -0
  148. package/Tests/UI/Utils/AIChatExport/ChatWidgetMarkdown.test.ts +188 -0
  149. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +76 -0
  150. package/Tests/Utils/Metrics/MetricExplorerUrl.test.ts +622 -0
  151. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +474 -0
  152. package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +52 -4
  153. package/Types/AI/AIAgentTaskStatus.ts +13 -0
  154. package/Types/AI/AIChatPageContext.ts +137 -0
  155. package/Types/AI/AIChatTypes.ts +44 -0
  156. package/Types/AI/AIFixReadiness.ts +46 -0
  157. package/Types/AI/AIRunStatus.ts +11 -0
  158. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +11 -0
  159. package/Types/BaseDatabase/AggregateBy.ts +31 -2
  160. package/Types/BaseDatabase/AggregatedResult.ts +22 -0
  161. package/Types/BaseDatabase/AggregationInterval.ts +11 -0
  162. package/Types/BaseDatabase/AggregationIntervalUtil.ts +30 -5
  163. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +16 -0
  164. package/Types/Email/EmailTemplateType.ts +3 -0
  165. package/Types/Log/LogSeverity.ts +61 -0
  166. package/Types/Marketing/MarketingConversion.ts +11 -0
  167. package/Types/Metrics/MetricQueryConfigData.ts +21 -0
  168. package/Types/Metrics/MetricQueryData.ts +8 -0
  169. package/Types/Metrics/MetricViewData.ts +8 -0
  170. package/Types/Monitor/MonitorMetricType.ts +8 -0
  171. package/Types/Monitor/MonitorStep.ts +9 -0
  172. package/Types/Monitor/MonitorStepSqlMonitor.ts +12 -0
  173. package/Types/Monitor/MonitorType.ts +2 -1
  174. package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +17 -12
  175. package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +13 -0
  176. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +37 -3
  177. package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +46 -0
  178. package/Types/Monitor/SnmpMonitor/SnmpEntityInfo.ts +15 -0
  179. package/Types/Monitor/SnmpMonitor/SnmpInterface.ts +8 -0
  180. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +17 -8
  181. package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +53 -0
  182. package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +43 -0
  183. package/Types/Monitor/SnmpMonitor/SnmpSystemInfo.ts +16 -0
  184. package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +119 -3
  185. package/Types/Monitor/SnmpMonitor/SnmpVersion.ts +40 -0
  186. package/Types/NetFlow/NetworkFlowRecord.ts +25 -0
  187. package/Types/Syslog/SyslogMessage.ts +18 -0
  188. package/Types/Telemetry/TelemetrySavedViewState.ts +9 -0
  189. package/Types/Telemetry/TelemetrySavedViewType.ts +12 -0
  190. package/UI/Components/Charts/Area/AreaChart.tsx +51 -0
  191. package/UI/Components/Charts/Bar/BarChart.tsx +51 -1
  192. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +97 -26
  193. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +336 -3
  194. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +118 -1
  195. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +336 -3
  196. package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +7 -0
  197. package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +15 -0
  198. package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +13 -0
  199. package/UI/Components/Charts/Line/LineChart.tsx +51 -0
  200. package/UI/Components/Charts/Types/ReferenceRegionProps.ts +12 -0
  201. package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +12 -0
  202. package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +1 -0
  203. package/UI/Components/Charts/Utils/DataPoint.ts +0 -0
  204. package/UI/Components/Charts/Utils/TimeAnnotation.ts +169 -0
  205. package/UI/Components/Charts/Utils/XAxis.ts +28 -4
  206. package/UI/Components/Forms/BasicForm.tsx +26 -8
  207. package/UI/Components/Icon/Icon.tsx +33 -13
  208. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +9 -0
  209. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +67 -0
  210. package/UI/Components/Page/ModelPage.tsx +6 -1
  211. package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +33 -4
  212. package/UI/Styles/Theme.css +1324 -0
  213. package/UI/Utils/AIChatExport/ChatWidgetData.ts +316 -0
  214. package/UI/Utils/AIChatExport/ChatWidgetMarkdown.ts +349 -0
  215. package/UI/Utils/AIChatExport/ConversationMarkdown.ts +177 -0
  216. package/UI/Utils/AIChatExport/MarkdownBlocks.ts +327 -0
  217. package/UI/Utils/AIChatExport/MarkdownSafety.ts +215 -0
  218. package/UI/Utils/DownloadFile.ts +54 -0
  219. package/UI/Utils/User.ts +41 -2
  220. package/Utils/Analytics.ts +8 -6
  221. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +74 -0
  222. package/Utils/Metrics/MetricExplorerUrl.ts +771 -0
  223. package/Utils/Metrics/MetricFormulaEvaluator.ts +410 -46
  224. package/Utils/Monitor/NetworkTopologyUtil.ts +261 -49
  225. package/Utils/ValueFormatter.ts +22 -1
  226. package/build/dist/Models/AnalyticsModels/Index.js +13 -0
  227. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  228. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js +159 -0
  229. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js.map +1 -0
  230. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +158 -0
  231. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js.map +1 -0
  232. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +160 -0
  233. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js.map +1 -0
  234. package/build/dist/Models/AnalyticsModels/NetworkFlow.js +351 -0
  235. package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -0
  236. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +15 -7
  237. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
  238. package/build/dist/Models/DatabaseModels/AIRun.js +38 -0
  239. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  240. package/build/dist/Models/DatabaseModels/AIRunEvent.js +31 -0
  241. package/build/dist/Models/DatabaseModels/AIRunEvent.js.map +1 -1
  242. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +19 -0
  243. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -1
  244. package/build/dist/Models/DatabaseModels/GlobalConfig.js +38 -0
  245. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  246. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  247. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  248. package/build/dist/Models/DatabaseModels/MarketingConversion.js +219 -0
  249. package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -0
  250. package/build/dist/Models/DatabaseModels/MetricSavedView.js +35 -0
  251. package/build/dist/Models/DatabaseModels/MetricSavedView.js.map +1 -1
  252. package/build/dist/Models/DatabaseModels/MetricType.js +76 -0
  253. package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
  254. package/build/dist/Models/DatabaseModels/NetworkDevice.js +341 -0
  255. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  256. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +341 -0
  257. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  258. package/build/dist/Models/DatabaseModels/NetworkInterface.js +60 -0
  259. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  260. package/build/dist/Models/DatabaseModels/Project.js +65 -0
  261. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  262. package/build/dist/Models/DatabaseModels/StatusPage.js +43 -0
  263. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  264. package/build/dist/Models/DatabaseModels/User.js +38 -0
  265. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  266. package/build/dist/Server/API/AIAgentTaskAPI.js +37 -11
  267. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
  268. package/build/dist/Server/API/AIAgentTaskLogAPI.js +32 -7
  269. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
  270. package/build/dist/Server/API/AIChatAPI.js +9 -0
  271. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  272. package/build/dist/Server/API/AIReadinessAPI.js +57 -0
  273. package/build/dist/Server/API/AIReadinessAPI.js.map +1 -0
  274. package/build/dist/Server/API/BaseAnalyticsAPI.js +19 -0
  275. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  276. package/build/dist/Server/API/CodeFixRunAPI.js +142 -0
  277. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -1
  278. package/build/dist/Server/API/EnterpriseLicenseAPI.js +8 -0
  279. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  280. package/build/dist/Server/API/TelemetryExceptionAPI.js +4 -0
  281. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  282. package/build/dist/Server/EnvironmentConfig.js +51 -0
  283. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  284. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js +80 -0
  285. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js.map +1 -0
  286. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js +37 -0
  287. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js.map +1 -0
  288. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js +23 -0
  289. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js.map +1 -0
  290. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js +27 -0
  291. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js.map +1 -0
  292. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js +21 -0
  293. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js.map +1 -0
  294. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js +22 -0
  295. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js.map +1 -0
  296. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js +47 -0
  297. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js.map +1 -0
  298. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js +16 -0
  299. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js.map +1 -0
  300. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js +18 -0
  301. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js.map +1 -0
  302. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js +20 -0
  303. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js.map +1 -0
  304. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
  305. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  306. package/build/dist/Server/Services/AIRunEventService.js +8 -0
  307. package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
  308. package/build/dist/Server/Services/AIRunService.js +29 -0
  309. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  310. package/build/dist/Server/Services/AnalyticsDatabaseService.js +58 -4
  311. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  312. package/build/dist/Server/Services/IncidentService.js +12 -0
  313. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  314. package/build/dist/Server/Services/Index.js +10 -0
  315. package/build/dist/Server/Services/Index.js.map +1 -1
  316. package/build/dist/Server/Services/LlmProviderService.js +2 -0
  317. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  318. package/build/dist/Server/Services/MarketingConversionService.js +9 -0
  319. package/build/dist/Server/Services/MarketingConversionService.js.map +1 -0
  320. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js +29 -0
  321. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js.map +1 -0
  322. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js +29 -0
  323. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js.map +1 -0
  324. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js +29 -0
  325. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js.map +1 -0
  326. package/build/dist/Server/Services/MetricService.js +761 -125
  327. package/build/dist/Server/Services/MetricService.js.map +1 -1
  328. package/build/dist/Server/Services/MonitorService.js +18 -5
  329. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  330. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js +44 -0
  331. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js.map +1 -1
  332. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js +88 -0
  333. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js.map +1 -1
  334. package/build/dist/Server/Services/NetworkFlowService.js +9 -0
  335. package/build/dist/Server/Services/NetworkFlowService.js.map +1 -0
  336. package/build/dist/Server/Services/OnCallDutyPolicyService.js +15 -6
  337. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  338. package/build/dist/Server/Services/ProjectService.js +146 -6
  339. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  340. package/build/dist/Server/Services/SpanService.js +8 -6
  341. package/build/dist/Server/Services/SpanService.js.map +1 -1
  342. package/build/dist/Server/Services/StatusPageService.js +91 -0
  343. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  344. package/build/dist/Server/Services/TeamMemberService.js +11 -0
  345. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  346. package/build/dist/Server/Services/TelemetryExceptionService.js +14 -61
  347. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  348. package/build/dist/Server/Services/UserService.js +52 -0
  349. package/build/dist/Server/Services/UserService.js.map +1 -1
  350. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +33 -7
  351. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  352. package/build/dist/Server/Types/Markdown.js +8 -8
  353. package/build/dist/Server/Types/Markdown.js.map +1 -1
  354. package/build/dist/Server/Types/MarkdownSlugify.js +47 -0
  355. package/build/dist/Server/Types/MarkdownSlugify.js.map +1 -0
  356. package/build/dist/Server/Utils/AI/AIRunTranscript.js +180 -0
  357. package/build/dist/Server/Utils/AI/AIRunTranscript.js.map +1 -0
  358. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +1 -0
  359. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
  360. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +103 -5
  361. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  362. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +55 -0
  363. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
  364. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +211 -0
  365. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -0
  366. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -1
  367. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +654 -0
  368. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -0
  369. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +389 -0
  370. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js.map +1 -0
  371. package/build/dist/Server/Utils/AI/Toolbox/Index.js +19 -0
  372. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  373. package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js +239 -0
  374. package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js.map +1 -0
  375. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +19 -1
  376. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -1
  377. package/build/dist/Server/Utils/Attribution.js +74 -0
  378. package/build/dist/Server/Utils/Attribution.js.map +1 -0
  379. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +439 -0
  380. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  381. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +1 -1
  382. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -1
  383. package/build/dist/Server/Utils/LLM/LLMService.js +275 -19
  384. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  385. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +40 -0
  386. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -0
  387. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js +20 -0
  388. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js.map +1 -0
  389. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +177 -0
  390. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -0
  391. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +113 -0
  392. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -0
  393. package/build/dist/Server/Utils/Marketing/Providers/Meta.js +109 -0
  394. package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -0
  395. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +130 -0
  396. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -0
  397. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +126 -0
  398. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -0
  399. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +53 -9
  400. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  401. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -10
  402. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  403. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +54 -11
  404. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  405. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +43 -3
  406. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  407. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +68 -0
  408. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  409. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +17 -11
  410. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  411. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +100 -15
  412. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  413. package/build/dist/Server/Utils/ProductAnalytics.js +111 -0
  414. package/build/dist/Server/Utils/ProductAnalytics.js.map +1 -0
  415. package/build/dist/Server/Utils/Telemetry/Telemetry.js +32 -5
  416. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  417. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -0
  418. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  419. package/build/dist/Types/AI/AIAgentTaskStatus.js +12 -0
  420. package/build/dist/Types/AI/AIAgentTaskStatus.js.map +1 -1
  421. package/build/dist/Types/AI/AIChatPageContext.js +101 -0
  422. package/build/dist/Types/AI/AIChatPageContext.js.map +1 -0
  423. package/build/dist/Types/AI/AIChatTypes.js +2 -0
  424. package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
  425. package/build/dist/Types/AI/AIFixReadiness.js +9 -0
  426. package/build/dist/Types/AI/AIFixReadiness.js.map +1 -0
  427. package/build/dist/Types/AI/AIRunStatus.js +11 -0
  428. package/build/dist/Types/AI/AIRunStatus.js.map +1 -1
  429. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +11 -0
  430. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  431. package/build/dist/Types/BaseDatabase/AggregationInterval.js +11 -0
  432. package/build/dist/Types/BaseDatabase/AggregationInterval.js.map +1 -1
  433. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +33 -5
  434. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  435. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  436. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  437. package/build/dist/Types/Log/LogSeverity.js +56 -0
  438. package/build/dist/Types/Log/LogSeverity.js.map +1 -1
  439. package/build/dist/Types/Marketing/MarketingConversion.js +13 -0
  440. package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -0
  441. package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
  442. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  443. package/build/dist/Types/Monitor/MonitorStep.js +6 -0
  444. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  445. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +3 -0
  446. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  447. package/build/dist/Types/Monitor/MonitorType.js +2 -1
  448. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  449. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js +2 -0
  450. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js.map +1 -0
  451. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +41 -0
  452. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -1
  453. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js +2 -0
  454. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js.map +1 -0
  455. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +48 -0
  456. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -1
  457. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +38 -0
  458. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -1
  459. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js +2 -0
  460. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js.map +1 -0
  461. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +96 -3
  462. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
  463. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js +38 -0
  464. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js.map +1 -1
  465. package/build/dist/Types/NetFlow/NetworkFlowRecord.js +2 -0
  466. package/build/dist/Types/NetFlow/NetworkFlowRecord.js.map +1 -0
  467. package/build/dist/Types/Syslog/SyslogMessage.js +2 -0
  468. package/build/dist/Types/Syslog/SyslogMessage.js.map +1 -0
  469. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js +0 -7
  470. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js.map +1 -1
  471. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js +13 -0
  472. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js.map +1 -0
  473. package/build/dist/UI/Components/Charts/Area/AreaChart.js +25 -1
  474. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  475. package/build/dist/UI/Components/Charts/Bar/BarChart.js +26 -2
  476. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  477. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +36 -12
  478. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  479. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +217 -8
  480. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  481. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +55 -4
  482. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  483. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +217 -8
  484. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  485. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +6 -1
  486. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
  487. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js +2 -0
  488. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js.map +1 -0
  489. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js +2 -0
  490. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js.map +1 -0
  491. package/build/dist/UI/Components/Charts/Line/LineChart.js +25 -1
  492. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  493. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js +2 -0
  494. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js.map +1 -0
  495. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js +2 -0
  496. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js.map +1 -0
  497. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +1 -0
  498. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -1
  499. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +0 -0
  500. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  501. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +121 -0
  502. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -0
  503. package/build/dist/UI/Components/Charts/Utils/XAxis.js +27 -4
  504. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  505. package/build/dist/UI/Components/Forms/BasicForm.js +24 -6
  506. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  507. package/build/dist/UI/Components/Icon/Icon.js +15 -8
  508. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  509. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  510. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +58 -0
  511. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  512. package/build/dist/UI/Components/Page/ModelPage.js +7 -1
  513. package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
  514. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +10 -4
  515. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
  516. package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js +217 -0
  517. package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js.map +1 -0
  518. package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js +234 -0
  519. package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js.map +1 -0
  520. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js +111 -0
  521. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js.map +1 -0
  522. package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js +233 -0
  523. package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js.map +1 -0
  524. package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js +134 -0
  525. package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js.map +1 -0
  526. package/build/dist/UI/Utils/DownloadFile.js +41 -0
  527. package/build/dist/UI/Utils/DownloadFile.js.map +1 -0
  528. package/build/dist/UI/Utils/User.js +35 -2
  529. package/build/dist/UI/Utils/User.js.map +1 -1
  530. package/build/dist/Utils/Analytics.js +8 -5
  531. package/build/dist/Utils/Analytics.js.map +1 -1
  532. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +57 -0
  533. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  534. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +418 -0
  535. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -0
  536. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +296 -37
  537. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -1
  538. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +176 -40
  539. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  540. package/build/dist/Utils/ValueFormatter.js +20 -1
  541. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  542. package/package.json +6 -2
@@ -0,0 +1,233 @@
1
+ import remarkGfm from "remark-gfm";
2
+ import remarkParse from "remark-parse";
3
+ import { unified } from "unified";
4
+ /*
5
+ * Flattens markdown into a small list of drawable blocks.
6
+ *
7
+ * The PDF exporter cannot use the chat's React markdown renderer, but it should
8
+ * not hand-roll a markdown parser either — that is how exports end up rendering
9
+ * a code fence as bold text. So the same parser the chat uses (remark + GFM)
10
+ * produces the tree, and this module lowers it into a shape a drawing routine
11
+ * can consume without knowing anything about mdast.
12
+ *
13
+ * Only the constructs an assistant answer actually produces are modelled.
14
+ * Anything unrecognized degrades to its text content rather than disappearing.
15
+ */
16
+ export var MarkdownBlockType;
17
+ (function (MarkdownBlockType) {
18
+ MarkdownBlockType["Heading"] = "Heading";
19
+ MarkdownBlockType["Paragraph"] = "Paragraph";
20
+ MarkdownBlockType["ListItem"] = "ListItem";
21
+ MarkdownBlockType["Code"] = "Code";
22
+ MarkdownBlockType["Quote"] = "Quote";
23
+ MarkdownBlockType["Table"] = "Table";
24
+ MarkdownBlockType["Rule"] = "Rule";
25
+ })(MarkdownBlockType || (MarkdownBlockType = {}));
26
+ const BASE_STYLE = {
27
+ isBold: false,
28
+ isItalic: false,
29
+ isCode: false,
30
+ isStrikethrough: false,
31
+ };
32
+ function collectInlines(nodes, style, into) {
33
+ for (const node of nodes) {
34
+ switch (node.type) {
35
+ case "text":
36
+ if (node.value) {
37
+ into.push({
38
+ text: node.value,
39
+ isBold: style.isBold,
40
+ isItalic: style.isItalic,
41
+ isStrikethrough: style.isStrikethrough,
42
+ });
43
+ }
44
+ break;
45
+ case "inlineCode":
46
+ into.push({
47
+ text: node.value || "",
48
+ isCode: true,
49
+ isBold: style.isBold,
50
+ isItalic: style.isItalic,
51
+ });
52
+ break;
53
+ case "strong":
54
+ collectInlines(node.children || [], Object.assign(Object.assign({}, style), { isBold: true }), into);
55
+ break;
56
+ case "emphasis":
57
+ collectInlines(node.children || [], Object.assign(Object.assign({}, style), { isItalic: true }), into);
58
+ break;
59
+ case "delete":
60
+ collectInlines(node.children || [], Object.assign(Object.assign({}, style), { isStrikethrough: true }), into);
61
+ break;
62
+ case "break":
63
+ into.push({ text: "\n" });
64
+ break;
65
+ /*
66
+ * Links and images should already have been rewritten into text by the
67
+ * neutralizer before this runs. If one survives, keep its text and drop
68
+ * the destination rather than carrying a live URL forward.
69
+ */
70
+ case "link":
71
+ case "image":
72
+ case "linkReference":
73
+ case "imageReference":
74
+ collectInlines(node.children || [], style, into);
75
+ break;
76
+ default:
77
+ if (node.children) {
78
+ collectInlines(node.children, style, into);
79
+ }
80
+ else if (node.value) {
81
+ into.push({ text: node.value, isBold: style.isBold });
82
+ }
83
+ break;
84
+ }
85
+ }
86
+ }
87
+ function inlinesOf(nodes) {
88
+ const inlines = [];
89
+ collectInlines(nodes, BASE_STYLE, inlines);
90
+ return inlines;
91
+ }
92
+ function plainTextOf(nodes) {
93
+ return inlinesOf(nodes)
94
+ .map((inline) => {
95
+ return inline.text;
96
+ })
97
+ .join("");
98
+ }
99
+ function tableToBlock(node) {
100
+ const rows = (node.children || []).map((row) => {
101
+ return (row.children || []).map((cell) => {
102
+ return plainTextOf(cell.children || []);
103
+ });
104
+ });
105
+ const headers = rows.length > 0 ? rows[0] : [];
106
+ const alignments = (node.align || []).map((align) => {
107
+ if (align === "right") {
108
+ return "right";
109
+ }
110
+ if (align === "center") {
111
+ return "center";
112
+ }
113
+ return "left";
114
+ });
115
+ return {
116
+ type: MarkdownBlockType.Table,
117
+ headers: headers,
118
+ rows: rows.slice(1),
119
+ alignments: alignments,
120
+ };
121
+ }
122
+ function flattenList(node, indent, into) {
123
+ const isOrdered = node.ordered === true;
124
+ let counter = typeof node.start === "number" ? node.start : 1;
125
+ for (const item of node.children || []) {
126
+ const inlines = [];
127
+ const nested = [];
128
+ for (const child of item.children || []) {
129
+ if (child.type === "list") {
130
+ flattenList(child, indent + 1, nested);
131
+ }
132
+ else if (child.type === "paragraph") {
133
+ // Multiple paragraphs in one item are joined by a soft break.
134
+ if (inlines.length > 0) {
135
+ inlines.push({ text: "\n" });
136
+ }
137
+ collectInlines(child.children || [], BASE_STYLE, inlines);
138
+ }
139
+ else {
140
+ toBlocks(child, nested, indent + 1);
141
+ }
142
+ }
143
+ into.push({
144
+ type: MarkdownBlockType.ListItem,
145
+ inlines: inlines,
146
+ indent: indent,
147
+ marker: isOrdered ? `${counter}.` : "-",
148
+ });
149
+ into.push(...nested);
150
+ counter++;
151
+ }
152
+ }
153
+ function toBlocks(node, into, indent = 0) {
154
+ switch (node.type) {
155
+ case "heading":
156
+ into.push({
157
+ type: MarkdownBlockType.Heading,
158
+ level: node.depth || 1,
159
+ inlines: inlinesOf(node.children || []),
160
+ });
161
+ break;
162
+ case "paragraph":
163
+ into.push({
164
+ type: MarkdownBlockType.Paragraph,
165
+ inlines: inlinesOf(node.children || []),
166
+ indent: indent,
167
+ });
168
+ break;
169
+ case "list":
170
+ flattenList(node, indent, into);
171
+ break;
172
+ case "code":
173
+ into.push({
174
+ type: MarkdownBlockType.Code,
175
+ code: node.value || "",
176
+ language: node.lang || "",
177
+ });
178
+ break;
179
+ case "blockquote":
180
+ for (const child of node.children || []) {
181
+ const quoted = [];
182
+ toBlocks(child, quoted, indent);
183
+ for (const block of quoted) {
184
+ into.push(Object.assign(Object.assign({}, block), { type: MarkdownBlockType.Quote }));
185
+ }
186
+ }
187
+ break;
188
+ case "table":
189
+ into.push(tableToBlock(node));
190
+ break;
191
+ case "thematicBreak":
192
+ into.push({ type: MarkdownBlockType.Rule });
193
+ break;
194
+ case "html":
195
+ // Raw HTML is inert text here; show it rather than silently dropping it.
196
+ if (node.value) {
197
+ into.push({
198
+ type: MarkdownBlockType.Paragraph,
199
+ inlines: [{ text: node.value }],
200
+ indent: indent,
201
+ });
202
+ }
203
+ break;
204
+ default:
205
+ if (node.children) {
206
+ for (const child of node.children) {
207
+ toBlocks(child, into, indent);
208
+ }
209
+ }
210
+ break;
211
+ }
212
+ }
213
+ export default function parseMarkdownBlocks(text) {
214
+ if (!text) {
215
+ return [];
216
+ }
217
+ try {
218
+ const tree = unified()
219
+ .use(remarkParse)
220
+ .use(remarkGfm)
221
+ .parse(text);
222
+ const blocks = [];
223
+ for (const child of tree.children || []) {
224
+ toBlocks(child, blocks);
225
+ }
226
+ return blocks;
227
+ }
228
+ catch (_a) {
229
+ // A parse failure should still show the answer, just without formatting.
230
+ return [{ type: MarkdownBlockType.Paragraph, inlines: [{ text: text }] }];
231
+ }
232
+ }
233
+ //# sourceMappingURL=MarkdownBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownBlocks.js","sourceRoot":"","sources":["../../../../../UI/Utils/AIChatExport/MarkdownBlocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ import { gfmToMarkdown } from "mdast-util-gfm";
2
+ import { toMarkdown } from "mdast-util-to-markdown";
3
+ import remarkGfm from "remark-gfm";
4
+ import remarkParse from "remark-parse";
5
+ import { unified } from "unified";
6
+ // Node types that may only appear inside a block, never directly under the root.
7
+ const PHRASING_TYPES = new Set(["text", "inlineCode"]);
8
+ function textNode(value) {
9
+ return { type: "text", value: value };
10
+ }
11
+ function codeNode(value) {
12
+ return { type: "inlineCode", value: value };
13
+ }
14
+ // The visible text of a subtree, used to decide whether a label adds anything.
15
+ function textOf(nodes) {
16
+ return nodes
17
+ .map((node) => {
18
+ if (node.type === "text" || node.type === "inlineCode") {
19
+ return node.value || "";
20
+ }
21
+ return node.children ? textOf(node.children) : "";
22
+ })
23
+ .join("");
24
+ }
25
+ /*
26
+ * "label (`url`)" — or just "`url`" when the label is only a repeat of the URL,
27
+ * which is what an autolink or a GFM bare URL parses into.
28
+ */
29
+ function inertLink(label, url) {
30
+ const labelText = textOf(label);
31
+ const hasDistinctLabel = Boolean(labelText) && labelText !== url;
32
+ if (!url) {
33
+ return hasDistinctLabel ? label : [textNode(labelText)];
34
+ }
35
+ if (!hasDistinctLabel) {
36
+ return [codeNode(url)];
37
+ }
38
+ return [...label, textNode(" ("), codeNode(url), textNode(")")];
39
+ }
40
+ function neutralizeNode(node, definitions, isRootChild) {
41
+ // Depth first, so a link nested inside emphasis is rewritten before its parent.
42
+ if (node.children) {
43
+ const rewritten = [];
44
+ for (const child of node.children) {
45
+ rewritten.push(...neutralizeNode(child, definitions, false));
46
+ }
47
+ node.children = rewritten;
48
+ }
49
+ const identifier = (node.identifier || "").toLowerCase();
50
+ switch (node.type) {
51
+ /*
52
+ * Drop link definitions outright. Their referents have already been
53
+ * inlined below, and leaving a definition behind would let "[x][ref]"
54
+ * resolve to a live link again.
55
+ */
56
+ case "definition":
57
+ return [];
58
+ /*
59
+ * Raw HTML is inert on screen (react-markdown does not render it without
60
+ * rehype-raw), but a .md file is rendered by viewers that do, where an
61
+ * <img src> or <a href> would be live. Demote it to text — toMarkdown
62
+ * escapes the angle brackets on the way out.
63
+ */
64
+ case "html": {
65
+ const asText = textNode(node.value || "");
66
+ return isRootChild
67
+ ? [{ type: "paragraph", children: [asText] }]
68
+ : [asText];
69
+ }
70
+ case "link":
71
+ return inertLink(node.children || [], node.url || "");
72
+ case "image":
73
+ return inertLink([textNode(`[image: ${node.alt || ""}]`)], node.url || "");
74
+ case "linkReference":
75
+ return inertLink(node.children || [], definitions.get(identifier) || "");
76
+ case "imageReference":
77
+ return inertLink([textNode(`[image: ${node.alt || ""}]`)], definitions.get(identifier) || "");
78
+ default:
79
+ return [node];
80
+ }
81
+ }
82
+ function collectDefinitions(node, into) {
83
+ if (node.type === "definition" && node.identifier) {
84
+ into.set(node.identifier.toLowerCase(), node.url || "");
85
+ }
86
+ for (const child of node.children || []) {
87
+ collectDefinitions(child, into);
88
+ }
89
+ }
90
+ /*
91
+ * Rewrites every link, image and raw HTML node in `text` into inert text, and
92
+ * returns the result as markdown. Safe to call on any string; a parse failure
93
+ * degrades to a fenced code block rather than emitting unneutralized markdown.
94
+ */
95
+ export default function neutralizeAssistantMarkdown(text) {
96
+ if (!text) {
97
+ return "";
98
+ }
99
+ try {
100
+ const tree = unified()
101
+ .use(remarkParse)
102
+ .use(remarkGfm)
103
+ .parse(text);
104
+ const definitions = new Map();
105
+ collectDefinitions(tree, definitions);
106
+ const children = [];
107
+ for (const child of tree.children || []) {
108
+ children.push(...neutralizeNode(child, definitions, true));
109
+ }
110
+ /*
111
+ * A root child demoted to phrasing (a stray inline node left behind once
112
+ * its link wrapper was removed) is not valid at root level; wrap it back
113
+ * into a paragraph so the serializer stays on its typed path.
114
+ */
115
+ tree.children = children.map((child) => {
116
+ return PHRASING_TYPES.has(child.type)
117
+ ? { type: "paragraph", children: [child] }
118
+ : child;
119
+ });
120
+ return toMarkdown(tree, {
121
+ extensions: [gfmToMarkdown()],
122
+ bullet: "-",
123
+ }).trim();
124
+ }
125
+ catch (_a) {
126
+ /*
127
+ * Never fall back to returning the raw string: that would ship exactly the
128
+ * live links this function exists to remove. A fence renders the content
129
+ * verbatim and inert.
130
+ */
131
+ return ["```", text.replace(/```/g, "'''"), "```"].join("\n");
132
+ }
133
+ }
134
+ //# sourceMappingURL=MarkdownSafety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownSafety.js","sourceRoot":"","sources":["../../../../../UI/Utils/AIChatExport/MarkdownSafety.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Triggers a browser download for content generated in the page.
3
+ *
4
+ * The object URL is revoked once the click has been dispatched so a large
5
+ * export (a PDF can run to megabytes) is not pinned in memory until the user
6
+ * navigates away.
7
+ */
8
+ export default function downloadFile(data) {
9
+ const blob = data.content instanceof Blob
10
+ ? data.content
11
+ : new Blob([data.content], {
12
+ type: data.mimeType || "text/plain;charset=utf-8;",
13
+ });
14
+ const url = window.URL.createObjectURL(blob);
15
+ const anchor = document.createElement("a");
16
+ anchor.href = url;
17
+ anchor.download = data.filename;
18
+ anchor.rel = "noopener";
19
+ document.body.appendChild(anchor);
20
+ anchor.click();
21
+ document.body.removeChild(anchor);
22
+ window.URL.revokeObjectURL(url);
23
+ }
24
+ /*
25
+ * Slugifies a label and stamps it with the export time, so repeated exports of
26
+ * the same conversation land as distinct files. Mirrors the naming used by the
27
+ * CSV export (TableColumnsToCsv.getExportFilename).
28
+ */
29
+ export function getExportFilename(data) {
30
+ const slug = data.label
31
+ .replace(/[^a-zA-Z0-9-_]+/g, "-")
32
+ .replace(/^-+|-+$/g, "")
33
+ .toLowerCase()
34
+ .substring(0, 60) || "ai-conversation";
35
+ const timestamp = data.exportedAt
36
+ .toISOString()
37
+ .replace(/[:.]/g, "-")
38
+ .slice(0, 19);
39
+ return `${slug}-${timestamp}.${data.extension}`;
40
+ }
41
+ //# sourceMappingURL=DownloadFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DownloadFile.js","sourceRoot":"","sources":["../../../../UI/Utils/DownloadFile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAIpC;IACC,MAAM,IAAI,GACR,IAAI,CAAC,OAAO,YAAY,IAAI;QAC1B,CAAC,CAAC,IAAI,CAAC,OAAO;QACd,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACvB,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,2BAA2B;SACnD,CAAC,CAAC;IAET,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GAAsB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAIjC;IACC,MAAM,IAAI,GACR,IAAI,CAAC,KAAK;SACP,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE;SACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC;IAE3C,MAAM,SAAS,GAAW,IAAI,CAAC,UAAU;SACtC,WAAW,EAAE;SACb,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhB,OAAO,GAAG,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AAClD,CAAC"}
@@ -154,14 +154,47 @@ export default class UserUtil {
154
154
  const localStorageItems = LocalStorage.getAllItems();
155
155
  const result = {};
156
156
  for (const key in localStorageItems) {
157
- if (!localStorageItems[key]) {
157
+ const value = localStorageItems[key];
158
+ /*
159
+ * Older versions of the marketing site stored the literal strings
160
+ * "null" / "undefined" for missing utm params. Filter those out so
161
+ * they never end up on the User record.
162
+ */
163
+ if (!value || value === "null" || value === "undefined") {
158
164
  continue;
159
165
  }
160
166
  if (key.startsWith("utm")) {
161
- result[key] = localStorageItems[key];
167
+ result[key] = value;
162
168
  }
163
169
  }
164
170
  return result;
165
171
  }
172
+ // Ad platform click IDs (gclid, fbclid, etc.) stored by the marketing site.
173
+ static getAttributionClickIds() {
174
+ return UserUtil.parseJsonLocalStorageItem("clickIds");
175
+ }
176
+ // First attributed touch (utm params, click IDs, landing URL) — never overwritten.
177
+ static getFirstTouchAttribution() {
178
+ return UserUtil.parseJsonLocalStorageItem("firstTouch");
179
+ }
180
+ static parseJsonLocalStorageItem(key) {
181
+ /*
182
+ * LocalStorage.getItem JSON-parses stored strings when it can, so this
183
+ * may already be an object; fall back to parsing the raw string.
184
+ */
185
+ let value = LocalStorage.getItem(key);
186
+ if (typeof value === "string") {
187
+ try {
188
+ value = JSON.parse(value);
189
+ }
190
+ catch (_a) {
191
+ return null;
192
+ }
193
+ }
194
+ if (value && typeof value === "object" && !Array.isArray(value)) {
195
+ return value;
196
+ }
197
+ return null;
198
+ }
166
199
  }
167
200
  //# sourceMappingURL=User.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../UI/Utils/User.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../UI/Utils/User.ts"],"names":[],"mappings":"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"}
@@ -26,12 +26,15 @@ export default class Analytics {
26
26
  posthog.reset();
27
27
  }
28
28
  capture(eventName, data) {
29
- if (!this.isInitialized) {
30
- return;
31
- }
32
29
  // PostHog tracking
33
- posthog.capture(eventName, data);
34
- // GA4 tracking via dataLayer (for Google Analytics conversion tracking)
30
+ if (this.isInitialized) {
31
+ posthog.capture(eventName, data);
32
+ }
33
+ /*
34
+ * GA4 tracking via dataLayer (for Google Analytics / Google Ads conversion
35
+ * tracking). This must not depend on PostHog being configured — GTM is
36
+ * loaded independently of ANALYTICS_KEY / ANALYTICS_HOST.
37
+ */
35
38
  if (typeof window !== "undefined" && window.dataLayer) {
36
39
  window.dataLayer.push(Object.assign({ event: eventName, eventCategory: "analytics", eventAction: eventName }, (data || {})));
37
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Analytics.js","sourceRoot":"","sources":["../../../Utils/Analytics.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,SAAS;IAE5B,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,IAAW,aAAa,CAAC,CAAU;QACjC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,YAAmB,OAAe,EAAE,MAAc;QAR1C,mBAAc,GAAY,KAAK,CAAC;QAStC,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,KAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAEM,OAAO,CAAC,SAAiB,EAAE,IAAiB;QACjD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEjC,wEAAwE;QACxE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,SAAS,EAAE,CAAC;YAC9D,MAAc,CAAC,SAAS,CAAC,IAAI,iBAC5B,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,WAAW,EAC1B,WAAW,EAAE,SAAS,IACnB,CAAC,IAAI,IAAI,EAAE,CAAC,EACf,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"Analytics.js","sourceRoot":"","sources":["../../../Utils/Analytics.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,SAAS;IAE5B,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,IAAW,aAAa,CAAC,CAAU;QACjC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,YAAmB,OAAe,EAAE,MAAc;QAR1C,mBAAc,GAAY,KAAK,CAAC;QAStC,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,KAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAEM,OAAO,CAAC,SAAiB,EAAE,IAAiB;QACjD,mBAAmB;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAED;;;;WAIG;QACH,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,SAAS,EAAE,CAAC;YAC9D,MAAc,CAAC,SAAS,CAAC,IAAI,iBAC5B,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,WAAW,EAC1B,WAAW,EAAE,SAAS,IACnB,CAAC,IAAI,IAAI,EAAE,CAAC,EACf,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,42 @@
1
1
  import OneUptimeDate from "../../Types/Date";
2
2
  class EnterpriseLicenseUsageUtil {
3
+ /*
4
+ * License keys are shown/emailed masked — enough to identify the key
5
+ * without exposing it in full.
6
+ */
7
+ static maskLicenseKey(licenseKey) {
8
+ if (licenseKey.length <= 8) {
9
+ return "••••••••";
10
+ }
11
+ return `${licenseKey.substring(0, 4)}••••${licenseKey.substring(licenseKey.length - 4)}`;
12
+ }
13
+ /*
14
+ * Normalizes a client-provided list of master admin emails: keeps only
15
+ * email-shaped strings, lowercases them, removes duplicates and caps the
16
+ * list size. Returns an empty array for anything that is not an array.
17
+ */
18
+ static sanitizeMasterAdminEmails(value) {
19
+ if (!Array.isArray(value)) {
20
+ return [];
21
+ }
22
+ const emails = new Set();
23
+ for (const item of value) {
24
+ if (emails.size >= this.maxMasterAdminEmailsPerInstance) {
25
+ break;
26
+ }
27
+ if (typeof item !== "string") {
28
+ continue;
29
+ }
30
+ const normalized = item.trim().toLowerCase();
31
+ if (!normalized ||
32
+ normalized.length > 320 ||
33
+ !this.emailRegex.test(normalized)) {
34
+ continue;
35
+ }
36
+ emails.add(normalized);
37
+ }
38
+ return Array.from(emails);
39
+ }
3
40
  /*
4
41
  * Normalizes a client-provided list of email hashes: keeps only valid
5
42
  * SHA-256 hex strings, lowercases them, removes duplicates and caps the
@@ -70,6 +107,18 @@ class EnterpriseLicenseUsageUtil {
70
107
  return uniqueHashes.size + usersWithoutHashes;
71
108
  }
72
109
  }
110
+ /*
111
+ * How many days before a license expires that expiry reminder emails
112
+ * start going out, unless overridden in GlobalConfig
113
+ * (enterpriseLicenseExpiryReminderDays).
114
+ */
115
+ EnterpriseLicenseUsageUtil.defaultExpiryReminderDays = 45;
116
+ /*
117
+ * Expired licenses keep getting a daily "expired" email for this many
118
+ * days after expiry, then go quiet — an abandoned license should not be
119
+ * emailed forever.
120
+ */
121
+ EnterpriseLicenseUsageUtil.expiredNotificationCutoffDays = 30;
73
122
  /*
74
123
  * Instances that stopped reporting (for example a decommissioned staging
75
124
  * environment) stop counting towards the seat total after this many days,
@@ -79,5 +128,13 @@ EnterpriseLicenseUsageUtil.InstanceUsageFreshnessInDays = 30;
79
128
  // SHA-256 hex digest.
80
129
  EnterpriseLicenseUsageUtil.emailHashRegex = /^[a-f0-9]{64}$/;
81
130
  EnterpriseLicenseUsageUtil.maxEmailHashesPerInstance = 200000;
131
+ /*
132
+ * Master admin emails are used to contact the customer about license
133
+ * issues — a handful per instance is plenty, and the cap keeps a
134
+ * misbehaving client from storing an unbounded list.
135
+ */
136
+ EnterpriseLicenseUsageUtil.maxMasterAdminEmailsPerInstance = 50;
137
+ // Deliberately loose: rejects garbage, accepts anything email-shaped.
138
+ EnterpriseLicenseUsageUtil.emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
82
139
  export default EnterpriseLicenseUsageUtil;
83
140
  //# sourceMappingURL=EnterpriseLicenseUsage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnterpriseLicenseUsage.js","sourceRoot":"","sources":["../../../../Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAc7C,MAAqB,0BAA0B;IAa7C;;;;OAIG;IACI,MAAM,CAAC,uBAAuB,CAAC,KAAc;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAgB,IAAI,GAAG,EAAU,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBAClD,MAAM;YACR,CAAC;YAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAW,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,6BAA6B,CACzC,QAAwC,EACxC,GAAS;QAET,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC7B,mEAAmE;YACnE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAS,aAAa,CAAC,aAAa,CACnD,GAAG,EACH,CAAC,IAAI,CAAC,4BAA4B,CACnC,CAAC;QAEF,OAAO,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,kBAAkB,CAC9B,SAAgD,EAChD,GAAS;QAET,MAAM,YAAY,GAAgB,IAAI,GAAG,EAAU,CAAC;QACpD,IAAI,kBAAkB,GAAW,CAAC,CAAC;QAEnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;gBACvD,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpE,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;oBAC5C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;gBAED;;;;;mBAKG;gBACH,IACE,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;oBACtC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EACpD,CAAC;oBACD,kBAAkB;wBAChB,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;gBACzD,CAAC;gBAED,SAAS;YACX,CAAC;YAED,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACrE,kBAAkB,IAAI,QAAQ,CAAC,SAAS,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChD,CAAC;;AA5GD;;;;GAIG;AACoB,uDAA4B,GAAW,EAAE,CAAC;AAEjE,sBAAsB;AACE,yCAAc,GAAW,gBAAgB,CAAC;AAE3C,oDAAyB,GAAW,MAAO,CAAC;eAXhD,0BAA0B"}
1
+ {"version":3,"file":"EnterpriseLicenseUsage.js","sourceRoot":"","sources":["../../../../Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts"],"names":[],"mappings":"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"}