@hot-updater/console 1.0.0-rc.2 → 1.0.0-rc.4

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 (126) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/InsightsPageHeader-C-Xc2MB9.js +1 -0
  3. package/.output/public/assets/api-keys-C1sgC6ko.js +1 -0
  4. package/.output/public/assets/{api-keys-api-BHcODB7q.js → api-keys-api-LchP65vQ.js} +1 -1
  5. package/.output/public/assets/badge-BuMDU0Rf.js +1 -0
  6. package/.output/public/assets/card-BEvx_QKh.js +1 -0
  7. package/.output/public/assets/{chart-no-axes-combined-Dy4WJv2U.js → chart-no-axes-combined-C0G0fQ3J.js} +1 -1
  8. package/.output/public/assets/{composite-Bp98A0Ld.js → composite-CHTH1Xhh.js} +1 -1
  9. package/.output/public/assets/createServerFn-DHc2erub.js +3 -0
  10. package/.output/public/assets/dialog-dyZ1SphZ.js +1 -0
  11. package/.output/public/assets/{dist-C_NydL0e.js → dist-Bh1gaDfB.js} +1 -1
  12. package/.output/public/assets/field-79SVH26s.js +1 -0
  13. package/.output/public/assets/index-BNkxg4jz.js +10 -0
  14. package/.output/public/assets/input-group-BbHfaBzQ.js +1 -0
  15. package/.output/public/assets/insights-D_7uSKfc.js +1 -0
  16. package/.output/public/assets/installations-BzoHWuXw.js +1 -0
  17. package/.output/public/assets/{installations-CE33wgbY.js → installations-DvjbUqd1.js} +2 -2
  18. package/.output/public/assets/{lazyRouteComponent-Ccp3bwBY.js → lazyRouteComponent-BN0MS05o.js} +1 -1
  19. package/.output/public/assets/{link-CI8idAUi.js → link-BG06whwB.js} +1 -1
  20. package/.output/public/assets/{loader-circle-BoxLrsOu.js → loader-circle-Bbp8LGVC.js} +1 -1
  21. package/.output/public/assets/{refresh-cw-Bqc72UZG.js → refresh-cw-DZgiAOMk.js} +1 -1
  22. package/.output/public/assets/routes-BFE-oRIT.js +1 -0
  23. package/.output/public/assets/{routes-DGVXdzpw.js → routes-DaPMY31P.js} +2 -2
  24. package/.output/public/assets/{shield-check-uK3MHWJZ.js → shield-check-DoIiaaXU.js} +1 -1
  25. package/.output/public/assets/signing-BTRhaF5D.js +1 -0
  26. package/.output/public/assets/styles-C7U0oVke.css +2 -0
  27. package/.output/public/assets/table-BBEzJ7Xl.js +1 -0
  28. package/.output/public/assets/useCompositeListItem-BkPDaqyj.js +42 -0
  29. package/.output/server/{__23tanstack-start-server-fn-resolver-B7ioJhtE.mjs → __23tanstack-start-server-fn-resolver-Dr2ixDgQ.mjs} +40 -32
  30. package/.output/server/_libs/@base-ui/react+[...].mjs +1 -1
  31. package/.output/server/_libs/@reduxjs/toolkit+[...].mjs +1554 -0
  32. package/.output/server/_libs/@tanstack/react-router+[...].mjs +1 -1
  33. package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +1 -1
  34. package/.output/server/_libs/d3-array.mjs +231 -0
  35. package/.output/server/_libs/d3-color.mjs +330 -0
  36. package/.output/server/_libs/d3-format.mjs +252 -0
  37. package/.output/server/_libs/d3-interpolate.mjs +207 -0
  38. package/.output/server/_libs/d3-path.mjs +77 -0
  39. package/.output/server/_libs/d3-scale+[...].mjs +1907 -0
  40. package/.output/server/_libs/d3-shape.mjs +818 -0
  41. package/.output/server/_libs/decimal.js-light.mjs +884 -0
  42. package/.output/server/_libs/es-toolkit.mjs +1159 -0
  43. package/.output/server/_libs/eventemitter3.mjs +236 -0
  44. package/.output/server/_libs/immer.mjs +532 -0
  45. package/.output/server/_libs/lucide-react.mjs +9 -2
  46. package/.output/server/_libs/next-themes.mjs +1 -1
  47. package/.output/server/_libs/react-redux+[...].mjs +205 -0
  48. package/.output/server/_libs/recharts+[...].mjs +15054 -0
  49. package/.output/server/_libs/sonner.mjs +1 -1
  50. package/.output/server/_libs/tanstack__react-query.mjs +1 -1
  51. package/.output/server/_runtime.mjs +10 -1
  52. package/.output/server/_ssr/InsightsPageHeader-C5Has8Ry.mjs +60 -0
  53. package/.output/server/_ssr/{api-keys-CZeTPQys.mjs → api-keys-DJml_XoK.mjs} +10 -8
  54. package/.output/server/_ssr/{api-keys-api-BUPQVSpk.mjs → api-keys-api-CrCZyvnl.mjs} +2 -2
  55. package/.output/server/_ssr/{api-keys-rpc-Cs7tS5_j.mjs → api-keys-rpc-CFaNf-q0.mjs} +3 -3
  56. package/.output/server/_ssr/{api-rpc-tAupfGQm.mjs → api-rpc-B61KL3Eo.mjs} +25 -25
  57. package/.output/server/_ssr/{auth-rpc-DUaeOWKK.mjs → auth-rpc-D_hv52-J.mjs} +4 -4
  58. package/.output/server/_ssr/{auth.server-DW71WzsD.mjs → auth.server-DF_shCeq.mjs} +1 -1
  59. package/.output/server/_ssr/badge-BgsCP9Dp.mjs +28 -0
  60. package/.output/server/_ssr/{bundle-signing-rpc-BhnBw0-d.mjs → bundle-signing-rpc-BBipZnFs.mjs} +2 -2
  61. package/.output/server/_ssr/{bundle-signing.server-C4NW5mWx.mjs → bundle-signing.server-Co_zHdJx.mjs} +1 -1
  62. package/.output/server/_ssr/bundleActivity-D3_fIda2.mjs +27 -0
  63. package/.output/server/_ssr/{card-BRiPmi0C.mjs → card-DrbxCPtG.mjs} +3 -25
  64. package/.output/server/_ssr/chart-qxa-_30a.mjs +162 -0
  65. package/.output/server/_ssr/{config.server-afDuAwaG.mjs → config.server-CBr6PDj5.mjs} +5 -5
  66. package/.output/server/_ssr/{createSsrRpc-DjWNJ0uc.mjs → createSsrRpc-NHF2PxuK.mjs} +4 -4
  67. package/.output/server/_ssr/{deleteBundle-BTGwBgzx.mjs → deleteBundle-BAq3JuGr.mjs} +1 -1
  68. package/.output/server/_ssr/{dialog-DS-nw-pA.mjs → dialog-DUaIgpgd.mjs} +1 -1
  69. package/.output/server/_ssr/{downloadBundle-CNnYxYO2.mjs → downloadBundle-B3ert-pY.mjs} +1 -1
  70. package/.output/server/_ssr/{table-CnZmon_Z.mjs → field-CqNUlqUq.mjs} +4 -50
  71. package/.output/server/_ssr/{getBundleChildren-C0vh4ZvE.mjs → getBundleChildren-COMt16m_.mjs} +1 -1
  72. package/.output/server/_ssr/{input-group-BpsnmvZw.mjs → input-group-Bb8ueylQ.mjs} +51 -2
  73. package/.output/server/_ssr/insights-B-DUbksX.mjs +502 -0
  74. package/.output/server/_ssr/insights-recovery-DSFM-YTL.mjs +21 -0
  75. package/.output/server/_ssr/insights-recovery-rpc-P71FH66n.mjs +37 -0
  76. package/.output/server/_ssr/{insights-rpc-38DujK0G.mjs → insights-rpc-DrIQCjpD.mjs} +2 -2
  77. package/.output/server/_ssr/insightsRecovery-CqcosG7B.mjs +149 -0
  78. package/.output/server/_ssr/{installations-CtA59MQG.mjs → installations-BQrppti7.mjs} +2 -2
  79. package/.output/server/_ssr/{installations-DiVKEF5T.mjs → installations-YumqpNpa.mjs} +426 -11
  80. package/.output/server/_ssr/{router-B9wG_9f8.mjs → router-iP95Vqi2.mjs} +14 -14
  81. package/.output/server/_ssr/{routes-CKrrS2q2.mjs → routes-BDabsmc7.mjs} +2 -2
  82. package/.output/server/_ssr/{routes-D7Yh_jfj.mjs → routes-ivsV2TDu.mjs} +224 -13
  83. package/.output/server/_ssr/{runtime.server-DacU1TBV.mjs → runtime.server-jmZOKIQM.mjs} +1 -1
  84. package/.output/server/_ssr/{server-D_C2rMzf.mjs → server-p7yrVBfD.mjs} +3 -3
  85. package/.output/server/_ssr/{signing-Dz1WkZOf.mjs → signing-CxCbnFCt.mjs} +5 -4
  86. package/.output/server/_ssr/ssr.mjs +1 -1
  87. package/.output/server/_ssr/table-D1mL8fJu.mjs +53 -0
  88. package/.output/server/_tanstack-start-manifest_v-Cwpu0C9Q.mjs +100 -0
  89. package/.output/server/index.mjs +154 -154
  90. package/package.json +3 -3
  91. package/src/components/features/bundles/BundleActivityChart.tsx +95 -0
  92. package/src/components/features/bundles/BundleInsightsSummary.tsx +121 -0
  93. package/src/components/features/insights/InsightsControls.tsx +1 -15
  94. package/src/components/features/insights/InsightsOverview.tsx +368 -179
  95. package/src/components/features/releases/ReleaseEditorSheet.tsx +10 -0
  96. package/src/components/ui/empty.tsx +101 -0
  97. package/src/lib/bundle-activity.ts +21 -0
  98. package/src/lib/insights-recovery-rpc.ts +38 -0
  99. package/src/lib/insights-recovery.ts +59 -0
  100. package/src/lib/server/bundleActivity.ts +37 -0
  101. package/src/lib/server/insightsHistory.ts +52 -0
  102. package/src/lib/server/insightsRecovery.ts +186 -0
  103. package/src/routes/index.tsx +33 -3
  104. package/src/routes/insights.tsx +1 -42
  105. package/.output/public/assets/HashValueDisplay-CB0Eskit.js +0 -1
  106. package/.output/public/assets/InsightsPageHeader-Car5LNiZ.js +0 -1
  107. package/.output/public/assets/api-keys-BzKocqRy.js +0 -1
  108. package/.output/public/assets/card-Dhr_eFYj.js +0 -1
  109. package/.output/public/assets/createServerFn-CA8fs7QD.js +0 -3
  110. package/.output/public/assets/dialog-CUTrcPlB.js +0 -1
  111. package/.output/public/assets/index-DdAz-CXv.js +0 -10
  112. package/.output/public/assets/input-group-cSOG4wh_.js +0 -1
  113. package/.output/public/assets/insights-C0PBSZ-n.js +0 -1
  114. package/.output/public/assets/installations-CStZja8x.js +0 -1
  115. package/.output/public/assets/routes-DTlwOr8I.js +0 -1
  116. package/.output/public/assets/signing-CMf4aqDO.js +0 -1
  117. package/.output/public/assets/styles-BCvbtKsm.css +0 -2
  118. package/.output/public/assets/table-2vcV89QB.js +0 -1
  119. package/.output/public/assets/useCompositeListItem-CHLITE_4.js +0 -1
  120. package/.output/public/assets/x-DCd0j8c6.js +0 -1
  121. package/.output/server/_ssr/HashValueDisplay-DwpGLfrl.mjs +0 -55
  122. package/.output/server/_ssr/InsightsPageHeader-Df4Brj8u.mjs +0 -484
  123. package/.output/server/_ssr/insights-BdS364Xu.mjs +0 -460
  124. package/.output/server/_tanstack-start-manifest_v-2MjTyxil.mjs +0 -97
  125. package/src/components/features/insights/InsightsBundleReports.tsx +0 -51
  126. /package/.output/public/assets/{preload-helper-CQ36nxok.js → preload-helper-uTix4PVD.js} +0 -0
