@hot-updater/console 1.0.0-rc.39 → 1.0.0-rc.40
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/.output/nitro.json +1 -1
- package/.output/public/assets/{EventDetails-BUTZTAVo.js → EventDetails-3DgVjwDn.js} +1 -1
- package/.output/public/assets/{InsightsInfo-B8i-PPsH.js → InsightsInfo-NUuLFYqg.js} +1 -1
- package/.output/public/assets/{InsightsPageHeader-CASeYum3.js → InsightsPageHeader-DqCp0vf7.js} +1 -1
- package/.output/public/assets/{index-YSc3HCcR.js → index-B7BSdp0k.js} +2 -2
- package/.output/public/assets/insights-CevVB_8E.js +2 -0
- package/.output/public/assets/insights-DMH-zhbe.js +42 -0
- package/.output/public/assets/insights_.distribution-B9MOEnzZ.js +2 -0
- package/.output/public/assets/insights_.distribution-O73SKvoa.js +1 -0
- package/.output/public/assets/{installations-C-QP0sM1.js → installations-DtZj5jk2.js} +1 -1
- package/.output/public/assets/{installations-yQkxp5fm.js → installations-LJBhFDEM.js} +2 -2
- package/.output/public/assets/{preload-helper-DuV6lz46.js → preload-helper-D9SUwQT7.js} +1 -1
- package/.output/public/assets/{routes-DuBSi7uM.js → routes-CJSxovHS.js} +1 -1
- package/.output/public/assets/routes-DyZCr794.js +2 -0
- package/.output/public/assets/styles-DwA6mhnh.css +2 -0
- package/.output/server/{__23tanstack-start-server-fn-resolver-DNbgEvfb.mjs → __23tanstack-start-server-fn-resolver-CUp7Too4.mjs} +36 -36
- package/.output/server/_ssr/{ConsoleFeatureUnavailable-BCGWklf8.mjs → ConsoleFeatureUnavailable-BxaV7ca0.mjs} +5 -5
- package/.output/server/_ssr/{EventDetails-vtXoqSGS.mjs → EventDetails-B5HHZsCk.mjs} +7 -7
- package/.output/server/_ssr/{InsightsInfo-B0AtaDnr.mjs → InsightsInfo-C7K_HKHZ.mjs} +2 -2
- package/.output/server/_ssr/{InsightsPageHeader-BryzBlT8.mjs → InsightsPageHeader-BPaYzzkg.mjs} +18 -7
- package/.output/server/_ssr/{NotFoundPage-xK1bhpoZ.mjs → NotFoundPage-CyBONH8d.mjs} +2 -2
- package/.output/server/_ssr/{alert-dialog-Cc9d0p8Y.mjs → alert-dialog-BsqgyNOZ.mjs} +1 -1
- package/.output/server/_ssr/{api-keys-C2jqeEZ_.mjs → api-keys-CY1d8bCZ.mjs} +2 -2
- package/.output/server/_ssr/{api-keys-DnKkFZ3T.mjs → api-keys-D8R-eRJ-.mjs} +8 -8
- package/.output/server/_ssr/{api-keys-rpc-BJ0MKu1e.mjs → api-keys-rpc-CC1ERVtk.mjs} +3 -3
- package/.output/server/_ssr/{api-Bz1UGqdn.mjs → api-otC0m2Cl.mjs} +3 -3
- package/.output/server/_ssr/{api-rpc-B9mAeGyS.mjs → api-rpc-C99iexLk.mjs} +4 -4
- package/.output/server/_ssr/{auth-rpc-Bs4tYGIg.mjs → auth-rpc-PABg7kHk.mjs} +4 -4
- package/.output/server/_ssr/{auth.server-CcTNWmd4.mjs → auth.server-8-IRXBc-.mjs} +2 -2
- package/.output/server/_ssr/{card-GK-VihZc.mjs → card-ijGSudc_.mjs} +1 -1
- package/.output/server/_ssr/{config.server-DaeqzKiu.mjs → config.server-08RES1G-.mjs} +3 -3
- package/.output/server/_ssr/{console-access-CSVqeikY.mjs → console-access-D0bQJ9tx.mjs} +2 -2
- package/.output/server/_ssr/{console-features-api-CuukSjL8.mjs → console-features-api-BRGAxAgc.mjs} +3 -3
- package/.output/server/_ssr/{console-features-rpc-Dxv_D020.mjs → console-features-rpc-845alOXy.mjs} +3 -3
- package/.output/server/_ssr/{dialog-Vjm_bDw9.mjs → dialog-BnfVyv4I.mjs} +1 -1
- package/.output/server/_ssr/{empty-DeVHKygf.mjs → empty-CnGZqF1a.mjs} +2 -2
- package/.output/server/_ssr/{failureReports-CRYHdQBQ.mjs → failureReports-_trbWCVo.mjs} +2 -2
- package/.output/server/_ssr/{field-CcbQSAiS.mjs → field-CysUuRJx.mjs} +2 -2
- package/.output/server/_ssr/{input-group-D7oZhqZP.mjs → input-group-C44twsSf.mjs} +1 -1
- package/.output/server/_ssr/{insights-C2_kuG7Z.mjs → insights-Br6JnctH.mjs} +2 -2
- package/.output/server/_ssr/{insights-DFBjq_u1.mjs → insights-CgRV7dlP.mjs} +134 -125
- package/.output/server/_ssr/{insights-CdkhyQHH.mjs → insights-CrrlG-bz.mjs} +5 -5
- package/.output/server/_ssr/{insights-api-CBBcHIUP.mjs → insights-api-MpLvDjmC.mjs} +5 -5
- package/.output/server/_ssr/{insights-errors-F-7hOApm.mjs → insights-errors-Cy03daYs.mjs} +2 -2
- package/.output/server/_ssr/{insights-failures-BZaGNNij.mjs → insights-failures-HHiiIbag.mjs} +4 -5
- package/.output/server/_ssr/{insights-failures-rpc-CTf5QF7O.mjs → insights-failures-rpc-CGiDJbg-.mjs} +8 -8
- package/.output/server/_ssr/{insights-recovery-rpc-CPKwBt4V.mjs → insights-recovery-rpc-Bul_1cyL.mjs} +3 -3
- package/.output/server/_ssr/{insights-rpc-DjhnYd2B.mjs → insights-rpc-D24DKKlx.mjs} +3 -3
- package/.output/server/_ssr/{insights-usage-rpc-CLHRgGDT.mjs → insights-usage-rpc-iG8wRo4G.mjs} +3 -3
- package/.output/server/_ssr/{insights-usage-rpc-CLyldyrz.mjs → insights-usage-rpc-tVCHkzGH.mjs} +3 -3
- package/.output/server/_ssr/{insights_.distribution-DXCwHGBj.mjs → insights_.distribution-Ckc_O360.mjs} +5 -5
- package/.output/server/_ssr/{insights_.distribution-WDmsXtQl.mjs → insights_.distribution-DbO4X6X6.mjs} +2 -2
- package/.output/server/_ssr/{insights_.distribution-Buu3dsat.mjs → insights_.distribution-DsujaomV.mjs} +13 -13
- package/.output/server/_ssr/{installations-BiZY4zjE.mjs → installations-DV3sNoM5.mjs} +10 -10
- package/.output/server/_ssr/{installations-Dfe3WTAY.mjs → installations-DkJq_y8i.mjs} +2 -2
- package/.output/server/_ssr/{installations-sR2BlZxi.mjs → installations-F6vBSPUU.mjs} +4 -4
- package/.output/server/_ssr/{release-adoption-rpc-DVhlhHRR.mjs → release-adoption-rpc-h_r3KQsi.mjs} +5 -5
- package/.output/server/_ssr/{router-HumF5rJs.mjs → router-C_IshN2d.mjs} +13 -13
- package/.output/server/_ssr/{routes-kDK03EWa.mjs → routes-BEHlOXKL.mjs} +33 -22
- package/.output/server/_ssr/{routes-CN0fvuLB.mjs → routes-DeSps20R.mjs} +14 -10
- package/.output/server/_ssr/{select-ycdfR07Y.mjs → select-BL10bGzk.mjs} +1 -1
- package/.output/server/_ssr/{server-CyAnx61_.mjs → server-DIIIVgcN.mjs} +3 -3
- package/.output/server/_ssr/{sidebar-B2SHpuig.mjs → sidebar-DLus-ndm.mjs} +2 -2
- package/.output/server/_ssr/ssr.mjs +1 -1
- package/.output/server/_ssr/{table-COXYXU49.mjs → table-U7InIZlH.mjs} +1 -1
- package/.output/server/_ssr/{updateFailures-BP-A8Ppr.mjs → updateFailures-BLs3R7j0.mjs} +2 -2
- package/.output/server/{_tanstack-start-manifest_v-DcB4oGQp.mjs → _tanstack-start-manifest_v-VxUXUIhM.mjs} +25 -25
- package/.output/server/index.mjs +113 -113
- package/package.json +7 -7
- package/src/components/features/insights/BuiltinBundle.tsx +18 -3
- package/src/components/features/insights/FailureReports.tsx +15 -2
- package/src/components/features/insights/ReleaseActivity.tsx +1 -1
- package/src/components/features/insights/UpdateFailures.tsx +103 -104
- package/src/components/features/releases/ReleaseEditorSheet.tsx +2 -2
- package/src/lib/insights-failures.ts +1 -11
- package/src/routes/index.tsx +33 -15
- package/src/routes/insights.tsx +1 -1
- package/src/routes/insights_.distribution.tsx +3 -3
- package/.output/public/assets/insights-BT0ER2ff.js +0 -2
- package/.output/public/assets/insights-DPY9akyx.js +0 -42
- package/.output/public/assets/insights_.distribution-NyB0_bbh.js +0 -2
- package/.output/public/assets/insights_.distribution-jH_7sKdg.js +0 -1
- package/.output/public/assets/routes-DQWmO9Ow.js +0 -2
- package/.output/public/assets/styles-Cm2ONGCt.css +0 -2
|
@@ -2,32 +2,32 @@ import { i as __toESM } from "../_runtime.mjs";
|
|
|
2
2
|
import { u as createServerFn } from "./createMiddleware-BdBf_ezN.mjs";
|
|
3
3
|
import { C as ScrollAreaRoot, S as ScrollAreaViewport, _ as ComboboxInput$1, b as ScrollAreaThumb, c as ComboboxItemIndicator, d as ComboboxItem$1, f as ComboboxPopup, g as ComboboxClear$1, h as ComboboxList$1, ht as require_react, l as ComboboxRoot, m as ComboboxPortal, mt as require_jsx_runtime, p as ComboboxPositioner, u as ComboboxEmpty$1, v as ComboboxTrigger$1, x as ScrollAreaScrollbar, y as ScrollAreaCorner } from "../_libs/@base-ui/react+[...].mjs";
|
|
4
4
|
import { A as Copy, C as List, H as ArrowUpRight, I as ChevronRight, R as ChevronDown, U as ArrowRight, f as RotateCw, m as RefreshCw, n as Undo2, p as RotateCcw, r as TriangleAlert, t as X, z as Check } from "../_libs/lucide-react.mjs";
|
|
5
|
-
import { A as createSsrRpc, C as Skeleton, O as buttonVariants, a as SheetContent, c as SheetTitle, i as Sheet, k as cn, l as SheetTrigger, n as Input, o as SheetDescription, r as Separator$1, s as SheetHeader, t as Button$1 } from "./sidebar-
|
|
6
|
-
import { t as consoleAccess } from "./console-access-
|
|
5
|
+
import { A as createSsrRpc, C as Skeleton, O as buttonVariants, a as SheetContent, c as SheetTitle, i as Sheet, k as cn, l as SheetTrigger, n as Input, o as SheetDescription, r as Separator$1, s as SheetHeader, t as Button$1 } from "./sidebar-DLus-ndm.mjs";
|
|
6
|
+
import { t as consoleAccess } from "./console-access-D0bQJ9tx.mjs";
|
|
7
7
|
import { h as Link } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
8
8
|
import { a as useQueries, i as useQuery, s as useQueryClient } from "../_libs/tanstack__react-query.mjs";
|
|
9
|
-
import { a as EmptyTitle, i as EmptyHeader, n as EmptyContent, r as EmptyDescription, t as Empty } from "./empty-
|
|
10
|
-
import { a as CardHeader, i as CardFooter, n as CardContent, o as CardTitle, r as CardDescription, t as Card } from "./card-
|
|
11
|
-
import { a as Badge, i as AlertTitle, l as FieldGroup, o as Field, r as AlertDescription, t as Alert, u as FieldLabel } from "./field-
|
|
12
|
-
import { a as AlertDialogDescription, i as AlertDialogContent, l as AlertDialogTitle, n as AlertDialogAction, o as AlertDialogFooter, r as AlertDialogCancel, s as AlertDialogHeader, t as AlertDialog$1 } from "./alert-dialog-
|
|
13
|
-
import { a as TableHeader, i as TableHead, n as TableBody, o as TableRow, r as TableCell, t as Table } from "./table-
|
|
9
|
+
import { a as EmptyTitle, i as EmptyHeader, n as EmptyContent, r as EmptyDescription, t as Empty } from "./empty-CnGZqF1a.mjs";
|
|
10
|
+
import { a as CardHeader, i as CardFooter, n as CardContent, o as CardTitle, r as CardDescription, t as Card } from "./card-ijGSudc_.mjs";
|
|
11
|
+
import { a as Badge, i as AlertTitle, l as FieldGroup, o as Field, r as AlertDescription, t as Alert, u as FieldLabel } from "./field-CysUuRJx.mjs";
|
|
12
|
+
import { a as AlertDialogDescription, i as AlertDialogContent, l as AlertDialogTitle, n as AlertDialogAction, o as AlertDialogFooter, r as AlertDialogCancel, s as AlertDialogHeader, t as AlertDialog$1 } from "./alert-dialog-BsqgyNOZ.mjs";
|
|
13
|
+
import { a as TableHeader, i as TableHead, n as TableBody, o as TableRow, r as TableCell, t as Table } from "./table-U7InIZlH.mjs";
|
|
14
14
|
import { n as toast } from "../_libs/sonner.mjs";
|
|
15
15
|
import { r as recoveryWindows, t as insightsPeriodEnd } from "./insights-recovery-Dpk6Mfb9.mjs";
|
|
16
|
-
import { a as failureReasonLabel,
|
|
17
|
-
import { t as groupFailureReports } from "./insights-errors-
|
|
16
|
+
import { a as failureReasonLabel, i as failureRate, o as failureStageLabel, r as failureDetailParts, s as formatRate, t as checkFailureRate } from "./insights-failures-HHiiIbag.mjs";
|
|
17
|
+
import { t as groupFailureReports } from "./insights-errors-Cy03daYs.mjs";
|
|
18
18
|
import { n as usageMetrics } from "./insights-usage-CLUWjUFz.mjs";
|
|
19
19
|
import { a as readBundleEventsInput, i as readAdoptionReleasesInput, n as crashRateOf, o as recommendsRollback, r as readAdoptionReleaseInput, t as CRASH_RATE_THRESHOLD } from "./release-adoption-NO2DVJwF.mjs";
|
|
20
|
-
import { i as useFailureReportsQuery, l as useInsightsRetention, r as keepsTwelveMonths, t as DEFAULT_INSIGHTS_RETENTION, u as useUpdateFailuresQuery } from "./insights-api-
|
|
21
|
-
import { r as comparedBundleIds, t as InsightsInfo } from "./InsightsInfo-
|
|
22
|
-
import { t as Route } from "./insights-
|
|
23
|
-
import { a as SelectGroup, c as SelectValue, i as SelectContent, n as PlatformIcon, o as SelectItem, r as Select$1, s as SelectTrigger, t as BundleIdDisplay } from "./select-
|
|
24
|
-
import { i as useChannelsQuery, l as usePreflightReleaseMutation, m as useUpdateReleaseMutation } from "./api-
|
|
25
|
-
import { a as InputGroupInput, i as InputGroupButton, n as InputGroup, r as InputGroupAddon } from "./input-group-
|
|
26
|
-
import { n as getAppUsageReportRpc, t as Progress$1 } from "./insights-usage-rpc-
|
|
27
|
-
import { c as TabsList, i as InsightsPeriodSelector, l as TabsTrigger, n as InsightsErrorAlert, o as Tabs$1, r as InsightsPageHeader, s as TabsContent, u as UsagePeriodSelector } from "./InsightsPageHeader-
|
|
28
|
-
import { i as HttpResponseBody, n as EventTimestamp, o as useInsightsTimeFormat, t as EventBundleTransition } from "./EventDetails-
|
|
20
|
+
import { i as useFailureReportsQuery, l as useInsightsRetention, r as keepsTwelveMonths, t as DEFAULT_INSIGHTS_RETENTION, u as useUpdateFailuresQuery } from "./insights-api-MpLvDjmC.mjs";
|
|
21
|
+
import { r as comparedBundleIds, t as InsightsInfo } from "./InsightsInfo-C7K_HKHZ.mjs";
|
|
22
|
+
import { t as Route } from "./insights-CrrlG-bz.mjs";
|
|
23
|
+
import { a as SelectGroup, c as SelectValue, i as SelectContent, n as PlatformIcon, o as SelectItem, r as Select$1, s as SelectTrigger, t as BundleIdDisplay } from "./select-BL10bGzk.mjs";
|
|
24
|
+
import { i as useChannelsQuery, l as usePreflightReleaseMutation, m as useUpdateReleaseMutation } from "./api-otC0m2Cl.mjs";
|
|
25
|
+
import { a as InputGroupInput, i as InputGroupButton, n as InputGroup, r as InputGroupAddon } from "./input-group-C44twsSf.mjs";
|
|
26
|
+
import { n as getAppUsageReportRpc, t as Progress$1 } from "./insights-usage-rpc-tVCHkzGH.mjs";
|
|
27
|
+
import { c as TabsList, i as InsightsPeriodSelector, l as TabsTrigger, n as InsightsErrorAlert, o as Tabs$1, r as InsightsPageHeader, s as TabsContent, u as UsagePeriodSelector } from "./InsightsPageHeader-BPaYzzkg.mjs";
|
|
28
|
+
import { i as HttpResponseBody, n as EventTimestamp, o as useInsightsTimeFormat, t as EventBundleTransition } from "./EventDetails-B5HHZsCk.mjs";
|
|
29
29
|
import { a as CartesianGrid, i as Line, l as ResponsiveContainer, n as YAxis, o as ReferenceLine, r as XAxis, s as Tooltip, t as LineChart } from "../_libs/recharts+[...].mjs";
|
|
30
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-
|
|
30
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-CgRV7dlP.js
|
|
31
31
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
32
32
|
var import_jsx_runtime = require_jsx_runtime();
|
|
33
33
|
var THEMES = {
|
|
@@ -522,7 +522,7 @@ function FailureDetail({ group }) {
|
|
|
522
522
|
]
|
|
523
523
|
}),
|
|
524
524
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", {
|
|
525
|
-
className: "
|
|
525
|
+
className: cn("text-sm leading-relaxed whitespace-pre-wrap wrap-anywhere", failure.errorMessage ? "font-mono" : "text-muted-foreground"),
|
|
526
526
|
children: messageOf(event)
|
|
527
527
|
}),
|
|
528
528
|
!failure.errorMessage ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
@@ -738,7 +738,7 @@ function FailureReportsList({ pages, error, isPending, isFetching, hasNextPage,
|
|
|
738
738
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
739
739
|
className: "flex min-w-0 flex-col gap-1",
|
|
740
740
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
741
|
-
className: "line-clamp-2
|
|
741
|
+
className: cn("line-clamp-2 text-xs leading-relaxed wrap-anywhere", latest.failure?.errorMessage ? "font-mono" : "text-muted-foreground"),
|
|
742
742
|
children: messageOf(latest)
|
|
743
743
|
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
744
744
|
className: "text-xs font-normal text-muted-foreground",
|
|
@@ -1790,19 +1790,50 @@ function InsightsOverview({ input, chart, onChartChange, health, onReleasesChang
|
|
|
1790
1790
|
});
|
|
1791
1791
|
}
|
|
1792
1792
|
var share = (events, total) => total === 0 ? "—" : `${(events / total * 100).toFixed(1)}%`;
|
|
1793
|
-
|
|
1794
|
-
|
|
1793
|
+
/**
|
|
1794
|
+
* One kind of failure: its rate as the headline, then how many failures and
|
|
1795
|
+
* installations it holds.
|
|
1796
|
+
*/
|
|
1797
|
+
function FailureSummary({ id, title, info, rate, of, failures, installations, previous, children }) {
|
|
1798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", {
|
|
1799
|
+
"aria-labelledby": id,
|
|
1795
1800
|
className: "flex min-w-0 flex-col gap-1",
|
|
1796
|
-
children: [
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
children:
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1801
|
+
children: [
|
|
1802
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("h3", {
|
|
1803
|
+
id,
|
|
1804
|
+
className: "flex min-h-11 items-center gap-1 text-sm font-medium sm:min-h-7",
|
|
1805
|
+
children: [title, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(InsightsInfo, {
|
|
1806
|
+
label: `About ${title.toLowerCase()}`,
|
|
1807
|
+
children: info
|
|
1808
|
+
})]
|
|
1809
|
+
}),
|
|
1810
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
1811
|
+
className: "text-3xl font-semibold tracking-tight tabular-nums",
|
|
1812
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Rate, { value: rate })
|
|
1813
|
+
}),
|
|
1814
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
1815
|
+
className: "text-xs text-muted-foreground",
|
|
1816
|
+
children: of
|
|
1817
|
+
}),
|
|
1818
|
+
previous ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RateChange, {
|
|
1819
|
+
value: rate,
|
|
1820
|
+
previous: previous.rate,
|
|
1821
|
+
complete: previous.complete
|
|
1822
|
+
}) : null,
|
|
1823
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
|
|
1824
|
+
className: "mt-2 text-sm text-muted-foreground tabular-nums",
|
|
1825
|
+
children: [
|
|
1826
|
+
failures.toLocaleString(),
|
|
1827
|
+
" ",
|
|
1828
|
+
failures === 1 ? "failure" : "failures",
|
|
1829
|
+
" · ",
|
|
1830
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(EstimatedCount, { value: installations }),
|
|
1831
|
+
" ",
|
|
1832
|
+
installations === 1 ? "installation" : "installations"
|
|
1833
|
+
]
|
|
1834
|
+
}),
|
|
1804
1835
|
children
|
|
1805
|
-
|
|
1836
|
+
]
|
|
1806
1837
|
});
|
|
1807
1838
|
}
|
|
1808
1839
|
function Rate({ value }) {
|
|
@@ -1813,10 +1844,7 @@ function Rate({ value }) {
|
|
|
1813
1844
|
})] });
|
|
1814
1845
|
}
|
|
1815
1846
|
function RateChange({ value, previous, complete }) {
|
|
1816
|
-
if (!complete || value === null || previous === null) return
|
|
1817
|
-
className: "mt-1 block text-xs font-normal text-muted-foreground",
|
|
1818
|
-
children: "Previous period unavailable"
|
|
1819
|
-
});
|
|
1847
|
+
if (!complete || value === null || previous === null) return null;
|
|
1820
1848
|
const difference = (value - previous) * 100;
|
|
1821
1849
|
const rounded = Number(difference.toFixed(2));
|
|
1822
1850
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
@@ -1893,73 +1921,47 @@ function FailureRow({ failure, total }) {
|
|
|
1893
1921
|
function FailuresReport({ report, errors }) {
|
|
1894
1922
|
const breakdown = report.breakdown ?? [];
|
|
1895
1923
|
const total = breakdown.reduce((sum, { events }) => sum + events, 0);
|
|
1924
|
+
const unreasoned = breakdown.filter(({ reason }) => reason === "unknown").reduce((sum, { events }) => sum + events, 0);
|
|
1925
|
+
const patchAttempts = report.patchDownloads + report.patchFallbacks;
|
|
1896
1926
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
1897
1927
|
className: "flex flex-col gap-8",
|
|
1898
1928
|
children: [
|
|
1899
1929
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
1900
|
-
className: cn("grid gap-6", report.checks && "
|
|
1901
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1930
|
+
className: cn("grid gap-6", report.checks && "sm:grid-cols-2"),
|
|
1931
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(FailureSummary, {
|
|
1932
|
+
id: "download-install-failures",
|
|
1933
|
+
title: "Downloads & installs",
|
|
1934
|
+
info: "Failed downloads and installs ÷ those plus successful downloads.",
|
|
1935
|
+
rate: failureRate(report),
|
|
1936
|
+
of: "of update attempts failed",
|
|
1937
|
+
failures: report.failedUpdates,
|
|
1938
|
+
installations: report.failedInstallations,
|
|
1939
|
+
previous: report.previous && {
|
|
1940
|
+
rate: report.previous.attemptRate,
|
|
1941
|
+
complete: report.previous.complete
|
|
1942
|
+
},
|
|
1943
|
+
children: patchAttempts > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
|
|
1944
|
+
className: "text-sm text-muted-foreground tabular-nums",
|
|
1910
1945
|
children: [
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Metric, {
|
|
1917
|
-
label: "Attempt failure rate",
|
|
1918
|
-
attention: report.failedUpdates > 0,
|
|
1919
|
-
info: "Share of update attempts that failed: failures ÷ (failures + downloads).",
|
|
1920
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Rate, { value: failureRate(report) }), report.previous ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RateChange, {
|
|
1921
|
-
value: failureRate(report),
|
|
1922
|
-
previous: report.previous.attemptRate,
|
|
1923
|
-
complete: report.previous.complete
|
|
1924
|
-
}) : null]
|
|
1925
|
-
}),
|
|
1926
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
1927
|
-
label: "Failed installations",
|
|
1928
|
-
attention: report.failedInstallations > 0,
|
|
1929
|
-
info: "Installations with a failed download or install, estimated within about 3%.",
|
|
1930
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EstimatedCount, { value: report.failedInstallations })
|
|
1931
|
-
}),
|
|
1932
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
1933
|
-
label: "Patch fallback rate",
|
|
1934
|
-
info: "Share of patch downloads that fell back to full files.",
|
|
1935
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Rate, { value: patchFallbackRate(report) })
|
|
1936
|
-
})
|
|
1946
|
+
report.patchFallbacks.toLocaleString(),
|
|
1947
|
+
" of",
|
|
1948
|
+
" ",
|
|
1949
|
+
patchAttempts.toLocaleString(),
|
|
1950
|
+
" patch downloads fell back to the full archive"
|
|
1937
1951
|
]
|
|
1938
|
-
})
|
|
1939
|
-
}), report.checks ? /* @__PURE__ */ (0, import_jsx_runtime.
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
children: report.checks.failures.toLocaleString()
|
|
1952
|
-
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Metric, {
|
|
1953
|
-
label: "Check failure rate",
|
|
1954
|
-
attention: report.checks.failedInstallations > 0,
|
|
1955
|
-
info: "Installations whose update check failed ÷ active installations. Offline checks aren't reported.",
|
|
1956
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Rate, { value: checkFailureRate(report.checks) }), report.previous ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RateChange, {
|
|
1957
|
-
value: checkFailureRate(report.checks),
|
|
1958
|
-
previous: report.previous.checkRate,
|
|
1959
|
-
complete: report.previous.complete
|
|
1960
|
-
}) : null]
|
|
1961
|
-
})]
|
|
1962
|
-
})]
|
|
1952
|
+
}) : null
|
|
1953
|
+
}), report.checks ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FailureSummary, {
|
|
1954
|
+
id: "update-check-failures",
|
|
1955
|
+
title: "Update checks",
|
|
1956
|
+
info: "Installations whose update check failed ÷ active installations. A check that fails offline isn't reported.",
|
|
1957
|
+
rate: checkFailureRate(report.checks),
|
|
1958
|
+
of: "of active installations had a check fail",
|
|
1959
|
+
failures: report.checks.failures,
|
|
1960
|
+
installations: report.checks.failedInstallations,
|
|
1961
|
+
previous: report.previous && {
|
|
1962
|
+
rate: report.previous.checkRate,
|
|
1963
|
+
complete: report.previous.complete
|
|
1964
|
+
}
|
|
1963
1965
|
}) : null]
|
|
1964
1966
|
}),
|
|
1965
1967
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Separator$1, {}),
|
|
@@ -1967,33 +1969,40 @@ function FailuresReport({ report, errors }) {
|
|
|
1967
1969
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", {
|
|
1968
1970
|
"aria-labelledby": "failures-by-stage",
|
|
1969
1971
|
className: "flex flex-col gap-3",
|
|
1970
|
-
children: [
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1972
|
+
children: [
|
|
1973
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", {
|
|
1974
|
+
className: "text-sm font-medium",
|
|
1975
|
+
id: "failures-by-stage",
|
|
1976
|
+
children: "Failures by stage and reason"
|
|
1977
|
+
}),
|
|
1978
|
+
unreasoned * 2 > total ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
1979
|
+
className: "text-sm text-muted-foreground",
|
|
1980
|
+
children: "Most report no reason: an SDK that doesn't classify failures reports every failed check, offline ones included."
|
|
1981
|
+
}) : null,
|
|
1982
|
+
breakdown.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
1983
|
+
className: "text-sm text-muted-foreground",
|
|
1984
|
+
children: "No update failures in this period."
|
|
1985
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Table, {
|
|
1986
|
+
"aria-label": "Failures by stage and reason",
|
|
1987
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TableRow, {
|
|
1988
|
+
className: "[&>th]:px-2 sm:[&>th]:px-4",
|
|
1989
|
+
children: [
|
|
1990
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, { children: "Stage / reason" }),
|
|
1991
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, {
|
|
1992
|
+
className: "w-16 text-right sm:w-24",
|
|
1993
|
+
children: "Reports"
|
|
1994
|
+
}),
|
|
1995
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, {
|
|
1996
|
+
className: "w-16 text-right sm:w-24",
|
|
1997
|
+
children: "Share"
|
|
1998
|
+
})
|
|
1999
|
+
]
|
|
2000
|
+
}) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableBody, { children: breakdown.map((failure) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FailureRow, {
|
|
2001
|
+
failure,
|
|
2002
|
+
total
|
|
2003
|
+
}, `${failure.stage} ${failure.reason}`)) })]
|
|
2004
|
+
})
|
|
2005
|
+
]
|
|
1997
2006
|
})
|
|
1998
2007
|
]
|
|
1999
2008
|
});
|
|
@@ -2183,7 +2192,7 @@ function InsightsPage() {
|
|
|
2183
2192
|
const navigate = Route.useNavigate();
|
|
2184
2193
|
const retention = useInsightsRetention();
|
|
2185
2194
|
const usageWindow = search.window ?? "24h";
|
|
2186
|
-
const bundleWindow = search.bundleWindow ?? "
|
|
2195
|
+
const bundleWindow = search.bundleWindow ?? "24h";
|
|
2187
2196
|
const channel = search.channel ?? search.healthChannel ?? "production";
|
|
2188
2197
|
const scope = {
|
|
2189
2198
|
platform: search.platform ?? "all",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { f as lazyRouteComponent, p as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
2
|
-
import { r as requireConsoleFeature } from "./console-features-api-
|
|
3
|
-
import { a as validateInsightsSearch } from "./InsightsInfo-
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-
|
|
5
|
-
var $$splitComponentImporter = () => import("./insights-
|
|
6
|
-
var $$splitNotFoundComponentImporter = () => import("./insights-
|
|
2
|
+
import { r as requireConsoleFeature } from "./console-features-api-BRGAxAgc.mjs";
|
|
3
|
+
import { a as validateInsightsSearch } from "./InsightsInfo-C7K_HKHZ.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-CrrlG-bz.js
|
|
5
|
+
var $$splitComponentImporter = () => import("./insights-CgRV7dlP.mjs");
|
|
6
|
+
var $$splitNotFoundComponentImporter = () => import("./insights-Br6JnctH.mjs");
|
|
7
7
|
var Route = createFileRoute("/insights")({
|
|
8
8
|
beforeLoad: ({ context }) => requireConsoleFeature(context.queryClient, "insightsAnalytics"),
|
|
9
9
|
notFoundComponent: lazyRouteComponent($$splitNotFoundComponentImporter, "notFoundComponent"),
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { u as createServerFn } from "./createMiddleware-BdBf_ezN.mjs";
|
|
2
|
-
import { A as createSsrRpc } from "./sidebar-
|
|
3
|
-
import { t as consoleAccess } from "./console-access-
|
|
2
|
+
import { A as createSsrRpc } from "./sidebar-DLus-ndm.mjs";
|
|
3
|
+
import { t as consoleAccess } from "./console-access-D0bQJ9tx.mjs";
|
|
4
4
|
import { i as useQuery, t as useInfiniteQuery } from "../_libs/tanstack__react-query.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import { n as readFailureReportsInput } from "./insights-errors-
|
|
7
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-api-
|
|
5
|
+
import { c as readUpdateFailuresInput } from "./insights-failures-HHiiIbag.mjs";
|
|
6
|
+
import { n as readFailureReportsInput } from "./insights-errors-Cy03daYs.mjs";
|
|
7
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-api-MpLvDjmC.js
|
|
8
8
|
var getUpdateFailuresRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readUpdateFailuresInput).handler(createSsrRpc("0d1dacdd1e5ee6b100e5c142fb9af03602b6f2c6fe6af79312b36c223d7f8f97"));
|
|
9
9
|
var listFailureReportsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readFailureReportsInput).handler(createSsrRpc("b4388826a9b515fb4d2113270aa8ded1c50ba13d7f07ac2b268c41396e87d0a3"));
|
|
10
10
|
/** `insights()`'s defaults, for a server that does not report its periods. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-errors-
|
|
1
|
+
import { c as readUpdateFailuresInput } from "./insights-failures-HHiiIbag.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-errors-Cy03daYs.js
|
|
3
3
|
function readFailureReportsInput(input) {
|
|
4
4
|
readUpdateFailuresInput(input);
|
|
5
5
|
if (!Number.isSafeInteger(input.beforeReceivedAtMs) || input.beforeReceivedAtMs < 0 || input.cursor !== void 0 && (typeof input.cursor !== "string" || !input.cursor.length || input.cursor.length > 8192)) throw new Error("Invalid failure report range or cursor.");
|
package/.output/server/_ssr/{insights-failures-BZaGNNij.mjs → insights-failures-HHiiIbag.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as recoveryWindows } from "./insights-recovery-Dpk6Mfb9.mjs";
|
|
2
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-failures-
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-failures-HHiiIbag.js
|
|
3
3
|
function readUpdateFailuresInput(input) {
|
|
4
4
|
if (!input || input.platform !== "ios" && input.platform !== "android" || typeof input.channel !== "string" || !input.channel.trim() || input.channel.length > 1024 || input.releaseId !== void 0 && (typeof input.releaseId !== "string" || !input.releaseId.trim() || input.releaseId.length > 36) || (input.window === void 0 ? input.releaseId === void 0 : !Object.hasOwn(recoveryWindows, input.window))) throw new Error("Choose a platform, channel, and time window.");
|
|
5
5
|
return input;
|
|
@@ -9,8 +9,6 @@ function readUpdateFailuresInput(input) {
|
|
|
9
9
|
* over those plus download reports. Null without either.
|
|
10
10
|
*/
|
|
11
11
|
var failureRate = ({ failedUpdates, downloads }) => failedUpdates + downloads === 0 ? null : failedUpdates / (failedUpdates + downloads);
|
|
12
|
-
/** Of the downloads that tried a patch, the share that fell back to files or the archive. */
|
|
13
|
-
var patchFallbackRate = ({ patchDownloads, patchFallbacks }) => patchDownloads + patchFallbacks === 0 ? null : patchFallbacks / (patchDownloads + patchFallbacks);
|
|
14
12
|
/** Installations whose update check failed, over the active ones; estimates, so at most 100%. */
|
|
15
13
|
var checkFailureRate = ({ failedInstallations, activeInstallations }) => activeInstallations === 0 ? null : Math.min(1, failedInstallations / activeInstallations);
|
|
16
14
|
var formatRate = (rate) => rate === null ? "—" : `${(rate * 100).toFixed(2)}%`;
|
|
@@ -27,7 +25,8 @@ var REASONS = {
|
|
|
27
25
|
signature: "Signature",
|
|
28
26
|
patch: "Patch",
|
|
29
27
|
extract: "Extract",
|
|
30
|
-
storage: "Storage"
|
|
28
|
+
storage: "Storage",
|
|
29
|
+
unknown: "No reason reported"
|
|
31
30
|
};
|
|
32
31
|
var failureStageLabel = (stage) => STAGES[stage] ?? "Unknown stage";
|
|
33
32
|
var failureReasonLabel = (reason) => REASONS[reason] ?? "Unknown reason";
|
|
@@ -44,4 +43,4 @@ var describeFailure = (failure) => {
|
|
|
44
43
|
return [`${failureStageLabel(failure.stage)} failed: ${message}`, ...failureDetailParts(failure)].join(" · ");
|
|
45
44
|
};
|
|
46
45
|
//#endregion
|
|
47
|
-
export { failureReasonLabel as a,
|
|
46
|
+
export { failureReasonLabel as a, readUpdateFailuresInput as c, failureRate as i, describeFailure as n, failureStageLabel as o, failureDetailParts as r, formatRate as s, checkFailureRate as t };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { u as createServerFn } from "./createMiddleware-BdBf_ezN.mjs";
|
|
2
|
-
import { t as consoleAccess } from "./console-access-
|
|
2
|
+
import { t as consoleAccess } from "./console-access-D0bQJ9tx.mjs";
|
|
3
3
|
import { t as createServerRpc } from "./createServerRpc-B_y2lrwA.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { n as readFailureReportsInput } from "./insights-errors-
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-failures-rpc-
|
|
4
|
+
import { c as readUpdateFailuresInput } from "./insights-failures-HHiiIbag.mjs";
|
|
5
|
+
import { n as readFailureReportsInput } from "./insights-errors-Cy03daYs.mjs";
|
|
6
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-failures-rpc-CGiDJbg-.js
|
|
7
7
|
var getUpdateFailuresRpc_createServerFn_handler = createServerRpc({
|
|
8
8
|
id: "0d1dacdd1e5ee6b100e5c142fb9af03602b6f2c6fe6af79312b36c223d7f8f97",
|
|
9
9
|
name: "getUpdateFailuresRpc",
|
|
@@ -11,8 +11,8 @@ var getUpdateFailuresRpc_createServerFn_handler = createServerRpc({
|
|
|
11
11
|
}, (opts) => getUpdateFailuresRpc.__executeServer(opts));
|
|
12
12
|
var getUpdateFailuresRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readUpdateFailuresInput).handler(getUpdateFailuresRpc_createServerFn_handler, async ({ data }) => {
|
|
13
13
|
const [{ prepareConfig }, { getUpdateFailuresReport }, { requireFeature }] = await Promise.all([
|
|
14
|
-
import("./config.server-
|
|
15
|
-
import("./updateFailures-
|
|
14
|
+
import("./config.server-08RES1G-.mjs"),
|
|
15
|
+
import("./updateFailures-BLs3R7j0.mjs"),
|
|
16
16
|
import("./runtime.server-C1SVch_-.mjs")
|
|
17
17
|
]);
|
|
18
18
|
const { runtime } = await prepareConfig();
|
|
@@ -25,8 +25,8 @@ var listFailureReportsRpc_createServerFn_handler = createServerRpc({
|
|
|
25
25
|
}, (opts) => listFailureReportsRpc.__executeServer(opts));
|
|
26
26
|
var listFailureReportsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readFailureReportsInput).handler(listFailureReportsRpc_createServerFn_handler, async ({ data }) => {
|
|
27
27
|
const [{ prepareConfig }, { listFailureReports }, { requireFeature }] = await Promise.all([
|
|
28
|
-
import("./config.server-
|
|
29
|
-
import("./failureReports-
|
|
28
|
+
import("./config.server-08RES1G-.mjs"),
|
|
29
|
+
import("./failureReports-_trbWCVo.mjs"),
|
|
30
30
|
import("./runtime.server-C1SVch_-.mjs")
|
|
31
31
|
]);
|
|
32
32
|
const { runtime } = await prepareConfig();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { u as createServerFn } from "./createMiddleware-BdBf_ezN.mjs";
|
|
2
|
-
import { t as consoleAccess } from "./console-access-
|
|
2
|
+
import { t as consoleAccess } from "./console-access-D0bQJ9tx.mjs";
|
|
3
3
|
import { t as createServerRpc } from "./createServerRpc-B_y2lrwA.mjs";
|
|
4
4
|
import { n as readRecoveryInput } from "./insights-recovery-Dpk6Mfb9.mjs";
|
|
5
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-recovery-rpc-
|
|
5
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-recovery-rpc-Bul_1cyL.js
|
|
6
6
|
function readBundleActivityInput(inputs) {
|
|
7
7
|
if (!Array.isArray(inputs) || inputs.length > 20) throw new Error("Choose up to 20 bundles.");
|
|
8
8
|
return inputs.map((input) => {
|
|
@@ -21,7 +21,7 @@ var getBundleActivityRpc_createServerFn_handler = createServerRpc({
|
|
|
21
21
|
}, (opts) => getBundleActivityRpc.__executeServer(opts));
|
|
22
22
|
var getBundleActivityRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readBundleActivityInput).handler(getBundleActivityRpc_createServerFn_handler, async ({ data }) => {
|
|
23
23
|
const [{ prepareConfig }, { getBundleActivity }, { requireFeature }] = await Promise.all([
|
|
24
|
-
import("./config.server-
|
|
24
|
+
import("./config.server-08RES1G-.mjs"),
|
|
25
25
|
import("./bundleActivity-BXSJbaQY.mjs"),
|
|
26
26
|
import("./runtime.server-C1SVch_-.mjs")
|
|
27
27
|
]);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { u as createServerFn } from "./createMiddleware-BdBf_ezN.mjs";
|
|
2
|
-
import { t as consoleAccess } from "./console-access-
|
|
2
|
+
import { t as consoleAccess } from "./console-access-D0bQJ9tx.mjs";
|
|
3
3
|
import { t as createServerRpc } from "./createServerRpc-B_y2lrwA.mjs";
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-rpc-
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-rpc-D24DKKlx.js
|
|
5
5
|
/** The Insights reads, once the console's access check and the feature guard pass. */
|
|
6
6
|
var insightsReads = async () => {
|
|
7
|
-
const [{ prepareConfig }, { requireFeature }] = await Promise.all([import("./config.server-
|
|
7
|
+
const [{ prepareConfig }, { requireFeature }] = await Promise.all([import("./config.server-08RES1G-.mjs"), import("./runtime.server-C1SVch_-.mjs")]);
|
|
8
8
|
const { runtime } = await prepareConfig();
|
|
9
9
|
return requireFeature(runtime, "insights");
|
|
10
10
|
};
|
package/.output/server/_ssr/{insights-usage-rpc-CLHRgGDT.mjs → insights-usage-rpc-iG8wRo4G.mjs}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { u as createServerFn } from "./createMiddleware-BdBf_ezN.mjs";
|
|
2
|
-
import { t as consoleAccess } from "./console-access-
|
|
2
|
+
import { t as consoleAccess } from "./console-access-D0bQJ9tx.mjs";
|
|
3
3
|
import { t as createServerRpc } from "./createServerRpc-B_y2lrwA.mjs";
|
|
4
4
|
import { t as readAppUsageInput } from "./insights-usage-CLUWjUFz.mjs";
|
|
5
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-usage-rpc-
|
|
5
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-usage-rpc-iG8wRo4G.js
|
|
6
6
|
var getAppUsageReportRpc_createServerFn_handler = createServerRpc({
|
|
7
7
|
id: "8a98cd9c178e4a54185d62c25a95f09d3d59850c43d3f5baa1563e1614ad942e",
|
|
8
8
|
name: "getAppUsageReportRpc",
|
|
@@ -18,7 +18,7 @@ var getAppUsageReportRpc = createServerFn({ method: "GET" }).middleware([console
|
|
|
18
18
|
};
|
|
19
19
|
}).handler(getAppUsageReportRpc_createServerFn_handler, async ({ data }) => {
|
|
20
20
|
const [{ prepareConfig }, { getAppUsageReport }, { requireFeature }] = await Promise.all([
|
|
21
|
-
import("./config.server-
|
|
21
|
+
import("./config.server-08RES1G-.mjs"),
|
|
22
22
|
import("./insightsUsage-9X2sp3ja.mjs"),
|
|
23
23
|
import("./runtime.server-C1SVch_-.mjs")
|
|
24
24
|
]);
|
package/.output/server/_ssr/{insights-usage-rpc-CLyldyrz.mjs → insights-usage-rpc-tVCHkzGH.mjs}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { u as createServerFn } from "./createMiddleware-BdBf_ezN.mjs";
|
|
2
2
|
import { A as ProgressRoot, O as ProgressIndicator$1, k as ProgressTrack$1, mt as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
3
|
-
import { A as createSsrRpc, k as cn } from "./sidebar-
|
|
4
|
-
import { t as consoleAccess } from "./console-access-
|
|
3
|
+
import { A as createSsrRpc, k as cn } from "./sidebar-DLus-ndm.mjs";
|
|
4
|
+
import { t as consoleAccess } from "./console-access-D0bQJ9tx.mjs";
|
|
5
5
|
import { t as readAppUsageInput } from "./insights-usage-CLUWjUFz.mjs";
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights-usage-rpc-
|
|
6
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-usage-rpc-tVCHkzGH.js
|
|
7
7
|
var import_jsx_runtime = require_jsx_runtime();
|
|
8
8
|
function Progress$1({ className, children, value, ...props }) {
|
|
9
9
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(ProgressRoot, {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { f as lazyRouteComponent, p as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
2
|
-
import { r as requireConsoleFeature } from "./console-features-api-
|
|
3
|
-
import { i as validateDistributionSearch } from "./InsightsInfo-
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights_.distribution-
|
|
5
|
-
var $$splitComponentImporter = () => import("./insights_.distribution-
|
|
6
|
-
var $$splitNotFoundComponentImporter = () => import("./insights_.distribution-
|
|
2
|
+
import { r as requireConsoleFeature } from "./console-features-api-BRGAxAgc.mjs";
|
|
3
|
+
import { i as validateDistributionSearch } from "./InsightsInfo-C7K_HKHZ.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights_.distribution-Ckc_O360.js
|
|
5
|
+
var $$splitComponentImporter = () => import("./insights_.distribution-DsujaomV.mjs");
|
|
6
|
+
var $$splitNotFoundComponentImporter = () => import("./insights_.distribution-DbO4X6X6.mjs");
|
|
7
7
|
/** How a distribution row's bundle reads aloud. */
|
|
8
8
|
/** The bundle an app version's native build shipped, by its ID. */
|
|
9
9
|
var Route = createFileRoute("/insights_/distribution")({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as ConsoleFeatureUnavailable } from "./ConsoleFeatureUnavailable-
|
|
2
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights_.distribution-
|
|
1
|
+
import { t as ConsoleFeatureUnavailable } from "./ConsoleFeatureUnavailable-BxaV7ca0.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights_.distribution-DbO4X6X6.js
|
|
3
3
|
/** How a distribution row's bundle reads aloud. */
|
|
4
4
|
/** The bundle an app version's native build shipped, by its ID. */
|
|
5
5
|
var SplitNotFoundComponent = ConsoleFeatureUnavailable;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { mt as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
2
|
import { G as ArrowLeft, H as ArrowUpRight, f as RotateCw } from "../_libs/lucide-react.mjs";
|
|
3
|
-
import { C as Skeleton, O as buttonVariants, t as Button$1 } from "./sidebar-
|
|
3
|
+
import { C as Skeleton, O as buttonVariants, t as Button$1 } from "./sidebar-DLus-ndm.mjs";
|
|
4
4
|
import { h as Link } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
5
5
|
import { i as useQuery } from "../_libs/tanstack__react-query.mjs";
|
|
6
|
-
import { a as EmptyTitle, i as EmptyHeader, r as EmptyDescription, t as Empty } from "./empty-
|
|
7
|
-
import { a as CardHeader, i as CardFooter, n as CardContent, o as CardTitle, t as Card } from "./card-
|
|
8
|
-
import { a as Badge, i as AlertTitle, o as Field, r as AlertDescription, t as Alert, u as FieldLabel } from "./field-
|
|
9
|
-
import { l as useInsightsRetention, r as keepsTwelveMonths } from "./insights-api-
|
|
10
|
-
import { a as validateInsightsSearch, t as InsightsInfo } from "./InsightsInfo-
|
|
11
|
-
import { a as SelectGroup, c as SelectValue, i as SelectContent, n as PlatformIcon, o as SelectItem, r as Select$1, s as SelectTrigger, t as BundleIdDisplay } from "./select-
|
|
12
|
-
import { n as getAppUsageReportRpc, t as Progress$1 } from "./insights-usage-rpc-
|
|
13
|
-
import { n as InsightsErrorAlert, r as InsightsPageHeader, t as BuiltinBundleBadge, u as UsagePeriodSelector } from "./InsightsPageHeader-
|
|
14
|
-
import { t as Route } from "./insights_.distribution-
|
|
15
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/insights_.distribution-
|
|
6
|
+
import { a as EmptyTitle, i as EmptyHeader, r as EmptyDescription, t as Empty } from "./empty-CnGZqF1a.mjs";
|
|
7
|
+
import { a as CardHeader, i as CardFooter, n as CardContent, o as CardTitle, t as Card } from "./card-ijGSudc_.mjs";
|
|
8
|
+
import { a as Badge, i as AlertTitle, o as Field, r as AlertDescription, t as Alert, u as FieldLabel } from "./field-CysUuRJx.mjs";
|
|
9
|
+
import { l as useInsightsRetention, r as keepsTwelveMonths } from "./insights-api-MpLvDjmC.mjs";
|
|
10
|
+
import { a as validateInsightsSearch, t as InsightsInfo } from "./InsightsInfo-C7K_HKHZ.mjs";
|
|
11
|
+
import { a as SelectGroup, c as SelectValue, i as SelectContent, n as PlatformIcon, o as SelectItem, r as Select$1, s as SelectTrigger, t as BundleIdDisplay } from "./select-BL10bGzk.mjs";
|
|
12
|
+
import { n as getAppUsageReportRpc, t as Progress$1 } from "./insights-usage-rpc-tVCHkzGH.mjs";
|
|
13
|
+
import { n as InsightsErrorAlert, r as InsightsPageHeader, t as BuiltinBundleBadge, u as UsagePeriodSelector } from "./InsightsPageHeader-BPaYzzkg.mjs";
|
|
14
|
+
import { t as Route } from "./insights_.distribution-Ckc_O360.mjs";
|
|
15
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights_.distribution-DsujaomV.js
|
|
16
16
|
var import_jsx_runtime = require_jsx_runtime();
|
|
17
17
|
var PAGE_SIZE = 20;
|
|
18
18
|
var dates = new Intl.DateTimeFormat("en", {
|
|
@@ -21,7 +21,7 @@ var dates = new Intl.DateTimeFormat("en", {
|
|
|
21
21
|
timeZone: "UTC"
|
|
22
22
|
});
|
|
23
23
|
/** How a distribution row's bundle reads aloud. */
|
|
24
|
-
var bundleName = (row) => row.releaseId ?? (row.builtinBundleId ? `Built-in
|
|
24
|
+
var bundleName = (row) => row.releaseId ?? (row.builtinBundleId ? `Built-in bundle ${row.builtinBundleId}` : "Unknown bundle");
|
|
25
25
|
/** The bundle an app version's native build shipped, by its ID. */
|
|
26
26
|
function BuiltinBundle({ bundleId }) {
|
|
27
27
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
@@ -171,7 +171,7 @@ function DistributionPage() {
|
|
|
171
171
|
"Each installation counts once, by its latest report",
|
|
172
172
|
" ",
|
|
173
173
|
distributionPeriod,
|
|
174
|
-
". Shares are within each app version. Built-in
|
|
174
|
+
". Shares are within each app version. Built-in bundle: the bundle the native build shipped, by its ID. Unknown bundle: no deployment and no built-in bundle ID."
|
|
175
175
|
]
|
|
176
176
|
})]
|
|
177
177
|
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|