@oneuptime/common 12.0.5 → 12.0.6
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.
- package/Models/DatabaseModels/AIRun.ts +33 -0
- package/Models/DatabaseModels/DataSource.ts +744 -0
- package/Models/DatabaseModels/Index.ts +3 -0
- package/Models/DatabaseModels/ProjectCallSMSConfig.ts +10 -2
- package/Models/DatabaseModels/User.ts +2 -0
- package/Models/DatabaseModels/UserOnCallLog.ts +2 -0
- package/Models/DatabaseModels/UserOnCallLogTimeline.ts +2 -0
- package/Models/DatabaseModels/UserSession.ts +2 -0
- package/Models/DatabaseModels/UserTotpAuth.ts +6 -4
- package/Models/DatabaseModels/UserWebAuthn.ts +5 -3
- package/Server/API/AIInsightAPI.ts +47 -4
- package/Server/API/AIInvestigationAPI.ts +25 -0
- package/Server/API/DashboardAPI.ts +176 -492
- package/Server/API/DataSourceAPI.ts +268 -0
- package/Server/API/StatusPageAPI.ts +11 -1
- package/Server/API/UserAPI.ts +119 -0
- package/Server/Infrastructure/ClickhouseConfig.ts +59 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786303472848-AddDataSourceTable.ts +39 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786600000000-AddInvestigationAnalysisTldr.ts +24 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786700000000-DropProjectCallSMSConfigCredentialUniques.ts +76 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Infrastructure/Queue.ts +26 -0
- package/Server/Infrastructure/QueueWorker.ts +17 -0
- package/Server/Middleware/TelemetryIngest.ts +8 -3
- package/Server/Services/AIInsightService.ts +132 -12
- package/Server/Services/AIRunService.ts +34 -0
- package/Server/Services/AIService.ts +17 -2
- package/Server/Services/AlertService.ts +38 -32
- package/Server/Services/AnalyticsDatabaseService.ts +8 -4
- package/Server/Services/DataSourceService.ts +200 -0
- package/Server/Services/HostService.ts +92 -0
- package/Server/Services/IncidentService.ts +45 -0
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/MonitorService.ts +49 -0
- package/Server/Services/MonitorStatusService.ts +166 -0
- package/Server/Services/OpenTelemetryIngestService.ts +255 -184
- package/Server/Services/RumSessionPinService.ts +7 -21
- package/Server/Services/StatusPageSubscriberService.ts +13 -0
- package/Server/Services/UserService.ts +280 -9
- package/Server/Static/Vendor/README.md +62 -0
- package/Server/Static/Vendor/fonts/InterVariable.woff2 +0 -0
- package/Server/Static/Vendor/highlight/highlight.min.js +1244 -0
- package/Server/Static/Vendor/highlight/languages/apache.min.js +15 -0
- package/Server/Static/Vendor/highlight/languages/bash.min.js +21 -0
- package/Server/Static/Vendor/highlight/languages/c.min.js +41 -0
- package/Server/Static/Vendor/highlight/languages/cpp.min.js +47 -0
- package/Server/Static/Vendor/highlight/languages/csharp.min.js +49 -0
- package/Server/Static/Vendor/highlight/languages/css.min.js +31 -0
- package/Server/Static/Vendor/highlight/languages/diff.min.js +9 -0
- package/Server/Static/Vendor/highlight/languages/dns.min.js +11 -0
- package/Server/Static/Vendor/highlight/languages/dockerfile.min.js +8 -0
- package/Server/Static/Vendor/highlight/languages/go.min.js +20 -0
- package/Server/Static/Vendor/highlight/languages/graphql.min.js +12 -0
- package/Server/Static/Vendor/highlight/languages/http.min.js +14 -0
- package/Server/Static/Vendor/highlight/languages/ini.min.js +15 -0
- package/Server/Static/Vendor/highlight/languages/java.min.js +38 -0
- package/Server/Static/Vendor/highlight/languages/javascript.min.js +81 -0
- package/Server/Static/Vendor/highlight/languages/json.min.js +8 -0
- package/Server/Static/Vendor/highlight/languages/kotlin.min.js +46 -0
- package/Server/Static/Vendor/highlight/languages/lua.min.js +15 -0
- package/Server/Static/Vendor/highlight/languages/makefile.min.js +14 -0
- package/Server/Static/Vendor/highlight/languages/nginx.min.js +21 -0
- package/Server/Static/Vendor/highlight/languages/perl.min.js +41 -0
- package/Server/Static/Vendor/highlight/languages/php.min.js +59 -0
- package/Server/Static/Vendor/highlight/languages/powershell.min.js +39 -0
- package/Server/Static/Vendor/highlight/languages/python.min.js +42 -0
- package/Server/Static/Vendor/highlight/languages/r.min.js +26 -0
- package/Server/Static/Vendor/highlight/languages/ruby.min.js +54 -0
- package/Server/Static/Vendor/highlight/languages/rust.min.js +27 -0
- package/Server/Static/Vendor/highlight/languages/scala.min.js +28 -0
- package/Server/Static/Vendor/highlight/languages/sql.min.js +21 -0
- package/Server/Static/Vendor/highlight/languages/swift.min.js +68 -0
- package/Server/Static/Vendor/highlight/languages/typescript.min.js +99 -0
- package/Server/Static/Vendor/highlight/languages/xml.min.js +29 -0
- package/Server/Static/Vendor/highlight/languages/yaml.min.js +28 -0
- package/Server/Static/Vendor/highlight/styles/github-dark.min.css +10 -0
- package/Server/Static/Vendor/highlight/styles/vs2015.min.css +1 -0
- package/Server/Static/Vendor/tailwind/tailwind-3.4.5.js +21028 -0
- package/Server/Types/Database/Permissions/BasePermission.ts +7 -0
- package/Server/Types/Database/Permissions/DeletePermission.ts +2 -0
- package/Server/Types/Database/Permissions/ReadPermission.ts +3 -0
- package/Server/Types/Database/Permissions/TenantPermission.ts +101 -16
- package/Server/Utils/AI/CodeFix/FixRunBudget.ts +2 -2
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +90 -11
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +1 -0
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +1 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionIdentity.ts +125 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +25 -15
- package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +256 -57
- package/Server/Utils/AI/SRE/Insights/InsightStore.ts +76 -18
- package/Server/Utils/AI/SRE/InvestigationTldr.ts +352 -0
- package/Server/Utils/AnalyticsDatabase/InsertDedupContext.ts +7 -2
- package/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.ts +1793 -0
- package/Server/Utils/Dashboard/PublicDashboardViewConfig.ts +65 -0
- package/Server/Utils/DataSource/ConnectorRegistry.ts +53 -0
- package/Server/Utils/DataSource/Connectors/ClickHouseConnector.ts +338 -0
- package/Server/Utils/DataSource/Connectors/ElasticsearchConnector.ts +717 -0
- package/Server/Utils/DataSource/Connectors/LokiConnector.ts +606 -0
- package/Server/Utils/DataSource/Connectors/MySqlConnector.ts +307 -0
- package/Server/Utils/DataSource/Connectors/PostgresConnector.ts +260 -0
- package/Server/Utils/DataSource/Connectors/PrometheusConnector.ts +555 -0
- package/Server/Utils/DataSource/Connectors/RestApiConnector.ts +597 -0
- package/Server/Utils/DataSource/Connectors/SqlServerConnector.ts +318 -0
- package/Server/Utils/DataSource/EgressGuard.ts +446 -0
- package/Server/Utils/DataSource/HttpFetch.ts +221 -0
- package/Server/Utils/DataSource/SqlQueryGuard.ts +383 -0
- package/Server/Utils/DataSource/SqlResultShaper.ts +372 -0
- package/Server/Utils/DataSource/Types.ts +93 -0
- package/Server/Utils/Database/PostgresErrorTranslator.ts +172 -17
- package/Server/Utils/InProcessMemo.ts +141 -0
- package/Server/Utils/InstanceHealth/TelemetryIngestion.ts +628 -0
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +58 -0
- package/Server/Utils/Monitor/MonitorResource.ts +14 -0
- package/Server/Utils/Response.ts +12 -1
- package/Server/Utils/SSRFProtection.ts +237 -0
- package/Server/Utils/StartServer.ts +8 -0
- package/Server/Utils/StatusPageSubscriberWebhook.ts +30 -0
- package/Server/Utils/Telemetry/CaptureSpan.ts +30 -18
- package/Server/Utils/Telemetry/IngestionTimestamp.ts +75 -0
- package/Server/Utils/Telemetry/ResourceHeartbeat.ts +99 -7
- package/Server/Utils/Telemetry/Telemetry.ts +112 -1
- package/Server/Utils/Telemetry.ts +104 -3
- package/Server/Utils/VendorAssets.ts +165 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +28 -5
- package/Server/Utils/Workspace/Slack/Slack.ts +5 -0
- package/Server/Views/Partials/Head.ejs +21 -7
- package/Tests/App/AdminDashboard/AdminProjectsIdFilter.test.tsx +207 -0
- package/Tests/App/AdminDashboard/AdminUsersIdFilter.test.tsx +216 -0
- package/Tests/App/Dashboard/AIInsightViewActions.test.tsx +422 -0
- package/Tests/App/Dashboard/AddWidgetModal.test.tsx +10 -3
- package/Tests/App/Dashboard/AlertsSideMenu.test.tsx +387 -0
- package/Tests/App/Dashboard/ChatActivityFeed.test.tsx +199 -0
- package/Tests/App/Dashboard/DataSourceChartSyntheticConfig.test.tsx +736 -0
- package/Tests/App/Dashboard/DataSourceQueryEditor.test.tsx +868 -0
- package/Tests/App/Dashboard/DataSourceWidgetCatalog.test.ts +440 -0
- package/Tests/App/Dashboard/DataSourceWidgetFetching.test.tsx +2109 -0
- package/Tests/App/Dashboard/DataSourceWidgetViews.test.tsx +726 -0
- package/Tests/App/Dashboard/IncidentsSideMenu.test.tsx +447 -0
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +514 -3
- package/Tests/App/Dashboard/ProductMenuBreadcrumbs.test.tsx +391 -0
- package/Tests/App/Dashboard/ScheduledMaintenanceSideMenu.test.tsx +326 -0
- package/Tests/App/Dashboard/SideMenuHarness.tsx +187 -0
- package/Tests/App/Dashboard/WidgetCatalog.test.ts +6 -1
- package/Tests/App/StatusPage/StatusPageResourceExplorer.test.tsx +1858 -0
- package/Tests/Models/DatabaseModels/DataSourceModelSecrets.test.ts +70 -0
- package/Tests/Server/API/AIInvestigationAPI.test.ts +187 -0
- package/Tests/Server/API/DashboardPublicDataSourceStrip.test.ts +686 -0
- package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +585 -823
- package/Tests/Server/API/DataSourceAPIRoutes.test.ts +486 -0
- package/Tests/Server/API/StatusPageSubscriberOwnership.test.ts +291 -0
- package/Tests/Server/API/UserAuthenticationAPI.test.ts +641 -0
- package/Tests/Server/Infrastructure/ClickhouseKeepAliveOptions.test.ts +441 -0
- package/Tests/Server/Middleware/TelemetryIngestTokenLog.test.ts +140 -0
- package/Tests/Server/Services/AIInsightService.test.ts +266 -11
- package/Tests/Server/Services/AIRunAnalysisTldrPersistence.test.ts +160 -0
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +4 -0
- package/Tests/Server/Services/AlertMetricResourceAttributes.test.ts +352 -0
- package/Tests/Server/Services/DataSourceServiceSettings.test.ts +244 -0
- package/Tests/Server/Services/HostServiceFindOrCreateMemo.test.ts +397 -0
- package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +41 -2
- package/Tests/Server/Services/IncidentMetricResourceAttributes.test.ts +408 -0
- package/Tests/Server/Services/MonitorStatusServiceDeleteReferenceCleanup.test.ts +351 -0
- package/Tests/Server/Services/MonitorStatusServiceValidation.test.ts +171 -0
- package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +398 -0
- package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +19 -0
- package/Tests/Server/Services/ProjectCallSMSConfigCredentialUniqueness.test.ts +305 -0
- package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +36 -1
- package/Tests/Server/Services/RumSessionPinUniqueViolationRecovery.test.ts +163 -0
- package/Tests/Server/Services/UserAuthenticationService.test.ts +973 -0
- package/Tests/Server/Types/Database/ObjectIdColumnQuery.test.ts +262 -0
- package/Tests/Server/Types/Database/Permissions/TenantPermission.test.ts +358 -0
- package/Tests/Server/Utils/AI/FixRunBudget.test.ts +2 -2
- package/Tests/Server/Utils/AI/Insights/ExceptionSpikeDetector.test.ts +6 -1
- package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +121 -4
- package/Tests/Server/Utils/AI/Insights/NewExceptionDetector.test.ts +361 -10
- package/Tests/Server/Utils/AI/InvestigationSettlement.test.ts +292 -0
- package/Tests/Server/Utils/AI/InvestigationTldr.test.ts +623 -0
- package/Tests/Server/Utils/AI/InvestigationTldrWiring.test.ts +98 -0
- package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +857 -0
- package/Tests/Server/Utils/Dashboard/PublicDashboardViewConfig.test.ts +480 -0
- package/Tests/Server/Utils/DataSource/ClickHouseConnector.test.ts +759 -0
- package/Tests/Server/Utils/DataSource/ConnectorRegistry.test.ts +37 -0
- package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +645 -0
- package/Tests/Server/Utils/DataSource/ElasticsearchConnector.test.ts +1206 -0
- package/Tests/Server/Utils/DataSource/HttpFetch.test.ts +616 -0
- package/Tests/Server/Utils/DataSource/LokiConnector.test.ts +970 -0
- package/Tests/Server/Utils/DataSource/MySqlConnector.test.ts +935 -0
- package/Tests/Server/Utils/DataSource/PostgresConnector.test.ts +854 -0
- package/Tests/Server/Utils/DataSource/PrometheusConnector.test.ts +881 -0
- package/Tests/Server/Utils/DataSource/RestApiConnector.test.ts +1020 -0
- package/Tests/Server/Utils/DataSource/SqlQueryGuard.test.ts +425 -0
- package/Tests/Server/Utils/DataSource/SqlResultShaper.test.ts +555 -0
- package/Tests/Server/Utils/DataSource/SqlServerConnector.test.ts +934 -0
- package/Tests/Server/Utils/Database/PostgresErrorTranslator.test.ts +228 -7
- package/Tests/Server/Utils/InProcessMemo.test.ts +292 -0
- package/Tests/Server/Utils/InstanceHealth/TelemetryIngestion.test.ts +960 -0
- package/Tests/Server/Utils/MicrosoftTeamsWebhookUrlValidation.test.ts +103 -0
- package/Tests/Server/Utils/Monitor/MonitorMetricResourceAttributes.test.ts +336 -0
- package/Tests/Server/Utils/OfflineAssetHygiene.test.ts +521 -0
- package/Tests/Server/Utils/ResponseRenderAnalytics.test.ts +143 -0
- package/Tests/Server/Utils/SSRFProtection.test.ts +193 -0
- package/Tests/Server/Utils/StatusPageSubscriberWebhook.test.ts +101 -0
- package/Tests/Server/Utils/TailwindBuildCopy.test.ts +225 -0
- package/Tests/Server/Utils/Telemetry/ResourceHeartbeatL1Memo.test.ts +355 -0
- package/Tests/Server/Utils/Telemetry/TelemetryFanInWriter.test.ts +128 -0
- package/Tests/Server/Utils/Telemetry/TelemetryUtilAttributeKeys.test.ts +381 -0
- package/Tests/Server/Utils/Telemetry.test.ts +87 -0
- package/Tests/Server/Utils/VendorAssetIntegrity.test.ts +343 -0
- package/Tests/Server/Utils/VendorAssets.test.ts +671 -0
- package/Tests/Server/Views/OfflineRender.test.ts +297 -0
- package/Tests/Types/Dashboard/DataSourceComponentTypes.test.ts +618 -0
- package/Tests/Types/DateClickhouseFormat.test.ts +192 -0
- package/Tests/Types/Password.test.ts +363 -0
- package/Tests/UI/Components/ConfirmModal.test.tsx +7 -0
- package/Tests/UI/Components/ErrorBoundary.test.tsx +53 -0
- package/Tests/UI/Components/Modal.test.tsx +281 -1
- package/Tests/UI/Components/ObjectIdFilterPipeline.test.tsx +396 -0
- package/Tests/UI/Components/StatusPage/ResourceGroupNavigator.test.tsx +1147 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +116 -1
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
- package/Tests/Utils/Analytics.test.ts +23 -0
- package/Tests/Utils/Dashboard/Components/DashboardDataSourceComponents.test.ts +640 -0
- package/Tests/Utils/DataSource/DataSourceQueryText.test.ts +138 -0
- package/Tests/Utils/DataSource/DataSourceValueReducer.test.ts +526 -0
- package/Tests/Utils/Metrics/MetricResourceAttributeUtil.test.ts +691 -0
- package/Tests/Utils/StatusPage/GroupHierarchyView.test.ts +1452 -0
- package/Tests/Utils/StatusPage/ResourceExplorer.test.ts +931 -0
- package/Tests/Utils/Telemetry/CaptureSpanExportGating.test.ts +288 -0
- package/Tests/Utils/Telemetry/IngestionTimestamp.test.ts +170 -0
- package/Types/AI/AIInsightEvidence.ts +6 -0
- package/Types/Analytics/RevenueEvent.ts +31 -0
- package/Types/Dashboard/DashboardComponentType.ts +31 -0
- package/Types/Dashboard/DashboardComponents/DashboardDataSourceChartComponent.ts +27 -0
- package/Types/Dashboard/DashboardComponents/DashboardDataSourceGaugeComponent.ts +32 -0
- package/Types/Dashboard/DashboardComponents/DashboardDataSourceTableComponent.ts +30 -0
- package/Types/Dashboard/DashboardComponents/DashboardDataSourceValueComponent.ts +55 -0
- package/Types/DataSource/DataSourceLimits.ts +62 -0
- package/Types/DataSource/DataSourceQueryConfig.ts +41 -0
- package/Types/DataSource/DataSourceTableResult.ts +38 -0
- package/Types/DataSource/DataSourceType.ts +213 -0
- package/Types/Date.ts +43 -3
- package/Types/Password.ts +64 -0
- package/Types/Permission.ts +46 -0
- package/Types/UserAuthenticationStatus.ts +34 -0
- package/UI/Components/Button/Button.tsx +1 -1
- package/UI/Components/ErrorBoundary.tsx +459 -108
- package/UI/Components/Icon/Icon.tsx +10 -9
- package/UI/Components/Modal/ConfirmModal.tsx +6 -1
- package/UI/Components/Modal/Modal.tsx +267 -35
- package/UI/Components/Modal/ModalFooter.tsx +6 -1
- package/UI/Components/MoreMenu/MoreMenu.tsx +19 -4
- package/UI/Components/MoreMenu/MoreMenuItem.tsx +6 -1
- package/UI/Components/StatusPage/ResourceGrid.tsx +314 -0
- package/UI/Components/StatusPage/ResourceGroupNavigator.tsx +808 -0
- package/UI/Components/StatusPage/ResourceList.tsx +570 -0
- package/UI/Styles/Theme.css +18 -0
- package/UI/Utils/API/RequestOptions.ts +7 -0
- package/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.ts +1 -0
- package/UI/Utils/ModelAPI/ModelAPI.ts +1 -0
- package/UI/Utils/TestDataSource.ts +61 -0
- package/UI/esbuild-config.js +45 -0
- package/Utils/Analytics.ts +15 -0
- package/Utils/Dashboard/Components/DashboardDataSourceChartComponent.ts +88 -0
- package/Utils/Dashboard/Components/DashboardDataSourceGaugeComponent.ts +123 -0
- package/Utils/Dashboard/Components/DashboardDataSourceShared.ts +16 -0
- package/Utils/Dashboard/Components/DashboardDataSourceTableComponent.ts +72 -0
- package/Utils/Dashboard/Components/DashboardDataSourceValueComponent.ts +126 -0
- package/Utils/Dashboard/Components/Index.ts +28 -0
- package/Utils/DataSource/DataSourceQueryText.ts +94 -0
- package/Utils/DataSource/DataSourceValueReducer.ts +156 -0
- package/Utils/Metrics/MetricResourceAttributeUtil.ts +380 -0
- package/Utils/NetworkDiscovery/ScanTargetUtil.ts +8 -6
- package/Utils/StatusPage/GroupHierarchyView.ts +931 -0
- package/Utils/StatusPage/ResourceExplorer.ts +853 -0
- package/build/dist/Models/DatabaseModels/AIRun.js +34 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DataSource.js +774 -0
- package/build/dist/Models/DatabaseModels/DataSource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js +14 -4
- package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/User.js +2 -0
- package/build/dist/Models/DatabaseModels/User.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js +2 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserSession.js +2 -0
- package/build/dist/Models/DatabaseModels/UserSession.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserTotpAuth.js +6 -4
- package/build/dist/Models/DatabaseModels/UserTotpAuth.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js +5 -3
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
- package/build/dist/Server/API/AIInsightAPI.js +34 -4
- package/build/dist/Server/API/AIInsightAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +23 -0
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +119 -433
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/DataSourceAPI.js +173 -0
- package/build/dist/Server/API/DataSourceAPI.js.map +1 -0
- package/build/dist/Server/API/StatusPageAPI.js +11 -1
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/UserAPI.js +94 -2
- package/build/dist/Server/API/UserAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js +49 -0
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786303472848-AddDataSourceTable.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786303472848-AddDataSourceTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786600000000-AddInvestigationAnalysisTldr.js +19 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786600000000-AddInvestigationAnalysisTldr.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786700000000-DropProjectCallSMSConfigCredentialUniques.js +64 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786700000000-DropProjectCallSMSConfigCredentialUniques.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Queue.js +27 -0
- package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
- package/build/dist/Server/Infrastructure/QueueWorker.js +13 -0
- package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +8 -3
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Services/AIInsightService.js +110 -10
- package/build/dist/Server/Services/AIInsightService.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +34 -0
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +16 -2
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +28 -35
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +8 -4
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DataSourceService.js +159 -0
- package/build/dist/Server/Services/DataSourceService.js.map +1 -0
- package/build/dist/Server/Services/HostService.js +74 -0
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +35 -24
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +45 -0
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusService.js +129 -0
- package/build/dist/Server/Services/MonitorStatusService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +222 -159
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/RumSessionPinService.js +7 -15
- package/build/dist/Server/Services/RumSessionPinService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageSubscriberService.js +10 -0
- package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +241 -10
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js +6 -0
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/DeletePermission.js +1 -0
- package/build/dist/Server/Types/Database/Permissions/DeletePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/ReadPermission.js +2 -0
- package/build/dist/Server/Types/Database/Permissions/ReadPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js +68 -12
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +2 -2
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +68 -8
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +1 -0
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +1 -0
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionIdentity.js +97 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionIdentity.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +17 -15
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +178 -54
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js +65 -16
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationTldr.js +303 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationTldr.js.map +1 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/InsertDedupContext.js.map +1 -1
- package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js +1261 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js.map +1 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardViewConfig.js +47 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardViewConfig.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/ConnectorRegistry.js +42 -0
- package/build/dist/Server/Utils/DataSource/ConnectorRegistry.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/ClickHouseConnector.js +187 -0
- package/build/dist/Server/Utils/DataSource/Connectors/ClickHouseConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/ElasticsearchConnector.js +493 -0
- package/build/dist/Server/Utils/DataSource/Connectors/ElasticsearchConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/LokiConnector.js +399 -0
- package/build/dist/Server/Utils/DataSource/Connectors/LokiConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/MySqlConnector.js +195 -0
- package/build/dist/Server/Utils/DataSource/Connectors/MySqlConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/PostgresConnector.js +149 -0
- package/build/dist/Server/Utils/DataSource/Connectors/PostgresConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/PrometheusConnector.js +362 -0
- package/build/dist/Server/Utils/DataSource/Connectors/PrometheusConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/RestApiConnector.js +342 -0
- package/build/dist/Server/Utils/DataSource/Connectors/RestApiConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/SqlServerConnector.js +186 -0
- package/build/dist/Server/Utils/DataSource/Connectors/SqlServerConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/EgressGuard.js +305 -0
- package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/HttpFetch.js +134 -0
- package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/SqlQueryGuard.js +331 -0
- package/build/dist/Server/Utils/DataSource/SqlQueryGuard.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/SqlResultShaper.js +280 -0
- package/build/dist/Server/Utils/DataSource/SqlResultShaper.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Types.js +2 -0
- package/build/dist/Server/Utils/DataSource/Types.js.map +1 -0
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js +103 -9
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js.map +1 -1
- package/build/dist/Server/Utils/InProcessMemo.js +113 -0
- package/build/dist/Server/Utils/InProcessMemo.js.map +1 -0
- package/build/dist/Server/Utils/InstanceHealth/TelemetryIngestion.js +406 -0
- package/build/dist/Server/Utils/InstanceHealth/TelemetryIngestion.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +34 -0
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +14 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Response.js +9 -1
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/SSRFProtection.js +192 -0
- package/build/dist/Server/Utils/SSRFProtection.js.map +1 -0
- package/build/dist/Server/Utils/StartServer.js +7 -0
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js +24 -0
- package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/CaptureSpan.js +25 -11
- package/build/dist/Server/Utils/Telemetry/CaptureSpan.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/IngestionTimestamp.js +32 -0
- package/build/dist/Server/Utils/Telemetry/IngestionTimestamp.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +92 -5
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +92 -6
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry.js +93 -6
- package/build/dist/Server/Utils/Telemetry.js.map +1 -1
- package/build/dist/Server/Utils/VendorAssets.js +121 -0
- package/build/dist/Server/Utils/VendorAssets.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +25 -4
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +5 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Types/Analytics/RevenueEvent.js +26 -0
- package/build/dist/Types/Analytics/RevenueEvent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js +27 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceChartComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceChartComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceGaugeComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceGaugeComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceTableComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceTableComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceValueComponent.js +16 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceValueComponent.js.map +1 -0
- package/build/dist/Types/DataSource/DataSourceLimits.js +47 -0
- package/build/dist/Types/DataSource/DataSourceLimits.js.map +1 -0
- package/build/dist/Types/DataSource/DataSourceQueryConfig.js +10 -0
- package/build/dist/Types/DataSource/DataSourceQueryConfig.js.map +1 -0
- package/build/dist/Types/DataSource/DataSourceTableResult.js +14 -0
- package/build/dist/Types/DataSource/DataSourceTableResult.js.map +1 -0
- package/build/dist/Types/DataSource/DataSourceType.js +183 -0
- package/build/dist/Types/DataSource/DataSourceType.js.map +1 -0
- package/build/dist/Types/Date.js +38 -3
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Password.js +56 -0
- package/build/dist/Types/Password.js.map +1 -0
- package/build/dist/Types/Permission.js +42 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/UserAuthenticationStatus.js +2 -0
- package/build/dist/Types/UserAuthenticationStatus.js.map +1 -0
- package/build/dist/UI/Components/ErrorBoundary.js +388 -72
- package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +10 -4
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js +1 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +178 -19
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js +3 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +9 -6
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +7 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
- package/build/dist/UI/Components/StatusPage/ResourceGrid.js +119 -0
- package/build/dist/UI/Components/StatusPage/ResourceGrid.js.map +1 -0
- package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js +354 -0
- package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js.map +1 -0
- package/build/dist/UI/Components/StatusPage/ResourceList.js +203 -0
- package/build/dist/UI/Components/StatusPage/ResourceList.js.map +1 -0
- package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js +1 -6
- package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +3 -8
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/TestDataSource.js +39 -0
- package/build/dist/UI/Utils/TestDataSource.js.map +1 -0
- package/build/dist/Utils/Analytics.js +4 -0
- package/build/dist/Utils/Analytics.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceChartComponent.js +79 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceChartComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceGaugeComponent.js +111 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceGaugeComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceShared.js +15 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceShared.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceTableComponent.js +62 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceTableComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceValueComponent.js +112 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceValueComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +16 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/DataSource/DataSourceQueryText.js +64 -0
- package/build/dist/Utils/DataSource/DataSourceQueryText.js.map +1 -0
- package/build/dist/Utils/DataSource/DataSourceValueReducer.js +124 -0
- package/build/dist/Utils/DataSource/DataSourceValueReducer.js.map +1 -0
- package/build/dist/Utils/Metrics/MetricResourceAttributeUtil.js +281 -0
- package/build/dist/Utils/Metrics/MetricResourceAttributeUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/ScanTargetUtil.js +8 -6
- package/build/dist/Utils/NetworkDiscovery/ScanTargetUtil.js.map +1 -1
- package/build/dist/Utils/StatusPage/GroupHierarchyView.js +560 -0
- package/build/dist/Utils/StatusPage/GroupHierarchyView.js.map +1 -0
- package/build/dist/Utils/StatusPage/ResourceExplorer.js +519 -0
- package/build/dist/Utils/StatusPage/ResourceExplorer.js.map +1 -0
- package/jest.config.json +1 -0
- package/package.json +5 -1
- package/tsconfig.json +12 -10
|
@@ -0,0 +1,519 @@
|
|
|
1
|
+
import StatusPageGroupHierarchyViewUtil from "./GroupHierarchyView";
|
|
2
|
+
import StatusPageGroupTreeUtil from "./GroupTree";
|
|
3
|
+
/*
|
|
4
|
+
* What the right hand pane is showing. "Ungrouped" is a real place on a status
|
|
5
|
+
* page - the resources that sit above every group - so it is a selection like
|
|
6
|
+
* any other rather than a group with a null id.
|
|
7
|
+
*/
|
|
8
|
+
export var StatusPageResourceSelectionType;
|
|
9
|
+
(function (StatusPageResourceSelectionType) {
|
|
10
|
+
StatusPageResourceSelectionType["Group"] = "Group";
|
|
11
|
+
StatusPageResourceSelectionType["Ungrouped"] = "Ungrouped";
|
|
12
|
+
})(StatusPageResourceSelectionType || (StatusPageResourceSelectionType = {}));
|
|
13
|
+
class StatusPageResourceExplorerUtil {
|
|
14
|
+
/* ------------------------------------------------------------------ */
|
|
15
|
+
/* Counts */
|
|
16
|
+
/* ------------------------------------------------------------------ */
|
|
17
|
+
/*
|
|
18
|
+
* One pass over every resource on the status page. The caller fetches those
|
|
19
|
+
* resources with only their id and their group id selected, so this stays
|
|
20
|
+
* one small request however many groups exist.
|
|
21
|
+
*
|
|
22
|
+
* `totalCount` is what the API reported the query matched, which is not the
|
|
23
|
+
* same as how many rows came back when the page hit the row limit - see
|
|
24
|
+
* isComplete.
|
|
25
|
+
*/
|
|
26
|
+
static buildResourceCountIndex(data) {
|
|
27
|
+
var _a;
|
|
28
|
+
const ownCountByGroupId = new Map();
|
|
29
|
+
let ungroupedCount = 0;
|
|
30
|
+
for (const resource of data.statusPageResources) {
|
|
31
|
+
const groupId = ((_a = resource.statusPageGroupId) === null || _a === void 0 ? void 0 : _a.toString()) || null;
|
|
32
|
+
if (!groupId) {
|
|
33
|
+
ungroupedCount = ungroupedCount + 1;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
ownCountByGroupId.set(groupId, (ownCountByGroupId.get(groupId) || 0) + 1);
|
|
37
|
+
}
|
|
38
|
+
const fetchedCount = data.statusPageResources.length;
|
|
39
|
+
const totalCount = data.totalCount === undefined ? fetchedCount : data.totalCount;
|
|
40
|
+
return {
|
|
41
|
+
ownCountByGroupId: ownCountByGroupId,
|
|
42
|
+
ungroupedCount: ungroupedCount,
|
|
43
|
+
totalCount: totalCount,
|
|
44
|
+
isComplete: fetchedCount >= totalCount,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/*
|
|
48
|
+
* The count index a page has before its resource list has come back: no
|
|
49
|
+
* numbers, and honest about it. The navigator does not wait on the counts, so
|
|
50
|
+
* every row has to be drawable without them.
|
|
51
|
+
*/
|
|
52
|
+
static getEmptyResourceCountIndex() {
|
|
53
|
+
return {
|
|
54
|
+
ownCountByGroupId: new Map(),
|
|
55
|
+
ungroupedCount: 0,
|
|
56
|
+
totalCount: 0,
|
|
57
|
+
isComplete: false,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/*
|
|
61
|
+
* The index with one group's count replaced by a number that came straight
|
|
62
|
+
* from that group's own pane.
|
|
63
|
+
*
|
|
64
|
+
* This is how the counts stay honest after a change without the page reading
|
|
65
|
+
* every resource on the status page again. The selected group refetches after
|
|
66
|
+
* every create, delete and bulk add and reports what came back; only that
|
|
67
|
+
* group's number can have changed, so only that number is replaced - and the
|
|
68
|
+
* page-wide total is moved by the difference.
|
|
69
|
+
*
|
|
70
|
+
* `statusPageGroupId` of null updates the ungrouped bucket.
|
|
71
|
+
*/
|
|
72
|
+
static withGroupResourceCount(data) {
|
|
73
|
+
const previousCount = data.statusPageGroupId
|
|
74
|
+
? data.countIndex.ownCountByGroupId.get(data.statusPageGroupId) || 0
|
|
75
|
+
: data.countIndex.ungroupedCount;
|
|
76
|
+
if (previousCount === data.count) {
|
|
77
|
+
/*
|
|
78
|
+
* The same object, so a pane reporting the number the page already had -
|
|
79
|
+
* which is what every ordinary refetch does - does not re-render the
|
|
80
|
+
* whole navigator.
|
|
81
|
+
*/
|
|
82
|
+
return data.countIndex;
|
|
83
|
+
}
|
|
84
|
+
const ownCountByGroupId = new Map(data.countIndex.ownCountByGroupId);
|
|
85
|
+
if (data.statusPageGroupId) {
|
|
86
|
+
ownCountByGroupId.set(data.statusPageGroupId, data.count);
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
ownCountByGroupId: ownCountByGroupId,
|
|
90
|
+
ungroupedCount: data.statusPageGroupId
|
|
91
|
+
? data.countIndex.ungroupedCount
|
|
92
|
+
: data.count,
|
|
93
|
+
totalCount: Math.max(0, data.countIndex.totalCount - previousCount + data.count),
|
|
94
|
+
isComplete: data.countIndex.isComplete,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
static getOwnResourceCount(data) {
|
|
98
|
+
var _a;
|
|
99
|
+
const groupId = ((_a = data.statusPageGroup._id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
|
|
100
|
+
return data.countIndex.ownCountByGroupId.get(groupId) || 0;
|
|
101
|
+
}
|
|
102
|
+
/*
|
|
103
|
+
* How many resources sit under each group including every group below it,
|
|
104
|
+
* worked out in one pass up the tree rather than once per row.
|
|
105
|
+
*/
|
|
106
|
+
static buildSubtreeResourceCountIndex(data) {
|
|
107
|
+
const subtreeCountByGroupId = new Map();
|
|
108
|
+
const tree = StatusPageGroupTreeUtil.buildTree({
|
|
109
|
+
statusPageGroups: data.statusPageGroups,
|
|
110
|
+
index: data.index,
|
|
111
|
+
});
|
|
112
|
+
const visit = (node) => {
|
|
113
|
+
var _a;
|
|
114
|
+
const groupId = ((_a = node.group._id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
|
|
115
|
+
let total = this.getOwnResourceCount({
|
|
116
|
+
statusPageGroup: node.group,
|
|
117
|
+
countIndex: data.countIndex,
|
|
118
|
+
});
|
|
119
|
+
for (const child of node.children) {
|
|
120
|
+
total = total + visit(child);
|
|
121
|
+
}
|
|
122
|
+
if (groupId) {
|
|
123
|
+
subtreeCountByGroupId.set(groupId, total);
|
|
124
|
+
}
|
|
125
|
+
return total;
|
|
126
|
+
};
|
|
127
|
+
for (const node of tree) {
|
|
128
|
+
visit(node);
|
|
129
|
+
}
|
|
130
|
+
return subtreeCountByGroupId;
|
|
131
|
+
}
|
|
132
|
+
/* ------------------------------------------------------------------ */
|
|
133
|
+
/* The navigator */
|
|
134
|
+
/* ------------------------------------------------------------------ */
|
|
135
|
+
/*
|
|
136
|
+
* The rows the navigator draws, in tree order, with collapsed subtrees
|
|
137
|
+
* already gone and the counts already attached.
|
|
138
|
+
*
|
|
139
|
+
* The hierarchy itself - rails, expansion, what a search reveals - comes from
|
|
140
|
+
* StatusPageGroupHierarchyViewUtil, which is also what the public status page
|
|
141
|
+
* lays its groups out from, so a group sits where the operator put it.
|
|
142
|
+
*/
|
|
143
|
+
static getNavigatorRows(data) {
|
|
144
|
+
const hierarchyRows = StatusPageGroupHierarchyViewUtil.getRows({
|
|
145
|
+
statusPageGroups: data.statusPageGroups,
|
|
146
|
+
expandedGroupIds: data.expandedGroupIds,
|
|
147
|
+
searchText: data.searchText,
|
|
148
|
+
});
|
|
149
|
+
const subtreeCountByGroupId = this.buildSubtreeResourceCountIndex({
|
|
150
|
+
statusPageGroups: data.statusPageGroups,
|
|
151
|
+
countIndex: data.countIndex,
|
|
152
|
+
index: data.index,
|
|
153
|
+
});
|
|
154
|
+
const maxRows = data.maxRows === undefined ? this.MaxNavigatorRows : data.maxRows;
|
|
155
|
+
const visibleRows = maxRows >= 0 ? hierarchyRows.slice(0, maxRows) : hierarchyRows;
|
|
156
|
+
const rows = visibleRows.map((row) => {
|
|
157
|
+
return {
|
|
158
|
+
statusPageGroup: row.statusPageGroup,
|
|
159
|
+
id: row.id,
|
|
160
|
+
name: row.name,
|
|
161
|
+
depth: row.depth,
|
|
162
|
+
viewMode: row.statusPageGroup.viewMode,
|
|
163
|
+
ancestorRails: row.ancestorRails,
|
|
164
|
+
isLastVisibleSibling: row.isLastVisibleSibling,
|
|
165
|
+
visibleSiblingIndex: row.visibleSiblingIndex,
|
|
166
|
+
visibleSiblingCount: row.visibleSiblingCount,
|
|
167
|
+
hasSubGroups: row.hasSubGroups,
|
|
168
|
+
subGroupCount: row.subGroupCount,
|
|
169
|
+
hasVisibleSubGroups: row.hasVisibleSubGroups,
|
|
170
|
+
isExpanded: row.isExpanded,
|
|
171
|
+
canMoveUp: row.canMoveUp,
|
|
172
|
+
canMoveDown: row.canMoveDown,
|
|
173
|
+
isSearchMatch: row.isSearchMatch,
|
|
174
|
+
ownResourceCount: this.getOwnResourceCount({
|
|
175
|
+
statusPageGroup: row.statusPageGroup,
|
|
176
|
+
countIndex: data.countIndex,
|
|
177
|
+
}),
|
|
178
|
+
subtreeResourceCount: subtreeCountByGroupId.get(row.id) || 0,
|
|
179
|
+
};
|
|
180
|
+
});
|
|
181
|
+
return {
|
|
182
|
+
rows: rows,
|
|
183
|
+
totalRowCount: hierarchyRows.length,
|
|
184
|
+
isTruncated: rows.length < hierarchyRows.length,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/*
|
|
188
|
+
* The groups that have to be open for a group to be visible in the navigator.
|
|
189
|
+
*
|
|
190
|
+
* Selecting a group the operator cannot see - because a create landed in a
|
|
191
|
+
* collapsed branch, or because a link arrived pointing at one - reads exactly
|
|
192
|
+
* like the selection having failed.
|
|
193
|
+
*/
|
|
194
|
+
static getGroupIdsToReveal(data) {
|
|
195
|
+
var _a;
|
|
196
|
+
const ids = new Set();
|
|
197
|
+
if (!data.statusPageGroupId) {
|
|
198
|
+
return ids;
|
|
199
|
+
}
|
|
200
|
+
const statusPageGroup = data.statusPageGroups.find((group) => {
|
|
201
|
+
var _a;
|
|
202
|
+
return ((_a = group._id) === null || _a === void 0 ? void 0 : _a.toString()) === data.statusPageGroupId;
|
|
203
|
+
});
|
|
204
|
+
if (!statusPageGroup) {
|
|
205
|
+
return ids;
|
|
206
|
+
}
|
|
207
|
+
const ancestors = StatusPageGroupTreeUtil.getAncestorGroups({
|
|
208
|
+
statusPageGroup: statusPageGroup,
|
|
209
|
+
statusPageGroups: data.statusPageGroups,
|
|
210
|
+
index: data.index,
|
|
211
|
+
});
|
|
212
|
+
for (const ancestor of ancestors) {
|
|
213
|
+
const ancestorId = ((_a = ancestor._id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
|
|
214
|
+
if (ancestorId) {
|
|
215
|
+
ids.add(ancestorId);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return ids;
|
|
219
|
+
}
|
|
220
|
+
/*
|
|
221
|
+
* Every group id in the hierarchy, in tree order. What "expand all" opens.
|
|
222
|
+
*/
|
|
223
|
+
static getAllGroupIds(data) {
|
|
224
|
+
const ids = [];
|
|
225
|
+
const visit = (nodes) => {
|
|
226
|
+
var _a;
|
|
227
|
+
for (const node of nodes) {
|
|
228
|
+
const groupId = ((_a = node.group._id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
|
|
229
|
+
if (groupId) {
|
|
230
|
+
ids.push(groupId);
|
|
231
|
+
}
|
|
232
|
+
visit(node.children);
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
visit(StatusPageGroupTreeUtil.buildTree({
|
|
236
|
+
statusPageGroups: data.statusPageGroups,
|
|
237
|
+
index: data.index,
|
|
238
|
+
}));
|
|
239
|
+
return ids;
|
|
240
|
+
}
|
|
241
|
+
/*
|
|
242
|
+
* Where the selected group sits, root first, as steps the pane can make
|
|
243
|
+
* clickable. The group itself is not a step - it is the heading the steps
|
|
244
|
+
* lead to.
|
|
245
|
+
*/
|
|
246
|
+
static getBreadcrumbSteps(data) {
|
|
247
|
+
const ancestors = StatusPageGroupTreeUtil.getAncestorGroups({
|
|
248
|
+
statusPageGroup: data.statusPageGroup,
|
|
249
|
+
statusPageGroups: data.statusPageGroups,
|
|
250
|
+
index: data.index,
|
|
251
|
+
});
|
|
252
|
+
/* getAncestorGroups walks upwards; a breadcrumb reads downwards. */
|
|
253
|
+
return ancestors
|
|
254
|
+
.slice()
|
|
255
|
+
.reverse()
|
|
256
|
+
.map((ancestor) => {
|
|
257
|
+
var _a;
|
|
258
|
+
return {
|
|
259
|
+
id: ((_a = ancestor._id) === null || _a === void 0 ? void 0 : _a.toString()) || "",
|
|
260
|
+
name: ancestor.name || "Untitled group",
|
|
261
|
+
};
|
|
262
|
+
})
|
|
263
|
+
.filter((step) => {
|
|
264
|
+
return step.id.length > 0;
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
/*
|
|
268
|
+
* The selection a freshly opened tab starts on.
|
|
269
|
+
*
|
|
270
|
+
* The ungrouped bucket, unless the status page has no ungrouped resources and
|
|
271
|
+
* does have groups - in which case starting there would be an empty pane with
|
|
272
|
+
* a full navigator beside it, which reads as a page that failed to load.
|
|
273
|
+
*/
|
|
274
|
+
static getInitialSelection(data) {
|
|
275
|
+
const ungroupedSelection = {
|
|
276
|
+
type: StatusPageResourceSelectionType.Ungrouped,
|
|
277
|
+
statusPageGroupId: null,
|
|
278
|
+
};
|
|
279
|
+
if (data.statusPageGroups.length === 0) {
|
|
280
|
+
return ungroupedSelection;
|
|
281
|
+
}
|
|
282
|
+
if (!data.countIndex.isComplete || data.countIndex.ungroupedCount > 0) {
|
|
283
|
+
return ungroupedSelection;
|
|
284
|
+
}
|
|
285
|
+
const firstGroupId = this.getAllGroupIds({
|
|
286
|
+
statusPageGroups: data.statusPageGroups,
|
|
287
|
+
})[0];
|
|
288
|
+
if (!firstGroupId) {
|
|
289
|
+
return ungroupedSelection;
|
|
290
|
+
}
|
|
291
|
+
return {
|
|
292
|
+
type: StatusPageResourceSelectionType.Group,
|
|
293
|
+
statusPageGroupId: firstGroupId,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
/* ------------------------------------------------------------------ */
|
|
297
|
+
/* Resources in the selected group */
|
|
298
|
+
/* ------------------------------------------------------------------ */
|
|
299
|
+
/*
|
|
300
|
+
* What a resource is called on this screen.
|
|
301
|
+
*
|
|
302
|
+
* The monitor's name rather than the display name: the display name is what
|
|
303
|
+
* visitors see, and an operator looking for the monitor they just created is
|
|
304
|
+
* looking for the name they created it under. A resource whose monitor was
|
|
305
|
+
* deleted falls back to whatever is left, because a row nobody can identify
|
|
306
|
+
* is a row nobody can clean up.
|
|
307
|
+
*/
|
|
308
|
+
static getResourceName(resource) {
|
|
309
|
+
var _a, _b;
|
|
310
|
+
return (((_a = resource.monitor) === null || _a === void 0 ? void 0 : _a.name) ||
|
|
311
|
+
((_b = resource.monitorGroup) === null || _b === void 0 ? void 0 : _b.name) ||
|
|
312
|
+
resource.displayName ||
|
|
313
|
+
"Unknown resource");
|
|
314
|
+
}
|
|
315
|
+
/*
|
|
316
|
+
* Free text over the two names a resource has. Client side, over the group's
|
|
317
|
+
* own resources, because the group is already loaded - a round trip per
|
|
318
|
+
* keystroke would be slower and would still only be searching the same rows.
|
|
319
|
+
*/
|
|
320
|
+
static filterResources(data) {
|
|
321
|
+
const searchText = (data.searchText || "").trim().toLowerCase();
|
|
322
|
+
if (!searchText) {
|
|
323
|
+
return data.statusPageResources;
|
|
324
|
+
}
|
|
325
|
+
return data.statusPageResources.filter((resource) => {
|
|
326
|
+
var _a, _b;
|
|
327
|
+
const haystack = [
|
|
328
|
+
((_a = resource.monitor) === null || _a === void 0 ? void 0 : _a.name) || "",
|
|
329
|
+
((_b = resource.monitorGroup) === null || _b === void 0 ? void 0 : _b.name) || "",
|
|
330
|
+
resource.displayName || "",
|
|
331
|
+
];
|
|
332
|
+
return haystack.some((value) => {
|
|
333
|
+
return value.toLowerCase().includes(searchText);
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
/*
|
|
338
|
+
* The `order` to write when a resource is dragged from one position to
|
|
339
|
+
* another.
|
|
340
|
+
*
|
|
341
|
+
* The server renumbers the group's siblings around whatever order it is
|
|
342
|
+
* given, so the write is "take the place of the resource currently sitting
|
|
343
|
+
* there" rather than an index - the same write the old table's drag and drop
|
|
344
|
+
* made, and the only one StatusPageResourceService knows how to rebalance.
|
|
345
|
+
*
|
|
346
|
+
* Null when the move is a no-op or the positions are not real.
|
|
347
|
+
*/
|
|
348
|
+
static getReorderTargetOrder(data) {
|
|
349
|
+
const { statusPageResources, fromIndex, toIndex } = data;
|
|
350
|
+
if (fromIndex === toIndex) {
|
|
351
|
+
return null;
|
|
352
|
+
}
|
|
353
|
+
if (fromIndex < 0 ||
|
|
354
|
+
toIndex < 0 ||
|
|
355
|
+
fromIndex >= statusPageResources.length ||
|
|
356
|
+
toIndex >= statusPageResources.length) {
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
359
|
+
const target = statusPageResources[toIndex];
|
|
360
|
+
if (!target || target.order === undefined || target.order === null) {
|
|
361
|
+
return null;
|
|
362
|
+
}
|
|
363
|
+
return target.order;
|
|
364
|
+
}
|
|
365
|
+
/*
|
|
366
|
+
* The list as it will look once the move lands, so the row can be drawn where
|
|
367
|
+
* it was dropped rather than jumping back until the write returns.
|
|
368
|
+
*/
|
|
369
|
+
static getResourcesInNewOrder(data) {
|
|
370
|
+
const { statusPageResources, fromIndex, toIndex } = data;
|
|
371
|
+
if (fromIndex === toIndex ||
|
|
372
|
+
fromIndex < 0 ||
|
|
373
|
+
toIndex < 0 ||
|
|
374
|
+
fromIndex >= statusPageResources.length ||
|
|
375
|
+
toIndex >= statusPageResources.length) {
|
|
376
|
+
return statusPageResources;
|
|
377
|
+
}
|
|
378
|
+
const next = [...statusPageResources];
|
|
379
|
+
const [moved] = next.splice(fromIndex, 1);
|
|
380
|
+
if (!moved) {
|
|
381
|
+
return statusPageResources;
|
|
382
|
+
}
|
|
383
|
+
next.splice(toIndex, 0, moved);
|
|
384
|
+
return next;
|
|
385
|
+
}
|
|
386
|
+
/* ------------------------------------------------------------------ */
|
|
387
|
+
/* Grid groups */
|
|
388
|
+
/* ------------------------------------------------------------------ */
|
|
389
|
+
/*
|
|
390
|
+
* The comma separated axis values a grid group is defined by, as a list.
|
|
391
|
+
*/
|
|
392
|
+
static parseAxisValues(raw) {
|
|
393
|
+
if (!raw) {
|
|
394
|
+
return [];
|
|
395
|
+
}
|
|
396
|
+
return raw
|
|
397
|
+
.split(",")
|
|
398
|
+
.map((value) => {
|
|
399
|
+
return value.trim();
|
|
400
|
+
})
|
|
401
|
+
.filter((value) => {
|
|
402
|
+
return value.length > 0;
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
/*
|
|
406
|
+
* A NUL separator rather than a space or a dash: axis values are free text,
|
|
407
|
+
* so any separator an operator could type would let ("A B", "C") and
|
|
408
|
+
* ("A", "B C") collapse into the same cell.
|
|
409
|
+
*/
|
|
410
|
+
static getGridCellKey(rowValue, columnValue) {
|
|
411
|
+
return `${rowValue}\u0000${columnValue}`;
|
|
412
|
+
}
|
|
413
|
+
/*
|
|
414
|
+
* Which resources land in which cell of a grid group, and which land nowhere
|
|
415
|
+
* because their axis values are not among the group's own.
|
|
416
|
+
*
|
|
417
|
+
* The orphans matter: an axis value renamed on the group's own form strands
|
|
418
|
+
* every resource that referenced it, and a grid that silently drew fewer
|
|
419
|
+
* cells than it has resources would hide monitors an operator believes are
|
|
420
|
+
* published.
|
|
421
|
+
*/
|
|
422
|
+
static buildGridModel(data) {
|
|
423
|
+
const resourcesByCellKey = new Map();
|
|
424
|
+
const orphanResources = [];
|
|
425
|
+
for (const resource of data.statusPageResources) {
|
|
426
|
+
const rowValue = resource.rowAxisValue || "";
|
|
427
|
+
const columnValue = resource.columnAxisValue || "";
|
|
428
|
+
if (!rowValue ||
|
|
429
|
+
!columnValue ||
|
|
430
|
+
!data.rowValues.includes(rowValue) ||
|
|
431
|
+
!data.columnValues.includes(columnValue)) {
|
|
432
|
+
orphanResources.push(resource);
|
|
433
|
+
continue;
|
|
434
|
+
}
|
|
435
|
+
const key = this.getGridCellKey(rowValue, columnValue);
|
|
436
|
+
const cell = resourcesByCellKey.get(key) || [];
|
|
437
|
+
cell.push(resource);
|
|
438
|
+
resourcesByCellKey.set(key, cell);
|
|
439
|
+
}
|
|
440
|
+
return {
|
|
441
|
+
resourcesByCellKey: resourcesByCellKey,
|
|
442
|
+
orphanResources: orphanResources,
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
/* ------------------------------------------------------------------ */
|
|
446
|
+
/* Labels */
|
|
447
|
+
/* ------------------------------------------------------------------ */
|
|
448
|
+
/*
|
|
449
|
+
* "12 resources", or "1 resource".
|
|
450
|
+
*/
|
|
451
|
+
static getResourceCountLabel(data) {
|
|
452
|
+
if (data.count === 1) {
|
|
453
|
+
return "1 resource";
|
|
454
|
+
}
|
|
455
|
+
return `${data.count.toLocaleString()} resources`;
|
|
456
|
+
}
|
|
457
|
+
/*
|
|
458
|
+
* What a navigator row's count badge says, which is not always the same
|
|
459
|
+
* number as the pane it opens.
|
|
460
|
+
*
|
|
461
|
+
* A group that holds nothing itself but has a hundred resources nested under
|
|
462
|
+
* it is not empty, and a bare "0" beside it would send an operator hunting
|
|
463
|
+
* through fifteen hundred groups for monitors that are right there. So the
|
|
464
|
+
* badge shows what the group holds, and the tooltip explains the subtree when
|
|
465
|
+
* the two differ.
|
|
466
|
+
*/
|
|
467
|
+
static getNavigatorCountLabel(data) {
|
|
468
|
+
if (!data.countIndex.isComplete) {
|
|
469
|
+
return null;
|
|
470
|
+
}
|
|
471
|
+
if (data.row.ownResourceCount === 0 &&
|
|
472
|
+
data.row.subtreeResourceCount > data.row.ownResourceCount) {
|
|
473
|
+
return `+${data.row.subtreeResourceCount.toLocaleString()}`;
|
|
474
|
+
}
|
|
475
|
+
return data.row.ownResourceCount.toLocaleString();
|
|
476
|
+
}
|
|
477
|
+
static getNavigatorCountTooltip(data) {
|
|
478
|
+
if (!data.countIndex.isComplete) {
|
|
479
|
+
return undefined;
|
|
480
|
+
}
|
|
481
|
+
const own = `${data.row.ownResourceCount.toLocaleString()} ${data.row.ownResourceCount === 1 ? "resource" : "resources"} in this group`;
|
|
482
|
+
if (data.row.subtreeResourceCount === data.row.ownResourceCount) {
|
|
483
|
+
return own;
|
|
484
|
+
}
|
|
485
|
+
return `${own} · ${data.row.subtreeResourceCount.toLocaleString()} including sub groups`;
|
|
486
|
+
}
|
|
487
|
+
static getSubGroupCountLabel(data) {
|
|
488
|
+
if (data.subGroupCount <= 0) {
|
|
489
|
+
return null;
|
|
490
|
+
}
|
|
491
|
+
if (data.subGroupCount === 1) {
|
|
492
|
+
return "1 sub group";
|
|
493
|
+
}
|
|
494
|
+
return `${data.subGroupCount.toLocaleString()} sub groups`;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
/*
|
|
498
|
+
* How many navigator rows are drawn before the list stops and offers to draw
|
|
499
|
+
* more.
|
|
500
|
+
*
|
|
501
|
+
* Collapsing a group already removes its whole subtree from the row list, so
|
|
502
|
+
* the navigator is normally short. One shape gets past that: a status page
|
|
503
|
+
* whose groups are all at the top level, where nothing is nested and so
|
|
504
|
+
* nothing can be collapsed away. Fifteen hundred rows of that is a page that
|
|
505
|
+
* will not scroll, so the list is capped and says so.
|
|
506
|
+
*/
|
|
507
|
+
StatusPageResourceExplorerUtil.MaxNavigatorRows = 200;
|
|
508
|
+
/*
|
|
509
|
+
* How many more rows each press of "Show more" adds.
|
|
510
|
+
*/
|
|
511
|
+
StatusPageResourceExplorerUtil.NavigatorRowsPerPage = 200;
|
|
512
|
+
/*
|
|
513
|
+
* A group with more resources than this is not worth drawing all at once.
|
|
514
|
+
* The pane draws this many and offers the rest a page at a time - the list
|
|
515
|
+
* stays scrollable and the DOM stays bounded, without a second request.
|
|
516
|
+
*/
|
|
517
|
+
StatusPageResourceExplorerUtil.ResourceRowsPerPage = 100;
|
|
518
|
+
export default StatusPageResourceExplorerUtil;
|
|
519
|
+
//# sourceMappingURL=ResourceExplorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceExplorer.js","sourceRoot":"","sources":["../../../../Utils/StatusPage/ResourceExplorer.ts"],"names":[],"mappings":"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"}
|
package/jest.config.json
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"^react-dom$": "<rootDir>/node_modules/react-dom",
|
|
28
28
|
"^react-dom/(.*)$": "<rootDir>/node_modules/react-dom/$1",
|
|
29
29
|
"^react-router-dom$": "<rootDir>/node_modules/react-router-dom",
|
|
30
|
+
"^react-i18next$": "<rootDir>/node_modules/react-i18next",
|
|
30
31
|
"^react-markdown$": "<rootDir>/Tests/__mocks__/react-markdown.js",
|
|
31
32
|
"^remark-gfm$": "<rootDir>/Tests/__mocks__/remark-gfm.js",
|
|
32
33
|
"^react-syntax-highlighter$": "<rootDir>/Tests/__mocks__/react-syntax-highlighter.js",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneuptime/common",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.0.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -34,9 +34,11 @@
|
|
|
34
34
|
"@types/jest": "^28.1.4",
|
|
35
35
|
"@types/json2csv": "^5.0.3",
|
|
36
36
|
"@types/jsonwebtoken": "^8.5.9",
|
|
37
|
+
"@types/mssql": "^12.3.0",
|
|
37
38
|
"@types/node": "^26.1.1",
|
|
38
39
|
"@types/node-cron": "^3.0.7",
|
|
39
40
|
"@types/nodemailer": "^8.0.1",
|
|
41
|
+
"@types/pg": "^8.20.0",
|
|
40
42
|
"@types/react": "^18.2.38",
|
|
41
43
|
"@types/react-beautiful-dnd": "^13.1.2",
|
|
42
44
|
"@types/react-big-calendar": "^1.8.5",
|
|
@@ -119,7 +121,9 @@
|
|
|
119
121
|
"moment": "^2.30.1",
|
|
120
122
|
"moment-timezone": "^0.5.45",
|
|
121
123
|
"monaco-editor": "0.52.2",
|
|
124
|
+
"mssql": "^12.7.0",
|
|
122
125
|
"multer": "^2.1.1",
|
|
126
|
+
"mysql2": "^3.22.6",
|
|
123
127
|
"node-cron": "^4.0.0",
|
|
124
128
|
"nodemailer": "^8.0.11",
|
|
125
129
|
"otpauth": "^9.3.1",
|
package/tsconfig.json
CHANGED
|
@@ -47,15 +47,16 @@
|
|
|
47
47
|
* NOT in the Common Test CI job, which installs Common alone. The result
|
|
48
48
|
* was a suite that passed locally and failed in CI.
|
|
49
49
|
*
|
|
50
|
-
* "react-router-dom"
|
|
51
|
-
* same
|
|
52
|
-
* by anything the type checker can already reach from
|
|
53
|
-
* resolution walks up from the importing FILE, so from
|
|
54
|
-
* App/FeatureSet
|
|
55
|
-
*
|
|
56
|
-
* CI job
|
|
57
|
-
*
|
|
58
|
-
* the type checker's
|
|
50
|
+
* "react-router-dom" and "react-i18next" are here for the same reason,
|
|
51
|
+
* one level out: those same App sources import them, and unlike "react"
|
|
52
|
+
* they are not covered by anything the type checker can already reach from
|
|
53
|
+
* Common. Node resolution walks up from the importing FILE, so from
|
|
54
|
+
* App/FeatureSet/<app>/src/... it only ever looks in App's and the repo
|
|
55
|
+
* root's node_modules - never in Common's, which is the only one installed
|
|
56
|
+
* in the Common Test CI job AND, for react-i18next, the only place it is
|
|
57
|
+
* installed at all. Common's jest moduleNameMapper already maps these
|
|
58
|
+
* specifiers to this same directory at runtime; this is the type checker's
|
|
59
|
+
* half of that.
|
|
59
60
|
*
|
|
60
61
|
* Deliberately `paths` WITHOUT `baseUrl` (supported since TS 4.4, and
|
|
61
62
|
* paths here are relative to this file). Setting baseUrl would change how
|
|
@@ -64,7 +65,8 @@
|
|
|
64
65
|
*/
|
|
65
66
|
"paths": {
|
|
66
67
|
"Common/*": ["./*"],
|
|
67
|
-
"react-router-dom": ["./node_modules/react-router-dom"]
|
|
68
|
+
"react-router-dom": ["./node_modules/react-router-dom"],
|
|
69
|
+
"react-i18next": ["./node_modules/react-i18next"]
|
|
68
70
|
},
|
|
69
71
|
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
|
70
72
|
"typeRoots": [
|