adonisjs-server-stats 1.5.4 → 1.6.2
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/README.md +351 -171
- package/dist/configure.d.ts.map +1 -1
- package/dist/core/api-client.d.ts +73 -0
- package/dist/core/api-client.d.ts.map +1 -0
- package/dist/core/config-utils.d.ts +109 -0
- package/dist/core/config-utils.d.ts.map +1 -0
- package/dist/core/constants.d.ts +11 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/dashboard-api.d.ts +65 -0
- package/dist/core/dashboard-api.d.ts.map +1 -0
- package/dist/core/dashboard-data-controller.d.ts +157 -0
- package/dist/core/dashboard-data-controller.d.ts.map +1 -0
- package/dist/core/debug-data-controller.d.ts +89 -0
- package/dist/core/debug-data-controller.d.ts.map +1 -0
- package/dist/core/feature-detect.d.ts +67 -0
- package/dist/core/feature-detect.d.ts.map +1 -0
- package/dist/core/formatters.d.ts +189 -0
- package/dist/core/formatters.d.ts.map +1 -0
- package/dist/core/history-buffer.d.ts +23 -0
- package/dist/core/history-buffer.d.ts.map +1 -0
- package/dist/core/icons.d.ts +36 -0
- package/dist/core/icons.d.ts.map +1 -0
- package/dist/core/index.d.ts +39 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +1961 -0
- package/dist/core/internals-utils.d.ts +71 -0
- package/dist/core/internals-utils.d.ts.map +1 -0
- package/dist/core/job-utils.d.ts +45 -0
- package/dist/core/job-utils.d.ts.map +1 -0
- package/dist/core/log-utils.d.ts +34 -0
- package/dist/core/log-utils.d.ts.map +1 -0
- package/dist/core/metrics.d.ts +41 -0
- package/dist/core/metrics.d.ts.map +1 -0
- package/dist/core/pagination.d.ts +128 -0
- package/dist/core/pagination.d.ts.map +1 -0
- package/dist/core/query-utils.d.ts +35 -0
- package/dist/core/query-utils.d.ts.map +1 -0
- package/dist/core/resizable-columns.d.ts +18 -0
- package/dist/core/resizable-columns.d.ts.map +1 -0
- package/dist/core/routes.d.ts +12 -0
- package/dist/core/routes.d.ts.map +1 -0
- package/dist/core/server-stats-controller.d.ts +106 -0
- package/dist/core/server-stats-controller.d.ts.map +1 -0
- package/dist/core/sparkline.d.ts +80 -0
- package/dist/core/sparkline.d.ts.map +1 -0
- package/dist/core/theme.d.ts +42 -0
- package/dist/core/theme.d.ts.map +1 -0
- package/dist/core/trace-utils.d.ts +62 -0
- package/dist/core/trace-utils.d.ts.map +1 -0
- package/dist/core/transmit-adapter.d.ts +59 -0
- package/dist/core/transmit-adapter.d.ts.map +1 -0
- package/dist/core/types.d.ts +619 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/react/CacheSection-DGxMDlWK.js +146 -0
- package/dist/react/CacheTab-CnVW5PLs.js +123 -0
- package/dist/react/ConfigContent-CnsEI4j3.js +397 -0
- package/dist/react/ConfigSection-DPcrfqXY.js +11 -0
- package/dist/react/ConfigTab-BSWq_o2p.js +15 -0
- package/dist/react/CustomPaneTab-xjkYwTvH.js +104 -0
- package/dist/react/DataTable-YyShr5B-.js +55 -0
- package/dist/react/EmailsSection-CSyTg1aX.js +262 -0
- package/dist/react/EmailsTab-Dh2YSa_f.js +131 -0
- package/dist/react/EventsSection-C1pbJDfW.js +86 -0
- package/dist/react/EventsTab-eCh02cdd.js +63 -0
- package/dist/react/FilterBar-DQRXpWrb.js +50 -0
- package/dist/react/InternalsContent-DBzsI0CG.js +346 -0
- package/dist/react/InternalsSection-t7ihcWO-.js +32 -0
- package/dist/react/InternalsTab-Oij0A2fN.js +30 -0
- package/dist/react/JobsSection-CLAin5vU.js +187 -0
- package/dist/react/JobsTab-Dl5nrj2z.js +141 -0
- package/dist/react/LogsSection-C1p81fXO.js +212 -0
- package/dist/react/LogsTab-D-kR7PjX.js +88 -0
- package/dist/react/OverviewSection-nm3xdACz.js +539 -0
- package/dist/react/Pagination-BkmzUDY8.js +64 -0
- package/dist/react/QueriesSection-DB12HMfQ.js +461 -0
- package/dist/react/QueriesTab-fyBB1u_Y.js +90 -0
- package/dist/react/RequestsSection-DTqB81ac.js +209 -0
- package/dist/react/RoutesSection-DJWa4NPV.js +74 -0
- package/dist/react/RoutesTab-D3l8TOpu.js +74 -0
- package/dist/react/TimelineSection-C4d-jRX1.js +158 -0
- package/dist/react/TimelineTab-C5TFaSmQ.js +193 -0
- package/dist/react/WaterfallChart-Cj73WdfM.js +100 -0
- package/dist/react/core/api-client.d.ts +73 -0
- package/dist/react/core/api-client.d.ts.map +1 -0
- package/dist/react/core/config-utils.d.ts +109 -0
- package/dist/react/core/config-utils.d.ts.map +1 -0
- package/dist/react/core/constants.d.ts +11 -0
- package/dist/react/core/constants.d.ts.map +1 -0
- package/dist/react/core/dashboard-api.d.ts +65 -0
- package/dist/react/core/dashboard-api.d.ts.map +1 -0
- package/dist/react/core/dashboard-data-controller.d.ts +157 -0
- package/dist/react/core/dashboard-data-controller.d.ts.map +1 -0
- package/dist/react/core/debug-data-controller.d.ts +89 -0
- package/dist/react/core/debug-data-controller.d.ts.map +1 -0
- package/dist/react/core/feature-detect.d.ts +67 -0
- package/dist/react/core/feature-detect.d.ts.map +1 -0
- package/dist/react/core/formatters.d.ts +189 -0
- package/dist/react/core/formatters.d.ts.map +1 -0
- package/dist/react/core/history-buffer.d.ts +23 -0
- package/dist/react/core/history-buffer.d.ts.map +1 -0
- package/dist/react/core/icons.d.ts +36 -0
- package/dist/react/core/icons.d.ts.map +1 -0
- package/dist/react/core/index.d.ts +39 -0
- package/dist/react/core/index.d.ts.map +1 -0
- package/dist/react/core/internals-utils.d.ts +71 -0
- package/dist/react/core/internals-utils.d.ts.map +1 -0
- package/dist/react/core/job-utils.d.ts +45 -0
- package/dist/react/core/job-utils.d.ts.map +1 -0
- package/dist/react/core/log-utils.d.ts +34 -0
- package/dist/react/core/log-utils.d.ts.map +1 -0
- package/dist/react/core/metrics.d.ts +41 -0
- package/dist/react/core/metrics.d.ts.map +1 -0
- package/dist/react/core/pagination.d.ts +128 -0
- package/dist/react/core/pagination.d.ts.map +1 -0
- package/dist/react/core/query-utils.d.ts +35 -0
- package/dist/react/core/query-utils.d.ts.map +1 -0
- package/dist/react/core/resizable-columns.d.ts +18 -0
- package/dist/react/core/resizable-columns.d.ts.map +1 -0
- package/dist/react/core/routes.d.ts +12 -0
- package/dist/react/core/routes.d.ts.map +1 -0
- package/dist/react/core/server-stats-controller.d.ts +106 -0
- package/dist/react/core/server-stats-controller.d.ts.map +1 -0
- package/dist/react/core/sparkline.d.ts +80 -0
- package/dist/react/core/sparkline.d.ts.map +1 -0
- package/dist/react/core/theme.d.ts +42 -0
- package/dist/react/core/theme.d.ts.map +1 -0
- package/dist/react/core/trace-utils.d.ts +62 -0
- package/dist/react/core/trace-utils.d.ts.map +1 -0
- package/dist/react/core/transmit-adapter.d.ts +59 -0
- package/dist/react/core/transmit-adapter.d.ts.map +1 -0
- package/dist/react/core/types.d.ts +619 -0
- package/dist/react/core/types.d.ts.map +1 -0
- package/dist/react/index-UdTfSvtO.js +1074 -0
- package/dist/react/index.js +18 -0
- package/dist/react/react/components/Dashboard/DashboardPage.d.ts +17 -0
- package/dist/react/react/components/Dashboard/DashboardPage.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/CacheSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/CacheSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/ConfigSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/ConfigSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/EmailsSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/EmailsSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/EventsSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/EventsSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/InternalsSection.d.ts +14 -0
- package/dist/react/react/components/Dashboard/sections/InternalsSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/JobsSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/JobsSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/LogsSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/LogsSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/OverviewSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/OverviewSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/QueriesSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/QueriesSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/RequestsSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/RequestsSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/RoutesSection.d.ts +7 -0
- package/dist/react/react/components/Dashboard/sections/RoutesSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/sections/TimelineSection.d.ts +9 -0
- package/dist/react/react/components/Dashboard/sections/TimelineSection.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/shared/DataTable.d.ts +27 -0
- package/dist/react/react/components/Dashboard/shared/DataTable.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/shared/FilterBar.d.ts +17 -0
- package/dist/react/react/components/Dashboard/shared/FilterBar.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/shared/Pagination.d.ts +13 -0
- package/dist/react/react/components/Dashboard/shared/Pagination.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/shared/TimeRangeSelector.d.ts +12 -0
- package/dist/react/react/components/Dashboard/shared/TimeRangeSelector.d.ts.map +1 -0
- package/dist/react/react/components/Dashboard/shared/WaterfallChart.d.ts +16 -0
- package/dist/react/react/components/Dashboard/shared/WaterfallChart.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/DebugPanel.d.ts +16 -0
- package/dist/react/react/components/DebugPanel/DebugPanel.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/CacheTab.d.ts +8 -0
- package/dist/react/react/components/DebugPanel/tabs/CacheTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/ConfigTab.d.ts +8 -0
- package/dist/react/react/components/DebugPanel/tabs/ConfigTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/CustomPaneTab.d.ts +14 -0
- package/dist/react/react/components/DebugPanel/tabs/CustomPaneTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/EmailsTab.d.ts +7 -0
- package/dist/react/react/components/DebugPanel/tabs/EmailsTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/EventsTab.d.ts +7 -0
- package/dist/react/react/components/DebugPanel/tabs/EventsTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/InternalsTab.d.ts +12 -0
- package/dist/react/react/components/DebugPanel/tabs/InternalsTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/JobsTab.d.ts +9 -0
- package/dist/react/react/components/DebugPanel/tabs/JobsTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/LogsTab.d.ts +7 -0
- package/dist/react/react/components/DebugPanel/tabs/LogsTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/QueriesTab.d.ts +7 -0
- package/dist/react/react/components/DebugPanel/tabs/QueriesTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/RoutesTab.d.ts +8 -0
- package/dist/react/react/components/DebugPanel/tabs/RoutesTab.d.ts.map +1 -0
- package/dist/react/react/components/DebugPanel/tabs/TimelineTab.d.ts +7 -0
- package/dist/react/react/components/DebugPanel/tabs/TimelineTab.d.ts.map +1 -0
- package/dist/react/react/components/StatsBar/MetricCard.d.ts +21 -0
- package/dist/react/react/components/StatsBar/MetricCard.d.ts.map +1 -0
- package/dist/react/react/components/StatsBar/Sparkline.d.ts +15 -0
- package/dist/react/react/components/StatsBar/Sparkline.d.ts.map +1 -0
- package/dist/react/react/components/StatsBar/StatsBar.d.ts +22 -0
- package/dist/react/react/components/StatsBar/StatsBar.d.ts.map +1 -0
- package/dist/react/react/components/shared/Badge.d.ts +32 -0
- package/dist/react/react/components/shared/Badge.d.ts.map +1 -0
- package/dist/react/react/components/shared/ConfigContent.d.ts +13 -0
- package/dist/react/react/components/shared/ConfigContent.d.ts.map +1 -0
- package/dist/react/react/components/shared/InternalsContent.d.ts +10 -0
- package/dist/react/react/components/shared/InternalsContent.d.ts.map +1 -0
- package/dist/react/react/components/shared/JsonViewer.d.ts +12 -0
- package/dist/react/react/components/shared/JsonViewer.d.ts.map +1 -0
- package/dist/react/react/components/shared/ThemeToggle.d.ts +13 -0
- package/dist/react/react/components/shared/ThemeToggle.d.ts.map +1 -0
- package/dist/react/react/components/shared/Tooltip.d.ts +16 -0
- package/dist/react/react/components/shared/Tooltip.d.ts.map +1 -0
- package/dist/react/react/hooks/useApiClient.d.ts +10 -0
- package/dist/react/react/hooks/useApiClient.d.ts.map +1 -0
- package/dist/react/react/hooks/useDashboardApiBase.d.ts +19 -0
- package/dist/react/react/hooks/useDashboardApiBase.d.ts.map +1 -0
- package/dist/react/react/hooks/useDashboardData.d.ts +27 -0
- package/dist/react/react/hooks/useDashboardData.d.ts.map +1 -0
- package/dist/react/react/hooks/useDebugData.d.ts +17 -0
- package/dist/react/react/hooks/useDebugData.d.ts.map +1 -0
- package/dist/react/react/hooks/useFeatures.d.ts +13 -0
- package/dist/react/react/hooks/useFeatures.d.ts.map +1 -0
- package/dist/react/react/hooks/useResizableTable.d.ts +13 -0
- package/dist/react/react/hooks/useResizableTable.d.ts.map +1 -0
- package/dist/react/react/hooks/useServerStats.d.ts +21 -0
- package/dist/react/react/hooks/useServerStats.d.ts.map +1 -0
- package/dist/react/react/hooks/useTheme.d.ts +12 -0
- package/dist/react/react/hooks/useTheme.d.ts.map +1 -0
- package/dist/react/react/index.d.ts +14 -0
- package/dist/react/react/index.d.ts.map +1 -0
- package/dist/react/style.css +1 -0
- package/dist/react/useApiClient-BVtNCmnL.js +9 -0
- package/dist/react/useDashboardApiBase-Bi36pJ2L.js +14 -0
- package/dist/react/useResizableTable-CNJmACdt.js +13 -0
- package/dist/src/collectors/app_collector.d.ts.map +1 -1
- package/dist/src/collectors/app_collector.js +30 -2
- package/dist/src/collectors/auto_detect.d.ts +31 -0
- package/dist/src/collectors/auto_detect.d.ts.map +1 -0
- package/dist/src/collectors/auto_detect.js +120 -0
- package/dist/src/collectors/collector.d.ts +17 -0
- package/dist/src/collectors/collector.d.ts.map +1 -1
- package/dist/src/collectors/db_pool_collector.d.ts.map +1 -1
- package/dist/src/collectors/db_pool_collector.js +35 -1
- package/dist/src/collectors/http_collector.d.ts +4 -3
- package/dist/src/collectors/http_collector.d.ts.map +1 -1
- package/dist/src/collectors/http_collector.js +28 -11
- package/dist/src/collectors/index.d.ts +2 -0
- package/dist/src/collectors/index.d.ts.map +1 -1
- package/dist/src/collectors/index.js +1 -0
- package/dist/src/collectors/log_collector.d.ts +11 -4
- package/dist/src/collectors/log_collector.d.ts.map +1 -1
- package/dist/src/collectors/log_collector.js +51 -5
- package/dist/src/collectors/process_collector.d.ts.map +1 -1
- package/dist/src/collectors/process_collector.js +4 -0
- package/dist/src/collectors/queue_collector.d.ts.map +1 -1
- package/dist/src/collectors/queue_collector.js +55 -1
- package/dist/src/collectors/redis_collector.d.ts.map +1 -1
- package/dist/src/collectors/redis_collector.js +42 -3
- package/dist/src/collectors/system_collector.d.ts.map +1 -1
- package/dist/src/collectors/system_collector.js +4 -0
- package/dist/src/controller/api_controller.d.ts +101 -0
- package/dist/src/controller/api_controller.d.ts.map +1 -0
- package/dist/src/controller/api_controller.js +131 -0
- package/dist/src/controller/debug_controller.d.ts +19 -10
- package/dist/src/controller/debug_controller.d.ts.map +1 -1
- package/dist/src/controller/debug_controller.js +118 -101
- package/dist/src/core/theme.d.ts +42 -0
- package/dist/src/core/theme.d.ts.map +1 -0
- package/dist/src/core/theme.js +115 -0
- package/dist/src/dashboard/chart_aggregator.d.ts.map +1 -1
- package/dist/src/dashboard/chart_aggregator.js +3 -2
- package/dist/src/dashboard/dashboard_controller.d.ts +10 -14
- package/dist/src/dashboard/dashboard_controller.d.ts.map +1 -1
- package/dist/src/dashboard/dashboard_controller.js +132 -250
- package/dist/src/dashboard/dashboard_store.d.ts +62 -19
- package/dist/src/dashboard/dashboard_store.d.ts.map +1 -1
- package/dist/src/dashboard/dashboard_store.js +242 -53
- package/dist/src/dashboard/integrations/cache_inspector.d.ts +19 -1
- package/dist/src/dashboard/integrations/cache_inspector.d.ts.map +1 -1
- package/dist/src/dashboard/integrations/config_inspector.d.ts +1 -1
- package/dist/src/dashboard/integrations/config_inspector.d.ts.map +1 -1
- package/dist/src/dashboard/integrations/config_inspector.js +3 -2
- package/dist/src/dashboard/integrations/queue_inspector.d.ts +55 -10
- package/dist/src/dashboard/integrations/queue_inspector.d.ts.map +1 -1
- package/dist/src/dashboard/integrations/queue_inspector.js +70 -24
- package/dist/src/dashboard/migrator.d.ts +5 -0
- package/dist/src/dashboard/migrator.d.ts.map +1 -1
- package/dist/src/dashboard/migrator.js +44 -9
- package/dist/src/dashboard/models/stats_event.d.ts +1 -1
- package/dist/src/dashboard/models/stats_event.d.ts.map +1 -1
- package/dist/src/dashboard/models/stats_log.d.ts +1 -1
- package/dist/src/dashboard/models/stats_log.d.ts.map +1 -1
- package/dist/src/dashboard/models/stats_query.d.ts +1 -1
- package/dist/src/dashboard/models/stats_query.d.ts.map +1 -1
- package/dist/src/dashboard/models/stats_saved_filter.d.ts +1 -1
- package/dist/src/dashboard/models/stats_saved_filter.d.ts.map +1 -1
- package/dist/src/dashboard/models/stats_trace.d.ts +2 -1
- package/dist/src/dashboard/models/stats_trace.d.ts.map +1 -1
- package/dist/src/data/data_access.d.ts +105 -0
- package/dist/src/data/data_access.d.ts.map +1 -0
- package/dist/src/data/data_access.js +310 -0
- package/dist/src/data/index.d.ts +3 -0
- package/dist/src/data/index.d.ts.map +1 -0
- package/dist/src/data/index.js +1 -0
- package/dist/src/debug/debug_store.d.ts +20 -1
- package/dist/src/debug/debug_store.d.ts.map +1 -1
- package/dist/src/debug/debug_store.js +43 -15
- package/dist/src/debug/email_collector.d.ts +6 -2
- package/dist/src/debug/email_collector.d.ts.map +1 -1
- package/dist/src/debug/email_collector.js +3 -0
- package/dist/src/debug/event_collector.d.ts +6 -2
- package/dist/src/debug/event_collector.d.ts.map +1 -1
- package/dist/src/debug/event_collector.js +12 -8
- package/dist/src/debug/query_collector.d.ts +6 -2
- package/dist/src/debug/query_collector.d.ts.map +1 -1
- package/dist/src/debug/query_collector.js +3 -0
- package/dist/src/debug/ring_buffer.d.ts +1 -0
- package/dist/src/debug/ring_buffer.d.ts.map +1 -1
- package/dist/src/debug/ring_buffer.js +5 -2
- package/dist/src/debug/route_inspector.d.ts +2 -2
- package/dist/src/debug/route_inspector.d.ts.map +1 -1
- package/dist/src/debug/route_inspector.js +4 -3
- package/dist/src/debug/trace_collector.d.ts +7 -3
- package/dist/src/debug/trace_collector.d.ts.map +1 -1
- package/dist/src/debug/trace_collector.js +7 -5
- package/dist/src/debug/types.d.ts +107 -2
- package/dist/src/debug/types.d.ts.map +1 -1
- package/dist/src/debug/types.js +1 -1
- package/dist/src/define_config.d.ts +49 -5
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +361 -4
- package/dist/src/edge/bootstrap.d.ts +17 -0
- package/dist/src/edge/bootstrap.d.ts.map +1 -0
- package/dist/src/edge/bootstrap.js +29 -0
- package/dist/src/edge/client/dashboard.js +2 -3619
- package/dist/src/edge/client/debug-panel-deferred.js +1 -0
- package/dist/src/edge/client/debug-panel.js +1 -2140
- package/dist/src/edge/client/stats-bar.js +1 -801
- package/dist/src/edge/client-vue/dashboard.js +5 -0
- package/dist/src/edge/client-vue/debug-panel-deferred.js +4 -0
- package/dist/src/edge/client-vue/debug-panel.js +4 -0
- package/dist/src/edge/client-vue/stats-bar.js +4 -0
- package/dist/src/edge/plugin.d.ts +35 -2
- package/dist/src/edge/plugin.d.ts.map +1 -1
- package/dist/src/edge/plugin.js +30 -66
- package/dist/src/edge/types.d.ts +46 -0
- package/dist/src/edge/types.d.ts.map +1 -0
- package/dist/src/edge/types.js +4 -0
- package/dist/src/edge/views/dashboard.edge +1 -358
- package/dist/src/edge/views/debug-panel.edge +2 -154
- package/dist/src/edge/views/stats-bar.edge +15 -48
- package/dist/src/engine/stats_engine.d.ts +18 -0
- package/dist/src/engine/stats_engine.d.ts.map +1 -1
- package/dist/src/engine/stats_engine.js +45 -2
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/log_stream/log_stream_provider.d.ts.map +1 -1
- package/dist/src/log_stream/log_stream_provider.js +21 -4
- package/dist/src/log_stream/log_stream_service.d.ts +8 -1
- package/dist/src/log_stream/log_stream_service.d.ts.map +1 -1
- package/dist/src/log_stream/log_stream_service.js +27 -3
- package/dist/src/middleware/request_tracking_middleware.d.ts +1 -1
- package/dist/src/middleware/request_tracking_middleware.d.ts.map +1 -1
- package/dist/src/middleware/request_tracking_middleware.js +21 -6
- package/dist/src/prometheus/prometheus_collector.d.ts +2 -1
- package/dist/src/prometheus/prometheus_collector.d.ts.map +1 -1
- package/dist/src/provider/server_stats_provider.d.ts +100 -0
- package/dist/src/provider/server_stats_provider.d.ts.map +1 -1
- package/dist/src/provider/server_stats_provider.js +460 -104
- package/dist/src/routes/access_middleware.d.ts +2 -1
- package/dist/src/routes/access_middleware.d.ts.map +1 -1
- package/dist/src/routes/access_middleware.js +7 -1
- package/dist/src/routes/index.d.ts +4 -0
- package/dist/src/routes/index.d.ts.map +1 -0
- package/dist/src/routes/index.js +1 -0
- package/dist/src/routes/register_routes.d.ts +103 -0
- package/dist/src/routes/register_routes.d.ts.map +1 -0
- package/dist/src/routes/register_routes.js +356 -0
- package/dist/src/routes/router_types.d.ts +29 -0
- package/dist/src/routes/router_types.d.ts.map +1 -0
- package/dist/src/routes/router_types.js +1 -0
- package/dist/src/stubs/config.stub +12 -32
- package/dist/src/styles/components.css +1048 -0
- package/dist/src/{edge/client → styles}/dashboard.css +299 -736
- package/dist/src/{edge/client → styles}/debug-panel.css +117 -633
- package/dist/src/{edge/client → styles}/stats-bar.css +28 -10
- package/dist/src/styles/tokens.css +153 -0
- package/dist/src/styles/utilities.css +75 -0
- package/dist/src/types.d.ts +119 -16
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/app_import.d.ts +23 -0
- package/dist/src/utils/app_import.d.ts.map +1 -0
- package/dist/src/utils/app_import.js +44 -0
- package/dist/src/utils/json_helpers.d.ts +2 -2
- package/dist/src/utils/json_helpers.d.ts.map +1 -1
- package/dist/src/utils/logger.d.ts +17 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +27 -0
- package/dist/src/utils/mail_helpers.d.ts +1 -1
- package/dist/src/utils/mail_helpers.d.ts.map +1 -1
- package/dist/src/utils/mail_helpers.js +1 -1
- package/dist/vue/CacheSection-C788Yfai.js +149 -0
- package/dist/vue/CacheTab-BPisYYiQ.js +104 -0
- package/dist/vue/ConfigSection-CRzYxqW2.js +576 -0
- package/dist/vue/ConfigTab-C8cafGUj.js +361 -0
- package/dist/vue/CustomPaneTab-BJxT5Dp7.js +172 -0
- package/dist/vue/EmailsSection-C8JFMtW7.js +206 -0
- package/dist/vue/EmailsTab-DhFhoNmU.js +157 -0
- package/dist/vue/EventsSection-C4wXUgxG.js +107 -0
- package/dist/vue/EventsTab-DQ4Nd6AK.js +97 -0
- package/dist/vue/FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js +62 -0
- package/dist/vue/InternalsSection-BJUXE-5F.js +468 -0
- package/dist/vue/InternalsTab-DEMjqtlw.js +471 -0
- package/dist/vue/JobsSection-CsKWTjgN.js +187 -0
- package/dist/vue/JobsTab-BCvhOARO.js +117 -0
- package/dist/vue/JsonViewer.vue_vue_type_script_setup_true_lang-Vsqar1zx.js +67 -0
- package/dist/vue/LogsSection-BFVjSZ24.js +227 -0
- package/dist/vue/LogsTab-DpEQ7euu.js +122 -0
- package/dist/vue/OverviewSection-CbMdAido.js +849 -0
- package/dist/vue/PaginationControls.vue_vue_type_script_setup_true_lang-CuN7g_8Z.js +50 -0
- package/dist/vue/QueriesSection-BPiv7u3r.js +429 -0
- package/dist/vue/QueriesTab-C8_7oprC.js +107 -0
- package/dist/vue/RequestsSection-LtImH4rD.js +243 -0
- package/dist/vue/RoutesSection-CrxOxmzx.js +106 -0
- package/dist/vue/RoutesTab-Dz0MkZuF.js +80 -0
- package/dist/vue/TimelineSection-DLxMW2J_.js +186 -0
- package/dist/vue/TimelineTab-Db6lKKsD.js +250 -0
- package/dist/vue/WaterfallChart.vue_vue_type_script_setup_true_lang-tZ13cNj1.js +118 -0
- package/dist/vue/components/Dashboard/DashboardPage.vue.d.ts +18 -0
- package/dist/vue/components/Dashboard/DashboardPage.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/CacheSection.vue.d.ts +5 -0
- package/dist/vue/components/Dashboard/sections/CacheSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/ConfigSection.vue.d.ts +3 -0
- package/dist/vue/components/Dashboard/sections/ConfigSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/EmailsSection.vue.d.ts +5 -0
- package/dist/vue/components/Dashboard/sections/EmailsSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/EventsSection.vue.d.ts +5 -0
- package/dist/vue/components/Dashboard/sections/EventsSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/InternalsSection.vue.d.ts +3 -0
- package/dist/vue/components/Dashboard/sections/InternalsSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/JobsSection.vue.d.ts +5 -0
- package/dist/vue/components/Dashboard/sections/JobsSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/LogsSection.vue.d.ts +3 -0
- package/dist/vue/components/Dashboard/sections/LogsSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/OverviewSection.vue.d.ts +5 -0
- package/dist/vue/components/Dashboard/sections/OverviewSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/QueriesSection.vue.d.ts +45 -0
- package/dist/vue/components/Dashboard/sections/QueriesSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/RequestsSection.vue.d.ts +5 -0
- package/dist/vue/components/Dashboard/sections/RequestsSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/RoutesSection.vue.d.ts +5 -0
- package/dist/vue/components/Dashboard/sections/RoutesSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/sections/TimelineSection.vue.d.ts +11 -0
- package/dist/vue/components/Dashboard/sections/TimelineSection.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/shared/FilterBar.vue.d.ts +29 -0
- package/dist/vue/components/Dashboard/shared/FilterBar.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/shared/PaginationControls.vue.d.ts +12 -0
- package/dist/vue/components/Dashboard/shared/PaginationControls.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/shared/TimeRangeSelector.vue.d.ts +11 -0
- package/dist/vue/components/Dashboard/shared/TimeRangeSelector.vue.d.ts.map +1 -0
- package/dist/vue/components/Dashboard/shared/WaterfallChart.vue.d.ts +10 -0
- package/dist/vue/components/Dashboard/shared/WaterfallChart.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/DebugPanel.vue.d.ts +21 -0
- package/dist/vue/components/DebugPanel/DebugPanel.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/CacheTab.vue.d.ts +12 -0
- package/dist/vue/components/DebugPanel/tabs/CacheTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/ConfigTab.vue.d.ts +11 -0
- package/dist/vue/components/DebugPanel/tabs/ConfigTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/CustomPaneTab.vue.d.ts +11 -0
- package/dist/vue/components/DebugPanel/tabs/CustomPaneTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/EmailsTab.vue.d.ts +12 -0
- package/dist/vue/components/DebugPanel/tabs/EmailsTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/EventsTab.vue.d.ts +12 -0
- package/dist/vue/components/DebugPanel/tabs/EventsTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/InternalsTab.vue.d.ts +11 -0
- package/dist/vue/components/DebugPanel/tabs/InternalsTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/JobsTab.vue.d.ts +13 -0
- package/dist/vue/components/DebugPanel/tabs/JobsTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/LogsTab.vue.d.ts +15 -0
- package/dist/vue/components/DebugPanel/tabs/LogsTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/QueriesTab.vue.d.ts +12 -0
- package/dist/vue/components/DebugPanel/tabs/QueriesTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/RoutesTab.vue.d.ts +12 -0
- package/dist/vue/components/DebugPanel/tabs/RoutesTab.vue.d.ts.map +1 -0
- package/dist/vue/components/DebugPanel/tabs/TimelineTab.vue.d.ts +15 -0
- package/dist/vue/components/DebugPanel/tabs/TimelineTab.vue.d.ts.map +1 -0
- package/dist/vue/components/StatsBar/MetricCard.vue.d.ts +19 -0
- package/dist/vue/components/StatsBar/MetricCard.vue.d.ts.map +1 -0
- package/dist/vue/components/StatsBar/Sparkline.vue.d.ts +17 -0
- package/dist/vue/components/StatsBar/Sparkline.vue.d.ts.map +1 -0
- package/dist/vue/components/StatsBar/StatsBar.vue.d.ts +22 -0
- package/dist/vue/components/StatsBar/StatsBar.vue.d.ts.map +1 -0
- package/dist/vue/components/shared/JsonViewer.vue.d.ts +13 -0
- package/dist/vue/components/shared/JsonViewer.vue.d.ts.map +1 -0
- package/dist/vue/components/shared/ThemeToggle.vue.d.ts +8 -0
- package/dist/vue/components/shared/ThemeToggle.vue.d.ts.map +1 -0
- package/dist/vue/composables/useApiClient.d.ts +9 -0
- package/dist/vue/composables/useApiClient.d.ts.map +1 -0
- package/dist/vue/composables/useDashboardData.d.ts +53 -0
- package/dist/vue/composables/useDashboardData.d.ts.map +1 -0
- package/dist/vue/composables/useDebugData.d.ts +25 -0
- package/dist/vue/composables/useDebugData.d.ts.map +1 -0
- package/dist/vue/composables/useFeatures.d.ts +80 -0
- package/dist/vue/composables/useFeatures.d.ts.map +1 -0
- package/dist/vue/composables/useResizableTable.d.ts +16 -0
- package/dist/vue/composables/useResizableTable.d.ts.map +1 -0
- package/dist/vue/composables/useServerStats.d.ts +104 -0
- package/dist/vue/composables/useServerStats.d.ts.map +1 -0
- package/dist/vue/composables/useTheme.d.ts +6 -0
- package/dist/vue/composables/useTheme.d.ts.map +1 -0
- package/dist/vue/index-qCQpBftQ.js +1233 -0
- package/dist/vue/index.d.ts +10 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +11 -0
- package/dist/vue/style.css +1 -0
- package/dist/vue/useApiClient-BQQ9CF-q.js +10 -0
- package/dist/vue/useResizableTable-BoivAevK.js +17 -0
- package/package.json +72 -10
- package/dist/src/dashboard/dashboard_routes.d.ts +0 -16
- package/dist/src/dashboard/dashboard_routes.d.ts.map +0 -1
- package/dist/src/dashboard/dashboard_routes.js +0 -77
- package/dist/src/routes/debug_routes.d.ts +0 -14
- package/dist/src/routes/debug_routes.d.ts.map +0 -1
- package/dist/src/routes/debug_routes.js +0 -42
- package/dist/src/routes/stats_routes.d.ts +0 -14
- package/dist/src/routes/stats_routes.d.ts.map +0 -1
- package/dist/src/routes/stats_routes.js +0 -27
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(function(){"use strict";function Ps(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const z={},gt=[],Ie=()=>{},Sn=()=>!1,Jt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Rs=e=>e.startsWith("onUpdate:"),oe=Object.assign,Os=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Ai=Object.prototype.hasOwnProperty,N=(e,t)=>Ai.call(e,t),$=Array.isArray,mt=e=>Et(e)==="[object Map]",En=e=>Et(e)==="[object Set]",Cn=e=>Et(e)==="[object Date]",F=e=>typeof e=="function",Z=e=>typeof e=="string",Fe=e=>typeof e=="symbol",j=e=>e!==null&&typeof e=="object",Mn=e=>(j(e)||F(e))&&F(e.then)&&F(e.catch),An=Object.prototype.toString,Et=e=>An.call(e),Pi=e=>Et(e).slice(8,-1),Pn=e=>Et(e)==="[object Object]",$s=e=>Z(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ct=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Xt=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},Ri=/-\w/g,Qe=Xt(e=>e.replace(Ri,t=>t.slice(1).toUpperCase())),Oi=/\B([A-Z])/g,it=Xt(e=>e.replace(Oi,"-$1").toLowerCase()),Rn=Xt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Is=Xt(e=>e?`on${Rn(e)}`:""),Ze=(e,t)=>!Object.is(e,t),Fs=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},On=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},$i=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let $n;const Qt=()=>$n||($n=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Mt(e){if($(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],r=Z(n)?Hi(n):Mt(n);if(r)for(const i in r)t[i]=r[i]}return t}else if(Z(e)||j(e))return e}const Ii=/;(?![^(]*\))/g,Fi=/:([^]+)/,Di=/\/\*[^]*?\*\//g;function Hi(e){const t={};return e.replace(Di,"").split(Ii).forEach(s=>{if(s){const n=s.split(Fi);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ce(e){let t="";if(Z(e))t=e;else if($(e))for(let s=0;s<e.length;s++){const n=Ce(e[s]);n&&(t+=n+" ")}else if(j(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const Li=Ps("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function In(e){return!!e||e===""}function Ui(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=Ds(e[n],t[n]);return s}function Ds(e,t){if(e===t)return!0;let s=Cn(e),n=Cn(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=Fe(e),n=Fe(t),s||n)return e===t;if(s=$(e),n=$(t),s||n)return s&&n?Ui(e,t):!1;if(s=j(e),n=j(t),s||n){if(!s||!n)return!1;const r=Object.keys(e).length,i=Object.keys(t).length;if(r!==i)return!1;for(const o in e){const l=e.hasOwnProperty(o),a=t.hasOwnProperty(o);if(l&&!a||!l&&a||!Ds(e[o],t[o]))return!1}}return String(e)===String(t)}const Fn=e=>!!(e&&e.__v_isRef===!0),fe=e=>Z(e)?e:e==null?"":$(e)||j(e)&&(e.toString===An||!F(e.toString))?Fn(e)?fe(e.value):JSON.stringify(e,Dn,2):String(e),Dn=(e,t)=>Fn(t)?Dn(e,t.value):mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,r],i)=>(s[Hs(n,i)+" =>"]=r,s),{})}:En(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Hs(s))}:Fe(t)?Hs(t):j(t)&&!$(t)&&!Pn(t)?String(t):t,Hs=(e,t="")=>{var s;return Fe(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};let ve;class ki{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=ve,!t&&ve&&(this.index=(ve.scopes||(ve.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=ve;try{return ve=this,t()}finally{ve=s}}}on(){++this._on===1&&(this.prevScope=ve,ve=this)}off(){this._on>0&&--this._on===0&&(ve=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function Bi(){return ve}let G;const Ls=new WeakSet;class Hn{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ve&&ve.active&&ve.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ls.has(this)&&(Ls.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Un(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,jn(this),kn(this);const t=G,s=Re;G=this,Re=!0;try{return this.fn()}finally{Bn(this),G=t,Re=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ns(t);this.deps=this.depsTail=void 0,jn(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ls.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Bs(this)&&this.run()}get dirty(){return Bs(this)}}let Ln=0,At,Pt;function Un(e,t=!1){if(e.flags|=8,t){e.next=Pt,Pt=e;return}e.next=At,At=e}function Us(){Ln++}function ks(){if(--Ln>0)return;if(Pt){let t=Pt;for(Pt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;At;){let t=At;for(At=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function kn(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Bn(e){let t,s=e.depsTail,n=s;for(;n;){const r=n.prevDep;n.version===-1?(n===s&&(s=r),Ns(n),Ni(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=r}e.deps=t,e.depsTail=s}function Bs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Nn(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Nn(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Rt)||(e.globalVersion=Rt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Bs(e))))return;e.flags|=2;const t=e.dep,s=G,n=Re;G=e,Re=!0;try{kn(e);const r=e.fn(e._value);(t.version===0||Ze(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{G=s,Re=n,Bn(e),e.flags&=-3}}function Ns(e,t=!1){const{dep:s,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)Ns(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Ni(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Re=!0;const Kn=[];function De(){Kn.push(Re),Re=!1}function He(){const e=Kn.pop();Re=e===void 0?!0:e}function jn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=G;G=void 0;try{t()}finally{G=s}}}let Rt=0;class Ki{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ks{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!G||!Re||G===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==G)s=this.activeLink=new Ki(G,this),G.deps?(s.prevDep=G.depsTail,G.depsTail.nextDep=s,G.depsTail=s):G.deps=G.depsTail=s,Vn(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=G.depsTail,s.nextDep=void 0,G.depsTail.nextDep=s,G.depsTail=s,G.deps===s&&(G.deps=n)}return s}trigger(t){this.version++,Rt++,this.notify(t)}notify(t){Us();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{ks()}}}function Vn(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Vn(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const js=new WeakMap,ot=Symbol(""),Vs=Symbol(""),Ot=Symbol("");function de(e,t,s){if(Re&&G){let n=js.get(e);n||js.set(e,n=new Map);let r=n.get(s);r||(n.set(s,r=new Ks),r.map=n,r.key=s),r.track()}}function qe(e,t,s,n,r,i){const o=js.get(e);if(!o){Rt++;return}const l=a=>{a&&a.trigger()};if(Us(),t==="clear")o.forEach(l);else{const a=$(e),d=a&&$s(s);if(a&&s==="length"){const f=Number(n);o.forEach((h,v)=>{(v==="length"||v===Ot||!Fe(v)&&v>=f)&&l(h)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),d&&l(o.get(Ot)),t){case"add":a?d&&l(o.get("length")):(l(o.get(ot)),mt(e)&&l(o.get(Vs)));break;case"delete":a||(l(o.get(ot)),mt(e)&&l(o.get(Vs)));break;case"set":mt(e)&&l(o.get(ot));break}}ks()}function yt(e){const t=U(e);return t===e?t:(de(t,"iterate",Ot),Me(e)?t:t.map(Oe))}function Zt(e){return de(e=U(e),"iterate",Ot),e}function et(e,t){return Ge(e)?bt(lt(e)?Oe(t):t):Oe(t)}const ji={__proto__:null,[Symbol.iterator](){return Ws(this,Symbol.iterator,e=>et(this,e))},concat(...e){return yt(this).concat(...e.map(t=>$(t)?yt(t):t))},entries(){return Ws(this,"entries",e=>(e[1]=et(this,e[1]),e))},every(e,t){return ze(this,"every",e,t,void 0,arguments)},filter(e,t){return ze(this,"filter",e,t,s=>s.map(n=>et(this,n)),arguments)},find(e,t){return ze(this,"find",e,t,s=>et(this,s),arguments)},findIndex(e,t){return ze(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ze(this,"findLast",e,t,s=>et(this,s),arguments)},findLastIndex(e,t){return ze(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ze(this,"forEach",e,t,void 0,arguments)},includes(...e){return qs(this,"includes",e)},indexOf(...e){return qs(this,"indexOf",e)},join(e){return yt(this).join(e)},lastIndexOf(...e){return qs(this,"lastIndexOf",e)},map(e,t){return ze(this,"map",e,t,void 0,arguments)},pop(){return $t(this,"pop")},push(...e){return $t(this,"push",e)},reduce(e,...t){return Wn(this,"reduce",e,t)},reduceRight(e,...t){return Wn(this,"reduceRight",e,t)},shift(){return $t(this,"shift")},some(e,t){return ze(this,"some",e,t,void 0,arguments)},splice(...e){return $t(this,"splice",e)},toReversed(){return yt(this).toReversed()},toSorted(e){return yt(this).toSorted(e)},toSpliced(...e){return yt(this).toSpliced(...e)},unshift(...e){return $t(this,"unshift",e)},values(){return Ws(this,"values",e=>et(this,e))}};function Ws(e,t,s){const n=Zt(e),r=n[t]();return n!==e&&!Me(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=s(i.value)),i}),r}const Vi=Array.prototype;function ze(e,t,s,n,r,i){const o=Zt(e),l=o!==e&&!Me(e),a=o[t];if(a!==Vi[t]){const h=a.apply(e,i);return l?Oe(h):h}let d=s;o!==e&&(l?d=function(h,v){return s.call(this,et(e,h),v,e)}:s.length>2&&(d=function(h,v){return s.call(this,h,v,e)}));const f=a.call(o,d,n);return l&&r?r(f):f}function Wn(e,t,s,n){const r=Zt(e);let i=s;return r!==e&&(Me(e)?s.length>3&&(i=function(o,l,a){return s.call(this,o,l,a,e)}):i=function(o,l,a){return s.call(this,o,et(e,l),a,e)}),r[t](i,...n)}function qs(e,t,s){const n=U(e);de(n,"iterate",Ot);const r=n[t](...s);return(r===-1||r===!1)&&Ys(s[0])?(s[0]=U(s[0]),n[t](...s)):r}function $t(e,t,s=[]){De(),Us();const n=U(e)[t].apply(e,s);return ks(),He(),n}const Wi=Ps("__proto__,__v_isRef,__isVue"),qn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Fe));function qi(e){Fe(e)||(e=String(e));const t=U(this);return de(t,"has",e),t.hasOwnProperty(e)}class zn{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return i;if(s==="__v_raw")return n===(r?i?Zn:Qn:i?Xn:Jn).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const o=$(t);if(!r){let a;if(o&&(a=ji[s]))return a;if(s==="hasOwnProperty")return qi}const l=Reflect.get(t,s,le(t)?t:n);if((Fe(s)?qn.has(s):Wi(s))||(r||de(t,"get",s),i))return l;if(le(l)){const a=o&&$s(s)?l:l.value;return r&&j(a)?Gs(a):a}return j(l)?r?Gs(l):ns(l):l}}class Gn extends zn{constructor(t=!1){super(!1,t)}set(t,s,n,r){let i=t[s];const o=$(t)&&$s(s);if(!this._isShallow){const d=Ge(i);if(!Me(n)&&!Ge(n)&&(i=U(i),n=U(n)),!o&&le(i)&&!le(n))return d||(i.value=n),!0}const l=o?Number(s)<t.length:N(t,s),a=Reflect.set(t,s,n,le(t)?t:r);return t===U(r)&&(l?Ze(n,i)&&qe(t,"set",s,n):qe(t,"add",s,n)),a}deleteProperty(t,s){const n=N(t,s);t[s];const r=Reflect.deleteProperty(t,s);return r&&n&&qe(t,"delete",s,void 0),r}has(t,s){const n=Reflect.has(t,s);return(!Fe(s)||!qn.has(s))&&de(t,"has",s),n}ownKeys(t){return de(t,"iterate",$(t)?"length":ot),Reflect.ownKeys(t)}}class Yn extends zn{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const zi=new Gn,Gi=new Yn,Yi=new Gn(!0),Ji=new Yn(!0),zs=e=>e,es=e=>Reflect.getPrototypeOf(e);function Xi(e,t,s){return function(...n){const r=this.__v_raw,i=U(r),o=mt(i),l=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,d=r[e](...n),f=s?zs:t?bt:Oe;return!t&&de(i,"iterate",a?Vs:ot),oe(Object.create(d),{next(){const{value:h,done:v}=d.next();return v?{value:h,done:v}:{value:l?[f(h[0]),f(h[1])]:f(h),done:v}}})}}function ts(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Qi(e,t){const s={get(r){const i=this.__v_raw,o=U(i),l=U(r);e||(Ze(r,l)&&de(o,"get",r),de(o,"get",l));const{has:a}=es(o),d=t?zs:e?bt:Oe;if(a.call(o,r))return d(i.get(r));if(a.call(o,l))return d(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&de(U(r),"iterate",ot),r.size},has(r){const i=this.__v_raw,o=U(i),l=U(r);return e||(Ze(r,l)&&de(o,"has",r),de(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,a=U(l),d=t?zs:e?bt:Oe;return!e&&de(a,"iterate",ot),l.forEach((f,h)=>r.call(i,d(f),d(h),o))}};return oe(s,e?{add:ts("add"),set:ts("set"),delete:ts("delete"),clear:ts("clear")}:{add(r){!t&&!Me(r)&&!Ge(r)&&(r=U(r));const i=U(this);return es(i).has.call(i,r)||(i.add(r),qe(i,"add",r,r)),this},set(r,i){!t&&!Me(i)&&!Ge(i)&&(i=U(i));const o=U(this),{has:l,get:a}=es(o);let d=l.call(o,r);d||(r=U(r),d=l.call(o,r));const f=a.call(o,r);return o.set(r,i),d?Ze(i,f)&&qe(o,"set",r,i):qe(o,"add",r,i),this},delete(r){const i=U(this),{has:o,get:l}=es(i);let a=o.call(i,r);a||(r=U(r),a=o.call(i,r)),l&&l.call(i,r);const d=i.delete(r);return a&&qe(i,"delete",r,void 0),d},clear(){const r=U(this),i=r.size!==0,o=r.clear();return i&&qe(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Xi(r,e,t)}),s}function ss(e,t){const s=Qi(e,t);return(n,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?n:Reflect.get(N(s,r)&&r in n?s:n,r,i)}const Zi={get:ss(!1,!1)},eo={get:ss(!1,!0)},to={get:ss(!0,!1)},so={get:ss(!0,!0)},Jn=new WeakMap,Xn=new WeakMap,Qn=new WeakMap,Zn=new WeakMap;function no(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ro(e){return e.__v_skip||!Object.isExtensible(e)?0:no(Pi(e))}function ns(e){return Ge(e)?e:rs(e,!1,zi,Zi,Jn)}function io(e){return rs(e,!1,Yi,eo,Xn)}function Gs(e){return rs(e,!0,Gi,to,Qn)}function Ta(e){return rs(e,!0,Ji,so,Zn)}function rs(e,t,s,n,r){if(!j(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=ro(e);if(i===0)return e;const o=r.get(e);if(o)return o;const l=new Proxy(e,i===2?n:s);return r.set(e,l),l}function lt(e){return Ge(e)?lt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ge(e){return!!(e&&e.__v_isReadonly)}function Me(e){return!!(e&&e.__v_isShallow)}function Ys(e){return e?!!e.__v_raw:!1}function U(e){const t=e&&e.__v_raw;return t?U(t):e}function oo(e){return!N(e,"__v_skip")&&Object.isExtensible(e)&&On(e,"__v_skip",!0),e}const Oe=e=>j(e)?ns(e):e,bt=e=>j(e)?Gs(e):e;function le(e){return e?e.__v_isRef===!0:!1}function se(e){return lo(e,!1)}function lo(e,t){return le(e)?e:new co(e,t)}class co{constructor(t,s){this.dep=new Ks,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:U(t),this._value=s?t:Oe(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||Me(t)||Ge(t);t=n?t:U(t),Ze(t,s)&&(this._rawValue=t,this._value=n?t:Oe(t),this.dep.trigger())}}function he(e){return le(e)?e.value:e}const ao={get:(e,t,s)=>t==="__v_raw"?e:he(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const r=e[t];return le(r)&&!le(s)?(r.value=s,!0):Reflect.set(e,t,s,n)}};function er(e){return lt(e)?e:new Proxy(e,ao)}class uo{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Ks(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Rt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&G!==this)return Un(this,!0),!0}get value(){const t=this.dep.track();return Nn(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function fo(e,t,s=!1){let n,r;return F(e)?n=e:(n=e.get,r=e.set),new uo(n,r,s)}const is={},os=new WeakMap;let ct;function ho(e,t=!1,s=ct){if(s){let n=os.get(s);n||os.set(s,n=[]),n.push(e)}}function po(e,t,s=z){const{immediate:n,deep:r,once:i,scheduler:o,augmentJob:l,call:a}=s,d=M=>r?M:Me(M)||r===!1||r===0?tt(M,1):tt(M);let f,h,v,_,C=!1,E=!1;if(le(e)?(h=()=>e.value,C=Me(e)):lt(e)?(h=()=>d(e),C=!0):$(e)?(E=!0,C=e.some(M=>lt(M)||Me(M)),h=()=>e.map(M=>{if(le(M))return M.value;if(lt(M))return d(M);if(F(M))return a?a(M,2):M()})):F(e)?t?h=a?()=>a(e,2):e:h=()=>{if(v){De();try{v()}finally{He()}}const M=ct;ct=f;try{return a?a(e,3,[_]):e(_)}finally{ct=M}}:h=Ie,t&&r){const M=h,H=r===!0?1/0:r;h=()=>tt(M(),H)}const A=Bi(),D=()=>{f.stop(),A&&A.active&&Os(A.effects,f)};if(i&&t){const M=t;t=(...H)=>{M(...H),D()}}let O=E?new Array(e.length).fill(is):is;const k=M=>{if(!(!(f.flags&1)||!f.dirty&&!M))if(t){const H=f.run();if(r||C||(E?H.some((q,K)=>Ze(q,O[K])):Ze(H,O))){v&&v();const q=ct;ct=f;try{const K=[H,O===is?void 0:E&&O[0]===is?[]:O,_];O=H,a?a(t,3,K):t(...K)}finally{ct=q}}}else f.run()};return l&&l(k),f=new Hn(h),f.scheduler=o?()=>o(k,!1):k,_=M=>ho(M,!1,f),v=f.onStop=()=>{const M=os.get(f);if(M){if(a)a(M,4);else for(const H of M)H();os.delete(f)}},t?n?k(!0):O=f.run():o?o(k.bind(null,!0),!0):f.run(),D.pause=f.pause.bind(f),D.resume=f.resume.bind(f),D.stop=D,D}function tt(e,t=1/0,s){if(t<=0||!j(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,le(e))tt(e.value,t,s);else if($(e))for(let n=0;n<e.length;n++)tt(e[n],t,s);else if(En(e)||mt(e))e.forEach(n=>{tt(n,t,s)});else if(Pn(e)){for(const n in e)tt(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&tt(e[n],t,s)}return e}const It=[];let Js=!1;function Sa(e,...t){if(Js)return;Js=!0,De();const s=It.length?It[It.length-1].component:null,n=s&&s.appContext.config.warnHandler,r=go();if(n)vt(n,s,11,[e+t.map(i=>{var o,l;return(l=(o=i.toString)==null?void 0:o.call(i))!=null?l:JSON.stringify(i)}).join(""),s&&s.proxy,r.map(({vnode:i})=>`at <${Qr(s,i.type)}>`).join(`
|
|
2
|
+
`),r]);else{const i=[`[Vue warn]: ${e}`,...t];r.length&&i.push(`
|
|
3
|
+
`,...mo(r)),console.warn(...i)}He(),Js=!1}function go(){let e=It[It.length-1];if(!e)return[];const t=[];for(;e;){const s=t[0];s&&s.vnode===e?s.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function mo(e){const t=[];return e.forEach((s,n)=>{t.push(...n===0?[]:[`
|
|
4
|
+
`],...yo(s))}),t}function yo({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,r=` at <${Qr(e.component,e.type,n)}`,i=">"+s;return e.props?[r,...bo(e.props),i]:[r+i]}function bo(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(n=>{t.push(...tr(n,e[n]))}),s.length>3&&t.push(" ..."),t}function tr(e,t,s){return Z(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:le(t)?(t=tr(e,U(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):F(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=U(t),s?t:[`${e}=`,t])}function vt(e,t,s,n){try{return n?e(...n):e()}catch(r){ls(r,t,s)}}function Le(e,t,s,n){if(F(e)){const r=vt(e,t,s,n);return r&&Mn(r)&&r.catch(i=>{ls(i,t,s)}),r}if($(e)){const r=[];for(let i=0;i<e.length;i++)r.push(Le(e[i],t,s,n));return r}}function ls(e,t,s,n=!0){const r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||z;if(t){let l=t.parent;const a=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${s}`;for(;l;){const f=l.ec;if(f){for(let h=0;h<f.length;h++)if(f[h](e,a,d)===!1)return}l=l.parent}if(i){De(),vt(i,null,10,[e,a,d]),He();return}}vo(e,s,r,n,o)}function vo(e,t,s,n=!0,r=!1){if(r)throw e;console.error(e)}const ge=[];let Ue=-1;const xt=[];let st=null,_t=0;const sr=Promise.resolve();let cs=null;function nr(e){const t=cs||sr;return e?t.then(this?e.bind(this):e):t}function xo(e){let t=Ue+1,s=ge.length;for(;t<s;){const n=t+s>>>1,r=ge[n],i=Ft(r);i<e||i===e&&r.flags&2?t=n+1:s=n}return t}function Xs(e){if(!(e.flags&1)){const t=Ft(e),s=ge[ge.length-1];!s||!(e.flags&2)&&t>=Ft(s)?ge.push(e):ge.splice(xo(t),0,e),e.flags|=1,rr()}}function rr(){cs||(cs=sr.then(lr))}function _o(e){$(e)?xt.push(...e):st&&e.id===-1?st.splice(_t+1,0,e):e.flags&1||(xt.push(e),e.flags|=1),rr()}function ir(e,t,s=Ue+1){for(;s<ge.length;s++){const n=ge[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;ge.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function or(e){if(xt.length){const t=[...new Set(xt)].sort((s,n)=>Ft(s)-Ft(n));if(xt.length=0,st){st.push(...t);return}for(st=t,_t=0;_t<st.length;_t++){const s=st[_t];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}st=null,_t=0}}const Ft=e=>e.id==null?e.flags&2?-1:1/0:e.id;function lr(e){try{for(Ue=0;Ue<ge.length;Ue++){const t=ge[Ue];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),vt(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Ue<ge.length;Ue++){const t=ge[Ue];t&&(t.flags&=-2)}Ue=-1,ge.length=0,or(),cs=null,(ge.length||xt.length)&&lr()}}let ke=null,cr=null;function as(e){const t=ke;return ke=e,cr=e&&e.type.__scopeId||null,t}function wo(e,t=ke,s){if(!t||e._n)return e;const n=(...r)=>{n._d&&vs(-1);const i=as(t);let o;try{o=e(...r)}finally{as(i),n._d&&vs(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function at(e,t,s,n){const r=e.dirs,i=t&&t.dirs;for(let o=0;o<r.length;o++){const l=r[o];i&&(l.oldValue=i[o].value);let a=l.dir[n];a&&(De(),Le(a,s,8,[e.el,l,e,t]),He())}}function To(e,t){if(be){let s=be.provides;const n=be.parent&&be.parent.provides;n===s&&(s=be.provides=Object.create(n)),s[e]=t}}function us(e,t,s=!1){const n=wl();if(n||wt){let r=wt?wt._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return s&&F(t)?t.call(n&&n.proxy):t}}const So=Symbol.for("v-scx"),Eo=()=>us(So);function nt(e,t,s){return ar(e,t,s)}function ar(e,t,s=z){const{immediate:n,deep:r,flush:i,once:o}=s,l=oe({},s),a=t&&n||!t&&i!=="post";let d;if(Wt){if(i==="sync"){const _=Eo();d=_.__watcherHandles||(_.__watcherHandles=[])}else if(!a){const _=()=>{};return _.stop=Ie,_.resume=Ie,_.pause=Ie,_}}const f=be;l.call=(_,C,E)=>Le(_,f,C,E);let h=!1;i==="post"?l.scheduler=_=>{pe(_,f&&f.suspense)}:i!=="sync"&&(h=!0,l.scheduler=(_,C)=>{C?_():Xs(_)}),l.augmentJob=_=>{t&&(_.flags|=4),h&&(_.flags|=2,f&&(_.id=f.uid,_.i=f))};const v=po(e,t,l);return Wt&&(d?d.push(v):a&&v()),v}function Co(e,t,s){const n=this.proxy,r=Z(e)?e.includes(".")?ur(n,e):()=>n[e]:e.bind(n,n);let i;F(t)?i=t:(i=t.handler,s=t);const o=Vt(this),l=ar(r,i.bind(n),s);return o(),l}function ur(e,t){const s=t.split(".");return()=>{let n=e;for(let r=0;r<s.length&&n;r++)n=n[s[r]];return n}}const fr=Symbol("_vte"),Mo=e=>e.__isTeleport,Dt=e=>e&&(e.disabled||e.disabled===""),dr=e=>e&&(e.defer||e.defer===""),hr=e=>typeof SVGElement<"u"&&e instanceof SVGElement,pr=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Qs=(e,t)=>{const s=e&&e.to;return Z(s)?t?t(s):null:s},gr={name:"Teleport",__isTeleport:!0,process(e,t,s,n,r,i,o,l,a,d){const{mc:f,pc:h,pbc:v,o:{insert:_,querySelector:C,createText:E,createComment:A}}=d,D=Dt(t.props);let{shapeFlag:O,children:k,dynamicChildren:M}=t;if(e==null){const H=t.el=E(""),q=t.anchor=E("");_(H,s,n),_(q,s,n);const K=(te,ae)=>{O&16&&f(k,te,ae,r,i,o,l,a)},ne=()=>{const te=t.target=Qs(t.props,C),ae=Zs(te,t,E,_);te&&(o!=="svg"&&hr(te)?o="svg":o!=="mathml"&&pr(te)&&(o="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(te),D||(K(te,ae),ds(t,!1)))};D&&(K(s,q),ds(t,!0)),dr(t.props)?(t.el.__isMounted=!1,pe(()=>{ne(),delete t.el.__isMounted},i)):ne()}else{if(dr(t.props)&&e.el.__isMounted===!1){pe(()=>{gr.process(e,t,s,n,r,i,o,l,a,d)},i);return}t.el=e.el,t.targetStart=e.targetStart;const H=t.anchor=e.anchor,q=t.target=e.target,K=t.targetAnchor=e.targetAnchor,ne=Dt(e.props),te=ne?s:q,ae=ne?H:K;if(o==="svg"||hr(q)?o="svg":(o==="mathml"||pr(q))&&(o="mathml"),M?(v(e.dynamicChildren,M,te,r,i,o,l),fn(e,t,!0)):a||h(e,t,te,ae,r,i,o,l,!1),D)ne?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):fs(t,s,H,d,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Ae=t.target=Qs(t.props,C);Ae&&fs(t,Ae,null,d,0)}else ne&&fs(t,q,K,d,1);ds(t,D)}},remove(e,t,s,{um:n,o:{remove:r}},i){const{shapeFlag:o,children:l,anchor:a,targetStart:d,targetAnchor:f,target:h,props:v}=e;if(h&&(r(d),r(f)),i&&r(a),o&16){const _=i||!Dt(v);for(let C=0;C<l.length;C++){const E=l[C];n(E,t,s,_,!!E.dynamicChildren)}}},move:fs,hydrate:Ao};function fs(e,t,s,{o:{insert:n},m:r},i=2){i===0&&n(e.targetAnchor,t,s);const{el:o,anchor:l,shapeFlag:a,children:d,props:f}=e,h=i===2;if(h&&n(o,t,s),(!h||Dt(f))&&a&16)for(let v=0;v<d.length;v++)r(d[v],t,s,2);h&&n(l,t,s)}function Ao(e,t,s,n,r,i,{o:{nextSibling:o,parentNode:l,querySelector:a,insert:d,createText:f}},h){function v(A,D){let O=D;for(;O;){if(O&&O.nodeType===8){if(O.data==="teleport start anchor")t.targetStart=O;else if(O.data==="teleport anchor"){t.targetAnchor=O,A._lpa=t.targetAnchor&&o(t.targetAnchor);break}}O=o(O)}}function _(A,D){D.anchor=h(o(A),D,l(A),s,n,r,i)}const C=t.target=Qs(t.props,a),E=Dt(t.props);if(C){const A=C._lpa||C.firstChild;t.shapeFlag&16&&(E?(_(e,t),v(C,A),t.targetAnchor||Zs(C,t,f,d,l(e)===C?e:null)):(t.anchor=o(e),v(C,A),t.targetAnchor||Zs(C,t,f,d),h(A&&o(A),t,C,s,n,r,i))),ds(t,E)}else E&&t.shapeFlag&16&&(_(e,t),t.targetStart=e,t.targetAnchor=o(e));return t.anchor&&o(t.anchor)}const Po=gr;function ds(e,t){const s=e.ctx;if(s&&s.ut){let n,r;for(t?(n=e.el,r=e.anchor):(n=e.targetStart,r=e.targetAnchor);n&&n!==r;)n.nodeType===1&&n.setAttribute("data-v-owner",s.uid),n=n.nextSibling;s.ut()}}function Zs(e,t,s,n,r=null){const i=t.targetStart=s(""),o=t.targetAnchor=s("");return i[fr]=o,e&&(n(i,e,r),n(o,e,r)),o}const Ro=Symbol("_leaveCb");function en(e,t){e.shapeFlag&6&&e.component?(e.transition=t,en(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function hs(e,t){return F(e)?oe({name:e.name},t,{setup:e}):e}function mr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function yr(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const ps=new WeakMap;function Ht(e,t,s,n,r=!1){if($(e)){e.forEach((E,A)=>Ht(E,t&&($(t)?t[A]:t),s,n,r));return}if(Lt(n)&&!r){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Ht(e,t,s,n.component.subTree);return}const i=n.shapeFlag&4?mn(n.component):n.el,o=r?null:i,{i:l,r:a}=e,d=t&&t.r,f=l.refs===z?l.refs={}:l.refs,h=l.setupState,v=U(h),_=h===z?Sn:E=>yr(f,E)?!1:N(v,E),C=(E,A)=>!(A&&yr(f,A));if(d!=null&&d!==a){if(br(t),Z(d))f[d]=null,_(d)&&(h[d]=null);else if(le(d)){const E=t;C(d,E.k)&&(d.value=null),E.k&&(f[E.k]=null)}}if(F(a))vt(a,l,12,[o,f]);else{const E=Z(a),A=le(a);if(E||A){const D=()=>{if(e.f){const O=E?_(a)?h[a]:f[a]:C()||!e.k?a.value:f[e.k];if(r)$(O)&&Os(O,i);else if($(O))O.includes(i)||O.push(i);else if(E)f[a]=[i],_(a)&&(h[a]=f[a]);else{const k=[i];C(a,e.k)&&(a.value=k),e.k&&(f[e.k]=k)}}else E?(f[a]=o,_(a)&&(h[a]=o)):A&&(C(a,e.k)&&(a.value=o),e.k&&(f[e.k]=o))};if(o){const O=()=>{D(),ps.delete(e)};O.id=-1,ps.set(e,O),pe(O,s)}else br(e),D()}}}function br(e){const t=ps.get(e);t&&(t.flags|=8,ps.delete(e))}Qt().requestIdleCallback,Qt().cancelIdleCallback;const Lt=e=>!!e.type.__asyncLoader,vr=e=>e.type.__isKeepAlive;function Oo(e,t){xr(e,"a",t)}function $o(e,t){xr(e,"da",t)}function xr(e,t,s=be){const n=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(gs(t,n,s),s){let r=s.parent;for(;r&&r.parent;)vr(r.parent.vnode)&&Io(n,t,s,r),r=r.parent}}function Io(e,t,s,n){const r=gs(t,e,n,!0);Ut(()=>{Os(n[t],r)},s)}function gs(e,t,s=be,n=!1){if(s){const r=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...o)=>{De();const l=Vt(s),a=Le(t,s,e,o);return l(),He(),a});return n?r.unshift(i):r.push(i),i}}const Ye=e=>(t,s=be)=>{(!Wt||e==="sp")&&gs(e,(...n)=>t(...n),s)},Fo=Ye("bm"),ut=Ye("m"),Do=Ye("bu"),Ho=Ye("u"),tn=Ye("bum"),Ut=Ye("um"),Lo=Ye("sp"),Uo=Ye("rtg"),ko=Ye("rtc");function Bo(e,t=be){gs("ec",e,t)}const No=Symbol.for("v-ndc");function _r(e,t,s,n){let r;const i=s,o=$(e);if(o||Z(e)){const l=o&<(e);let a=!1,d=!1;l&&(a=!Me(e),d=Ge(e),e=Zt(e)),r=new Array(e.length);for(let f=0,h=e.length;f<h;f++)r[f]=t(a?d?bt(Oe(e[f])):Oe(e[f]):e[f],f,void 0,i)}else if(typeof e=="number"){r=new Array(e);for(let l=0;l<e;l++)r[l]=t(l+1,l,void 0,i)}else if(j(e))if(e[Symbol.iterator])r=Array.from(e,(l,a)=>t(l,a,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,d=l.length;a<d;a++){const f=l[a];r[a]=t(e[f],f,a,i)}}else r=[];return r}const sn=e=>e?Yr(e)?mn(e):sn(e.parent):null,kt=oe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>sn(e.parent),$root:e=>sn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Er(e),$forceUpdate:e=>e.f||(e.f=()=>{Xs(e.update)}),$nextTick:e=>e.n||(e.n=nr.bind(e.proxy)),$watch:e=>Co.bind(e)}),nn=(e,t)=>e!==z&&!e.__isScriptSetup&&N(e,t),Ko={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:r,props:i,accessCache:o,type:l,appContext:a}=e;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return n[t];case 2:return r[t];case 4:return s[t];case 3:return i[t]}else{if(nn(n,t))return o[t]=1,n[t];if(r!==z&&N(r,t))return o[t]=2,r[t];if(N(i,t))return o[t]=3,i[t];if(s!==z&&N(s,t))return o[t]=4,s[t];rn&&(o[t]=0)}}const d=kt[t];let f,h;if(d)return t==="$attrs"&&de(e.attrs,"get",""),d(e);if((f=l.__cssModules)&&(f=f[t]))return f;if(s!==z&&N(s,t))return o[t]=4,s[t];if(h=a.config.globalProperties,N(h,t))return h[t]},set({_:e},t,s){const{data:n,setupState:r,ctx:i}=e;return nn(r,t)?(r[t]=s,!0):n!==z&&N(n,t)?(n[t]=s,!0):N(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:r,props:i,type:o}},l){let a;return!!(s[l]||e!==z&&l[0]!=="$"&&N(e,l)||nn(t,l)||N(i,l)||N(n,l)||N(kt,l)||N(r.config.globalProperties,l)||(a=o.__cssModules)&&a[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:N(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function wr(e){return $(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let rn=!0;function jo(e){const t=Er(e),s=e.proxy,n=e.ctx;rn=!1,t.beforeCreate&&Tr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:a,inject:d,created:f,beforeMount:h,mounted:v,beforeUpdate:_,updated:C,activated:E,deactivated:A,beforeDestroy:D,beforeUnmount:O,destroyed:k,unmounted:M,render:H,renderTracked:q,renderTriggered:K,errorCaptured:ne,serverPrefetch:te,expose:ae,inheritAttrs:Ae,components:re,directives:_e,filters:St}=t;if(d&&Vo(d,n,null),o)for(const Q in o){const B=o[Q];F(B)&&(n[Q]=B.bind(s))}if(r){const Q=r.call(s,s);j(Q)&&(e.data=ns(Q))}if(rn=!0,i)for(const Q in i){const B=i[Q],Pe=F(B)?B.bind(s,s):F(B.get)?B.get.bind(s,s):Ie,Ms=!F(B)&&F(B.set)?B.set.bind(s):Ie,pt=ie({get:Pe,set:Ms});Object.defineProperty(n,Q,{enumerable:!0,configurable:!0,get:()=>pt.value,set:Ke=>pt.value=Ke})}if(l)for(const Q in l)Sr(l[Q],n,s,Q);if(a){const Q=F(a)?a.call(s):a;Reflect.ownKeys(Q).forEach(B=>{To(B,Q[B])})}f&&Tr(f,e,"c");function ue(Q,B){$(B)?B.forEach(Pe=>Q(Pe.bind(s))):B&&Q(B.bind(s))}if(ue(Fo,h),ue(ut,v),ue(Do,_),ue(Ho,C),ue(Oo,E),ue($o,A),ue(Bo,ne),ue(ko,q),ue(Uo,K),ue(tn,O),ue(Ut,M),ue(Lo,te),$(ae))if(ae.length){const Q=e.exposed||(e.exposed={});ae.forEach(B=>{Object.defineProperty(Q,B,{get:()=>s[B],set:Pe=>s[B]=Pe,enumerable:!0})})}else e.exposed||(e.exposed={});H&&e.render===Ie&&(e.render=H),Ae!=null&&(e.inheritAttrs=Ae),re&&(e.components=re),_e&&(e.directives=_e),te&&mr(e)}function Vo(e,t,s=Ie){$(e)&&(e=on(e));for(const n in e){const r=e[n];let i;j(r)?"default"in r?i=us(r.from||n,r.default,!0):i=us(r.from||n):i=us(r),le(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[n]=i}}function Tr(e,t,s){Le($(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Sr(e,t,s,n){let r=n.includes(".")?ur(s,n):()=>s[n];if(Z(e)){const i=t[e];F(i)&&nt(r,i)}else if(F(e))nt(r,e.bind(s));else if(j(e))if($(e))e.forEach(i=>Sr(i,t,s,n));else{const i=F(e.handler)?e.handler.bind(s):t[e.handler];F(i)&&nt(r,i,e)}}function Er(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let a;return l?a=l:!r.length&&!s&&!n?a=t:(a={},r.length&&r.forEach(d=>ms(a,d,o,!0)),ms(a,t,o)),j(t)&&i.set(t,a),a}function ms(e,t,s,n=!1){const{mixins:r,extends:i}=t;i&&ms(e,i,s,!0),r&&r.forEach(o=>ms(e,o,s,!0));for(const o in t)if(!(n&&o==="expose")){const l=Wo[o]||s&&s[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Wo={data:Cr,props:Mr,emits:Mr,methods:Bt,computed:Bt,beforeCreate:me,created:me,beforeMount:me,mounted:me,beforeUpdate:me,updated:me,beforeDestroy:me,beforeUnmount:me,destroyed:me,unmounted:me,activated:me,deactivated:me,errorCaptured:me,serverPrefetch:me,components:Bt,directives:Bt,watch:zo,provide:Cr,inject:qo};function Cr(e,t){return t?e?function(){return oe(F(e)?e.call(this,this):e,F(t)?t.call(this,this):t)}:t:e}function qo(e,t){return Bt(on(e),on(t))}function on(e){if($(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function me(e,t){return e?[...new Set([].concat(e,t))]:t}function Bt(e,t){return e?oe(Object.create(null),e,t):t}function Mr(e,t){return e?$(e)&&$(t)?[...new Set([...e,...t])]:oe(Object.create(null),wr(e),wr(t??{})):t}function zo(e,t){if(!e)return t;if(!t)return e;const s=oe(Object.create(null),e);for(const n in t)s[n]=me(e[n],t[n]);return s}function Ar(){return{app:null,config:{isNativeTag:Sn,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Go=0;function Yo(e,t){return function(n,r=null){F(n)||(n=oe({},n)),r!=null&&!j(r)&&(r=null);const i=Ar(),o=new WeakSet,l=[];let a=!1;const d=i.app={_uid:Go++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:$l,get config(){return i.config},set config(f){},use(f,...h){return o.has(f)||(f&&F(f.install)?(o.add(f),f.install(d,...h)):F(f)&&(o.add(f),f(d,...h))),d},mixin(f){return i.mixins.includes(f)||i.mixins.push(f),d},component(f,h){return h?(i.components[f]=h,d):i.components[f]},directive(f,h){return h?(i.directives[f]=h,d):i.directives[f]},mount(f,h,v){if(!a){const _=d._ceVNode||xe(n,r);return _.appContext=i,v===!0?v="svg":v===!1&&(v=void 0),e(_,f,v),a=!0,d._container=f,f.__vue_app__=d,mn(_.component)}},onUnmount(f){l.push(f)},unmount(){a&&(Le(l,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(f,h){return i.provides[f]=h,d},runWithContext(f){const h=wt;wt=d;try{return f()}finally{wt=h}}};return d}}let wt=null;const Jo=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Qe(t)}Modifiers`]||e[`${it(t)}Modifiers`];function Xo(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||z;let r=s;const i=t.startsWith("update:"),o=i&&Jo(n,t.slice(7));o&&(o.trim&&(r=s.map(f=>Z(f)?f.trim():f)),o.number&&(r=s.map($i)));let l,a=n[l=Is(t)]||n[l=Is(Qe(t))];!a&&i&&(a=n[l=Is(it(t))]),a&&Le(a,e,6,r);const d=n[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Le(d,e,6,r)}}const Qo=new WeakMap;function Pr(e,t,s=!1){const n=s?Qo:t.emitsCache,r=n.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!F(e)){const a=d=>{const f=Pr(d,t,!0);f&&(l=!0,oe(o,f))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!l?(j(e)&&n.set(e,null),null):($(i)?i.forEach(a=>o[a]=null):oe(o,i),j(e)&&n.set(e,o),o)}function ys(e,t){return!e||!Jt(t)?!1:(t=t.slice(2).replace(/Once$/,""),N(e,t[0].toLowerCase()+t.slice(1))||N(e,it(t))||N(e,t))}function Ea(){}function Rr(e){const{type:t,vnode:s,proxy:n,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:a,render:d,renderCache:f,props:h,data:v,setupState:_,ctx:C,inheritAttrs:E}=e,A=as(e);let D,O;try{if(s.shapeFlag&4){const M=r||n,H=M;D=Be(d.call(H,M,f,h,_,v,C)),O=l}else{const M=t;D=Be(M.length>1?M(h,{attrs:l,slots:o,emit:a}):M(h,null)),O=t.props?l:Zo(l)}}catch(M){Nt.length=0,ls(M,e,1),D=xe(rt)}let k=D;if(O&&E!==!1){const M=Object.keys(O),{shapeFlag:H}=k;M.length&&H&7&&(i&&M.some(Rs)&&(O=el(O,i)),k=Tt(k,O,!1,!0))}return s.dirs&&(k=Tt(k,null,!1,!0),k.dirs=k.dirs?k.dirs.concat(s.dirs):s.dirs),s.transition&&en(k,s.transition),D=k,as(A),D}const Zo=e=>{let t;for(const s in e)(s==="class"||s==="style"||Jt(s))&&((t||(t={}))[s]=e[s]);return t},el=(e,t)=>{const s={};for(const n in e)(!Rs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function tl(e,t,s){const{props:n,children:r,component:i}=e,{props:o,children:l,patchFlag:a}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return n?Or(n,o,d):!!o;if(a&8){const f=t.dynamicProps;for(let h=0;h<f.length;h++){const v=f[h];if($r(o,n,v)&&!ys(d,v))return!0}}}else return(r||l)&&(!l||!l.$stable)?!0:n===o?!1:n?o?Or(n,o,d):!0:!!o;return!1}function Or(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let r=0;r<n.length;r++){const i=n[r];if($r(t,e,i)&&!ys(s,i))return!0}return!1}function $r(e,t,s){const n=e[s],r=t[s];return s==="style"&&j(n)&&j(r)?!Ds(n,r):n!==r}function sl({vnode:e,parent:t},s){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.el=e.el),n===e)(e=t.vnode).el=s,t=t.parent;else break}}const Ir={},Fr=()=>Object.create(Ir),Dr=e=>Object.getPrototypeOf(e)===Ir;function nl(e,t,s,n=!1){const r={},i=Fr();e.propsDefaults=Object.create(null),Hr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);s?e.props=n?r:io(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function rl(e,t,s,n){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=U(r),[a]=e.propsOptions;let d=!1;if((n||o>0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let h=0;h<f.length;h++){let v=f[h];if(ys(e.emitsOptions,v))continue;const _=t[v];if(a)if(N(i,v))_!==i[v]&&(i[v]=_,d=!0);else{const C=Qe(v);r[C]=ln(a,l,C,_,e,!1)}else _!==i[v]&&(i[v]=_,d=!0)}}}else{Hr(e,t,r,i)&&(d=!0);let f;for(const h in l)(!t||!N(t,h)&&((f=it(h))===h||!N(t,f)))&&(a?s&&(s[h]!==void 0||s[f]!==void 0)&&(r[h]=ln(a,l,h,void 0,e,!0)):delete r[h]);if(i!==l)for(const h in i)(!t||!N(t,h))&&(delete i[h],d=!0)}d&&qe(e.attrs,"set","")}function Hr(e,t,s,n){const[r,i]=e.propsOptions;let o=!1,l;if(t)for(let a in t){if(Ct(a))continue;const d=t[a];let f;r&&N(r,f=Qe(a))?!i||!i.includes(f)?s[f]=d:(l||(l={}))[f]=d:ys(e.emitsOptions,a)||(!(a in n)||d!==n[a])&&(n[a]=d,o=!0)}if(i){const a=U(s),d=l||z;for(let f=0;f<i.length;f++){const h=i[f];s[h]=ln(r,a,h,d[h],e,!N(d,h))}}return o}function ln(e,t,s,n,r,i){const o=e[s];if(o!=null){const l=N(o,"default");if(l&&n===void 0){const a=o.default;if(o.type!==Function&&!o.skipFactory&&F(a)){const{propsDefaults:d}=r;if(s in d)n=d[s];else{const f=Vt(r);n=d[s]=a.call(null,t),f()}}else n=a;r.ce&&r.ce._setProp(s,n)}o[0]&&(i&&!l?n=!1:o[1]&&(n===""||n===it(s))&&(n=!0))}return n}const il=new WeakMap;function Lr(e,t,s=!1){const n=s?il:t.propsCache,r=n.get(e);if(r)return r;const i=e.props,o={},l=[];let a=!1;if(!F(e)){const f=h=>{a=!0;const[v,_]=Lr(h,t,!0);oe(o,v),_&&l.push(..._)};!s&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!i&&!a)return j(e)&&n.set(e,gt),gt;if($(i))for(let f=0;f<i.length;f++){const h=Qe(i[f]);Ur(h)&&(o[h]=z)}else if(i)for(const f in i){const h=Qe(f);if(Ur(h)){const v=i[f],_=o[h]=$(v)||F(v)?{type:v}:oe({},v),C=_.type;let E=!1,A=!0;if($(C))for(let D=0;D<C.length;++D){const O=C[D],k=F(O)&&O.name;if(k==="Boolean"){E=!0;break}else k==="String"&&(A=!1)}else E=F(C)&&C.name==="Boolean";_[0]=E,_[1]=A,(E||N(_,"default"))&&l.push(h)}}const d=[o,l];return j(e)&&n.set(e,d),d}function Ur(e){return e[0]!=="$"&&!Ct(e)}const cn=e=>e==="_"||e==="_ctx"||e==="$stable",an=e=>$(e)?e.map(Be):[Be(e)],ol=(e,t,s)=>{if(t._n)return t;const n=wo((...r)=>an(t(...r)),s);return n._c=!1,n},kr=(e,t,s)=>{const n=e._ctx;for(const r in e){if(cn(r))continue;const i=e[r];if(F(i))t[r]=ol(r,i,n);else if(i!=null){const o=an(i);t[r]=()=>o}}},Br=(e,t)=>{const s=an(t);e.slots.default=()=>s},Nr=(e,t,s)=>{for(const n in t)(s||!cn(n))&&(e[n]=t[n])},ll=(e,t,s)=>{const n=e.slots=Fr();if(e.vnode.shapeFlag&32){const r=t._;r?(Nr(n,t,s),s&&On(n,"_",r,!0)):kr(t,n)}else t&&Br(e,t)},cl=(e,t,s)=>{const{vnode:n,slots:r}=e;let i=!0,o=z;if(n.shapeFlag&32){const l=t._;l?s&&l===1?i=!1:Nr(r,t,s):(i=!t.$stable,kr(t,r)),o=t}else t&&(Br(e,t),o={default:1});if(i)for(const l in r)!cn(l)&&o[l]==null&&delete r[l]},pe=hl;function al(e){return ul(e)}function ul(e,t){const s=Qt();s.__VUE__=!0;const{insert:n,remove:r,patchProp:i,createElement:o,createText:l,createComment:a,setText:d,setElementText:f,parentNode:h,nextSibling:v,setScopeId:_=Ie,insertStaticContent:C}=e,E=(c,u,p,b=null,g=null,m=null,T=void 0,w=null,x=!!u.dynamicChildren)=>{if(c===u)return;c&&!jt(c,u)&&(b=As(c),Ke(c,g,m,!0),c=null),u.patchFlag===-2&&(x=!1,u.dynamicChildren=null);const{type:y,ref:R,shapeFlag:S}=u;switch(y){case bs:A(c,u,p,b);break;case rt:D(c,u,p,b);break;case dn:c==null&&O(u,p,b,T);break;case ye:re(c,u,p,b,g,m,T,w,x);break;default:S&1?H(c,u,p,b,g,m,T,w,x):S&6?_e(c,u,p,b,g,m,T,w,x):(S&64||S&128)&&y.process(c,u,p,b,g,m,T,w,x,Gt)}R!=null&&g?Ht(R,c&&c.ref,m,u||c,!u):R==null&&c&&c.ref!=null&&Ht(c.ref,null,m,c,!0)},A=(c,u,p,b)=>{if(c==null)n(u.el=l(u.children),p,b);else{const g=u.el=c.el;u.children!==c.children&&d(g,u.children)}},D=(c,u,p,b)=>{c==null?n(u.el=a(u.children||""),p,b):u.el=c.el},O=(c,u,p,b)=>{[c.el,c.anchor]=C(c.children,u,p,b,c.el,c.anchor)},k=({el:c,anchor:u},p,b)=>{let g;for(;c&&c!==u;)g=v(c),n(c,p,b),c=g;n(u,p,b)},M=({el:c,anchor:u})=>{let p;for(;c&&c!==u;)p=v(c),r(c),c=p;r(u)},H=(c,u,p,b,g,m,T,w,x)=>{if(u.type==="svg"?T="svg":u.type==="math"&&(T="mathml"),c==null)q(u,p,b,g,m,T,w,x);else{const y=c.el&&c.el._isVueCE?c.el:null;try{y&&y._beginPatch(),te(c,u,g,m,T,w,x)}finally{y&&y._endPatch()}}},q=(c,u,p,b,g,m,T,w)=>{let x,y;const{props:R,shapeFlag:S,transition:P,dirs:I}=c;if(x=c.el=o(c.type,m,R&&R.is,R),S&8?f(x,c.children):S&16&&ne(c.children,x,null,b,g,un(c,m),T,w),I&&at(c,null,b,"created"),K(x,c,c.scopeId,T,b),R){for(const X in R)X!=="value"&&!Ct(X)&&i(x,X,null,R[X],m,b);"value"in R&&i(x,"value",null,R.value,m),(y=R.onVnodeBeforeMount)&&Ne(y,b,c)}I&&at(c,null,b,"beforeMount");const L=fl(g,P);L&&P.beforeEnter(x),n(x,u,p),((y=R&&R.onVnodeMounted)||L||I)&&pe(()=>{y&&Ne(y,b,c),L&&P.enter(x),I&&at(c,null,b,"mounted")},g)},K=(c,u,p,b,g)=>{if(p&&_(c,p),b)for(let m=0;m<b.length;m++)_(c,b[m]);if(g){let m=g.subTree;if(u===m||Wr(m.type)&&(m.ssContent===u||m.ssFallback===u)){const T=g.vnode;K(c,T,T.scopeId,T.slotScopeIds,g.parent)}}},ne=(c,u,p,b,g,m,T,w,x=0)=>{for(let y=x;y<c.length;y++){const R=c[y]=w?Je(c[y]):Be(c[y]);E(null,R,u,p,b,g,m,T,w)}},te=(c,u,p,b,g,m,T)=>{const w=u.el=c.el;let{patchFlag:x,dynamicChildren:y,dirs:R}=u;x|=c.patchFlag&16;const S=c.props||z,P=u.props||z;let I;if(p&&ft(p,!1),(I=P.onVnodeBeforeUpdate)&&Ne(I,p,u,c),R&&at(u,c,p,"beforeUpdate"),p&&ft(p,!0),(S.innerHTML&&P.innerHTML==null||S.textContent&&P.textContent==null)&&f(w,""),y?ae(c.dynamicChildren,y,w,p,b,un(u,g),m):T||B(c,u,w,null,p,b,un(u,g),m,!1),x>0){if(x&16)Ae(w,S,P,p,g);else if(x&2&&S.class!==P.class&&i(w,"class",null,P.class,g),x&4&&i(w,"style",S.style,P.style,g),x&8){const L=u.dynamicProps;for(let X=0;X<L.length;X++){const W=L[X],we=S[W],Te=P[W];(Te!==we||W==="value")&&i(w,W,we,Te,g,p)}}x&1&&c.children!==u.children&&f(w,u.children)}else!T&&y==null&&Ae(w,S,P,p,g);((I=P.onVnodeUpdated)||R)&&pe(()=>{I&&Ne(I,p,u,c),R&&at(u,c,p,"updated")},b)},ae=(c,u,p,b,g,m,T)=>{for(let w=0;w<u.length;w++){const x=c[w],y=u[w],R=x.el&&(x.type===ye||!jt(x,y)||x.shapeFlag&198)?h(x.el):p;E(x,y,R,null,b,g,m,T,!0)}},Ae=(c,u,p,b,g)=>{if(u!==p){if(u!==z)for(const m in u)!Ct(m)&&!(m in p)&&i(c,m,u[m],null,g,b);for(const m in p){if(Ct(m))continue;const T=p[m],w=u[m];T!==w&&m!=="value"&&i(c,m,w,T,g,b)}"value"in p&&i(c,"value",u.value,p.value,g)}},re=(c,u,p,b,g,m,T,w,x)=>{const y=u.el=c?c.el:l(""),R=u.anchor=c?c.anchor:l("");let{patchFlag:S,dynamicChildren:P,slotScopeIds:I}=u;I&&(w=w?w.concat(I):I),c==null?(n(y,p,b),n(R,p,b),ne(u.children||[],p,R,g,m,T,w,x)):S>0&&S&64&&P&&c.dynamicChildren&&c.dynamicChildren.length===P.length?(ae(c.dynamicChildren,P,p,g,m,T,w),(u.key!=null||g&&u===g.subTree)&&fn(c,u,!0)):B(c,u,p,R,g,m,T,w,x)},_e=(c,u,p,b,g,m,T,w,x)=>{u.slotScopeIds=w,c==null?u.shapeFlag&512?g.ctx.activate(u,p,b,T,x):St(u,p,b,g,m,T,x):qt(c,u,x)},St=(c,u,p,b,g,m,T)=>{const w=c.component=_l(c,b,g);if(vr(c)&&(w.ctx.renderer=Gt),Tl(w,!1,T),w.asyncDep){if(g&&g.registerDep(w,ue,T),!c.el){const x=w.subTree=xe(rt);D(null,x,u,p),c.placeholder=x.el}}else ue(w,c,u,p,g,m,T)},qt=(c,u,p)=>{const b=u.component=c.component;if(tl(c,u,p))if(b.asyncDep&&!b.asyncResolved){Q(b,u,p);return}else b.next=u,b.update();else u.el=c.el,b.vnode=u},ue=(c,u,p,b,g,m,T)=>{const w=()=>{if(c.isMounted){let{next:S,bu:P,u:I,parent:L,vnode:X}=c;{const Ve=Kr(c);if(Ve){S&&(S.el=X.el,Q(c,S,T)),Ve.asyncDep.then(()=>{pe(()=>{c.isUnmounted||y()},g)});return}}let W=S,we;ft(c,!1),S?(S.el=X.el,Q(c,S,T)):S=X,P&&Fs(P),(we=S.props&&S.props.onVnodeBeforeUpdate)&&Ne(we,L,S,X),ft(c,!0);const Te=Rr(c),je=c.subTree;c.subTree=Te,E(je,Te,h(je.el),As(je),c,g,m),S.el=Te.el,W===null&&sl(c,Te.el),I&&pe(I,g),(we=S.props&&S.props.onVnodeUpdated)&&pe(()=>Ne(we,L,S,X),g)}else{let S;const{el:P,props:I}=u,{bm:L,m:X,parent:W,root:we,type:Te}=c,je=Lt(u);ft(c,!1),L&&Fs(L),!je&&(S=I&&I.onVnodeBeforeMount)&&Ne(S,W,u),ft(c,!0);{we.ce&&we.ce._hasShadowRoot()&&we.ce._injectChildStyle(Te);const Ve=c.subTree=Rr(c);E(null,Ve,p,b,c,g,m),u.el=Ve.el}if(X&&pe(X,g),!je&&(S=I&&I.onVnodeMounted)){const Ve=u;pe(()=>Ne(S,W,Ve),g)}(u.shapeFlag&256||W&&Lt(W.vnode)&&W.vnode.shapeFlag&256)&&c.a&&pe(c.a,g),c.isMounted=!0,u=p=b=null}};c.scope.on();const x=c.effect=new Hn(w);c.scope.off();const y=c.update=x.run.bind(x),R=c.job=x.runIfDirty.bind(x);R.i=c,R.id=c.uid,x.scheduler=()=>Xs(R),ft(c,!0),y()},Q=(c,u,p)=>{u.component=c;const b=c.vnode.props;c.vnode=u,c.next=null,rl(c,u.props,b,p),cl(c,u.children,p),De(),ir(c),He()},B=(c,u,p,b,g,m,T,w,x=!1)=>{const y=c&&c.children,R=c?c.shapeFlag:0,S=u.children,{patchFlag:P,shapeFlag:I}=u;if(P>0){if(P&128){Ms(y,S,p,b,g,m,T,w,x);return}else if(P&256){Pe(y,S,p,b,g,m,T,w,x);return}}I&8?(R&16&&zt(y,g,m),S!==y&&f(p,S)):R&16?I&16?Ms(y,S,p,b,g,m,T,w,x):zt(y,g,m,!0):(R&8&&f(p,""),I&16&&ne(S,p,b,g,m,T,w,x))},Pe=(c,u,p,b,g,m,T,w,x)=>{c=c||gt,u=u||gt;const y=c.length,R=u.length,S=Math.min(y,R);let P;for(P=0;P<S;P++){const I=u[P]=x?Je(u[P]):Be(u[P]);E(c[P],I,p,null,g,m,T,w,x)}y>R?zt(c,g,m,!0,!1,S):ne(u,p,b,g,m,T,w,x,S)},Ms=(c,u,p,b,g,m,T,w,x)=>{let y=0;const R=u.length;let S=c.length-1,P=R-1;for(;y<=S&&y<=P;){const I=c[y],L=u[y]=x?Je(u[y]):Be(u[y]);if(jt(I,L))E(I,L,p,null,g,m,T,w,x);else break;y++}for(;y<=S&&y<=P;){const I=c[S],L=u[P]=x?Je(u[P]):Be(u[P]);if(jt(I,L))E(I,L,p,null,g,m,T,w,x);else break;S--,P--}if(y>S){if(y<=P){const I=P+1,L=I<R?u[I].el:b;for(;y<=P;)E(null,u[y]=x?Je(u[y]):Be(u[y]),p,L,g,m,T,w,x),y++}}else if(y>P)for(;y<=S;)Ke(c[y],g,m,!0),y++;else{const I=y,L=y,X=new Map;for(y=L;y<=P;y++){const Ee=u[y]=x?Je(u[y]):Be(u[y]);Ee.key!=null&&X.set(Ee.key,y)}let W,we=0;const Te=P-L+1;let je=!1,Ve=0;const Yt=new Array(Te);for(y=0;y<Te;y++)Yt[y]=0;for(y=I;y<=S;y++){const Ee=c[y];if(we>=Te){Ke(Ee,g,m,!0);continue}let We;if(Ee.key!=null)We=X.get(Ee.key);else for(W=L;W<=P;W++)if(Yt[W-L]===0&&jt(Ee,u[W])){We=W;break}We===void 0?Ke(Ee,g,m,!0):(Yt[We-L]=y+1,We>=Ve?Ve=We:je=!0,E(Ee,u[We],p,null,g,m,T,w,x),we++)}const Ei=je?dl(Yt):gt;for(W=Ei.length-1,y=Te-1;y>=0;y--){const Ee=L+y,We=u[Ee],Ci=u[Ee+1],Mi=Ee+1<R?Ci.el||Vr(Ci):b;Yt[y]===0?E(null,We,p,Mi,g,m,T,w,x):je&&(W<0||y!==Ei[W]?pt(We,p,Mi,2):W--)}}},pt=(c,u,p,b,g=null)=>{const{el:m,type:T,transition:w,children:x,shapeFlag:y}=c;if(y&6){pt(c.component.subTree,u,p,b);return}if(y&128){c.suspense.move(u,p,b);return}if(y&64){T.move(c,u,p,Gt);return}if(T===ye){n(m,u,p);for(let S=0;S<x.length;S++)pt(x[S],u,p,b);n(c.anchor,u,p);return}if(T===dn){k(c,u,p);return}if(b!==2&&y&1&&w)if(b===0)w.beforeEnter(m),n(m,u,p),pe(()=>w.enter(m),g);else{const{leave:S,delayLeave:P,afterLeave:I}=w,L=()=>{c.ctx.isUnmounted?r(m):n(m,u,p)},X=()=>{m._isLeaving&&m[Ro](!0),S(m,()=>{L(),I&&I()})};P?P(m,L,X):X()}else n(m,u,p)},Ke=(c,u,p,b=!1,g=!1)=>{const{type:m,props:T,ref:w,children:x,dynamicChildren:y,shapeFlag:R,patchFlag:S,dirs:P,cacheIndex:I}=c;if(S===-2&&(g=!1),w!=null&&(De(),Ht(w,null,p,c,!0),He()),I!=null&&(u.renderCache[I]=void 0),R&256){u.ctx.deactivate(c);return}const L=R&1&&P,X=!Lt(c);let W;if(X&&(W=T&&T.onVnodeBeforeUnmount)&&Ne(W,u,c),R&6)_a(c.component,p,b);else{if(R&128){c.suspense.unmount(p,b);return}L&&at(c,null,u,"beforeUnmount"),R&64?c.type.remove(c,u,p,Gt,b):y&&!y.hasOnce&&(m!==ye||S>0&&S&64)?zt(y,u,p,!1,!0):(m===ye&&S&384||!g&&R&16)&&zt(x,u,p),b&&Ti(c)}(X&&(W=T&&T.onVnodeUnmounted)||L)&&pe(()=>{W&&Ne(W,u,c),L&&at(c,null,u,"unmounted")},p)},Ti=c=>{const{type:u,el:p,anchor:b,transition:g}=c;if(u===ye){xa(p,b);return}if(u===dn){M(c);return}const m=()=>{r(p),g&&!g.persisted&&g.afterLeave&&g.afterLeave()};if(c.shapeFlag&1&&g&&!g.persisted){const{leave:T,delayLeave:w}=g,x=()=>T(p,m);w?w(c.el,m,x):x()}else m()},xa=(c,u)=>{let p;for(;c!==u;)p=v(c),r(c),c=p;r(u)},_a=(c,u,p)=>{const{bum:b,scope:g,job:m,subTree:T,um:w,m:x,a:y}=c;jr(x),jr(y),b&&Fs(b),g.stop(),m&&(m.flags|=8,Ke(T,c,u,p)),w&&pe(w,u),pe(()=>{c.isUnmounted=!0},u)},zt=(c,u,p,b=!1,g=!1,m=0)=>{for(let T=m;T<c.length;T++)Ke(c[T],u,p,b,g)},As=c=>{if(c.shapeFlag&6)return As(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const u=v(c.anchor||c.el),p=u&&u[fr];return p?v(p):u};let Tn=!1;const Si=(c,u,p)=>{let b;c==null?u._vnode&&(Ke(u._vnode,null,null,!0),b=u._vnode.component):E(u._vnode||null,c,u,null,null,null,p),u._vnode=c,Tn||(Tn=!0,ir(b),or(),Tn=!1)},Gt={p:E,um:Ke,m:pt,r:Ti,mt:St,mc:ne,pc:B,pbc:ae,n:As,o:e};return{render:Si,hydrate:void 0,createApp:Yo(Si)}}function un({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function ft({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function fl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function fn(e,t,s=!1){const n=e.children,r=t.children;if($(n)&&$(r))for(let i=0;i<n.length;i++){const o=n[i];let l=r[i];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=r[i]=Je(r[i]),l.el=o.el),!s&&l.patchFlag!==-2&&fn(o,l)),l.type===bs&&(l.patchFlag===-1&&(l=r[i]=Je(l)),l.el=o.el),l.type===rt&&!l.el&&(l.el=o.el)}}function dl(e){const t=e.slice(),s=[0];let n,r,i,o,l;const a=e.length;for(n=0;n<a;n++){const d=e[n];if(d!==0){if(r=s[s.length-1],e[r]<d){t[n]=r,s.push(n);continue}for(i=0,o=s.length-1;i<o;)l=i+o>>1,e[s[l]]<d?i=l+1:o=l;d<e[s[i]]&&(i>0&&(t[n]=s[i-1]),s[i]=n)}}for(i=s.length,o=s[i-1];i-- >0;)s[i]=o,o=t[o];return s}function Kr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Kr(t)}function jr(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Vr(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Vr(t.subTree):null}const Wr=e=>e.__isSuspense;function hl(e,t){t&&t.pendingBranch?$(e)?t.effects.push(...e):t.effects.push(e):_o(e)}const ye=Symbol.for("v-fgt"),bs=Symbol.for("v-txt"),rt=Symbol.for("v-cmt"),dn=Symbol.for("v-stc"),Nt=[];let Se=null;function V(e=!1){Nt.push(Se=e?null:[])}function pl(){Nt.pop(),Se=Nt[Nt.length-1]||null}let Kt=1;function vs(e,t=!1){Kt+=e,e<0&&Se&&t&&(Se.hasOnce=!0)}function qr(e){return e.dynamicChildren=Kt>0?Se||gt:null,pl(),Kt>0&&Se&&Se.push(e),e}function Y(e,t,s,n,r,i){return qr(J(e,t,s,n,r,i,!0))}function hn(e,t,s,n,r){return qr(xe(e,t,s,n,r,!0))}function xs(e){return e?e.__v_isVNode===!0:!1}function jt(e,t){return e.type===t.type&&e.key===t.key}const zr=({key:e})=>e??null,_s=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?Z(e)||le(e)||F(e)?{i:ke,r:e,k:t,f:!!s}:e:null);function J(e,t=null,s=null,n=0,r=null,i=e===ye?0:1,o=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&zr(t),ref:t&&_s(t),scopeId:cr,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:n,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ke};return l?(pn(a,s),i&128&&e.normalize(a)):s&&(a.shapeFlag|=Z(s)?8:16),Kt>0&&!o&&Se&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&Se.push(a),a}const xe=gl;function gl(e,t=null,s=null,n=0,r=null,i=!1){if((!e||e===No)&&(e=rt),xs(e)){const l=Tt(e,t,!0);return s&&pn(l,s),Kt>0&&!i&&Se&&(l.shapeFlag&6?Se[Se.indexOf(e)]=l:Se.push(l)),l.patchFlag=-2,l}if(Rl(e)&&(e=e.__vccOpts),t){t=ml(t);let{class:l,style:a}=t;l&&!Z(l)&&(t.class=Ce(l)),j(a)&&(Ys(a)&&!$(a)&&(a=oe({},a)),t.style=Mt(a))}const o=Z(e)?1:Wr(e)?128:Mo(e)?64:j(e)?4:F(e)?2:0;return J(e,t,s,n,r,o,i,!0)}function ml(e){return e?Ys(e)||Dr(e)?oe({},e):e:null}function Tt(e,t,s=!1,n=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:a}=e,d=t?bl(r||{},t):r,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&zr(d),ref:t&&t.ref?s&&i?$(i)?i.concat(_s(t)):[i,_s(t)]:_s(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ye?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Tt(e.ssContent),ssFallback:e.ssFallback&&Tt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&n&&en(f,a.clone(f)),f}function yl(e=" ",t=0){return xe(bs,null,e,t)}function ce(e="",t=!1){return t?(V(),hn(rt,null,e)):xe(rt,null,e)}function Be(e){return e==null||typeof e=="boolean"?xe(rt):$(e)?xe(ye,null,e.slice()):xs(e)?Je(e):xe(bs,null,String(e))}function Je(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Tt(e)}function pn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if($(t))s=16;else if(typeof t=="object")if(n&65){const r=t.default;r&&(r._c&&(r._d=!1),pn(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!Dr(t)?t._ctx=ke:r===3&&ke&&(ke.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else F(t)?(t={default:t,_ctx:ke},s=32):(t=String(t),n&64?(s=16,t=[yl(t)]):s=8);e.children=t,e.shapeFlag|=s}function bl(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const r in n)if(r==="class")t.class!==n.class&&(t.class=Ce([t.class,n.class]));else if(r==="style")t.style=Mt([t.style,n.style]);else if(Jt(r)){const i=t[r],o=n[r];o&&i!==o&&!($(i)&&i.includes(o))&&(t[r]=i?[].concat(i,o):o)}else r!==""&&(t[r]=n[r])}return t}function Ne(e,t,s,n=null){Le(e,t,7,[s,n])}const vl=Ar();let xl=0;function _l(e,t,s){const n=e.type,r=(t?t.appContext:e.appContext)||vl,i={uid:xl++,vnode:e,type:n,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ki(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Lr(n,r),emitsOptions:Pr(n,r),emit:null,emitted:null,propsDefaults:z,inheritAttrs:n.inheritAttrs,ctx:z,data:z,props:z,attrs:z,slots:z,refs:z,setupState:z,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=Xo.bind(null,i),e.ce&&e.ce(i),i}let be=null;const wl=()=>be||ke;let ws,gn;{const e=Qt(),t=(s,n)=>{let r;return(r=e[s])||(r=e[s]=[]),r.push(n),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};ws=t("__VUE_INSTANCE_SETTERS__",s=>be=s),gn=t("__VUE_SSR_SETTERS__",s=>Wt=s)}const Vt=e=>{const t=be;return ws(e),e.scope.on(),()=>{e.scope.off(),ws(t)}},Gr=()=>{be&&be.scope.off(),ws(null)};function Yr(e){return e.vnode.shapeFlag&4}let Wt=!1;function Tl(e,t=!1,s=!1){t&&gn(t);const{props:n,children:r}=e.vnode,i=Yr(e);nl(e,n,i,t),ll(e,r,s||t);const o=i?Sl(e,t):void 0;return t&&gn(!1),o}function Sl(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ko);const{setup:n}=s;if(n){De();const r=e.setupContext=n.length>1?Cl(e):null,i=Vt(e),o=vt(n,e,0,[e.props,r]),l=Mn(o);if(He(),i(),(l||e.sp)&&!Lt(e)&&mr(e),l){if(o.then(Gr,Gr),t)return o.then(a=>{Jr(e,a)}).catch(a=>{ls(a,e,0)});e.asyncDep=o}else Jr(e,o)}else Xr(e)}function Jr(e,t,s){F(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:j(t)&&(e.setupState=er(t)),Xr(e)}function Xr(e,t,s){const n=e.type;e.render||(e.render=n.render||Ie);{const r=Vt(e);De();try{jo(e)}finally{He(),r()}}}const El={get(e,t){return de(e,"get",""),e[t]}};function Cl(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,El),slots:e.slots,emit:e.emit,expose:t}}function mn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(er(oo(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in kt)return kt[s](e)},has(t,s){return s in t||s in kt}})):e.proxy}const Ml=/(?:^|[-_])\w/g,Al=e=>e.replace(Ml,t=>t.toUpperCase()).replace(/[-_]/g,"");function Pl(e,t=!0){return F(e)?e.displayName||e.name:e.name||t&&e.__name}function Qr(e,t,s=!1){let n=Pl(t);if(!n&&t.__file){const r=t.__file.match(/([^/\\]+)\.\w+$/);r&&(n=r[1])}if(!n&&e){const r=i=>{for(const o in i)if(i[o]===t)return o};n=r(e.components)||e.parent&&r(e.parent.type.components)||r(e.appContext.components)}return n?Al(n):s?"App":"Anonymous"}function Rl(e){return F(e)&&"__vccOpts"in e}const ie=(e,t)=>fo(e,t,Wt);function Ol(e,t,s){try{vs(-1);const n=arguments.length;return n===2?j(t)&&!$(t)?xs(t)?xe(e,null,[t]):xe(e,t):xe(e,null,t):(n>3?s=Array.prototype.slice.call(arguments,2):n===3&&xs(s)&&(s=[s]),xe(e,t,s))}finally{vs(1)}}const $l="3.5.29";let yn;const Zr=typeof window<"u"&&window.trustedTypes;if(Zr)try{yn=Zr.createPolicy("vue",{createHTML:e=>e})}catch{}const ei=yn?e=>yn.createHTML(e):e=>e,Il="http://www.w3.org/2000/svg",Fl="http://www.w3.org/1998/Math/MathML",Xe=typeof document<"u"?document:null,ti=Xe&&Xe.createElement("template"),Dl={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const r=t==="svg"?Xe.createElementNS(Il,e):t==="mathml"?Xe.createElementNS(Fl,e):s?Xe.createElement(e,{is:s}):Xe.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>Xe.createTextNode(e),createComment:e=>Xe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Xe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,r,i){const o=s?s.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),s),!(r===i||!(r=r.nextSibling)););else{ti.innerHTML=ei(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const l=ti.content;if(n==="svg"||n==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,s)}return[o?o.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Hl=Symbol("_vtc");function Ll(e,t,s){const n=e[Hl];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const si=Symbol("_vod"),Ul=Symbol("_vsh"),kl=Symbol(""),Bl=/(?:^|;)\s*display\s*:/;function Nl(e,t,s){const n=e.style,r=Z(s);let i=!1;if(s&&!r){if(t)if(Z(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Ts(n,l,"")}else for(const o in t)s[o]==null&&Ts(n,o,"");for(const o in s)o==="display"&&(i=!0),Ts(n,o,s[o])}else if(r){if(t!==s){const o=n[kl];o&&(s+=";"+o),n.cssText=s,i=Bl.test(s)}}else t&&e.removeAttribute("style");si in e&&(e[si]=i?n.display:"",e[Ul]&&(n.display="none"))}const ni=/\s*!important$/;function Ts(e,t,s){if($(s))s.forEach(n=>Ts(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=Kl(e,t);ni.test(s)?e.setProperty(it(n),s.replace(ni,""),"important"):e[n]=s}}const ri=["Webkit","Moz","ms"],bn={};function Kl(e,t){const s=bn[t];if(s)return s;let n=Qe(t);if(n!=="filter"&&n in e)return bn[t]=n;n=Rn(n);for(let r=0;r<ri.length;r++){const i=ri[r]+n;if(i in e)return bn[t]=i}return t}const ii="http://www.w3.org/1999/xlink";function oi(e,t,s,n,r,i=Li(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(ii,t.slice(6,t.length)):e.setAttributeNS(ii,t,s):s==null||i&&!In(s)?e.removeAttribute(t):e.setAttribute(t,i?"":Fe(s)?String(s):s)}function li(e,t,s,n,r){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?ei(s):s);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const l=i==="OPTION"?e.getAttribute("value")||"":e.value,a=s==null?e.type==="checkbox"?"on":"":String(s);(l!==a||!("_value"in e))&&(e.value=a),s==null&&e.removeAttribute(t),e._value=s;return}let o=!1;if(s===""||s==null){const l=typeof e[t];l==="boolean"?s=In(s):s==null&&l==="string"?(s="",o=!0):l==="number"&&(s=0,o=!0)}try{e[t]=s}catch{}o&&e.removeAttribute(r||t)}function jl(e,t,s,n){e.addEventListener(t,s,n)}function Vl(e,t,s,n){e.removeEventListener(t,s,n)}const ci=Symbol("_vei");function Wl(e,t,s,n,r=null){const i=e[ci]||(e[ci]={}),o=i[t];if(n&&o)o.value=n;else{const[l,a]=ql(t);if(n){const d=i[t]=Yl(n,r);jl(e,l,d,a)}else o&&(Vl(e,l,o,a),i[t]=void 0)}}const ai=/(?:Once|Passive|Capture)$/;function ql(e){let t;if(ai.test(e)){t={};let n;for(;n=e.match(ai);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):it(e.slice(2)),t]}let vn=0;const zl=Promise.resolve(),Gl=()=>vn||(zl.then(()=>vn=0),vn=Date.now());function Yl(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Le(Jl(n,s.value),t,5,[n])};return s.value=e,s.attached=Gl(),s}function Jl(e,t){if($(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>r=>!r._stopped&&n&&n(r))}else return t}const ui=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Xl=(e,t,s,n,r,i)=>{const o=r==="svg";t==="class"?Ll(e,n,o):t==="style"?Nl(e,s,n):Jt(t)?Rs(t)||Wl(e,t,s,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ql(e,t,n,o))?(li(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&oi(e,t,n,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Z(n))?li(e,Qe(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),oi(e,t,n,o))};function Ql(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&ui(t)&&F(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return ui(t)&&Z(s)?!1:t in e}const Zl=["ctrl","shift","alt","meta"],ec={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Zl.some(s=>e[`${s}Key`]&&!t.includes(s))},tc=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=((r,...i)=>{for(let o=0;o<t.length;o++){const l=ec[t[o]];if(l&&l(r,t))return}return e(r,...i)}))},sc=oe({patchProp:Xl},Dl);let fi;function nc(){return fi||(fi=al(sc))}const rc=((...e)=>{const t=nc().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=oc(n);if(!r)return;const i=t._component;!F(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=s(r,!1,ic(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function ic(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function oc(e){return Z(e)?document.querySelector(e):e}class di extends Error{status;constructor(t=403){super(`Unauthorized (HTTP ${t})`),this.name="UnauthorizedError",this.status=t}}class lc extends Error{status;body;constructor(t,s){super(`API error (HTTP ${t})`),this.name="ApiError",this.status=t,this.body=s}}class hi{baseUrl;authToken;constructor(t){this.baseUrl=t.baseUrl.replace(/\/+$/,""),this.authToken=t.authToken}async fetch(t,s){const r={...{Accept:"application/json",...this.authToken?{Authorization:`Bearer ${this.authToken}`}:{}},...s?.headers},i=await globalThis.fetch(`${this.baseUrl}${t}`,{...s,headers:r,credentials:this.authToken?"omit":"include"});if(i.status===401||i.status===403)throw new di(i.status);if(!i.ok){const o=await i.text().catch(()=>"");throw new lc(i.status,o)}return i.json()}async get(t,s){const n=s?`${t}?${s}`:t;return this.fetch(n)}async post(t,s){const n={method:"POST",...s!==void 0?{body:JSON.stringify(s),headers:{"Content-Type":"application/json"}}:{}};return this.fetch(t,n)}async delete(t){return this.fetch(t,{method:"DELETE"})}}function cc(e){if(!e&&e!==0)return"-";const t=Math.floor(e),s=Math.floor(t/86400),n=Math.floor(t%86400/3600),r=Math.floor(t%3600/60);return s>0?`${s}d ${n}h`:n>0?`${n}h ${r}m`:r>0?`${r}m ${t%60}s`:`${t}s`}function xn(e){const t=e/1048576;return t>=1024?`${(t/1024).toFixed(1)}G`:`${t.toFixed(0)}M`}function pi(e){return e>=1024?`${(e/1024).toFixed(1)}G`:`${e.toFixed(1)}M`}function ac(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:`${e}`}function _n(e,t){switch(t){case"%":return`${e.toFixed(1)}%`;case"ms":return`${e.toFixed(0)}ms`;case"MB":return`${e.toFixed(1)}M`;case"bytes":return xn(e);case"/s":case"/m":return e.toFixed(1);default:return e.toFixed(1)}}function Ss(e,t,s){return e>s?"red":e>t?"amber":"green"}function uc(e,t,s){return e<s?"red":e<t?"amber":"green"}function gi(e,t){if(t===0)return"green";const s=e/t;return s>.8?"red":s>.5?"amber":"green"}const fc={green:"ss-green",amber:"ss-amber",red:"ss-red"};function dt(e){return fc[e]||""}const mi=[{id:"node",label:"NODE",title:"Node.js Runtime",unit:"",group:"process",extract:e=>0,format:e=>e.nodeVersion,color:()=>""},{id:"uptime",label:"UP",title:"Process Uptime",unit:"",group:"process",extract:e=>e.uptime,format:e=>cc(e.uptime),color:()=>""},{id:"cpu",label:"CPU",title:"CPU Usage",unit:"%",group:"process",warnThreshold:50,critThreshold:80,extract:e=>e.cpuPercent,format:e=>`${e.cpuPercent.toFixed(1)}%`,color:e=>dt(Ss(e.cpuPercent,50,80)),historyKey:"cpuPercent"},{id:"eventLoop",label:"EVT",title:"Event Loop Latency",unit:"ms",group:"process",warnThreshold:20,critThreshold:50,extract:e=>e.eventLoopLag,format:e=>`${e.eventLoopLag.toFixed(1)}ms`,color:e=>dt(Ss(e.eventLoopLag,20,50)),historyKey:"eventLoopLag"},{id:"memory",label:"HEAP",title:"V8 Heap Usage",unit:"bytes",group:"memory",extract:e=>e.memHeapUsed,format:e=>xn(e.memHeapUsed),color:()=>"",historyKey:"memHeapUsed"},{id:"rss",label:"RSS",title:"Resident Set Size",unit:"bytes",group:"memory",extract:e=>e.memRss,format:e=>xn(e.memRss),color:()=>"",historyKey:"memRss"},{id:"systemMemory",label:"SYS",title:"System Memory",unit:"MB",group:"memory",extract:e=>e.systemMemoryTotalMb-e.systemMemoryFreeMb,format:e=>`${pi(e.systemMemoryTotalMb-e.systemMemoryFreeMb)}/${pi(e.systemMemoryTotalMb)}`,color:e=>{const t=e.systemMemoryTotalMb;if(t===0)return"";const s=t-e.systemMemoryFreeMb;return dt(gi(s,t))},historyKey:"_sysMemUsed",show:e=>e.systemMemoryTotalMb!==null&&e.systemMemoryTotalMb!==void 0},{id:"reqPerSec",label:"REQ/s",title:"Requests per Second",unit:"/s",group:"http",extract:e=>e.requestsPerSecond,format:e=>e.requestsPerSecond.toFixed(1),color:()=>"",historyKey:"requestsPerSecond"},{id:"avgResponse",label:"AVG",title:"Avg Response Time",unit:"ms",group:"http",warnThreshold:200,critThreshold:500,extract:e=>e.avgResponseTimeMs,format:e=>`${e.avgResponseTimeMs.toFixed(0)}ms`,color:e=>dt(Ss(e.avgResponseTimeMs,200,500)),historyKey:"avgResponseTimeMs"},{id:"errorRate",label:"ERR",title:"Error Rate",unit:"%",group:"http",warnThreshold:1,critThreshold:5,extract:e=>e.errorRate,format:e=>`${e.errorRate.toFixed(1)}%`,color:e=>dt(Ss(e.errorRate,1,5)),historyKey:"errorRate"},{id:"connections",label:"CONN",title:"Active Connections",unit:"",group:"http",extract:e=>e.activeHttpConnections,format:e=>`${e.activeHttpConnections}`,color:()=>"",historyKey:"activeHttpConnections"},{id:"dbPool",label:"DB",title:"Database Pool",unit:"",group:"db",extract:e=>e.dbPoolUsed,format:e=>`${e.dbPoolUsed}/${e.dbPoolFree}/${e.dbPoolMax}`,color:e=>dt(gi(e.dbPoolUsed,e.dbPoolMax)),historyKey:"dbPoolUsed"},{id:"redis",label:"REDIS",title:"Redis Status",unit:"",group:"redis",extract:e=>e.redisOk?1:0,format:e=>e.redisOk?"✓":"✗",color:e=>e.redisOk?"ss-green":"ss-red"},{id:"redisMem",label:"MEM",title:"Redis Memory",unit:"MB",group:"redis",extract:e=>e.redisMemoryUsedMb,format:e=>`${e.redisMemoryUsedMb.toFixed(1)}M`,color:()=>"",historyKey:"redisMemoryUsedMb",show:e=>e.redisOk},{id:"redisKeys",label:"KEYS",title:"Redis Keys",unit:"",group:"redis",extract:e=>e.redisKeysCount,format:e=>ac(e.redisKeysCount),color:()=>"",historyKey:"redisKeysCount",show:e=>e.redisOk},{id:"redisHitRate",label:"HIT",title:"Redis Hit Rate",unit:"%",group:"redis",warnThreshold:90,critThreshold:70,inverseThreshold:!0,extract:e=>e.redisHitRate,format:e=>`${e.redisHitRate.toFixed(0)}%`,color:e=>dt(uc(e.redisHitRate,90,70)),historyKey:"redisHitRate",show:e=>e.redisOk},{id:"queue",label:"Q",title:"Job Queue",unit:"",group:"queue",extract:e=>e.queueActive,format:e=>`${e.queueActive}/${e.queueWaiting}/${e.queueDelayed}`,color:e=>e.queueFailed>0?"ss-amber":"ss-green",historyKey:"queueActive"},{id:"queueWorkers",label:"WORKERS",title:"Queue Workers",unit:"",group:"queue",extract:e=>e.queueWorkerCount,format:e=>`${e.queueWorkerCount}`,color:()=>""},{id:"onlineUsers",label:"USERS",title:"Online Users",unit:"",group:"app",extract:e=>e.onlineUsers,format:e=>`${e.onlineUsers}`,color:()=>"",historyKey:"onlineUsers"},{id:"pendingWebhooks",label:"HOOKS",title:"Pending Webhooks",unit:"",group:"app",extract:e=>e.pendingWebhooks,format:e=>`${e.pendingWebhooks}`,color:e=>e.pendingWebhooks>0?"ss-amber":"",historyKey:"pendingWebhooks"},{id:"pendingEmails",label:"MAIL",title:"Pending Emails",unit:"",group:"app",extract:e=>e.pendingEmails,format:e=>`${e.pendingEmails}`,color:e=>e.pendingEmails>0?"ss-amber":"",historyKey:"pendingEmails"},{id:"logErrors",label:"LOG ERR",title:"Log Errors (5m)",unit:"",group:"log",extract:e=>e.logErrorsLast5m,format:e=>`${e.logErrorsLast5m}`,color:e=>e.logErrorsLast5m>0?"ss-red":e.logWarningsLast5m>0?"ss-amber":"",historyKey:"logErrorsLast5m"},{id:"logRate",label:"LOG/m",title:"Log Entries / Minute",unit:"/m",group:"log",extract:e=>e.logEntriesPerMinute,format:e=>`${e.logEntriesPerMinute}`,color:()=>"",historyKey:"logEntriesPerMinute"}];function dc(){const e=new Map;for(const t of mi){const s=t.group||"core";e.has(s)||e.set(s,[]),e.get(s).push(t)}return e}const hc=60,pc=1e4;function gc(e=hc){const t={};return{push(s){for(const n of mi){const r=n.historyKey;if(!r)continue;const i=n.extract(s);typeof i=="number"&&(t[r]||(t[r]=[]),t[r].push(i),t[r].length>e&&t[r].shift())}},get(s){return t[s]||[]},getAll(){return t}}}async function mc(){if(typeof window<"u"&&window.Transmit&&typeof window.Transmit=="function")return window.Transmit;try{const e=await import("@adonisjs/transmit-client");return e.Transmit??e.default??null}catch{return null}}function yc(e){let t=null,s=null,n=!1;return{subscribe:async()=>{try{const o=await mc();if(!o)throw new Error("Transmit client not available (neither window.Transmit nor @adonisjs/transmit-client)");if(n)return;t=new o({baseUrl:e.baseUrl||window.location.origin,...e.authToken?{beforeSubscribe(l){return{headers:{Authorization:`Bearer ${e.authToken}`}}},beforeUnsubscribe(l){return{headers:{Authorization:`Bearer ${e.authToken}`}}}}:{}}),s=t.subscription(e.channelName),s.onMessage(l=>{n||e.onMessage(l)}),await s.create()}catch(o){e.onError&&e.onError(o)}},unsubscribe:async()=>{n=!0;try{s&&(await s.delete(),s=null),t&&(t=null)}catch{}}}}function bc(e){let t=!1;const s=yc({baseUrl:e.baseUrl,channelName:e.channelName,authToken:e.authToken,onMessage:e.onMessage,onError:n=>{t=!0,e.onError?.(n),e.onDisconnect?.()}});return s.subscribe().then(()=>{t||e.onConnect?.()}).catch(n=>{e.onError?.(n),e.onDisconnect?.()}),{unsubscribe:()=>{s.unsubscribe().catch(()=>{})}}}class vc{baseUrl;endpoint;channelName;authToken;pollInterval;onStatsUpdate;onConnectionChange;onStaleChange;onError;onUnauthorizedChange;onHistoryChange;onSseActiveChange;onPollActiveChange;historyBuffer;client=null;sseHandle=null;pollTimer=null;staleTimer=null;lastSuccess=0;unauthorized=!1;sseActive=!1;isConnected=!1;isStale=!1;constructor(t={}){this.baseUrl=t.baseUrl??"",this.endpoint=t.endpoint??"/admin/api/server-stats",this.channelName=t.channelName??"admin/server-stats",this.authToken=t.authToken,this.pollInterval=t.pollInterval??3e3,this.onStatsUpdate=t.onStatsUpdate,this.onConnectionChange=t.onConnectionChange,this.onStaleChange=t.onStaleChange,this.onError=t.onError,this.onUnauthorizedChange=t.onUnauthorizedChange,this.onHistoryChange=t.onHistoryChange,this.onSseActiveChange=t.onSseActiveChange,this.onPollActiveChange=t.onPollActiveChange,this.historyBuffer=gc()}start(){if(this.unauthorized)return;let t=!1;try{const s=bc({baseUrl:this.baseUrl,channelName:this.channelName,authToken:this.authToken,onMessage:n=>{n&&typeof n=="object"&&"timestamp"in n&&this.processStats(n)},onConnect:()=>{this.setSseActive(!0),this.setConnected(!0),this.stopPolling()},onDisconnect:()=>{this.setSseActive(!1),this.setConnected(!1),!this.pollTimer&&!this.unauthorized&&this.startPollInterval()},onError:()=>{t=!0}});this.sseHandle=s}catch{t=!0}if(this.poll(),t||!this.sseHandle)this.startPollInterval();else{const s=setTimeout(()=>{!this.isConnected&&!this.pollTimer&&this.startPollInterval()},3e3),n=this.sseHandle?.unsubscribe;this.sseHandle&&(this.sseHandle.unsubscribe=()=>{clearTimeout(s),n?.()})}this.staleTimer=setInterval(()=>{this.lastSuccess>0&&Date.now()-this.lastSuccess>pc&&this.setStale(!0)},2e3)}stop(){this.sseHandle?.unsubscribe(),this.sseHandle=null,this.stopPolling(),this.staleTimer&&(clearInterval(this.staleTimer),this.staleTimer=null)}getHistory(t){return this.historyBuffer.get(t)}getAllHistory(){return this.historyBuffer.getAll()}getConnectionMode(){return this.unauthorized?"disconnected":this.sseActive?"live":this.pollTimer?"polling":"disconnected"}processStats(t){this.onStatsUpdate?.(t),this.onError?.(null),this.lastSuccess=Date.now(),this.setStale(!1),this.historyBuffer.push(t),this.onHistoryChange?.(this.historyBuffer.getAll())}async poll(){if(!this.unauthorized){this.client||(this.client=new hi({baseUrl:this.baseUrl,authToken:this.authToken}));try{const t=await this.client.get(this.endpoint);this.processStats(t)}catch(t){t instanceof di&&(this.unauthorized=!0,this.onUnauthorizedChange?.(!0),this.onError?.(t),this.stopPolling())}}}startPollInterval(){this.pollTimer||(this.pollTimer=setInterval(()=>this.poll(),this.pollInterval),this.onPollActiveChange?.(!0))}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null,this.onPollActiveChange?.(!1))}setSseActive(t){this.sseActive!==t&&(this.sseActive=t,this.onSseActiveChange?.(t))}setConnected(t){this.isConnected!==t&&(this.isConnected=t,this.onConnectionChange?.(t))}setStale(t){this.isStale!==t&&(this.isStale=t,this.onStaleChange?.(t))}}function xc(e={}){const{baseUrl:t="",endpoint:s="/admin/api/server-stats",channelName:n="admin/server-stats",authToken:r,pollInterval:i=3e3}=e,o=se(null),l=ns({}),a=se(!1),d=se(!1),f=se(null),h=se(!1),v=se(!1),_=se(!1);let C=null;const E=ie(()=>h.value?"disconnected":v.value?"live":_.value?"polling":"disconnected");return ut(()=>{h.value||(C=new vc({baseUrl:t,endpoint:s,channelName:n,authToken:r,pollInterval:i,onStatsUpdate:A=>{o.value=A},onConnectionChange:A=>{a.value=A},onStaleChange:A=>{d.value=A},onError:A=>{f.value=A},onUnauthorizedChange:A=>{h.value=A},onHistoryChange:A=>{for(const D of Object.keys(A))l[D]=A[D]},onSseActiveChange:A=>{v.value=A},onPollActiveChange:A=>{_.value=A}}),C.start())}),Ut(()=>{C?.stop(),C=null}),{stats:o,history:l,isConnected:a,isStale:d,isUnauthorized:h,error:f,connectionMode:E}}const Es="ss-dash-theme",wn="ss-theme-change";function Cs(){if(typeof window>"u")return"light";const e=localStorage.getItem(Es);return e==="dark"||e==="light"?e:window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function _c(e){typeof window>"u"||(localStorage.setItem(Es,e),window.dispatchEvent(new CustomEvent(wn,{detail:e})))}function wc(){const t=Cs()==="dark"?"light":"dark";return _c(t),t}function Tc(e){if(typeof window>"u")return()=>{};const t=i=>{const o=i.detail;(o==="dark"||o==="light")&&e(o)},s=i=>{if(i.key===Es){const o=i.newValue;e(o==="dark"||o==="light"?o:Cs())}},n=window.matchMedia("(prefers-color-scheme: dark)"),r=i=>{localStorage.getItem(Es)||e(i.matches?"dark":"light")};return window.addEventListener(wn,t),window.addEventListener("storage",s),n.addEventListener("change",r),()=>{window.removeEventListener(wn,t),window.removeEventListener("storage",s),n.removeEventListener("change",r)}}const ht={color:"#34d399",fillOpacityTop:.25,fillOpacityBottom:.02,strokeWidth:1.5,width:120,height:32,padding:2};function Sc(e){return{...ht,...e}}function Ec(e,t=ht.width,s=ht.height,n=ht.padding){if(e.length<2)return null;const r=t-n*2,i=s-n*2,o=Math.min(...e),a=Math.max(...e)-o||1;return e.map((f,h)=>{const v=n+h/(e.length-1)*r,_=n+i-(f-o)/a*i;return`${v.toFixed(1)},${_.toFixed(1)}`}).join(" ")}function Cc(e,t=ht.width,s=ht.height,n=ht.padding){if(e.length<2)return null;const r=t-n*2,i=s-n*2,o=Math.min(...e),a=Math.max(...e)-o||1,d=e.map((_,C)=>{const E=n+C/(e.length-1)*r,A=n+i-(_-o)/a*i;return`${E.toFixed(1)},${A.toFixed(1)}`}),f=(n+r).toFixed(1),h=(n+i).toFixed(1),v=n.toFixed(1);return`M${d[0]} `+d.slice(1).map(_=>`L${_}`).join(" ")+` L${f},${h} L${v},${h} Z`}let Mc=0;function Ac(){return`ss-grad-${Mc++}`}function yi(e){if(e.length===0)return null;const t=Math.min(...e),s=Math.max(...e),n=e.reduce((r,i)=>r+i,0)/e.length;return{min:t,max:s,avg:n}}function Pc(e,t){const s=Sc(t),n=Ec(e,s.width,s.height,s.padding),r=Cc(e,s.width,s.height,s.padding);return!n||!r?null:{points:n,areaPath:r,gradientId:Ac(),options:s,stats:yi(e)}}const bi="/admin/api/debug",vi={tracing:!1,process:!1,system:!1,http:!1,db:!1,redis:!1,queues:!1,cache:!1,app:!1,log:!1,emails:!1,dashboard:!1,customPanes:[]};function Rc(e){return{tracing:e.features?.tracing??!1,process:e.features?.process??!1,system:e.features?.system??!1,http:e.features?.http??!1,db:e.features?.db??!1,redis:e.features?.redis??!1,queues:e.features?.queues??!1,cache:e.features?.cache??!1,app:e.features?.app??!1,log:e.features?.log??!1,emails:e.features?.emails??!1,dashboard:e.features?.dashboard??!1,customPanes:e.customPanes??[]}}async function Oc(e,t=bi){const s=`${t.replace(/\/+$/,"")}/config`;return e.fetch(s)}async function $c(e){const{baseUrl:t="",debugEndpoint:s=bi,authToken:n}=e,r=new hi({baseUrl:t,authToken:n});try{const i=await Oc(r,s);return Rc(i)}catch{return vi}}function Ic(e){const t=new Set,s="features"in e&&typeof e.features=="object"&&e.features!==null?e.features:e;return"process"in s&&s.process&&t.add("process"),("process"in s&&s.process||"system"in s&&s.system)&&t.add("memory"),"http"in s&&s.http&&t.add("http"),"db"in s&&s.db&&t.add("db"),"redis"in s&&s.redis&&t.add("redis"),"queues"in s&&s.queues&&t.add("queue"),"app"in s&&s.app&&t.add("app"),"log"in s&&s.log&&t.add("log"),t}function Fc(e){const t=new Set;return(ee(e.cpuPercent)||ee(e.uptime)||Dc(e.nodeVersion))&&t.add("process"),(ee(e.memHeapUsed)||ee(e.memRss))&&t.add("memory"),(ee(e.systemMemoryTotalMb)||ee(e.systemMemoryFreeMb))&&t.add("memory"),(ee(e.requestsPerSecond)||ee(e.avgResponseTimeMs)||ee(e.errorRate)||ee(e.activeHttpConnections))&&t.add("http"),(ee(e.dbPoolMax)||ee(e.dbPoolUsed)||ee(e.dbPoolFree)||ee(e.dbPoolPending))&&t.add("db"),e.redisOk!==void 0&&e.redisOk!==null&&t.add("redis"),(ee(e.queueActive)||ee(e.queueWaiting)||ee(e.queueWorkerCount))&&t.add("queue"),(ee(e.onlineUsers)||ee(e.pendingWebhooks)||ee(e.pendingEmails))&&t.add("app"),(ee(e.logErrorsLast5m)||ee(e.logEntriesPerMinute))&&t.add("log"),t}function ee(e){return typeof e=="number"&&!Number.isNaN(e)}function Dc(e){return typeof e=="string"&&e.length>0}const xi={queries:{viewBox:"0 0 24 24",elements:['<ellipse cx="12" cy="5" rx="9" ry="3"/>','<path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"/>','<path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"/>']},events:{viewBox:"0 0 24 24",elements:['<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>']},emails:{viewBox:"0 0 24 24",elements:['<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/>','<polyline points="22,6 12,13 2,6"/>']},routes:{viewBox:"0 0 24 24",elements:['<circle cx="12" cy="12" r="10"/>','<line x1="2" y1="12" x2="22" y2="12"/>','<path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/>']},logs:{viewBox:"0 0 24 24",elements:['<line x1="8" y1="6" x2="21" y2="6"/>','<line x1="8" y1="12" x2="21" y2="12"/>','<line x1="8" y1="18" x2="21" y2="18"/>','<line x1="3" y1="6" x2="3.01" y2="6"/>','<line x1="3" y1="12" x2="3.01" y2="12"/>','<line x1="3" y1="18" x2="3.01" y2="18"/>']},timeline:{viewBox:"0 0 24 24",elements:['<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/>']},cache:{viewBox:"0 0 24 24",elements:['<rect x="2" y="2" width="20" height="8" rx="2" ry="2"/>','<rect x="2" y="14" width="20" height="8" rx="2" ry="2"/>','<line x1="6" y1="6" x2="6.01" y2="6"/>','<line x1="6" y1="18" x2="6.01" y2="18"/>']},jobs:{viewBox:"0 0 24 24",elements:['<rect x="2" y="7" width="20" height="14" rx="2" ry="2"/>','<path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/>']},config:{viewBox:"0 0 24 24",elements:['<circle cx="12" cy="12" r="3"/>','<path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"/>']},internals:{viewBox:"0 0 24 24",elements:['<rect x="4" y="4" width="16" height="16" rx="2"/>','<rect x="9" y="9" width="6" height="6"/>','<line x1="9" y1="1" x2="9" y2="4"/>','<line x1="15" y1="1" x2="15" y2="4"/>','<line x1="9" y1="20" x2="9" y2="23"/>','<line x1="15" y1="20" x2="15" y2="23"/>','<line x1="20" y1="9" x2="23" y2="9"/>','<line x1="20" y1="14" x2="23" y2="14"/>','<line x1="1" y1="9" x2="4" y2="9"/>','<line x1="1" y1="14" x2="4" y2="14"/>']},overview:{viewBox:"0 0 24 24",elements:['<rect x="3" y="3" width="7" height="7"/>','<rect x="14" y="3" width="7" height="7"/>','<rect x="14" y="14" width="7" height="7"/>','<rect x="3" y="14" width="7" height="7"/>']},requests:{viewBox:"0 0 24 24",elements:['<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/>']},"dashboard-timeline":{viewBox:"0 0 24 24",elements:['<circle cx="12" cy="12" r="10"/>','<polyline points="12 6 12 12 16 14"/>']},"custom-pane":{viewBox:"0 0 24 24",elements:['<rect x="3" y="3" width="18" height="18" rx="2"/>','<path d="M9 3v18"/>']},wrench:{viewBox:"0 0 24 24",elements:['<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/>']},"external-link":{viewBox:"0 0 24 24",elements:['<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>','<polyline points="15 3 21 3 21 9"/>','<line x1="10" y1="14" x2="21" y2="3"/>']},sun:{viewBox:"0 0 24 24",elements:['<circle cx="12" cy="12" r="5"/>','<line x1="12" y1="1" x2="12" y2="3"/>','<line x1="12" y1="21" x2="12" y2="23"/>','<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/>','<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/>','<line x1="1" y1="12" x2="3" y2="12"/>','<line x1="21" y1="12" x2="23" y2="12"/>','<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/>','<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/>']},moon:{viewBox:"0 0 24 24",elements:['<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>']},search:{viewBox:"0 0 24 24",elements:['<circle cx="11" cy="11" r="8"/>','<line x1="21" y1="21" x2="16.65" y2="16.65"/>']},eye:{viewBox:"0 0 24 24",elements:['<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/>','<circle cx="12" cy="12" r="3"/>']},"eye-off":{viewBox:"0 0 24 24",elements:['<path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"/>','<path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"/>','<line x1="1" y1="1" x2="23" y2="23"/>','<path d="M14.12 14.12a3 3 0 1 1-4.24-4.24"/>']},"chevron-right":{viewBox:"0 0 24 24",elements:['<path d="M9 18l6-6-6-6"/>']},"chevron-left":{viewBox:"0 0 24 24",elements:['<path d="M15 18l-6-6 6-6"/>']},"open-external":{viewBox:"0 0 16 16",elements:['<path d="M6 3H3v10h10v-3M9 1h6v6M7 9L15 1"/>']}};function Hc(e={}){const{baseUrl:t="",debugEndpoint:s="/admin/api/debug",authToken:n}=e,r=se({...vi}),i=se(!0);return ut(async()=>{r.value=await $c({baseUrl:t,debugEndpoint:s,authToken:n}),i.value=!1}),{features:r,loading:i}}function Lc(){const e=se(Cs());let t=null;function s(r){e.value=r}function n(){const r=wc();return e.value=r,r}return ut(()=>{e.value=Cs(),t=Tc(s)}),Ut(()=>{t?.()}),{theme:e,toggleTheme:n}}const Uc=["width","height","viewBox"],kc=["id"],Bc=["stop-color"],Nc=["stop-color"],Kc=["d","fill"],jc=["d","stroke"],Vc=["x","y"],Wc=hs({__name:"Sparkline",props:{data:{},color:{default:"#34d399"},width:{default:120},height:{default:32}},setup(e){const t=e,s=ie(()=>Pc(t.data,{width:t.width,height:t.height,color:t.color})),n=ie(()=>s.value!==null),r=ie(()=>`sg-${t.color.replace("#","")}`);return(i,o)=>(V(),Y("div",{class:"ss-dash-sparkline",style:Mt({"--ss-accent":e.color})},[(V(),Y("svg",{width:e.width,height:e.height,viewBox:`0 0 ${e.width} ${e.height}`,style:{display:"block"}},[n.value&&s.value?(V(),Y(ye,{key:0},[J("defs",null,[J("linearGradient",{id:r.value,x1:"0",y1:"0",x2:"0",y2:"1"},[J("stop",{offset:"0%","stop-color":e.color,"stop-opacity":"0.25"},null,8,Bc),J("stop",{offset:"100%","stop-color":e.color,"stop-opacity":"0.02"},null,8,Nc)],8,kc)]),J("path",{d:s.value.areaPath,fill:`url(#${r.value})`},null,8,Kc),J("path",{class:"ss-dash-sparkline-line",d:"M"+s.value.points.replace(/ /g," L"),fill:"none",stroke:e.color,"stroke-width":"1.5","stroke-linejoin":"round","stroke-linecap":"round"},null,8,jc)],64)):(V(),Y("text",{key:1,x:e.width/2,y:e.height/2+3,"text-anchor":"middle",fill:"#737373","font-size":"9"}," collecting... ",8,Vc))],8,Uc))],4))}}),qc=["id"],zc={class:"ss-label"},Gc={class:"ss-tooltip-inner",style:{position:"relative"}},Yc={class:"ss-tooltip-header"},Jc={class:"ss-tooltip-title"},Xc={key:0,class:"ss-tooltip-unit"},Qc={class:"ss-tooltip-current"},Zc={class:"ss-tooltip-current-value"},ea={key:1,class:"ss-tooltip-stats"},ta={key:2,class:"ss-tooltip-details"},sa={key:3,class:"ss-tooltip-sparkline"},na={key:4,class:"ss-tooltip-samples"},ra=hs({__name:"MetricCard",props:{metric:{},stats:{},history:{}},emits:["pin"],setup(e,{emit:t}){const s=e,n=t,r=se(!1),i=se(!1),o=se(null),l=se(null),a=se(null),d=se({position:"absolute",bottom:"100%",left:"0",marginBottom:"10px",zIndex:"180"});ut(()=>{o.value&&(a.value=o.value.closest(".ss-bar"))});function f(){const re=o.value,_e=l.value,St=a.value;if(!re||!_e||!St)return;const qt=re.getBoundingClientRect(),ue=St.getBoundingClientRect(),Q=qt.left-ue.left+qt.width/2;d.value={position:"absolute",bottom:"100%",left:`${Q}px`,transform:"translateX(-50%)",marginBottom:"10px",zIndex:"180"},requestAnimationFrame(()=>{if(!l.value)return;const B=l.value.getBoundingClientRect();let Pe=0;B.left<8?Pe=8-B.left:B.right>window.innerWidth-8&&(Pe=window.innerWidth-8-B.right),Pe&&(d.value={...d.value,transform:`translateX(calc(-50% + ${Pe}px))`})})}const h=ie(()=>r.value||i.value);nt(h,re=>{re&&nr(f)});let v=null;function _(){h.value&&f()}function C(){h.value&&f()}ut(()=>{v=o.value?.closest(".ss-bar-scroll")??null,v?.addEventListener("scroll",_),window.addEventListener("resize",C)}),tn(()=>{v?.removeEventListener("scroll",_),window.removeEventListener("resize",C)});const E=ie(()=>s.stats?(s.metric.value||s.metric.format)(s.stats):"..."),A=ie(()=>!s.stats||!s.metric.color?"green":s.metric.color(s.stats)),D=ie(()=>!s.stats||!s.metric.show?!0:s.metric.show(s.stats)),O=ie(()=>s.metric.detail?typeof s.metric.detail=="function"?s.stats?s.metric.detail(s.stats):"":s.metric.detail:""),k=ie(()=>({green:"#34d399",amber:"#fbbf24",red:"#f87171",muted:"#737373"})[A.value]||"#34d399"),M=ie(()=>yi(s.history));function H(){r.value=!0}function q(){r.value=!1}function K(){i.value=!i.value,i.value&&n("pin",s.metric.id)}function ne(){i.value=!1}function te(re){re.key==="Enter"&&K()}function ae(re){const _e=re.target;o.value&&!o.value.contains(_e)&&l.value&&!l.value.contains(_e)&&(i.value=!1)}function Ae(re){re.key==="Escape"&&(i.value=!1)}return nt(i,re=>{re?(document.addEventListener("click",ae),document.addEventListener("keydown",Ae)):(document.removeEventListener("click",ae),document.removeEventListener("keydown",Ae))}),tn(()=>{document.removeEventListener("click",ae),document.removeEventListener("keydown",Ae)}),(re,_e)=>(V(),Y(ye,null,[D.value?(V(),Y("div",{key:0,ref_key:"badgeRef",ref:o,id:`ss-b-${e.metric.id}`,class:Ce(["ss-badge",{"ss-pinned":i.value}]),role:"button",tabindex:0,onMouseenter:H,onMouseleave:q,onClick:K,onKeydown:te},[J("span",zc,fe(e.metric.label),1),J("span",{class:Ce(["ss-value",`ss-${A.value}`])},fe(E.value),3)],42,qc)):ce("",!0),h.value&&a.value?(V(),hn(Po,{key:1,to:a.value},[J("div",{ref_key:"tooltipRef",ref:l,class:Ce(["ss-tooltip",{"ss-pinned":i.value}]),style:Mt(d.value)},[J("div",Gc,[i.value?(V(),Y("button",{key:0,class:"ss-tooltip-close",onClick:tc(ne,["stop"])},"×")):ce("",!0),J("div",Yc,[J("span",Jc,fe(e.metric.title),1),e.metric.unit?(V(),Y("span",Xc,fe(e.metric.unit),1)):ce("",!0)]),J("div",Qc,[_e[0]||(_e[0]=J("span",{class:"ss-tooltip-current-label"},"Current: ",-1)),J("span",Zc,fe(E.value),1)]),M.value?(V(),Y("div",ea,[J("span",null,"Min: "+fe(he(_n)(M.value.min,e.metric.unit)),1),J("span",null,"Max: "+fe(he(_n)(M.value.max,e.metric.unit)),1),J("span",null,"Avg: "+fe(he(_n)(M.value.avg,e.metric.unit)),1)])):ce("",!0),O.value?(V(),Y("div",ta,fe(O.value),1)):ce("",!0),e.history.length>0?(V(),Y("div",sa,[xe(Wc,{data:e.history,color:k.value},null,8,["data","color"])])):ce("",!0),e.history.length>0?(V(),Y("div",na," Last "+fe(Math.min(e.history.length,60))+" samples (~"+fe(Math.round(Math.min(e.history.length,60)*3/60))+" min) ",1)):ce("",!0)]),_e[1]||(_e[1]=J("div",{class:"ss-tooltip-arrow"},null,-1))],6)],8,["to"])):ce("",!0)],64))}}),ia=["data-ss-theme"],oa={class:"ss-bar-left"},la=["viewBox","innerHTML"],ca={class:"ss-group"},aa={key:0,class:"ss-group-sep"},ua=["data-ss-theme","title"],fa={key:0,class:"ss-toggle-summary",style:{display:"flex"}},da={key:1,class:"ss-value ss-green"},ha={key:1,class:"ss-toggle-label",style:{color:"#737373"}},pa={class:"ss-toggle-arrow"},_i="admin:stats-bar",ga=hs({__name:"StatsBar",props:{debugEndpoint:{default:"/admin/api/debug"},baseUrl:{default:""},endpoint:{default:"/admin/api/server-stats"},channelName:{default:"admin/server-stats"},authToken:{},pollInterval:{default:3e3},className:{},debugPanelOpen:{type:Boolean,default:!1}},emits:["openDebugPanel","connectionChange"],setup(e,{emit:t}){const s=e,n=t,{stats:r,history:i,isStale:o,isUnauthorized:l,isConnected:a}=xc({baseUrl:s.baseUrl,endpoint:s.endpoint,channelName:s.channelName,authToken:s.authToken,pollInterval:s.pollInterval});nt(a,H=>{n("connectionChange",H)});const{features:d}=Hc({baseUrl:s.baseUrl,debugEndpoint:s.debugEndpoint,authToken:s.authToken}),{theme:f}=Lc(),h=se(!0),v=se(null);ut(()=>{h.value=localStorage.getItem(_i)!=="hidden";const H=v.value;if(H){const q=K=>{Math.abs(K.deltaX)>Math.abs(K.deltaY)||(K.preventDefault(),H.scrollLeft+=K.deltaY)};H.addEventListener("wheel",q,{passive:!1}),Ut(()=>H.removeEventListener("wheel",q))}});function _(){h.value=!h.value,localStorage.setItem(_i,h.value?"visible":"hidden")}nt(l,H=>{H&&(h.value=!1)});const C=ie(()=>r.value?Fc(r.value):Ic(d.value)),E=ie(()=>{const H=dc();return Array.from(H.entries()).filter(([q])=>C.value.has(q)).map(([q,K])=>({name:q,metrics:K}))});function A(H){return H?i[H]||[]:[]}const D=ie(()=>r.value?`${r.value.cpuPercent.toFixed(0)}%`:"..."),O=ie(()=>r.value?r.value.memHeapUsed!==void 0?Math.round(r.value.memHeapUsed/(1024*1024))+"M":"-":"..."),k=ie(()=>r.value?r.value.redisOk?"✓":"✗":"..."),M=ie(()=>f.value);return(H,q)=>(V(),Y(ye,null,[he(l)?ce("",!0):(V(),Y("div",{key:0,id:"ss-bar",class:Ce(["ss-bar",{"ss-hidden":!h.value}]),"data-ss-theme":M.value},[J("div",oa,[he(d).tracing||C.value.has("redis")||C.value.has("queue")?(V(),Y("button",{key:0,type:"button",class:Ce(["ss-dbg-btn",{"ss-dbg-active":e.debugPanelOpen}]),title:"Toggle debug panel",id:"ss-dbg-wrench",onClick:q[0]||(q[0]=K=>n("openDebugPanel"))},[(V(),Y("svg",{width:"14",height:"14",viewBox:he(xi).wrench.viewBox,fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:he(xi).wrench.elements.join("")},null,8,la))],2)):ce("",!0),J("div",{class:Ce(["ss-dot",{"ss-stale":he(o)}])},null,2)]),J("div",{ref_key:"scrollRef",ref:v,id:"ss-bar-scroll",class:"ss-bar-scroll"},[(V(!0),Y(ye,null,_r(E.value,(K,ne)=>(V(),Y(ye,{key:K.name},[J("div",ca,[(V(!0),Y(ye,null,_r(K.metrics,te=>(V(),hn(ra,{key:te.id,metric:te,stats:he(r),history:A(te.historyKey)},null,8,["metric","stats","history"]))),128))]),ne<E.value.length-1?(V(),Y("div",aa)):ce("",!0)],64))),128))],512)],10,ia)),he(l)?ce("",!0):(V(),Y("button",{key:1,type:"button",class:Ce(["ss-toggle",h.value?"ss-visible":"ss-collapsed"]),"data-ss-theme":M.value,title:h.value?"Hide stats bar":"Show stats bar",onClick:_},[!h.value&&he(r)?(V(),Y("span",fa,[C.value.has("process")?(V(),Y("span",{key:0,class:Ce(["ss-value",he(r).cpuPercent>80?"ss-red":he(r).cpuPercent>50?"ss-amber":"ss-green"])},fe(D.value),3)):ce("",!0),C.value.has("process")?(V(),Y("span",da,fe(O.value),1)):ce("",!0),C.value.has("redis")&&he(r)?.redisOk!==void 0?(V(),Y("span",{key:2,class:Ce(["ss-value",he(r)?.redisOk?"ss-green":"ss-red"])},fe(k.value),3)):ce("",!0)])):ce("",!0),h.value?(V(),Y("span",ha,"hide stats")):ce("",!0),J("span",pa,fe(h.value?"▼":"▲"),1)],10,ua))],64))}});function ma(e){const t=document.getElementById(e);return t?JSON.parse(t.textContent||"{}"):{}}const $e=ma("ss-bar-config");function ya(){if(window.__ssDebugPanel)return!0;const e=document.querySelector('script[type="text/plain"][data-ss-deferred="debug-panel"]');if(!e)return console.error("[server-stats] Deferred debug panel script not found"),!1;try{const t=document.createElement("script");t.textContent=e.textContent,document.head.appendChild(t)}catch(t){return console.error("[server-stats] Debug panel script evaluation failed:",t),!1}return window.__ssDebugPanel?!0:(console.error("[server-stats] Debug panel failed to register after script evaluation"),!1)}function ba(){let e=document.getElementById("ss-dbg-deferred");if(!e){e=document.createElement("div"),e.id="ss-dbg-deferred";const t=document.getElementById("ss-bar");t?.parentNode?t.parentNode.insertBefore(e,t.nextSibling):document.body.appendChild(e)}return e}const va=hs({setup(){const e=se(!1),t=se(!1),s=se(!1),n=$e.showDebug?{debugEndpoint:$e.debugEndpoint,authToken:$e.authToken,dashboardPath:$e.dashboardPath}:void 0;function r(){e.value=!e.value}return $e.showDebug&&nt([e,t],([i,o])=>{if(i){if(s.value||(s.value=ya()),!window.__ssDebugPanel){console.error("[server-stats] Debug panel not available after load attempt");return}if(!n){console.error("[server-stats] Debug config is undefined");return}const l=ba();try{window.__ssDebugPanel.mount(l,n,o)}catch(a){console.error("[server-stats] Debug panel mount failed:",a)}}else{const l=document.getElementById("ss-dbg-deferred");if(window.__ssDebugPanel&&l)try{window.__ssDebugPanel.unmount(l)}catch(a){console.error("[server-stats] Debug panel unmount failed:",a)}}},{flush:"post"}),()=>Ol(ga,{endpoint:$e.endpoint,pollInterval:$e.pollInterval,channelName:$e.channelName,authToken:$e.authToken,debugEndpoint:$e.debugEndpoint,debugPanelOpen:e.value,onOpenDebugPanel:$e.showDebug?r:void 0,onConnectionChange:i=>{t.value=i}})}}),wi=document.getElementById("ss-bar");wi&&rc(va).mount(wi)})();
|
|
@@ -1,4 +1,36 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ResolvedServerStatsConfig } from '../types.js';
|
|
2
|
+
/** Minimal interface for the Edge.js engine used in the plugin. */
|
|
3
|
+
interface EdgeEngine {
|
|
4
|
+
mount(name: string, path: string): void;
|
|
5
|
+
compiler: unknown;
|
|
6
|
+
globals: Record<string, unknown>;
|
|
7
|
+
processor: unknown;
|
|
8
|
+
registerTag(tag: EdgeTagDefinition): void;
|
|
9
|
+
}
|
|
10
|
+
/** Minimal interface for an Edge tag definition. */
|
|
11
|
+
interface EdgeTagDefinition {
|
|
12
|
+
tagName: string;
|
|
13
|
+
block: boolean;
|
|
14
|
+
seekable: boolean;
|
|
15
|
+
compile(parser: EdgeParser, buffer: EdgeBuffer, token: EdgeToken): void;
|
|
16
|
+
}
|
|
17
|
+
/** Minimal interface for the Edge tag compiler parser. */
|
|
18
|
+
interface EdgeParser {
|
|
19
|
+
}
|
|
20
|
+
/** Minimal interface for the Edge tag compiler buffer. */
|
|
21
|
+
interface EdgeBuffer {
|
|
22
|
+
writeStatement(statement: string, filename: string, line: number): void;
|
|
23
|
+
outputExpression(expression: string, filename: string, line: number, escape: boolean): void;
|
|
24
|
+
}
|
|
25
|
+
/** Minimal interface for the Edge tag compiler token. */
|
|
26
|
+
interface EdgeToken {
|
|
27
|
+
filename: string;
|
|
28
|
+
loc: {
|
|
29
|
+
start: {
|
|
30
|
+
line: number;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}
|
|
2
34
|
/**
|
|
3
35
|
* Edge plugin that registers the `@serverStats()` tag.
|
|
4
36
|
*
|
|
@@ -18,5 +50,6 @@ import type { ServerStatsConfig } from '../types.js';
|
|
|
18
50
|
* @serverStats()
|
|
19
51
|
* ```
|
|
20
52
|
*/
|
|
21
|
-
export declare function edgePluginServerStats(config:
|
|
53
|
+
export declare function edgePluginServerStats(config: ResolvedServerStatsConfig): (edge: EdgeEngine) => void;
|
|
54
|
+
export {};
|
|
22
55
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/edge/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/edge/plugin.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAE5D,mEAAmE;AACnE,UAAU,UAAU;IAClB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAC1C;AAED,oDAAoD;AACpD,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CACxE;AAED,0DAA0D;AAC1D,UAAU,UAAU;CAEnB;AAED,0DAA0D;AAC1D,UAAU,UAAU;IAClB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACvE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;CAC5F;AAED,yDAAyD;AACzD,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE;QAAE,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CACjC;AAKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,yBAAyB,IAC7D,MAAM,UAAU,UAwFzB"}
|
package/dist/src/edge/plugin.js
CHANGED
|
@@ -2,6 +2,7 @@ import { readFileSync } from 'node:fs';
|
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { Template } from 'edge.js';
|
|
5
|
+
import { log } from '../utils/logger.js';
|
|
5
6
|
import { loadTransmitClient } from '../utils/transmit_client.js';
|
|
6
7
|
const DIR = dirname(fileURLToPath(import.meta.url));
|
|
7
8
|
const read = (rel) => readFileSync(join(DIR, rel), 'utf-8');
|
|
@@ -29,81 +30,44 @@ export function edgePluginServerStats(config) {
|
|
|
29
30
|
// Mount Edge views under the `ss` disk (needed for @include resolution)
|
|
30
31
|
edge.mount('ss', join(DIR, 'views'));
|
|
31
32
|
// Read client assets once at boot
|
|
32
|
-
const
|
|
33
|
-
const
|
|
33
|
+
const componentsCss = read('../styles/components.css');
|
|
34
|
+
const utilitiesCss = read('../styles/utilities.css');
|
|
35
|
+
const css = componentsCss + '\n' + utilitiesCss + '\n' + read('../styles/stats-bar.css');
|
|
36
|
+
const renderer = config.devToolbar?.renderer || 'preact';
|
|
37
|
+
const clientDir = renderer === 'vue' ? 'client-vue' : 'client';
|
|
38
|
+
const js = read(clientDir + '/stats-bar.js');
|
|
34
39
|
const endpoint = typeof config.endpoint === 'string' ? config.endpoint : '/admin/api/server-stats';
|
|
35
40
|
const intervalMs = config.intervalMs || 3000;
|
|
36
41
|
const showDebug = !!config.devToolbar?.enabled;
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
{ id: 'err', label: 'ERR' },
|
|
57
|
-
{ id: 'conn', label: 'CONN' },
|
|
58
|
-
],
|
|
59
|
-
// DB
|
|
60
|
-
[{ id: 'db', label: 'DB' }],
|
|
61
|
-
// Redis
|
|
62
|
-
[
|
|
63
|
-
{ id: 'redis', label: 'REDIS' },
|
|
64
|
-
{ id: 'rmem', label: 'MEM' },
|
|
65
|
-
{ id: 'rkeys', label: 'KEYS' },
|
|
66
|
-
{ id: 'rhit', label: 'HIT' },
|
|
67
|
-
],
|
|
68
|
-
// Queue
|
|
69
|
-
[
|
|
70
|
-
{ id: 'q', label: 'Q' },
|
|
71
|
-
{ id: 'workers', label: 'WORKERS' },
|
|
72
|
-
],
|
|
73
|
-
// App
|
|
74
|
-
[
|
|
75
|
-
{ id: 'users', label: 'USERS' },
|
|
76
|
-
{ id: 'hooks', label: 'HOOKS' },
|
|
77
|
-
{ id: 'mail', label: 'MAIL' },
|
|
78
|
-
],
|
|
79
|
-
// Logs
|
|
80
|
-
[
|
|
81
|
-
{ id: 'logerr', label: 'LOG ERR' },
|
|
82
|
-
{ id: 'lograte', label: 'LOG/m' },
|
|
83
|
-
],
|
|
84
|
-
// Debug (conditional)
|
|
85
|
-
...(showDebug ? [[{ id: 'dbg-queries', label: 'QRY' }]] : []),
|
|
86
|
-
];
|
|
42
|
+
const channelName = config.channelName || 'admin/server-stats';
|
|
43
|
+
const barConfig = {
|
|
44
|
+
endpoint,
|
|
45
|
+
pollInterval: intervalMs,
|
|
46
|
+
channelName,
|
|
47
|
+
showDebug,
|
|
48
|
+
...(showDebug && {
|
|
49
|
+
debugEndpoint: config.devToolbar?.debugEndpoint || '/admin/api/debug',
|
|
50
|
+
dashboardPath: config.devToolbar?.dashboard
|
|
51
|
+
? config.devToolbar.dashboardPath || '/__stats'
|
|
52
|
+
: null,
|
|
53
|
+
}),
|
|
54
|
+
};
|
|
55
|
+
// Always try to load the Transmit client — both the stats bar and the
|
|
56
|
+
// debug panel use it for live (SSE) updates.
|
|
57
|
+
const transmitClient = loadTransmitClient(join(process.cwd(), 'package.json'));
|
|
58
|
+
if (!transmitClient) {
|
|
59
|
+
log.info('@adonisjs/transmit-client not found — will use polling');
|
|
60
|
+
}
|
|
87
61
|
const state = {
|
|
88
62
|
css,
|
|
89
63
|
js,
|
|
90
|
-
|
|
91
|
-
intervalMs,
|
|
64
|
+
barConfig,
|
|
92
65
|
showDebug,
|
|
93
|
-
|
|
66
|
+
transmitClient,
|
|
94
67
|
};
|
|
95
68
|
if (showDebug) {
|
|
96
|
-
|
|
97
|
-
state.
|
|
98
|
-
state.debugJs = read('client/debug-panel.js');
|
|
99
|
-
state.debugEndpoint = debugEndpoint;
|
|
100
|
-
state.logsEndpoint = debugEndpoint + '/logs';
|
|
101
|
-
state.customPanes = config.devToolbar?.panes || [];
|
|
102
|
-
state.showTracing = !!config.devToolbar?.tracing;
|
|
103
|
-
state.dashboardPath = config.devToolbar?.dashboard
|
|
104
|
-
? config.devToolbar.dashboardPath || '/__stats'
|
|
105
|
-
: null;
|
|
106
|
-
state.transmitClient = loadTransmitClient(join(process.cwd(), 'package.json'));
|
|
69
|
+
state.debugCss = read('../styles/debug-panel.css');
|
|
70
|
+
state.debugDeferredJs = read(clientDir + '/debug-panel-deferred.js');
|
|
107
71
|
}
|
|
108
72
|
// Pre-render via Template directly — bypasses edge.createRenderer() which
|
|
109
73
|
// would re-run #executePlugins and cause infinite recursion.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config passed to the stats bar entry via `#ss-bar-config` script tag.
|
|
3
|
+
*/
|
|
4
|
+
export interface EdgeBarConfig {
|
|
5
|
+
endpoint?: string;
|
|
6
|
+
pollInterval?: number;
|
|
7
|
+
channelName?: string;
|
|
8
|
+
authToken?: string;
|
|
9
|
+
showDebug?: boolean;
|
|
10
|
+
debugEndpoint?: string;
|
|
11
|
+
dashboardPath?: string | null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Config passed to the debug panel entry via `#ss-dbg-config` script tag.
|
|
15
|
+
*/
|
|
16
|
+
export interface EdgeDebugConfig {
|
|
17
|
+
debugEndpoint?: string;
|
|
18
|
+
authToken?: string;
|
|
19
|
+
dashboardPath?: string | null;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Config passed to the dashboard entry via `#ss-dash-config` script tag.
|
|
23
|
+
*/
|
|
24
|
+
export interface EdgeDashConfig {
|
|
25
|
+
baseUrl?: string;
|
|
26
|
+
dashboardEndpoint?: string;
|
|
27
|
+
debugEndpoint?: string;
|
|
28
|
+
authToken?: string;
|
|
29
|
+
backUrl?: string;
|
|
30
|
+
channelName?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The deferred debug panel entry registers itself onto `window.__ssDebugPanel`.
|
|
34
|
+
* The slim stats-bar entry evaluates the inert `<script type="text/plain">`
|
|
35
|
+
* on first use and then calls these helpers to mount/unmount the panel.
|
|
36
|
+
*/
|
|
37
|
+
export interface DeferredDebugPanel {
|
|
38
|
+
mount(container: HTMLElement, config: EdgeDebugConfig, isLive: boolean): void;
|
|
39
|
+
unmount(container: HTMLElement): void;
|
|
40
|
+
}
|
|
41
|
+
declare global {
|
|
42
|
+
interface Window {
|
|
43
|
+
__ssDebugPanel?: DeferredDebugPanel;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/edge/types.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAMD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7E,OAAO,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;CACtC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,cAAc,CAAC,EAAE,kBAAkB,CAAA;KACpC;CACF"}
|