@hot-updater/console 1.0.0-rc.9 → 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 (341) 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-CyMmr0O9.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-CKvQ4VIE.mjs → alert-dialog-C43Doa0I.mjs} +6 -83
  74. package/.output/server/_ssr/{api-keys-CzZ7Ont4.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-DH6Bhwcz.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-BrGSjz4S.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-DDKmIrpV.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-cIsU-kHG.mjs → insights_.distribution-DN9pR422.mjs} +50 -22
  120. package/.output/server/_ssr/installations-BHmbbnH8.mjs +5 -0
  121. package/.output/server/_ssr/{installations-C5anhyP0.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-BuanSsRI.mjs → router-D8NuoJ_I.mjs} +107 -134
  135. package/.output/server/_ssr/{routes-DY-vqU6R.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-DD2szs3Y.mjs → select-t3iXRwc9.mjs} +3 -3
  140. package/.output/server/_ssr/server-h4VxnExB.mjs +8325 -0
  141. package/.output/server/_ssr/{createSsrRpc-CdlfejmI.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-CTj6n-4F.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 +309 -211
  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 +69 -74
  158. package/src/components/ConsoleFeatureUnavailable.tsx +80 -0
  159. package/src/components/NotFoundPage.tsx +7 -7
  160. package/src/components/features/FeatureSlots.tsx +103 -0
  161. package/src/components/features/api-keys/apiKeysFeatureUi.tsx +15 -0
  162. package/src/components/features/bundles/BundleMetadata.tsx +8 -5
  163. package/src/components/features/bundles/RolloutCohortsDialog.tsx +1 -1
  164. package/src/components/features/channels/ChannelManagementDialog.tsx +8 -6
  165. package/src/components/features/insights/AppUsage.tsx +41 -14
  166. package/src/components/features/insights/BuiltinBundle.tsx +36 -0
  167. package/src/components/features/insights/ComparedBundlesChart.tsx +310 -0
  168. package/src/components/features/insights/EstimatedCount.tsx +18 -0
  169. package/src/components/features/insights/EventDetails.tsx +390 -26
  170. package/src/components/features/insights/EventHistoryCard.tsx +111 -25
  171. package/src/components/features/insights/EventHistoryList.tsx +1 -1
  172. package/src/components/features/insights/FailureReports.tsx +407 -0
  173. package/src/components/features/insights/InsightsControls.tsx +240 -142
  174. package/src/components/features/insights/InsightsErrorAlert.tsx +14 -1
  175. package/src/components/features/insights/InsightsOverview.tsx +601 -403
  176. package/src/components/features/insights/InsightsPageHeader.tsx +19 -14
  177. package/src/components/features/insights/InsightsPeriodSelector.tsx +67 -12
  178. package/src/components/features/insights/InstallationHistoryCard.tsx +65 -10
  179. package/src/components/features/insights/InstallationMatchesCard.tsx +1 -1
  180. package/src/components/features/insights/ReleaseActivity.tsx +308 -0
  181. package/src/components/features/insights/ReportingDevicesSummary.tsx +13 -13
  182. package/src/components/features/insights/RollbackButton.tsx +118 -0
  183. package/src/components/features/insights/UpdateFailures.tsx +382 -0
  184. package/src/components/features/insights/insightsFeatureUi.tsx +35 -0
  185. package/src/components/features/releases/ReleaseEditorSheet.tsx +27 -13
  186. package/src/components/features/remote-config/ConditionDialog.tsx +592 -0
  187. package/src/components/features/remote-config/ConditionsCard.tsx +247 -0
  188. package/src/components/features/remote-config/ParameterDialog.tsx +426 -0
  189. package/src/components/features/remote-config/ParametersCard.tsx +254 -0
  190. package/src/components/features/remote-config/PreviewCard.tsx +284 -0
  191. package/src/components/features/remote-config/PublishDialog.tsx +325 -0
  192. package/src/components/features/remote-config/RemoteConfigPage.tsx +353 -0
  193. package/src/components/features/remote-config/RuleSummary.tsx +21 -0
  194. package/src/components/features/remote-config/ValueInput.tsx +151 -0
  195. package/src/components/features/remote-config/VersionsCard.tsx +384 -0
  196. package/src/components/features/remote-config/remoteConfigFeatureUi.tsx +15 -0
  197. package/src/components/features/remote-config/useDateTimeText.ts +16 -0
  198. package/src/components/ui/sidebar.tsx +22 -29
  199. package/src/index.ts +26 -19
  200. package/src/lib/api-keys-api.ts +0 -28
  201. package/src/lib/api-keys-rpc.ts +27 -38
  202. package/src/lib/api-rpc.ts +125 -288
  203. package/src/lib/api.ts +15 -134
  204. package/src/lib/bundle-activity.ts +24 -4
  205. package/src/lib/console-access.ts +20 -0
  206. package/src/lib/console-features-api.ts +68 -0
  207. package/src/lib/console-features-rpc.ts +13 -0
  208. package/src/lib/console-features.ts +98 -0
  209. package/src/lib/insights-api.ts +56 -2
  210. package/src/lib/insights-errors.ts +64 -0
  211. package/src/lib/insights-failures-rpc.ts +36 -0
  212. package/src/lib/insights-failures.ts +130 -0
  213. package/src/lib/insights-recovery-rpc.ts +13 -17
  214. package/src/lib/insights-recovery.ts +12 -36
  215. package/src/lib/insights-retention.ts +21 -0
  216. package/src/lib/insights-rpc.ts +30 -12
  217. package/src/lib/insights-search.ts +50 -4
  218. package/src/lib/insights-usage-rpc.ts +15 -9
  219. package/src/lib/insights-usage.ts +41 -3
  220. package/src/lib/insights-view.ts +34 -5
  221. package/src/lib/release-adoption-api.ts +214 -0
  222. package/src/lib/release-adoption-rpc.ts +49 -0
  223. package/src/lib/release-adoption.ts +164 -0
  224. package/src/lib/remote-config-api.ts +119 -0
  225. package/src/lib/remote-config-draft.ts +666 -0
  226. package/src/lib/remote-config-rpc.ts +196 -0
  227. package/src/lib/scroll-restoration.ts +21 -0
  228. package/src/lib/server/auth.server.ts +13 -5
  229. package/src/lib/server/bundleActivity.ts +27 -28
  230. package/src/lib/server/config.server.ts +21 -76
  231. package/src/lib/server/console-feature-apis.ts +70 -0
  232. package/src/lib/server/console-runtime.server.ts +82 -38
  233. package/src/lib/server/downloadBundle.ts +14 -15
  234. package/src/lib/server/failureReports.ts +50 -0
  235. package/src/lib/server/getBundleChildren.ts +31 -122
  236. package/src/lib/server/insightsUsage.ts +52 -113
  237. package/src/lib/server/listReleases.ts +109 -44
  238. package/src/lib/server/releaseAdoption.ts +151 -0
  239. package/src/lib/server/releaseReachability.ts +8 -8
  240. package/src/lib/server/remoteConfig.ts +75 -0
  241. package/src/lib/server/runtime.server.ts +120 -31
  242. package/src/lib/server/updateFailures.ts +66 -0
  243. package/src/lib/use-dialog-target.ts +27 -0
  244. package/src/routeTree.gen.ts +44 -44
  245. package/src/router.tsx +3 -2
  246. package/src/routes/-installations-search.ts +32 -8
  247. package/src/routes/-releases-search.ts +76 -29
  248. package/src/routes/__root.tsx +7 -1
  249. package/src/routes/api/bundles/$bundleId/download.ts +2 -5
  250. package/src/routes/api-keys.tsx +5 -2
  251. package/src/routes/index.tsx +210 -152
  252. package/src/routes/insights.tsx +91 -23
  253. package/src/routes/insights_.distribution.tsx +50 -9
  254. package/src/routes/installations.tsx +97 -40
  255. package/src/routes/remote-config.tsx +42 -0
  256. package/src/styles.css +9 -0
  257. package/src/vite-internal.ts +15 -3
  258. package/src/vite.ts +2 -0
  259. package/.output/public/assets/HashValueDisplay-BpTc3Oyg.js +0 -1
  260. package/.output/public/assets/InsightsPageHeader-DC2eEst8.js +0 -1
  261. package/.output/public/assets/api-CdUyUqzR.js +0 -42
  262. package/.output/public/assets/api-keys-64PM9PwW.js +0 -1
  263. package/.output/public/assets/api-keys-api-BeaJnvY5.js +0 -1
  264. package/.output/public/assets/arrow-left-04Rh8Zgp.js +0 -1
  265. package/.output/public/assets/card-CYHs5FZv.js +0 -1
  266. package/.output/public/assets/chart-no-axes-combined-DwyMsVFW.js +0 -1
  267. package/.output/public/assets/createServerFn-DU71xucx.js +0 -3
  268. package/.output/public/assets/dialog-IVMkBRCq.js +0 -1
  269. package/.output/public/assets/dist-BR4GzeEu.js +0 -1
  270. package/.output/public/assets/field-B3CYDpjg.js +0 -1
  271. package/.output/public/assets/index-Cb_D1D6N.js +0 -10
  272. package/.output/public/assets/info-C3y9HNoU.js +0 -1
  273. package/.output/public/assets/input-group-nLZylhWF.js +0 -1
  274. package/.output/public/assets/insights-Bm9v8uO3.js +0 -2
  275. package/.output/public/assets/insights-DS3iO7Up.js +0 -1
  276. package/.output/public/assets/insights-search-Byj3g3Mp.js +0 -1
  277. package/.output/public/assets/insights-usage-rpc-BaGR3lgq.js +0 -1
  278. package/.output/public/assets/insights_.distribution-B1i6cjlQ.js +0 -1
  279. package/.output/public/assets/insights_.distribution-C1Wf27eB.js +0 -2
  280. package/.output/public/assets/installations-CkFW4fV9.js +0 -2
  281. package/.output/public/assets/installations-DxTaIcHD.js +0 -1
  282. package/.output/public/assets/lazyRouteComponent-BapzjYnb.js +0 -1
  283. package/.output/public/assets/list-Dqt53fWZ.js +0 -1
  284. package/.output/public/assets/loader-circle-CUKfUqow.js +0 -1
  285. package/.output/public/assets/preload-helper-ClBMtM1g.js +0 -1
  286. package/.output/public/assets/refresh-cw-CNE_2PnD.js +0 -1
  287. package/.output/public/assets/routes-Cgtvspjg.js +0 -2
  288. package/.output/public/assets/routes-O2r2UUN8.js +0 -1
  289. package/.output/public/assets/shield-check-BFcJ46kz.js +0 -1
  290. package/.output/public/assets/signing-BgspC-xP.js +0 -1
  291. package/.output/public/assets/styles-DnrWuBwd.css +0 -2
  292. package/.output/public/assets/table-BuWQgxJJ.js +0 -1
  293. package/.output/public/assets/useMutation-CSV9NCUl.js +0 -1
  294. package/.output/public/assets/useOpenInteractionType-D5kduCTD.js +0 -1
  295. package/.output/public/assets/valueToPercent-BAtcbSLk.js +0 -1
  296. package/.output/server/__23tanstack-start-server-fn-resolver-DBRojHaG.mjs +0 -150
  297. package/.output/server/_ssr/InsightsPageHeader-mtxVuZKK.mjs +0 -64
  298. package/.output/server/_ssr/api-BfCgYlj5.mjs +0 -332
  299. package/.output/server/_ssr/api-keys-api-C3oeq01R.mjs +0 -60
  300. package/.output/server/_ssr/api-keys-rpc-CdPFdGOx.mjs +0 -136
  301. package/.output/server/_ssr/api-rpc-B2E1ZIG5.mjs +0 -1399
  302. package/.output/server/_ssr/auth.server-CmicHh0J.mjs +0 -47
  303. package/.output/server/_ssr/bundle-signing-rpc-Di7-I6fE.mjs +0 -16
  304. package/.output/server/_ssr/bundle-signing.server-Uqt1OF49.mjs +0 -12
  305. package/.output/server/_ssr/bundleActivity-pBrPSG01.mjs +0 -28
  306. package/.output/server/_ssr/card-Bemj0dpY.mjs +0 -108
  307. package/.output/server/_ssr/config-Dv8qLDZ0.mjs +0 -13
  308. package/.output/server/_ssr/config.server-B8WsT3s0.mjs +0 -368
  309. package/.output/server/_ssr/databaseRows-5bCRTxm-.mjs +0 -126
  310. package/.output/server/_ssr/deleteBundle-8X-jq7Z7.mjs +0 -66
  311. package/.output/server/_ssr/field-BrQ2u0fT.mjs +0 -74
  312. package/.output/server/_ssr/getBundleChildren-DoL8l_AS.mjs +0 -50
  313. package/.output/server/_ssr/insights-BwQ-wF2a.mjs +0 -10
  314. package/.output/server/_ssr/insights-gr1I_dJU.mjs +0 -938
  315. package/.output/server/_ssr/insights-recovery-Cv6RSyeR.mjs +0 -21
  316. package/.output/server/_ssr/insights-recovery-rpc-DOzxfYfv.mjs +0 -37
  317. package/.output/server/_ssr/insights-search-1czJMZgk.mjs +0 -21
  318. package/.output/server/_ssr/insights-usage-rpc-4ImOq_0p.mjs +0 -184
  319. package/.output/server/_ssr/insights-usage-rpc-BUruODjE.mjs +0 -24
  320. package/.output/server/_ssr/insightsContract-B09K_Px1.mjs +0 -303
  321. package/.output/server/_ssr/insightsHistory-Ci4rYAgl.mjs +0 -41
  322. package/.output/server/_ssr/insightsRecovery-CaghWL2t.mjs +0 -113
  323. package/.output/server/_ssr/insightsUsage-DNIj6jxF.mjs +0 -71
  324. package/.output/server/_ssr/insights_.distribution-VmHuikRE.mjs +0 -10
  325. package/.output/server/_ssr/installations-HXMF_kKf.mjs +0 -29
  326. package/.output/server/_ssr/routes-Dru3IRj0.mjs +0 -37
  327. package/.output/server/_ssr/runtime.server-CsiKFp_Z.mjs +0 -436
  328. package/.output/server/_ssr/server-DJm72Kj-.mjs +0 -7468
  329. package/.output/server/_ssr/signing-H8Lg4lPe.mjs +0 -133
  330. package/.output/server/_ssr/start-DpViQGnt.mjs +0 -4
  331. package/.output/server/_tanstack-start-manifest_v-DsFcTLw_.mjs +0 -125
  332. package/src/components/features/bundles/BundleActivityChart.tsx +0 -97
  333. package/src/components/features/bundles/BundleInsightsSummary.tsx +0 -126
  334. package/src/components/features/signing/BundleSigningPage.tsx +0 -139
  335. package/src/lib/bundle-signing-api.ts +0 -14
  336. package/src/lib/bundle-signing-rpc.ts +0 -16
  337. package/src/lib/server/bundle-signing.server.ts +0 -23
  338. package/src/lib/server/deleteBundle.ts +0 -145
  339. package/src/lib/server/insightsHistory.ts +0 -52
  340. package/src/lib/server/insightsRecovery.ts +0 -187
  341. 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-CdlfejmI.mjs";
5
- //#region node_modules/.nitro/vite/services/ssr/assets/field-BrQ2u0fT.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 };
@@ -1,10 +0,0 @@
1
- import { d as lazyRouteComponent, f as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
2
- import { n as validateInsightsSearch } from "./insights-search-1czJMZgk.mjs";
3
- //#region node_modules/.nitro/vite/services/ssr/assets/insights-BwQ-wF2a.js
4
- var $$splitComponentImporter = () => import("./insights-gr1I_dJU.mjs");
5
- var Route = createFileRoute("/insights")({
6
- component: lazyRouteComponent($$splitComponentImporter, "component"),
7
- validateSearch: validateInsightsSearch
8
- });
9
- //#endregion
10
- export { Route as t };