@hot-updater/console 1.0.0-rc.8 → 1.0.0
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/ConsoleFeatureUnavailable-jB4Loglh.js +1 -0
- package/.output/public/assets/EventDetails-B6yUsyNA.js +1 -0
- package/.output/public/assets/HashValueDisplay-BFX_kY3-.js +1 -0
- package/.output/public/assets/InsightsInfo-BNO0WznZ.js +1 -0
- package/.output/public/assets/InsightsPageHeader-B892oVml.js +1 -0
- package/.output/public/assets/NotFoundPage-DIqCpWa3.js +1 -0
- package/.output/public/assets/alert-dialog-Bbk_4-WJ.js +1 -0
- package/.output/public/assets/api-DCM0wr6O.js +1 -0
- package/.output/public/assets/api-keys-CIO9L_wu.js +1 -0
- package/.output/public/assets/api-keys-DVTL_--f.js +1 -0
- package/.output/public/assets/arrow-left-CnMYpqB7.js +1 -0
- package/.output/public/assets/arrow-up-right-BtffZA6e.js +1 -0
- package/.output/public/assets/chevron-right-BqD5wtFb.js +1 -0
- package/.output/public/assets/clipboard-DS9ucUQL.js +1 -0
- package/.output/public/assets/console-features-api-BH5m_PtQ.js +1 -0
- package/.output/public/assets/dialog-Bqbb7B0N.js +1 -0
- package/.output/public/assets/dist-LxKJB-Vu.js +1 -0
- package/.output/public/assets/empty-CuT2UhFp.js +1 -0
- package/.output/public/assets/field-BBDpjIqu.js +1 -0
- package/.output/public/assets/index-6o51GkFe.js +11 -0
- package/.output/public/assets/input-group-ja_30qaF.js +1 -0
- package/.output/public/assets/insights-CmraDzQh.js +1 -0
- package/.output/public/assets/insights-CxZ2GCYV.js +2 -0
- package/.output/public/assets/insights-api-BigAU9sZ.js +1 -0
- package/.output/public/assets/insights-usage-rpc-DYEhsCKT.js +1 -0
- package/.output/public/assets/insights-vNRCrfnS.js +42 -0
- package/.output/public/assets/insights_.distribution-ChOerfJt.js +1 -0
- package/.output/public/assets/insights_.distribution-D-e4iga8.js +1 -0
- package/.output/public/assets/insights_.distribution-DZtkibX1.js +2 -0
- package/.output/public/assets/installations-BazSJXE0.js +2 -0
- package/.output/public/assets/installations-ClHTqdAO.js +1 -0
- package/.output/public/assets/installations-DpKsBuHi.js +1 -0
- package/.output/public/assets/key-round-wS_SIZ6b.js +1 -0
- package/.output/public/assets/list-CgrYiadM.js +1 -0
- package/.output/public/assets/refresh-cw-BYgoNCco.js +1 -0
- package/.output/public/assets/remote-config-BWwHOkCK.js +1 -0
- package/.output/public/assets/remote-config-Br56BODb.js +6 -0
- package/.output/public/assets/remote-config-CXOi0LRu.js +1 -0
- package/.output/public/assets/routes-B88Erkpk.js +2 -0
- package/.output/public/assets/routes-CfzsAleC.js +1 -0
- package/.output/public/assets/search-DaTDPW25.js +1 -0
- package/.output/public/assets/select-BZZBXMkr.js +1 -0
- package/.output/public/assets/sidebar-DNVyJPfX.js +3 -0
- package/.output/public/assets/smartphone-DpTFgtKf.js +1 -0
- package/.output/public/assets/styles-DTGEAJFv.css +2 -0
- package/.output/public/assets/switch-DZ1TPwx-.js +1 -0
- package/.output/public/assets/table-Gm4qRWwE.js +1 -0
- package/.output/public/assets/tabs-C7FOEjFC.js +1 -0
- package/.output/public/assets/undo-2-CmrHjwFc.js +1 -0
- package/.output/public/assets/useCompositeListItem-9E4pj_CH.js +1 -0
- package/.output/public/assets/valueToPercent-CH8GCHaL.js +1 -0
- package/.output/server/__23tanstack-start-server-fn-resolver-BpRlos5Q.mjs +170 -0
- package/.output/server/_libs/@base-ui/react+[...].mjs +4389 -4207
- package/.output/server/_libs/@tanstack/react-router+[...].mjs +3802 -4022
- package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +140 -97
- package/.output/server/_libs/lucide-react.mjs +221 -9
- package/.output/server/_libs/next-themes.mjs +1 -1
- package/.output/server/_libs/react-redux+[...].mjs +1 -1
- package/.output/server/_libs/recharts+[...].mjs +483 -901
- package/.output/server/_libs/sonner.mjs +1 -1
- package/.output/server/_libs/tanstack__history.mjs +68 -41
- package/.output/server/_libs/tanstack__query-core.mjs +2010 -309
- package/.output/server/_libs/tanstack__react-query.mjs +448 -21
- package/.output/server/_libs/verkit.mjs +102 -1
- package/.output/server/_ssr/BundleIdDisplay-x94o9rlU.mjs +13 -0
- package/.output/server/_ssr/ConsoleFeatureUnavailable-ldW8v8-q.mjs +58 -0
- package/.output/server/_ssr/EventDetails-Q8kfj9Nr.mjs +344 -0
- package/.output/server/_ssr/{HashValueDisplay-C5tS4oGo.mjs → HashValueDisplay-n1GholGS.mjs} +3 -3
- package/.output/server/_ssr/InsightsInfo-DuJFatQO.mjs +75 -0
- package/.output/server/_ssr/InsightsPageHeader-BSUX3Ye9.mjs +145 -0
- package/.output/server/_ssr/NotFoundPage-DZzOOzS3.mjs +37 -0
- package/.output/server/_ssr/{dialog-WiIAKl4L.mjs → alert-dialog-C43Doa0I.mjs} +6 -83
- package/.output/server/_ssr/{api-keys-aXriWrv7.mjs → api-keys-B4sYm8dM.mjs} +48 -9
- package/.output/server/_ssr/api-keys-CEnM9fqG.mjs +5 -0
- package/.output/server/_ssr/api-keys-rpc-BIFuUgMt.mjs +52 -0
- package/.output/server/_ssr/api-oZjRn9tP.mjs +186 -0
- package/.output/server/_ssr/api-rpc-BNiFRRK8.mjs +240 -0
- package/.output/server/_ssr/{auth-BF8mbAgF.mjs → auth-UP0wXs4i.mjs} +1 -1
- package/.output/server/_ssr/{auth-rpc-B7w3AdRr.mjs → auth-rpc-DnZqYxyq.mjs} +6 -6
- package/.output/server/_ssr/auth.server-DFpyxRDd.mjs +5374 -0
- package/.output/server/_ssr/bundleActivity-M5gzBFNg.mjs +18 -0
- package/.output/server/_ssr/config-WVX4IxSR.mjs +15 -0
- package/.output/server/_ssr/config.server-DskXCAyI.mjs +35 -0
- package/.output/server/_ssr/console-access-BJfAXknd.mjs +17 -0
- package/.output/server/_ssr/console-features-Oz0q20jJ.mjs +61 -0
- package/.output/server/_ssr/console-features-api-C9kiKvaV.mjs +43 -0
- package/.output/server/_ssr/console-features-rpc-P0GL7Z-R.mjs +19 -0
- package/.output/server/_ssr/{createServerFn-B2hcXoPM.mjs → createMiddleware-Cm6Tn0_Y.mjs} +67 -56
- package/.output/server/_ssr/{createServerRpc-DB29C_5p.mjs → createServerRpc-RLR4H-Fn.mjs} +2 -2
- package/.output/server/_ssr/databaseConfig-C5SkAyUy.mjs +5 -0
- package/.output/server/_ssr/{databaseJsonValue-d6I3nAS4.mjs → databaseJsonValue-Csbuzc9Q.mjs} +28 -5
- package/.output/server/_ssr/databaseRows-CPphvbag.mjs +73 -0
- package/.output/server/_ssr/dialog-BbYDMjdC.mjs +84 -0
- package/.output/server/_ssr/{dist-CyzPaI5v.mjs → dist-CbQbBIw-.mjs} +140 -7
- package/.output/server/_ssr/{downloadBundle-CI7JUKvC.mjs → downloadBundle-CZysjmNW.mjs} +10 -10
- package/.output/server/_ssr/empty-CVLGfxuu.mjs +60 -0
- package/.output/server/_ssr/{empty-plugin-adapters-B5QvGpEl.mjs → empty-plugin-adapters-CPtwX8a7.mjs} +1 -1
- package/.output/server/_ssr/failureReports-DKDhVsXA.mjs +33 -0
- package/.output/server/_ssr/field-asw83X0v.mjs +189 -0
- package/.output/server/_ssr/getBundleChildren-Cv9iz1As.mjs +22 -0
- package/.output/server/_ssr/{input-group-Coj6SwVP.mjs → input-group-CuYJHosb.mjs} +2 -2
- package/.output/server/_ssr/insights-B55FG5fm.mjs +14 -0
- package/.output/server/_ssr/insights-CWnHIFUV.mjs +5 -0
- package/.output/server/_ssr/insights-CpLpedFZ.mjs +2315 -0
- package/.output/server/_ssr/insights-api-sjws23WF.mjs +122 -0
- package/.output/server/_ssr/insights-errors-BjnFUyZj.mjs +34 -0
- package/.output/server/_ssr/insights-failures-rpc-BvbWvqNf.mjs +36 -0
- package/.output/server/_ssr/insights-failures-xaa41Buf.mjs +46 -0
- package/.output/server/_ssr/insights-recovery-BWQhiZaF.mjs +28 -0
- package/.output/server/_ssr/insights-recovery-rpc-GiYXdkaY.mjs +32 -0
- package/.output/server/_ssr/{insights-rpc-l2-oBYth.mjs → insights-rpc-DP_8Rmz4.mjs} +22 -14
- package/.output/server/_ssr/insights-usage-BpBM0U0c.mjs +29 -0
- package/.output/server/_ssr/insights-usage-rpc-BiolgB8e.mjs +29 -0
- package/.output/server/_ssr/insights-usage-rpc-KStL0zOx.mjs +41 -0
- package/.output/server/_ssr/insightsUsage-CzhVjsc8.mjs +56 -0
- package/.output/server/_ssr/insights_.distribution-CVrnbP3R.mjs +7 -0
- package/.output/server/_ssr/insights_.distribution-D2HaNTAA.mjs +16 -0
- package/.output/server/_ssr/{insights_.distribution-INw6QxbU.mjs → insights_.distribution-DN9pR422.mjs} +50 -22
- package/.output/server/_ssr/installations-BHmbbnH8.mjs +5 -0
- package/.output/server/_ssr/{installations-DH-tQuRo.mjs → installations-BSCmFq8Q.mjs} +279 -367
- package/.output/server/_ssr/installations-DD1g__Nc.mjs +69 -0
- package/.output/server/_ssr/listReleases-BfUBlCHo.mjs +79 -0
- package/.output/server/_ssr/plugins-BaD1slHx.mjs +2086 -0
- package/.output/server/_ssr/release-adoption-005tQRpo.mjs +55 -0
- package/.output/server/_ssr/release-adoption-rpc-BsstqxUp.mjs +41 -0
- package/.output/server/_ssr/releaseAdoption-CtOFkwli.mjs +114 -0
- package/.output/server/_ssr/releaseManagement-DFMUnDF5.mjs +11 -0
- package/.output/server/_ssr/remote-config-C2Ee8lXO.mjs +5 -0
- package/.output/server/_ssr/remote-config-Dv1ccMo-.mjs +17 -0
- package/.output/server/_ssr/remote-config-of0lGQH8.mjs +2648 -0
- package/.output/server/_ssr/remote-config-rpc-BzX31mUS.mjs +115 -0
- package/.output/server/_ssr/rolldown-runtime-rSIU-vHC.mjs +13 -0
- package/.output/server/_ssr/{router-DfFyAp5p.mjs → router-D8NuoJ_I.mjs} +117 -136
- package/.output/server/_ssr/{routes-BtsfVx-p.mjs → routes-DgvnFqDy.mjs} +195 -429
- package/.output/server/_ssr/routes-V8sDybGf.mjs +409 -0
- package/.output/server/_ssr/runtime.server-De0QVWc9.mjs +104 -0
- package/.output/server/_ssr/schema-BiAVyEj2.mjs +361 -0
- package/.output/server/_ssr/{select-CyvLaMza.mjs → select-t3iXRwc9.mjs} +3 -3
- package/.output/server/_ssr/server-h4VxnExB.mjs +8325 -0
- package/.output/server/_ssr/{createSsrRpc-C-dLcQuy.mjs → sidebar-DJcErBMo.mjs} +107 -47
- package/.output/server/_ssr/ssr.mjs +1 -1
- package/.output/server/_ssr/start-BfFbHKMK.mjs +4 -0
- package/.output/server/_ssr/switch-E-btwMGt.mjs +43 -0
- package/.output/server/_ssr/{table-CkVhsNpe.mjs → table-37Dd23TN.mjs} +2 -2
- package/.output/server/_ssr/tabs-DEFnTm95.mjs +45 -0
- package/.output/server/_ssr/updateFailures-H6pnnYK4.mjs +40 -0
- package/.output/server/_ssr/{uuidv7-D0QFkPL_.mjs → uuidv7-C88s9jWF.mjs} +2 -2
- package/.output/server/_tanstack-start-manifest_v-55AGsehh.mjs +139 -0
- package/.output/server/index.mjs +303 -205
- package/LICENSE +13 -14
- package/README.md +80 -71
- package/lib/index.d.mts +23 -11
- package/lib/vite-internal.mjs +13 -3
- package/lib/vite.d.mts +2 -0
- package/package.json +14 -14
- package/src/components/AppSidebar.tsx +74 -75
- package/src/components/ConsoleAccessPage.tsx +5 -1
- package/src/components/ConsoleFeatureUnavailable.tsx +80 -0
- package/src/components/NotFoundPage.tsx +7 -7
- package/src/components/features/FeatureSlots.tsx +103 -0
- package/src/components/features/api-keys/apiKeysFeatureUi.tsx +15 -0
- package/src/components/features/bundles/BundleMetadata.tsx +8 -5
- package/src/components/features/bundles/RolloutCohortsDialog.tsx +1 -1
- package/src/components/features/channels/ChannelManagementDialog.tsx +8 -6
- package/src/components/features/insights/AppUsage.tsx +41 -14
- package/src/components/features/insights/BuiltinBundle.tsx +36 -0
- package/src/components/features/insights/ComparedBundlesChart.tsx +310 -0
- package/src/components/features/insights/EstimatedCount.tsx +18 -0
- package/src/components/features/insights/EventDetails.tsx +390 -26
- package/src/components/features/insights/EventHistoryCard.tsx +111 -25
- package/src/components/features/insights/EventHistoryList.tsx +1 -1
- package/src/components/features/insights/FailureReports.tsx +407 -0
- package/src/components/features/insights/InsightsControls.tsx +240 -142
- package/src/components/features/insights/InsightsErrorAlert.tsx +14 -1
- package/src/components/features/insights/InsightsOverview.tsx +601 -403
- package/src/components/features/insights/InsightsPageHeader.tsx +19 -14
- package/src/components/features/insights/InsightsPeriodSelector.tsx +67 -12
- package/src/components/features/insights/InstallationHistoryCard.tsx +65 -10
- package/src/components/features/insights/InstallationMatchesCard.tsx +1 -1
- package/src/components/features/insights/ReleaseActivity.tsx +308 -0
- package/src/components/features/insights/ReportingDevicesSummary.tsx +13 -13
- package/src/components/features/insights/RollbackButton.tsx +118 -0
- package/src/components/features/insights/UpdateFailures.tsx +382 -0
- package/src/components/features/insights/insightsFeatureUi.tsx +35 -0
- package/src/components/features/releases/ReleaseEditorSheet.tsx +27 -13
- package/src/components/features/remote-config/ConditionDialog.tsx +592 -0
- package/src/components/features/remote-config/ConditionsCard.tsx +247 -0
- package/src/components/features/remote-config/ParameterDialog.tsx +426 -0
- package/src/components/features/remote-config/ParametersCard.tsx +254 -0
- package/src/components/features/remote-config/PreviewCard.tsx +284 -0
- package/src/components/features/remote-config/PublishDialog.tsx +325 -0
- package/src/components/features/remote-config/RemoteConfigPage.tsx +353 -0
- package/src/components/features/remote-config/RuleSummary.tsx +21 -0
- package/src/components/features/remote-config/ValueInput.tsx +151 -0
- package/src/components/features/remote-config/VersionsCard.tsx +384 -0
- package/src/components/features/remote-config/remoteConfigFeatureUi.tsx +15 -0
- package/src/components/features/remote-config/useDateTimeText.ts +16 -0
- package/src/components/ui/sidebar.tsx +22 -29
- package/src/index.ts +26 -19
- package/src/lib/api-keys-api.ts +0 -28
- package/src/lib/api-keys-rpc.ts +27 -38
- package/src/lib/api-rpc.ts +125 -288
- package/src/lib/api.ts +15 -134
- package/src/lib/bundle-activity.ts +24 -4
- package/src/lib/console-access.ts +20 -0
- package/src/lib/console-features-api.ts +68 -0
- package/src/lib/console-features-rpc.ts +13 -0
- package/src/lib/console-features.ts +98 -0
- package/src/lib/insights-api.ts +56 -2
- package/src/lib/insights-errors.ts +64 -0
- package/src/lib/insights-failures-rpc.ts +36 -0
- package/src/lib/insights-failures.ts +130 -0
- package/src/lib/insights-recovery-rpc.ts +13 -17
- package/src/lib/insights-recovery.ts +12 -36
- package/src/lib/insights-retention.ts +21 -0
- package/src/lib/insights-rpc.ts +30 -12
- package/src/lib/insights-search.ts +50 -4
- package/src/lib/insights-usage-rpc.ts +15 -9
- package/src/lib/insights-usage.ts +41 -3
- package/src/lib/insights-view.ts +34 -5
- package/src/lib/release-adoption-api.ts +214 -0
- package/src/lib/release-adoption-rpc.ts +49 -0
- package/src/lib/release-adoption.ts +164 -0
- package/src/lib/remote-config-api.ts +119 -0
- package/src/lib/remote-config-draft.ts +666 -0
- package/src/lib/remote-config-rpc.ts +196 -0
- package/src/lib/scroll-restoration.ts +21 -0
- package/src/lib/server/auth.server.ts +13 -5
- package/src/lib/server/bundleActivity.ts +27 -28
- package/src/lib/server/config.server.ts +21 -76
- package/src/lib/server/console-feature-apis.ts +70 -0
- package/src/lib/server/console-runtime.server.ts +82 -38
- package/src/lib/server/downloadBundle.ts +14 -15
- package/src/lib/server/failureReports.ts +50 -0
- package/src/lib/server/getBundleChildren.ts +31 -122
- package/src/lib/server/insightsUsage.ts +52 -113
- package/src/lib/server/listReleases.ts +109 -44
- package/src/lib/server/releaseAdoption.ts +151 -0
- package/src/lib/server/releaseReachability.ts +8 -8
- package/src/lib/server/remoteConfig.ts +75 -0
- package/src/lib/server/runtime.server.ts +120 -31
- package/src/lib/server/updateFailures.ts +66 -0
- package/src/lib/use-dialog-target.ts +27 -0
- package/src/routeTree.gen.ts +44 -44
- package/src/router.tsx +3 -2
- package/src/routes/-installations-search.ts +32 -8
- package/src/routes/-releases-search.ts +76 -29
- package/src/routes/__root.tsx +7 -1
- package/src/routes/api/bundles/$bundleId/download.ts +2 -5
- package/src/routes/api-keys.tsx +5 -2
- package/src/routes/index.tsx +210 -152
- package/src/routes/insights.tsx +91 -23
- package/src/routes/insights_.distribution.tsx +50 -9
- package/src/routes/installations.tsx +97 -40
- package/src/routes/remote-config.tsx +42 -0
- package/src/styles.css +9 -0
- package/src/vite-internal.ts +15 -3
- package/src/vite.ts +2 -0
- package/.output/public/assets/HashValueDisplay-BpTc3Oyg.js +0 -1
- package/.output/public/assets/InsightsPageHeader-DC2eEst8.js +0 -1
- package/.output/public/assets/api-CdUyUqzR.js +0 -42
- package/.output/public/assets/api-keys-64PM9PwW.js +0 -1
- package/.output/public/assets/api-keys-api-BeaJnvY5.js +0 -1
- package/.output/public/assets/arrow-left-04Rh8Zgp.js +0 -1
- package/.output/public/assets/card-CYHs5FZv.js +0 -1
- package/.output/public/assets/chart-no-axes-combined-DwyMsVFW.js +0 -1
- package/.output/public/assets/createServerFn-DU71xucx.js +0 -3
- package/.output/public/assets/dialog-IVMkBRCq.js +0 -1
- package/.output/public/assets/dist-BR4GzeEu.js +0 -1
- package/.output/public/assets/field-B3CYDpjg.js +0 -1
- package/.output/public/assets/index-C39o7rJH.js +0 -10
- package/.output/public/assets/info-C3y9HNoU.js +0 -1
- package/.output/public/assets/input-group-nLZylhWF.js +0 -1
- package/.output/public/assets/insights-Bm9v8uO3.js +0 -2
- package/.output/public/assets/insights-DS3iO7Up.js +0 -1
- package/.output/public/assets/insights-search-Byj3g3Mp.js +0 -1
- package/.output/public/assets/insights-usage-rpc-BaGR3lgq.js +0 -1
- package/.output/public/assets/insights_.distribution-B1i6cjlQ.js +0 -1
- package/.output/public/assets/insights_.distribution-C1Wf27eB.js +0 -2
- package/.output/public/assets/installations-CkFW4fV9.js +0 -2
- package/.output/public/assets/installations-DxTaIcHD.js +0 -1
- package/.output/public/assets/lazyRouteComponent-BapzjYnb.js +0 -1
- package/.output/public/assets/list-Dqt53fWZ.js +0 -1
- package/.output/public/assets/loader-circle-CUKfUqow.js +0 -1
- package/.output/public/assets/preload-helper-ClBMtM1g.js +0 -1
- package/.output/public/assets/refresh-cw-CNE_2PnD.js +0 -1
- package/.output/public/assets/routes-Cgtvspjg.js +0 -2
- package/.output/public/assets/routes-O2r2UUN8.js +0 -1
- package/.output/public/assets/shield-check-BFcJ46kz.js +0 -1
- package/.output/public/assets/signing-BgspC-xP.js +0 -1
- package/.output/public/assets/styles-DnrWuBwd.css +0 -2
- package/.output/public/assets/table-BuWQgxJJ.js +0 -1
- package/.output/public/assets/useMutation-CSV9NCUl.js +0 -1
- package/.output/public/assets/useOpenInteractionType-D5kduCTD.js +0 -1
- package/.output/public/assets/valueToPercent-BAtcbSLk.js +0 -1
- package/.output/server/__23tanstack-start-server-fn-resolver-CmYkol9D.mjs +0 -150
- package/.output/server/_ssr/InsightsPageHeader-Dma3dVj1.mjs +0 -64
- package/.output/server/_ssr/api-C3bGmgY0.mjs +0 -332
- package/.output/server/_ssr/api-keys-api-BRF6rbRC.mjs +0 -60
- package/.output/server/_ssr/api-keys-rpc-BMa1ZM6N.mjs +0 -136
- package/.output/server/_ssr/api-rpc-BYQ2e0z6.mjs +0 -1399
- package/.output/server/_ssr/auth.server-CmicHh0J.mjs +0 -47
- package/.output/server/_ssr/bundle-signing-rpc-DbQ4pFAX.mjs +0 -16
- package/.output/server/_ssr/bundle-signing.server-Uqt1OF49.mjs +0 -12
- package/.output/server/_ssr/bundleActivity-pBrPSG01.mjs +0 -28
- package/.output/server/_ssr/card-B7KSO_25.mjs +0 -108
- package/.output/server/_ssr/config-Dv8qLDZ0.mjs +0 -13
- package/.output/server/_ssr/config.server-C-d1QaBU.mjs +0 -368
- package/.output/server/_ssr/databaseRows-5bCRTxm-.mjs +0 -126
- package/.output/server/_ssr/deleteBundle-8X-jq7Z7.mjs +0 -66
- package/.output/server/_ssr/field-BDwuU8RE.mjs +0 -74
- package/.output/server/_ssr/getBundleChildren-DoL8l_AS.mjs +0 -50
- package/.output/server/_ssr/insights-BDJjaDLp.mjs +0 -938
- package/.output/server/_ssr/insights-D0FWpfOS.mjs +0 -10
- package/.output/server/_ssr/insights-recovery-Cv6RSyeR.mjs +0 -21
- package/.output/server/_ssr/insights-recovery-rpc-BE9YsK_T.mjs +0 -37
- package/.output/server/_ssr/insights-search-1czJMZgk.mjs +0 -21
- package/.output/server/_ssr/insights-usage-rpc-BE_aCnea.mjs +0 -184
- package/.output/server/_ssr/insights-usage-rpc-CtAolz-t.mjs +0 -24
- package/.output/server/_ssr/insightsContract-B09K_Px1.mjs +0 -303
- package/.output/server/_ssr/insightsHistory-Ci4rYAgl.mjs +0 -41
- package/.output/server/_ssr/insightsRecovery-CaghWL2t.mjs +0 -113
- package/.output/server/_ssr/insightsUsage-DNIj6jxF.mjs +0 -71
- package/.output/server/_ssr/insights_.distribution-Cp0kf1vW.mjs +0 -10
- package/.output/server/_ssr/installations-Bhyiwx8G.mjs +0 -29
- package/.output/server/_ssr/routes-xBkI2Fmt.mjs +0 -37
- package/.output/server/_ssr/runtime.server-CsiKFp_Z.mjs +0 -436
- package/.output/server/_ssr/server-BdkuOWe8.mjs +0 -7468
- package/.output/server/_ssr/signing-CQ70saFm.mjs +0 -133
- package/.output/server/_ssr/start-DpViQGnt.mjs +0 -4
- package/.output/server/_tanstack-start-manifest_v-CrBsoKQQ.mjs +0 -125
- package/src/components/features/bundles/BundleActivityChart.tsx +0 -97
- package/src/components/features/bundles/BundleInsightsSummary.tsx +0 -126
- package/src/components/features/signing/BundleSigningPage.tsx +0 -139
- package/src/lib/bundle-signing-api.ts +0 -14
- package/src/lib/bundle-signing-rpc.ts +0 -16
- package/src/lib/server/bundle-signing.server.ts +0 -23
- package/src/lib/server/deleteBundle.ts +0 -145
- package/src/lib/server/insightsHistory.ts +0 -52
- package/src/lib/server/insightsRecovery.ts +0 -187
- package/src/routes/signing.tsx +0 -37
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { u as createServerFn } from "./createMiddleware-Cm6Tn0_Y.mjs";
|
|
2
|
+
import { t as consoleAccess } from "./console-access-BJfAXknd.mjs";
|
|
3
|
+
import { A as createSsrRpc } from "./sidebar-DJcErBMo.mjs";
|
|
4
|
+
import { i as useQuery, t as useInfiniteQuery } from "../_libs/tanstack__react-query.mjs";
|
|
5
|
+
import { c as readUpdateFailuresInput } from "./insights-failures-xaa41Buf.mjs";
|
|
6
|
+
import { n as readFailureReportsInput } from "./insights-errors-BjnFUyZj.mjs";
|
|
7
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-api-sjws23WF.js
|
|
8
|
+
var getUpdateFailuresRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readUpdateFailuresInput).handler(createSsrRpc("0d1dacdd1e5ee6b100e5c142fb9af03602b6f2c6fe6af79312b36c223d7f8f97"));
|
|
9
|
+
var listFailureReportsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readFailureReportsInput).handler(createSsrRpc("b4388826a9b515fb4d2113270aa8ded1c50ba13d7f07ac2b268c41396e87d0a3"));
|
|
10
|
+
/** `insights()`'s defaults, for a server that does not report its periods. */
|
|
11
|
+
var DEFAULT_INSIGHTS_RETENTION = {
|
|
12
|
+
rawDays: 90,
|
|
13
|
+
dailyDays: 400
|
|
14
|
+
};
|
|
15
|
+
var formatDays = (days) => `${days.toLocaleString("en")} ${days === 1 ? "day" : "days"}`;
|
|
16
|
+
/** Whether daily totals cover App usage's 12-month period: 52 weeks. */
|
|
17
|
+
var keepsTwelveMonths = ({ dailyDays }) => dailyDays >= 364;
|
|
18
|
+
/** The Insights reads, once the console's access check and the feature guard pass. */
|
|
19
|
+
var readOverview = (input) => input;
|
|
20
|
+
var readEventsPage = (input) => input;
|
|
21
|
+
var readInstallationEventsPage = (input) => input;
|
|
22
|
+
var readInstallationPage = (input) => input;
|
|
23
|
+
var readInstallId = (input) => input;
|
|
24
|
+
createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readOverview).handler(createSsrRpc("ff00311d412c8cdfa8ad5b0ba1eb6aa7471d0cc12170e6cc645deb91603d42dd"));
|
|
25
|
+
var listInsightsEventsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readEventsPage).handler(createSsrRpc("d4c50f40701055145f24873dc90f3c55a5494457a6a03a743339b2ac4545eb19"));
|
|
26
|
+
var listInsightsInstallationEventsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readInstallationEventsPage).handler(createSsrRpc("3c04bc6624be6dfdd80cf96819f9c6d0455e59a7bb4c0374b6afb0162ffd15b0"));
|
|
27
|
+
var getInsightsInstallationRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readInstallId).handler(createSsrRpc("6726f1ed9eda1f0cb4c1f1ad1023faee435ddcfd0b7c55ef08ca7f2f7f577370"));
|
|
28
|
+
/** How long the server's `insights()` keeps rows. */
|
|
29
|
+
var getInsightsRetentionRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).handler(createSsrRpc("c6f18db42ac40385dbff247095197ee9f3fd3a97dc914efd368ce0ded1f098c6"));
|
|
30
|
+
var findInsightsInstallationsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readInstallationPage).handler(createSsrRpc("735c501f6d5ea81a445ff2b6b2ea6a1b589e3c6f63a465a881822c80ae71e7d1"));
|
|
31
|
+
var STALE_TIME_MS = 3e4;
|
|
32
|
+
var queryKeys = {
|
|
33
|
+
reportingInstallations: (input) => [
|
|
34
|
+
"insights",
|
|
35
|
+
"reporting-installations",
|
|
36
|
+
input
|
|
37
|
+
],
|
|
38
|
+
events: (input) => [
|
|
39
|
+
"insights",
|
|
40
|
+
"events",
|
|
41
|
+
input
|
|
42
|
+
],
|
|
43
|
+
installations: (input) => [
|
|
44
|
+
"insights",
|
|
45
|
+
"installations",
|
|
46
|
+
input
|
|
47
|
+
],
|
|
48
|
+
installation: (installId) => [
|
|
49
|
+
"insights",
|
|
50
|
+
"installation",
|
|
51
|
+
installId
|
|
52
|
+
],
|
|
53
|
+
installationEvents: (input) => [
|
|
54
|
+
"insights",
|
|
55
|
+
"installation-events",
|
|
56
|
+
input
|
|
57
|
+
]
|
|
58
|
+
};
|
|
59
|
+
var useInsightsEventsQuery = (input, enabled) => useQuery({
|
|
60
|
+
queryKey: queryKeys.events(input),
|
|
61
|
+
queryFn: () => listInsightsEventsRpc({ data: input }),
|
|
62
|
+
enabled,
|
|
63
|
+
refetchOnWindowFocus: true,
|
|
64
|
+
staleTime: STALE_TIME_MS
|
|
65
|
+
});
|
|
66
|
+
var useInsightsInstallationsQuery = (input, enabled) => useQuery({
|
|
67
|
+
queryKey: queryKeys.installations(input),
|
|
68
|
+
queryFn: () => findInsightsInstallationsRpc({ data: input }),
|
|
69
|
+
enabled: enabled && input.identity.length > 0,
|
|
70
|
+
staleTime: STALE_TIME_MS
|
|
71
|
+
});
|
|
72
|
+
var useInsightsInstallationQuery = (installId, enabled) => useQuery({
|
|
73
|
+
queryKey: queryKeys.installation(installId),
|
|
74
|
+
queryFn: () => getInsightsInstallationRpc({ data: { installId } }),
|
|
75
|
+
enabled: enabled && installId.length > 0,
|
|
76
|
+
staleTime: STALE_TIME_MS
|
|
77
|
+
});
|
|
78
|
+
var useInsightsInstallationEventsQuery = (input, enabled) => useQuery({
|
|
79
|
+
queryKey: queryKeys.installationEvents(input),
|
|
80
|
+
queryFn: () => listInsightsInstallationEventsRpc({ data: input }),
|
|
81
|
+
enabled: enabled && input.installId.length > 0,
|
|
82
|
+
refetchOnWindowFocus: true,
|
|
83
|
+
staleTime: STALE_TIME_MS
|
|
84
|
+
});
|
|
85
|
+
/** A release's or a channel's update failures; lifetime for a release without a window. */
|
|
86
|
+
var useUpdateFailuresQuery = (input, enabled = true) => useQuery({
|
|
87
|
+
queryKey: [
|
|
88
|
+
"insights",
|
|
89
|
+
"update-failures",
|
|
90
|
+
input
|
|
91
|
+
],
|
|
92
|
+
queryFn: () => getUpdateFailuresRpc({ data: readUpdateFailuresInput(input) }),
|
|
93
|
+
enabled,
|
|
94
|
+
refetchOnWindowFocus: true,
|
|
95
|
+
staleTime: STALE_TIME_MS
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* How long the server keeps Insights rows; the defaults until it answers, or
|
|
99
|
+
* when it does not report them.
|
|
100
|
+
*/
|
|
101
|
+
var useInsightsRetention = () => useQuery({
|
|
102
|
+
queryKey: ["insights", "retention"],
|
|
103
|
+
queryFn: () => getInsightsRetentionRpc(),
|
|
104
|
+
staleTime: Infinity
|
|
105
|
+
}).data ?? DEFAULT_INSIGHTS_RETENTION;
|
|
106
|
+
var useFailureReportsQuery = (input, enabled) => useInfiniteQuery({
|
|
107
|
+
queryKey: [
|
|
108
|
+
"insights",
|
|
109
|
+
"failure-reports",
|
|
110
|
+
input
|
|
111
|
+
],
|
|
112
|
+
queryFn: ({ pageParam }) => listFailureReportsRpc({ data: {
|
|
113
|
+
...input,
|
|
114
|
+
cursor: pageParam
|
|
115
|
+
} }),
|
|
116
|
+
initialPageParam: void 0,
|
|
117
|
+
getNextPageParam: (page) => page.nextCursor ?? void 0,
|
|
118
|
+
enabled,
|
|
119
|
+
staleTime: STALE_TIME_MS
|
|
120
|
+
});
|
|
121
|
+
//#endregion
|
|
122
|
+
export { useInsightsEventsQuery as a, useInsightsInstallationsQuery as c, useFailureReportsQuery as i, useInsightsRetention as l, formatDays as n, useInsightsInstallationEventsQuery as o, keepsTwelveMonths as r, useInsightsInstallationQuery as s, DEFAULT_INSIGHTS_RETENTION as t, useUpdateFailuresQuery as u };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { c as readUpdateFailuresInput } from "./insights-failures-xaa41Buf.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-errors-BjnFUyZj.js
|
|
3
|
+
function readFailureReportsInput(input) {
|
|
4
|
+
readUpdateFailuresInput(input);
|
|
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.");
|
|
6
|
+
return input;
|
|
7
|
+
}
|
|
8
|
+
/** Exact text and reported context only; never guess a cause from the message. */
|
|
9
|
+
function groupFailureReports(events) {
|
|
10
|
+
const groups = /* @__PURE__ */ new Map();
|
|
11
|
+
for (const event of events) {
|
|
12
|
+
if (event.type !== "UPDATE_FAILED" || !event.failure) continue;
|
|
13
|
+
const f = event.failure;
|
|
14
|
+
const key = JSON.stringify([
|
|
15
|
+
f.stage,
|
|
16
|
+
f.reason,
|
|
17
|
+
f.errorMessage ?? null,
|
|
18
|
+
f.resource ?? null,
|
|
19
|
+
f.httpStatus ?? null,
|
|
20
|
+
f.originCode ?? null,
|
|
21
|
+
f.transport ?? null
|
|
22
|
+
]);
|
|
23
|
+
const group = groups.get(key) ?? [];
|
|
24
|
+
group.push(event);
|
|
25
|
+
groups.set(key, group);
|
|
26
|
+
}
|
|
27
|
+
return [...groups].map(([key, reports]) => ({
|
|
28
|
+
key,
|
|
29
|
+
reports: reports.sort((a, b) => b.receivedAtMs - a.receivedAtMs),
|
|
30
|
+
installations: new Set(reports.map((event) => event.installId)).size
|
|
31
|
+
})).sort((a, b) => b.reports.length - a.reports.length || b.reports[0].receivedAtMs - a.reports[0].receivedAtMs);
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { readFailureReportsInput as n, groupFailureReports as t };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { u as createServerFn } from "./createMiddleware-Cm6Tn0_Y.mjs";
|
|
2
|
+
import { t as consoleAccess } from "./console-access-BJfAXknd.mjs";
|
|
3
|
+
import { t as createServerRpc } from "./createServerRpc-RLR4H-Fn.mjs";
|
|
4
|
+
import { c as readUpdateFailuresInput } from "./insights-failures-xaa41Buf.mjs";
|
|
5
|
+
import { n as readFailureReportsInput } from "./insights-errors-BjnFUyZj.mjs";
|
|
6
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-failures-rpc-BvbWvqNf.js
|
|
7
|
+
var getUpdateFailuresRpc_createServerFn_handler = createServerRpc({
|
|
8
|
+
id: "0d1dacdd1e5ee6b100e5c142fb9af03602b6f2c6fe6af79312b36c223d7f8f97",
|
|
9
|
+
name: "getUpdateFailuresRpc",
|
|
10
|
+
filename: "src/lib/insights-failures-rpc.ts"
|
|
11
|
+
}, (opts) => getUpdateFailuresRpc.__executeServer(opts));
|
|
12
|
+
var getUpdateFailuresRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readUpdateFailuresInput).handler(getUpdateFailuresRpc_createServerFn_handler, async ({ data }) => {
|
|
13
|
+
const [{ prepareConfig }, { getUpdateFailuresReport }, { requireFeature }] = await Promise.all([
|
|
14
|
+
import("./config.server-DskXCAyI.mjs"),
|
|
15
|
+
import("./updateFailures-H6pnnYK4.mjs"),
|
|
16
|
+
import("./runtime.server-De0QVWc9.mjs")
|
|
17
|
+
]);
|
|
18
|
+
const { runtime } = await prepareConfig();
|
|
19
|
+
return getUpdateFailuresReport(await requireFeature(runtime, "insights"), data);
|
|
20
|
+
});
|
|
21
|
+
var listFailureReportsRpc_createServerFn_handler = createServerRpc({
|
|
22
|
+
id: "b4388826a9b515fb4d2113270aa8ded1c50ba13d7f07ac2b268c41396e87d0a3",
|
|
23
|
+
name: "listFailureReportsRpc",
|
|
24
|
+
filename: "src/lib/insights-failures-rpc.ts"
|
|
25
|
+
}, (opts) => listFailureReportsRpc.__executeServer(opts));
|
|
26
|
+
var listFailureReportsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readFailureReportsInput).handler(listFailureReportsRpc_createServerFn_handler, async ({ data }) => {
|
|
27
|
+
const [{ prepareConfig }, { listFailureReports }, { requireFeature }] = await Promise.all([
|
|
28
|
+
import("./config.server-DskXCAyI.mjs"),
|
|
29
|
+
import("./failureReports-DKDhVsXA.mjs"),
|
|
30
|
+
import("./runtime.server-De0QVWc9.mjs")
|
|
31
|
+
]);
|
|
32
|
+
const { runtime } = await prepareConfig();
|
|
33
|
+
return listFailureReports(await requireFeature(runtime, "insights"), data);
|
|
34
|
+
});
|
|
35
|
+
//#endregion
|
|
36
|
+
export { getUpdateFailuresRpc_createServerFn_handler, listFailureReportsRpc_createServerFn_handler };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { r as recoveryWindows } from "./insights-recovery-BWQhiZaF.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-failures-xaa41Buf.js
|
|
3
|
+
function readUpdateFailuresInput(input) {
|
|
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
|
+
return input;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The failure rate of update attempts: failed download and install reports,
|
|
9
|
+
* over those plus download reports. Null without either.
|
|
10
|
+
*/
|
|
11
|
+
var failureRate = ({ failedUpdates, downloads }) => failedUpdates + downloads === 0 ? null : failedUpdates / (failedUpdates + downloads);
|
|
12
|
+
/** Installations whose update check failed, over the active ones; estimates, so at most 100%. */
|
|
13
|
+
var checkFailureRate = ({ failedInstallations, activeInstallations }) => activeInstallations === 0 ? null : Math.min(1, failedInstallations / activeInstallations);
|
|
14
|
+
var formatRate = (rate) => rate === null ? "—" : `${(rate * 100).toFixed(2)}%`;
|
|
15
|
+
var STAGES = {
|
|
16
|
+
check: "Update check",
|
|
17
|
+
download: "Download",
|
|
18
|
+
install: "Install"
|
|
19
|
+
};
|
|
20
|
+
var REASONS = {
|
|
21
|
+
network: "Network",
|
|
22
|
+
http: "HTTP error",
|
|
23
|
+
invalid_response: "Invalid response",
|
|
24
|
+
hash_mismatch: "Hash mismatch",
|
|
25
|
+
signature: "Signature",
|
|
26
|
+
patch: "Patch",
|
|
27
|
+
extract: "Extract",
|
|
28
|
+
storage: "Storage",
|
|
29
|
+
unknown: "No reason reported"
|
|
30
|
+
};
|
|
31
|
+
var failureStageLabel = (stage) => STAGES[stage] ?? "Unknown stage";
|
|
32
|
+
var failureReasonLabel = (reason) => REASONS[reason] ?? "Unknown reason";
|
|
33
|
+
/** What else the client knew: its resource, HTTP status, origin code, and transport. */
|
|
34
|
+
var failureDetailParts = (detail) => [
|
|
35
|
+
...detail.httpStatus == null ? [] : [`HTTP ${detail.httpStatus}`],
|
|
36
|
+
...detail.originCode == null ? [] : [detail.originCode],
|
|
37
|
+
...detail.transport == null ? [] : [detail.transport],
|
|
38
|
+
...detail.resource == null ? [] : [detail.resource]
|
|
39
|
+
];
|
|
40
|
+
/** An update failure as one line: where, why, and what else the client knew. */
|
|
41
|
+
var describeFailure = (failure) => {
|
|
42
|
+
const message = failure.errorMessage || (failure.reason === "unknown" ? "The client did not report a detailed cause" : failureReasonLabel(failure.reason));
|
|
43
|
+
return [`${failureStageLabel(failure.stage)} failed: ${message}`, ...failureDetailParts(failure)].join(" · ");
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
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 };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-recovery-BWQhiZaF.js
|
|
2
|
+
var recoveryWindows = {
|
|
3
|
+
"24h": {
|
|
4
|
+
durationMs: 864e5,
|
|
5
|
+
intervalMs: 36e5
|
|
6
|
+
},
|
|
7
|
+
"7d": {
|
|
8
|
+
durationMs: 7 * 864e5,
|
|
9
|
+
intervalMs: 6 * 36e5
|
|
10
|
+
},
|
|
11
|
+
"30d": {
|
|
12
|
+
durationMs: 30 * 864e5,
|
|
13
|
+
intervalMs: 864e5
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Where a period ends: the end of the current UTC hour, as the server's
|
|
18
|
+
* reporting overview ends. The counters keep whole hours, so this is the
|
|
19
|
+
* latest end that still counts a report received just now; every Insights
|
|
20
|
+
* card ends here, so their numbers cover the same hours.
|
|
21
|
+
*/
|
|
22
|
+
var insightsPeriodEnd = (now) => Math.ceil(now / 36e5) * 36e5;
|
|
23
|
+
function readRecoveryInput(input) {
|
|
24
|
+
if (!input || input.platform !== "ios" && input.platform !== "android" || typeof input.channel !== "string" || !input.channel.trim() || input.channel.length > 1024 || !Object.hasOwn(recoveryWindows, input.window) || input.releaseId !== void 0 && (typeof input.releaseId !== "string" || !input.releaseId.trim() || input.releaseId.length > 1024)) throw new Error("Choose a platform, channel, and time window.");
|
|
25
|
+
return input;
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { readRecoveryInput as n, recoveryWindows as r, insightsPeriodEnd as t };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { u as createServerFn } from "./createMiddleware-Cm6Tn0_Y.mjs";
|
|
2
|
+
import { t as consoleAccess } from "./console-access-BJfAXknd.mjs";
|
|
3
|
+
import { t as createServerRpc } from "./createServerRpc-RLR4H-Fn.mjs";
|
|
4
|
+
import { n as readRecoveryInput } from "./insights-recovery-BWQhiZaF.mjs";
|
|
5
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-recovery-rpc-GiYXdkaY.js
|
|
6
|
+
function readBundleActivityInput(inputs) {
|
|
7
|
+
if (!Array.isArray(inputs) || inputs.length > 20) throw new Error("Choose up to 20 bundles.");
|
|
8
|
+
return inputs.map((input) => {
|
|
9
|
+
readRecoveryInput({
|
|
10
|
+
...input,
|
|
11
|
+
window: "30d"
|
|
12
|
+
});
|
|
13
|
+
if (!input.releaseId) throw new Error("Choose a bundle ID.");
|
|
14
|
+
return input;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
var getBundleActivityRpc_createServerFn_handler = createServerRpc({
|
|
18
|
+
id: "b4bf4c461903edcdc44eea52468c737b5b600a586f542138ff022dcbbe86c45c",
|
|
19
|
+
name: "getBundleActivityRpc",
|
|
20
|
+
filename: "src/lib/insights-recovery-rpc.ts"
|
|
21
|
+
}, (opts) => getBundleActivityRpc.__executeServer(opts));
|
|
22
|
+
var getBundleActivityRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readBundleActivityInput).handler(getBundleActivityRpc_createServerFn_handler, async ({ data }) => {
|
|
23
|
+
const [{ prepareConfig }, { getBundleActivity }, { requireFeature }] = await Promise.all([
|
|
24
|
+
import("./config.server-DskXCAyI.mjs"),
|
|
25
|
+
import("./bundleActivity-M5gzBFNg.mjs"),
|
|
26
|
+
import("./runtime.server-De0QVWc9.mjs")
|
|
27
|
+
]);
|
|
28
|
+
const { runtime } = await prepareConfig();
|
|
29
|
+
return getBundleActivity(await requireFeature(runtime, "insightsAnalytics"), data);
|
|
30
|
+
});
|
|
31
|
+
//#endregion
|
|
32
|
+
export { getBundleActivityRpc_createServerFn_handler };
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { u as createServerFn } from "./createMiddleware-Cm6Tn0_Y.mjs";
|
|
2
|
+
import { t as consoleAccess } from "./console-access-BJfAXknd.mjs";
|
|
3
|
+
import { t as createServerRpc } from "./createServerRpc-RLR4H-Fn.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-rpc-DP_8Rmz4.js
|
|
5
|
+
/** The Insights reads, once the console's access check and the feature guard pass. */
|
|
6
|
+
var insightsReads = async () => {
|
|
7
|
+
const [{ prepareConfig }, { requireFeature }] = await Promise.all([import("./config.server-DskXCAyI.mjs"), import("./runtime.server-De0QVWc9.mjs")]);
|
|
8
|
+
const { runtime } = await prepareConfig();
|
|
9
|
+
return requireFeature(runtime, "insights");
|
|
8
10
|
};
|
|
9
11
|
var readOverview = (input) => input;
|
|
10
12
|
var readEventsPage = (input) => input;
|
|
@@ -16,32 +18,38 @@ var getReportingInstallationsRpc_createServerFn_handler = createServerRpc({
|
|
|
16
18
|
name: "getReportingInstallationsRpc",
|
|
17
19
|
filename: "src/lib/insights-rpc.ts"
|
|
18
20
|
}, (opts) => getReportingInstallationsRpc.__executeServer(opts));
|
|
19
|
-
var getReportingInstallationsRpc = createServerFn({ method: "GET" }).validator(readOverview).handler(getReportingInstallationsRpc_createServerFn_handler, async ({ data }) => (await
|
|
21
|
+
var getReportingInstallationsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readOverview).handler(getReportingInstallationsRpc_createServerFn_handler, async ({ data }) => (await insightsReads()).getReportingOverview(data));
|
|
20
22
|
var listInsightsEventsRpc_createServerFn_handler = createServerRpc({
|
|
21
23
|
id: "d4c50f40701055145f24873dc90f3c55a5494457a6a03a743339b2ac4545eb19",
|
|
22
24
|
name: "listInsightsEventsRpc",
|
|
23
25
|
filename: "src/lib/insights-rpc.ts"
|
|
24
26
|
}, (opts) => listInsightsEventsRpc.__executeServer(opts));
|
|
25
|
-
var listInsightsEventsRpc = createServerFn({ method: "GET" }).validator(readEventsPage).handler(listInsightsEventsRpc_createServerFn_handler, async ({ data }) => (await
|
|
27
|
+
var listInsightsEventsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readEventsPage).handler(listInsightsEventsRpc_createServerFn_handler, async ({ data }) => (await insightsReads()).listEvents(data));
|
|
26
28
|
var listInsightsInstallationEventsRpc_createServerFn_handler = createServerRpc({
|
|
27
29
|
id: "3c04bc6624be6dfdd80cf96819f9c6d0455e59a7bb4c0374b6afb0162ffd15b0",
|
|
28
30
|
name: "listInsightsInstallationEventsRpc",
|
|
29
31
|
filename: "src/lib/insights-rpc.ts"
|
|
30
32
|
}, (opts) => listInsightsInstallationEventsRpc.__executeServer(opts));
|
|
31
|
-
var listInsightsInstallationEventsRpc = createServerFn({ method: "GET" }).validator(readInstallationEventsPage).handler(listInsightsInstallationEventsRpc_createServerFn_handler, async ({ data }) => (await
|
|
33
|
+
var listInsightsInstallationEventsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readInstallationEventsPage).handler(listInsightsInstallationEventsRpc_createServerFn_handler, async ({ data }) => (await insightsReads()).listInstallationEvents(data));
|
|
32
34
|
var getInsightsInstallationRpc_createServerFn_handler = createServerRpc({
|
|
33
35
|
id: "6726f1ed9eda1f0cb4c1f1ad1023faee435ddcfd0b7c55ef08ca7f2f7f577370",
|
|
34
36
|
name: "getInsightsInstallationRpc",
|
|
35
37
|
filename: "src/lib/insights-rpc.ts"
|
|
36
38
|
}, (opts) => getInsightsInstallationRpc.__executeServer(opts));
|
|
37
|
-
var getInsightsInstallationRpc = createServerFn({ method: "GET" }).validator(readInstallId).handler(getInsightsInstallationRpc_createServerFn_handler, async ({ data }) => (await
|
|
39
|
+
var getInsightsInstallationRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readInstallId).handler(getInsightsInstallationRpc_createServerFn_handler, async ({ data }) => (await insightsReads()).getInstallation(data));
|
|
40
|
+
var getInsightsRetentionRpc_createServerFn_handler = createServerRpc({
|
|
41
|
+
id: "c6f18db42ac40385dbff247095197ee9f3fd3a97dc914efd368ce0ded1f098c6",
|
|
42
|
+
name: "getInsightsRetentionRpc",
|
|
43
|
+
filename: "src/lib/insights-rpc.ts"
|
|
44
|
+
}, (opts) => getInsightsRetentionRpc.__executeServer(opts));
|
|
45
|
+
var getInsightsRetentionRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).handler(getInsightsRetentionRpc_createServerFn_handler, async () => (await insightsReads()).getRetention());
|
|
38
46
|
var findInsightsInstallationsRpc_createServerFn_handler = createServerRpc({
|
|
39
47
|
id: "735c501f6d5ea81a445ff2b6b2ea6a1b589e3c6f63a465a881822c80ae71e7d1",
|
|
40
48
|
name: "findInsightsInstallationsRpc",
|
|
41
49
|
filename: "src/lib/insights-rpc.ts"
|
|
42
50
|
}, (opts) => findInsightsInstallationsRpc.__executeServer(opts));
|
|
43
|
-
var findInsightsInstallationsRpc = createServerFn({ method: "GET" }).validator(readInstallationPage).handler(findInsightsInstallationsRpc_createServerFn_handler, async ({ data }) => {
|
|
44
|
-
const insights = await
|
|
51
|
+
var findInsightsInstallationsRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator(readInstallationPage).handler(findInsightsInstallationsRpc_createServerFn_handler, async ({ data }) => {
|
|
52
|
+
const insights = await insightsReads();
|
|
45
53
|
const install = data.cursor ? null : await insights.getInstallation({ installId: data.identity });
|
|
46
54
|
const matches = await insights.pageInstallationsByCurrentUserId({
|
|
47
55
|
cursor: data.cursor,
|
|
@@ -54,4 +62,4 @@ var findInsightsInstallationsRpc = createServerFn({ method: "GET" }).validator(r
|
|
|
54
62
|
};
|
|
55
63
|
});
|
|
56
64
|
//#endregion
|
|
57
|
-
export { findInsightsInstallationsRpc_createServerFn_handler, getInsightsInstallationRpc_createServerFn_handler, getReportingInstallationsRpc_createServerFn_handler, listInsightsEventsRpc_createServerFn_handler, listInsightsInstallationEventsRpc_createServerFn_handler };
|
|
65
|
+
export { findInsightsInstallationsRpc_createServerFn_handler, getInsightsInstallationRpc_createServerFn_handler, getInsightsRetentionRpc_createServerFn_handler, getReportingInstallationsRpc_createServerFn_handler, listInsightsEventsRpc_createServerFn_handler, listInsightsInstallationEventsRpc_createServerFn_handler };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-usage-BpBM0U0c.js
|
|
2
|
+
var usageMetrics = {
|
|
3
|
+
"24h": {
|
|
4
|
+
label: "DAU",
|
|
5
|
+
period: "24 hours",
|
|
6
|
+
interval: "hour"
|
|
7
|
+
},
|
|
8
|
+
"7d": {
|
|
9
|
+
label: "WAU",
|
|
10
|
+
period: "7 days",
|
|
11
|
+
interval: "6 hours"
|
|
12
|
+
},
|
|
13
|
+
"30d": {
|
|
14
|
+
label: "MAU",
|
|
15
|
+
period: "30 days",
|
|
16
|
+
interval: "day"
|
|
17
|
+
},
|
|
18
|
+
"12m": {
|
|
19
|
+
label: "YAU",
|
|
20
|
+
period: "12 months",
|
|
21
|
+
interval: "week"
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
function readAppUsageInput(input) {
|
|
25
|
+
if (!input || input.platform !== "all" && input.platform !== "ios" && input.platform !== "android" || typeof input.channel !== "string" || !input.channel.trim() || input.channel.length > 1024 || !Object.hasOwn(usageMetrics, input.window) || input.appVersion !== void 0 && (typeof input.appVersion !== "string" || !input.appVersion.trim() || input.appVersion.length > 1024)) throw new Error("Choose App usage filters and a time window.");
|
|
26
|
+
return input;
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { usageMetrics as n, readAppUsageInput as t };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { u as createServerFn } from "./createMiddleware-Cm6Tn0_Y.mjs";
|
|
2
|
+
import { t as consoleAccess } from "./console-access-BJfAXknd.mjs";
|
|
3
|
+
import { t as createServerRpc } from "./createServerRpc-RLR4H-Fn.mjs";
|
|
4
|
+
import { t as readAppUsageInput } from "./insights-usage-BpBM0U0c.mjs";
|
|
5
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-usage-rpc-BiolgB8e.js
|
|
6
|
+
var getAppUsageReportRpc_createServerFn_handler = createServerRpc({
|
|
7
|
+
id: "8a98cd9c178e4a54185d62c25a95f09d3d59850c43d3f5baa1563e1614ad942e",
|
|
8
|
+
name: "getAppUsageReportRpc",
|
|
9
|
+
filename: "src/lib/insights-usage-rpc.ts"
|
|
10
|
+
}, (opts) => getAppUsageReportRpc.__executeServer(opts));
|
|
11
|
+
var getAppUsageReportRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator((input) => {
|
|
12
|
+
readAppUsageInput(input);
|
|
13
|
+
return {
|
|
14
|
+
platform: input.platform,
|
|
15
|
+
channel: input.channel,
|
|
16
|
+
appVersion: input.appVersion,
|
|
17
|
+
window: input.window
|
|
18
|
+
};
|
|
19
|
+
}).handler(getAppUsageReportRpc_createServerFn_handler, async ({ data }) => {
|
|
20
|
+
const [{ prepareConfig }, { getAppUsageReport }, { requireFeature }] = await Promise.all([
|
|
21
|
+
import("./config.server-DskXCAyI.mjs"),
|
|
22
|
+
import("./insightsUsage-CzhVjsc8.mjs"),
|
|
23
|
+
import("./runtime.server-De0QVWc9.mjs")
|
|
24
|
+
]);
|
|
25
|
+
const { runtime } = await prepareConfig();
|
|
26
|
+
return getAppUsageReport(await requireFeature(runtime, "insightsAnalytics"), data);
|
|
27
|
+
});
|
|
28
|
+
//#endregion
|
|
29
|
+
export { getAppUsageReportRpc_createServerFn_handler };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { u as createServerFn } from "./createMiddleware-Cm6Tn0_Y.mjs";
|
|
2
|
+
import { t as consoleAccess } from "./console-access-BJfAXknd.mjs";
|
|
3
|
+
import { D as ProgressTrack$1, E as ProgressIndicator$1, O as ProgressRoot, gt as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
4
|
+
import { A as createSsrRpc, k as cn } from "./sidebar-DJcErBMo.mjs";
|
|
5
|
+
import { t as readAppUsageInput } from "./insights-usage-BpBM0U0c.mjs";
|
|
6
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights-usage-rpc-KStL0zOx.js
|
|
7
|
+
var import_jsx_runtime = require_jsx_runtime();
|
|
8
|
+
function Progress$1({ className, children, value, ...props }) {
|
|
9
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(ProgressRoot, {
|
|
10
|
+
value,
|
|
11
|
+
"data-slot": "progress",
|
|
12
|
+
className: cn("w-full", className),
|
|
13
|
+
...props,
|
|
14
|
+
children: [children, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProgressTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProgressIndicator, {}) })]
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function ProgressTrack({ className, ...props }) {
|
|
18
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProgressTrack$1, {
|
|
19
|
+
className: cn("relative flex h-1 w-full items-center overflow-x-hidden rounded-md bg-muted", className),
|
|
20
|
+
"data-slot": "progress-track",
|
|
21
|
+
...props
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function ProgressIndicator({ className, ...props }) {
|
|
25
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProgressIndicator$1, {
|
|
26
|
+
"data-slot": "progress-indicator",
|
|
27
|
+
className: cn("h-full bg-primary transition-transform motion-reduce:transition-none", className),
|
|
28
|
+
...props
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
var getAppUsageReportRpc = createServerFn({ method: "GET" }).middleware([consoleAccess]).validator((input) => {
|
|
32
|
+
readAppUsageInput(input);
|
|
33
|
+
return {
|
|
34
|
+
platform: input.platform,
|
|
35
|
+
channel: input.channel,
|
|
36
|
+
appVersion: input.appVersion,
|
|
37
|
+
window: input.window
|
|
38
|
+
};
|
|
39
|
+
}).handler(createSsrRpc("8a98cd9c178e4a54185d62c25a95f09d3d59850c43d3f5baa1563e1614ad942e"));
|
|
40
|
+
//#endregion
|
|
41
|
+
export { getAppUsageReportRpc as n, Progress$1 as t };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { r as recoveryWindows, t as insightsPeriodEnd } from "./insights-recovery-BWQhiZaF.mjs";
|
|
2
|
+
import { t as readAppUsageInput } from "./insights-usage-BpBM0U0c.mjs";
|
|
3
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insightsUsage-CzhVjsc8.js
|
|
4
|
+
var DAY_MS = 864e5;
|
|
5
|
+
var WEEK_MS = 7 * DAY_MS;
|
|
6
|
+
/**
|
|
7
|
+
* What a period reads, ending with the current hour. The 12-month period is
|
|
8
|
+
* 52 weeks of whole UTC days, the last one today, so it reads the daily
|
|
9
|
+
* counts: the hourly ones are kept 90 days.
|
|
10
|
+
*/
|
|
11
|
+
var usageRange = (window, now) => {
|
|
12
|
+
const end = insightsPeriodEnd(now);
|
|
13
|
+
if (window === "12m") {
|
|
14
|
+
const lastDay = Math.ceil(end / DAY_MS) * DAY_MS;
|
|
15
|
+
return {
|
|
16
|
+
start: Math.max(0, lastDay - 52 * WEEK_MS),
|
|
17
|
+
end,
|
|
18
|
+
intervalMs: WEEK_MS
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const { durationMs, intervalMs } = recoveryWindows[window];
|
|
22
|
+
return {
|
|
23
|
+
start: Math.max(0, end - durationMs),
|
|
24
|
+
end,
|
|
25
|
+
intervalMs
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
async function getAppUsageReport(model, input, now = Date.now()) {
|
|
29
|
+
readAppUsageInput(input);
|
|
30
|
+
const { start, end, intervalMs } = usageRange(input.window, now);
|
|
31
|
+
const report = await model.getAppUsage({
|
|
32
|
+
channel: input.channel,
|
|
33
|
+
platform: input.platform,
|
|
34
|
+
...input.appVersion === void 0 ? {} : { appVersion: input.appVersion },
|
|
35
|
+
timeRange: {
|
|
36
|
+
start,
|
|
37
|
+
end
|
|
38
|
+
},
|
|
39
|
+
intervalMs
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
bundleDistribution: report.bundleDistribution,
|
|
43
|
+
activeInstallations: report.activeInstallations,
|
|
44
|
+
sinceMs: report.coverage.sinceMs === null ? start : Math.max(start, report.coverage.sinceMs),
|
|
45
|
+
distributionSinceMs: start - start % DAY_MS,
|
|
46
|
+
beforeReceivedAtMs: end,
|
|
47
|
+
intervalMs,
|
|
48
|
+
truncated: report.coverage.kind === "partial",
|
|
49
|
+
appVersions: report.appVersions,
|
|
50
|
+
versions: report.versions,
|
|
51
|
+
platforms: report.platforms,
|
|
52
|
+
points: report.points
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { getAppUsageReport };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { t as ConsoleFeatureUnavailable } from "./ConsoleFeatureUnavailable-ldW8v8-q.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights_.distribution-CVrnbP3R.js
|
|
3
|
+
/** How a distribution row's bundle reads aloud. */
|
|
4
|
+
/** The bundle an app version's native build shipped, by its ID. */
|
|
5
|
+
var SplitNotFoundComponent = ConsoleFeatureUnavailable;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { SplitNotFoundComponent as notFoundComponent };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { f as lazyRouteComponent, p as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
2
|
+
import { r as requireConsoleFeature } from "./console-features-api-C9kiKvaV.mjs";
|
|
3
|
+
import { i as validateDistributionSearch } from "./InsightsInfo-DuJFatQO.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/insights_.distribution-D2HaNTAA.js
|
|
5
|
+
var $$splitComponentImporter = () => import("./insights_.distribution-DN9pR422.mjs");
|
|
6
|
+
var $$splitNotFoundComponentImporter = () => import("./insights_.distribution-CVrnbP3R.mjs");
|
|
7
|
+
/** How a distribution row's bundle reads aloud. */
|
|
8
|
+
/** The bundle an app version's native build shipped, by its ID. */
|
|
9
|
+
var Route = createFileRoute("/insights_/distribution")({
|
|
10
|
+
beforeLoad: ({ context }) => requireConsoleFeature(context.queryClient, "insightsAnalytics"),
|
|
11
|
+
notFoundComponent: lazyRouteComponent($$splitNotFoundComponentImporter, "notFoundComponent"),
|
|
12
|
+
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
13
|
+
validateSearch: validateDistributionSearch
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
|
16
|
+
export { Route as t };
|