@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.
Files changed (342) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/ConsoleFeatureUnavailable-jB4Loglh.js +1 -0
  3. package/.output/public/assets/EventDetails-B6yUsyNA.js +1 -0
  4. package/.output/public/assets/HashValueDisplay-BFX_kY3-.js +1 -0
  5. package/.output/public/assets/InsightsInfo-BNO0WznZ.js +1 -0
  6. package/.output/public/assets/InsightsPageHeader-B892oVml.js +1 -0
  7. package/.output/public/assets/NotFoundPage-DIqCpWa3.js +1 -0
  8. package/.output/public/assets/alert-dialog-Bbk_4-WJ.js +1 -0
  9. package/.output/public/assets/api-DCM0wr6O.js +1 -0
  10. package/.output/public/assets/api-keys-CIO9L_wu.js +1 -0
  11. package/.output/public/assets/api-keys-DVTL_--f.js +1 -0
  12. package/.output/public/assets/arrow-left-CnMYpqB7.js +1 -0
  13. package/.output/public/assets/arrow-up-right-BtffZA6e.js +1 -0
  14. package/.output/public/assets/chevron-right-BqD5wtFb.js +1 -0
  15. package/.output/public/assets/clipboard-DS9ucUQL.js +1 -0
  16. package/.output/public/assets/console-features-api-BH5m_PtQ.js +1 -0
  17. package/.output/public/assets/dialog-Bqbb7B0N.js +1 -0
  18. package/.output/public/assets/dist-LxKJB-Vu.js +1 -0
  19. package/.output/public/assets/empty-CuT2UhFp.js +1 -0
  20. package/.output/public/assets/field-BBDpjIqu.js +1 -0
  21. package/.output/public/assets/index-6o51GkFe.js +11 -0
  22. package/.output/public/assets/input-group-ja_30qaF.js +1 -0
  23. package/.output/public/assets/insights-CmraDzQh.js +1 -0
  24. package/.output/public/assets/insights-CxZ2GCYV.js +2 -0
  25. package/.output/public/assets/insights-api-BigAU9sZ.js +1 -0
  26. package/.output/public/assets/insights-usage-rpc-DYEhsCKT.js +1 -0
  27. package/.output/public/assets/insights-vNRCrfnS.js +42 -0
  28. package/.output/public/assets/insights_.distribution-ChOerfJt.js +1 -0
  29. package/.output/public/assets/insights_.distribution-D-e4iga8.js +1 -0
  30. package/.output/public/assets/insights_.distribution-DZtkibX1.js +2 -0
  31. package/.output/public/assets/installations-BazSJXE0.js +2 -0
  32. package/.output/public/assets/installations-ClHTqdAO.js +1 -0
  33. package/.output/public/assets/installations-DpKsBuHi.js +1 -0
  34. package/.output/public/assets/key-round-wS_SIZ6b.js +1 -0
  35. package/.output/public/assets/list-CgrYiadM.js +1 -0
  36. package/.output/public/assets/refresh-cw-BYgoNCco.js +1 -0
  37. package/.output/public/assets/remote-config-BWwHOkCK.js +1 -0
  38. package/.output/public/assets/remote-config-Br56BODb.js +6 -0
  39. package/.output/public/assets/remote-config-CXOi0LRu.js +1 -0
  40. package/.output/public/assets/routes-B88Erkpk.js +2 -0
  41. package/.output/public/assets/routes-CfzsAleC.js +1 -0
  42. package/.output/public/assets/search-DaTDPW25.js +1 -0
  43. package/.output/public/assets/select-BZZBXMkr.js +1 -0
  44. package/.output/public/assets/sidebar-DNVyJPfX.js +3 -0
  45. package/.output/public/assets/smartphone-DpTFgtKf.js +1 -0
  46. package/.output/public/assets/styles-DTGEAJFv.css +2 -0
  47. package/.output/public/assets/switch-DZ1TPwx-.js +1 -0
  48. package/.output/public/assets/table-Gm4qRWwE.js +1 -0
  49. package/.output/public/assets/tabs-C7FOEjFC.js +1 -0
  50. package/.output/public/assets/undo-2-CmrHjwFc.js +1 -0
  51. package/.output/public/assets/useCompositeListItem-9E4pj_CH.js +1 -0
  52. package/.output/public/assets/valueToPercent-CH8GCHaL.js +1 -0
  53. package/.output/server/__23tanstack-start-server-fn-resolver-BpRlos5Q.mjs +170 -0
  54. package/.output/server/_libs/@base-ui/react+[...].mjs +4389 -4207
  55. package/.output/server/_libs/@tanstack/react-router+[...].mjs +3802 -4022
  56. package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +140 -97
  57. package/.output/server/_libs/lucide-react.mjs +221 -9
  58. package/.output/server/_libs/next-themes.mjs +1 -1
  59. package/.output/server/_libs/react-redux+[...].mjs +1 -1
  60. package/.output/server/_libs/recharts+[...].mjs +483 -901
  61. package/.output/server/_libs/sonner.mjs +1 -1
  62. package/.output/server/_libs/tanstack__history.mjs +68 -41
  63. package/.output/server/_libs/tanstack__query-core.mjs +2010 -309
  64. package/.output/server/_libs/tanstack__react-query.mjs +448 -21
  65. package/.output/server/_libs/verkit.mjs +102 -1
  66. package/.output/server/_ssr/BundleIdDisplay-x94o9rlU.mjs +13 -0
  67. package/.output/server/_ssr/ConsoleFeatureUnavailable-ldW8v8-q.mjs +58 -0
  68. package/.output/server/_ssr/EventDetails-Q8kfj9Nr.mjs +344 -0
  69. package/.output/server/_ssr/{HashValueDisplay-C5tS4oGo.mjs → HashValueDisplay-n1GholGS.mjs} +3 -3
  70. package/.output/server/_ssr/InsightsInfo-DuJFatQO.mjs +75 -0
  71. package/.output/server/_ssr/InsightsPageHeader-BSUX3Ye9.mjs +145 -0
  72. package/.output/server/_ssr/NotFoundPage-DZzOOzS3.mjs +37 -0
  73. package/.output/server/_ssr/{dialog-WiIAKl4L.mjs → alert-dialog-C43Doa0I.mjs} +6 -83
  74. package/.output/server/_ssr/{api-keys-aXriWrv7.mjs → api-keys-B4sYm8dM.mjs} +48 -9
  75. package/.output/server/_ssr/api-keys-CEnM9fqG.mjs +5 -0
  76. package/.output/server/_ssr/api-keys-rpc-BIFuUgMt.mjs +52 -0
  77. package/.output/server/_ssr/api-oZjRn9tP.mjs +186 -0
  78. package/.output/server/_ssr/api-rpc-BNiFRRK8.mjs +240 -0
  79. package/.output/server/_ssr/{auth-BF8mbAgF.mjs → auth-UP0wXs4i.mjs} +1 -1
  80. package/.output/server/_ssr/{auth-rpc-B7w3AdRr.mjs → auth-rpc-DnZqYxyq.mjs} +6 -6
  81. package/.output/server/_ssr/auth.server-DFpyxRDd.mjs +5374 -0
  82. package/.output/server/_ssr/bundleActivity-M5gzBFNg.mjs +18 -0
  83. package/.output/server/_ssr/config-WVX4IxSR.mjs +15 -0
  84. package/.output/server/_ssr/config.server-DskXCAyI.mjs +35 -0
  85. package/.output/server/_ssr/console-access-BJfAXknd.mjs +17 -0
  86. package/.output/server/_ssr/console-features-Oz0q20jJ.mjs +61 -0
  87. package/.output/server/_ssr/console-features-api-C9kiKvaV.mjs +43 -0
  88. package/.output/server/_ssr/console-features-rpc-P0GL7Z-R.mjs +19 -0
  89. package/.output/server/_ssr/{createServerFn-B2hcXoPM.mjs → createMiddleware-Cm6Tn0_Y.mjs} +67 -56
  90. package/.output/server/_ssr/{createServerRpc-DB29C_5p.mjs → createServerRpc-RLR4H-Fn.mjs} +2 -2
  91. package/.output/server/_ssr/databaseConfig-C5SkAyUy.mjs +5 -0
  92. package/.output/server/_ssr/{databaseJsonValue-d6I3nAS4.mjs → databaseJsonValue-Csbuzc9Q.mjs} +28 -5
  93. package/.output/server/_ssr/databaseRows-CPphvbag.mjs +73 -0
  94. package/.output/server/_ssr/dialog-BbYDMjdC.mjs +84 -0
  95. package/.output/server/_ssr/{dist-CyzPaI5v.mjs → dist-CbQbBIw-.mjs} +140 -7
  96. package/.output/server/_ssr/{downloadBundle-CI7JUKvC.mjs → downloadBundle-CZysjmNW.mjs} +10 -10
  97. package/.output/server/_ssr/empty-CVLGfxuu.mjs +60 -0
  98. package/.output/server/_ssr/{empty-plugin-adapters-B5QvGpEl.mjs → empty-plugin-adapters-CPtwX8a7.mjs} +1 -1
  99. package/.output/server/_ssr/failureReports-DKDhVsXA.mjs +33 -0
  100. package/.output/server/_ssr/field-asw83X0v.mjs +189 -0
  101. package/.output/server/_ssr/getBundleChildren-Cv9iz1As.mjs +22 -0
  102. package/.output/server/_ssr/{input-group-Coj6SwVP.mjs → input-group-CuYJHosb.mjs} +2 -2
  103. package/.output/server/_ssr/insights-B55FG5fm.mjs +14 -0
  104. package/.output/server/_ssr/insights-CWnHIFUV.mjs +5 -0
  105. package/.output/server/_ssr/insights-CpLpedFZ.mjs +2315 -0
  106. package/.output/server/_ssr/insights-api-sjws23WF.mjs +122 -0
  107. package/.output/server/_ssr/insights-errors-BjnFUyZj.mjs +34 -0
  108. package/.output/server/_ssr/insights-failures-rpc-BvbWvqNf.mjs +36 -0
  109. package/.output/server/_ssr/insights-failures-xaa41Buf.mjs +46 -0
  110. package/.output/server/_ssr/insights-recovery-BWQhiZaF.mjs +28 -0
  111. package/.output/server/_ssr/insights-recovery-rpc-GiYXdkaY.mjs +32 -0
  112. package/.output/server/_ssr/{insights-rpc-l2-oBYth.mjs → insights-rpc-DP_8Rmz4.mjs} +22 -14
  113. package/.output/server/_ssr/insights-usage-BpBM0U0c.mjs +29 -0
  114. package/.output/server/_ssr/insights-usage-rpc-BiolgB8e.mjs +29 -0
  115. package/.output/server/_ssr/insights-usage-rpc-KStL0zOx.mjs +41 -0
  116. package/.output/server/_ssr/insightsUsage-CzhVjsc8.mjs +56 -0
  117. package/.output/server/_ssr/insights_.distribution-CVrnbP3R.mjs +7 -0
  118. package/.output/server/_ssr/insights_.distribution-D2HaNTAA.mjs +16 -0
  119. package/.output/server/_ssr/{insights_.distribution-INw6QxbU.mjs → insights_.distribution-DN9pR422.mjs} +50 -22
  120. package/.output/server/_ssr/installations-BHmbbnH8.mjs +5 -0
  121. package/.output/server/_ssr/{installations-DH-tQuRo.mjs → installations-BSCmFq8Q.mjs} +279 -367
  122. package/.output/server/_ssr/installations-DD1g__Nc.mjs +69 -0
  123. package/.output/server/_ssr/listReleases-BfUBlCHo.mjs +79 -0
  124. package/.output/server/_ssr/plugins-BaD1slHx.mjs +2086 -0
  125. package/.output/server/_ssr/release-adoption-005tQRpo.mjs +55 -0
  126. package/.output/server/_ssr/release-adoption-rpc-BsstqxUp.mjs +41 -0
  127. package/.output/server/_ssr/releaseAdoption-CtOFkwli.mjs +114 -0
  128. package/.output/server/_ssr/releaseManagement-DFMUnDF5.mjs +11 -0
  129. package/.output/server/_ssr/remote-config-C2Ee8lXO.mjs +5 -0
  130. package/.output/server/_ssr/remote-config-Dv1ccMo-.mjs +17 -0
  131. package/.output/server/_ssr/remote-config-of0lGQH8.mjs +2648 -0
  132. package/.output/server/_ssr/remote-config-rpc-BzX31mUS.mjs +115 -0
  133. package/.output/server/_ssr/rolldown-runtime-rSIU-vHC.mjs +13 -0
  134. package/.output/server/_ssr/{router-DfFyAp5p.mjs → router-D8NuoJ_I.mjs} +117 -136
  135. package/.output/server/_ssr/{routes-BtsfVx-p.mjs → routes-DgvnFqDy.mjs} +195 -429
  136. package/.output/server/_ssr/routes-V8sDybGf.mjs +409 -0
  137. package/.output/server/_ssr/runtime.server-De0QVWc9.mjs +104 -0
  138. package/.output/server/_ssr/schema-BiAVyEj2.mjs +361 -0
  139. package/.output/server/_ssr/{select-CyvLaMza.mjs → select-t3iXRwc9.mjs} +3 -3
  140. package/.output/server/_ssr/server-h4VxnExB.mjs +8325 -0
  141. package/.output/server/_ssr/{createSsrRpc-C-dLcQuy.mjs → sidebar-DJcErBMo.mjs} +107 -47
  142. package/.output/server/_ssr/ssr.mjs +1 -1
  143. package/.output/server/_ssr/start-BfFbHKMK.mjs +4 -0
  144. package/.output/server/_ssr/switch-E-btwMGt.mjs +43 -0
  145. package/.output/server/_ssr/{table-CkVhsNpe.mjs → table-37Dd23TN.mjs} +2 -2
  146. package/.output/server/_ssr/tabs-DEFnTm95.mjs +45 -0
  147. package/.output/server/_ssr/updateFailures-H6pnnYK4.mjs +40 -0
  148. package/.output/server/_ssr/{uuidv7-D0QFkPL_.mjs → uuidv7-C88s9jWF.mjs} +2 -2
  149. package/.output/server/_tanstack-start-manifest_v-55AGsehh.mjs +139 -0
  150. package/.output/server/index.mjs +303 -205
  151. package/LICENSE +13 -14
  152. package/README.md +80 -71
  153. package/lib/index.d.mts +23 -11
  154. package/lib/vite-internal.mjs +13 -3
  155. package/lib/vite.d.mts +2 -0
  156. package/package.json +14 -14
  157. package/src/components/AppSidebar.tsx +74 -75
  158. package/src/components/ConsoleAccessPage.tsx +5 -1
  159. package/src/components/ConsoleFeatureUnavailable.tsx +80 -0
  160. package/src/components/NotFoundPage.tsx +7 -7
  161. package/src/components/features/FeatureSlots.tsx +103 -0
  162. package/src/components/features/api-keys/apiKeysFeatureUi.tsx +15 -0
  163. package/src/components/features/bundles/BundleMetadata.tsx +8 -5
  164. package/src/components/features/bundles/RolloutCohortsDialog.tsx +1 -1
  165. package/src/components/features/channels/ChannelManagementDialog.tsx +8 -6
  166. package/src/components/features/insights/AppUsage.tsx +41 -14
  167. package/src/components/features/insights/BuiltinBundle.tsx +36 -0
  168. package/src/components/features/insights/ComparedBundlesChart.tsx +310 -0
  169. package/src/components/features/insights/EstimatedCount.tsx +18 -0
  170. package/src/components/features/insights/EventDetails.tsx +390 -26
  171. package/src/components/features/insights/EventHistoryCard.tsx +111 -25
  172. package/src/components/features/insights/EventHistoryList.tsx +1 -1
  173. package/src/components/features/insights/FailureReports.tsx +407 -0
  174. package/src/components/features/insights/InsightsControls.tsx +240 -142
  175. package/src/components/features/insights/InsightsErrorAlert.tsx +14 -1
  176. package/src/components/features/insights/InsightsOverview.tsx +601 -403
  177. package/src/components/features/insights/InsightsPageHeader.tsx +19 -14
  178. package/src/components/features/insights/InsightsPeriodSelector.tsx +67 -12
  179. package/src/components/features/insights/InstallationHistoryCard.tsx +65 -10
  180. package/src/components/features/insights/InstallationMatchesCard.tsx +1 -1
  181. package/src/components/features/insights/ReleaseActivity.tsx +308 -0
  182. package/src/components/features/insights/ReportingDevicesSummary.tsx +13 -13
  183. package/src/components/features/insights/RollbackButton.tsx +118 -0
  184. package/src/components/features/insights/UpdateFailures.tsx +382 -0
  185. package/src/components/features/insights/insightsFeatureUi.tsx +35 -0
  186. package/src/components/features/releases/ReleaseEditorSheet.tsx +27 -13
  187. package/src/components/features/remote-config/ConditionDialog.tsx +592 -0
  188. package/src/components/features/remote-config/ConditionsCard.tsx +247 -0
  189. package/src/components/features/remote-config/ParameterDialog.tsx +426 -0
  190. package/src/components/features/remote-config/ParametersCard.tsx +254 -0
  191. package/src/components/features/remote-config/PreviewCard.tsx +284 -0
  192. package/src/components/features/remote-config/PublishDialog.tsx +325 -0
  193. package/src/components/features/remote-config/RemoteConfigPage.tsx +353 -0
  194. package/src/components/features/remote-config/RuleSummary.tsx +21 -0
  195. package/src/components/features/remote-config/ValueInput.tsx +151 -0
  196. package/src/components/features/remote-config/VersionsCard.tsx +384 -0
  197. package/src/components/features/remote-config/remoteConfigFeatureUi.tsx +15 -0
  198. package/src/components/features/remote-config/useDateTimeText.ts +16 -0
  199. package/src/components/ui/sidebar.tsx +22 -29
  200. package/src/index.ts +26 -19
  201. package/src/lib/api-keys-api.ts +0 -28
  202. package/src/lib/api-keys-rpc.ts +27 -38
  203. package/src/lib/api-rpc.ts +125 -288
  204. package/src/lib/api.ts +15 -134
  205. package/src/lib/bundle-activity.ts +24 -4
  206. package/src/lib/console-access.ts +20 -0
  207. package/src/lib/console-features-api.ts +68 -0
  208. package/src/lib/console-features-rpc.ts +13 -0
  209. package/src/lib/console-features.ts +98 -0
  210. package/src/lib/insights-api.ts +56 -2
  211. package/src/lib/insights-errors.ts +64 -0
  212. package/src/lib/insights-failures-rpc.ts +36 -0
  213. package/src/lib/insights-failures.ts +130 -0
  214. package/src/lib/insights-recovery-rpc.ts +13 -17
  215. package/src/lib/insights-recovery.ts +12 -36
  216. package/src/lib/insights-retention.ts +21 -0
  217. package/src/lib/insights-rpc.ts +30 -12
  218. package/src/lib/insights-search.ts +50 -4
  219. package/src/lib/insights-usage-rpc.ts +15 -9
  220. package/src/lib/insights-usage.ts +41 -3
  221. package/src/lib/insights-view.ts +34 -5
  222. package/src/lib/release-adoption-api.ts +214 -0
  223. package/src/lib/release-adoption-rpc.ts +49 -0
  224. package/src/lib/release-adoption.ts +164 -0
  225. package/src/lib/remote-config-api.ts +119 -0
  226. package/src/lib/remote-config-draft.ts +666 -0
  227. package/src/lib/remote-config-rpc.ts +196 -0
  228. package/src/lib/scroll-restoration.ts +21 -0
  229. package/src/lib/server/auth.server.ts +13 -5
  230. package/src/lib/server/bundleActivity.ts +27 -28
  231. package/src/lib/server/config.server.ts +21 -76
  232. package/src/lib/server/console-feature-apis.ts +70 -0
  233. package/src/lib/server/console-runtime.server.ts +82 -38
  234. package/src/lib/server/downloadBundle.ts +14 -15
  235. package/src/lib/server/failureReports.ts +50 -0
  236. package/src/lib/server/getBundleChildren.ts +31 -122
  237. package/src/lib/server/insightsUsage.ts +52 -113
  238. package/src/lib/server/listReleases.ts +109 -44
  239. package/src/lib/server/releaseAdoption.ts +151 -0
  240. package/src/lib/server/releaseReachability.ts +8 -8
  241. package/src/lib/server/remoteConfig.ts +75 -0
  242. package/src/lib/server/runtime.server.ts +120 -31
  243. package/src/lib/server/updateFailures.ts +66 -0
  244. package/src/lib/use-dialog-target.ts +27 -0
  245. package/src/routeTree.gen.ts +44 -44
  246. package/src/router.tsx +3 -2
  247. package/src/routes/-installations-search.ts +32 -8
  248. package/src/routes/-releases-search.ts +76 -29
  249. package/src/routes/__root.tsx +7 -1
  250. package/src/routes/api/bundles/$bundleId/download.ts +2 -5
  251. package/src/routes/api-keys.tsx +5 -2
  252. package/src/routes/index.tsx +210 -152
  253. package/src/routes/insights.tsx +91 -23
  254. package/src/routes/insights_.distribution.tsx +50 -9
  255. package/src/routes/installations.tsx +97 -40
  256. package/src/routes/remote-config.tsx +42 -0
  257. package/src/styles.css +9 -0
  258. package/src/vite-internal.ts +15 -3
  259. package/src/vite.ts +2 -0
  260. package/.output/public/assets/HashValueDisplay-BpTc3Oyg.js +0 -1
  261. package/.output/public/assets/InsightsPageHeader-DC2eEst8.js +0 -1
  262. package/.output/public/assets/api-CdUyUqzR.js +0 -42
  263. package/.output/public/assets/api-keys-64PM9PwW.js +0 -1
  264. package/.output/public/assets/api-keys-api-BeaJnvY5.js +0 -1
  265. package/.output/public/assets/arrow-left-04Rh8Zgp.js +0 -1
  266. package/.output/public/assets/card-CYHs5FZv.js +0 -1
  267. package/.output/public/assets/chart-no-axes-combined-DwyMsVFW.js +0 -1
  268. package/.output/public/assets/createServerFn-DU71xucx.js +0 -3
  269. package/.output/public/assets/dialog-IVMkBRCq.js +0 -1
  270. package/.output/public/assets/dist-BR4GzeEu.js +0 -1
  271. package/.output/public/assets/field-B3CYDpjg.js +0 -1
  272. package/.output/public/assets/index-C39o7rJH.js +0 -10
  273. package/.output/public/assets/info-C3y9HNoU.js +0 -1
  274. package/.output/public/assets/input-group-nLZylhWF.js +0 -1
  275. package/.output/public/assets/insights-Bm9v8uO3.js +0 -2
  276. package/.output/public/assets/insights-DS3iO7Up.js +0 -1
  277. package/.output/public/assets/insights-search-Byj3g3Mp.js +0 -1
  278. package/.output/public/assets/insights-usage-rpc-BaGR3lgq.js +0 -1
  279. package/.output/public/assets/insights_.distribution-B1i6cjlQ.js +0 -1
  280. package/.output/public/assets/insights_.distribution-C1Wf27eB.js +0 -2
  281. package/.output/public/assets/installations-CkFW4fV9.js +0 -2
  282. package/.output/public/assets/installations-DxTaIcHD.js +0 -1
  283. package/.output/public/assets/lazyRouteComponent-BapzjYnb.js +0 -1
  284. package/.output/public/assets/list-Dqt53fWZ.js +0 -1
  285. package/.output/public/assets/loader-circle-CUKfUqow.js +0 -1
  286. package/.output/public/assets/preload-helper-ClBMtM1g.js +0 -1
  287. package/.output/public/assets/refresh-cw-CNE_2PnD.js +0 -1
  288. package/.output/public/assets/routes-Cgtvspjg.js +0 -2
  289. package/.output/public/assets/routes-O2r2UUN8.js +0 -1
  290. package/.output/public/assets/shield-check-BFcJ46kz.js +0 -1
  291. package/.output/public/assets/signing-BgspC-xP.js +0 -1
  292. package/.output/public/assets/styles-DnrWuBwd.css +0 -2
  293. package/.output/public/assets/table-BuWQgxJJ.js +0 -1
  294. package/.output/public/assets/useMutation-CSV9NCUl.js +0 -1
  295. package/.output/public/assets/useOpenInteractionType-D5kduCTD.js +0 -1
  296. package/.output/public/assets/valueToPercent-BAtcbSLk.js +0 -1
  297. package/.output/server/__23tanstack-start-server-fn-resolver-CmYkol9D.mjs +0 -150
  298. package/.output/server/_ssr/InsightsPageHeader-Dma3dVj1.mjs +0 -64
  299. package/.output/server/_ssr/api-C3bGmgY0.mjs +0 -332
  300. package/.output/server/_ssr/api-keys-api-BRF6rbRC.mjs +0 -60
  301. package/.output/server/_ssr/api-keys-rpc-BMa1ZM6N.mjs +0 -136
  302. package/.output/server/_ssr/api-rpc-BYQ2e0z6.mjs +0 -1399
  303. package/.output/server/_ssr/auth.server-CmicHh0J.mjs +0 -47
  304. package/.output/server/_ssr/bundle-signing-rpc-DbQ4pFAX.mjs +0 -16
  305. package/.output/server/_ssr/bundle-signing.server-Uqt1OF49.mjs +0 -12
  306. package/.output/server/_ssr/bundleActivity-pBrPSG01.mjs +0 -28
  307. package/.output/server/_ssr/card-B7KSO_25.mjs +0 -108
  308. package/.output/server/_ssr/config-Dv8qLDZ0.mjs +0 -13
  309. package/.output/server/_ssr/config.server-C-d1QaBU.mjs +0 -368
  310. package/.output/server/_ssr/databaseRows-5bCRTxm-.mjs +0 -126
  311. package/.output/server/_ssr/deleteBundle-8X-jq7Z7.mjs +0 -66
  312. package/.output/server/_ssr/field-BDwuU8RE.mjs +0 -74
  313. package/.output/server/_ssr/getBundleChildren-DoL8l_AS.mjs +0 -50
  314. package/.output/server/_ssr/insights-BDJjaDLp.mjs +0 -938
  315. package/.output/server/_ssr/insights-D0FWpfOS.mjs +0 -10
  316. package/.output/server/_ssr/insights-recovery-Cv6RSyeR.mjs +0 -21
  317. package/.output/server/_ssr/insights-recovery-rpc-BE9YsK_T.mjs +0 -37
  318. package/.output/server/_ssr/insights-search-1czJMZgk.mjs +0 -21
  319. package/.output/server/_ssr/insights-usage-rpc-BE_aCnea.mjs +0 -184
  320. package/.output/server/_ssr/insights-usage-rpc-CtAolz-t.mjs +0 -24
  321. package/.output/server/_ssr/insightsContract-B09K_Px1.mjs +0 -303
  322. package/.output/server/_ssr/insightsHistory-Ci4rYAgl.mjs +0 -41
  323. package/.output/server/_ssr/insightsRecovery-CaghWL2t.mjs +0 -113
  324. package/.output/server/_ssr/insightsUsage-DNIj6jxF.mjs +0 -71
  325. package/.output/server/_ssr/insights_.distribution-Cp0kf1vW.mjs +0 -10
  326. package/.output/server/_ssr/installations-Bhyiwx8G.mjs +0 -29
  327. package/.output/server/_ssr/routes-xBkI2Fmt.mjs +0 -37
  328. package/.output/server/_ssr/runtime.server-CsiKFp_Z.mjs +0 -436
  329. package/.output/server/_ssr/server-BdkuOWe8.mjs +0 -7468
  330. package/.output/server/_ssr/signing-CQ70saFm.mjs +0 -133
  331. package/.output/server/_ssr/start-DpViQGnt.mjs +0 -4
  332. package/.output/server/_tanstack-start-manifest_v-CrBsoKQQ.mjs +0 -125
  333. package/src/components/features/bundles/BundleActivityChart.tsx +0 -97
  334. package/src/components/features/bundles/BundleInsightsSummary.tsx +0 -126
  335. package/src/components/features/signing/BundleSigningPage.tsx +0 -139
  336. package/src/lib/bundle-signing-api.ts +0 -14
  337. package/src/lib/bundle-signing-rpc.ts +0 -16
  338. package/src/lib/server/bundle-signing.server.ts +0 -23
  339. package/src/lib/server/deleteBundle.ts +0 -145
  340. package/src/lib/server/insightsHistory.ts +0 -52
  341. package/src/lib/server/insightsRecovery.ts +0 -187
  342. 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 { c as createServerFn } from "./createServerFn-B2hcXoPM.mjs";
2
- import { t as createServerRpc } from "./createServerRpc-DB29C_5p.mjs";
3
- //#region node_modules/.nitro/vite/services/ssr/assets/insights-rpc-l2-oBYth.js
4
- var runtime = async () => {
5
- const { prepareConfig } = await import("./config.server-C-d1QaBU.mjs");
6
- const { hotUpdater } = await prepareConfig();
7
- return hotUpdater;
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 runtime()).getReportingOverview(data));
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 runtime()).listEvents(data));
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 runtime()).listInstallationEvents(data));
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 runtime()).getInstallation(data));
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 runtime();
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 };