@oneuptime/common 12.0.32 → 12.0.33

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 (597) hide show
  1. package/Models/AnalyticsModels/Span.ts +14 -0
  2. package/Models/DatabaseModels/EnterpriseLicense.ts +56 -0
  3. package/Models/DatabaseModels/Index.ts +10 -0
  4. package/Models/DatabaseModels/Monitor.ts +76 -0
  5. package/Models/DatabaseModels/NetworkAlertPolicy.ts +690 -0
  6. package/Models/DatabaseModels/NetworkDevice.ts +176 -1
  7. package/Models/DatabaseModels/NetworkSite.ts +201 -2
  8. package/Models/DatabaseModels/NetworkSiteType.ts +102 -3
  9. package/Models/DatabaseModels/NetworkSnmpCredentialProfile.ts +841 -0
  10. package/Models/DatabaseModels/TelemetryException.ts +119 -0
  11. package/Models/DatabaseModels/UserNotificationEmailRollupBatch.ts +334 -0
  12. package/Models/DatabaseModels/UserNotificationEmailRollupItem.ts +370 -0
  13. package/Models/DatabaseModels/UserNotificationEmailRollupSetting.ts +282 -0
  14. package/Server/API/EnterpriseLicenseAPI.ts +391 -64
  15. package/Server/API/LlmProviderAPI.ts +137 -22
  16. package/Server/EnvironmentConfig.ts +14 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.ts +55 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.ts +31 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.ts +124 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.ts +132 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.ts +79 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.ts +191 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  24. package/Server/Infrastructure/QueueWorker.ts +38 -8
  25. package/Server/Middleware/BearerTokenAuthorization.ts +12 -0
  26. package/Server/Middleware/ProjectAuthorization.ts +11 -0
  27. package/Server/Middleware/SCIMAuthorization.ts +12 -0
  28. package/Server/Middleware/TelemetryIngest.ts +11 -0
  29. package/Server/Services/AIBillingService.ts +101 -27
  30. package/Server/Services/EnterpriseLicenseInstanceService.ts +197 -0
  31. package/Server/Services/EnterpriseLicenseService.ts +55 -0
  32. package/Server/Services/Index.ts +10 -0
  33. package/Server/Services/MonitorService.ts +143 -21
  34. package/Server/Services/MonitorStatusTimelineService.ts +150 -8
  35. package/Server/Services/MonitorTemplateService.ts +217 -1
  36. package/Server/Services/NetworkAlertPolicyEngineService.ts +2159 -0
  37. package/Server/Services/NetworkAlertPolicyService.ts +944 -0
  38. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +9 -10
  39. package/Server/Services/NetworkDeviceAutoImportRuleService.ts +60 -15
  40. package/Server/Services/NetworkDeviceService.ts +1032 -73
  41. package/Server/Services/NetworkSiteService.ts +1502 -129
  42. package/Server/Services/NetworkSiteTypeService.ts +1216 -0
  43. package/Server/Services/NetworkSnmpCredentialProfileService.ts +238 -0
  44. package/Server/Services/NotificationService.ts +118 -28
  45. package/Server/Services/ProjectService.ts +105 -48
  46. package/Server/Services/StatusPagePrivateUserService.ts +103 -3
  47. package/Server/Services/UserNotificationEmailRollupBatchService.ts +78 -0
  48. package/Server/Services/UserNotificationEmailRollupItemService.ts +79 -0
  49. package/Server/Services/UserNotificationEmailRollupSettingService.ts +113 -0
  50. package/Server/Services/UserNotificationSettingService.ts +62 -25
  51. package/Server/Services/UserService.ts +95 -0
  52. package/Server/Types/Database/QueryHelper.ts +2 -2
  53. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +14 -3
  54. package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +10 -0
  55. package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +10 -0
  56. package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +62 -1
  57. package/Server/Utils/AI/Toolbox/AlertTools.ts +15 -1
  58. package/Server/Utils/Billing/BillingFailureNoticeThrottle.ts +80 -0
  59. package/Server/Utils/DataSource/HttpFetch.ts +9 -2
  60. package/Server/Utils/EmailRollup/EmailRollupConstants.ts +98 -0
  61. package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +872 -0
  62. package/Server/Utils/EmailRollup/EmailRollupRenderer.ts +781 -0
  63. package/Server/Utils/EmailRollup/EmailRollupWriter.ts +368 -0
  64. package/Server/Utils/LLM/LLMService.ts +78 -0
  65. package/Server/Utils/LogRedaction.ts +8 -0
  66. package/Server/Utils/Logger.ts +79 -1
  67. package/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.ts +190 -0
  68. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +9 -2
  69. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +61 -1
  70. package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +14 -0
  71. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +49 -0
  72. package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +255 -4
  73. package/Server/Utils/Monitor/MonitorMetricUtil.ts +41 -0
  74. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +43 -0
  75. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +499 -19
  76. package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +66 -10
  77. package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +238 -44
  78. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +146 -39
  79. package/Server/Utils/NetworkDevice/DeviceHealthAggregation.ts +31 -18
  80. package/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.ts +213 -0
  81. package/Server/Utils/OutboundUserAgent.ts +152 -0
  82. package/Server/Utils/StartServer.ts +51 -19
  83. package/Server/Utils/Telemetry/CaptureSpan.ts +32 -8
  84. package/Server/Utils/Telemetry/ErrorClassResolver.ts +120 -0
  85. package/Server/Utils/Telemetry/SpanUtil.ts +33 -0
  86. package/Server/Utils/Telemetry.ts +198 -51
  87. package/Server/Views/Partials/SensitiveUrlToken.ejs +140 -0
  88. package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +134 -33
  89. package/Tests/App/Dashboard/AskAiSuggestedPrompts.test.ts +279 -0
  90. package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +517 -0
  91. package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +26 -0
  92. package/Tests/App/Dashboard/DeviceStatusHero.test.tsx +588 -0
  93. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +18 -9
  94. package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +632 -0
  95. package/Tests/App/Dashboard/MonitorRecommendationCreateProgress.test.tsx +682 -0
  96. package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +4 -2
  97. package/Tests/App/Dashboard/NetworkDeviceCreateFormMonitorBinding.test.tsx +676 -0
  98. package/Tests/App/Dashboard/NetworkDeviceCreateFormPingMonitor.test.tsx +791 -0
  99. package/Tests/App/Dashboard/NetworkDeviceCreateFormProbeAndSnmp.test.tsx +833 -0
  100. package/Tests/App/Dashboard/NetworkDeviceCriteriaFilter.test.ts +161 -0
  101. package/Tests/App/Dashboard/NetworkDeviceSettingsMonitoringSection.test.tsx +458 -0
  102. package/Tests/App/Dashboard/NetworkSideMenu.test.tsx +41 -5
  103. package/Tests/App/Dashboard/PingMonitorProvisioning.test.ts +368 -0
  104. package/Tests/App/Dashboard/RecommendationCard.test.tsx +796 -0
  105. package/Tests/App/Dashboard/RecommendationToolbar.test.tsx +519 -0
  106. package/Tests/App/Dashboard/RecommendationsList.test.tsx +661 -0
  107. package/Tests/App/Dashboard/UseBulkCreatePingMonitors.test.tsx +899 -0
  108. package/Tests/App/Dashboard/UseBulkSnmpCredentialProfileActions.test.tsx +732 -0
  109. package/Tests/App/SensitiveUrlTokenBootstrap.test.ts +256 -0
  110. package/Tests/App/StatusPage/StatusPageIndexPageRobotsMeta.test.ts +11 -1
  111. package/Tests/App/StatusPage/StatusPageLoginCodeBootstrap.test.ts +9 -4
  112. package/Tests/Models/NetworkSiteHierarchy.test.ts +41 -4
  113. package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +951 -7
  114. package/Tests/Server/API/LlmProviderConnectionTest.test.ts +522 -0
  115. package/Tests/Server/Infrastructure/Postgres/NetworkSnmpCredentialProfilesAndAlertPoliciesMigration.test.ts +854 -0
  116. package/Tests/Server/Infrastructure/Postgres/SchemaMigrationsOrdering.test.ts +18 -0
  117. package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupTableMigration.test.ts +535 -0
  118. package/Tests/Server/Services/AIChatPrivacyPin.test.ts +560 -0
  119. package/Tests/Server/Services/BillingRechargeOwnerEmailGuards.test.ts +783 -0
  120. package/Tests/Server/Services/EnterpriseLicenseInstanceServiceDeletionUsage.test.ts +707 -0
  121. package/Tests/Server/Services/EnterpriseLicenseServiceUsageAggregationLock.test.ts +329 -0
  122. package/Tests/Server/Services/MonitorServiceDeleteNetworkDeviceCleanup.test.ts +294 -0
  123. package/Tests/Server/Services/MonitorStatusBridgeProbePath.test.ts +802 -0
  124. package/Tests/Server/Services/MonitorStatusTimelineService.test.ts +72 -2
  125. package/Tests/Server/Services/NetworkAlertPolicyEngineHooks.test.ts +752 -0
  126. package/Tests/Server/Services/NetworkAlertPolicyEngineService.test.ts +1849 -0
  127. package/Tests/Server/Services/NetworkAlertPolicyModel.test.ts +1793 -0
  128. package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +47 -4
  129. package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +97 -12
  130. package/Tests/Server/Services/NetworkDeviceAutoMonitorLifecycle.test.ts +148 -3
  131. package/Tests/Server/Services/NetworkDeviceMonitorBindingUpdateGuard.test.ts +514 -0
  132. package/Tests/Server/Services/NetworkDeviceMonitorStatusStamp.test.ts +447 -58
  133. package/Tests/Server/Services/NetworkDeviceMonitoringMethodTransition.test.ts +739 -0
  134. package/Tests/Server/Services/NetworkDevicePollingTenancy.test.ts +501 -0
  135. package/Tests/Server/Services/NetworkDeviceSiteDefaultProbe.test.ts +432 -0
  136. package/Tests/Server/Services/NetworkSiteMonitoringDefaults.test.ts +498 -0
  137. package/Tests/Server/Services/NetworkSiteRollupPolicyAndMaintenance.test.ts +337 -55
  138. package/Tests/Server/Services/NetworkSiteService.test.ts +1868 -131
  139. package/Tests/Server/Services/NetworkSiteTypeService.test.ts +1109 -0
  140. package/Tests/Server/Services/NetworkSnmpCredentialProfileModel.test.ts +926 -0
  141. package/Tests/Server/Services/NetworkSnmpCredentialProfileService.test.ts +796 -0
  142. package/Tests/Server/Services/ProjectServiceNetworkSiteTypeDefaults.test.ts +214 -0
  143. package/Tests/Server/Services/StatusPagePrivateUserEmailChangePasswordResetExpiry.test.ts +269 -0
  144. package/Tests/Server/Services/UserEmailChangePasswordResetExpiry.test.ts +472 -0
  145. package/Tests/Server/Services/UserNotificationEmailRollupModels.test.ts +569 -0
  146. package/Tests/Server/Services/UserNotificationEmailRollupSettingModel.test.ts +314 -0
  147. package/Tests/Server/Services/UserNotificationEmailRollupSettingService.test.ts +409 -0
  148. package/Tests/Server/Services/UserNotificationSettingRollupRouting.test.ts +856 -0
  149. package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +102 -1
  150. package/Tests/Server/Types/Database/Permissions/DashboardAccessPermission.test.ts +321 -0
  151. package/Tests/Server/Types/Database/QueryHelperOperators.test.ts +17 -0
  152. package/Tests/Server/Utils/AI/AlertMonitorFilters.test.ts +124 -0
  153. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +208 -0
  154. package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +235 -0
  155. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +253 -0
  156. package/Tests/Server/Utils/Captcha.test.ts +422 -0
  157. package/Tests/Server/Utils/DataSource/HttpFetch.test.ts +96 -2
  158. package/Tests/Server/Utils/Database/MigrationFailureLog.test.ts +466 -0
  159. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerBehaviour.test.ts +1096 -0
  160. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerClaim.test.ts +466 -0
  161. package/Tests/Server/Utils/EmailRollup/EmailRollupRenderer.test.ts +1428 -0
  162. package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +752 -0
  163. package/Tests/Server/Utils/EmailRollup/EmailRollupWriter.test.ts +864 -0
  164. package/Tests/Server/Utils/LoggerFaultDemotion.test.ts +346 -0
  165. package/Tests/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.test.ts +633 -0
  166. package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +196 -0
  167. package/Tests/Server/Utils/Monitor/DatabaseMetricWrite.test.ts +367 -0
  168. package/Tests/Server/Utils/Monitor/MonitorCriteriaObservationBuilderUnits.test.ts +100 -0
  169. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +5 -0
  170. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +512 -31
  171. package/Tests/Server/Utils/Monitor/NetworkDeviceMetricUtil.test.ts +252 -0
  172. package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +479 -42
  173. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +351 -5
  174. package/Tests/Server/Utils/NetworkDevice/DeviceHealthAggregation.test.ts +136 -12
  175. package/Tests/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.test.ts +306 -0
  176. package/Tests/Server/Utils/OutboundUserAgent.test.ts +266 -0
  177. package/Tests/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClientUserAgent.test.ts +141 -0
  178. package/Tests/Server/Utils/Telemetry/ErrorClassResolver.test.ts +298 -0
  179. package/Tests/Server/Utils/Telemetry.test.ts +456 -66
  180. package/Tests/Types/Monitor/DatabaseMetricCatalog.test.ts +388 -0
  181. package/Tests/Types/Monitor/MonitorStepDatabaseMonitor.test.ts +243 -0
  182. package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +1 -0
  183. package/Tests/Types/Monitor/MonitorType.test.ts +1 -0
  184. package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +16 -7
  185. package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +60 -0
  186. package/Tests/Types/NetworkDevice/NetworkAlertPolicyScope.test.ts +655 -0
  187. package/Tests/Types/NetworkDevice/NetworkDeviceMonitoringMethod.test.ts +115 -26
  188. package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +39 -0
  189. package/Tests/Types/NotificationSetting/NotificationEmailRollupPolicy.test.ts +299 -0
  190. package/Tests/Types/Telemetry/ErrorClass.test.ts +483 -0
  191. package/Tests/UI/Components/BasicRadioButtons.test.tsx +336 -0
  192. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +15 -0
  193. package/Tests/UI/Components/ProgressBar.test.tsx +38 -2
  194. package/Tests/UI/Components/SideMenuItem.test.tsx +226 -4
  195. package/Tests/UI/Components/SideMenuSection.test.tsx +310 -0
  196. package/Tests/UI/Components/SideOverSubmitState.test.tsx +335 -0
  197. package/Tests/UI/Utils/PageScrollLock.test.tsx +377 -0
  198. package/Tests/UI/Utils/PermissionGate.test.ts +78 -0
  199. package/Tests/UI/Utils/SensitiveUrlToken.test.ts +140 -0
  200. package/Tests/Utils/EnterpriseLicenseSeats.test.ts +69 -0
  201. package/Tests/Utils/EnterpriseLicenseSync.test.ts +7 -1
  202. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +433 -2
  203. package/Tests/Utils/Monitor/MonitorMetricType.test.ts +280 -1
  204. package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
  205. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +38 -0
  206. package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +284 -23
  207. package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +177 -0
  208. package/Tests/Utils/NetworkDevice/MonitoringMethodThreadedClassifiers.test.ts +992 -0
  209. package/Tests/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.test.ts +427 -0
  210. package/Tests/Utils/NetworkDevice/ReachabilityStampConsistency.test.ts +185 -0
  211. package/Tests/Utils/NetworkDevice/SnmpCredentialUtil.test.ts +268 -0
  212. package/Tests/Utils/NetworkDiscovery/AutoImportRuleMatcher.test.ts +55 -5
  213. package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +98 -21
  214. package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +98 -20
  215. package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +8 -7
  216. package/Tests/Utils/NetworkDiscovery/PingMonitorBuilderForAddress.test.ts +274 -0
  217. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +230 -51
  218. package/Tests/Utils/NetworkSite/TypeHierarchyUtil.test.ts +209 -0
  219. package/Tests/Utils/Telemetry/CaptureSpanExportGating.test.ts +145 -0
  220. package/Types/AI/ExceptionAIClassification.ts +10 -24
  221. package/Types/Email/EmailTemplateType.ts +2 -0
  222. package/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.ts +5 -0
  223. package/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.ts +13 -0
  224. package/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.ts +6 -0
  225. package/Types/Exception/ApiException.ts +10 -0
  226. package/Types/Exception/BadDataException.ts +11 -0
  227. package/Types/Exception/BadRequestException.ts +11 -0
  228. package/Types/Exception/Exception.ts +65 -0
  229. package/Types/Exception/ForbiddenException.ts +10 -0
  230. package/Types/Exception/NotAuthenticatedException.ts +10 -0
  231. package/Types/Exception/NotAuthorizedException.ts +10 -0
  232. package/Types/Exception/NotFoundException.ts +11 -0
  233. package/Types/Exception/PayloadTooLargeException.ts +11 -0
  234. package/Types/Exception/PaymentRequiredException.ts +10 -0
  235. package/Types/Exception/ServiceUnavailableException.ts +10 -0
  236. package/Types/Exception/SsoAuthorizationException.ts +10 -0
  237. package/Types/Exception/TenantNotFoundException.ts +11 -0
  238. package/Types/Exception/TimeoutException.ts +10 -0
  239. package/Types/Exception/TooManyRequestsException.ts +10 -0
  240. package/Types/Exception/UnableToReachServer.ts +10 -0
  241. package/Types/Exception/WebsiteRequestException.ts +10 -0
  242. package/Types/Monitor/CriteriaFilter.ts +60 -2
  243. package/Types/Monitor/DatabaseMetricCatalog.ts +693 -0
  244. package/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.ts +83 -0
  245. package/Types/Monitor/MonitorCriteriaInstance.ts +76 -0
  246. package/Types/Monitor/MonitorMetricType.ts +71 -0
  247. package/Types/Monitor/MonitorStep.ts +76 -0
  248. package/Types/Monitor/MonitorStepDatabaseMonitor.ts +171 -0
  249. package/Types/Monitor/MonitorStepSqlMonitor.ts +2 -20
  250. package/Types/Monitor/MonitorType.ts +47 -1
  251. package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +22 -1
  252. package/Types/Monitor/SqlConnectionConfig.ts +31 -0
  253. package/Types/NetworkDevice/NetworkAlertPolicyScope.ts +343 -0
  254. package/Types/NetworkDevice/NetworkDeviceMonitoringMethod.ts +42 -22
  255. package/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.ts +30 -0
  256. package/Types/NotificationSetting/NotificationEmailRollupCategory.ts +255 -0
  257. package/Types/NotificationSetting/NotificationEmailRollupPolicy.ts +104 -0
  258. package/Types/Permission.ts +90 -0
  259. package/Types/Probe/ProbeMonitorResponse.ts +16 -0
  260. package/Types/Telemetry/ErrorClass.ts +274 -0
  261. package/Types/Telemetry/UnitOfWork.ts +59 -0
  262. package/UI/Components/CommandPalette/CommandPalette.tsx +2 -8
  263. package/UI/Components/EditionLabel/EditionLabel.tsx +4 -0
  264. package/UI/Components/Modal/Modal.tsx +2 -8
  265. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +44 -0
  266. package/UI/Components/ProgressBar/ProgressBar.tsx +12 -1
  267. package/UI/Components/RadioButtons/BasicRadioButtons.tsx +37 -7
  268. package/UI/Components/SideMenu/SideMenu.tsx +123 -5
  269. package/UI/Components/SideMenu/SideMenuItem.tsx +76 -84
  270. package/UI/Components/SideMenu/SideMenuSection.tsx +55 -23
  271. package/UI/Components/SideOver/SideOver.tsx +21 -20
  272. package/UI/Utils/PageScrollLock.ts +79 -3
  273. package/UI/Utils/PermissionGate.ts +61 -0
  274. package/UI/Utils/SensitiveUrlToken.ts +112 -0
  275. package/UI/Utils/TestLLMProvider.ts +11 -0
  276. package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +16 -0
  277. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +191 -11
  278. package/Utils/Monitor/MonitorMetricType.ts +153 -1
  279. package/Utils/Monitor/NetworkTopologyUtil.ts +23 -3
  280. package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +65 -14
  281. package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +43 -14
  282. package/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.ts +247 -0
  283. package/Utils/NetworkDevice/SnmpCredentialUtil.ts +68 -0
  284. package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +15 -7
  285. package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +52 -17
  286. package/Utils/NetworkDiscovery/DiscoveryImportEligibility.ts +55 -23
  287. package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +115 -13
  288. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +66 -20
  289. package/Utils/NetworkSite/TypeHierarchyUtil.ts +313 -0
  290. package/build/dist/Models/AnalyticsModels/Span.js +14 -0
  291. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  292. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js +59 -0
  293. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js.map +1 -1
  294. package/build/dist/Models/DatabaseModels/Index.js +10 -0
  295. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  296. package/build/dist/Models/DatabaseModels/Monitor.js +75 -0
  297. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  298. package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js +713 -0
  299. package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js.map +1 -0
  300. package/build/dist/Models/DatabaseModels/NetworkDevice.js +180 -1
  301. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  302. package/build/dist/Models/DatabaseModels/NetworkSite.js +200 -2
  303. package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
  304. package/build/dist/Models/DatabaseModels/NetworkSiteType.js +102 -3
  305. package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -1
  306. package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js +878 -0
  307. package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js.map +1 -0
  308. package/build/dist/Models/DatabaseModels/TelemetryException.js +123 -0
  309. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  310. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js +363 -0
  311. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js.map +1 -0
  312. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js +402 -0
  313. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js.map +1 -0
  314. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js +296 -0
  315. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js.map +1 -0
  316. package/build/dist/Server/API/EnterpriseLicenseAPI.js +273 -60
  317. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  318. package/build/dist/Server/API/LlmProviderAPI.js +108 -13
  319. package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
  320. package/build/dist/Server/EnvironmentConfig.js +12 -0
  321. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  322. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js +24 -0
  323. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js.map +1 -0
  324. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js +16 -0
  325. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js.map +1 -0
  326. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js +111 -0
  327. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js.map +1 -0
  328. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js +77 -0
  329. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js.map +1 -0
  330. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js +50 -0
  331. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js.map +1 -0
  332. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js +83 -0
  333. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js.map +1 -0
  334. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  335. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  336. package/build/dist/Server/Infrastructure/QueueWorker.js +33 -5
  337. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  338. package/build/dist/Server/Middleware/BearerTokenAuthorization.js +12 -0
  339. package/build/dist/Server/Middleware/BearerTokenAuthorization.js.map +1 -1
  340. package/build/dist/Server/Middleware/ProjectAuthorization.js +11 -0
  341. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  342. package/build/dist/Server/Middleware/SCIMAuthorization.js +12 -0
  343. package/build/dist/Server/Middleware/SCIMAuthorization.js.map +1 -1
  344. package/build/dist/Server/Middleware/TelemetryIngest.js +11 -0
  345. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  346. package/build/dist/Server/Services/AIBillingService.js +70 -16
  347. package/build/dist/Server/Services/AIBillingService.js.map +1 -1
  348. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js +167 -0
  349. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js.map +1 -1
  350. package/build/dist/Server/Services/EnterpriseLicenseService.js +39 -0
  351. package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
  352. package/build/dist/Server/Services/Index.js +10 -0
  353. package/build/dist/Server/Services/Index.js.map +1 -1
  354. package/build/dist/Server/Services/MonitorService.js +119 -21
  355. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  356. package/build/dist/Server/Services/MonitorStatusTimelineService.js +127 -8
  357. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  358. package/build/dist/Server/Services/MonitorTemplateService.js +162 -0
  359. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  360. package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js +1683 -0
  361. package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js.map +1 -0
  362. package/build/dist/Server/Services/NetworkAlertPolicyService.js +732 -0
  363. package/build/dist/Server/Services/NetworkAlertPolicyService.js.map +1 -0
  364. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +10 -9
  365. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  366. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +54 -11
  367. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  368. package/build/dist/Server/Services/NetworkDeviceService.js +841 -70
  369. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  370. package/build/dist/Server/Services/NetworkSiteService.js +1145 -107
  371. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  372. package/build/dist/Server/Services/NetworkSiteTypeService.js +863 -0
  373. package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -1
  374. package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js +217 -0
  375. package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js.map +1 -0
  376. package/build/dist/Server/Services/NotificationService.js +80 -17
  377. package/build/dist/Server/Services/NotificationService.js.map +1 -1
  378. package/build/dist/Server/Services/ProjectService.js +66 -30
  379. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  380. package/build/dist/Server/Services/StatusPagePrivateUserService.js +92 -2
  381. package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
  382. package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js +76 -0
  383. package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js.map +1 -0
  384. package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js +77 -0
  385. package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js.map +1 -0
  386. package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js +111 -0
  387. package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js.map +1 -0
  388. package/build/dist/Server/Services/UserNotificationSettingService.js +46 -20
  389. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  390. package/build/dist/Server/Services/UserService.js +90 -0
  391. package/build/dist/Server/Services/UserService.js.map +1 -1
  392. package/build/dist/Server/Types/Database/QueryHelper.js +1 -1
  393. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  394. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +14 -3
  395. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  396. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +10 -0
  397. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
  398. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +10 -0
  399. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
  400. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +54 -1
  401. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -1
  402. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js +18 -4
  403. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js.map +1 -1
  404. package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js +59 -0
  405. package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js.map +1 -0
  406. package/build/dist/Server/Utils/DataSource/HttpFetch.js +2 -1
  407. package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
  408. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js +91 -0
  409. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js.map +1 -0
  410. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +691 -0
  411. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -0
  412. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js +497 -0
  413. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js.map +1 -0
  414. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js +257 -0
  415. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js.map +1 -0
  416. package/build/dist/Server/Utils/LLM/LLMService.js +64 -1
  417. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  418. package/build/dist/Server/Utils/LogRedaction.js +8 -0
  419. package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
  420. package/build/dist/Server/Utils/Logger.js +63 -1
  421. package/build/dist/Server/Utils/Logger.js.map +1 -1
  422. package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js +141 -0
  423. package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js.map +1 -0
  424. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +8 -1
  425. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  426. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +51 -1
  427. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  428. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +7 -0
  429. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -1
  430. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +37 -0
  431. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  432. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +158 -6
  433. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
  434. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +33 -0
  435. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  436. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +32 -0
  437. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  438. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +330 -21
  439. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  440. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +55 -10
  441. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -1
  442. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +178 -49
  443. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
  444. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +119 -29
  445. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  446. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +30 -17
  447. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -1
  448. package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js +158 -0
  449. package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js.map +1 -0
  450. package/build/dist/Server/Utils/OutboundUserAgent.js +123 -0
  451. package/build/dist/Server/Utils/OutboundUserAgent.js.map +1 -0
  452. package/build/dist/Server/Utils/StartServer.js +38 -14
  453. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  454. package/build/dist/Server/Utils/Telemetry/CaptureSpan.js +28 -8
  455. package/build/dist/Server/Utils/Telemetry/CaptureSpan.js.map +1 -1
  456. package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js +95 -0
  457. package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js.map +1 -0
  458. package/build/dist/Server/Utils/Telemetry/SpanUtil.js +29 -0
  459. package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -1
  460. package/build/dist/Server/Utils/Telemetry.js +162 -46
  461. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  462. package/build/dist/Types/AI/ExceptionAIClassification.js +10 -24
  463. package/build/dist/Types/AI/ExceptionAIClassification.js.map +1 -1
  464. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  465. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  466. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js +2 -0
  467. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js.map +1 -0
  468. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js +7 -0
  469. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js.map +1 -0
  470. package/build/dist/Types/Exception/ApiException.js +9 -0
  471. package/build/dist/Types/Exception/ApiException.js.map +1 -1
  472. package/build/dist/Types/Exception/BadDataException.js +10 -0
  473. package/build/dist/Types/Exception/BadDataException.js.map +1 -1
  474. package/build/dist/Types/Exception/BadRequestException.js +10 -0
  475. package/build/dist/Types/Exception/BadRequestException.js.map +1 -1
  476. package/build/dist/Types/Exception/Exception.js +56 -0
  477. package/build/dist/Types/Exception/Exception.js.map +1 -1
  478. package/build/dist/Types/Exception/ForbiddenException.js +9 -0
  479. package/build/dist/Types/Exception/ForbiddenException.js.map +1 -1
  480. package/build/dist/Types/Exception/NotAuthenticatedException.js +9 -0
  481. package/build/dist/Types/Exception/NotAuthenticatedException.js.map +1 -1
  482. package/build/dist/Types/Exception/NotAuthorizedException.js +9 -0
  483. package/build/dist/Types/Exception/NotAuthorizedException.js.map +1 -1
  484. package/build/dist/Types/Exception/NotFoundException.js +10 -0
  485. package/build/dist/Types/Exception/NotFoundException.js.map +1 -1
  486. package/build/dist/Types/Exception/PayloadTooLargeException.js +10 -0
  487. package/build/dist/Types/Exception/PayloadTooLargeException.js.map +1 -1
  488. package/build/dist/Types/Exception/PaymentRequiredException.js +9 -0
  489. package/build/dist/Types/Exception/PaymentRequiredException.js.map +1 -1
  490. package/build/dist/Types/Exception/ServiceUnavailableException.js +9 -0
  491. package/build/dist/Types/Exception/ServiceUnavailableException.js.map +1 -1
  492. package/build/dist/Types/Exception/SsoAuthorizationException.js +9 -0
  493. package/build/dist/Types/Exception/SsoAuthorizationException.js.map +1 -1
  494. package/build/dist/Types/Exception/TenantNotFoundException.js +10 -0
  495. package/build/dist/Types/Exception/TenantNotFoundException.js.map +1 -1
  496. package/build/dist/Types/Exception/TimeoutException.js +9 -0
  497. package/build/dist/Types/Exception/TimeoutException.js.map +1 -1
  498. package/build/dist/Types/Exception/TooManyRequestsException.js +9 -0
  499. package/build/dist/Types/Exception/TooManyRequestsException.js.map +1 -1
  500. package/build/dist/Types/Exception/UnableToReachServer.js +9 -0
  501. package/build/dist/Types/Exception/UnableToReachServer.js.map +1 -1
  502. package/build/dist/Types/Exception/WebsiteRequestException.js +9 -0
  503. package/build/dist/Types/Exception/WebsiteRequestException.js.map +1 -1
  504. package/build/dist/Types/Monitor/CriteriaFilter.js +45 -2
  505. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  506. package/build/dist/Types/Monitor/DatabaseMetricCatalog.js +594 -0
  507. package/build/dist/Types/Monitor/DatabaseMetricCatalog.js.map +1 -0
  508. package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js +21 -0
  509. package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js.map +1 -0
  510. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +70 -0
  511. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  512. package/build/dist/Types/Monitor/MonitorMetricType.js +61 -0
  513. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  514. package/build/dist/Types/Monitor/MonitorStep.js +54 -0
  515. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  516. package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js +122 -0
  517. package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js.map +1 -0
  518. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  519. package/build/dist/Types/Monitor/MonitorType.js +45 -1
  520. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  521. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +21 -1
  522. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
  523. package/build/dist/Types/Monitor/SqlConnectionConfig.js +2 -0
  524. package/build/dist/Types/Monitor/SqlConnectionConfig.js.map +1 -0
  525. package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js +172 -0
  526. package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js.map +1 -0
  527. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js +40 -22
  528. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js.map +1 -1
  529. package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js +26 -0
  530. package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js.map +1 -0
  531. package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js +186 -0
  532. package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js.map +1 -0
  533. package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js +87 -0
  534. package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js.map +1 -0
  535. package/build/dist/Types/Permission.js +80 -0
  536. package/build/dist/Types/Permission.js.map +1 -1
  537. package/build/dist/Types/Telemetry/ErrorClass.js +216 -0
  538. package/build/dist/Types/Telemetry/ErrorClass.js.map +1 -0
  539. package/build/dist/Types/Telemetry/UnitOfWork.js +59 -0
  540. package/build/dist/Types/Telemetry/UnitOfWork.js.map +1 -0
  541. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +2 -7
  542. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
  543. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +3 -0
  544. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  545. package/build/dist/UI/Components/Modal/Modal.js +2 -7
  546. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  547. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +39 -0
  548. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  549. package/build/dist/UI/Components/ProgressBar/ProgressBar.js +12 -1
  550. package/build/dist/UI/Components/ProgressBar/ProgressBar.js.map +1 -1
  551. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js +6 -6
  552. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js.map +1 -1
  553. package/build/dist/UI/Components/SideMenu/SideMenu.js +67 -5
  554. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  555. package/build/dist/UI/Components/SideMenu/SideMenuItem.js +49 -53
  556. package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
  557. package/build/dist/UI/Components/SideMenu/SideMenuSection.js +25 -7
  558. package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
  559. package/build/dist/UI/Components/SideOver/SideOver.js +5 -20
  560. package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
  561. package/build/dist/UI/Utils/PageScrollLock.js +31 -3
  562. package/build/dist/UI/Utils/PageScrollLock.js.map +1 -1
  563. package/build/dist/UI/Utils/PermissionGate.js +42 -1
  564. package/build/dist/UI/Utils/PermissionGate.js.map +1 -1
  565. package/build/dist/UI/Utils/SensitiveUrlToken.js +97 -0
  566. package/build/dist/UI/Utils/SensitiveUrlToken.js.map +1 -0
  567. package/build/dist/UI/Utils/TestLLMProvider.js +4 -5
  568. package/build/dist/UI/Utils/TestLLMProvider.js.map +1 -1
  569. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +15 -0
  570. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +1 -1
  571. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +111 -9
  572. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  573. package/build/dist/Utils/Monitor/MonitorMetricType.js +109 -1
  574. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  575. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +8 -3
  576. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  577. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +27 -7
  578. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
  579. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +7 -5
  580. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -1
  581. package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js +180 -0
  582. package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js.map +1 -0
  583. package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js +12 -0
  584. package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js.map +1 -0
  585. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js +15 -5
  586. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
  587. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +44 -15
  588. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
  589. package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js +52 -23
  590. package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js.map +1 -1
  591. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +85 -13
  592. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -1
  593. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +30 -15
  594. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
  595. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js +191 -0
  596. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js.map +1 -0
  597. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkSiteTypeService.js","sourceRoot":"","sources":["../../../../Server/Services/NetworkSiteTypeService.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,6CAA6C,CAAC;AAEhE,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF;AAED,eAAe,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"NetworkSiteTypeService.js","sourceRoot":"","sources":["../../../../Server/Services/NetworkSiteTypeService.ts"],"names":[],"mappings":";;;;;;;;;AAOA,OAAO,WAAW,MAAM,+BAA+B,CAAC;AAGxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,wBAAwB,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,MAAM,6CAA6C,CAAC;AAEhE,OAAO,4BAA4B,MAAM,2CAA2C,CAAC;AACrF,OAAO,SAAS,MAAM,oCAAoC,CAAC;AAC3D,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,SAAS,MAAM,+BAA+B,CAAC;AAEtD,OAAO,cAAc,MAAM,4BAA4B,CAAC;AAExD,MAAM,6BAA6B,GAAkB;IACnD,yBAAyB;IACzB,uBAAuB;CACxB,CAAC;AAEF,MAAM,YAAY,GAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAE7D,MAAM,mCAAmC,GACvC,gMAAgM,CAAC;AAEnM,MAAM,+BAA+B,GAAW,IAAI,CAAC;AAErD,MAAM,WAAW,GAAsC,CACrD,EAAqB,EACb,EAAE;IACV,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,MAAM,GAAmE,CAC7E,IAAuB,EACvB,KAAwB,EACf,EAAE;IACX,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,eAAe,GAGN,CACb,IAA6B,EAC7B,IAAmB,EACV,EAAE;IACX,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE;QAC/B,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAGf,CAAC,IAA6B,EAAE,IAAmB,EAAQ,EAAE;IACvE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;YACpC,MAAM,IAAI,gBAAgB,CACxB,GAAG,GAAG,uHAAuH,CAC9H,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mCAAmC,GAE7B,CAAC,IAA6B,EAAQ,EAAE;IAClD,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,gBAAgB,CACxB,oIAAoI,CACrI,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IAEmB,AAAN,KAAK,CAAC,MAAM,CAAC,QAAyB;QACpD,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,SAAS,GACb,QAAQ,CAAC,KAAK,CAAC,QAAQ;YACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAA0C,CAAC;YACvE,IAAI,CAAC;QAEP,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC;YACjD,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;YACxC,SAAS,EAAE,KAAK,IAAoB,EAAE;gBACpC,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAGqB,AAAN,KAAK,CAAC,WAAW,CAC/B,WAA+B;QAE/B,IACE,WAAW,CAAC,KAAK,CAAC,WAAW;YAC7B,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,EAC9C,CAAC;YACD,OAAO,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,sBAAsB,CAAC;YAChC,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEL,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC;YACjD,UAAU;YACV,SAAS,EAAE,KAAK,IAAqB,EAAE;gBACrC,OAAO,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAGqB,AAAN,KAAK,CAAC,QAAQ,CAAC,QAAyB;QACtD,IACE,QAAQ,CAAC,KAAK,CAAC,WAAW;YAC1B,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC3C,CAAC;YACD,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,sBAAsB,CAAC;YAChC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;YAC1D,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEL,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC;YACjD,UAAU;YACV,SAAS,EAAE,KAAK,IAAqB,EAAE;gBACrC,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAGqB,AAAN,KAAK,CAAC,WAAW,CAC/B,WAA+B;QAE/B,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,OAAO,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,sBAAsB,CAAC;YAChC,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEL,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC;YACjD,UAAU;YACV,SAAS,EAAE,KAAK,IAAqB,EAAE;gBACrC,OAAO,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAGqB,AAAN,KAAK,CAAC,QAAQ,CAAC,QAAyB;QACtD,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,sBAAsB,CAAC;YAChC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;YAC1D,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEL,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC;YACjD,UAAU;YACV,SAAS,EAAE,KAAK,IAAqB,EAAE;gBACrC,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAGqB,AAAN,KAAK,CAAC,YAAY,CAChC,QAAyB;QAEzB,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED;;;;;WAKG;QACH,IACE,CAAC,wBAAwB,CAAC,uBAAuB,CAAC;YAChD,KAAK,EAAE,QAAQ,CAAC,KAA2C;YAC3D,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC,EACF,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,sBAAsB,CAAC;YAChC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;YAC1D,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEL,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC;YACjD,UAAU;YACV,SAAS,EAAE,KAAK,IAAqB,EAAE;gBACrC,OAAO,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,IAAgC;QAC7D,MAAM,MAAM,GAA4B,IAGvC,CAAC;QAEF,OAAO,CACL,eAAe,CAAC,MAAM,EAAE,6BAA6B,CAAC;YACtD,CAAC,aAAa,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC;YAChE,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CACtC,CAAC;IACJ,CAAC;IAEO,mBAAmB,CACzB,KAA0C,EAC1C,QAAgB;QAEhB,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC;QAED,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,QAAQ,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,QAAyB;QAEzB,MAAM,cAAc,GAAW,IAAI,CAAC,mBAAmB,CACrD,QAAQ,CAAC,KAAK,EACd,SAAS,CACV,CAAC;QAEF,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,YAAY,GAAW,IAAI,CAAC,GAAG,CACnC,+BAA+B,EAC/B,cAAc,CACf,CAAC;QACF,MAAM,SAAS,GAAiB,EAAE,CAAC;QACnC,IAAI,QAAQ,GAAW,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAElE,OAAO,SAAS,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACzC,MAAM,UAAU,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;gBACjD,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;gBACtC,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE;gBAClC,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YAED,MAAM,YAAY,GAAoB,UAAU;iBAC7C,GAAG,CAAC,CAAC,SAAgB,EAAmB,EAAE;gBACzC,OAAO,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC;YAC9B,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,EAAmB,EAAkB,EAAE;gBAC9C,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;YACL,MAAM,iBAAiB,GAAgB,IAAI,GAAG,EAAU,CAAC;YAEzD,KACE,IAAI,eAAe,GAAW,CAAC,EAC/B,eAAe,GAAG,YAAY,CAAC,MAAM,EACrC,eAAe,IAAI,+BAA+B,EAClD,CAAC;gBACD,MAAM,gBAAgB,GAAoB,YAAY,CAAC,KAAK,CAC1D,eAAe,EACf,eAAe,GAAG,+BAA+B,CAClD,CAAC;gBACF,IAAI,SAAS,GAAW,CAAC,CAAC;gBAE1B,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,MAAM,UAAU,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;wBACjD,KAAK,EAAE;4BACL,uBAAuB,EAAE,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC;yBAC3D;wBACD,MAAM,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE;wBACzC,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE;wBAClC,KAAK,EAAE,+BAA+B;wBACtC,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;qBACxB,CAAC,CAAC;oBAEH,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,IAAI,SAAS,CAAC,uBAAuB,EAAE,CAAC;4BACtC,iBAAiB,CAAC,GAAG,CACnB,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAC/C,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAED,IAAI,UAAU,CAAC,MAAM,GAAG,+BAA+B,EAAE,CAAC;wBACxD,MAAM;oBACR,CAAC;oBAED,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC;gBACjC,CAAC;gBAED,IAAI,QAAQ,GAAW,CAAC,CAAC;gBAEzB,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,MAAM,KAAK,GAAuB,MAAM,kBAAkB,CAAC,MAAM,CAAC;wBAChE,KAAK,EAAE;4BACL,iBAAiB,EAAE,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC;yBACrD;wBACD,MAAM,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;wBACnC,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE;wBAClC,KAAK,EAAE,+BAA+B;wBACtC,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;qBACxB,CAAC,CAAC;oBAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BAC3B,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;wBAC7D,CAAC;oBACH,CAAC;oBAED,IAAI,KAAK,CAAC,MAAM,GAAG,+BAA+B,EAAE,CAAC;wBACnD,MAAM;oBACR,CAAC;oBAED,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IACE,SAAS,CAAC,EAAE;oBACZ,SAAS,CAAC,SAAS;oBACnB,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EACjD,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAE1B,IAAI,SAAS,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;wBACxC,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC;YAE9B,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;gBACrC,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,WAAW,GAAoB,SAAS,CAAC,GAAG,CAChD,CAAC,eAAsB,EAAY,EAAE;YACnC,OAAO,eAAe,CAAC,EAAG,CAAC;QAC7B,CAAC,CACF,CAAC;QAEF,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC;YACjD,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,eAAsB,EAAY,EAAE;gBAC7D,OAAO,eAAe,CAAC,SAAU,CAAC;YACpC,CAAC,CAAC;YACF,SAAS,EAAE,KAAK,IAAqB,EAAE;gBACrC,OAAO,MAAM,KAAK,CAAC,YAAY,iCAC1B,QAAQ,KACX,KAAK,kCACA,QAAQ,CAAC,KAAK,KACjB,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAEnC,KAAK,EAAE,WAAW,CAAC,MAAM,EACzB,IAAI,EAAE,CAAC,IACP,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,IAMpC;QACC,wBAAwB,CAAC,2BAA2B,CAAC;YACnD,KAAK,EAAE,IAAI,CAAC,KAA2C;YACvD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,mBAAmB,EAAE,IAAI,CAAC,QAAQ;SACnC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;YACvD,KAAK,EAAE,IAAI,CAAC,QAAQ;gBAClB,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;gBAC7D,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;YACzD,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,MAAM,UAAU,GAA6B,gBAAgB;aAC1D,GAAG,CAAC,CAAC,eAAsB,EAAwB,EAAE;YACpD,OAAO,eAAe,CAAC,SAAS,CAAC;QACnC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,SAA+B,EAAyB,EAAE;YACjE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEL,UAAU,CAAC,IAAI,CACb,GAAG,wBAAwB,CAAC,qBAAqB,CAC/C,IAAI,CAAC,KAA2C,CACjD,CACF,CAAC;QAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,cAAc,GAAgB,IAAI,GAAG,EAAU,CAAC;QAEtD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAA4B,EAAW,EAAE;YACjE,MAAM,mBAAmB,GAAW,WAAW,CAAC,SAAS,CAAC,CAAC;YAE3D,IAAI,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAC9B,KAAmB,EACnB,KAAqC;QAErC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uCACK,KAAK,KACR,SAAS,EAAE,KAAK,CAAC,QAAQ,IACzB;IACJ,CAAC;IAED;;;OAGG;IACK,8BAA8B,CACpC,KAAmB,EACnB,KAAqC;QAErC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uCACK,KAAK,KACR,SAAS,EAAE,KAAK,CAAC,QAAQ,IACzB;IACJ,CAAC;IAEO,aAAa,CAAC,IAA6B;QACjD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAY,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,eAAe,GAAY,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAEhE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,MAAM,IAAI,gBAAgB,CACxB,GAAG,GAAG,sHAAsH,CAC7H,CAAC;YACJ,CAAC;YAED,IACE,KAAK,KAAK,SAAS;gBACnB,CAAC,eAAe;gBAChB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EACjC,CAAC;gBACD,MAAM,IAAI,gBAAgB,CAAC,GAAG,GAAG,mCAAmC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACK,YAAY,CAAC,IAA6B;QAChD,qBAAqB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;QAE3D,KAAK,MAAM,GAAG,IAAI,6BAA6B,EAAE,CAAC;YAChD,MAAM,KAAK,GAAY,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,eAAe,GAAY,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAEhE,IACE,KAAK,KAAK,SAAS;gBACnB,CAAC,eAAe;gBAChB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EACjC,CAAC;gBACD,MAAM,IAAI,gBAAgB,CACxB,GAAG,GAAG,6CAA6C,CACpD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC,cAAc,CAClC,IAAI,EACJ,6BAA6B,EAC7B,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAGjC;QACC,MAAM,QAAQ,GAAiB,MAAM,IAAI,CAAC,uBAAuB,CAAC;YAChE,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;oBACnD,CAAC,CAAC,IAAI,CAAC,uBAAuB;oBAC9B,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE;aACT;YACjB,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAkB,QAAQ,CAAC,MAAM,CAC7C,CAAC,UAAyB,EAAE,OAAc,EAAE,EAAE;YAC5C,OAAO,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;gBACtC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;gBACtD,CAAC,CAAC,UAAU,CAAC;QACjB,CAAC,EACD,IAAI,CACL,CAAC;QAEF,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,IAGrC;QACC,MAAM,gBAAgB,GAAiB,EAAE,CAAC;QAC1C,IAAI,IAAI,GAAW,CAAC,CAAC;QAErB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;gBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE;gBAClC,KAAK,EAAE,SAAS;gBAChB,IAAI;gBACJ,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAE/B,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;gBAC5B,OAAO,gBAAgB,CAAC;YAC1B,CAAC;YAED,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,mBAAmB,CAAC,IAGjC;QACC,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,IAAI,GAAW,CAAC,CAAC;QAErB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAuB,MAAM,kBAAkB,CAAC,MAAM,CAAC;gBAC/D,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE;gBAClC,KAAK,EAAE,SAAS;gBAChB,IAAI;gBACJ,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAEpB,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAIjC;QACC,IACE,IAAI,CAAC,iBAAiB;YACtB,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,CAAC,EAC5D,CAAC;YACD,MAAM,IAAI,gBAAgB,CACxB,+CAA+C,CAChD,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAiB,MAAM,IAAI,CAAC,WAAW,CAAC;YAClD,EAAE,EAAE,IAAI,CAAC,uBAAuB;YAChC,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB;YACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,gBAAgB,CAAC,qCAAqC,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,gBAAgB,CACxB,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CACxB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAiB,MAAM,IAAI,CAAC,uBAAuB,CAAC;YACxE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YACpC,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,uBAAuB,EAAE,IAAI;aAC9B;SACF,CAAC,CAAC;QAEH,MAAM,UAAU,GAAU,IAAI,KAAK,EAAE,CAAC;QACtC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEvC,MAAM,kBAAkB,GACtB,4BAA4B,CAAC,6BAA6B,CAAC;YACzD,eAAe,EAAE,UAAU;YAC3B,gBAAgB;SACjB,CAAC,CAAC,IAAI,CAAC,CAAC,UAAiB,EAAE,EAAE;YAC5B,OAAO,OAAO,CACZ,UAAU,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,uBAAuB,CAAC,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,IAAI,gBAAgB,CACxB,mEAAmE,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,sCAAsC,CAAC,IAGpD;QACC,MAAM,KAAK,GAAuB,MAAM,IAAI,CAAC,mBAAmB,CAAC;YAC/D,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACpD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,YAAY,EAAE,IAAI;aACnB;SACF,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC;YAC1C,IACE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAiB,EAAE,EAAE;gBAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC,CAAC,EACF,CAAC;gBACD,MAAM,IAAI,gBAAgB,CAAC,mCAAmC,CAAC,CAAC;YAClE,CAAC;YAED,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAoB,EAAE,CAAC;QAC1C,MAAM,qBAAqB,GAAgB,IAAI,GAAG,EAAU,CAAC;QAE7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,gBAAgB,CAAC,mCAAmC,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,sBAAsB,GAAW,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACvD,qBAAqB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAClD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAuB,EAAE,CAAC;QAE3C,KACE,IAAI,MAAM,GAAW,CAAC,EACtB,MAAM,GAAG,aAAa,CAAC,MAAM,EAC7B,MAAM,IAAI,SAAS,EACnB,CAAC;YACD,MAAM,iBAAiB,GAAoB,aAAa,CAAC,KAAK,CAC5D,MAAM,EACN,MAAM,GAAG,SAAS,CACnB,CAAC;YAEF,WAAW,CAAC,IAAI,CACd,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBACjC,KAAK,EAAE;oBACL,GAAG,EAAE,WAAW,CAAC,GAAG,CAClB,iBAAiB,CAAC,GAAG,CAAC,CAAC,YAAsB,EAAE,EAAE;wBAC/C,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC;oBACjC,CAAC,CAAC,CACH;iBACF;gBACD,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI;oBACT,iBAAiB,EAAE,IAAI;iBACxB;aACF,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAA0B,IAAI,GAAG,EAGtD,CAAC;QAEJ,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBAClD,kBAAkB,CAAC,GAAG,CACpB,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,EAC1B,UAAU,CAAC,iBAAiB,CAC7B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAY,aAAa,CAAC,IAAI,CAC7C,CAAC,YAAsB,EAAE,EAAE;YACzB,MAAM,kBAAkB,GAAyB,kBAAkB,CAAC,GAAG,CACrE,WAAW,CAAC,YAAY,CAAC,CAC1B,CAAC;YAEF,OAAO,CACL,CAAC,kBAAkB;gBACnB,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,+BAAgC,CAAC,CACnE,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAgB,CAAC,mCAAmC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,gBAA8B;QAE9B,MAAM,kBAAkB,GAAoB,gBAAgB;aACzD,GAAG,CAAC,CAAC,eAAsB,EAAE,EAAE;YAC9B,OAAO,eAAe,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,EAAmB,EAAkB,EAAE;YAC9C,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAkB;YAChC,GAAG,IAAI,GAAG,CACR,gBAAgB;iBACb,GAAG,CAAC,CAAC,eAAsB,EAAE,EAAE;;gBAC9B,OAAO,MAAA,eAAe,CAAC,SAAS,0CAAE,QAAQ,EAAE,CAAC;YAC/C,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,SAA6B,EAAuB,EAAE;gBAC7D,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC,CAAC,CACL;SACF,CAAC;QAEF,MAAM,KAAK,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YAC/C,KAAK,kBACH,uBAAuB,EAAE,WAAW,CAAC,GAAG,CACtC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAY,EAAE,EAAE;oBACtC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACvB,CAAC,CAAC,CACH,IACE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACvB,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBAC5C,CAAC,CAAC,EAAE,CAAC,CACR;YACD,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;YACrB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,gBAAgB,CACxB,iEAAiE,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAuB,MAAM,IAAI,CAAC,mBAAmB,CAAC;YACtE,KAAK,EAAE;gBACL,iBAAiB,EAAE,WAAW,CAAC,GAAG,CAChC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAY,EAAE,EAAE;oBACtC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACvB,CAAC,CAAC,CACH;aACF;YACD,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAkB,YAAY;aACxC,GAAG,CAAC,CAAC,IAAiB,EAAE,EAAE;;YACzB,OAAO,MAAA,IAAI,CAAC,EAAE,0CAAE,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,EAAsB,EAAgB,EAAE;YAC/C,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,KACE,IAAI,MAAM,GAAW,CAAC,EACtB,MAAM,GAAG,OAAO,CAAC,MAAM,EACvB,MAAM,IAAI,+BAA+B,EACzC,CAAC;YACD,MAAM,SAAS,GAAuB,MAAM,kBAAkB,CAAC,SAAS,CAAC;gBACvE,KAAK,kBACH,YAAY,EAAE,WAAW,CAAC,GAAG,CAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,+BAA+B,CAAC,CAChE,IACE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;oBACvB,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;oBAC5C,CAAC,CAAC,EAAE,CAAC,CACR;gBACD,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;gBACrB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,gBAAgB,CACxB,6EAA6E,CAC9E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB,MAAM,IAAI,GAA4B,QAAQ,CAAC,IAG9C,CAAC;QACF,mCAAmC,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,uBAAuB,GAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,SAAS,GACb,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAE9D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACnC,uBAAuB;gBACvB,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtE,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBACnD,SAAS;gBACT,uBAAuB;aACxB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB,MAAM,IAAI,GAA4B,CAAC,QAAQ,CAAC,IAAI;YAClD,EAAE,CAAuC,CAAC;QAC5C,mCAAmC,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAY,eAAe,CAC9C,IAAI,EACJ,6BAA6B,CAC9B,CAAC;QACF,MAAM,mBAAmB,GAAY,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;QAClE,MAAM,gBAAgB,GAAY,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtE,MAAM,iBAAiB,GAAoB,gBAAgB;YACzD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,gBAAgB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,IAAI,gBAAgB,CACxB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,+BAA+B,GAAoB,eAAe;YACtE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,WAAW,GACf,QAAQ,CAAC,KAAK,YAAY,cAAc;YACtC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC3B,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC;QAClC,MAAM,UAAU,GACd,QAAQ,CAAC,IAAI,YAAY,cAAc;YACrC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1B,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;QAEzB,MAAM,4BAA4B,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;YACnE,KAAK,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;YACpE,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,SAAS,EAAE,IAAI;gBACf,uBAAuB,EAAE,IAAI;gBAC7B,WAAW,EAAE,IAAI;aAClB;YACD,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,MAAM,eAAe,IAAI,4BAA4B,EAAE,CAAC;gBAC3D,IACE,CAAC,eAAe,CAAC,SAAS;oBAC1B,CAAC,iBAAiB;oBAClB,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC,EACrD,CAAC;oBACD,MAAM,IAAI,gBAAgB,CACxB,yDAAyD,CAC1D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,6BAA6B,CACtC,4BAA4B,CAAC,MAAM,CAAC,CAAC,eAAsB,EAAE,EAAE;gBAC7D,OAAO,eAAe,CAAC,WAAW,KAAK,IAAI,CAAC;YAC9C,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,KAAK,MAAM,eAAe,IAAI,4BAA4B,EAAE,CAAC;gBAC3D,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;oBACtD,SAAS;gBACX,CAAC;gBAED,IAAI,+BAA+B,EAAE,CAAC;oBACpC,MAAM,IAAI,CAAC,mBAAmB,CAAC;wBAC7B,iBAAiB,EAAE,eAAe,CAAC,EAAE;wBACrC,uBAAuB,EAAE,+BAA+B;wBACxD,SAAS,EAAE,eAAe,CAAC,SAAS;qBACrC,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,eAAe,GACnB,4BAA4B,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAC5D,MAAM,aAAa,GAAY,+BAA+B;oBAC5D,CAAC,CAAC,CAAC,eAAe;wBAChB,CAAC,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;oBAC3D,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBAE7B,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,sCAAsC,CAAC;wBAChD,iBAAiB,EAAE,eAAe,CAAC,EAAE;wBACrC,+BAA+B;qBAChC,CAAC,CAAC;oBAEH,IACE,4BAA4B,CAAC,MAAM,KAAK,CAAC;wBACzC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,EAC3B,CAAC;wBACD,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;4BACnD,SAAS,EAAE,eAAe,CAAC,SAAS;4BACpC,uBAAuB,EAAE,+BAA+B;yBACzD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB,MAAM,WAAW,GACf,QAAQ,CAAC,KAAK,YAAY,cAAc;YACtC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC3B,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC;QAClC,MAAM,UAAU,GACd,QAAQ,CAAC,IAAI,YAAY,cAAc;YACrC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1B,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;QAEzB,MAAM,4BAA4B,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;YACnE,KAAK,EAAE,IAAI,CAAC,8BAA8B,CACxC,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,KAAK,CACf;YACD,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;YACtC,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAoB,4BAA4B;aACtD,GAAG,CAAC,CAAC,eAAsB,EAAE,EAAE;YAC9B,OAAO,eAAe,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,EAAmB,EAAkB,EAAE;YAC9C,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,SAAS,GAAkB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAY,EAAE,EAAE;YACxD,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAgB,IAAI,GAAG,CACtC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE;YAC3B,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CACH,CAAC;QACF,MAAM,gBAAgB,GAAkB;YACtC,GAAG,IAAI,GAAG,CACR,4BAA4B;iBACzB,GAAG,CAAC,CAAC,eAAsB,EAAE,EAAE;;gBAC9B,OAAO,MAAA,eAAe,CAAC,SAAS,0CAAE,QAAQ,EAAE,CAAC;YAC/C,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,SAA6B,EAAuB,EAAE;gBAC7D,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC,CAAC,CACL;SACF,CAAC;QAEF,KACE,IAAI,YAAY,GAAW,CAAC,EAC5B,YAAY,GAAG,SAAS,CAAC,MAAM,EAC/B,YAAY,IAAI,+BAA+B,EAC/C,CAAC;YACD,MAAM,aAAa,GAAkB,SAAS,CAAC,KAAK,CAClD,YAAY,EACZ,YAAY,GAAG,+BAA+B,CAC/C,CAAC;YACF,IAAI,SAAS,GAAW,CAAC,CAAC;YAE1B,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,UAAU,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;oBACjD,KAAK,kBACH,uBAAuB,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IACpD,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;wBAC7B,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;wBAClD,CAAC,CAAC,EAAE,CAAC,CACR;oBACD,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;oBACrB,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE;oBAClC,KAAK,EAAE,+BAA+B;oBACtC,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iBACxB,CAAC,CAAC;gBAEH,MAAM,iBAAiB,GAAY,UAAU,CAAC,IAAI,CAAC,CAAC,KAAY,EAAE,EAAE;oBAClE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC;gBAEH,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,IAAI,gBAAgB,CACxB,iFAAiF,CAClF,CAAC;gBACJ,CAAC;gBAED,IAAI,UAAU,CAAC,MAAM,GAAG,+BAA+B,EAAE,CAAC;oBACxD,MAAM;gBACR,CAAC;gBAED,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC;YACjC,CAAC;YAED,MAAM,IAAI,GAAuB,MAAM,kBAAkB,CAAC,SAAS,CAAC;gBAClE,KAAK,EAAE;oBACL,iBAAiB,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;iBAClD;gBACD,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;gBACrB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,IAAI,gBAAgB,CACxB,mEAAmE,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;CACF;AAjmCuB;IADrB,WAAW,EAAE;;;;qCAiBb;AAGqB;IADrB,WAAW,EAAE;;;;0CA0Bb;AAGqB;IADrB,WAAW,EAAE;;;;uCAwBb;AAGqB;IADrB,WAAW,EAAE;;;;0CAuBb;AAGqB;IADrB,WAAW,EAAE;;;;uCAqBb;AAGqB;IADrB,WAAW,EAAE;;;;2CAuCb;AAirBwB;IADxB,WAAW,EAAE;;;;6CAiCb;AAGwB;IADxB,WAAW,EAAE;;;;6CAwHb;AAGwB;IADxB,WAAW,EAAE;;;;6CAoHb;AAGH,eAAe,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,217 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DatabaseService from "./DatabaseService";