@@ -1 +0,0 @@
1
- import{Dr as e,Gn as t,Jn as n,Wn as r,Zn as i,_r as a,bn as o,gn as s,kr as c,m as l,t as u,yn as d}from"./createServerFn-CA8fs7QD.js";import{t as f}from"./link-CI8idAUi.js";import{t as p}from"./chart-no-axes-combined-Dy4WJv2U.js";import{a as m,i as h,n as g,o as _,p as v,r as y,t as b}from"./table-2vcV89QB.js";import{i as ee,r as te,t as x}from"./HashValueDisplay-CB0Eskit.js";import{t as S}from"./refresh-cw-Bqc72UZG.js";import{a as C,c as w,d as T,n as E,o as D,s as ne,t as re,u as ie}from"./card-Dhr_eFYj.js";var ae=t(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),O=t(`arrow-up-right`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),k=t(`package-check`,[[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`path`,{d:`m16 17 2 2 4-4`,key:`uh5qu3`}],[`path`,{d:`M21 11.127V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.729l7 4a2 2 0 0 0 2 .001l1.32-.753`,key:`kpkbpo`}],[`path`,{d:`M3.29 7 12 12l8.71-5`,key:`19ckod`}],[`path`,{d:`m7.5 4.27 8.997 5.148`,key:`9yrvtv`}]]),A=u({method:`GET`}).handler(a(`ff00311d412c8cdfa8ad5b0ba1eb6aa7471d0cc12170e6cc645deb91603d42dd`)),j=u({method:`GET`}).handler(a(`d4c50f40701055145f24873dc90f3c55a5494457a6a03a743339b2ac4545eb19`)),M=u({method:`GET`}).handler(a(`3c04bc6624be6dfdd80cf96819f9c6d0455e59a7bb4c0374b6afb0162ffd15b0`)),N=u({method:`GET`}).handler(a(`6726f1ed9eda1f0cb4c1f1ad1023faee435ddcfd0b7c55ef08ca7f2f7f577370`)),P=u({method:`GET`}).handler(a(`735c501f6d5ea81a445ff2b6b2ea6a1b589e3c6f63a465a881822c80ae71e7d1`)),F=3e4,I={reportingInstallations:e=>[`insights`,`reporting-installations`,e],events:e=>[`insights`,`events`,e],installations:e=>[`insights`,`installations`,e],installation:e=>[`insights`,`installation`,e],installationEvents:e=>[`insights`,`installation-events`,e]},L=e=>n({queryKey:I.reportingInstallations(e),queryFn:()=>A({data:e}),refetchOnWindowFocus:!0,staleTime:F}),R=(e,t)=>n({queryKey:I.events(e),queryFn:()=>j({data:e}),enabled:t,refetchOnWindowFocus:!0,staleTime:F}),z=(e,t)=>n({queryKey:I.installations(e),queryFn:()=>P({data:e}),enabled:t&&e.identity.length>0,staleTime:F}),B=(e,t)=>n({queryKey:I.installation(e),queryFn:()=>N({data:{installId:e}}),enabled:t&&e.length>0,staleTime:F}),V=(e,t)=>n({queryKey:I.installationEvents(e),queryFn:()=>M({data:e}),enabled:t&&e.installId.length>0,refetchOnWindowFocus:!0,staleTime:F}),H=c(e(),1),U=i(),W={UPDATE_APPLIED:{label:`Bundle applied`,variant:`success`,icon:v},RECOVERED:{label:`Recovered`,variant:`warning`,icon:te},RELEASE_ADOPTED:{label:`Bundle adopted`,variant:`success`,icon:k},UNCHANGED:{label:`Activity reported`,variant:`secondary`,icon:ae}};function G(){let[e,t]=(0,H.useState)(`UTC`);return(0,H.useEffect)(()=>{t(Intl.DateTimeFormat().resolvedOptions().timeZone)},[]),new Intl.DateTimeFormat(`en`,{timeZone:e,timeZoneName:`shortOffset`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`})}function K(e,t){let n=Object.fromEntries(t.formatToParts(new Date(e)).map(({type:e,value:t})=>[e,t])),r=n.timeZoneName===`GMT`?`GMT+0`:n.timeZoneName;return`${n.year}/${n.month}/${n.day} ${n.hour}:${n.minute}:${n.second} ${r}`}function q({value:e,formatter:t,touch:n=!1}){let r=new Date(e),i=K(e,t);return(0,U.jsxs)(`details`,{className:`group/time`,children:[(0,U.jsx)(`summary`,{className:`cursor-pointer list-none rounded-md outline-none focus-visible:ring-2 focus-visible:ring-ring/30 [&::-webkit-details-marker]:hidden ${n?`flex min-h-11 items-center`:``}`,children:(0,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`time`,{dateTime:r.toISOString(),className:`whitespace-nowrap`,children:i}),(0,U.jsx)(ee,{"aria-hidden":`true`,className:`size-3 text-muted-foreground group-open/time:rotate-180`})]})}),(0,U.jsx)(`p`,{className:`mt-2 text-muted-foreground`,children:r.toISOString().replace(`T`,` `).replace(`Z`,` UTC`)})]})}function J({type:e}){let t=W[e],n=t.icon;return(0,U.jsxs)(ne,{variant:t.variant,className:`gap-1 whitespace-nowrap [&_svg]:size-3`,title:e===`UNCHANGED`?`App activity reported on the current bundle without a bundle transition.`:e===`RELEASE_ADOPTED`?`A different release was adopted without changing the bundle.`:void 0,children:[(0,U.jsx)(n,{"aria-hidden":`true`}),t.label]})}function Y({event:e,touch:t=!1}){return(0,U.jsxs)(`dl`,{className:`grid grid-cols-[auto_minmax(0,1fr)] items-center gap-x-2 gap-y-2`,children:[e.fromBundleId?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`dt`,{className:`text-muted-foreground`,children:`From`}),(0,U.jsx)(`dd`,{children:(0,U.jsx)(x,{value:e.fromBundleId,buttonClassName:t?`min-h-11 px-3`:void 0})})]}):null,(0,U.jsx)(`dt`,{className:`text-muted-foreground`,children:e.type===`UNCHANGED`?`Current`:`To`}),(0,U.jsx)(`dd`,{children:(0,U.jsx)(x,{value:e.toBundleId,buttonClassName:t?`min-h-11 px-3`:void 0})})]})}function X({events:e,formatter:t,renderIdentity:n}){return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`p`,{className:`px-4 pb-2 text-xs text-muted-foreground sm:px-6`,children:`Time in your browser zone`}),(0,U.jsx)(`ol`,{"aria-label":`Events`,className:`divide-y border-y`,children:e.map(e=>(0,U.jsxs)(`li`,{className:`flex min-w-0 flex-col gap-3 px-4 py-4 sm:px-6`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-4 gap-y-1`,children:[(0,U.jsx)(J,{type:e.type}),(0,U.jsx)(`div`,{className:`text-xs tabular-nums`,children:(0,U.jsx)(q,{value:e.receivedAtMs,formatter:t,touch:!0})})]}),n?.(e),(0,U.jsxs)(`dl`,{className:`flex flex-wrap gap-x-2 gap-y-1 text-sm`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`dt`,{className:`sr-only`,children:`App`}),(0,U.jsxs)(`dd`,{children:[e.platform===`ios`?`iOS`:`Android`,` `,e.appVersion]})]}),(0,U.jsxs)(`div`,{className:`min-w-0 text-muted-foreground`,children:[(0,U.jsx)(`dt`,{className:`sr-only`,children:`Channel`}),(0,U.jsx)(`dd`,{className:`wrap-anywhere`,children:e.channel})]})]}),(0,U.jsx)(`div`,{className:`text-xs`,"aria-label":`Bundle`,children:(0,U.jsx)(Y,{event:e,touch:!0})})]},e.id))})]})}function Z({fallbackTitle:e}){return(0,U.jsxs)(w,{variant:`destructive`,children:[(0,U.jsx)(r,{"aria-hidden":`true`}),(0,U.jsx)(T,{children:e}),(0,U.jsx)(ie,{children:`Refresh to try again. If this keeps happening, check your Insights provider connection.`})]})}function Q({hasPrevious:e,label:t,nextCursor:n,onNext:r,onPrevious:i,pageLength:a,pageNumber:o}){return(0,U.jsxs)(`nav`,{"aria-label":`${t} pagination`,className:`flex flex-wrap items-center justify-between gap-3 border-t px-4 py-3 sm:px-6`,children:[(0,U.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,children:[`Page `,o,` · `,a.toLocaleString(),` rows`]}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(d,{className:`h-11 min-w-11 px-3 lg:h-8 lg:min-w-0 lg:px-2`,disabled:!e,onClick:i,size:`sm`,type:`button`,variant:`outline`,children:`Previous`}),(0,U.jsx)(d,{className:`h-11 min-w-11 px-3 lg:h-8 lg:min-w-0 lg:px-2`,disabled:n===null,onClick:r,size:`sm`,type:`button`,variant:`outline`,children:`Next`})]})]})}function $({event:e,eventsLocation:t,touch:n=!1}){return(0,U.jsxs)(`div`,{className:n?`flex min-w-0 flex-wrap items-center justify-between gap-2`:`flex min-w-0 flex-col items-start gap-2`,children:[(0,U.jsxs)(f,{className:o({className:n?`-ml-2 h-auto min-h-11 min-w-0 flex-1 justify-start gap-2 whitespace-normal text-sm`:`-ml-2 max-w-full justify-start`,size:`sm`,variant:`ghost`}),to:`/installations`,search:{...t,query:e.installId||void 0,installId:e.installId},"aria-label":`View history for ${e.userId??e.username??`anonymous installation`} (${e.installId})`,children:[(0,U.jsx)(`span`,{className:n?`min-w-0 text-left wrap-anywhere`:`truncate`,children:e.userId??e.username??`Anonymous installation`}),(0,U.jsx)(O,{"aria-hidden":`true`,"data-icon":`inline-end`})]}),(0,U.jsx)(x,{value:e.installId,maxLength:13,buttonClassName:n?`min-h-11 px-3`:void 0})]})}function oe({children:e,error:t,eventsLocation:n,history:r,isFetching:i,isLoading:a,onNext:o,onPrevious:c,onRefresh:l,pageNumber:u,title:f=`All events`}){let p=G(),v=u>1;return(0,U.jsxs)(re,{className:`@container min-w-0 shadow-sm`,"aria-busy":i,children:[(0,U.jsxs)(C,{className:`gap-4 p-4 sm:p-6`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,U.jsx)(D,{children:(0,U.jsx)(`h2`,{children:f})}),(0,U.jsxs)(d,{className:`h-11 lg:h-8`,disabled:i,onClick:l,size:`lg`,variant:`outline`,children:[(0,U.jsx)(S,{"aria-hidden":`true`,"data-icon":`inline-start`}),`Refresh`]})]}),e]}),(0,U.jsx)(E,{className:`min-w-0 p-0`,children:a?(0,U.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,role:`status`,"aria-label":`Loading events`,children:[(0,U.jsx)(s,{className:`h-12 w-full`}),(0,U.jsx)(s,{className:`h-12 w-full`}),(0,U.jsx)(s,{className:`h-12 w-full`})]}):t?(0,U.jsx)(`div`,{className:`px-6 pb-6`,children:(0,U.jsx)(Z,{error:t,fallbackTitle:`Event history unavailable`})}):r?(0,U.jsxs)(U.Fragment,{children:[r.data.length>0?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`@[58rem]:hidden`,children:(0,U.jsx)(X,{events:r.data,formatter:p,renderIdentity:e=>(0,U.jsx)($,{event:e,eventsLocation:n,touch:!0})})}),(0,U.jsx)(`div`,{className:`hidden @[58rem]:block`,children:(0,U.jsxs)(b,{className:`min-w-4xl table-fixed`,children:[(0,U.jsx)(m,{children:(0,U.jsxs)(_,{className:`[&>th]:px-4 sm:[&>th]:px-6`,children:[(0,U.jsx)(h,{className:`w-64`,children:`Time`}),(0,U.jsx)(h,{className:`w-48`,children:`Event`}),(0,U.jsx)(h,{className:`w-48`,children:`User / installation`}),(0,U.jsx)(h,{className:`w-32`,children:`App`}),(0,U.jsx)(h,{className:`w-52`,children:`Bundle`})]})}),(0,U.jsx)(g,{children:r.data.map(e=>(0,U.jsxs)(_,{className:`[&>td]:px-4 [&>td]:py-4 [&>td]:align-top sm:[&>td]:px-6`,children:[(0,U.jsx)(y,{className:`whitespace-normal text-xs tabular-nums`,children:(0,U.jsx)(q,{value:e.receivedAtMs,formatter:p})}),(0,U.jsx)(y,{children:(0,U.jsx)(J,{type:e.type})}),(0,U.jsx)(y,{children:(0,U.jsx)($,{event:e,eventsLocation:n})}),(0,U.jsx)(y,{className:`whitespace-normal text-xs`,children:(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsxs)(`span`,{children:[e.platform===`ios`?`iOS`:`Android`,` `,e.appVersion]}),(0,U.jsx)(`span`,{className:`text-muted-foreground`,children:e.channel})]})}),(0,U.jsx)(y,{className:`whitespace-normal text-xs`,children:(0,U.jsx)(Y,{event:e})})]},e.id))})]})})]}):(0,U.jsx)(`div`,{className:`px-6 pb-6 text-sm text-muted-foreground`,children:v||r.nextCursor?`No events on this page`:f===`All events`?`No events recorded yet`:`No matching reports in this period`}),r.data.length>0||v||r.nextCursor?(0,U.jsx)(Q,{hasPrevious:v,label:f,nextCursor:r.nextCursor,onNext:o,onPrevious:c,pageLength:r.data.length,pageNumber:u}):null]}):null})]})}function se({view:e}){return(0,U.jsxs)(`header`,{className:`sticky top-0 z-10 flex shrink-0 flex-wrap items-center gap-3 border-b bg-background px-3 py-3 sm:bg-card/70 sm:px-4 sm:backdrop-blur-sm`,children:[(0,U.jsx)(l,{className:`-ml-1 size-11 lg:size-7`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsx)(p,{"aria-hidden":`true`,className:`size-3.5 text-muted-foreground`}),(0,U.jsx)(`h1`,{className:`text-sm font-medium`,children:`Insights`})]}),(0,U.jsxs)(`nav`,{"aria-label":`Insights views`,className:`ml-auto flex gap-1`,children:[(0,U.jsx)(f,{"aria-current":e===`overview`?`page`:void 0,className:o({className:`h-11 px-3 lg:h-8 lg:px-2.5`,size:`lg`,variant:e===`overview`?`secondary`:`ghost`}),to:`/insights`,children:`Overview`}),(0,U.jsx)(f,{"aria-current":e===`events`?`page`:void 0,className:o({className:`h-11 px-3 lg:h-8 lg:px-2.5`,size:`lg`,variant:e===`events`?`secondary`:`ghost`}),to:`/installations`,children:`Events`})]})]})}export{X as a,J as c,V as d,B as f,O as h,Z as i,G as l,L as m,oe as n,Y as o,z as p,Q as r,q as s,se as t,R as u};
@@ -1 +0,0 @@
1
- import{Dr as e,Gn as t,Wn as n,Zn as r,gn as i,kr as a,m as o,vn as s,yn as c}from"./createServerFn-CA8fs7QD.js";import{t as l}from"./loader-circle-BoxLrsOu.js";import{a as u,c as ee,d,i as f,l as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b}from"./table-2vcV89QB.js";import{a as te,i as ne,o as x,r as S}from"./api-keys-api-BHcODB7q.js";import{N as C,_ as w,a as T,d as E,f as D,g as O,h as k,i as A,l as j,m as M,n as N,o as P,p as F,r as I,t as re,u as L,v as R}from"./dialog-CUTrcPlB.js";import{t as z}from"./refresh-cw-Bqc72UZG.js";import{n as B}from"./dist-C_NydL0e.js";import{a as V,c as H,d as U,l as W,n as G,o as K,s as q,t as J,u as Y}from"./card-Dhr_eFYj.js";var X=t(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),Z=t(`shield-off`,[[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71`,key:`1jlk70`}],[`path`,{d:`M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264`,key:`18rp1v`}]]),Q=a(e(),1),$=r(),ie=e=>new Date(e).toISOString().slice(0,10);function ae(){let[e,t]=(0,Q.useState)(!1),[n,r]=(0,Q.useState)(``),[i,a]=(0,Q.useState)(null),o=ne(),u=n.trim(),f=u.length>64?`Name must be 64 characters or fewer.`:null,m=()=>{r(``),a(null),o.reset()},h=e=>{t(e),e||m()};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(c,{onClick:()=>t(!0),children:[(0,$.jsx)(C,{"data-icon":`inline-start`}),`Create API key`]}),(0,$.jsx)(re,{open:e,onOpenChange:h,children:(0,$.jsxs)(N,{showCloseButton:i===null,children:[(0,$.jsxs)(T,{children:[(0,$.jsx)(P,{children:i===null?`Create API key`:`Save your API key`}),(0,$.jsx)(I,{children:i===null?`Name the app or environment that will use this key.`:`This key is shown once. Store it securely before closing.`})]}),i===null?(0,$.jsxs)(`form`,{onSubmit:async e=>{if(e.preventDefault(),!(u.length===0||f!==null))try{a((await o.mutateAsync(u)).apiKey),B.success(`API key created`)}catch(e){B.error(e instanceof Error?e.message:`Unable to create API key`)}},children:[(0,$.jsx)(b,{children:(0,$.jsxs)(v,{"data-invalid":f!==null||void 0,children:[(0,$.jsx)(d,{htmlFor:`api-key-name`,children:`Name`}),(0,$.jsx)(s,{id:`api-key-name`,autoComplete:`off`,maxLength:65,onChange:e=>r(e.target.value),placeholder:`Production app`,value:n}),(0,$.jsx)(ee,{children:`Use a name you can identify before revoking the key.`}),(0,$.jsx)(p,{children:f})]})}),(0,$.jsx)(A,{className:`mt-4`,children:(0,$.jsxs)(c,{disabled:o.isPending||u.length===0||f!==null,type:`submit`,children:[o.isPending?(0,$.jsx)(l,{"data-icon":`inline-start`,className:`animate-spin`}):(0,$.jsx)(x,{"data-icon":`inline-start`}),`Create API key`]})})]}):(0,$.jsxs)(b,{children:[(0,$.jsxs)(v,{children:[(0,$.jsx)(d,{htmlFor:`created-api-key`,children:`API key`}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(s,{id:`created-api-key`,className:`font-mono`,readOnly:!0,value:i}),(0,$.jsxs)(c,{onClick:async()=>{if(i!==null)try{await navigator.clipboard.writeText(i),B.success(`API key copied`)}catch{B.error(`Unable to copy API key`)}},type:`button`,variant:`outline`,children:[(0,$.jsx)(X,{"data-icon":`inline-start`}),`Copy`]})]})]}),(0,$.jsx)(A,{children:(0,$.jsxs)(c,{onClick:()=>h(!1),children:[(0,$.jsx)(g,{"data-icon":`inline-start`}),`Done`]})})]})]})})]})}function oe({record:e}){let[t,n]=(0,Q.useState)(!1),r=te(),i=async t=>{t.preventDefault();try{await r.mutateAsync(e.id),n(!1),B.success(`API key revoked`)}catch(e){B.error(e instanceof Error?e.message:`Unable to revoke API key`)}};return(0,$.jsxs)(j,{open:t,onOpenChange:e=>{r.isPending||n(e)},children:[(0,$.jsxs)(R,{render:(0,$.jsx)(c,{size:`sm`,variant:`ghost`}),children:[(0,$.jsx)(Z,{"data-icon":`inline-start`}),`Revoke`]}),(0,$.jsxs)(D,{children:[(0,$.jsxs)(k,{children:[(0,$.jsx)(O,{children:(0,$.jsx)(Z,{})}),(0,$.jsxs)(w,{children:[`Revoke `,e.name,`?`]}),(0,$.jsxs)(F,{children:[`Apps using `,e.prefix,`… will immediately lose OTA update and insights access. This action cannot be undone.`]})]}),(0,$.jsxs)(M,{children:[(0,$.jsx)(E,{disabled:r.isPending,children:`Cancel`}),(0,$.jsx)(L,{disabled:r.isPending,onClick:e=>void i(e),variant:`destructive`,children:`Revoke API key`})]})]})]})}function se(){let e=S();return(0,$.jsxs)(J,{className:`overflow-hidden shadow-sm`,children:[(0,$.jsxs)(V,{className:`flex-row items-center justify-between space-y-0 border-b px-4 py-3`,children:[(0,$.jsx)(K,{className:`text-sm`,children:(0,$.jsx)(`h2`,{children:`API keys`})}),(0,$.jsx)(ae,{})]}),(0,$.jsx)(G,{className:`p-0`,children:e.isError?(0,$.jsx)(`div`,{className:`p-4`,children:(0,$.jsxs)(H,{variant:`destructive`,children:[(0,$.jsx)(n,{}),(0,$.jsx)(U,{children:`API keys couldn't be loaded`}),(0,$.jsx)(Y,{children:`Check your connection and try again.`}),(0,$.jsx)(W,{children:(0,$.jsxs)(c,{onClick:()=>void e.refetch(),size:`xs`,variant:`outline`,children:[(0,$.jsx)(z,{"data-icon":`inline-start`}),`Retry`]})})]})}):(0,$.jsxs)(y,{"aria-label":`API keys`,className:`table-fixed`,children:[(0,$.jsx)(u,{children:(0,$.jsxs)(h,{children:[(0,$.jsx)(f,{children:`Key`}),(0,$.jsx)(f,{className:`w-32`,children:`Created`}),(0,$.jsx)(f,{className:`w-24 text-right`,children:(0,$.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,$.jsx)(m,{children:e.isLoading?Array.from({length:3},(e,t)=>(0,$.jsxs)(h,{children:[(0,$.jsxs)(_,{className:`space-y-2 py-3`,children:[t===0?(0,$.jsx)(`span`,{className:`sr-only`,children:`Loading API keys`}):null,(0,$.jsx)(i,{className:`h-3.5 w-32`}),(0,$.jsx)(i,{className:`h-3 w-20`})]}),(0,$.jsx)(_,{children:(0,$.jsx)(i,{className:`h-3.5 w-20`})}),(0,$.jsx)(_,{children:(0,$.jsx)(i,{className:`ml-auto h-6 w-16`})})]},t)):e.data?.length===0?(0,$.jsx)(h,{children:(0,$.jsx)(_,{colSpan:3,className:`h-40 text-center text-muted-foreground`,children:(0,$.jsxs)(`div`,{className:`mx-auto flex max-w-xs flex-col items-center gap-2`,children:[(0,$.jsx)(x,{className:`size-5`}),(0,$.jsx)(`p`,{className:`font-medium text-foreground`,children:`No API keys`}),(0,$.jsx)(`p`,{children:`Create an API key to connect an app.`})]})})}):e.data?.map(e=>(0,$.jsxs)(h,{className:e.revoked_at_ms===null?void 0:`text-muted-foreground`,children:[(0,$.jsx)(_,{className:`whitespace-normal py-3`,children:(0,$.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,$.jsx)(`p`,{className:`break-words font-medium text-foreground`,children:e.name}),(0,$.jsxs)(`p`,{className:`font-mono text-xs text-muted-foreground`,children:[e.prefix,`…`]})]})}),(0,$.jsx)(_,{className:`text-xs text-muted-foreground`,children:(0,$.jsx)(`time`,{dateTime:new Date(e.created_at_ms).toISOString(),children:ie(e.created_at_ms)})}),(0,$.jsx)(_,{className:`text-right`,children:e.revoked_at_ms===null?(0,$.jsx)(oe,{record:e}):(0,$.jsx)(q,{variant:`outline`,children:`Revoked`})})]},e.id))})]})})]})}function ce(){return(0,$.jsxs)(`div`,{className:`flex h-svh min-h-0 flex-col`,children:[(0,$.jsxs)(`header`,{className:`sticky top-0 z-10 flex shrink-0 flex-wrap items-center gap-x-3 gap-y-1 border-b bg-background px-3 py-3 sm:min-h-12 sm:flex-nowrap sm:bg-card/70 sm:px-4 sm:backdrop-blur-sm`,children:[(0,$.jsx)(o,{className:`-ml-1`}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(x,{"aria-hidden":`true`,className:`size-3.5 text-muted-foreground`}),(0,$.jsx)(`h1`,{className:`text-sm font-medium`,children:`API keys`})]}),(0,$.jsx)(`p`,{className:`basis-full pl-9 text-xs text-muted-foreground sm:basis-auto sm:pl-0`,children:`API keys can download OTA updates and submit insights only.`})]}),(0,$.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto bg-muted/5 p-3 sm:p-6`,children:(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-5xl`,children:(0,$.jsx)(se,{})})})]})}export{ce as component};
@@ -1 +0,0 @@
1
- import{Dr as e,Nn as t,Pn as n,Un as r,Zn as i,xn as a}from"./createServerFn-CA8fs7QD.js";e();var o=i(),s=t(`group/alert relative grid w-full gap-0.5 rounded-lg border px-2 py-1.5 text-left text-xs/relaxed has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-1.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-3.5`,{variants:{variant:{default:`bg-card text-card-foreground`,destructive:`bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current`}},defaultVariants:{variant:`default`}});function c({className:e,variant:t,...n}){return(0,o.jsx)(`div`,{"data-slot":`alert`,role:`alert`,className:a(s({variant:t}),e),...n})}function l({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`alert-title`,className:a(`font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground`,e),...t})}function u({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`alert-description`,className:a(`text-xs/relaxed text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4`,e),...t})}function d({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`alert-action`,className:a(`absolute top-1.5 right-2`,e),...t})}var f=t(`inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,success:`border-success/20 bg-success/10 text-success`,warning:`border-warning/20 bg-warning/10 text-warning`,destructive:`border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function p({className:e,variant:t=`default`,render:i,...o}){return n({defaultTagName:`span`,props:r({className:a(f({variant:t}),e)},o),render:i,state:{slot:`badge`,variant:t}})}function m({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`card`,className:a(`rounded-xl border bg-card text-card-foreground shadow`,e),...t})}function h({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`card-header`,className:a(`flex flex-col space-y-1.5 p-6`,e),...t})}function g({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`card-title`,className:a(`font-semibold leading-none tracking-tight`,e),...t})}function _({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`card-description`,className:a(`text-sm text-muted-foreground`,e),...t})}function v({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`card-content`,className:a(`p-6 pt-0`,e),...t})}function y({className:e,...t}){return(0,o.jsx)(`div`,{"data-slot":`card-footer`,className:a(`flex items-center p-6 pt-0`,e),...t})}export{h as a,c,l as d,y as i,d as l,v as n,g as o,_ as r,p as s,m as t,u};