@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
@@ -1,126 +0,0 @@
1
- import { n as isDatabaseMetadataObject, t as DatabasePluginInputError } from "./databaseJsonValue-d6I3nAS4.mjs";
2
- import { T as stripBundleArtifactMetadata, c as getAssetBaseStorageUri, d as getManifestStorageUri, l as getBundlePatches, u as getManifestFileHash } from "./dist-CyzPaI5v.mjs";
3
- //#region node_modules/.nitro/vite/services/ssr/assets/databaseRows-5bCRTxm-.js
4
- var bundleMetadataToRow = (metadata) => {
5
- const value = stripBundleArtifactMetadata(metadata);
6
- if (value === void 0) return {};
7
- if (!isDatabaseMetadataObject(value)) throw new DatabasePluginInputError("invalid-data");
8
- return value;
9
- };
10
- var releaseRowToRelease = (row) => ({
11
- id: row.id,
12
- revision: row.revision,
13
- channelId: row.channel_id,
14
- platform: row.platform,
15
- kind: row.kind,
16
- bundleId: row.bundle_id,
17
- strategy: row.strategy,
18
- targetAppVersion: row.target_app_version,
19
- fingerprintHash: row.fingerprint_hash,
20
- enabled: row.enabled,
21
- shouldForceUpdate: row.should_force_update,
22
- message: row.message,
23
- rolloutCohortCount: row.rollout_cohort_count,
24
- targetCohorts: row.target_cohorts,
25
- operation: row.operation,
26
- sourceReleaseId: row.source_release_id,
27
- createdAtMs: row.created_at_ms,
28
- updatedAtMs: row.updated_at_ms
29
- });
30
- var BundleRowHydrationErrorReason = {
31
- duplicatePatchId: "duplicate_patch_id",
32
- orphanPatchOwner: "orphan_patch_owner",
33
- orphanPatchBase: "orphan_patch_base"
34
- };
35
- var BundleRowHydrationError = class extends Error {
36
- name = "BundleRowHydrationError";
37
- reason;
38
- patchId;
39
- bundleId;
40
- constructor({ reason, patchId, bundleId }) {
41
- super(`Cannot hydrate bundle rows: ${reason} for patch "${patchId}" and bundle "${bundleId}".`);
42
- this.reason = reason;
43
- this.patchId = patchId;
44
- this.bundleId = bundleId;
45
- }
46
- };
47
- var bundleToRow = (bundle) => {
48
- const metadata = bundleMetadataToRow(bundle.metadata);
49
- return {
50
- id: bundle.id,
51
- platform: bundle.platform,
52
- file_hash: bundle.fileHash,
53
- git_commit_hash: bundle.gitCommitHash,
54
- storage_uri: bundle.storageUri,
55
- archive_byte_size: bundle.archiveByteSize,
56
- metadata,
57
- manifest_storage_uri: getManifestStorageUri(bundle),
58
- manifest_file_hash: getManifestFileHash(bundle),
59
- asset_base_storage_uri: getAssetBaseStorageUri(bundle)
60
- };
61
- };
62
- var bundleToPatchRows = (bundle) => getBundlePatches(bundle).map((patch, orderIndex) => ({
63
- id: `${bundle.id}:${patch.baseBundleId}`,
64
- bundle_id: bundle.id,
65
- base_bundle_id: patch.baseBundleId,
66
- base_file_hash: patch.baseFileHash,
67
- patch_file_hash: patch.patchFileHash,
68
- patch_storage_uri: patch.patchStorageUri,
69
- byte_size: patch.byteSize,
70
- order_index: orderIndex
71
- }));
72
- var comparePatchRows = (left, right) => left.order_index - right.order_index || left.id.localeCompare(right.id);
73
- var patchRowToArtifact = (row) => ({
74
- baseBundleId: row.base_bundle_id,
75
- baseFileHash: row.base_file_hash,
76
- byteSize: row.byte_size,
77
- patchFileHash: row.patch_file_hash,
78
- patchStorageUri: row.patch_storage_uri
79
- });
80
- var rowToBundle = (row, patchRows = []) => {
81
- const patches = patchRows.slice().sort(comparePatchRows).map(patchRowToArtifact);
82
- return {
83
- id: row.id,
84
- platform: row.platform,
85
- fileHash: row.file_hash,
86
- gitCommitHash: row.git_commit_hash,
87
- storageUri: row.storage_uri,
88
- archiveByteSize: row.archive_byte_size,
89
- metadata: stripBundleArtifactMetadata(row.metadata),
90
- manifestStorageUri: row.manifest_storage_uri,
91
- manifestFileHash: row.manifest_file_hash,
92
- assetBaseStorageUri: row.asset_base_storage_uri,
93
- patches
94
- };
95
- };
96
- var rowsToBundles = (bundleRows, patchRows, referencedBundleRows) => {
97
- const ownerIds = new Set(bundleRows.map(({ id }) => id));
98
- const baseIds = new Set(ownerIds);
99
- for (const row of referencedBundleRows) baseIds.add(row.id);
100
- const patchIds = /* @__PURE__ */ new Set();
101
- const patchesByOwner = /* @__PURE__ */ new Map();
102
- for (const patch of patchRows) {
103
- if (patchIds.has(patch.id)) throw new BundleRowHydrationError({
104
- reason: BundleRowHydrationErrorReason.duplicatePatchId,
105
- patchId: patch.id,
106
- bundleId: patch.bundle_id
107
- });
108
- patchIds.add(patch.id);
109
- if (!ownerIds.has(patch.bundle_id)) throw new BundleRowHydrationError({
110
- reason: BundleRowHydrationErrorReason.orphanPatchOwner,
111
- patchId: patch.id,
112
- bundleId: patch.bundle_id
113
- });
114
- if (!baseIds.has(patch.base_bundle_id)) throw new BundleRowHydrationError({
115
- reason: BundleRowHydrationErrorReason.orphanPatchBase,
116
- patchId: patch.id,
117
- bundleId: patch.base_bundle_id
118
- });
119
- const ownerPatches = patchesByOwner.get(patch.bundle_id) ?? [];
120
- ownerPatches.push(patch);
121
- patchesByOwner.set(patch.bundle_id, ownerPatches);
122
- }
123
- return bundleRows.map((row) => rowToBundle(row, patchesByOwner.get(row.id) ?? []));
124
- };
125
- //#endregion
126
- export { rowsToBundles as a, releaseRowToRelease as i, bundleToPatchRows as n, bundleToRow as r, bundleMetadataToRow as t };
@@ -1,66 +0,0 @@
1
- import { _ as getPatchStorageUri, d as getManifestStorageUri, l as getBundlePatches } from "./dist-CyzPaI5v.mjs";
2
- //#region node_modules/.nitro/vite/services/ssr/assets/deleteBundle-8X-jq7Z7.js
3
- function resolveStorageUriForDeletion(storageUri, storagePlugin) {
4
- const protocol = new URL(storageUri).protocol.replace(":", "");
5
- if (storagePlugin.protocol === protocol) return storageUri;
6
- if (protocol === "http" || protocol === "https") return null;
7
- throw new Error(`No storage plugin for protocol: ${protocol}`);
8
- }
9
- async function cleanupBundleStorage(bundle, storagePlugin) {
10
- const cleanupUris = /* @__PURE__ */ new Set();
11
- const addCleanupUri = (storageUri) => {
12
- if (!storageUri) return;
13
- const resolvedStorageUri = resolveStorageUriForDeletion(storageUri, storagePlugin);
14
- if (resolvedStorageUri) cleanupUris.add(resolvedStorageUri);
15
- };
16
- addCleanupUri(bundle.storageUri);
17
- addCleanupUri(getManifestStorageUri(bundle) ?? void 0);
18
- addCleanupUri(getPatchStorageUri(bundle) ?? void 0);
19
- for (const patch of getBundlePatches(bundle)) addCleanupUri(patch.patchStorageUri);
20
- for (const storageUri of cleanupUris) try {
21
- await storagePlugin.delete({ storageUri });
22
- } catch (error) {
23
- console.error("Failed to delete bundle from storage:", error);
24
- }
25
- }
26
- async function deleteBundles({ bundleIds }, { databaseClient, storagePlugin, waitForStorageCleanup = true }) {
27
- const uniqueBundleIds = [...new Set(bundleIds)];
28
- const { data: matchedBundles } = await databaseClient.getBundles({
29
- where: { id: { in: uniqueBundleIds } },
30
- limit: uniqueBundleIds.length
31
- });
32
- const matchedById = new Map(matchedBundles.map((bundle) => [bundle.id, bundle]));
33
- const bundles = uniqueBundleIds.flatMap((bundleId) => {
34
- const bundle = matchedById.get(bundleId);
35
- return bundle ? [bundle] : [];
36
- });
37
- const missingBundleIds = uniqueBundleIds.filter((bundleId) => !matchedById.has(bundleId));
38
- for (const bundle of bundles) {
39
- const cleanupCandidates = [
40
- bundle.storageUri,
41
- getManifestStorageUri(bundle),
42
- getPatchStorageUri(bundle),
43
- ...getBundlePatches(bundle).map((patch) => patch.patchStorageUri)
44
- ].filter((value) => Boolean(value));
45
- for (const candidate of cleanupCandidates) resolveStorageUriForDeletion(candidate, storagePlugin);
46
- }
47
- if (bundles.length > 0) await databaseClient.mutate(async (mutation) => {
48
- for (const bundle of bundles) await mutation.deleteBundleById(bundle.id);
49
- });
50
- const cleanupStorage = async () => {
51
- for (const bundle of bundles) await cleanupBundleStorage(bundle, storagePlugin);
52
- };
53
- if (waitForStorageCleanup) await cleanupStorage();
54
- else cleanupStorage().catch((error) => {
55
- console.error("Failed to clean up bundle storage:", error);
56
- });
57
- return {
58
- deletedBundleIds: bundles.map((bundle) => bundle.id),
59
- missingBundleIds
60
- };
61
- }
62
- async function deleteBundle({ bundleId }, dependencies) {
63
- if ((await deleteBundles({ bundleIds: [bundleId] }, dependencies)).missingBundleIds.length > 0) throw new Error(`Bundle not found: ${bundleId}`);
64
- }
65
- //#endregion
66
- export { deleteBundle, deleteBundles };
@@ -1,74 +0,0 @@
1
- import { i as __toESM } from "../_runtime.mjs";
2
- import { ht as require_react, mt as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
3
- import { t as cva } from "../_libs/class-variance-authority+clsx.mjs";
4
- import { C as cn } from "./createSsrRpc-C-dLcQuy.mjs";
5
- //#region node_modules/.nitro/vite/services/ssr/assets/field-BDwuU8RE.js
6
- var import_react = /* @__PURE__ */ __toESM(require_react());
7
- var import_jsx_runtime = require_jsx_runtime();
8
- function Label({ className, htmlFor, ...props }) {
9
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", {
10
- "data-slot": "label",
11
- htmlFor,
12
- className: cn("flex items-center gap-2 text-xs/relaxed leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
13
- ...props
14
- });
15
- }
16
- function FieldGroup({ className, ...props }) {
17
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
18
- "data-slot": "field-group",
19
- className: cn("gap-4 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4 group/field-group @container/field-group flex w-full flex-col", className),
20
- ...props
21
- });
22
- }
23
- var fieldVariants = cva("data-[invalid=true]:text-destructive gap-2 group/field flex w-full", {
24
- variants: { orientation: {
25
- vertical: "flex-col [&>*]:w-full [&>.sr-only]:w-auto",
26
- horizontal: "flex-row items-center [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
27
- responsive: "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
28
- } },
29
- defaultVariants: { orientation: "vertical" }
30
- });
31
- function Field({ className, orientation = "vertical", ...props }) {
32
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
33
- "data-slot": "field",
34
- "data-orientation": orientation,
35
- className: cn(fieldVariants({ orientation }), className),
36
- ...props
37
- });
38
- }
39
- function FieldLabel({ className, ...props }) {
40
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, {
41
- "data-slot": "field-label",
42
- className: cn("has-data-checked:bg-primary/5 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-2 group/field-label peer/field-label flex w-fit leading-snug", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col", className),
43
- ...props
44
- });
45
- }
46
- function FieldDescription({ className, ...props }) {
47
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
48
- "data-slot": "field-description",
49
- className: cn("text-muted-foreground text-left text-xs/relaxed [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance", "last:mt-0 nth-last-2:-mt-1", "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", className),
50
- ...props
51
- });
52
- }
53
- function FieldError({ className, children, errors, ...props }) {
54
- const content = (0, import_react.useMemo)(() => {
55
- if (children) return children;
56
- if (!errors?.length) return null;
57
- const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];
58
- if (uniqueErrors?.length === 1) return uniqueErrors[0]?.message;
59
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", {
60
- className: "ml-4 flex list-disc flex-col gap-1",
61
- children: uniqueErrors.map((error, index) => error?.message && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: error.message }, index))
62
- });
63
- }, [children, errors]);
64
- if (!content) return null;
65
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
66
- role: "alert",
67
- "data-slot": "field-error",
68
- className: cn("text-destructive text-xs/relaxed font-normal", className),
69
- ...props,
70
- children: content
71
- });
72
- }
73
- //#endregion
74
- export { FieldLabel as a, FieldGroup as i, FieldDescription as n, Label as o, FieldError as r, Field as t };
@@ -1,50 +0,0 @@
1
- import { l as getBundlePatches } from "./dist-CyzPaI5v.mjs";
2
- //#region node_modules/.nitro/vite/services/ssr/assets/getBundleChildren-DoL8l_AS.js
3
- var CHILDREN_QUERY_LIMIT = 100;
4
- async function collectBundleChildrenByBaseIds(baseBundleIds, deps) {
5
- const uniqueBaseBundleIds = [...new Set(baseBundleIds.filter(Boolean))];
6
- const bundlesByBaseId = Object.fromEntries(uniqueBaseBundleIds.map((bundleId) => [bundleId, []]));
7
- const baseBundles = (await Promise.all(uniqueBaseBundleIds.map((bundleId) => deps.databaseClient.getBundleById(bundleId)))).filter((bundle) => Boolean(bundle));
8
- const groupMap = /* @__PURE__ */ new Map();
9
- for (const baseBundle of baseBundles) {
10
- const existingGroup = groupMap.get(baseBundle.platform);
11
- if (existingGroup) {
12
- existingGroup.add(baseBundle.id);
13
- continue;
14
- }
15
- groupMap.set(baseBundle.platform, new Set([baseBundle.id]));
16
- }
17
- for (const [platform, bundleIds] of groupMap) {
18
- const seenBundleIds = /* @__PURE__ */ new Set();
19
- const seenCursors = /* @__PURE__ */ new Set();
20
- let after;
21
- while (true) {
22
- const page = await deps.databaseClient.getBundles({
23
- where: { platform },
24
- limit: CHILDREN_QUERY_LIMIT,
25
- cursor: after ? { after } : void 0
26
- });
27
- for (const bundle of page.data) {
28
- const matchedParentBundleIds = getBundlePatches(bundle).map((patch) => patch.baseBundleId).filter((bundleId) => bundleIds.has(bundleId));
29
- if (matchedParentBundleIds.length === 0 || seenBundleIds.has(bundle.id)) continue;
30
- seenBundleIds.add(bundle.id);
31
- for (const parentBundleId of matchedParentBundleIds) bundlesByBaseId[parentBundleId]?.push(bundle);
32
- }
33
- const pagination = page.pagination;
34
- const nextCursor = pagination.nextCursor ?? void 0;
35
- if (!pagination.hasNextPage || !nextCursor || seenCursors.has(nextCursor)) break;
36
- seenCursors.add(nextCursor);
37
- after = nextCursor;
38
- }
39
- }
40
- return bundlesByBaseId;
41
- }
42
- async function getBundleChildren({ baseBundleId }, deps) {
43
- return (await collectBundleChildrenByBaseIds([baseBundleId], deps))[baseBundleId] ?? [];
44
- }
45
- async function getBundleChildCounts(baseBundleIds, deps) {
46
- const childrenByBaseId = await collectBundleChildrenByBaseIds(baseBundleIds, deps);
47
- return Object.fromEntries(Object.entries(childrenByBaseId).map(([bundleId, bundles]) => [bundleId, bundles.length]));
48
- }
49
- //#endregion
50
- export { getBundleChildCounts, getBundleChildren };