11
+ import NetworkDeviceService from "./NetworkDeviceService";
12
+ import NetworkSiteService from "./NetworkSiteService";
13
+ import Model from "../../Models/DatabaseModels/NetworkSnmpCredentialProfile";
14
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
15
+ import LIMIT_MAX from "../../Types/Database/LimitMax";
16
+ import BadDataException from "../../Types/Exception/BadDataException";
17
+ import { hasUsableCredentials, } from "../../Utils/NetworkDevice/SnmpCredentialUtil";
18
+ /*
19
+ * A profile is a row of credentials that other rows point at, and most of
20
+ * what is interesting about it happens elsewhere: the poller resolves it
21
+ * (device columns, then device profile, then site profile), the model's
22
+ * column access control keeps its secrets from the roles that may not read
23
+ * them, and DatabaseService encrypts those secrets at rest. There is no
24
+ * fan-out on edit because nothing is copied out of a profile - a device
25
+ * using one is walked with whatever the profile says at poll time.
26
+ *
27
+ * The service owns two things.
28
+ *
29
+ * THE NAME. It is unique per project and it is the label every device and
30
+ * site listing shows for the profile it joins, so a trailing space must not
31
+ * be what makes "Branch v2c" and "Branch v2c " two different profiles, and a
32
+ * blank one must not get past the required check by being three spaces long.
33
+ *
34
+ * THE DELETE GUARD. Both foreign keys onto this table are ON DELETE SET NULL,
35
+ * so deleting a profile that devices or sites still use does not fail - it
36
+ * silently drops every one of them down the resolution order, and a device
37
+ * whose site has no profile either goes from walked to ping-only on its next
38
+ * poll with nothing anywhere to say why. Refuse instead, and say how many
39
+ * devices and sites are in the way. Sites count separately from devices
40
+ * because a site can hold the last reference to a profile while no device
41
+ * points at it directly - that is exactly what "set it once per site" means.
42
+ */
43
+ export class Service extends DatabaseService {
44
+ constructor() {
45
+ super(Model);
46
+ }
47
+ /**
48
+ * "Does this profile carry enough to open an SNMP session with?" -
49
+ * delegated to the pure util so the poller can ask the same question of a
50
+ * device row with the same function. Exposed here so a caller holding the
51
+ * service does not have to know where the predicate lives.
52
+ */
53
+ hasUsableCredentials(profile) {
54
+ return hasUsableCredentials(profile);
55
+ }
56
+ async onBeforeCreate(createBy) {
57
+ createBy.data.name = this.normalizeName(createBy.data.name);
58
+ return { createBy, carryForward: null };
59
+ }
60
+ async onBeforeUpdate(updateBy) {
61
+ /*
62
+ * `!== undefined` rather than a truthiness check: an update that does not
63
+ * mention the name (a description edit, a rotated community string) must
64
+ * leave it alone, while an update that sets it to "" or null is a blank
65
+ * name and is refused the same way a blank create is.
66
+ */
67
+ if (updateBy.data.name !== undefined) {
68
+ updateBy.data.name = this.normalizeName(updateBy.data.name);
69
+ }
70
+ return { updateBy, carryForward: null };
71
+ }
72
+ /*
73
+ * Refuse to delete a profile that any device or any site still points at.
74
+ *
75
+ * Counting rather than keeping a rollup column is deliberate - a maintained
76
+ * counter would make this row hot under every device create and rebind,
77
+ * and NetworkDeviceOidTemplateService set the precedent for exactly this
78
+ * guard. Both counts are always taken and both are always reported, so
79
+ * the operator learns in one message everything that has to move before
80
+ * the delete can go through, rather than clearing the devices and then
81
+ * being told about the sites.
82
+ */
83
+ async onBeforeDelete(deleteBy) {
84
+ const profilesToDelete = await this.findBy({
85
+ /*
86
+ * This hook runs BEFORE DatabaseService permission-checks the query, so
87
+ * a raw isRoot read of deleteBy.query would hand back other tenants'
88
+ * profiles. Re-apply the caller's tenant, exactly as NetworkSiteService
89
+ * and NetworkDeviceOidTemplateService do for the same reason.
90
+ */
91
+ query: this.scopeQueryToCallerTenant(deleteBy.query, deleteBy.props),
92
+ select: {
93
+ _id: true,
94
+ name: true,
95
+ projectId: true,
96
+ },
97
+ limit: LIMIT_MAX,
98
+ skip: 0,
99
+ props: {
100
+ isRoot: true,
101
+ },
102
+ });
103
+ for (const profile of profilesToDelete) {
104
+ if (!profile.id || !profile.projectId) {
105
+ continue;
106
+ }
107
+ const [linkedDeviceCount, linkedSiteCount] = await Promise.all([
108
+ this.countLinkedDevices({
109
+ profileId: profile.id,
110
+ projectId: profile.projectId,
111
+ }),
112
+ this.countLinkedSites({
113
+ profileId: profile.id,
114
+ projectId: profile.projectId,
115
+ }),
116
+ ]);
117
+ if (linkedDeviceCount > 0 || linkedSiteCount > 0) {
118
+ throw new BadDataException(`This SNMP Credential Profile is used by ${linkedDeviceCount} devices and ${linkedSiteCount} sites. Remove it from them first, or point them at another profile.`);
119
+ }
120
+ }
121
+ return { deleteBy, carryForward: null };
122
+ }
123
+ /**
124
+ * How many devices point at this profile directly. Used by the delete
125
+ * guard above and available to the profile page.
126
+ *
127
+ * Read as root, scoped to the profile's own project: the caller who may
128
+ * delete a profile is not necessarily allowed to read every device, and a
129
+ * partial count would let the delete through with devices still attached.
130
+ */
131
+ async countLinkedDevices(data) {
132
+ const count = await NetworkDeviceService.countBy({
133
+ query: {
134
+ projectId: data.projectId,
135
+ snmpCredentialProfileId: data.profileId,
136
+ },
137
+ props: {
138
+ isRoot: true,
139
+ },
140
+ });
141
+ return count.toNumber();
142
+ }
143
+ /**
144
+ * How many sites carry this profile as their default. Same shape and same
145
+ * reasoning as countLinkedDevices.
146
+ */
147
+ async countLinkedSites(data) {
148
+ const count = await NetworkSiteService.countBy({
149
+ query: {
150
+ projectId: data.projectId,
151
+ snmpCredentialProfileId: data.profileId,
152
+ },
153
+ props: {
154
+ isRoot: true,
155
+ },
156
+ });
157
+ return count.toNumber();
158
+ }
159
+ /*
160
+ * See NetworkSiteService for the full explanation: hooks run before
161
+ * ModelPermission scopes the caller's query, so anything a hook reads with
162
+ * isRoot has to be re-scoped by hand or it spans projects.
163
+ */
164
+ scopeQueryToCallerTenant(query, props) {
165
+ if (props.isRoot || !props.tenantId) {
166
+ return query;
167
+ }
168
+ return Object.assign(Object.assign({}, query), { projectId: props.tenantId });
169
+ }
170
+ /*
171
+ * The name as it will be stored, or a BadDataException. Only a plain string
172
+ * is accepted: the column is also used as a label, and a raw SQL expression
173
+ * (the other shape PartialEntity allows) has no business being one.
174
+ */
175
+ normalizeName(name) {
176
+ if (typeof name !== "string") {
177
+ throw new BadDataException("SNMP Credential Profile name is required.");
178
+ }
179
+ const trimmed = name.trim();
180
+ if (!trimmed) {
181
+ throw new BadDataException("SNMP Credential Profile name cannot be blank.");
182
+ }
183
+ return trimmed;
184
+ }
185
+ }
186
+ __decorate([
187
+ CaptureSpan(),
188
+ __metadata("design:type", Function),
189
+ __metadata("design:paramtypes", [Object]),
190
+ __metadata("design:returntype", Promise)
191
+ ], Service.prototype, "onBeforeCreate", null);
192
+ __decorate([
193
+ CaptureSpan(),
194
+ __metadata("design:type", Function),
195
+ __metadata("design:paramtypes", [Object]),
196
+ __metadata("design:returntype", Promise)
197
+ ], Service.prototype, "onBeforeUpdate", null);
198
+ __decorate([
199
+ CaptureSpan(),
200
+ __metadata("design:type", Function),
201
+ __metadata("design:paramtypes", [Object]),
202
+ __metadata("design:returntype", Promise)
203
+ ], Service.prototype, "onBeforeDelete", null);
204
+ __decorate([
205
+ CaptureSpan(),
206
+ __metadata("design:type", Function),
207
+ __metadata("design:paramtypes", [Object]),
208
+ __metadata("design:returntype", Promise)
209
+ ], Service.prototype, "countLinkedDevices", null);
210
+ __decorate([
211
+ CaptureSpan(),
212
+ __metadata("design:type", Function),
213
+ __metadata("design:paramtypes", [Object]),
214
+ __metadata("design:returntype", Promise)
215
+ ], Service.prototype, "countLinkedSites", null);
216
+ export default new Service();
217
+ //# sourceMappingURL=NetworkSnmpCredentialProfileService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkSnmpCredentialProfileService.js","sourceRoot":"","sources":["../../../../Server/Services/NetworkSnmpCredentialProfileService.ts"],"names":[],"mappings":"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"}
@@ -17,12 +17,14 @@ import Email from "../../Types/Email";
17
17
  import ObjectID from "../../Types/ObjectID";
18
18
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
19
19
  import SlackUtil from "../Utils/Workspace/Slack/Slack";
20
+ import { BillingFailureNoticeKind, shouldSendBillingFailureNotice, } from "../Utils/Billing/BillingFailureNoticeThrottle";
20
21
  import URL from "../../Types/API/URL";
21
22
  export class NotificationService extends BaseService {
22
23
  constructor() {
23
24
  super();
24
25
  }
25
- async rechargeBalance(projectId, amountInUSD) {
26
+ async rechargeBalance(projectId, amountInUSD, options) {
27
+ const sendOwnerConfirmationEmail = (options === null || options === void 0 ? void 0 : options.sendOwnerConfirmationEmail) !== false;
26
28
  const project = await ProjectService.findOneById({
27
29
  id: projectId,
28
30
  select: {
@@ -44,9 +46,29 @@ export class NotificationService extends BaseService {
44
46
  if (!project) {
45
47
  return 0;
46
48
  }
49
+ /*
50
+ * The no-payment-method branch below throws, and that throw lands in this
51
+ * method's own catch. Without this the FIRST no-payment-method failure
52
+ * sends two "ACTION REQUIRED" emails about the same fact, one from each
53
+ * place. This is a local flag rather than a mutation of `project` so it is
54
+ * obvious it exists only to coordinate those two blocks.
55
+ */
56
+ let ownersAlreadyToldAboutThisFailure = false;
47
57
  try {
48
58
  if (!(await BillingService.hasPaymentMethods(project.paymentProviderCustomerId))) {
49
- if (!project.failedCallAndSMSBalanceChargeNotificationSentToOwners) {
59
+ /*
60
+ * The same 24h window as the catch below, for the same reason: the
61
+ * project boolean this branch used to latch on is cleared only by a
62
+ * SUCCESSFUL recharge, so a project that never manages one was told
63
+ * once and then never again. A window says it once a day until
64
+ * somebody fixes it, which is what an ACTION REQUIRED message is for.
65
+ */
66
+ ownersAlreadyToldAboutThisFailure = true;
67
+ const shouldTellOwners = await shouldSendBillingFailureNotice({
68
+ projectId: project.id,
69
+ kind: BillingFailureNoticeKind.SmsAndCallRechargeFailed,
70
+ });
71
+ if (shouldTellOwners) {
50
72
  await ProjectService.updateOneById({
51
73
  data: {
52
74
  failedCallAndSMSBalanceChargeNotificationSentToOwners: true,
@@ -83,8 +105,19 @@ export class NotificationService extends BaseService {
83
105
  isRoot: true,
84
106
  },
85
107
  });
86
- await ProjectService.sendEmailToProjectOwners(project.id, "SMS and Call Recharge Successful for project - " +
87
- (project.name || ""), `We have successfully recharged your SMS and Call balance for project - ${project.name || ""} by ${amountInUSD} USD. Your current balance is ${updatedAmount / 100} USD.`);
108
+ /*
109
+ * The confirmation is suppressed for AUTO-recharge only. This used to
110
+ * fire unconditionally, and because rechargeIfBalanceIsLow runs inline
111
+ * on every SMS, call, WhatsApp and Telegram attempt, a project that
112
+ * auto-recharges during a paging storm mailed every owner once per
113
+ * recharge. Somebody who deliberately clicked "Recharge" still gets
114
+ * told: nothing else reliably tells them, because
115
+ * Project.sendInvoicesByEmail defaults to false.
116
+ */
117
+ if (sendOwnerConfirmationEmail) {
118
+ await ProjectService.sendEmailToProjectOwners(project.id, "SMS and Call Recharge Successful for project - " +
119
+ (project.name || ""), `We have successfully recharged your SMS and Call balance for project - ${project.name || ""} by ${amountInUSD} USD. Your current balance is ${updatedAmount / 100} USD.`);
120
+ }
88
121
  // Send Slack notification for balance refill
89
122
  this.sendBalanceRefillSlackNotification({
90
123
  project: project,
@@ -97,17 +130,39 @@ export class NotificationService extends BaseService {
97
130
  return updatedAmount;
98
131
  }
99
132
  catch (err) {
100
- await ProjectService.updateOneById({
101
- data: {
102
- failedCallAndSMSBalanceChargeNotificationSentToOwners: true,
103
- },
104
- id: project.id,
105
- props: {
106
- isRoot: true,
107
- },
108
- });
109
- await ProjectService.sendEmailToProjectOwners(project.id, "ACTION REQUIRED: SMS and Call Recharge Failed for project - " +
110
- (project.name || ""), `We have tried recharged your SMS and Call balance for project - ${project.name || ""} and failed. Please make sure your payment method is upto date and has sufficient balance. You can add new payment methods in Project Settings.`);
133
+ /*
134
+ * This block used to write failedCallAndSMSBalanceChargeNotificationSent
135
+ * ToOwners and then send WITHOUT ever reading it, so a project with a
136
+ * declined card mailed every owner once per paging attempt - inline on
137
+ * every SMS and call, during the outage the pages were about.
138
+ *
139
+ * The guard is a 24h window rather than that boolean deliberately. The
140
+ * boolean is only cleared by a successful recharge, so latching on it
141
+ * would mean: no card -> mail once and latch -> owner adds a card -> the
142
+ * card is declined -> the recharge can never succeed -> the latch never
143
+ * clears -> nobody is ever told the new card failed, and paging quietly
144
+ * stops. A window collapses the storm to one email a day and still
145
+ * reports a new failure within a day. See BillingFailureNoticeThrottle.
146
+ */
147
+ if (!ownersAlreadyToldAboutThisFailure) {
148
+ const shouldTellOwners = await shouldSendBillingFailureNotice({
149
+ projectId: project.id,
150
+ kind: BillingFailureNoticeKind.SmsAndCallRechargeFailed,
151
+ });
152
+ if (shouldTellOwners) {
153
+ await ProjectService.updateOneById({
154
+ data: {
155
+ failedCallAndSMSBalanceChargeNotificationSentToOwners: true,
156
+ },
157
+ id: project.id,
158
+ props: {
159
+ isRoot: true,
160
+ },
161
+ });
162
+ await ProjectService.sendEmailToProjectOwners(project.id, "ACTION REQUIRED: SMS and Call Recharge Failed for project - " +
163
+ (project.name || ""), `We have tried recharged your SMS and Call balance for project - ${project.name || ""} and failed. Please make sure your payment method is upto date and has sufficient balance. You can add new payment methods in Project Settings.`);
164
+ }
165
+ }
111
166
  logger.error(err, { projectId: projectId === null || projectId === void 0 ? void 0 : projectId.toString() });
112
167
  throw err;
113
168
  }
@@ -145,7 +200,15 @@ export class NotificationService extends BaseService {
145
200
  autoRechargeSmsOrCallWhenCurrentBalanceFallsInUSD) {
146
201
  if ((project.smsOrCallCurrentBalanceInUSDCents || 0) / 100 <
147
202
  autoRechargeSmsOrCallWhenCurrentBalanceFallsInUSD) {
148
- const updatedAmount = await this.rechargeBalance(projectId, autoRechargeSmsOrCallByBalanceInUSD);
203
+ const updatedAmount = await this.rechargeBalance(projectId, autoRechargeSmsOrCallByBalanceInUSD, {
204
+ /*
205
+ * This method is called inline from SmsService, CallService,
206
+ * WhatsAppService and TelegramService on EVERY notification
207
+ * attempt, so a success email here is one message to every owner
208
+ * per recharge, in the middle of the storm that caused it.
209
+ */
210
+ sendOwnerConfirmationEmail: false,
211
+ });
149
212
  project.smsOrCallCurrentBalanceInUSDCents = updatedAmount;
150
213
  }
151
214
  }
@@ -176,7 +239,7 @@ ${project.createdOwnerName && project.createdOwnerEmail ? `*Project Created By:*
176
239
  __decorate([
177
240
  CaptureSpan(),
178
241
  __metadata("design:type", Function),
179
- __metadata("design:paramtypes", [ObjectID, Number]),
242
+ __metadata("design:paramtypes", [ObjectID, Number, Object]),
180
243
  __metadata("design:returntype", Promise)
181
244
  ], NotificationService.prototype, "rechargeBalance", null);
182
245
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationService.js","sourceRoot":"","sources":["../../../../Server/Services/NotificationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotificationService.js","sourceRoot":"","sources":["../../../../Server/Services/NotificationService.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ import BalanceAdjustmentType from "../../Types/Billing/BalanceAdjustmentType";
44
44
  import { Black, Blue500, Gray500, Green, Moroon500, Purple500, Red, Teal500, Yellow, Yellow500, } from "../../Types/BrandColors";
45
45
  import Color from "../../Types/Color";
46
46
  import LIMIT_MAX from "../../Types/Database/LimitMax";
47
+ import SortOrder from "../../Types/BaseDatabase/SortOrder";
47
48
  import OneUptimeDate from "../../Types/Date";
48
49
  import EmailTemplateType from "../../Types/Email/EmailTemplateType";
49
50
  import BadDataException from "../../Types/Exception/BadDataException";
@@ -59,6 +60,7 @@ import NetworkSiteType from "../../Models/DatabaseModels/NetworkSiteType";
59
60
  import DefaultNetworkSiteType from "../../Types/NetworkSite/DefaultNetworkSiteType";
60
61
  import NetworkDeviceRole from "../../Models/DatabaseModels/NetworkDeviceRole";
61
62
  import { DEFAULT_NETWORK_DEVICE_ROLES, } from "../../Types/NetworkDevice/DefaultNetworkDeviceRole";
63
+ import { DefaultNetworkSiteTypeCreationOrder, DefaultNetworkSiteTypeParent, } from "../../Types/NetworkSite/DefaultNetworkSiteTypeHierarchy";
62
64
  import Model from "../../Models/DatabaseModels/Project";
63
65
  import ScheduledMaintenanceState from "../../Models/DatabaseModels/ScheduledMaintenanceState";
64
66
  import Team from "../../Models/DatabaseModels/Team";
@@ -1448,15 +1450,36 @@ These are no longer recorded against the project and have to be cancelled by han
1448
1450
  * projects that existed before the table did — same precedent as
1449
1451
  * addDefaultAlertSeverity / addDefaultAlertState.
1450
1452
  */
1451
- async addDefaultNetworkSiteTypes(createdItem) {
1453
+ async addDefaultNetworkSiteTypes(createdItem, options) {
1452
1454
  const projectId = createdItem.id;
1453
- // Idempotent see getExistingProjectScopedNames.
1454
- const existingNames = await this.getExistingProjectScopedNames(NetworkSiteTypeService, projectId);
1455
+ const existingNetworkSiteTypes = [];
1456
+ let networkSiteTypeSkip = 0;
1457
+ while (true) {
1458
+ const page = await NetworkSiteTypeService.findBy({
1459
+ query: { projectId },
1460
+ select: { _id: true, name: true },
1461
+ sort: { _id: SortOrder.Ascending },
1462
+ limit: LIMIT_MAX,
1463
+ skip: networkSiteTypeSkip,
1464
+ props: { isRoot: true },
1465
+ });
1466
+ existingNetworkSiteTypes.push(...page);
1467
+ if (page.length < LIMIT_MAX) {
1468
+ break;
1469
+ }
1470
+ networkSiteTypeSkip += page.length;
1471
+ }
1472
+ const networkSiteTypeByName = new Map();
1473
+ for (const networkSiteType of existingNetworkSiteTypes) {
1474
+ if (networkSiteType.name) {
1475
+ networkSiteTypeByName.set(networkSiteType.name, networkSiteType);
1476
+ }
1477
+ }
1455
1478
  /*
1456
- * Listed broadest-first: the array position is the hierarchy level, so the
1457
- * index drives `order` (1..7, lower = higher in the hierarchy). Names come
1458
- * from DefaultNetworkSiteType so that enum stays the single source of
1459
- * truth for the defaults, shared with the backfill data migration.
1479
+ * DefaultNetworkSiteTypeCreationOrder lists parents before children, so a
1480
+ * parent's ID is always available by the time its child is created. The
1481
+ * parent mapping itself is shared with the data migration that repairs
1482
+ * projects created before type parents existed.
1460
1483
  *
1461
1484
  * isUnitLevel is true for "Unit" only. It is load-bearing, not a label:
1462
1485
  * the network map drills sites of a unit-level type into their device
@@ -1464,60 +1487,73 @@ These are no longer recorded against the project and have to be cancelled by han
1464
1487
  * as units. Downstream code keys off this flag rather than the name,
1465
1488
  * because the name is user-editable once seeded.
1466
1489
  */
1467
- const defaultNetworkSiteTypes = [
1468
- {
1469
- name: DefaultNetworkSiteType.AccountType,
1490
+ const defaultNetworkSiteTypes = {
1491
+ [DefaultNetworkSiteType.AccountType]: {
1470
1492
  description: "Top level grouping - the kind of account the sites underneath it belong to.",
1471
1493
  isUnitLevel: false,
1472
1494
  },
1473
- {
1474
- name: DefaultNetworkSiteType.Region,
1495
+ [DefaultNetworkSiteType.Region]: {
1475
1496
  description: "A broad geographic region that groups markets and the sites within them.",
1476
1497
  isUnitLevel: false,
1477
1498
  },
1478
- {
1479
- name: DefaultNetworkSiteType.Franchisee,
1499
+ [DefaultNetworkSiteType.Franchisee]: {
1480
1500
  description: "An operator or franchise partner responsible for a group of sites.",
1481
1501
  isUnitLevel: false,
1482
1502
  },
1483
- {
1484
- name: DefaultNetworkSiteType.Market,
1503
+ [DefaultNetworkSiteType.Market]: {
1485
1504
  description: "A metro or trade area that groups the sites within it.",
1486
1505
  isUnitLevel: false,
1487
1506
  },
1488
- {
1489
- name: DefaultNetworkSiteType.Unit,
1507
+ [DefaultNetworkSiteType.Unit]: {
1490
1508
  description: "An individual location with network devices. This is the leaf level of the hierarchy.",
1491
1509
  isUnitLevel: true,
1492
1510
  },
1493
- {
1494
- name: DefaultNetworkSiteType.DataCenter,
1511
+ [DefaultNetworkSiteType.DataCenter]: {
1495
1512
  description: "A data center or core facility that hosts shared infrastructure.",
1496
1513
  isUnitLevel: false,
1497
1514
  },
1498
- {
1499
- name: DefaultNetworkSiteType.Other,
1515
+ [DefaultNetworkSiteType.Other]: {
1500
1516
  description: "Any site that does not fit the other levels.",
1501
1517
  isUnitLevel: false,
1502
1518
  },
1503
- ];
1504
- for (let index = 0; index < defaultNetworkSiteTypes.length; index++) {
1505
- const defaultNetworkSiteType = defaultNetworkSiteTypes[index];
1506
- if (existingNames.has(defaultNetworkSiteType.name)) {
1519
+ };
1520
+ /*
1521
+ * `order` is a sibling display order, not a proxy for depth. Increment a
1522
+ * separate counter per parent: the default chain's only child is 1 at each
1523
+ * level, while the three roots are Account Type (1), Data Center (2), and
1524
+ * Other (3).
1525
+ */
1526
+ const nextOrderByParent = new Map();
1527
+ for (const name of DefaultNetworkSiteTypeCreationOrder) {
1528
+ const defaultNetworkSiteType = defaultNetworkSiteTypes[name];
1529
+ const parentName = (options === null || options === void 0 ? void 0 : options.setParentRelationships) === false
1530
+ ? null
1531
+ : DefaultNetworkSiteTypeParent[name];
1532
+ const siblingOrder = (nextOrderByParent.get(parentName) || 0) + 1;
1533
+ nextOrderByParent.set(parentName, siblingOrder);
1534
+ if (networkSiteTypeByName.has(name)) {
1507
1535
  continue;
1508
1536
  }
1509
1537
  const networkSiteType = new NetworkSiteType();
1510
- networkSiteType.name = defaultNetworkSiteType.name;
1538
+ networkSiteType.name = name;
1511
1539
  networkSiteType.description = defaultNetworkSiteType.description;
1512
1540
  networkSiteType.isUnitLevel = defaultNetworkSiteType.isUnitLevel;
1513
1541
  networkSiteType.projectId = projectId;
1514
- networkSiteType.order = index + 1;
1515
- await NetworkSiteTypeService.create({
1542
+ networkSiteType.order = siblingOrder;
1543
+ if (parentName) {
1544
+ const parent = networkSiteTypeByName.get(parentName);
1545
+ if (!(parent === null || parent === void 0 ? void 0 : parent.id)) {
1546
+ throw new BadDataException(`Cannot create the default ${name} Network Site Type because its ${parentName} parent could not be resolved.`);
1547
+ }
1548
+ networkSiteType.parentNetworkSiteTypeId = parent.id;
1549
+ }
1550
+ const createdNetworkSiteType = await NetworkSiteTypeService.create({
1516
1551
  data: networkSiteType,
1517
1552
  props: {
1518
1553
  isRoot: true,
1519
1554
  },
1520
1555
  });
1556
+ networkSiteTypeByName.set(name, createdNetworkSiteType);
1521
1557
  }
1522
1558
  return createdItem;
1523
1559
  }
@@ -2551,7 +2587,7 @@ __decorate([
2551
2587
  __decorate([
2552
2588
  CaptureSpan(),
2553
2589
  __metadata("design:type", Function),
2554
- __metadata("design:paramtypes", [Model]),
2590
+ __metadata("design:paramtypes", [Model, Object]),
2555
2591
  __metadata("design:returntype", Promise)
2556
2592
  ], ProjectService.prototype, "addDefaultNetworkSiteTypes", null);
2557
2593
  __decorate([