bunqueue-dashboard 1.0.3 → 1.0.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.
- package/dist/.vite/manifest.json +335 -608
- package/dist/assets/AddJob-Dgjlhzn2.js +3 -0
- package/dist/assets/Alerts-Lyzbq0qw.js +1 -0
- package/dist/assets/{AreaChart-BMYp7z5y.js → AreaChart-CSP0-00u.js} +1 -1
- package/dist/assets/Benchmark-B4NfYkAi.js +1 -0
- package/dist/assets/{BulkAddJobs-0cdWqkEF.js → BulkAddJobs-BAN5wT8A.js} +3 -3
- package/dist/assets/Cron-Bz46oVXB.js +1 -0
- package/dist/assets/CronManager-Cl5RW2cB.js +1 -0
- package/dist/assets/Database-CeUKS6Nf.js +3 -0
- package/dist/assets/Diagnostics-DuzTPfyb.js +1 -0
- package/dist/assets/Dlq-D8s-NhV2.js +1 -0
- package/dist/assets/DlqControl-DDxRMM8i.js +1 -0
- package/dist/assets/DlqPro-xj-MM6u8.js +1 -0
- package/dist/assets/Fleet-BAziMWfo.js +1 -0
- package/dist/assets/Flows-BFUMTSWv.js +2 -0
- package/dist/assets/JobInspector-BXuXxDwR.js +2 -0
- package/dist/assets/Jobs-pQBmffni.js +1 -0
- package/dist/assets/JobsPro-k20Pas24.js +1 -0
- package/dist/assets/Logs-DA4JFvpM.js +1 -0
- package/dist/assets/LogsPro-hna5L6sP.js +1 -0
- package/dist/assets/{McpServer-ffXr4nFW.js → McpServer-Cqem-L3z.js} +2 -2
- package/dist/assets/Metrics-CJ9dW0me.js +1 -0
- package/dist/assets/MetricsPro-BslYrx1A.js +1 -0
- package/dist/assets/Overview-Cmg_2NAt.js +1 -0
- package/dist/assets/Pagination-WVfHLHDS.js +1 -0
- package/dist/assets/{QueueActions-BgdW95rN.js → QueueActions-BQf1-g5m.js} +1 -1
- package/dist/assets/QueueControl-BiMM0jLp.js +1 -0
- package/dist/assets/QueueDetail-DfRY4jS4.js +1 -0
- package/dist/assets/QueueDetailPro-CpSMSo8A.js +1 -0
- package/dist/assets/Queues-C5lElTjp.js +1 -0
- package/dist/assets/QueuesOverview-DRohFtuC.js +1 -0
- package/dist/assets/S3Backup-DUHmp2Xw.js +1 -0
- package/dist/assets/S3BackupPro-Cr2ZJZkw.js +3 -0
- package/dist/assets/ServerControl-m58ooJT2.js +3 -0
- package/dist/assets/Settings-DXsjoOqD.js +1 -0
- package/dist/assets/{StatusBadge-cYUkK-4P.js → StatusBadge-D-mexaga.js} +1 -1
- package/dist/assets/Usage-CY2uEJEu.js +1 -0
- package/dist/assets/UsagePro-DtlB1dJc.js +1 -0
- package/dist/assets/Webhooks-B_GwTCBW.js +1 -0
- package/dist/assets/Workers-Bu8aJlZf.js +1 -0
- package/dist/assets/WorkersPro-C6gNYGfo.js +1 -0
- package/dist/assets/Workflows-ClF4YzhW.js +1 -0
- package/dist/assets/{api-Bbo86MB6.js → api-CCgfskjt.js} +1 -1
- package/dist/assets/{classicJobsData-BimIyQky.js → classicJobsData-wdIr-E4y.js} +1 -1
- package/dist/assets/connectionStore-B946Fhuv.js +1 -0
- package/dist/assets/controlConnectionEpoch-x9VjrWgN.js +1 -0
- package/dist/assets/{form-Dy-an7ew.js → form-DBkslwzu.js} +1 -1
- package/dist/assets/{icons-C1HVBnFn.js → icons-BIT5aq1c.js} +1 -1
- package/dist/assets/index-DR8flo6r.css +1 -0
- package/dist/assets/index-X_fHGbXZ.js +8 -0
- package/dist/assets/install-hFu5e6YM.js +3 -0
- package/dist/assets/package-Bb3FkjoS.js +1 -0
- package/dist/assets/react-vendor-08inPAVO.js +11 -0
- package/dist/assets/responses-YgpvqWEr.js +1 -0
- package/dist/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/dist/assets/{useControlActionGuard-DImMgJtj.js → useControlActionGuard-Bx5MkufG.js} +1 -1
- package/dist/assets/{useServerActionGuard-Cr4KUOeZ.js → useServerActionGuard-uiZWD3dS.js} +1 -1
- package/dist/assets/useThroughputSeries-BN5QmKPt.js +1 -0
- package/dist/index.html +8 -16
- package/package.json +29 -36
- package/scripts/embedded.gen.ts +132 -148
- package/dist/assets/AddJob-jq-VZ_YE.js +0 -3
- package/dist/assets/Alerts-Bi8zLKXV.js +0 -1
- package/dist/assets/Benchmark-CWYdqm55.js +0 -1
- package/dist/assets/Button-BCjgbAhY.js +0 -1
- package/dist/assets/Card-DptfvL2O.js +0 -1
- package/dist/assets/Cron-dPGwJXqY.js +0 -1
- package/dist/assets/CronManager-C0-Y2QDg.js +0 -1
- package/dist/assets/Database-CseJOrvD.js +0 -3
- package/dist/assets/Diagnostics-cZTy4Y2t.js +0 -1
- package/dist/assets/Dlq-W2xOJiZM.js +0 -1
- package/dist/assets/DlqControl-CIV5278D.js +0 -1
- package/dist/assets/DlqPro-BuRxGtGt.js +0 -1
- package/dist/assets/Fleet-0zKJSjCw.js +0 -1
- package/dist/assets/Flows-CEfm102Y.js +0 -2
- package/dist/assets/JobInspector-BlMj5-Vr.js +0 -2
- package/dist/assets/Jobs-D_TId_Oa.js +0 -1
- package/dist/assets/JobsPro-A06ZG5Xi.js +0 -1
- package/dist/assets/Logs-hbh7XhQU.js +0 -1
- package/dist/assets/LogsPro-BgEIjgfj.js +0 -1
- package/dist/assets/Metrics-CIKZGgf0.js +0 -1
- package/dist/assets/MetricsPro-CK3WfLCl.js +0 -1
- package/dist/assets/Overview-BBgwyUn4.js +0 -1
- package/dist/assets/PageHeader-DD4vnVog.js +0 -1
- package/dist/assets/Pagination-Cj7GzYNX.js +0 -1
- package/dist/assets/QueueControl-g-9kwrpt.js +0 -1
- package/dist/assets/QueueDetail-Cv3MLDoE.js +0 -1
- package/dist/assets/QueueDetailPro-AhdOAzEF.js +0 -1
- package/dist/assets/Queues-Bbvh_OCE.js +0 -1
- package/dist/assets/QueuesOverview-sPQILfMU.js +0 -1
- package/dist/assets/S3Backup-Cg6sc2JG.js +0 -1
- package/dist/assets/S3BackupPro-BWV_R_Vj.js +0 -3
- package/dist/assets/ServerControl-Dr2gXbaU.js +0 -3
- package/dist/assets/Settings-BsDDlu-h.js +0 -1
- package/dist/assets/Usage-Cxx6pZfb.js +0 -1
- package/dist/assets/UsagePro-CkC8WYcS.js +0 -1
- package/dist/assets/Webhooks-BKWnALGC.js +0 -1
- package/dist/assets/Workers-SJ9MApx3.js +0 -1
- package/dist/assets/WorkersPro-BDgHBTpY.js +0 -1
- package/dist/assets/Workflows-Cp6jqKeM.js +0 -1
- package/dist/assets/bq-CSX8DSME.js +0 -1
- package/dist/assets/connectionStore-DdLzJyut.js +0 -1
- package/dist/assets/controlConnectionEpoch-D4HtriLM.js +0 -1
- package/dist/assets/feedback-Dxfj-Fy1.js +0 -1
- package/dist/assets/format-Cg7VCIZW.js +0 -1
- package/dist/assets/index-CxzFSZj3.js +0 -8
- package/dist/assets/index-DZXf58c2.css +0 -1
- package/dist/assets/install-DUkXE5kb.js +0 -3
- package/dist/assets/package-C7CtgBEy.js +0 -1
- package/dist/assets/react-vendor-DfC0iyIS.js +0 -11
- package/dist/assets/responses-BkR2JTH9.js +0 -1
- package/dist/assets/rolldown-runtime-QTnfLwEv.js +0 -1
- package/dist/assets/toastStore-DnqA_aL-.js +0 -1
- package/dist/assets/usePolledData-Dp_ynL9f.js +0 -1
- package/dist/assets/useThroughputSeries-CrTeR9s3.js +0 -1
- package/patches/ai@7.0.14.patch +0 -25
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:"Inter Variable", ui-sans-serif, system-ui, sans-serif;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-700:oklch(52% .105 223.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-700:oklch(49.1% .27 292.581);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter Variable", ui-sans-serif, system-ui, sans-serif;--default-mono-font-family:"JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--line)}html,body,#root{height:100%}html{font-size:clamp(13.5px,12.7px + .28vw,16px)}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);letter-spacing:-.005em;font-optical-sizing:auto;font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.55}h1,h2{letter-spacing:-.02em}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface-2);border:2px solid var(--bg);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--line-strong)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.inset-y-1\.5{inset-block:calc(var(--spacing) * 1.5)}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-5{top:calc(var(--spacing) * 5)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-\[-13px\]{bottom:-13px}.left-0{left:0}.left-1{left:var(--spacing)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[55\]{z-index:55}.z-\[60\]{z-index:60}.order-42{order:42}.order-99{order:99}.order-first{order:-9999}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-2{margin-top:calc(var(--spacing) * -2)}.-mt-3{margin-top:calc(var(--spacing) * -3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\[18px\]{width:18px;height:18px}.size-\[44px\]{width:44px;height:44px}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[28rem\]{max-height:28rem}.max-h-\[70vh\]{max-height:70vh}.min-h-0{min-height:0}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-20{min-height:calc(var(--spacing) * 20)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-80{min-height:calc(var(--spacing) * 80)}.min-h-\[44px\]{min-height:44px}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-2\/5{width:40%}.w-4{width:calc(var(--spacing) * 4)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-80{width:calc(var(--spacing) * 80)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-\[14rem\]{max-width:14rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[24rem\]{max-width:24rem}.max-w-\[85\%\]{max-width:85%}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-52{min-width:calc(var(--spacing) * 52)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-\[44rem\]{min-width:44rem}.min-w-\[52rem\]{min-width:52rem}.min-w-\[560px\]{min-width:560px}.min-w-\[680px\]{min-width:680px}.min-w-max{min-width:max-content}.min-w-px{min-width:1px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[18px_1fr\]{grid-template-columns:18px 1fr}.grid-cols-\[28px_minmax\(0\,1fr\)\]{grid-template-columns:28px minmax(0,1fr)}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-line>:not(:last-child)),:where(.divide-line\/70>:not(:last-child)){border-color:var(--line)}@supports (color:color-mix(in lab, red, red)){:where(.divide-line\/70>:not(:last-child)){border-color:color-mix(in oklab, var(--line) 70%, transparent)}}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-x-contain{overscroll-behavior-x:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent,.border-accent\/30{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/30{border-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.border-accent\/40{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/40{border-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.border-accent\/50{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/50{border-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.border-accent\/60{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/60{border-color:color-mix(in oklab, var(--accent) 60%, transparent)}}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/20{border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/25{border-color:color-mix(in oklab, var(--color-amber-500) 25%, transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-blue-400\/60{border-color:#54a2ff99}@supports (color:color-mix(in lab, red, red)){.border-blue-400\/60{border-color:color-mix(in oklab, var(--color-blue-400) 60%, transparent)}}.border-current{border-color:currentColor}.border-cyan-400\/60{border-color:#00d2ef99}@supports (color:color-mix(in lab, red, red)){.border-cyan-400\/60{border-color:color-mix(in oklab, var(--color-cyan-400) 60%, transparent)}}.border-danger,.border-danger\/30{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\/30{border-color:color-mix(in oklab, var(--danger) 30%, transparent)}}.border-danger\/40{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\/40{border-color:color-mix(in oklab, var(--danger) 40%, transparent)}}.border-danger\/50{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\/50{border-color:color-mix(in oklab, var(--danger) 50%, transparent)}}.border-emerald-500\/25{border-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/25{border-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.border-line{border-color:var(--line)}.border-line-strong{border-color:var(--line-strong)}.border-line\/60{border-color:var(--line)}@supports (color:color-mix(in lab, red, red)){.border-line\/60{border-color:color-mix(in oklab, var(--line) 60%, transparent)}}.border-line\/70{border-color:var(--line)}@supports (color:color-mix(in lab, red, red)){.border-line\/70{border-color:color-mix(in oklab, var(--line) 70%, transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab, red, red)){.border-red-500\/25{border-color:color-mix(in oklab, var(--color-red-500) 25%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-success\/40{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/40{border-color:color-mix(in oklab, var(--success) 40%, transparent)}}.border-success\/50{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/50{border-color:color-mix(in oklab, var(--success) 50%, transparent)}}.border-surface{border-color:var(--surface)}.border-transparent{border-color:#0000}.border-warning\/30{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/30{border-color:color-mix(in oklab, var(--warning) 30%, transparent)}}.border-warning\/40{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/40{border-color:color-mix(in oklab, var(--warning) 40%, transparent)}}.border-warning\/50{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/50{border-color:color-mix(in oklab, var(--warning) 50%, transparent)}}.border-t-transparent{border-top-color:#0000}.bg-accent,.bg-accent\/5{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/5{background-color:color-mix(in oklab, var(--accent) 5%, transparent)}}.bg-accent\/10{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/10{background-color:color-mix(in oklab, var(--accent) 10%, transparent)}}.bg-accent\/15{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/15{background-color:color-mix(in oklab, var(--accent) 15%, transparent)}}.bg-accent\/70{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/70{background-color:color-mix(in oklab, var(--accent) 70%, transparent)}}.bg-accent\/\[0\.06\]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/\[0\.06\]{background-color:color-mix(in oklab, var(--accent) 6%, transparent)}}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/5{background-color:color-mix(in oklab, var(--color-amber-500) 5%, transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-amber-500\/\[0\.06\]{background-color:#f99c000f}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-amber-500) 6%, transparent)}}.bg-bg,.bg-bg\/80{background-color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.bg-bg\/80{background-color:color-mix(in oklab, var(--bg) 80%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-400\/10{background-color:#54a2ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-400\/10{background-color:color-mix(in oklab, var(--color-blue-400) 10%, transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-current{background-color:currentColor}.bg-cyan-400\/10{background-color:#00d2ef1a}@supports (color:color-mix(in lab, red, red)){.bg-cyan-400\/10{background-color:color-mix(in oklab, var(--color-cyan-400) 10%, transparent)}}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/10{background-color:color-mix(in oklab, var(--color-cyan-500) 10%, transparent)}}.bg-danger\/5{background-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.bg-danger\/5{background-color:color-mix(in oklab, var(--danger) 5%, transparent)}}.bg-danger\/10{background-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.bg-danger\/10{background-color:color-mix(in oklab, var(--danger) 10%, transparent)}}.bg-danger\/\[0\.06\]{background-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.bg-danger\/\[0\.06\]{background-color:color-mix(in oklab, var(--danger) 6%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-emerald-500\/\[0\.06\]{background-color:#00bb7f0f}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-emerald-500) 6%, transparent)}}.bg-line{background-color:var(--line)}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/10{background-color:color-mix(in oklab, var(--color-orange-500) 10%, transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/5{background-color:color-mix(in oklab, var(--color-red-500) 5%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/15{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.bg-red-500\/40{background-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/40{background-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.bg-red-500\/\[0\.06\]{background-color:#fb2c360f}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-red-500) 6%, transparent)}}.bg-sidebar{background-color:var(--sidebar)}.bg-success\/10{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/10{background-color:color-mix(in oklab, var(--success) 10%, transparent)}}.bg-surface{background-color:var(--surface)}.bg-surface-2,.bg-surface-2\/30{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.bg-surface-2\/30{background-color:color-mix(in oklab, var(--surface-2) 30%, transparent)}}.bg-surface-2\/40{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.bg-surface-2\/40{background-color:color-mix(in oklab, var(--surface-2) 40%, transparent)}}.bg-surface-2\/50{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.bg-surface-2\/50{background-color:color-mix(in oklab, var(--surface-2) 50%, transparent)}}.bg-surface-2\/80{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.bg-surface-2\/80{background-color:color-mix(in oklab, var(--surface-2) 80%, transparent)}}.bg-surface\/60{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in oklab, var(--surface) 60%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\/10{background-color:color-mix(in oklab, var(--color-violet-500) 10%, transparent)}}.bg-warning\/5{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/5{background-color:color-mix(in oklab, var(--warning) 5%, transparent)}}.bg-warning\/10{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.bg-warning\/15{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/15{background-color:color-mix(in oklab, var(--warning) 15%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-zinc-400{background-color:var(--color-zinc-400)}.bg-zinc-500{background-color:var(--color-zinc-500)}.bg-zinc-500\/10{background-color:#71717b1a}@supports (color:color-mix(in lab, red, red)){.bg-zinc-500\/10{background-color:color-mix(in oklab, var(--color-zinc-500) 10%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-accent{--tw-gradient-from:var(--accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-amber-400\/80{--tw-gradient-from:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.from-amber-400\/80{--tw-gradient-from:color-mix(in oklab, var(--color-amber-400) 80%, transparent)}}.from-amber-400\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-emerald-400\/80{--tw-gradient-from:#00d294cc}@supports (color:color-mix(in lab, red, red)){.from-emerald-400\/80{--tw-gradient-from:color-mix(in oklab, var(--color-emerald-400) 80%, transparent)}}.from-emerald-400\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-red-400\/70{--tw-gradient-from:#ff6568b3}@supports (color:color-mix(in lab, red, red)){.from-red-400\/70{--tw-gradient-from:color-mix(in oklab, var(--color-red-400) 70%, transparent)}}.from-red-400\/70{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-amber-400\/25{--tw-gradient-via:#fcbb0040}@supports (color:color-mix(in lab, red, red)){.via-amber-400\/25{--tw-gradient-via:color-mix(in oklab, var(--color-amber-400) 25%, transparent)}}.via-amber-400\/25{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-emerald-400\/25{--tw-gradient-via:#00d29440}@supports (color:color-mix(in lab, red, red)){.via-emerald-400\/25{--tw-gradient-via:color-mix(in oklab, var(--color-emerald-400) 25%, transparent)}}.via-emerald-400\/25{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-red-400\/20{--tw-gradient-via:#ff656833}@supports (color:color-mix(in lab, red, red)){.via-red-400\/20{--tw-gradient-via:color-mix(in oklab, var(--color-red-400) 20%, transparent)}}.via-red-400\/20{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-fuchsia-600{--tw-gradient-to:var(--color-fuchsia-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-1{padding-top:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[12vh\]{padding-top:12vh}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:JetBrains Mono Variable,ui-monospace,SF Mono,Menlo,monospace}.font-sans{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--accent)}.text-accent-fg{color:var(--accent-fg)}.text-accent\/80{color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.text-accent\/80{color:color-mix(in oklab, var(--accent) 80%, transparent)}}.text-accent\/90{color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.text-accent\/90{color:color-mix(in oklab, var(--accent) 90%, transparent)}}.text-amber-200{color:var(--color-amber-200)}.text-amber-300\/90{color:#ffd236e6}@supports (color:color-mix(in lab, red, red)){.text-amber-300\/90{color:color-mix(in oklab, var(--color-amber-300) 90%, transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/90{color:color-mix(in oklab, var(--color-amber-400) 90%, transparent)}}.text-blue-400{color:var(--color-blue-400)}.text-cyan-400{color:var(--color-cyan-400)}.text-danger,.text-danger\/70{color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.text-danger\/70{color:color-mix(in oklab, var(--danger) 70%, transparent)}}.text-danger\/80{color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.text-danger\/80{color:color-mix(in oklab, var(--danger) 80%, transparent)}}.text-danger\/90{color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.text-danger\/90{color:color-mix(in oklab, var(--danger) 90%, transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-faint,.text-faint\/60{color:var(--text-faint)}@supports (color:color-mix(in lab, red, red)){.text-faint\/60{color:color-mix(in oklab, var(--text-faint) 60%, transparent)}}.text-faint\/70{color:var(--text-faint)}@supports (color:color-mix(in lab, red, red)){.text-faint\/70{color:color-mix(in oklab, var(--text-faint) 70%, transparent)}}.text-fg{color:var(--text)}.text-line{color:var(--line)}.text-muted{color:var(--text-muted)}.text-orange-400{color:var(--color-orange-400)}.text-red-400{color:var(--color-red-400)}.text-red-400\/90{color:#ff6568e6}@supports (color:color-mix(in lab, red, red)){.text-red-400\/90{color:color-mix(in oklab, var(--color-red-400) 90%, transparent)}}.text-success{color:var(--success)}.text-violet-400{color:var(--color-violet-400)}.text-warning{color:var(--warning)}.text-white{color:var(--color-white)}.text-zinc-400{color:var(--color-zinc-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-accent{accent-color:var(--accent)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-accent,.ring-accent\/50{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.ring-accent\/50{--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.ring-line{--tw-ring-color:var(--line)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,visibility\]{transition-property:transform,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-faint::placeholder{color:var(--text-faint)}.first\:border-0:first-child{border-style:var(--tw-border-style);border-width:0}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-accent\/50:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/50:hover{border-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:border-amber-400\/50:hover{border-color:#fcbb0080}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber-400\/50:hover{border-color:color-mix(in oklab, var(--color-amber-400) 50%, transparent)}}.hover\:border-amber-500\/50:hover{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber-500\/50:hover{border-color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.hover\:border-line-strong:hover{border-color:var(--line-strong)}.hover\:border-red-500\/50:hover{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-500\/50:hover{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.hover\:bg-emerald-500\/90:hover{background-color:#00bb7fe6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/90:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 90%, transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-surface-2:hover,.hover\:bg-surface-2\/40:hover{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-2\/40:hover{background-color:color-mix(in oklab, var(--surface-2) 40%, transparent)}}.hover\:bg-surface-2\/50:hover{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-2\/50:hover{background-color:color-mix(in oklab, var(--surface-2) 50%, transparent)}}.hover\:bg-surface-2\/60:hover{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-2\/60:hover{background-color:color-mix(in oklab, var(--surface-2) 60%, transparent)}}.hover\:bg-surface-2\/70:hover{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-2\/70:hover{background-color:color-mix(in oklab, var(--surface-2) 70%, transparent)}}.hover\:text-accent:hover{color:var(--accent)}.hover\:text-danger:hover{color:var(--danger)}.hover\:text-fg:hover{color:var(--text)}.hover\:text-muted:hover{color:var(--text-muted)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:absolute:focus{position:absolute}.focus\:top-3:focus{top:calc(var(--spacing) * 3)}.focus\:left-4:focus{left:calc(var(--spacing) * 4)}.focus\:z-50:focus{z-index:50}.focus\:border-accent\/60:focus{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus\:border-accent\/60:focus{border-color:color-mix(in oklab, var(--accent) 60%, transparent)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-accent\/30:focus{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-accent\/30:focus{--tw-ring-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.focus\:ring-accent\/50:focus{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-accent\/50:focus{--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-accent:focus-visible{border-color:var(--accent)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-accent\/40:focus-visible{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-accent\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.focus-visible\:ring-accent\/50:focus-visible{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-accent\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.focus-visible\:ring-accent\/70:focus-visible{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-accent\/70:focus-visible{--tw-ring-color:color-mix(in oklab, var(--accent) 70%, transparent)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:text-faint:disabled:hover{color:var(--text-faint)}}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-ping{animation:var(--animate-ping)}}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (width>=40rem){.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.sm\:grid-cols-\[1fr_auto_auto\]{grid-template-columns:1fr auto auto}.sm\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (width>=48rem){.md\:static{position:static}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:mt-0{margin-top:0}.md\:grid{display:grid}.md\:hidden{display:none}.md\:table-cell{display:table-cell}.md\:size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.md\:max-w-xs{max-width:var(--container-xs)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}}@media (width>=64rem){.lg\:visible{visibility:visible}.lg\:static{position:static}.lg\:z-auto{z-index:auto}.lg\:order-none{order:0}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:hidden{display:none}.lg\:table-cell{display:table-cell}.lg\:w-48{width:calc(var(--spacing) * 48)}.lg\:translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_280px\]{grid-template-columns:minmax(0,1fr) 280px}.lg\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.lg\:flex-col{flex-direction:column}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}.lg\:pt-6{padding-top:calc(var(--spacing) * 6)}}@media (width>=80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:grid-cols-\[0\.8fr_1\.2fr\]{grid-template-columns:.8fr 1.2fr}.xl\:grid-cols-\[minmax\(0\,1fr\)_minmax\(300px\,0\.7fr\)\]{grid-template-columns:minmax(0,1fr) minmax(300px,.7fr)}.xl\:grid-cols-\[minmax\(320px\,0\.7fr\)_minmax\(0\,1\.3fr\)\]{grid-template-columns:minmax(320px,.7fr) minmax(0,1.3fr)}.xl\:grid-cols-\[minmax\(320px\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr)}.xl\:grid-cols-\[minmax\(360px\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr)}.xl\:grid-cols-\[minmax\(390px\,0\.8fr\)_minmax\(0\,1\.4fr\)\]{grid-template-columns:minmax(390px,.8fr) minmax(0,1.4fr)}.xl\:grid-cols-\[minmax\(420px\,0\.95fr\)_minmax\(0\,1\.05fr\)\]{grid-template-columns:minmax(420px,.95fr) minmax(0,1.05fr)}:where(.xl\:divide-y-0>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(0px * var(--tw-divide-y-reverse));border-bottom-width:calc(0px * calc(1 - var(--tw-divide-y-reverse)))}.xl\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.xl\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.xl\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}.light\:text-amber-700:where([data-theme=light],[data-theme=light] *){color:var(--color-amber-700)}.light\:text-blue-700:where([data-theme=light],[data-theme=light] *){color:var(--color-blue-700)}.light\:text-cyan-700:where([data-theme=light],[data-theme=light] *){color:var(--color-cyan-700)}.light\:text-orange-700:where([data-theme=light],[data-theme=light] *){color:var(--color-orange-700)}.light\:text-violet-700:where([data-theme=light],[data-theme=light] *){color:var(--color-violet-700)}.light\:text-zinc-600:where([data-theme=light],[data-theme=light] *){color:var(--color-zinc-600)}.\[\&\>svg\]\:size-8>svg{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}}:root,[data-theme=dark]{--bg:#08080a;--surface:#0e0e12;--surface-2:#17171c;--line:#ffffff12;--line-strong:#ffffff1f;--text:#f4f4f5;--text-muted:#a8a8b3;--text-faint:#868c98;--sidebar:#09090b;--accent:#f472b6;--accent-fg:#18181b;--success:#34d399;--warning:#fbbf24;--danger:#f87171}[data-theme=light]{--bg:#fafafa;--surface:#fff;--surface-2:#f4f4f5;--line:#00000014;--line-strong:#00000024;--text:#18181b;--text-muted:#52525b;--text-faint:#71717a;--sidebar:#fff;--accent:#be185d;--accent-fg:#fff;--success:#047857;--warning:#b45309;--danger:#dc2626}@media (width<=639px){input,select,textarea{font-size:16px!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./AddJob-Dgjlhzn2.js","./rolldown-runtime-XKyaHtl9.js","./react-vendor-08inPAVO.js","./upstreamPaths-DQeKSxGc.js","./form-DBkslwzu.js","./StatusBadge-D-mexaga.js","./useServerActionGuard-uiZWD3dS.js","./connectionStore-B946Fhuv.js","./responses-YgpvqWEr.js","./Benchmark-B4NfYkAi.js","./icons-BIT5aq1c.js","./AreaChart-CSP0-00u.js","./BulkAddJobs-BAN5wT8A.js","./CronManager-Cl5RW2cB.js","./Pagination-WVfHLHDS.js","./Database-CeUKS6Nf.js","./Diagnostics-DuzTPfyb.js","./api-CCgfskjt.js","./useControlActionGuard-Bx5MkufG.js","./controlConnectionEpoch-x9VjrWgN.js","./DlqControl-DDxRMM8i.js","./flowMutationSafety-YKTHxqKv.js","./exportFile-C7xhE8Yh.js","./QueueControl-BiMM0jLp.js","./QueueActions-BQf1-g5m.js","./DlqPro-xj-MM6u8.js","./Flows-BFUMTSWv.js","./flowOperationPolicy-B2Etcb3f.js","./JobInspector-BXuXxDwR.js","./JobsPro-k20Pas24.js","./LogsPro-hna5L6sP.js","./McpServer-Cqem-L3z.js","./package-Bb3FkjoS.js","./MetricsPro-BslYrx1A.js","./useThroughputSeries-BN5QmKPt.js","./QueueDetailPro-CpSMSo8A.js","./QueuesOverview-DRohFtuC.js","./promisePool-BVfQ9n9Q.js","./S3BackupPro-Cr2ZJZkw.js","./ServerControl-m58ooJT2.js","./UsagePro-DtlB1dJc.js","./Webhooks-B_GwTCBW.js","./WorkersPro-C6gNYGfo.js","./Workflows-ClF4YzhW.js","./Alerts-Lyzbq0qw.js","./Fleet-BAziMWfo.js","./Cron-Bz46oVXB.js","./Dlq-D8s-NhV2.js","./classicJobsData-wdIr-E4y.js","./Jobs-pQBmffni.js","./Logs-DA4JFvpM.js","./Metrics-CJ9dW0me.js","./Overview-Cmg_2NAt.js","./QueueDetail-DfRY4jS4.js","./Queues-C5lElTjp.js","./S3Backup-DUHmp2Xw.js","./Settings-DXsjoOqD.js","./Usage-CY2uEJEu.js","./Workers-Bu8aJlZf.js","./install-hFu5e6YM.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-XKyaHtl9.js";import{a as t,c as n,h as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./react-vendor-08inPAVO.js";import{a as p,c as m,d as h,f as g,i as _,l as v,m as y,n as b,o as x,p as S,r as C,u as w}from"./connectionStore-B946Fhuv.js";import{a as T,i as ee,n as E,r as te,s as D}from"./upstreamPaths-DQeKSxGc.js";import{A as ne,D as re,E as ie,S as ae,T as oe,_ as se,c as ce,f as le,g as ue,h as de,k as fe,l as pe,m as me,n as he,o as ge,p as _e,r as ve,s as ye,t as be,u as xe,v as Se,w as Ce,y as we}from"./icons-BIT5aq1c.js";import{n as Te,r as O}from"./StatusBadge-D-mexaga.js";import{t as Ee}from"./api-CCgfskjt.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var k=e(r(),1),De=c(),Oe=`bq-dash-alerts`,ke=1,Ae=[`email`,`webhook`,`slack`],je=[`error_rate`,`p99_latency`,`waiting`,`failed`,`dlq`],Me=[`>=`,`>`,`<=`,`<`],Ne=128,Pe=200,Fe=2048,Ie=256,Le=/^[^\s@]+@[^\s@]+\.[^\s@]+$/u,Re=()=>`${Date.now().toString(36)}${Math.floor(Math.random()*1e6).toString(36)}`;function ze(e){let t=new Set(e.map(e=>e.id)),n=Re();if(!t.has(n))return n;let r=1;for(;t.has(`${n}-${r}`);)r+=1;return`${n}-${r}`}function Be(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ve(e){return Ae.includes(e)}function He(e){return je.includes(e)}function Ue(e){return Me.includes(e)}function We(e,t){let n=t.trim();if(!n||n.length>Fe)return!1;if(e===`email`)return n.length<=320&&Le.test(n);try{let e=new URL(n);return[`http:`,`https:`].includes(e.protocol)&&!e.username&&!e.password}catch{return!1}}function Ge(e){if(!Be(e)||typeof e.id!=`string`||!Ve(e.type)||typeof e.target!=`string`)return null;let t=e.id.trim(),n=e.target.trim();return!t||t.length>Ne||n.length>Fe||e.type===`email`&&!We(e.type,n)?null:{id:t,type:e.type,target:e.type===`email`?n:``}}function Ke(e){if(!Be(e)||typeof e.id!=`string`||typeof e.name!=`string`||!He(e.metric)||!Ue(e.operator)||typeof e.threshold!=`number`||!Number.isFinite(e.threshold)||typeof e.queue!=`string`||!Ve(e.channel)||typeof e.enabled!=`boolean`)return null;let t=e.id.trim(),n=e.name.trim(),r=e.queue.trim();return!t||t.length>Ne||!n||n.length>Pe||r.length>Ie||e.threshold<0||e.metric===`error_rate`&&e.threshold>100?null:{id:t,name:n,metric:e.metric,operator:e.operator,threshold:e.threshold,queue:r,channel:e.channel,enabled:e.enabled}}function qe(e){let t=Be(e)?e:{},n=[],r=new Set;if(Array.isArray(t.channels))for(let e of t.channels){if(n.length>=100)break;let t=Ge(e);t&&!r.has(t.id)&&(r.add(t.id),n.push(t))}let i=[],a=new Set;if(Array.isArray(t.rules))for(let e of t.rules){if(i.length>=500)break;let t=Ke(e);t&&!a.has(t.id)&&(a.add(t.id),i.push(t))}return{channels:n,rules:i}}function Je(e){return qe({channels:e.channels,rules:e.rules})}var Ye=h({key:Oe,version:ke,sanitizeState:qe}),Xe=y()(S(e=>({channels:[],rules:[],addChannel:(t,n)=>{let r={ok:!1,error:`Alert destination was rejected.`};return e(e=>{let i=n.trim();return!Ve(t)||!We(t,i)?(r={ok:!1,error:`Alert destination is invalid.`},e):e.channels.length>=100?(r={ok:!1,error:`A maximum of 100 alert destinations can be stored in this browser.`},e):(r={ok:!0},{channels:[...e.channels,{id:ze(e.channels),type:t,target:i}]})}),r},removeChannel:t=>e(e=>({channels:e.channels.filter(e=>e.id!==t)})),addRule:t=>{let n={ok:!1,error:`Alert rule was rejected.`};return e(e=>{if(e.rules.length>=500)return n={ok:!1,error:`A maximum of 500 alert rules can be stored in this browser.`},e;let r=Ke({...t,id:ze(e.rules)});return r?(n={ok:!0},{rules:[...e.rules,r]}):(n={ok:!1,error:`Alert rule contains invalid fields.`},e)}),n},removeRule:t=>e(e=>({rules:e.rules.filter(e=>e.id!==t)})),toggleRule:t=>e(e=>({rules:e.rules.map(e=>e.id===t?{...e,enabled:!e.enabled}:e)}))}),{name:Oe,version:ke,storage:g(()=>Ye),partialize:Je,migrate:qe,merge:(e,t)=>({...t,...qe(e)})})),Ze={error_rate:`error rate`,p99_latency:`p99 latency`,waiting:`waiting jobs`,failed:`failed jobs`,dlq:`DLQ size`},A=class extends Error{status;constructor(e,t){super(e),this.status=t,this.name=`BqError`}},Qe=3e4,$e=()=>Qe;async function j(e,t,n,r,i=!0,a=`server`,o=[],s=Qe){let c=AbortSignal.timeout(s),l=r?.signal?AbortSignal.any([r.signal,c]):c,u=new Headers(n);r?.headers&&new Headers(r.headers).forEach((e,t)=>{u.set(t,e)}),r?.body!=null&&!u.has(`Content-Type`)&&u.set(`Content-Type`,`application/json`);let d;try{d=await fetch(e+t,{...r,headers:u,signal:l})}catch(e){throw c.aborted&&!r?.signal?.aborted||e?.name===`TimeoutError`?new A(`Request timed out`,0):e}if(!d.ok&&!o.includes(d.status)){let t=`HTTP ${d.status}`;try{let e=await d.json();e?.error&&(t=e.error)}catch{}throw d.status===401&&typeof window<`u`&&window.dispatchEvent(new CustomEvent(`auth:required`,{detail:{scope:a,auth:u.get(`Authorization`)??void 0,target:e}})),new A(t,d.status)}if(d.status===204)return;let f;try{f=await d.text()}catch(e){throw c.aborted&&!r?.signal?.aborted?new A(`Request timed out`,0):e}if(!f)return;let p;try{p=JSON.parse(f)}catch{throw new A(`Invalid JSON response (HTTP ${d.status})`,d.status)}if(i&&p&&typeof p==`object`&&p.ok===!1)throw new A(p.error??`Operation failed`,d.status);return p}var M=(e,t,n=!0,r=[],i=Qe)=>j(p(),e,_(),t,n,`server`,r,i),et=()=>C(),N=(e,t,n=Qe)=>j(et(),e,b(),t,!0,`agent`,[],n),P=(e,t)=>({method:e,body:t===void 0?void 0:JSON.stringify(t)}),tt=3e5,nt=(e,t)=>P(e,t),rt=new WeakMap,it=new WeakMap;function at(){let e=Object.freeze({baseUrl:p()});return rt.set(e,Object.freeze({..._()})),e}function ot(){let e=Object.freeze({baseUrl:et()});return it.set(e,Object.freeze({...b()})),e}function st(e){let t=rt.get(e);if(!t)throw TypeError(`Invalid server request target.`);return t}function ct(e){let t=it.get(e);if(!t)throw TypeError(`Invalid agent request target.`);return t}async function lt(e,t,n){n?.throwIfAborted();let r=await j(e.baseUrl,`/jobs/${T(t)}`,{...st(e)},n?{signal:n}:void 0);return n?.throwIfAborted(),r}var F=encodeURIComponent,ut={info:()=>N(`/db/info`),tables:()=>N(`/db/tables`),schema:e=>N(`/db/tables/${E(e,`Database table`)}/schema`),rows:(e,t=50,n=0,r,i=`asc`,a)=>N(`/db/tables/${E(e,`Database table`)}?limit=${t}&offset=${n}${r?`&orderBy=${F(r)}&dir=${i}`:``}${a?.value?`&fcol=${F(a.column)}&fop=${a.op}&fval=${F(a.value)}`:``}`),cell:(e,t,n)=>N(`/db/tables/${E(e,`Database table`)}/cell?rowid=${F(String(t))}&column=${F(n)}`),query:e=>N(`/db/query`,P(`POST`,{sql:e}))},dt={status:()=>N(`/control/status`),start:()=>N(`/control/start`,{method:`POST`}),stop:()=>N(`/control/stop`,{method:`POST`}),restart:()=>N(`/control/restart`,{method:`POST`}),logs:()=>N(`/control/logs`),getConfig:()=>N(`/control/config`),setConfig:(e,t)=>N(`/control/config`,P(`PUT`,{...e,...t===void 0?{}:{expectedRevision:t}}))},ft={stats:()=>N(`/workflows/stats`),list:(e={})=>{let t=new URLSearchParams;return e.kind&&t.set(`kind`,e.kind),e.workflowName&&t.set(`workflowName`,e.workflowName),e.state&&t.set(`state`,e.state),e.limit!==void 0&&t.set(`limit`,String(e.limit)),e.offset!==void 0&&t.set(`offset`,String(e.offset)),N(`/workflows${t.size?`?${t}`:``}`)},get:(e,t=`active`)=>N(`/workflows/${E(e,`Workflow execution id`)}?kind=${t}`)},pt=2e5,mt=16777216,ht=12e4,gt=65536,_t=encodeURIComponent;async function vt(e,t,n=50,r=0,i,a=`asc`,o,s){s?.throwIfAborted();let c=await j(e.baseUrl,`/db/tables/${E(t,`Database table`)}?limit=${n}&offset=${r}${i?`&orderBy=${_t(i)}&dir=${a}`:``}${o?.value?`&fcol=${_t(o.column)}&fop=${o.op}&fval=${_t(o.value)}`:``}`,{...ct(e)},s?{signal:s}:void 0,!0,`agent`);return s?.throwIfAborted(),c}function yt(e,t,n,r=!0){let i=e.get(t);if(!i||!/^\d+$/.test(i))throw new A(`Malformed database export response: invalid ${t} header.`,200);let a=Number(i);if(!Number.isSafeInteger(a)||a>n||!r&&a===0)throw new A(`Malformed database export response: invalid ${t} header.`,200);return a}async function bt(e){if(!e.body)return``;let t=e.body.getReader(),n=new Uint8Array(gt),r=0;try{for(;;){let e=await t.read();if(e.done)break;if(r+e.value.byteLength>n.byteLength)return t.cancel().catch(()=>void 0),``;n.set(e.value,r),r+=e.value.byteLength}}finally{t.releaseLock()}return new TextDecoder().decode(n.subarray(0,r))}async function xt(e,t,n){if(!e.body)throw new A(`Malformed database export response: missing CSV body.`,200);let r=new Uint8Array(t),i=e.body.getReader(),a=0;try{for(;;){n?.throwIfAborted();let e=await i.read();if(e.done)break;if(a+e.value.byteLength>t)throw i.cancel().catch(()=>void 0),new A(`Malformed database export response: body exceeds declared ${t} bytes.`,200);r.set(e.value,a),a+=e.value.byteLength}}finally{i.releaseLock()}if(n?.throwIfAborted(),a!==t)throw new A(`Malformed database export response: received ${a} of ${t} declared bytes.`,200);return r}function St(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`Invalid database export request.`);if(typeof e.table!=`string`||!e.table)throw TypeError(`Database export table must not be empty.`);if(e.dir!==`asc`&&e.dir!==`desc`)throw TypeError(`Invalid database export sort direction.`);if(e.orderBy!==void 0&&(typeof e.orderBy!=`string`||!e.orderBy))throw TypeError(`Database export sort column must not be empty.`);let t=e.filter;if(t&&(typeof t!=`object`||Array.isArray(t)||typeof t.column!=`string`||!t.column||typeof t.value!=`string`||!t.value||![`contains`,`eq`,`ne`].includes(t.op)))throw TypeError(`Invalid database export filter.`);return Object.freeze({table:e.table,orderBy:e.orderBy,dir:e.dir,filter:t?Object.freeze({...t}):void 0})}async function Ct(e,t,n){e.status===401&&typeof window<`u`&&window.dispatchEvent(new CustomEvent(`auth:required`,{detail:{scope:`agent`,auth:new Headers(n).get(`Authorization`)??void 0,target:t.baseUrl}}));let r=`HTTP ${e.status}`,i=await bt(e);if(i)try{let e=JSON.parse(i);typeof e?.error==`string`&&(r=e.error)}catch{}return new A(r,e.status)}async function wt(e,t,n){n?.throwIfAborted();let r={...ct(e)},i=St(t),a=new URLSearchParams;i.orderBy&&a.set(`orderBy`,i.orderBy),a.set(`dir`,i.dir),i.filter&&(a.set(`fcol`,i.filter.column),a.set(`fop`,i.filter.op),a.set(`fval`,i.filter.value));let o=`/db/tables/${E(i.table,`Database table`)}/export?${a}`,s=AbortSignal.timeout(ht),c=n?AbortSignal.any([n,s]):s;try{let t=await fetch(e.baseUrl+o,{headers:r,signal:c});if(!t.ok)throw await Ct(t,e,r);if(t.headers.get(`X-Bunqueue-Db-Export-Version`)!==`1`)throw new A(`Malformed database export response: unsupported contract version.`,200);if(!/^text\/csv(?:;|$)/i.test(t.headers.get(`Content-Type`)??``))throw new A(`Malformed database export response: expected CSV content.`,200);let a;try{let e=t.headers.get(`X-Bunqueue-Db-Export-Table`);if(!e)throw Error(`missing`);a=decodeURIComponent(e)}catch{throw new A(`Malformed database export response: invalid table identity.`,200)}if(a!==i.table)throw new A(`Database export target changed: requested "${i.table}", received "${a}".`,200);let s=yt(t.headers,`X-Bunqueue-Db-Export-Rows`,pt),l=yt(t.headers,`X-Bunqueue-Db-Export-Bytes`,mt,!1);if(yt(t.headers,`Content-Length`,16777216,!1)!==l)throw new A(`Malformed database export response: Content-Length does not match X-Bunqueue-Db-Export-Bytes.`,200);let u=t.headers.get(`X-Bunqueue-Db-Export-Cap`);if(u!==`none`&&u!==`rows`&&u!==`bytes`)throw new A(`Malformed database export response: invalid export cap.`,200);if(u===`rows`&&s!==2e5)throw new A(`Malformed database export response: inconsistent row cap.`,200);let d=await xt(t,l,c);return n?.throwIfAborted(),{table:a,content:d,rowCount:s,bytes:l,cap:u===`none`?null:u}}catch(e){throw s.aborted&&!n?.aborted?new A(`Database export timed out`,0):e}}var Tt={counts:e=>M(`/queues/${D(e)}/counts`),pause:e=>M(`/queues/${D(e)}/pause`,P(`POST`)),resume:e=>M(`/queues/${D(e)}/resume`,P(`POST`)),drain:e=>M(`/queues/${D(e)}/drain`,nt(`POST`),!0,[],tt),obliterate:e=>M(`/queues/${D(e)}/obliterate`,nt(`POST`),!0,[],tt),clean:(e,t={})=>M(`/queues/${D(e)}/clean`,P(`POST`,t)),promoteJobs:(e,t)=>M(`/queues/${D(e)}/promote-jobs`,P(`POST`,t==null?void 0:{count:t})),retryCompleted:(e,t)=>{throw TypeError(`Completed-job requeue is unavailable in Bunqueue v2.9.3 because flow dependency registration is not rebuilt.`)},setRateLimit:(e,t,n,r)=>M(`/queues/${D(e)}/rate-limit`,P(`PUT`,{limit:t,...n===void 0?{}:{duration:n},...r===void 0?{}:{ttl:r}})),clearRateLimit:e=>M(`/queues/${D(e)}/rate-limit`,{method:`DELETE`}),setConcurrency:(e,t)=>M(`/queues/${D(e)}/concurrency`,P(`PUT`,{concurrency:t})),clearConcurrency:e=>M(`/queues/${D(e)}/concurrency`,{method:`DELETE`}),getStallConfig:e=>M(`/queues/${D(e)}/stall-config`),setStallConfig:(e,t)=>M(`/queues/${D(e)}/stall-config`,P(`PUT`,{config:t})),getDlqConfig:e=>M(`/queues/${D(e)}/dlq-config`),setDlqConfig:(e,t)=>{if(t.autoRetry===!0)throw TypeError(`DLQ auto-retry is unavailable: Bunqueue v2.9.3 does not rebuild flow dependency registration.`);if(t.maxAge!==void 0||t.maxEntries!==void 0)throw TypeError(`DLQ retention is read-only: maxAge/maxEntries can destructively expire or evict flow jobs without an atomic dependency check.`);return M(`/queues/${D(e)}/dlq-config`,P(`PUT`,{config:t}))},dlq:(e,t=100,n=0)=>M(`/queues/${D(e)}/dlq?limit=${t}&offset=${n}`),dlqStats:e=>M(`/queues/${D(e)}/dlq/stats`),retryDlq:(e,t)=>{throw TypeError(`DLQ retry is unavailable in Bunqueue v2.9.3 because the endpoint has no atomic job-generation, state, or flow-topology precondition.`)},purgeDlq:e=>M(`/queues/${D(e)}/dlq/purge`,P(`POST`))},I=()=>encodeURIComponent(p()),Et={limits:(e,t)=>{let n=t===void 0?``:`&maxJobs=${t}`;return N(`/queue-operations/${D(e)}/limits?target=${I()}${n}`)},group:(e,t,n,r,i,a)=>{let o=new URLSearchParams({target:p(),groupId:t});return n!==void 0&&o.set(`maxJobs`,String(n)),r!==void 0&&o.set(`maxCount`,String(r)),i!==void 0&&o.set(`start`,String(i)),a!==void 0&&o.set(`end`,String(a)),N(`/queue-operations/${D(e)}/groups?${o}`)},setGroupRateLimit:(e,t,n,r)=>N(`/queue-operations/${D(e)}/groups/rate-limit?target=${I()}`,P(`POST`,{groupId:t,max:n,duration:r})),removeGroupRateLimit:(e,t)=>N(`/queue-operations/${D(e)}/groups/rate-limit/remove?target=${I()}`,P(`POST`,{groupId:t})),setGroupConcurrency:(e,t,n)=>N(`/queue-operations/${D(e)}/groups/concurrency?target=${I()}`,P(`POST`,{groupId:t,concurrency:n})),removeGroupConcurrency:(e,t)=>N(`/queue-operations/${D(e)}/groups/concurrency/remove?target=${I()}`,P(`POST`,{groupId:t})),pauseGroup:(e,t)=>N(`/queue-operations/${D(e)}/groups/pause?target=${I()}`,P(`POST`,{groupId:t})),resumeGroup:(e,t)=>N(`/queue-operations/${D(e)}/groups/resume?target=${I()}`,P(`POST`,{groupId:t})),deduplicationJobId:(e,t)=>N(`/queue-operations/${D(e)}/deduplication?${new URLSearchParams({target:p(),deduplicationId:t})}`),removeDeduplicationKey:(e,t)=>N(`/queue-operations/${D(e)}/deduplication/remove?target=${I()}`,P(`POST`,{deduplicationId:t})),metrics:(e,t,n,r)=>N(`/queue-operations/${D(e)}/metrics?${new URLSearchParams({target:p(),type:t,start:String(n),end:String(r)})}`),trimEvents:(e,t)=>N(`/queue-operations/${D(e)}/events/trim?target=${I()}`,P(`POST`,{maxLength:t}))},Dt=1e4,Ot=1e3,kt=864e13,At=new Set([`job.pushed`,`job.started`,`job.completed`,`job.failed`,`job.progress`,`job.stalled`]);function L(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function R(e,t,n=!1){if(typeof e!=`string`||e.length>t||!n&&e.length===0)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<32||n===127)return!1}return!0}function z(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function jt(e){return typeof e==`number`&&Number.isFinite(e)}function Mt(e){return z(e)&&e<=kt}function Nt(e,t){return e===null||R(e,t)}function Pt(e,t,n){if(!Array.isArray(e)||e.length>t)return!1;let r=new Set;for(let t of e){if(!R(t,n)||r.has(t))return!1;r.add(t)}return!0}function Ft(e,t){let n=L(e),r=n&&L(n.data);if(n?.ok!==!0||!r)throw Error(`Malformed ${t} response.`);return r}function It(e){if(!Array.isArray(e))throw Error(`Malformed queue summary response.`);let t=new Set,n=[];for(let r of e){let e=L(r),i=e&&L(e.counts);if(!e||!R(e.name,256)||t.has(e.name)||typeof e.paused!=`boolean`||!i||!z(i.waiting)||!z(i.prioritized)||!z(i.active)||!z(i.completed)||!z(i.failed)||!z(i.delayed))throw Error(`Malformed queue summary response.`);t.add(e.name),n.push(r)}return n}function Lt(e){let t=Ft(e,`workers`);if(!Array.isArray(t.workers)||t.workers.length>Dt)throw Error(`Malformed workers response.`);let n=new Set,r=[],i=[];for(let e=0;e<t.workers.length;e++){let a=t.workers[e],o=L(a),s=o&&typeof o.id==`string`?o.id:null,c=[];o?(R(o.id,1024)?n.has(o.id)&&c.push(`duplicate id`):c.push(`id`),R(o.name,512,!0)||c.push(`name`),Pt(o.queues,Ot,256)||c.push(`queues`),(!z(o.concurrency)||o.concurrency<1)&&c.push(`concurrency`),R(o.hostname,512,!0)||c.push(`hostname`),z(o.pid)||c.push(`pid`),o.status!==`active`&&o.status!==`stale`&&c.push(`status`),Mt(o.registeredAt)||c.push(`registeredAt`),Mt(o.lastSeen)||c.push(`lastSeen`),z(o.activeJobs)||c.push(`activeJobs`),z(o.processedJobs)||c.push(`processedJobs`),z(o.failedJobs)||c.push(`failedJobs`),Nt(o.currentJob,1024)||c.push(`currentJob`),jt(o.uptime)||c.push(`uptime`)):c.push(`entry is not an object`),s&&n.add(s),c.length>0?i.push({index:e,id:s,reason:c.join(`, `)}):r.push(a)}return{ok:!0,data:{workers:r,quarantinedWorkers:i,...Object.hasOwn(t,`stats`)?{stats:t.stats}:{}}}}function Rt(e){if(!R(e,2048))return!1;try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function zt(e){let t=Ft(e,`webhooks`);if(!Array.isArray(t.webhooks)||t.webhooks.length>Dt)throw Error(`Malformed webhooks response.`);let n=new Set,r=[];for(let e of t.webhooks){let t=L(e);if(!t||!R(t.id,1024)||n.has(t.id)||!Rt(t.url)||!Array.isArray(t.events)||!t.events.every(e=>At.has(e))||t.queue!==null&&typeof t.queue!=`string`||!Mt(t.createdAt)||!(t.lastTriggered===null||Mt(t.lastTriggered))||!z(t.successCount)||!z(t.failureCount)||typeof t.enabled!=`boolean`)throw Error(`Malformed webhooks response.`);n.add(t.id),r.push(e)}return{ok:!0,data:{webhooks:r,...Object.hasOwn(t,`stats`)?{stats:t.stats}:{}}}}var Bt={crons:()=>M(`/crons`),createCron:e=>M(`/crons`,P(`POST`,e)),deleteCron:e=>M(`/crons/${E(e,`Cron name`,256)}`,{method:`DELETE`}),webhooks:async()=>zt(await M(`/webhooks`)),addWebhook:e=>M(`/webhooks`,P(`POST`,e)),removeWebhook:e=>M(`/webhooks/${T(e)}`,{method:`DELETE`}),setWebhookEnabled:(e,t)=>M(`/webhooks/${T(e)}/enabled`,P(`PUT`,{enabled:t})),workers:async()=>Lt(await M(`/workers`)),unregisterWorker:e=>M(`/workers/${T(e)}`,{method:`DELETE`}),eventsUrl:e=>p()+(e?`/events/queues/${te(e)}`:`/events`)},Vt=31536e6,Ht=2097151,Ut=67108864,Wt=1e4,Gt=[`childrenIds`,`parentId`,`failParentOnFailure`,`removeDependencyOnFailure`,`continueParentOnFailure`,`ignoreDependencyOnFailure`,`keepLogs`,`sizeLimit`,`debounceId`,`debounceTtl`],Kt=[`__parentId`,`__parentQueue`,`__childrenIds`,`__flowParentId`,`__flowParentIds`];function qt(e){if(e===void 0)return;if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(`Repeat must be an object with a positive "every" interval`);let t=Object.keys(e).filter(e=>e!==`every`&&e!==`limit`);if(t.length)throw TypeError(`Unsupported repeat option(s): ${t.join(`, `)}. bunqueue v2.9.3 pattern repeats are unsafe; use the Cron API instead.`);if(!Number.isSafeInteger(e.every)||e.every<1||e.every>Vt)throw TypeError(`Repeat "every" must be a whole number from 1 to ${Vt} ms`);if(e.limit!==void 0&&(!Number.isSafeInteger(e.limit)||e.limit<1))throw TypeError(`Repeat "limit" must be a whole number of at least 1`)}function Jt(e){if(e!==void 0&&(typeof e!=`string`||!e||e.length>256))throw TypeError(`Job name must be a non-empty string of at most 256 characters`)}function Yt(e){let t=e,n=Gt.filter(e=>t[e]!==void 0);if(n.length)throw TypeError(`Unsupported Bunqueue v2.9.3 enqueue option(s): ${n.join(`, `)}. Flow topology must use the atomic flow API; inert compatibility fields are not sent.`)}function Xt(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=Kt.filter(t=>Object.hasOwn(e,t));if(t.length)throw TypeError(`Job data must not contain broker-owned flow metadata: ${t.join(`, `)}. A plain enqueue with these keys would be misread as a flow child; use the atomic flow API for topology.`)}function Zt(e){let t=e.groupId;if(t!==void 0&&(typeof t!=`string`||!t||t.length>256||t.includes(`\0`)))throw TypeError(`groupId must be a non-empty string of at most 256 characters without NUL`);if(e.groupMaxSize!==void 0){if(t===void 0)throw TypeError(`groupMaxSize requires groupId`);if(!Number.isSafeInteger(e.groupMaxSize)||e.groupMaxSize<1)throw TypeError(`groupMaxSize must be a positive safe integer`)}if(t!==void 0&&e.priority!==void 0&&(!Number.isSafeInteger(e.priority)||e.priority<0||e.priority>Ht))throw TypeError(`Grouped priority must be an integer from 0 to ${Ht}`)}function Qt(e,t){let n=ee(t);if(n)throw TypeError(`${e}: ${n}. The job would not be manageable through v2.9.3 HTTP.`)}function $t(e){if(Jt(e.name),qt(e.repeat),Yt(e),Xt(e.data),Zt(e),e.groupMaxSize!==void 0)throw TypeError(`groupMaxSize is not forwarded by Bunqueue 2.9.3 single-job HTTP; use the bulk transport`);if(e.dependsOn!==void 0&&(!Array.isArray(e.dependsOn)||!e.dependsOn.every(e=>typeof e==`string`)))throw TypeError(`dependsOn must be an array of job ID strings`);e.jobId!==void 0&&Qt(`jobId`,e.jobId);for(let t of e.dependsOn??[])Qt(`dependsOn`,t)}function en(e){let t;try{t=JSON.stringify(e)}catch{throw TypeError(`Job payload must be JSON serializable`)}if(t===void 0)throw TypeError(`Job payload must be JSON serializable`);let n;try{n=JSON.parse(t)}catch{throw TypeError(`Job payload encoding failed`)}if(typeof n!=`object`||!n||Array.isArray(n))throw TypeError(`Job payload must serialize to a JSON object`);return $t(n),t}function tn({jobId:e,...t}){return e===void 0?t:{...t,customId:e}}function nn(e){let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))throw TypeError(`must serialize to a JSON object`);let n=t;if(n.jobId!==void 0)throw TypeError(`serialized jobId is invalid; the bulk transport requires customId`);if(Jt(n.name),qt(n.repeat),Yt(n),Xt(n.data),Zt(n),n.customId!==void 0){if(typeof n.customId!=`string`)throw TypeError(`customId must be a string`);Qt(`customId`,n.customId)}if(n.dependsOn!==void 0){if(!Array.isArray(n.dependsOn)||!n.dependsOn.every(e=>typeof e==`string`))throw TypeError(`dependsOn must be an array of job ID strings`);for(let e of n.dependsOn)Qt(`dependsOn`,e)}}function rn(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);if(i<=127?n+=1:i<=2047?n+=2:i>=55296&&i<=56319&&r+1<e.length&&e.charCodeAt(r+1)>=56320&&e.charCodeAt(r+1)<=57343?(n+=4,r+=1):n+=3,n>t)return n}return n}function an(e,t,n){if(!Array.isArray(e)||e.length>1e4)return{ok:!1,error:`Bulk request must contain at most ${Wt} jobs`};if(!Number.isSafeInteger(t)||t<0)return{ok:!1,error:`Bulk request payload limit is invalid`};let r=11,i=n?Array(e.length):null;for(let a=0;a<e.length;a++){if(a&&(r+=1),r>t)return{ok:!1,error:`Bulk request payload exceeds the 64 MiB UTF-8 safety limit`};let o;try{o=JSON.stringify(tn(e[a]))}catch{return{ok:!1,error:`Bulk request payload must be JSON serializable`}}if(o===void 0)return{ok:!1,error:`Bulk request payload must be JSON serializable`};if(r+=rn(o,t-r),r>t)return{ok:!1,error:`Bulk request payload exceeds the 64 MiB UTF-8 safety limit`};if(n)try{nn(o)}catch(e){return{ok:!1,error:`Bulk job ${a+1}: ${e instanceof Error?e.message:String(e)}`}}i&&(i[a]=o)}return{ok:!0,bytes:r,body:i?`{"jobs":[${i.join(`,`)}]}`:void 0}}function on(e,t=Ut){let n=an(e,t,!1);return n.ok?null:n.error}function sn(e){let t=an(e,Ut,!0);if(!t.ok)throw TypeError(t.error);if(t.body===void 0)throw TypeError(`Bulk request payload encoding failed`);return t.body}function cn(e){if(!Array.isArray(e)||e.length>1e4)throw TypeError(`Bulk request must contain at most ${Wt} jobs`)}var ln={overview:e=>M(`/dashboard`,e),queues:(e=500,t=0)=>M(`/dashboard/queues?limit=${e}&offset=${t}`),queuesSummary:async()=>It(await M(`/queues/summary`)),queueDetail:(e,t=!0)=>M(`/dashboard/queues/${D(e)}?includeJobs=${t}`),stats:e=>M(`/stats`,e),storage:()=>M(`/storage`,void 0,!1),health:()=>M(`/health`,void 0,!1,[503]),ping:()=>M(`/ping`),prometheusUrl:()=>`${p()}/prometheus`,gc:()=>M(`/gc`,P(`POST`)),heapStats:()=>M(`/heapstats`)},un={jobsList:(e,t,n=50,r=0)=>{let i=new URLSearchParams;return t?.length&&i.set(`states`,t.join(`,`)),i.set(`limit`,String(n)),i.set(`offset`,String(r)),M(`/queues/${D(e)}/jobs/list?${i}`)},job:e=>M(`/jobs/${T(e)}`),jobByCustomId:e=>M(`/jobs/custom/${E(e,`Custom job ID`)}`),jobResult:e=>M(`/jobs/${T(e)}/result`),jobLogs:e=>M(`/jobs/${T(e)}/logs`),jobChildren:e=>M(`/jobs/${T(e)}/children`),addJob:async(e,t)=>M(`/queues/${D(e)}/jobs`,{method:`POST`,body:en(t)}),addJobsBulk:async(e,t)=>(cn(t),M(`/queues/${D(e)}/jobs/bulk`,{method:`POST`,body:sn(t)},!0,[],tt)),pullBatch:(e,t,n)=>M(`/queues/${D(e)}/jobs/pull-batch`,P(`POST`,{count:t,...n?{owner:n}:{}})),ackBatch:(e,t)=>M(`/jobs/ack-batch`,P(`POST`,{ids:e,...t?{tokens:t}:{}})),cancelJob:e=>M(`/jobs/${T(e)}`,{method:`DELETE`}),promoteJob:e=>M(`/jobs/${T(e)}/promote`,P(`POST`)),discardJob:e=>M(`/jobs/${T(e)}/discard`,P(`POST`)),retryJob:e=>M(`/jobs/${T(e)}/move-to-wait`,P(`POST`)),failJob:(e,t,n={})=>M(`/jobs/${T(e)}/fail`,P(`POST`,{error:t,...n})),updateJobData:(e,t)=>M(`/jobs/${T(e)}/data`,P(`PUT`,{data:t})),changePriority:(e,t,n)=>M(`/jobs/${T(e)}/priority`,P(`PUT`,{priority:t,...n===void 0?{}:{lifo:n}})),changeDelay:(e,t)=>M(`/jobs/${T(e)}/delay`,P(`PUT`,{delay:t})),moveToDelayed:(e,t)=>M(`/jobs/${T(e)}/move-to-delayed`,P(`POST`,{delay:t})),addJobLog:(e,t,n)=>M(`/jobs/${T(e)}/logs`,P(`POST`,{message:t,level:n})),clearJobLogs:e=>M(`/jobs/${T(e)}/logs`,{method:`DELETE`}),setJobProgress:(e,t,n)=>M(`/jobs/${T(e)}/progress`,P(`POST`,{progress:t,message:n}))};function B(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw new A(`Malformed ${t} response.`,200);return e}function V(e,t){let n=B(e,t);if(n.ok!==!0)throw new A(`Malformed ${t} response.`,200);return n}var dn=e=>typeof e==`number`&&Number.isSafeInteger(e)&&e>=0;function fn(e,t){if(e!==void 0)return V(e,t)}function pn(e,t){let n={...st(e)},r=(r,i,a=$e())=>{let o=t?{...i,signal:i?.signal?AbortSignal.any([i.signal,t]):t}:i;return j(e.baseUrl,r,n,o,!0,`server`,[],a)};return Object.freeze({queuesSummary:async()=>It(await r(`/queues/summary`)),overview:()=>r(`/dashboard`),counts:async e=>{let t=B(V(await r(`/queues/${D(e)}/counts`),`queue counts`).counts,`queue counts`);if(!Object.values(t).every(dn))throw new A(`Malformed queue counts response.`,200);return{ok:!0,counts:t}},jobsList:async(e,t,n=50,i=0)=>{let a=new URLSearchParams;t?.length&&a.set(`states`,t.join(`,`)),a.set(`limit`,String(n)),a.set(`offset`,String(i));let o=V(await r(`/queues/${D(e)}/jobs/list?${a}`),`jobs list`);if(!Array.isArray(o.jobs)||!o.jobs.every(t=>{let n=t;return typeof n==`object`&&!!n&&!Array.isArray(n)&&typeof n.id==`string`&&n.id.length>0&&(n.queue===void 0||n.queue===e)}))throw new A(`Malformed jobs list response.`,200);return{ok:!0,jobs:o.jobs}},job:async e=>{let t=B(V(await r(`/jobs/${T(e)}`),`job`).job,`job`);if(t.id!==e)throw new A(`Malformed job response.`,200);return{ok:!0,job:t}},dlqStats:async e=>{let t=B(V(await r(`/queues/${D(e)}/dlq/stats`),`DLQ stats`).stats,`DLQ stats`);if(!dn(t.total))throw new A(`Malformed DLQ stats response.`,200);return{ok:!0,stats:t}},dlq:async(e,t=100,n=0)=>{let i=V(await r(`/queues/${D(e)}/dlq?limit=${t}&offset=${n}`),`DLQ list`);if(!Array.isArray(i.entries)||!dn(i.total))throw new A(`Malformed DLQ list response.`,200);for(let e of i.entries){let t=B(B(e,`DLQ list`).job,`DLQ list`);if(typeof t.id!=`string`||!t.id)throw new A(`Malformed DLQ list response.`,200)}return{ok:!0,entries:i.entries,total:i.total}},health:async()=>B(await j(e.baseUrl,`/health`,n,t?{signal:t}:void 0,!1,`server`,[503]),`health`),stats:async()=>{let e=await r(`/stats`);return B(V(e,`server stats`).stats,`server stats`),e},workers:async()=>Lt(await r(`/workers`)),crons:async()=>{let e=V(await r(`/crons`),`crons`);if(!Array.isArray(e.crons)||!e.crons.every(e=>{let t=e;return typeof t==`object`&&!!t&&!Array.isArray(t)&&typeof t.name==`string`&&!!t.name&&typeof t.queue==`string`&&!!t.queue}))throw new A(`Malformed crons response.`,200);return{ok:!0,crons:e.crons}},addJobsBulk:async(e,t)=>(cn(t),r(`/queues/${D(e)}/jobs/bulk`,{method:`POST`,body:sn(t)},tt)),pullBatch:(e,t,n)=>r(`/queues/${D(e)}/jobs/pull-batch`,P(`POST`,{count:t,...n?{owner:n}:{}})),heartbeatBatch:(e,t)=>r(`/jobs/heartbeat-batch`,P(`POST`,{ids:e,...t?{tokens:t}:{}})),ackBatch:(e,t)=>r(`/jobs/ack-batch`,P(`POST`,{ids:e,...t?{tokens:t}:{}})),retryJob:(e,t)=>r(`/jobs/${T(e)}/move-to-wait`,P(`POST`,t?{token:t}:{})),promoteJob:async e=>fn(await r(`/jobs/${T(e)}/promote`,P(`POST`)),`promote job`),pause:async e=>fn(await r(`/queues/${D(e)}/pause`,P(`POST`)),`pause queue`),resume:async e=>fn(await r(`/queues/${D(e)}/resume`,P(`POST`)),`resume queue`),clean:(e,t={})=>r(`/queues/${D(e)}/clean`,P(`POST`,t))})}var H={...ln,captureServerRequestTarget:at,createServerTargetClient:pn,getJobAtTarget:lt,captureAgentRequestTarget:ot,getDbRowsAtTarget:vt,getDbExportAtTarget:wt,...un,...Tt,queueOperations:Et,...Bt,db:ut,get agentBase(){return et()},control:dt,workflows:ft};Object.defineProperty(H,"agentBase",{configurable:!1});var mn=10500,hn=500,gn=21,_n=e=>typeof e==`number`&&Number.isSafeInteger(e)&&e>=0;function vn(e,t,n){return t===`>=`?e>=n:t===`>`?e>n:t===`<=`?e<=n:t===`<`&&e<n}function yn(e){if(!Array.isArray(e)||e.length>mn)return null;let t=new Set,n=[];for(let r of e){if(!r||typeof r!=`object`||Array.isArray(r))return null;let e=r,i=e.counts;if(typeof e.name!=`string`||!e.name||e.name.length>256||!/^[a-zA-Z0-9_\-.:]+$/.test(e.name)||t.has(e.name)||typeof e.paused!=`boolean`||!i||typeof i!=`object`||Array.isArray(i))return null;let a=i;if(![`waiting`,`prioritized`,`active`,`completed`,`failed`,`delayed`].every(e=>_n(a[e])))return null;t.add(e.name),n.push(r)}return n}function bn(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e;if(t.ok!==!0||!t.latency||typeof t.latency!=`object`||Array.isArray(t.latency))return null;let n=t.latency.percentiles;if(!n||typeof n!=`object`||Array.isArray(n))return null;for(let e of Object.values(n)){let t=e?.p99;if(!e||typeof e!=`object`||Array.isArray(e)||typeof t!=`number`||!Number.isFinite(t)||t<0)return null}return e}var xn=(e,t)=>{let n=e+t;return n>0?t/n*100:null},Sn=e=>e.counts.waiting+e.counts.prioritized;function Cn(e,t){let n=e.queue.trim();if(e.metric===`waiting`||e.metric===`failed`){if(!t.summary)return null;let r=e.metric===`waiting`?Sn:e=>e.counts.failed;if(n){let e=t.summary.find(e=>e.name===n);return e?r(e):null}return t.summary.reduce((e,t)=>e+r(t),0)}if(e.metric===`dlq`)return t.queues?n?t.queues.find(e=>e.name===n)?.dlq??null:t.queues.reduce((e,t)=>e+(t.dlq??0),0):null;if(e.metric===`error_rate`){if(!t.summary)return null;if(n){let e=t.summary.find(e=>e.name===n);return e?xn(e.counts.completed,e.counts.failed):null}return xn(t.summary.reduce((e,t)=>e+t.counts.completed,0),t.summary.reduce((e,t)=>e+t.counts.failed,0))}let r=t.overview?.latency?.percentiles;if(!r)return null;let i=Object.values(r).map(e=>e.p99).filter(Number.isFinite);return i.length?Math.max(...i):null}function wn(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e))return null;let r=e;if(r.ok!==!0||!Array.isArray(r.queues)||!Number.isSafeInteger(r.total)||r.total<0||r.total>mn||n!==null&&r.total!==n||r.offset!==t||r.limit!==hn)return null;let i=r.total;if(r.queues.length!==Math.min(hn,i-t))return null;let a=[];for(let e of r.queues){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e;if(typeof t.name!=`string`||!t.name||t.name.length>256||!/^[a-zA-Z0-9_\-.:]+$/.test(t.name)||!_n(t.dlq))return null;a.push(e)}return{queues:a,total:i}}async function Tn(e=H){try{let t=[],n=new Set,r=null;for(let i=0;i<gn;i++){let i=wn(await e.queues(hn,t.length),t.length,r);if(!i)return null;r??=i.total;for(let e of i.queues){if(n.has(e.name))return null;n.add(e.name),t.push(e)}if(t.length===r)return t}return null}catch{return null}}var En=1,U=y(e=>({toasts:[],push:({level:t,title:n,detail:r,ttlMs:i})=>{let a=En++,o=i??(t===`error`?8e3:4e3);return e(e=>({toasts:[...e.toasts,{id:a,level:t,title:n,detail:r,ttlMs:o}].slice(-5)})),a},dismiss:t=>e(e=>({toasts:e.toasts.filter(e=>e.id!==t)}))})),Dn={success:(e,t)=>U.getState().push({level:`success`,title:e,detail:t}),error:(e,t)=>U.getState().push({level:`error`,title:e,detail:t}),info:(e,t)=>U.getState().push({level:`info`,title:e,detail:t})},On=3,kn=e=>`${e.queue||`All queues`}: ${e.metricLabel} ${e.operator} ${e.threshold} (now ${Math.round(e.value)})`;function An(e){if(globalThis.Notification?.permission===`granted`)try{new Notification(`bunqueue alert: ${e.ruleName}`,{body:kn(e),tag:e.ruleId})}catch{}}function jn(e){if(e.length<=On)for(let t of e)Dn.error(`Alert: ${t.ruleName}`,kn(t)),An(t);else{Dn.error(`${e.length} alert rules breaching`,e.map(e=>e.ruleName).join(`, `));for(let t of e)An(t)}}var Mn=3e4,Nn=(e,t)=>JSON.stringify([e,t]);function Pn(e){let t=JSON.parse(e);if(!Array.isArray(t)||t.length!==2)throw TypeError(`Invalid alert connection identity.`);let[n,r]=t,i=m(n);if(!i||typeof r!=`string`)throw TypeError(`Invalid alert server target.`);let a=r.trim();return Object.freeze({baseUrl:i,...a?{authorization:`Bearer ${a}`}:{}})}function Fn(e,t){let n=new Headers({Accept:`application/json`});e.authorization&&n.set(`Authorization`,e.authorization);let r=async r=>{t.throwIfAborted();let i=AbortSignal.any([t,AbortSignal.timeout(Mn)]),a=await fetch(e.baseUrl+r,{headers:n,signal:i});if(t.throwIfAborted(),!a.ok)throw await a.body?.cancel().catch(()=>{}),a.status===401&&typeof window<`u`&&window.dispatchEvent(new CustomEvent(`auth:required`,{detail:{scope:`server`,auth:e.authorization,target:e.baseUrl}})),Error(`Alert metrics request failed: HTTP ${a.status}`);let o=await a.text();if(t.throwIfAborted(),!o)throw Error(`Alert metrics request returned an empty response.`);try{return JSON.parse(o)}catch{throw Error(`Alert metrics request returned invalid JSON (HTTP ${a.status}).`)}};return Object.freeze({queuesSummary:()=>r(`/queues/summary`),queues:(e=500,t=0)=>r(`/dashboard/queues?limit=${e}&offset=${t}`),overview:()=>r(`/dashboard`)})}var In=15e3,Ln=6e4,W=y(e=>({breaching:[],status:`idle`,error:null,connectionIdentity:null,setBreaching:t=>e({breaching:t})}));async function Rn(){if(typeof Notification>`u`)return`denied`;if(Notification.permission===`granted`)return`granted`;try{return await Notification.requestPermission()}catch{return`denied`}}function zn(){let e=Xe(e=>e.rules),t=x(e=>Nn(e.baseUrl,e.token)),n=(0,k.useRef)(new Map),r=(0,k.useRef)(new Map),i=(0,k.useRef)(new Map),a=(0,k.useRef)(new Map),o=(0,k.useRef)(t),s=(0,k.useRef)(0),c=JSON.stringify(e.filter(e=>e.enabled).map(e=>[e.id,e.metric,e.operator,e.threshold,e.queue]));(0,k.useEffect)(()=>{let e=()=>{n.current.clear(),r.current.clear(),i.current.clear(),a.current.clear()},l=o.current!==t;if(l&&(o.current=t,e()),c===`[]`){e(),W.setState({breaching:[],status:`idle`,error:null,connectionIdentity:t});return}let u=new Set(Xe.getState().rules.filter(e=>e.enabled).map(e=>e.id)),d=l?[]:W.getState().breaching.filter(e=>u.has(e.ruleId));W.setState({breaching:d,status:`checking`,error:null,connectionIdentity:t});let f;try{f=Pn(t)}catch(e){W.setState({breaching:[],status:`degraded`,error:`Alert evaluation failed: ${e.message}`,connectionIdentity:t});return}let p=new AbortController,m=++s.current,h=!1,g=!1,_=()=>{if(h||s.current!==m)return!1;let e=x.getState();return Nn(e.baseUrl,e.token)===t},v=e=>{for(let t of[...n.current.keys()])e.has(t)||(n.current.delete(t),r.current.delete(t),i.current.delete(t),a.current.delete(t))},y=async()=>{if(!g){g=!0;try{let e=Fn(f,p.signal),[o,s,c]=await Promise.all([e.queuesSummary().then(yn).catch(()=>null),Tn(e),e.overview().then(bn).catch(()=>null)]);if(!_())return;let l=Xe.getState().rules.filter(e=>e.enabled),u=new Set(l.map(e=>e.id));if(v(u),!c){let e=W.getState().breaching.filter(e=>u.has(e.ruleId));if(!_())return;W.setState({breaching:e,status:`degraded`,error:`The bunqueue overview endpoint is unavailable; alert results may be stale.`,connectionIdentity:t});return}let d=Date.now(),m=[],h=[],g=!1;for(let e of l){let t=Cn(e,{summary:o,queues:s,overview:c});if(t==null){g=!0;let t=n.current.get(e.id)?a.current.get(e.id):void 0;t&&m.push(t);continue}let l=vn(t,e.operator,e.threshold),u=n.current.get(e.id)??!1;if(l){let n=u?i.current.get(e.id)??d:d;i.current.set(e.id,n);let o={ruleId:e.id,ruleName:e.name,metricLabel:Ze[e.metric],operator:e.operator,threshold:e.threshold,value:t,queue:e.queue,at:n};m.push(o),a.current.set(e.id,o);let s=r.current.get(e.id)??0;d-s>Ln&&s<n&&(h.push(o),r.current.set(e.id,d))}else i.current.delete(e.id),a.current.delete(e.id);n.current.set(e.id,l)}if(!_())return;jn(h);let y=!o||!s||g;W.setState({breaching:m,status:y?`degraded`:`live`,error:y?`Some alert rules could not be evaluated; affected results remain unknown.`:null,connectionIdentity:t})}catch(e){if(!_())return;W.setState({status:`degraded`,error:`Alert evaluation failed: ${e.message}`,connectionIdentity:t})}finally{g=!1}}};y();let b=setInterval(y,In);return()=>{h=!0,s.current===m&&(s.current+=1),p.abort(),clearInterval(b)}},[c,t])}function Bn(){return zn(),null}var Vn={authentication:100,"command-palette":80,copilot:60,"database-row":40,"mobile-navigation":20},G=y((e,t)=>({active:null,request(n){let r=t().active;return r===n?!0:r&&Vn[r]>Vn[n]?!1:(e({active:n}),!0)},release(n){t().active===n&&e({active:null})},reset(){e({active:null})}}));function Hn(e){let t=G.getState().active;return t===null||t===e}var K=d();function Un(e){return{scope:e,auth:e===`agent`?b().Authorization:_().Authorization,target:e===`agent`?H.agentBase:p()}}function Wn(e,t){return e?.scope===t.scope&&e.auth===t.auth&&e.target===t.target}function Gn(){let[e,t]=(0,k.useState)(!1),[n,r]=(0,k.useState)(`server`),[i,a]=(0,k.useState)(``),o=x(e=>e.baseUrl),s=x(e=>e.setToken),c=x(e=>e.setAgentToken),u=(0,k.useRef)(null),d=(0,k.useRef)(null),f=(0,k.useRef)(null),p=(0,k.useRef)(null),m=G(e=>e.active),h=e&&m===`authentication`;(0,k.useEffect)(()=>{let e=e=>{let n=e.detail;if(n?.scope!==`server`&&n?.scope!==`agent`)return;let i=Un(n.scope);n.auth===i.auth&&n.target===i.target&&(Wn(f.current,i)||(p.current=null,a(``)),f.current=i,G.getState().request(`authentication`),r(i.scope),t(!0),window.dispatchEvent(new window.Event(`auth:gate-opened`)))};return window.addEventListener(`auth:required`,e),()=>window.removeEventListener(`auth:required`,e)},[]),(0,k.useEffect)(()=>()=>{G.getState().release(`authentication`)},[]),(0,k.useEffect)(()=>{if(!h)return;let e=document.activeElement,t=document.getElementById(`app-shell`)?[]:[`app-nav`,`app-content`].map(e=>document.getElementById(e)).filter(e=>e!==null),n=t.map(e=>({element:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));for(let e of t)e.inert=!0,e.setAttribute(`aria-hidden`,`true`);let r=window.requestAnimationFrame(()=>u.current?.focus()),i=()=>d.current?Array.from(d.current.querySelectorAll(`a[href], button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])`)):[],a=e=>{if(e.key!==`Tab`)return;let t=i();if(!t.length){e.preventDefault();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())};return window.addEventListener(`keydown`,a),()=>{window.cancelAnimationFrame(r),window.removeEventListener(`keydown`,a);for(let e of n)e.element.inert=e.inert,e.ariaHidden===null?e.element.removeAttribute(`aria-hidden`):e.element.setAttribute(`aria-hidden`,e.ariaHidden);Hn(`authentication`)&&e?.isConnected&&e.focus()}},[h]);let g=()=>{f.current=null,p.current=null,a(``),t(!1),G.getState().release(`authentication`)};return h?(0,K.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/60 p-4`,children:(0,K.jsxs)(`form`,{ref:d,onSubmit:e=>{e.preventDefault();let t=f.current,n=p.current;if(!t||!n||!Wn(n.identity,t)||!Wn(t,Un(t.scope))){g();return}let r=n.value.trim();r&&(t.scope===`agent`?c(r):s(r),g())},role:`dialog`,"aria-modal":`true`,"aria-label":`Authentication required`,className:`w-full max-w-sm rounded-xl border border-line-strong bg-surface p-6 shadow-2xl`,children:[(0,K.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:`Authentication required`}),n===`agent`?(0,K.jsxs)(`p`,{className:`mt-1 text-sm text-muted`,children:[`The control agent at `,(0,K.jsx)(`span`,{className:`break-all font-mono text-fg`,children:H.agentBase}),` `,`rejected the request (401). Enter its`,` `,(0,K.jsx)(`span`,{className:`font-mono text-fg`,children:`AGENT_TOKEN`}),` to continue.`]}):(0,K.jsxs)(`p`,{className:`mt-1 text-sm text-muted`,children:[`The server at `,(0,K.jsx)(`span`,{className:`break-all font-mono text-fg`,children:o}),` rejected the request (401). Enter its bearer token to continue.`]}),(0,K.jsx)(`input`,{ref:u,type:`password`,value:i,onInput:e=>{let t=e.currentTarget.value;a(t);let n=f.current;p.current=n?{identity:n,value:t}:null},placeholder:n===`agent`?`AGENT_TOKEN`:`Bearer token`,"aria-label":n===`agent`?`Agent token`:`Bearer token`,name:n===`agent`?`agent-token`:`server-token`,autoComplete:`current-password`,className:`mt-4 w-full rounded-lg border border-line bg-surface-2 px-3 py-2 text-sm text-fg outline-none placeholder:text-faint focus-visible:ring-2 focus-visible:ring-accent/50`}),(0,K.jsxs)(`div`,{className:`mt-4 flex items-center justify-between gap-3`,children:[(0,K.jsx)(l,{to:`/settings`,onClick:g,className:`text-xs text-muted underline-offset-2 hover:text-fg hover:underline`,children:`Open Settings instead`}),(0,K.jsx)(`button`,{type:`submit`,disabled:!i.trim(),className:`rounded-lg bg-accent px-4 py-2 text-sm font-medium text-accent-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50 disabled:opacity-50`,children:`Unlock`})]})]})}):null}var Kn=`bq-dash-theme`,qn=1;function q(e){return e===`light`?`light`:`dark`}function Jn(){try{return globalThis.localStorage??null}catch{return null}}var Yn={getItem(e){let t=Jn();if(!t)return null;try{let n=t.getItem(e);if(n===null||e!==Kn)return n;let r=JSON.parse(n),i=r&&typeof r==`object`&&!Array.isArray(r)?r:{},a=i.state&&typeof i.state==`object`&&!Array.isArray(i.state)?i.state:{},o=JSON.stringify({state:{theme:q(a.theme)},version:qn});if(n!==o)try{t.setItem(e,o)}catch{}return o}catch{try{t.removeItem(e)}catch{}return null}},setItem(e,t){try{Jn()?.setItem(e,t)}catch{}},removeItem(e){try{Jn()?.removeItem(e)}catch{}}};function Xn(e){typeof document<`u`&&(document.documentElement.dataset.theme=e,document.documentElement.style.colorScheme=e)}var J=y()(S((e,t)=>({theme:`dark`,toggle:()=>{let n=t().theme===`dark`?`light`:`dark`;Xn(n),e({theme:n})},setTheme:t=>{let n=q(t);Xn(n),e({theme:n})}}),{name:Kn,version:qn,storage:g(()=>Yn),partialize:e=>({theme:q(e.theme)}),merge:(e,t)=>{let n=e&&typeof e==`object`&&!Array.isArray(e)?e:{};return{...t,theme:q(n.theme)}},onRehydrateStorage:()=>e=>{e&&Xn(q(e.theme))}}));function Zn(){Xn(q(J.getState().theme))}function Qn(e){let t=!0;return()=>t?(t=!1,!0):!e()}function $n(e,t=[],n={}){let r=x(e=>e.refreshMs),i=x(e=>JSON.stringify([e.activeProfileId,e.baseUrl,e.agentBaseUrl,e.token,e.agentToken])),a=n.intervalMs??r,o=(0,k.useRef)(null),s=(0,k.useRef)(0),c=[i,...t];(o.current===null||o.current.length!==c.length||o.current.some((e,t)=>!Object.is(e,c[t])))&&(o.current=c,s.current+=1);let l=s.current,[u,d]=(0,k.useState)(null),[f,p]=(0,k.useState)(null),[m,h]=(0,k.useState)(!0),g=(0,k.useRef)(e);g.current=e;let _=(0,k.useRef)(!0),v=(0,k.useRef)(0),y=(0,k.useRef)(void 0),b=(0,k.useRef)(!0),S=(0,k.useRef)(!1),C=(0,k.useRef)(0),w=(0,k.useRef)(0),T=(0,k.useRef)(()=>Promise.resolve()),ee=(0,k.useCallback)(async(e,t,n)=>{try{let r=await g.current(n);if(!_.current||e!==v.current)return;let i;try{i=JSON.stringify(r)}catch{i=String(Math.random())}i===y.current?C.current=t:(y.current=i,C.current=t,d(r)),S.current&&(S.current=!1,w.current=0,p(null))}catch(n){if(!_.current||e!==v.current)return;S.current=!0,w.current=t,p(n)}finally{_.current&&e===v.current&&b.current&&(b.current=!1,h(!1))}},[]),E=(0,k.useCallback)(()=>T.current(),[]);(0,k.useEffect)(()=>{_.current=!0;let e=++v.current,t=new AbortController;y.current=void 0,b.current=!0,d(null),h(!0),S.current&&(S.current=!1,p(null));let n=null,r=!1,i=!1,o=!1,s=[],c=()=>globalThis.document?.hidden??!1,u=Qn(c),f=()=>{n!==null&&clearTimeout(n),n=null},m=()=>{r||(f(),n=setTimeout(()=>{n=null,x(!1)},a))},g=async()=>{i=!0;try{await ee(e,l,t.signal)}finally{if(i=!1,!r){if(o){o=!1;let e=s;s=[],x(!0).finally(()=>{for(let t of e)t()})}else m()}}};function x(e){return r?Promise.resolve():i?e?(o=!0,new Promise(e=>s.push(e))):Promise.resolve():(f(),!e&&!u()?(m(),Promise.resolve()):g())}let C=()=>x(!0);T.current=C,x(!1);let w=()=>{c()||r||i||x(!0)};return typeof document<`u`&&document.addEventListener(`visibilitychange`,w),()=>{r=!0,_.current=!1,t.abort(),f();for(let e of s)e();s=[],T.current===C&&(T.current=()=>Promise.resolve()),v.current===e&&(v.current+=1),typeof document<`u`&&document.removeEventListener(`visibilitychange`,w)}},[a,l,ee]);let te=C.current===l,D=w.current===l;return{data:te?u:null,error:D?f:null,loading:te||D?m:!0,refetch:E}}var er={connecting:{dot:`bg-zinc-500`,label:`connecting`},connected:{dot:`bg-emerald-400`,label:`connected`},degraded:{dot:`bg-amber-400`,label:`reachable, degraded`},offline:{dot:`bg-red-400`,label:`offline`}};function tr(){let e=x(e=>e.baseUrl),t=x(e=>e.profiles),n=x(e=>e.activeProfileId),r=x(e=>e.activateProfile),{data:i,error:a,loading:o}=$n(async()=>{let e=await Ee.health();if(typeof e.ok!=`boolean`)throw Error(`Malformed health response`);return{healthy:e.ok}},[],{intervalMs:15e3}),s=er[o?`connecting`:a||!i?`offline`:i.healthy?`connected`:`degraded`],c=e.replace(/^https?:\/\//,``)||`local`;return(0,K.jsxs)(`div`,{className:`mx-3 mb-4 flex items-center gap-2 rounded-lg border border-line bg-surface px-3 py-1.5`,children:[(0,K.jsx)(`span`,{className:O(`size-1.5 rounded-full`,s.dot),title:s.label}),(0,K.jsx)(`label`,{className:`sr-only`,htmlFor:`active-bunqueue-node`,children:`Active Bunqueue node`}),(0,K.jsx)(`select`,{id:`active-bunqueue-node`,"aria-label":`Active Bunqueue node`,value:n,onChange:e=>r(e.target.value),title:`${t.length} configured node${t.length===1?``:`s`} · ${e}`,className:`min-w-0 flex-1 truncate bg-transparent text-[11px] font-medium text-muted outline-none`,children:t.map(e=>(0,K.jsx)(`option`,{value:e.id,children:e.name},e.id))}),(0,K.jsx)(`span`,{className:`sr-only`,title:e,children:c}),(0,K.jsxs)(`span`,{className:`shrink-0 font-mono text-[10px] text-faint`,"aria-label":`${t.length} nodes`,children:[t.length,`×`]}),(0,K.jsx)(`span`,{className:`sr-only`,children:s.label})]})}function nr(e){let t=null,n=document.activeElement;try{return t=document.createElement(`textarea`),t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),document.execCommand(`copy`)}catch{return!1}finally{t?.remove(),n?.focus?.()}}function rr({value:e,className:t}){let[n,r]=(0,k.useState)(`idle`),i=(0,k.useRef)(null);(0,k.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]);let a=async()=>{let t=!1;if(navigator.clipboard)try{await navigator.clipboard.writeText(e),t=!0}catch{}t||=nr(e),r(t?`copied`:`failed`),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>r(`idle`),1500)},o=n===`copied`?`Copied to clipboard`:n===`failed`?`Copy failed`:`Copy to clipboard`;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`button`,{type:`button`,onClick:a,"aria-label":o,title:o,className:O(`inline-flex size-6 shrink-0 items-center justify-center rounded-md text-faint transition-colors hover:bg-surface-2 hover:text-fg`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent`,t),children:n===`copied`?(0,K.jsx)(ve,{className:`size-3.5 text-success`}):n===`failed`?(0,K.jsx)(ge,{className:`size-3.5 text-danger`}):(0,K.jsx)(ye,{className:`size-3.5`})}),(0,K.jsx)(`span`,{className:`sr-only`,role:`status`,"aria-live":`polite`,"aria-atomic":`true`,children:n===`idle`?``:o})]})}var ir;function ar(){return ir===void 0&&(ir=or()),ir}function or(){if(typeof window>`u`)return!1;let{search:e,hash:t}=window.location;return new URLSearchParams(e).has(`demo`)||t.replace(/^#/,``)===`demo`}var sr=`https://github.com/egeominotti/bunqueue-dashboard`,cr=`https://egeominotti.github.io/bunqueue-dashboard/docs/`,lr=`bunx bunqueue-dashboard`;function ur(){return(0,K.jsxs)(`div`,{className:`mx-3 mb-2 rounded-lg border border-accent/30 bg-accent/5 p-3`,children:[(0,K.jsx)(`p`,{className:`mb-2 text-[11px] font-medium leading-snug text-fg`,children:`Like it? Run it on your own bunqueue server.`}),(0,K.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 rounded-md border border-line bg-surface-2 px-2 py-1`,children:[(0,K.jsx)(`code`,{className:`min-w-0 flex-1 truncate font-mono text-[11px] text-fg`,children:lr}),(0,K.jsx)(rr,{value:lr})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsxs)(`a`,{href:sr,target:`_blank`,rel:`noreferrer`,className:`flex flex-1 items-center justify-center gap-1 rounded-md bg-accent px-2 py-1.5 text-[11px] font-semibold text-accent-fg transition-opacity hover:opacity-90`,children:[(0,K.jsx)(`span`,{"aria-hidden":!0,children:`★`}),` Star`]}),(0,K.jsx)(`a`,{href:cr,target:`_blank`,rel:`noreferrer`,className:`flex flex-1 items-center justify-center rounded-md border border-line px-2 py-1.5 text-[11px] font-medium text-muted transition-colors hover:bg-surface-2 hover:text-fg`,children:`Docs`})]})]})}function dr(){let e=x(e=>e.baseUrl),t=x(e=>e.profiles),n=x(e=>e.activeProfileId),r=t.find(e=>e.id===n),i=e===`/api`?`localhost:6790`:e.replace(/^https?:\/\//,``);return(0,K.jsxs)(K.Fragment,{children:[ar()&&(0,K.jsx)(ur,{}),(0,K.jsxs)(`div`,{className:`mx-3 mb-3 flex items-center gap-2.5 rounded-lg border border-line bg-surface px-3 py-2`,children:[(0,K.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-full bg-gradient-to-br from-accent to-fuchsia-600 text-[11px] font-bold text-white`,children:`bq`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`truncate text-xs font-medium text-fg`,children:r?.name??`bunqueue`}),(0,K.jsx)(`div`,{className:`truncate font-mono text-[10px] text-faint`,title:e,children:i}),(0,K.jsxs)(`div`,{className:`text-[9px] text-faint`,children:[t.length,` configured node`,t.length===1?``:`s`]})]}),(0,K.jsx)(l,{to:`/settings`,"aria-label":`Settings`,className:`text-faint transition-colors hover:text-fg`,children:(0,K.jsx)(ie,{className:`size-4`})})]})]})}var fr=[{section:null,items:[{to:`/`,label:`Overview`,icon:we,end:!0},{to:`/fleet`,label:`Fleet`,icon:ne,end:!0}]},{section:`Queues`,items:[{to:`/queues`,label:`Queues`,icon:ae,end:!0},{to:`/jobs`,label:`Jobs`,icon:_e,end:!0},{to:`/dlq`,label:`Dead Letter Queue`,icon:xe},{to:`/cron`,label:`Cron Jobs`,icon:ce}]},{section:`Workflow`,items:[{to:`/workflows`,label:`Overview`,icon:we,end:!0},{to:`/flows`,label:`Job Flows`,icon:he,end:!0},{to:`/workflows/executions`,label:`Executions`,icon:_e,end:!0},{to:`/workflows/waiting`,label:`Waiting & Signals`,icon:ce,end:!0},{to:`/workflows/compensation`,label:`Compensation`,icon:xe,end:!0},{to:`/workflows/archive`,label:`Archive`,icon:pe,end:!0}]},{section:`Monitoring`,items:[{to:`/metrics`,label:`Metrics`,icon:se},{to:`/workers`,label:`Workers`,icon:ne},{to:`/logs`,label:`Logs`,icon:de},{to:`/alerts`,label:`Alerts`,icon:be}]},{section:`Control`,items:[{to:`/server`,label:`Server`,icon:ne},{to:`/add-job`,label:`Add Job`,icon:_e},{to:`/jobs/bulk-add`,label:`Bulk Add`,icon:_e},{to:`/job`,label:`Job Inspector`,icon:le},{to:`/queue-control`,label:`Queue Control`,icon:ae},{to:`/dlq-control`,label:`DLQ Control`,icon:xe},{to:`/webhooks`,label:`Webhooks`,icon:me},{to:`/diagnostics`,label:`Diagnostics`,icon:se},{to:`/benchmark`,label:`Benchmark`,icon:me}]},{section:`Management`,items:[{to:`/database`,label:`Database`,icon:pe},{to:`/mcp`,label:`MCP`,icon:me},{to:`/usage`,label:`Usage`,icon:fe},{to:`/s3`,label:`S3 Backup`,icon:Ce},{to:`/settings`,label:`Settings`,icon:ie}]}];function pr(){let e=J(e=>e.theme),t=J(e=>e.toggle),n=e===`dark`;return(0,K.jsxs)(`button`,{type:`button`,onClick:t,className:`mx-3 mb-3 flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-muted transition-colors hover:bg-surface-2 hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50`,children:[n?(0,K.jsx)(re,{className:`size-4`}):(0,K.jsx)(Se,{className:`size-4`}),n?`Light Mode`:`Dark Mode`]})}function mr({open:e=!1,blocked:t=!1,onClose:n}){return(0,K.jsxs)(K.Fragment,{children:[e&&(0,K.jsx)(`button`,{type:`button`,"aria-label":`Close navigation`,tabIndex:-1,onClick:n,className:`fixed inset-0 z-40 bg-black/50 lg:hidden`}),(0,K.jsxs)(`div`,{id:`app-nav`,role:e?`dialog`:`complementary`,"aria-modal":e||void 0,"aria-label":e?`Navigation menu`:void 0,inert:t?!0:void 0,"aria-hidden":t||void 0,className:O(`flex w-60 shrink-0 flex-col border-r border-line bg-sidebar`,`fixed inset-y-0 left-0 z-50 transition-[transform,visibility] lg:static lg:z-auto lg:translate-x-0`,e?`translate-x-0`:`-translate-x-full lg:translate-x-0 invisible lg:visible`),children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 px-5 py-5`,children:[(0,K.jsx)(`span`,{className:`text-lg font-bold tracking-tight text-fg`,children:`bunqueue`}),(0,K.jsx)(`span`,{className:`rounded-md bg-accent/15 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-accent`,children:`dash`})]}),(0,K.jsx)(`nav`,{className:`flex-1 overscroll-contain overflow-y-auto px-3 pb-4`,children:fr.map(e=>(0,K.jsxs)(`div`,{className:`mb-4`,children:[e.section&&(0,K.jsx)(`div`,{className:`px-2 pb-2 pt-1 text-[10px] font-semibold uppercase tracking-wider text-faint`,children:e.section}),(0,K.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:e.items.map(({to:e,label:t,icon:n,end:r})=>(0,K.jsx)(i,{to:e,end:r,className:({isActive:e})=>O(`group relative flex items-center gap-3 rounded-lg px-3 py-2 text-sm font-medium transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50`,e?`bg-surface-2 text-fg`:`text-muted hover:bg-surface-2/60 hover:text-fg`),children:({isActive:e})=>(0,K.jsxs)(K.Fragment,{children:[e&&(0,K.jsx)(`span`,{className:`absolute inset-y-1.5 left-0 w-0.5 rounded-full bg-accent`}),(0,K.jsx)(n,{className:`size-[18px] shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:t})]})},e))})]},e.section??`root`))}),(0,K.jsx)(tr,{}),(0,K.jsx)(pr,{}),(0,K.jsx)(dr,{})]})]})}var hr=`https://egeominotti.github.io/bunqueue-dashboard/docs/`,gr=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`;function _r(e){let t=e.parentElement;if(!t)return()=>{};let n=Array.from(t.children).filter(t=>t!==e),r=n.map(e=>({node:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));for(let e of n)e.inert=!0,e.setAttribute(`aria-hidden`,`true`);return()=>{for(let{node:e,inert:t,ariaHidden:n}of r)e.inert=t,n==null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n)}}function vr(){let[e,t]=(0,k.useState)(``),[n,r]=(0,k.useState)(0),i=G(e=>e.active===`command-palette`),a=G(e=>e.release),o=f(),s=J(e=>e.toggle),c=(0,k.useRef)(null),l=(0,k.useRef)(null),u=(0,k.useRef)(null),d=(0,k.useRef)(null),p=(0,k.useCallback)(()=>a(`command-palette`),[a]),m=(0,k.useMemo)(()=>{let e=fr.flatMap(e=>e.items.map(t=>({id:`nav:${t.to}`,label:t.label,hint:e.section??`Home`,run:()=>o(t.to)}))),t=[{id:`act:theme`,label:`Toggle theme (dark / light)`,hint:`Action`,run:s},{id:`act:docs`,label:`Open documentation`,hint:`Action`,run:()=>window.open(hr,`_blank`,`noopener`)}];return[...e,...t]},[o,s]),h=(0,k.useMemo)(()=>{let t=e.trim().toLowerCase();return t?m.filter(e=>`${e.label} ${e.hint}`.toLowerCase().includes(t)):m},[m,e]);(0,k.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`){e.preventDefault();let t=G.getState();t.active===`command-palette`?t.release(`command-palette`):t.request(`command-palette`)}},t=()=>G.getState().request(`command-palette`);return window.addEventListener(`keydown`,e),window.addEventListener(`command-palette:open`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`command-palette:open`,t)}},[]),(0,k.useEffect)(()=>{if(!i)return;let e=document.activeElement;t(``),r(0);let n=u.current&&!document.getElementById(`app-shell`)?_r(u.current):()=>{},a=requestAnimationFrame(()=>c.current?.focus()),o=e=>{if(e.key===`Escape`){e.preventDefault(),p();return}if(e.key!==`Tab`)return;let t=d.current;if(!t)return;let n=Array.from(t.querySelectorAll(gr));if(n.length===0){e.preventDefault(),t.focus();return}let r=n[0],i=n[n.length-1],a=document.activeElement;e.shiftKey&&(a===r||!t.contains(a))?(e.preventDefault(),i.focus()):e.shiftKey||a!==i&&t.contains(a)||(e.preventDefault(),r.focus())};return document.addEventListener(`keydown`,o),()=>{cancelAnimationFrame(a),document.removeEventListener(`keydown`,o),n(),Hn(`command-palette`)&&e?.isConnected&&e.focus()}},[i,p]),(0,k.useEffect)(()=>{l.current?.querySelector(`[data-idx="${n}"]`)?.scrollIntoView({block:`nearest`})},[n]);let g=(0,k.useCallback)(e=>{e&&(e.run(),p())},[p]);return i?(0,K.jsxs)(`div`,{ref:u,className:`fixed inset-0 z-50 flex items-start justify-center p-4 pt-[12vh]`,children:[(0,K.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-label":`Close command palette`,onClick:p,className:`fixed inset-0 bg-black/50`}),(0,K.jsxs)(`div`,{ref:d,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,className:`relative z-10 w-full max-w-lg overflow-hidden rounded-xl border border-line-strong bg-surface shadow-2xl`,children:[(0,K.jsx)(`input`,{ref:c,role:`combobox`,value:e,onChange:e=>{t(e.target.value),r(0)},onKeyDown:e=>{e.key===`Escape`?(e.preventDefault(),p()):e.key===`ArrowDown`?(e.preventDefault(),r(e=>Math.min(e+1,Math.max(0,h.length-1)))):e.key===`ArrowUp`?(e.preventDefault(),r(e=>Math.max(e-1,0))):e.key===`Enter`&&(e.preventDefault(),g(h[n]))},placeholder:`Search pages and actions…`,"aria-label":`Search pages and actions`,"aria-autocomplete":`list`,"aria-expanded":`true`,"aria-controls":`command-palette-results`,"aria-activedescendant":h[n]?`command-palette-option-${n}`:void 0,autoComplete:`off`,name:`command-palette-search`,className:`w-full border-b border-line bg-transparent px-4 py-3 text-sm text-fg outline-none placeholder:text-faint focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent/50`}),(0,K.jsxs)(`div`,{ref:l,id:`command-palette-results`,role:`listbox`,className:`max-h-80 overflow-y-auto overscroll-contain py-2`,"aria-label":`Results`,children:[h.length===0&&(0,K.jsx)(`div`,{role:`presentation`,className:`px-4 py-6 text-center text-sm text-faint`,children:`No matches`}),h.map((e,t)=>(0,K.jsx)(`div`,{role:`presentation`,children:(0,K.jsxs)(`button`,{type:`button`,id:`command-palette-option-${t}`,role:`option`,"aria-selected":t===n,tabIndex:-1,"data-idx":t,onMouseEnter:()=>r(t),onClick:()=>g(e),className:`flex w-full items-center justify-between gap-3 px-4 py-2 text-left text-sm transition-colors ${t===n?`bg-accent/15 text-fg`:`text-muted`}`,children:[(0,K.jsx)(`span`,{className:`truncate`,children:e.label}),(0,K.jsx)(`span`,{className:`shrink-0 text-xs text-faint`,children:e.hint})]})},e.id))]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-t border-line px-4 py-2 text-xs text-faint`,children:[(0,K.jsx)(`span`,{children:`↑↓ navigate · ↵ open · esc close`}),(0,K.jsx)(`span`,{className:`font-mono`,children:`⌘K`})]})]})]}):null}var yr=`bq-dash-copilot`,br=1,xr=new Set([`anthropic`,`openai`,`google`,`zai`,`openrouter`,`custom`]),Sr={provider:`anthropic`,baseURL:``,model:`claude-opus-4-8`,apiKey:``};function Cr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function wr(e,t){return typeof e==`string`?e:t}function Tr(e){return typeof e==`string`&&xr.has(e)?e:Sr.provider}function Er(e,t=``){let n=Cr(e)?e:{},r=Tr(n.provider);return{provider:r,baseURL:r===`custom`?wr(n.baseURL,Sr.baseURL):Sr.baseURL,model:wr(n.model,Sr.model),apiKey:t}}function Dr(e){let t=Er((Cr(e)?e:{}).config);return{config:{provider:t.provider,baseURL:t.baseURL,model:t.model}}}var Or=0,kr=()=>globalThis.crypto?.randomUUID?.()??`${Date.now()}-${(Or++).toString(36)}-${Math.random().toString(36).slice(2,8)}`,Y=new Map,Ar=(e,t,n)=>e.map(e=>e.id===t?n(e):e);function jr(e){return Dr(e)}var Mr=h({key:yr,version:br,sanitizeState:Dr});y()(S(e=>({open:!1,config:{...Sr},messages:[],pending:[],busy:!1,setOpen:t=>e({open:t}),toggle:()=>e(e=>({open:!e.open})),setConfig:t=>e(e=>{let n={...e.config,...t};return{config:Er(n,wr(n.apiKey,``))}}),clear:()=>{for(let e of Y.values())e(!1);Y.clear(),e({messages:[],pending:[]})},cancelPending:()=>{for(let e of Y.values())e(!1);Y.clear(),e({pending:[]})},setBusy:t=>e({busy:t}),addUser:t=>e(e=>({messages:[...e.messages,{id:kr(),role:`user`,content:t}]})),startAssistant:()=>{let t=kr();return e(e=>({messages:[...e.messages,{id:t,role:`assistant`,content:``,tools:[]}]})),t},appendAssistant:(t,n)=>e(e=>({messages:Ar(e.messages,t,e=>({...e,content:e.content+n}))})),finishAssistant:(t,n)=>e(e=>({messages:Ar(e.messages,t,e=>({...e,done:!0,error:!!n?.error,content:n?.error?e.content?`${e.content}\n\n${n.error}`:n.error:e.content}))})),addTool:(t,n)=>e(e=>({messages:Ar(e.messages,t,e=>({...e,tools:[...e.tools??[],n]}))})),updateTool:(t,n,r)=>e(e=>({messages:Ar(e.messages,t,e=>({...e,tools:(e.tools??[]).map(e=>e.id===n?{...e,...r}:e)}))})),requestConfirm:t=>new Promise(n=>{let r=kr();Y.set(r,n),e(e=>({pending:[...e.pending,{...t,id:r}]}))}),resolveConfirm:(t,n)=>{let r=Y.get(t);r&&(Y.delete(t),r(n)),e(e=>({pending:e.pending.filter(e=>e.id!==t)}))}}),{name:yr,version:br,storage:g(()=>Mr),partialize:e=>jr(e),migrate:Dr,merge:(e,t)=>{let n=Dr(e);return{...t,config:{...n.config,apiKey:``}}}}));var Nr=new Set;function Pr(){for(let e of[...Nr])e()}function X(e){let t=(0,k.lazy)(r);function n(){Nr.delete(n),t=(0,k.lazy)(r)}function r(){return e().catch(e=>{throw Nr.add(n),e})}function i(e){return(0,k.createElement)(t,e)}return i}var Fr=`modulepreload`,Ir=function(e,t){return new URL(e,t).href},Lr={},Rr=function(e){return e.pathname.endsWith(`.css`)},zr=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},Z=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=Ir(t,n);let r=s(t),i=Rr(r);return zr(Lr,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:Fr,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Br={default:`border border-line bg-surface-2 text-fg hover:bg-surface-2/70 hover:border-line-strong`,ghost:`text-muted hover:text-fg hover:bg-surface-2`,accent:`bg-accent text-accent-fg hover:opacity-90 border border-transparent`,danger:`border border-red-500/30 text-danger hover:bg-red-500/10 hover:border-red-500/50`,warning:`border border-amber-500/30 text-warning hover:bg-amber-500/10 hover:border-amber-500/50`,success:`bg-emerald-500 text-white hover:bg-emerald-500/90 border border-transparent`},Vr={sm:`h-8 px-3 text-xs gap-1.5`,md:`h-9 px-4 text-sm gap-2`};function Hr({children:e,variant:t=`default`,size:n=`md`,className:r,...i}){return(0,K.jsx)(`button`,{type:`button`,className:O(`inline-flex items-center justify-center rounded-lg font-medium transition-colors`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent`,`disabled:cursor-not-allowed disabled:opacity-50`,Br[t],Vr[n],r),...i,children:e})}function Ur({children:e,className:t,variant:n=`ghost`,...r}){return(0,K.jsx)(`button`,{type:`button`,className:O(`inline-flex size-8 items-center justify-center rounded-lg transition-colors`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent`,`disabled:cursor-not-allowed disabled:opacity-50`,Br[n],t),...r,children:e})}function Wr({children:e,className:t,padded:n=!0}){return(0,K.jsx)(`div`,{className:O(`rounded-xl border border-line bg-surface`,n&&`p-5`,t),children:e})}function Gr({title:e,action:t,icon:n,headingLevel:r=2}){let i=`h${r}`;return(0,K.jsxs)(`div`,{className:`mb-4 flex items-center justify-between gap-3`,children:[(0,K.jsxs)(i,{className:`flex items-center gap-2 text-base font-semibold text-fg`,children:[n,e]}),t]})}function Kr({className:e,decorative:t=!1}){let n=O(`inline-block size-4 animate-spin rounded-full border-2 border-current border-t-transparent`,e);return t?(0,K.jsx)(`span`,{className:n,"aria-hidden":`true`}):(0,K.jsx)(`span`,{className:n,role:`status`,"aria-label":`Loading`})}function qr({label:e=`Loading…`}){return(0,K.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:`flex items-center justify-center gap-3 py-16 text-sm text-muted`,children:[(0,K.jsx)(Kr,{decorative:!0}),e]})}function Jr({icon:e,title:t,hint:n,action:r}){return(0,K.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-xl border border-dashed border-line py-14 text-center`,children:[e&&(0,K.jsx)(`div`,{className:`text-faint [&>svg]:size-8`,children:e}),(0,K.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:t}),n&&(0,K.jsx)(`div`,{className:`max-w-sm text-xs text-faint`,children:n}),r&&(0,K.jsx)(`div`,{className:`mt-2`,children:r})]})}function Yr({onRetry:e,message:t=`Could not refresh bunqueue data — the view may be unavailable or stale.`}){return(0,K.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:`mb-4 flex flex-wrap items-center gap-3 rounded-lg border border-amber-500/25 bg-amber-500/[0.06] px-4 py-2.5 text-sm`,children:[(0,K.jsx)(`span`,{className:`size-2 shrink-0 rounded-full bg-amber-400`,"aria-hidden":`true`}),(0,K.jsx)(`span`,{className:`text-amber-300/90 light:text-amber-700`,children:t}),e&&(0,K.jsx)(`button`,{type:`button`,onClick:e,className:`ml-auto shrink-0 rounded-md border border-amber-500/30 px-2.5 py-1 text-xs font-medium text-amber-200 light:text-amber-700 hover:border-amber-400/50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent`,children:`Retry`})]})}function Xr({error:e,onRetry:t}){return(0,K.jsxs)(`div`,{role:`alert`,"aria-atomic":`true`,className:`flex flex-col items-center justify-center gap-3 rounded-xl border border-red-500/20 bg-red-500/5 py-14 text-center`,children:[(0,K.jsx)(`div`,{className:`text-sm font-medium text-danger`,children:`Something went wrong`}),(0,K.jsx)(`div`,{className:`max-w-md text-xs text-faint`,children:e.message}),t&&(0,K.jsx)(`button`,{type:`button`,onClick:t,className:`mt-1 rounded-lg border border-line bg-surface-2 px-3 py-1.5 text-xs font-medium text-fg hover:border-line-strong focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent`,children:`Retry`})]})}var Zr=class extends k.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error(`ErrorBoundary caught an error`,e,t.componentStack)}componentDidUpdate(e){this.state.error&&e.resetKey!==this.props.resetKey&&(Pr(),this.setState({error:null}))}render(){let{error:e}=this.state;return e?(0,K.jsx)(`div`,{className:`flex min-h-screen items-center justify-center p-6`,children:(0,K.jsxs)(Wr,{className:`w-full max-w-lg`,children:[(0,K.jsx)(Xr,{error:e}),(0,K.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,K.jsx)(Hr,{onClick:()=>window.location.reload(),children:`Reload`})})]})}):this.props.children}},Qr={success:{bar:`bg-emerald-500`,title:`text-success`},error:{bar:`bg-red-500`,title:`text-danger`},info:{bar:`bg-accent`,title:`text-accent`}};function $r({toast:e,dismiss:t}){(0,k.useEffect)(()=>{let n=window.setTimeout(()=>t(e.id),e.ttlMs);return()=>window.clearTimeout(n)},[e.id,e.ttlMs,t]);let n=Qr[e.level];return(0,K.jsxs)(`div`,{className:`pointer-events-auto flex w-80 max-w-[calc(100vw-2rem)] overflow-hidden rounded-lg border border-line bg-surface shadow-lg`,children:[(0,K.jsx)(`span`,{className:O(`w-1 shrink-0`,n.bar),"aria-hidden":`true`}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3 px-3 py-2.5`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:O(`text-sm font-medium`,n.title),children:e.title}),e.detail&&(0,K.jsx)(`div`,{className:`mt-0.5 break-words text-xs text-muted`,children:e.detail})]}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>t(e.id),"aria-label":`Dismiss notification`,className:`-mr-1 shrink-0 rounded p-0.5 text-faint hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50`,children:(0,K.jsx)(ge,{className:`size-4`})})]})]})}function ei(){let e=U(e=>e.toasts),t=U(e=>e.dismiss);return(0,K.jsx)(`section`,{className:`pointer-events-none fixed bottom-4 right-4 z-[60] flex flex-col gap-2`,"aria-label":`Notifications`,"aria-live":`polite`,children:e.map(e=>(0,K.jsx)($r,{toast:e,dismiss:t},e.id))})}function ti(e,t){(0,k.useLayoutEffect)(()=>{let t=e.current;t&&(t.scrollTop=0,t.scrollLeft=0)},[t,e])}var ni={"/":`Overview`,"/fleet":`Fleet`,"/queues":`Queues`,"/jobs":`Jobs`,"/dlq":`Dead Letter Queue`,"/cron":`Cron Jobs`,"/flows":`Flows`,"/workflows":`Workflow · Overview`,"/workflows/executions":`Workflow · Executions`,"/workflows/waiting":`Workflow · Waiting & Signals`,"/workflows/compensation":`Workflow · Compensation`,"/workflows/archive":`Workflow · Archive`,"/metrics":`Metrics`,"/workers":`Workers`,"/logs":`Logs`,"/server":`Server`,"/add-job":`Add Job`,"/jobs/bulk-add":`Bulk Add Jobs`,"/job":`Job Inspector`,"/queue-control":`Queue Control`,"/dlq-control":`DLQ Control`,"/webhooks":`Webhooks`,"/diagnostics":`Diagnostics`,"/alerts":`Alerts`,"/benchmark":`Benchmark`,"/database":`Database`,"/mcp":`MCP`,"/usage":`Usage`,"/s3":`S3 Backup`,"/settings":`Settings`,"/overview-classic":`Overview (classic)`,"/queues-classic":`Queues (classic)`,"/jobs-classic":`Jobs (classic)`,"/dlq-classic":`DLQ (classic)`,"/cron-classic":`Cron Jobs (classic)`,"/metrics-classic":`Metrics (classic)`,"/workers-classic":`Workers (classic)`,"/logs-classic":`Logs (classic)`,"/usage-classic":`Usage (classic)`,"/s3-classic":`S3 Backup (classic)`};function ri(e){let t=e.length>1?e.replace(/\/+$/,``):e,n=t.toLowerCase();if(ni[n])return ni[n];let r=n.startsWith(`/queues-classic/`);if(r||n.startsWith(`/queues/`)){let e=t.slice(r?16:8);try{e=decodeURIComponent(e)}catch{}return`${e} · Queue${r?` (classic)`:``}`}return`Page not found`}function ii(e){(0,k.useEffect)(()=>{document.title=`${e} · bunqueue`},[e])}var ai=ar();function oi({onMenu:e,navOpen:t=!1}){let{pathname:n}=a(),r=ri(n);return ii(r),(0,K.jsxs)(`header`,{className:`sticky top-0 z-10 flex h-14 items-center justify-between gap-3 border-b border-line bg-bg/80 px-4 backdrop-blur sm:px-6 lg:px-8`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,K.jsx)(`button`,{type:`button`,"aria-label":`Open navigation`,"aria-expanded":t,"aria-controls":`app-nav`,onClick:t=>e?.(t.currentTarget),className:`-ml-1 flex size-9 shrink-0 items-center justify-center rounded-lg text-muted hover:bg-surface-2 hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50 lg:hidden`,children:(0,K.jsx)(ue,{className:`size-5`})}),(0,K.jsxs)(`div`,{className:`truncate text-sm text-muted`,children:[(0,K.jsx)(`span`,{className:`text-faint`,children:r}),(0,K.jsx)(`span`,{className:`mx-2 hidden text-faint sm:inline`,children:`·`}),(0,K.jsx)(`span`,{className:`hidden text-faint sm:inline`,children:`bunqueue`})]})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[ai&&(0,K.jsxs)(`span`,{title:`Showing canned sample data. No real bunqueue server is connected.`,className:`hidden items-center gap-1.5 rounded-full border border-accent/40 bg-accent/10 px-2.5 py-1 text-xs font-medium text-accent sm:inline-flex`,children:[(0,K.jsx)(`span`,{className:`size-1.5 rounded-full bg-accent`}),`Live demo`]}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>window.dispatchEvent(new Event(`command-palette:open`)),title:`Command palette`,"aria-label":`Open command palette`,className:`flex size-9 shrink-0 items-center justify-center rounded-lg text-muted hover:bg-surface-2 hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50 sm:hidden`,children:(0,K.jsx)(oe,{className:`size-5`})}),(0,K.jsxs)(`button`,{type:`button`,onClick:()=>window.dispatchEvent(new Event(`command-palette:open`)),title:`Command palette (⌘K)`,className:`hidden items-center gap-2 rounded-lg border border-line px-2.5 py-1.5 text-xs text-muted hover:bg-surface-2 hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50 sm:flex`,children:[(0,K.jsx)(`span`,{children:`Search`}),(0,K.jsx)(`kbd`,{className:`rounded border border-line bg-surface-2 px-1 font-mono text-[10px]`,children:`⌘K`})]}),(0,K.jsx)(l,{to:`/settings`,title:`Settings`,"aria-label":`bq settings`,className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-gradient-to-br from-accent to-fuchsia-600 text-xs font-bold text-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50`,children:`bq`})]})]})}function si(){let[e,t]=(0,k.useState)(!1),{pathname:n,key:r}=a(),i=(0,k.useRef)(null),o=(0,k.useRef)(null),c=G(e=>e.active),l=G(e=>e.request),u=G(e=>e.release),d=e&&c===`mobile-navigation`,f=(0,k.useCallback)(()=>{t(!1),u(`mobile-navigation`)},[u]);return ti(i,r),(0,k.useEffect)(()=>f(),[n,f]),(0,k.useEffect)(()=>{let e=window.matchMedia(`(min-width: 1024px)`),t=()=>e.matches&&f();return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[f]),(0,k.useEffect)(()=>{if(!d)return;let e=e=>{e.key===`Escape`&&f()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[d,f]),(0,k.useEffect)(()=>{if(!d)return;let e=document.getElementById(`app-nav`),t=()=>e?Array.from(e.querySelectorAll(`a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])`)):[],n=()=>t()[0]?.focus(),r=setTimeout(n,0),i=setTimeout(()=>{e?.contains(document.activeElement)||n()},200),a=n=>{if(n.key!==`Tab`)return;let r=t();if(!r.length)return;let i=r[0],a=r[r.length-1];e?.contains(document.activeElement)?n.shiftKey&&document.activeElement===i?(n.preventDefault(),a.focus()):!n.shiftKey&&document.activeElement===a&&(n.preventDefault(),i.focus()):(n.preventDefault(),(n.shiftKey?a:i).focus())};return window.addEventListener(`keydown`,a),()=>{clearTimeout(r),clearTimeout(i),window.removeEventListener(`keydown`,a);let e=o.current;Hn(`mobile-navigation`)&&e?.isConnected&&e.focus()}},[d]),(0,k.useEffect)(()=>{e&&c!==`mobile-navigation`&&t(!1)},[e,c]),(0,k.useEffect)(()=>{let e=()=>f();return window.addEventListener(`auth:gate-opened`,e),window.addEventListener(`command-palette:open`,e),()=>{window.removeEventListener(`auth:gate-opened`,e),window.removeEventListener(`command-palette:open`,e)}},[f]),(0,k.useEffect)(()=>()=>{G.getState().release(`mobile-navigation`)},[]),(0,K.jsx)(Zr,{children:(0,K.jsxs)(`div`,{id:`app-shell`,className:`flex h-screen overflow-hidden bg-bg text-fg`,children:[(0,K.jsx)(`a`,{href:`#main`,onClick:e=>{e.preventDefault(),i.current?.focus()},inert:c!==null||void 0,tabIndex:c===null?void 0:-1,className:`sr-only rounded-md bg-accent px-3 py-2 text-sm font-medium text-accent-fg shadow-lg focus:not-sr-only focus:absolute focus:left-4 focus:top-3 focus:z-50`,children:`Skip to content`}),(0,K.jsx)(mr,{open:d,blocked:c!==null&&c!==`mobile-navigation`,onClose:f}),(0,K.jsxs)(`div`,{id:`app-content`,className:`flex min-w-0 flex-1 flex-col`,inert:c!==null||void 0,"aria-hidden":c!==null||void 0,children:[(0,K.jsx)(oi,{navOpen:d,onMenu:e=>{l(`mobile-navigation`)&&(o.current=e,t(!0))}}),(0,K.jsx)(`main`,{ref:i,id:`main`,tabIndex:-1,className:O(`flex-1 px-4 pt-5 pb-24 focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent sm:px-6 lg:px-8 lg:pt-6`,d?`overflow-hidden`:`overflow-y-auto`),children:(0,K.jsx)(k.Suspense,{fallback:(0,K.jsx)(`div`,{className:`p-2 text-sm text-muted`,children:`Loading…`}),children:(0,K.jsx)(Zr,{resetKey:r,children:(0,K.jsx)(s,{})})})})]}),(0,K.jsx)(vr,{}),(0,K.jsx)(Gn,{}),!1,(0,K.jsx)(ei,{}),(0,K.jsx)(Bn,{})]})})}function ci({title:e,description:t,live:n,actions:r,back:i}){return(0,K.jsxs)(`div`,{className:`mb-6 flex flex-wrap items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[i,(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`h1`,{className:`text-2xl font-bold tracking-tight text-fg`,children:e}),n&&(0,K.jsx)(Te,{label:`Live`,tone:`green`})]}),t&&(0,K.jsx)(`p`,{className:`mt-1 text-sm text-muted`,children:t})]})]}),r&&(0,K.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:r})]})}var li={default:`text-fg`,green:`text-success`,red:`text-danger`,blue:`text-blue-400 light:text-blue-700`,amber:`text-warning`,accent:`text-accent`};function Q({label:e,value:t,tone:n=`default`,hint:r,compact:i}){return(0,K.jsxs)(`div`,{className:O(`rounded-xl border border-line bg-surface`,i?`px-4 py-3`:`px-5 py-4`),children:[(0,K.jsx)(`div`,{className:`text-[11px] font-medium uppercase tracking-wider text-faint`,children:e}),(0,K.jsx)(`div`,{className:O(`mt-2 font-semibold tnum`,i?`text-xl`:`text-3xl`,li[n]),children:t}),r!=null&&(0,K.jsx)(`div`,{className:`mt-1 text-xs text-faint`,children:r})]})}var ui=new Intl.NumberFormat(`de-DE`),di=new Intl.DateTimeFormat(`it-IT`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`});function $(e){return e==null||!Number.isFinite(e)?`0`:ui.format(e)}function fi(e,t=2){return e==null||!Number.isFinite(e)?`0%`:`${(e*100).toFixed(t)}%`}function pi(e,t){let n=e+t;return n>0?t/n:null}function mi(e){if(e==null||!Number.isFinite(e))return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?`—`:di.format(t)}function hi(e,t=Date.now()){if(e==null||!Number.isFinite(e))return`—`;let n=Math.max(0,t-e),r=Math.floor(n/1e3);if(r<60)return`${r}s ago`;let i=Math.floor(r/60);if(i<60)return`${i}m ago`;let a=Math.floor(i/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function gi(e){if(e==null||!Number.isFinite(e)||e<0)return`—`;let t=Math.round(e);if(t<1e3)return`${t}ms`;let n=e/1e3;if(n<59.95)return`${n.toFixed(1)}s`;let r=Math.round(n);return`${Math.floor(r/60)}m ${r%60}s`}function _i(e,t){if(e==null||t==null)return;let n=t-e;return n>=0?n:void 0}function vi(e){if(e==null||!Number.isFinite(e))return`—`;let t=Math.max(0,Math.floor(e)),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),i=Math.floor(t%3600/60),a=[];return n&&a.push(`${n}d`),(r||n)&&a.push(`${r}h`),a.push(`${i}m`),a.join(` `)}function yi(e){return e==null||!Number.isFinite(e)?`0`:e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?Number((e/1e3).toFixed(1))>=1e3?`${(e/1e6).toFixed(1)}M`:`${(e/1e3).toFixed(1)}K`:String(Math.round(e))}function bi(e){if(e==null||!Number.isFinite(e))return`—`;if(e>=1e3)return`${(e/1e3).toFixed(2)}s`;let t=+(e<10);return Number(e.toFixed(t))>=1e3?`${(e/1e3).toFixed(2)}s`:`${e.toFixed(t)}ms`}var xi=/(?:\u001b\[[0-9;?]*[ -/]*[@-~]|\u001b[@-Z\\^_])/g;function Si(e){return e.replace(xi,``)}function Ci(e){if(e==null||!Number.isFinite(e))return`—`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return r<t.length-1&&Number(n.toFixed(r===0?0:1))>=1024&&(n/=1024,r++),`${n.toFixed(r===0?0:1)} ${t[r]}`}var wi={overview:{stats:{waiting:0,active:0,delayed:0,completed:0,dlq:0,totalPushed:0,totalPulled:0,totalCompleted:0,totalFailed:0,uptime:0},throughput:{pushPerSec:0,pullPerSec:0,completePerSec:0,failPerSec:0},memory:{heapUsed:0,heapTotal:0,rss:0},crons:{total:0}},queuesTotal:0,details:[],failedTotal:0,readyTotal:0};function Ti(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ei(e,t){return Ti(e)&&t.every(t=>typeof e[t]==`number`&&Number.isFinite(e[t]))}function Di(e){if(!Ti(e)||!Ei(e.stats,[`waiting`,`active`,`completed`,`dlq`,`totalPushed`,`totalPulled`,`uptime`])||!Ei(e.throughput,[`pushPerSec`,`pullPerSec`])||!Ei(e.memory,[`rss`])||!Ei(e.crons,[`total`]))throw Error(`Malformed /dashboard response: required overview metrics are missing or non-numeric.`)}var Oi=class extends Error{status;lastEventIdSent;constructor(e,t,n=!1){super(e),this.status=t,this.lastEventIdSent=n,this.name=`SseConnectError`}},ki=new Set([400,409,413,431]);function Ai(e){return e instanceof Oi&&e.lastEventIdSent&&ki.has(e.status)}function ji(e){return!e.includes(`\0`)&&e.length<=4096}function Mi(e){return!0}function Ni(e){let t=`message`,n,r=[];for(let i of e.split(`
|
|
3
|
+
`)){if(!i||i.startsWith(`:`))continue;let e=i.indexOf(`:`),a=e===-1?i:i.slice(0,e),o=e===-1?``:i.slice(e+1).replace(/^ /,``);a===`event`?t=o:a===`data`?r.push(o):a===`id`&&ji(o)&&(n=o)}if(r.length===0)return null;let i=r.join(`
|
|
4
|
+
`),a=i;try{a=JSON.parse(i)}catch{}return{id:n,event:t,data:a}}var Pi=45e3,Fi=262144;async function Ii(e,t,n,r=Pi,i){let a=new AbortController,o=()=>a.abort(n.reason);n.aborted?a.abort(n.reason):n.addEventListener(`abort`,o,{once:!0});let s,c=()=>{clearTimeout(s),s=setTimeout(()=>a.abort(Error(`SSE idle timeout`)),r)};try{c();let n=new Headers({Accept:`text/event-stream`,..._()}),r=!1;if(i&&ji(i))try{n.set(`Last-Event-ID`,i),r=!0}catch{n.delete(`Last-Event-ID`)}let o=await fetch(e,{headers:n,signal:a.signal});if(!o.ok||!o.body)throw await o.body?.cancel().catch(()=>{}),new Oi(o.ok?`SSE connect failed: empty response body`:`SSE connect failed: HTTP ${o.status}`,o.status,r);let s=o.headers.get(`content-type`)?.split(`;`,1)[0]?.trim().toLowerCase();if(s!==`text/event-stream`)throw await o.body.cancel().catch(()=>{}),new Oi(`SSE connect failed: expected text/event-stream, received ${s||`no Content-Type`}`,o.status,r);let l=o.body.getReader(),u=new TextDecoder,d=``;try{for(;;){let{done:e,value:n}=await l.read();if(e)break;for(c(),d+=u.decode(n,{stream:!0});;){let e=d.indexOf(`
|
|
5
|
+
|
|
6
|
+
`),n=d.indexOf(`\r
|
|
7
|
+
\r
|
|
8
|
+
`),r,i;if(e!==-1&&(n===-1||e<=n))r=e,i=2;else if(n!==-1)r=n,i=4;else{if(d.length>262144)throw Error(`SSE frame exceeds the ${Fi}-character limit`);break}if(r>262144)throw Error(`SSE frame exceeds the ${Fi}-character limit`);let a=d.slice(0,r);d=d.slice(r+i);let o=Ni(a.replace(/\r/g,``));o&&t(o)}}}finally{l.releaseLock()}}finally{clearTimeout(s),n.removeEventListener(`abort`,o),a.abort()}}var Li={total:0,completed:0,failed:0,waiting:0,active:0},Ri=250,zi=()=>typeof performance<`u`?performance.now():Date.now();function Bi(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Vi(e,t){return typeof e==`string`&&e.length<=t?e:void 0}function Hi(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function Ui(e,t){let n=Hi(e);return n!==void 0&&Math.abs(n)<=864e13?n:Number.isFinite(t)&&Math.abs(t)<=864e13?t:0}function Wi(e){let t=Bi(e)?e:{},n=Date.now();return{queue:Vi(t.queue,256),jobId:Vi(t.jobId,1024),name:Vi(t.name,512),timestamp:Ui(t.timestamp,n),error:Vi(t.error,4096),progress:Hi(t.progress)}}function Gi(e){let t=e.includes(`:`)?e.split(`:`)[1]:e;switch(t){case`pushed`:case`added`:return`waiting`;case`pulled`:case`progress`:return`active`;default:return t}}function Ki(e){let t=x(e=>e.baseUrl),n=x(e=>e.token),[r,i]=(0,k.useState)([]),[a,o]=(0,k.useState)(Li),[s,c]=(0,k.useState)(0),[l,u]=(0,k.useState)(!1),[d,f]=(0,k.useState)(null),p=(0,k.useRef)([]),m=(0,k.useRef)(0),h=JSON.stringify([t,n,e??null]),g=(0,k.useRef)(h),_=g.current===h,v=_?r:[],y=_?a:Li,b=_?s:0,S=_?l:!1,C=_?d:null;return(0,k.useEffect)(()=>{let t=new AbortController,n=++m.current,r=0,a=!1,s=[],l={...Li},d,_=()=>!a&&m.current===n;g.current=h,i([]),o(Li),c(0),u(!1),f(null),p.current=[];let v=e=>new Promise(n=>{let r=()=>{clearTimeout(i),n()},i=setTimeout(()=>{t.signal.removeEventListener(`abort`,r),n()},e);t.signal.addEventListener(`abort`,r,{once:!0})}),y=e=>{if(!_()||(e.id!==void 0&&(d=e.id||void 0),Mi(e)&&(u(e=>_()?!0:e),f(e=>_()?null:e)),!e.event.startsWith(`job:`)))return;let t=Wi(e.data),n=Gi(e.event),i={seq:++r,event:e.event,queue:t.queue,jobId:t.jobId,name:t.name,status:n,timestamp:t.timestamp,error:t.error,progress:t.progress};s.push(i);let a=l;a.total+=1,n===`completed`?a.completed+=1:n===`failed`?a.failed+=1:n===`waiting`?a.waiting+=1:n===`active`&&e.event!==`job:progress`&&(a.active+=1),p.current.push(zi())};(async()=>{let n=0;for(;!a;){let r=null,i=d,a=!1;try{await Ii(Ee.eventsUrl(e),e=>{a=!0,y(e)},t.signal,void 0,i)}catch(e){r=e instanceof Error?e:Error(String(e))}if(i&&!a&&d===i&&Ai(r)&&(d=void 0),!_())break;u(e=>!_()&&e),f(e=>_()?r:e),n=r?Math.min((a?0:n)+1,8):0,await v(2e3*Math.max(1,n))}})();let b=setInterval(()=>{if(!_())return;if(s.length){let e=s;s=[],e.reverse(),i(t=>_()?[...e,...t].slice(0,Ri):t)}let e=l;e.total&&(l={...Li},o(t=>_()?{total:t.total+e.total,completed:t.completed+e.completed,failed:t.failed+e.failed,waiting:t.waiting+e.waiting,active:t.active+e.active}:t))},150);return()=>{a=!0,m.current===n&&(m.current+=1),t.abort(),clearInterval(b)}},[e,t,n,h]),(0,k.useEffect)(()=>{let e=setInterval(()=>{let e=zi();p.current=p.current.filter(t=>t<=e&&e-t<5e3),c(p.current.length/5)},1e3);return()=>clearInterval(e)},[]),{events:v,counters:y,throughput:b,connected:S,error:C}}function qi(){let{events:e,connected:t,error:n}=Ki();return(0,K.jsxs)(`div`,{className:`mt-8`,children:[(0,K.jsx)(Ji,{title:`Recent Activity`,to:`/logs`}),(0,K.jsxs)(Wr,{padded:!1,children:[n&&e.length>0&&(0,K.jsxs)(`p`,{className:`border-b border-line px-5 py-2 text-xs text-warning`,children:[`Event stream unavailable — `,n.message,`. Reconnecting…`]}),e.length===0?(0,K.jsx)(`p`,{role:n?`alert`:void 0,className:O(`py-8 text-center text-sm`,n?`text-warning`:`text-faint`),children:n?`Event stream unavailable — ${n.message}. Reconnecting…`:t?`Waiting for live activity…`:`Connecting to the event stream…`}):(0,K.jsx)(`ul`,{className:`divide-y divide-line`,children:e.slice(0,8).map(e=>(0,K.jsxs)(`li`,{className:`flex items-center justify-between px-5 py-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`span`,{className:O(`size-2 rounded-full`,Xi(e.status))}),(0,K.jsxs)(`div`,{className:`text-sm`,children:[(0,K.jsx)(`span`,{className:`font-mono font-medium text-fg`,children:e.queue||`—`}),(0,K.jsx)(`span`,{className:`text-faint`,children:` · `}),(0,K.jsx)(`span`,{className:`font-mono text-xs text-faint`,children:e.jobId?e.jobId.slice(0,8):`—`}),(0,K.jsx)(`span`,{className:`text-faint`,children:` · `}),(0,K.jsx)(`span`,{className:`capitalize text-muted`,children:e.status})]})]}),(0,K.jsx)(`span`,{className:`text-xs text-faint`,children:hi(e.timestamp)})]},e.seq))})]})]})}function Ji({title:e,to:t}){return(0,K.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,K.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:e}),(0,K.jsxs)(l,{to:t,className:`flex items-center gap-1 text-sm text-muted hover:text-fg`,children:[`View All `,(0,K.jsx)(he,{className:`size-3.5`})]})]})}function Yi({label:e,value:t,tone:n}){return(0,K.jsxs)(`span`,{children:[e,` `,(0,K.jsx)(`span`,{className:O(`tnum font-semibold`,n),children:t==null?`—`:$(t)})]})}function Xi(e){return e===`completed`?`bg-emerald-400`:e===`failed`?`bg-red-400`:e===`active`?`bg-blue-400`:e===`waiting`?`bg-amber-400`:`bg-accent`}function Zi(){let e=x(e=>e.baseUrl),t=(0,k.useRef)(null),{data:n,error:r,loading:i,refetch:a}=$n(async()=>{let[e,n]=await Promise.all([H.overview(),H.queuesSummary()]);Di(e);let r=[...n].sort((e,t)=>(t.counts?.failed??0)-(e.counts?.failed??0)||(t.counts?.waiting??0)+(t.counts?.prioritized??0)-((e.counts?.waiting??0)+(e.counts?.prioritized??0))).slice(0,6).map(e=>({name:e.name,paused:e.paused,counts:e.counts})),i=n.reduce((e,t)=>e+(t.counts?.failed??0),0),a=n.reduce((e,t)=>e+t.counts.waiting+t.counts.prioritized,0);return t.current=Date.now(),{overview:e,queuesTotal:n.length,details:r,failedTotal:i,readyTotal:a}},[]);if(i&&!n&&!r)return(0,K.jsx)(qr,{label:`Loading overview…`});if(r&&!n)return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(ci,{title:`Overview`,description:`Real-time system health is unavailable.`}),(0,K.jsx)(Xr,{error:r,onRetry:a})]});let{overview:o,queuesTotal:s,details:c,failedTotal:u,readyTotal:d}=n??wi,{stats:f,throughput:p,memory:m,crons:h}=o,g=pi(f.completed,u),_=e===`/api`?`localhost:6790`:e.replace(/^https?:\/\//,``),v=f.uptime?vi(f.uptime/1e3):`—`,y=Ci(m.rss*1024*1024),b=!!r;return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(ci,{title:`Overview`,description:`Real-time system health at a glance.`,live:!!n&&!r}),r&&(0,K.jsx)(Yr,{message:`Connection lost — showing the last successful overview snapshot.`,onRetry:a}),(0,K.jsxs)(`div`,{className:O(`mb-6 flex flex-wrap items-center justify-between gap-y-2 rounded-xl border px-5 py-4`,b?`border-amber-500/25 bg-amber-500/[0.06]`:`border-emerald-500/25 bg-emerald-500/[0.06]`),children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,K.jsxs)(`span`,{className:`relative flex size-2.5`,children:[!b&&(0,K.jsx)(`span`,{className:`absolute inline-flex size-full animate-ping rounded-full bg-emerald-400 opacity-60`}),(0,K.jsx)(`span`,{className:O(`relative inline-flex size-2.5 rounded-full`,b?`bg-amber-400`:`bg-emerald-400`)})]}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`div`,{className:O(`font-semibold`,b?`text-warning`:`text-success`),children:b?`Connection lost — showing last known data`:`bunqueue server connected`}),(0,K.jsxs)(`div`,{className:`truncate font-mono text-xs text-muted`,children:[_,` · uptime `,v,` · `,y,` RAM`,b&&(0,K.jsxs)(K.Fragment,{children:[` `,`· last updated `,t.current?hi(t.current):`never`]})]})]})]}),(0,K.jsx)(`span`,{className:O(`rounded-full px-3 py-1 text-xs font-medium`,b?`bg-amber-500/15 text-warning`:`bg-emerald-500/15 text-success`),children:b?`Stale`:`Online`})]}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-3`,children:[(0,K.jsx)(Q,{label:`Error Rate`,value:g==null?`—`:fi(g),tone:g==null?`default`:g>.05?`red`:`green`,hint:`failed / processed`}),(0,K.jsx)(Q,{label:`Failed`,value:$(u),tone:u?`red`:`default`,hint:`recorded across queues`}),(0,K.jsx)(Q,{label:`DLQ`,value:$(f.dlq),tone:f.dlq?`red`:`default`,hint:`dead-lettered jobs`})]}),(0,K.jsxs)(`div`,{className:`mt-4 grid grid-cols-2 gap-4 md:grid-cols-3 xl:grid-cols-6`,children:[(0,K.jsx)(Q,{label:`Completed`,value:$(f.completed),tone:`green`,compact:!0}),(0,K.jsx)(Q,{label:`Active`,value:$(f.active),tone:`blue`,compact:!0}),(0,K.jsx)(Q,{label:`Ready backlog`,value:$(d),tone:d>100?`amber`:`default`,hint:`waiting + prioritized`,compact:!0}),(0,K.jsx)(Q,{label:`Push/sec`,value:p.pushPerSec.toFixed(1),tone:`accent`,hint:`${yi(f.totalPushed)} since restart`,compact:!0}),(0,K.jsx)(Q,{label:`Pull/sec`,value:p.pullPerSec.toFixed(1),tone:`accent`,hint:`${yi(f.totalPulled)} since restart`,compact:!0}),(0,K.jsx)(Q,{label:`Queues`,value:$(s),hint:`${h.total} cron active`,compact:!0})]}),(0,K.jsxs)(`div`,{className:`mt-8`,children:[(0,K.jsx)(Ji,{title:`Queue Health — most loaded`,to:`/queues`}),c.length===0?(0,K.jsx)(Wr,{children:(0,K.jsx)(`p`,{className:`py-4 text-center text-sm text-faint`,children:`No queues yet.`})}):(0,K.jsx)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3`,children:c.map(e=>(0,K.jsxs)(l,{to:`/queues/${encodeURIComponent(e.name)}`,className:`rounded-xl border border-line bg-surface p-4 transition-colors hover:border-line-strong`,children:[(0,K.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate font-mono text-sm font-medium text-accent`,children:e.name}),(0,K.jsx)(`span`,{className:O(`shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium`,e.paused?`bg-orange-500/10 text-orange-400`:`bg-emerald-500/10 text-success`),children:e.paused?`paused`:`active`})]}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1 font-mono text-xs text-faint`,children:[(0,K.jsx)(Yi,{label:`W`,value:e.counts?.waiting,tone:`text-warning`}),(0,K.jsx)(Yi,{label:`P`,value:e.counts?.prioritized,tone:`text-orange-400`}),(0,K.jsx)(Yi,{label:`A`,value:e.counts?.active,tone:`text-blue-400`}),(0,K.jsx)(Yi,{label:`C`,value:e.counts?.completed,tone:`text-success`}),(0,K.jsx)(Yi,{label:`F`,value:e.counts?.failed,tone:`text-danger`})]})]},e.name))})]}),(0,K.jsx)(qi,{})]})}function Qi(){return(0,K.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-3 py-24 text-center`,children:[(0,K.jsx)(`h1`,{className:`text-5xl font-bold text-faint`,children:`404`}),(0,K.jsx)(`p`,{className:`text-sm text-muted`,children:`This page does not exist.`}),(0,K.jsx)(l,{to:`/`,className:`rounded-lg border border-line bg-surface-2 px-4 py-2 text-sm font-medium text-fg hover:border-line-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50`,children:`Back to Overview`})]})}var $i=X(()=>Z(()=>import(`./AddJob-Dgjlhzn2.js`).then(e=>e.t).then(e=>({default:e.AddJob})),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url)),ea=X(()=>Z(()=>import(`./Benchmark-B4NfYkAi.js`).then(e=>({default:e.Benchmark})),__vite__mapDeps([9,1,2,7,10,5,4,11]),import.meta.url)),ta=X(()=>Z(()=>import(`./BulkAddJobs-BAN5wT8A.js`).then(e=>({default:e.BulkAddJobs})),__vite__mapDeps([12,1,2,3,4,5,6,7,8]),import.meta.url)),na=X(()=>Z(()=>import(`./CronManager-Cl5RW2cB.js`).then(e=>({default:e.CronManager})),__vite__mapDeps([13,1,2,3,10,5,4,14,6,7,8,0]),import.meta.url)),ra=X(()=>Z(()=>import(`./Database-CeUKS6Nf.js`).then(e=>({default:e.Database})),__vite__mapDeps([15,1,2,7,10,5,4,14]),import.meta.url)),ia=X(()=>Z(()=>import(`./Diagnostics-DuzTPfyb.js`).then(e=>({default:e.Diagnostics})),__vite__mapDeps([16,1,2,5,17,7,3,18,19]),import.meta.url)),aa=X(()=>Z(()=>import(`./DlqControl-DDxRMM8i.js`).then(e=>({default:e.DlqControl})),__vite__mapDeps([20,1,2,10,5,4,14,21,22,23,6,7,19,18,24]),import.meta.url)),oa=X(()=>Z(()=>import(`./DlqPro-xj-MM6u8.js`).then(e=>({default:e.DlqPro})),__vite__mapDeps([25,1,2,10,5,4,14,21,22,23,6,7,19,18,24]),import.meta.url)),sa=X(()=>Z(()=>import(`./Flows-BFUMTSWv.js`).then(e=>({default:e.Flows})),__vite__mapDeps([26,1,2,7,3,5,19,18,27]),import.meta.url)),ca=X(()=>Z(()=>import(`./JobInspector-BXuXxDwR.js`).then(e=>({default:e.JobInspector})),__vite__mapDeps([28,1,2,7,3,10,5,4,21,22,27]),import.meta.url)),la=X(()=>Z(()=>import(`./JobsPro-k20Pas24.js`).then(e=>({default:e.JobsPro})),__vite__mapDeps([29,1,2,10,5,4,14,6,7,19,22,27]),import.meta.url)),ua=X(()=>Z(()=>import(`./LogsPro-hna5L6sP.js`).then(e=>({default:e.LogsPro})),__vite__mapDeps([30,1,2,7,10,5,4,14,23,6,19,18,24,21]),import.meta.url)),da=X(()=>Z(()=>import(`./McpServer-Cqem-L3z.js`).then(e=>({default:e.McpServer})),__vite__mapDeps([31,2,1,32]),import.meta.url)),fa=X(()=>Z(()=>import(`./MetricsPro-BslYrx1A.js`).then(e=>({default:e.MetricsPro})),__vite__mapDeps([33,1,2,5,14,11,34,7]),import.meta.url)),pa=X(()=>Z(()=>import(`./QueueControl-BiMM0jLp.js`).then(e=>({default:e.QueueControl})),__vite__mapDeps([23,1,2,5,4,6,7,19,18,24,21]),import.meta.url)),ma=X(()=>Z(()=>import(`./QueueDetailPro-CpSMSo8A.js`).then(e=>({default:e.QueueDetailPro})),__vite__mapDeps([35,1,2,10,5,6,7,21,19,11,24,4,34]),import.meta.url)),ha=X(()=>Z(()=>import(`./QueuesOverview-DRohFtuC.js`).then(e=>({default:e.QueuesOverview})),__vite__mapDeps([36,1,2,10,5,14,6,7,37]),import.meta.url)),ga=X(()=>Z(()=>import(`./S3BackupPro-Cr2ZJZkw.js`).then(e=>({default:e.S3BackupPro})),__vite__mapDeps([38,1,2,7,10,4,5]),import.meta.url)),_a=X(()=>Z(()=>import(`./ServerControl-m58ooJT2.js`).then(e=>({default:e.ServerControl})),__vite__mapDeps([39,1,2,10,5,4,32,18,19,7]),import.meta.url)),va=X(()=>Z(()=>import(`./UsagePro-DtlB1dJc.js`).then(e=>({default:e.UsagePro})),__vite__mapDeps([40,2,1]),import.meta.url)),ya=X(()=>Z(()=>import(`./Webhooks-B_GwTCBW.js`).then(e=>({default:e.Webhooks})),__vite__mapDeps([41,1,2,10,4,5,14,6,7]),import.meta.url)),ba=X(()=>Z(()=>import(`./WorkersPro-C6gNYGfo.js`).then(e=>({default:e.WorkersPro})),__vite__mapDeps([42,1,2,10,5,14,6,7]),import.meta.url)),xa=X(()=>Z(()=>import(`./Workflows-ClF4YzhW.js`).then(e=>({default:e.Workflows})),__vite__mapDeps([43,1,2,7,3,5,19,18]),import.meta.url)),Sa=X(()=>Z(()=>import(`./Alerts-Lyzbq0qw.js`).then(e=>({default:e.Alerts})),__vite__mapDeps([44,1,2,7,10,4,5]),import.meta.url)),Ca=X(()=>Z(()=>import(`./Fleet-BAziMWfo.js`).then(e=>({default:e.Fleet})),__vite__mapDeps([45,1,2,7,19]),import.meta.url)),wa=X(()=>Z(()=>import(`./Cron-Bz46oVXB.js`).then(e=>({default:e.Cron})),__vite__mapDeps([46,1,2,10,17,7,3,14,6]),import.meta.url)),Ta=X(()=>Z(()=>import(`./Dlq-D8s-NhV2.js`).then(e=>({default:e.Dlq})),__vite__mapDeps([47,1,2,10,17,7,3,4,5,14,21,48,49,37]),import.meta.url)),Ea=X(()=>Z(()=>import(`./Jobs-pQBmffni.js`).then(e=>({default:e.Jobs})),__vite__mapDeps([49,1,2,10,5,17,7,3,4,21,37,48]),import.meta.url)),Da=X(()=>Z(()=>import(`./Logs-DA4JFvpM.js`).then(e=>({default:e.Logs})),__vite__mapDeps([50,1,2,10,5,4,14,48,17,7,3,49,21,37]),import.meta.url)),Oa=X(()=>Z(()=>import(`./Metrics-CJ9dW0me.js`).then(e=>({default:e.Metrics})),__vite__mapDeps([51,2,1,17,7,3]),import.meta.url)),ka=X(()=>Z(()=>import(`./Overview-Cmg_2NAt.js`).then(e=>({default:e.Overview})),__vite__mapDeps([52,2,1,10,17,7,3]),import.meta.url)),Aa=X(()=>Z(()=>import(`./QueueDetail-DfRY4jS4.js`).then(e=>({default:e.QueueDetail})),__vite__mapDeps([53,1,2,10,5,17,7,3,4,6,21,48]),import.meta.url)),ja=X(()=>Z(()=>import(`./Queues-C5lElTjp.js`).then(e=>({default:e.Queues})),__vite__mapDeps([54,1,2,10,5,17,7,3,14]),import.meta.url)),Ma=X(()=>Z(()=>import(`./S3Backup-DUHmp2Xw.js`).then(e=>({default:e.S3Backup})),__vite__mapDeps([55,2,1,17,7,3]),import.meta.url)),Na=X(()=>Z(()=>import(`./Settings-DXsjoOqD.js`).then(e=>({default:e.Settings})),__vite__mapDeps([56,1,2,7,10,4,5]),import.meta.url)),Pa=X(()=>Z(()=>import(`./Usage-CY2uEJEu.js`).then(e=>({default:e.Usage})),__vite__mapDeps([57,2,1,17,7,3]),import.meta.url)),Fa=X(()=>Z(()=>import(`./Workers-Bu8aJlZf.js`).then(e=>({default:e.Workers})),__vite__mapDeps([58,1,2,10,17,7,3,14]),import.meta.url));function Ia(){return(0,K.jsx)(n,{children:(0,K.jsxs)(u,{element:(0,K.jsx)(si,{}),children:[(0,K.jsx)(u,{path:`/`,element:(0,K.jsx)(Zi,{})}),(0,K.jsx)(u,{path:`/fleet`,element:(0,K.jsx)(Ca,{})}),(0,K.jsx)(u,{path:`/overview-classic`,element:(0,K.jsx)(ka,{})}),(0,K.jsx)(u,{path:`/queues`,element:(0,K.jsx)(ha,{})}),(0,K.jsx)(u,{path:`/queues-classic`,element:(0,K.jsx)(ja,{})}),(0,K.jsx)(u,{path:`/queues/:name`,element:(0,K.jsx)(ma,{})}),(0,K.jsx)(u,{path:`/queues-classic/:name`,element:(0,K.jsx)(Aa,{})}),(0,K.jsx)(u,{path:`/jobs`,element:(0,K.jsx)(la,{})}),(0,K.jsx)(u,{path:`/jobs-classic`,element:(0,K.jsx)(Ea,{})}),(0,K.jsx)(u,{path:`/dlq`,element:(0,K.jsx)(oa,{})}),(0,K.jsx)(u,{path:`/dlq-classic`,element:(0,K.jsx)(Ta,{})}),(0,K.jsx)(u,{path:`/cron`,element:(0,K.jsx)(na,{})}),(0,K.jsx)(u,{path:`/cron-classic`,element:(0,K.jsx)(wa,{})}),(0,K.jsx)(u,{path:`/flows`,element:(0,K.jsx)(sa,{})}),(0,K.jsx)(u,{path:`/workflows`,element:(0,K.jsx)(xa,{})}),(0,K.jsx)(u,{path:`/workflows/executions`,element:(0,K.jsx)(xa,{})}),(0,K.jsx)(u,{path:`/workflows/waiting`,element:(0,K.jsx)(xa,{})}),(0,K.jsx)(u,{path:`/workflows/compensation`,element:(0,K.jsx)(xa,{})}),(0,K.jsx)(u,{path:`/workflows/archive`,element:(0,K.jsx)(xa,{})}),(0,K.jsx)(u,{path:`/metrics`,element:(0,K.jsx)(fa,{})}),(0,K.jsx)(u,{path:`/metrics-classic`,element:(0,K.jsx)(Oa,{})}),(0,K.jsx)(u,{path:`/workers`,element:(0,K.jsx)(ba,{})}),(0,K.jsx)(u,{path:`/workers-classic`,element:(0,K.jsx)(Fa,{})}),(0,K.jsx)(u,{path:`/logs`,element:(0,K.jsx)(ua,{})}),(0,K.jsx)(u,{path:`/logs-classic`,element:(0,K.jsx)(Da,{})}),(0,K.jsx)(u,{path:`/server`,element:(0,K.jsx)(_a,{})}),(0,K.jsx)(u,{path:`/add-job`,element:(0,K.jsx)($i,{})}),(0,K.jsx)(u,{path:`/jobs/bulk-add`,element:(0,K.jsx)(ta,{})}),(0,K.jsx)(u,{path:`/job`,element:(0,K.jsx)(ca,{})}),(0,K.jsx)(u,{path:`/queue-control`,element:(0,K.jsx)(pa,{})}),(0,K.jsx)(u,{path:`/cron-manager`,element:(0,K.jsx)(t,{to:`/cron`,replace:!0})}),(0,K.jsx)(u,{path:`/dlq-control`,element:(0,K.jsx)(aa,{})}),(0,K.jsx)(u,{path:`/webhooks`,element:(0,K.jsx)(ya,{})}),(0,K.jsx)(u,{path:`/diagnostics`,element:(0,K.jsx)(ia,{})}),(0,K.jsx)(u,{path:`/alerts`,element:(0,K.jsx)(Sa,{})}),(0,K.jsx)(u,{path:`/benchmark`,element:(0,K.jsx)(ea,{})}),(0,K.jsx)(u,{path:`/database`,element:(0,K.jsx)(ra,{})}),(0,K.jsx)(u,{path:`/mcp`,element:(0,K.jsx)(da,{})}),(0,K.jsx)(u,{path:`/usage`,element:(0,K.jsx)(va,{})}),(0,K.jsx)(u,{path:`/usage-classic`,element:(0,K.jsx)(Pa,{})}),(0,K.jsx)(u,{path:`/s3`,element:(0,K.jsx)(ga,{})}),(0,K.jsx)(u,{path:`/s3-classic`,element:(0,K.jsx)(Ma,{})}),(0,K.jsx)(u,{path:`/settings`,element:(0,K.jsx)(Na,{})}),(0,K.jsx)(u,{path:`*`,element:(0,K.jsx)(Qi,{})})]})})}var La=new WeakMap;function Ra(e,t){let n=document.createElement(`div`);n.setAttribute(`role`,`alert`),n.style.cssText=`padding:2rem;font:14px/1.6 system-ui,sans-serif;max-width:44rem;margin:auto`;let r=document.createElement(`h1`);r.style.cssText=`font-size:1.1rem;font-weight:600;margin-bottom:.5rem`,r.textContent=`Demo data failed to load`;let i=document.createElement(`p`);i.textContent=`This build serves canned data from a bundled chunk that could not be fetched, so there is no backend to talk to. Reload the page (a hard refresh clears a stale cached index.html).`;let a=document.createElement(`p`);a.style.cssText=`margin-top:.75rem;opacity:.7;font-family:ui-monospace,monospace`,a.textContent=t instanceof Error?t.message:String(t),n.append(r,i,a),e.replaceChildren(n)}function za({root:e,demo:t,loadDemo:n,render:r,reportError:i=e=>console.error(`[demo] failed to load the demo backend`,e)}){let a=La.get(e);if(a)return a===!0?void 0:a;if(!t){La.set(e,!0);try{r()}catch(t){throw La.delete(e),t}return}let o=Promise.resolve().then(async()=>{let t;try{t=await n(),t.installDemo()}catch(t){try{i(t)}catch{}Ra(e,t);return}r()});return La.set(e,o),o}Zn();var Ba=document.getElementById(`root`);if(!Ba)throw Error(`Root element #root not found`);function Va(){(0,De.createRoot)(Ba).render((0,K.jsx)(k.StrictMode,{children:(0,K.jsx)(o,{basename:v(w(`__BUNQUEUE_BASE_PATH__`),`./`),children:(0,K.jsx)(Ia,{})})}))}za({root:Ba,demo:ar(),loadDemo:()=>Z(()=>import(`./install-hFu5e6YM.js`),__vite__mapDeps([59,32]),import.meta.url),render:Va});export{Hn as A,A as B,Hr as C,Qn as D,rr as E,Dn as F,at as G,N as H,H as I,Xe as J,lt as K,Kt as L,Rn as M,W as N,$n as O,Nn as P,on as R,Gr as S,ar as T,j as U,ct as V,ot as W,Jr as _,yi as a,Yr as b,bi as c,hi as d,vi as f,ci as g,Q as h,Ci as i,G as j,J as k,$ as l,Si as m,Di as n,mi as o,_i as p,Ze as q,pi as r,gi as s,Ki as t,fi as u,Xr as v,Ur as w,Wr as x,qr as y,mt as z};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{t as e}from"./package-Bb3FkjoS.js";var t=e=>({ok:!0,result:e});function n(e,n){let r=e[1];return n===`GET`&&r===`status`?t({success:!0,message:`Backup configuration loaded`,data:{enabled:!0,bucket:`bunqueue-demo-backups`,endpoint:`https://s3.example.com`,interval:`6h`,retention:`30d`}}):n===`GET`&&r===`list`?t({success:!0,message:`Backups listed`,data:[{key:`backups/bunqueue-2026-08-04.db`,size:`2.6 MB`,date:`2026-08-04T10:00:00Z`},{key:`backups/bunqueue-2026-08-03.db`,size:`2.5 MB`,date:`2026-08-03T10:00:00Z`}]}):n===`POST`&&r===`configure`?t({configured:!0,enabled:!0}):n===`POST`&&r===`now`?t({success:!0,message:`Demo backup completed`,data:{key:`backups/bunqueue-demo-now.db`}}):n===`POST`&&r===`restore`?t({success:!0,message:`Demo backup restored`}):{ok:!1,error:`Demo backup route not found`}}var r={command:`bunx bunqueue@${e.dependencies.bunqueue} start`,httpPort:6790,tcpPort:6791,dataPath:`./data/bunqueue.db`,extraEnv:{LOG_LEVEL:`info`}},i=()=>({status:`running`,generation:1,configRevision:1,pid:42317,startedAt:Date.now()-36e5,exitCode:null,healthy:!0,version:e.dependencies.bunqueue,config:r,runningConfig:r,db:{path:r.dataPath,exists:!0,size:2621440,walSize:49152,shmSize:32768,totalSize:2703360,mtimeMs:Date.now()-12e3}}),a=()=>{let e=Date.now();return{ok:!0,data:{workers:[{id:`wrk-9f21c3d0`,name:`worker-emails-1`,queues:[`emails`,`notifications`],concurrency:10,hostname:`worker-01`,pid:3411,status:`active`,registeredAt:e-54e5,lastSeen:e-4e3,activeJobs:0,processedJobs:1284,failedJobs:6,currentJob:null,uptime:54e5},{id:`wrk-4b77aa19`,name:`worker-media-1`,queues:[`image-processing`],concurrency:4,hostname:`worker-02`,pid:3987,status:`active`,registeredAt:e-51e5,lastSeen:e-2e3,activeJobs:2,processedJobs:342,failedJobs:1,currentJob:`019f252b-8769-7000-bc44-cfc168232f53`,uptime:51e5},{id:`wrk-c05e881f`,name:`worker-batch-1`,queues:[`reports`],concurrency:2,hostname:`worker-02`,pid:4102,status:`stale`,registeredAt:e-9e6,lastSeen:e-12e5,activeJobs:0,processedJobs:57,failedJobs:0,currentJob:null,uptime:78e5}],stats:{total:3,active:2,totalProcessed:1683,totalFailed:7,activeJobs:2}}}},o=()=>{let t=Date.now(),n=(e,n,r,i)=>({seq:e,ts:t-n,stream:r,line:i});return{lines:[n(1,8e3,`sys`,`starting: ${r.command}`),n(2,7800,`stdout`,`bunqueue v${e.dependencies.bunqueue} — HTTP :6790, TCP :6791`),n(3,7600,`stdout`,`SQLite ready (WAL) at ./data/bunqueue.db`),n(4,5e3,`stdout`,`worker registered: image-processing`),n(5,1200,`stdout`,`health ok — 4 queues, 34 jobs`)]}},s={ok:!0,sqliteVersion:`3.45.1`,pageSize:4096,pageCount:640,journalMode:`wal`,freelistPages:8,tables:6,indexes:11,fileSize:2621440,walSize:49152},c={jobs:{columns:[`id`,`queue`,`state`,`priority`,`attempts`,`created_at`],types:{id:`TEXT`,queue:`TEXT`,state:`TEXT`,priority:`INTEGER`,attempts:`INTEGER`,created_at:`INTEGER`},rows:[[`019f252b-86c0-7000-a54e-3816c968ebf0`,`emails`,`prioritized`,1,0,1783035037376],[`019f252b-8769-7000-bc44-cfc168232f53`,`image-processing`,`active`,0,0,1783035037545],[`019f252b-86da-7000-a9e3-6b1b74944d70`,`emails`,`completed`,3,0,1783035037402],[`019f252b-8716-7000-bbec-d8c65e09f340`,`emails`,`failed`,3,0,1783035037462],[`019f252b-87d8-7000-8f0c-e8ca5fec7d18`,`reports`,`delayed`,0,0,1783035037656]]},queues:{columns:[`name`,`paused`,`concurrency`,`rate_limit`],types:{name:`TEXT`,paused:`INTEGER`,concurrency:`INTEGER`,rate_limit:`INTEGER`},rows:[[`emails`,0,10,0],[`image-processing`,0,4,100],[`reports`,0,2,0],[`notifications`,0,8,0]]},dlq:{columns:[`id`,`queue`,`reason`,`attempts`,`entered_at`],types:{id:`TEXT`,queue:`TEXT`,reason:`TEXT`,attempts:`INTEGER`,entered_at:`INTEGER`},rows:[[`019f252b-8716-7000-bbec-d8c65e09f340`,`emails`,`max attempts reached`,3,1783035037462],[`019f252b-8a02-7000-9b21-4c1f0b7e2a55`,`reports`,`handler threw`,5,1783035039101]]},crons:{columns:[`name`,`queue`,`pattern`,`tz`,`next_run`],types:{name:`TEXT`,queue:`TEXT`,pattern:`TEXT`,tz:`TEXT`,next_run:`INTEGER`},rows:[[`nightly-report`,`reports`,`0 2 * * *`,`UTC`,17830944e5],[`digest-email`,`emails`,`*/15 * * * *`,`UTC`,17830359e5]]},webhooks:{columns:[`id`,`url`,`events`,`active`,`failures`,`created_at`],types:{id:`TEXT`,url:`TEXT`,events:`TEXT`,active:`INTEGER`,failures:`INTEGER`,created_at:`INTEGER`},rows:[[`wh_9c31`,`https://hooks.example.com/bunqueue`,`job:completed,job:failed`,1,0,1783034e6]]},job_results:{columns:[`job_id`,`result`,`stored_at`],types:{job_id:`TEXT`,result:`TEXT`,stored_at:`INTEGER`},rows:[[`019f252b-86da-7000-a9e3-6b1b74944d70`,`{"messageId":"smtp-7712"}`,1783035037999],[`019f252b-8769-7000-bc44-cfc168232f53`,`{"bytes":184320}`,1783035038220],[`019f252b-87d8-7000-8f0c-e8ca5fec7d18`,`{"rows":128}`,1783035038511],[`019f252b-8a02-7000-9b21-4c1f0b7e2a55`,`{"error":"handler threw"}`,1783035039300],[`demo-csv-formula`,`=SUM(1,2)`,1783035039400]]}};function l(e){return Object.hasOwn(c,e)?c[e]:void 0}var u={ok:!0,tables:Object.entries(c).map(([e,t])=>({name:e,rows:t.rows.length,columns:t.columns.length}))};function d(e){let t=l(e),n=t?.columns??[`id`,`data`],r=t?.types??{};return{ok:!0,table:e,columns:n.map((e,t)=>({name:e,type:r[e]??`TEXT`,notNull:t===0,defaultValue:null,primaryKey:t===0})),indexes:[{name:`idx_${e}_${n[0]}`,unique:!0,columns:[n[0]]}],sql:`CREATE TABLE ${e} (${n.map(e=>`${e} ${r[e]??`TEXT`}`).join(`, `)})`,rowCount:t?.rows.length??0}}var f=e=>e.replace(/[A-Z]/g,e=>e.toLowerCase());function p(e,t,n=!1){let r=l(e);if(n&&!r)throw Error(`No such table: ${e}`);let i=r?.columns??[`id`,`data`],a=r?.rows??[],o=new URLSearchParams(t);if(n){let e=new Set([`orderBy`,`dir`,`fcol`,`fop`,`fval`]);for(let t of o.keys()){if(!e.has(t))throw Error(`Unknown database export option: ${t}`);if(o.getAll(t).length!==1)throw Error(`Duplicate database export option: ${t}`)}}let s=o.get(`orderBy`);if(n&&s===``)throw Error(`Database export orderBy must not be empty`);let c=s||null,u=o.get(`dir`);if(n&&u!==null&&u!==`asc`&&u!==`desc`)throw Error(`Database export dir must be "asc" or "desc"`);let d=u===`desc`?`desc`:`asc`,p=o.get(`fcol`),m=o.get(`fop`),h=o.get(`fval`);if(n&&(p!==null||m!==null||h!==null)&&(!p||!h||m!==`contains`&&m!==`eq`&&m!==`ne`))throw Error(`Database export filter requires valid fcol, fop and fval values`);let g=p&&h?{column:p,op:m===`eq`?`eq`:m===`ne`?`ne`:`contains`,value:h}:null,_=g?i.indexOf(g.column):-1;if(g&&_<0&&n)throw Error(`No such column: ${g.column}`);let v=g&&_>=0?a.filter(e=>{let t=e[_];if(t==null)return!1;let n=String(t);return g.op===`eq`?n===g.value:g.op===`ne`?n!==g.value:f(n).includes(f(g.value))}):a,y=c?i.indexOf(c):-1;if(c&&y<0&&n)throw Error(`No such column: ${c}`);return{table:e,columns:i,rows:y>=0?[...v].sort((e,t)=>{let n=e[y],r=t[y],i=n==null?r==null?0:-1:r==null?1:n<r?-1:+(n>r);return d===`desc`?-i:i}):v,orderBy:y>=0?c:null,dir:d,filter:_>=0?g:null}}function m(e,t){let n=p(e,t),r=new URLSearchParams(t),i=(e,t)=>{let n=Number(e);return e!==null&&Number.isFinite(n)&&n>=0?n:t},a=i(r.get(`limit`),50),o=i(r.get(`offset`),0),s=n.rows.slice(o,o+(a>0?a:n.rows.length));return{ok:!0,table:e,columns:n.columns,rows:s,rowids:s.map((e,t)=>o+t+1),truncatedCells:s.map(e=>e.map(()=>!1)),total:n.rows.length,limit:a,offset:o,orderBy:n.orderBy,dir:n.dir,filter:n.filter}}var h=2e5,g=16777216,_=2e3,v=2e3;function y(e){let t,n=!1;if(e==null)t=``;else if(typeof e==`string`)t=new TextEncoder().encode(e).byteLength>_?`${[...e].slice(0,v).join(``)}…`:e,n=!0;else if(typeof e==`number`||typeof e==`bigint`||typeof e==`boolean`)t=String(e);else if(e instanceof Uint8Array)t=`<blob ${e.byteLength} B>`,n=!0;else throw Error(`Database export produced an unsupported SQLite value`);let r=n&&/^[=+\-@\t\r]/.test(t)?`'${t}`:t;return/[",\r\n]/.test(r)?`"${r.replaceAll(`"`,`""`)}"`:r}function ee(e,t){try{let n=p(e,t,!0),r=new TextEncoder,i=[],a=0,o=0,s=null,c=e=>{let t=r.encode(e);return a+t.byteLength>g?!1:(i.push(t),a+=t.byteLength,!0)};if(!c(n.columns.map(y).join(`,`)))throw Error(`Database export header exceeds the ${g}-byte export limit`);for(let e of n.rows){if(o>=h){s=`rows`;break}if(!c(`\r\n${e.map(y).join(`,`)}`)){s=`bytes`;break}o++}let l=new Uint8Array(a),u=0;for(let e of i)l.set(e,u),u+=e.byteLength;return new Response(l,{status:200,headers:{"Content-Type":`text/csv; charset=utf-8`,"Content-Length":String(a),"Cache-Control":`no-store`,"X-Content-Type-Options":`nosniff`,"X-Bunqueue-Db-Export-Version":`1`,"X-Bunqueue-Db-Export-Table":encodeURIComponent(n.table),"X-Bunqueue-Db-Export-Rows":String(o),"X-Bunqueue-Db-Export-Bytes":String(a),"X-Bunqueue-Db-Export-Cap":s??`none`,"Access-Control-Expose-Headers":`Content-Length, X-Bunqueue-Db-Export-Version, X-Bunqueue-Db-Export-Table, X-Bunqueue-Db-Export-Rows, X-Bunqueue-Db-Export-Bytes, X-Bunqueue-Db-Export-Cap`}})}catch(e){return new Response(JSON.stringify({ok:!1,error:e instanceof Error?e.message:String(e)}),{status:400,headers:{"Content-Type":`application/json`}})}}var b={"flow-order-9a3f":{id:`flow-order-9a3f`,queue:`orders`,data:{name:`process-order`,orderId:`demo-9a3f`,__childrenIds:[`flow-charge-1`,`flow-ship-2`,`flow-notify-3`]},state:`waiting-children`,priority:1,parentId:null,childrenIds:[`flow-charge-1`,`flow-ship-2`,`flow-notify-3`],dependsOn:[`flow-charge-1`,`flow-ship-2`,`flow-notify-3`]},"flow-charge-1":{id:`flow-charge-1`,queue:`payments`,data:{name:`charge-payment`,__parentId:`flow-order-9a3f`,__parentQueue:`orders`},state:`completed`,priority:2,parentId:`flow-order-9a3f`,childrenIds:[],dependsOn:[]},"flow-ship-2":{id:`flow-ship-2`,queue:`shipping`,data:{name:`ship-order`,__parentId:`flow-order-9a3f`,__parentQueue:`orders`,__childrenIds:[`flow-label-4`]},state:`waiting-children`,priority:1,parentId:`flow-order-9a3f`,childrenIds:[`flow-label-4`],dependsOn:[`flow-label-4`]},"flow-label-4":{id:`flow-label-4`,queue:`shipping`,data:{name:`create-label`,__parentId:`flow-ship-2`,__parentQueue:`shipping`},state:`waiting`,priority:0,parentId:`flow-ship-2`,childrenIds:[],dependsOn:[]},"flow-notify-3":{id:`flow-notify-3`,queue:`emails`,data:{name:`notify-customer`,__parentId:`flow-order-9a3f`,__parentQueue:`orders`},state:`delayed`,priority:0,parentId:`flow-order-9a3f`,childrenIds:[],dependsOn:[`flow-charge-1`]}},x={id:`flow-order-9a3f`,name:`process-order`,queueName:`orders`,state:`waiting-children`,children:[{id:`flow-charge-1`,name:`charge-payment`,queueName:`payments`,state:`completed`,children:[]},{id:`flow-ship-2`,name:`ship-order`,queueName:`shipping`,state:`waiting-children`,children:[{id:`flow-label-4`,name:`create-label`,queueName:`shipping`,state:`waiting`,children:[]}]},{id:`flow-notify-3`,name:`notify-customer`,queueName:`emails`,state:`delayed`,children:[]}]};function S(e,t,n=``){return e[1]===`results`?{ok:!0,result:{operation:`getParentResults`,entries:[[`flow-demo-child`,{rows:42}],[`flow-demo-zero`,0]]}}:e[1]===`tree`?{ok:!0,result:{flow:C(n)}}:e[1]===`create`?{ok:!0,result:{operation:`add`,root:{id:`flow-demo-created`,name:`aggregate`,queueName:`reports`,state:`waiting-children`,children:[]}}}:t===`GET`?{ok:!0,result:{values:{},dependencies:{processed:{},unprocessed:[`flow-demo-child`]},counts:{processed:0,unprocessed:1}}}:{ok:!0,result:{applied:!0,removed:!0}}}function C(e){let t=new URLSearchParams(e),n=w(t.get(`depth`),500),r=w(t.get(`maxChildren`),500),i=(e,t)=>({...e,children:t>=n?[]:e.children.slice(0,r).map(e=>i(e,t+1))});return i(x,0)}function w(e,t){return e===null||!/^\d+$/.test(e)?t:Math.min(Number(e),500)}var T={health:{ok:!0,status:`healthy`,uptime:133,version:`2.9.20`,queues:{waiting:13,active:2,delayed:6,completed:4,dlq:2},connections:{tcp:0,ws:0,sse:0},memory:{heapUsed:3,heapTotal:4,rss:68}},ping:{ok:!0,data:{pong:!0,time:1783035131368}},stats:{ok:!0,stats:{waiting:13,prioritized:7,delayed:6,active:2,dlq:2,completed:4,"waiting-children":0,totalPushed:34,totalPulled:8,totalCompleted:4,totalFailed:0,uptime:133882,cronJobs:2,cronPending:2,pushPerSec:.25,pullPerSec:.06,completePerSec:.03,failPerSec:0},memory:{heapUsed:3,heapTotal:4,rss:69,external:1,arrayBuffers:0},collections:{jobIndex:34,completedJobs:4,jobResults:0,jobLogs:0,customIdMap:0,jobLocks:0,clientJobs:0,clientJobsTotal:0,pendingDepChecks:0,stalledCandidates:0,processingTotal:2,queuedTotal:26,waitingDepsTotal:0,temporalIndexTotal:34,delayedHeapTotal:6}},storage:{ok:!0,data:{diskFull:!1,error:null,since:null}},dashboard:{ok:!0,stats:{waiting:13,active:2,delayed:6,completed:4,dlq:2,totalPushed:34,totalPulled:8,totalCompleted:4,totalFailed:0,uptime:133882},throughput:{pushPerSec:.25,pullPerSec:.06,completePerSec:.03,failPerSec:0},latency:{averages:{pushMs:.07645341176470588,pullMs:.3890205,ackMs:1.03645825},percentiles:{push:{p50:.1,p95:.5,p99:1},pull:{p50:.1,p95:1,p99:1},ack:{p50:2.5,p95:2.5,p99:2.5}}},memory:{heapUsed:3,heapTotal:4,rss:70},collections:{jobIndex:34,completedJobs:4,jobResults:0,jobLogs:0,customIdMap:0,jobLocks:0,clientJobs:0,clientJobsTotal:0,pendingDepChecks:0,stalledCandidates:0,processingTotal:2,queuedTotal:26,waitingDepsTotal:0,temporalIndexTotal:34,delayedHeapTotal:6},workers:{total:0,active:0,list:[],truncated:!1},crons:{total:2,list:[{name:`nightly-report`,jobName:`generate-report`,queue:`reports`,schedule:`0 2 * * *`,repeatEvery:null,nextRun:17830368e5,executions:0},{name:`heartbeat`,jobName:`send-heartbeat`,queue:`notifications`,schedule:null,repeatEvery:6e4,nextRun:1783035191362,executions:0}],truncated:!1},storage:{diskFull:!1,error:null,since:null},timestamp:1783035131369},dashboardQueues:{ok:!0,queues:[{name:`emails`,waiting:2,delayed:0,active:0,dlq:2,paused:!1},{name:`image-processing`,waiting:7,delayed:0,active:2,dlq:0,paused:!1},{name:`reports`,waiting:0,delayed:6,active:0,dlq:0,paused:!1},{name:`notifications`,waiting:4,delayed:0,active:0,dlq:0,paused:!1}],total:4,limit:100,offset:0,timestamp:1783035131370},queuesSummary:[{name:`emails`,paused:!1,counts:{waiting:2,prioritized:7,active:0,completed:4,failed:2,delayed:0}},{name:`image-processing`,paused:!1,counts:{waiting:7,prioritized:0,active:2,completed:0,failed:0,delayed:0}},{name:`reports`,paused:!1,counts:{waiting:0,prioritized:0,active:0,completed:0,failed:0,delayed:6}},{name:`notifications`,paused:!1,counts:{waiting:4,prioritized:0,active:0,completed:0,failed:0,delayed:0}}],crons:{ok:!0,crons:[{name:`nightly-report`,jobName:`generate-report`,queue:`reports`,schedule:`0 2 * * *`,repeatEvery:null,nextRun:17830368e5,executions:0,maxLimit:null,timezone:null},{name:`heartbeat`,jobName:`send-heartbeat`,queue:`notifications`,schedule:null,repeatEvery:6e4,nextRun:1783035191362,executions:0,maxLimit:null,timezone:null}]},webhooks:{ok:!0,data:{webhooks:[{id:`019f252c-f5e3-7000-883c-28cc5dc157a0`,url:`https://hooks.example.com/bunqueue`,events:[`job.completed`,`job.failed`],queue:null,createdAt:1783035131363,lastTriggered:178303512e4,successCount:42,failureCount:3,enabled:!0}],stats:{total:1,enabled:1}}},workers:{ok:!0,data:{workers:[],stats:{total:0,active:0,totalProcessed:0,totalFailed:0,activeJobs:0}}},dlqStats:{ok:!0,total:2,byQueue:{emails:2}},counts_emails:{ok:!0,counts:{waiting:2,prioritized:7,delayed:0,active:0,completed:4,failed:2,"waiting-children":0,paused:0}},dlq_emails:{ok:!0,entries:[{job:{id:`019f252b-8716-7000-bbec-d8c65e09f340`,queue:`emails`,data:{to:`user8@example.com`,subject:`Welcome 8`},createdAt:1783035037462,runAt:1783035037462,startedAt:1783035131364,completedAt:null,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035131364,stallCount:0,priority:3,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037462},{state:`active`,timestamp:1783035131364}]},enteredAt:1783035131367,reason:`timeout`,error:`Job exceeded its 30000 ms timeout while connecting to smtp.example.com`,attempts:[{attempt:0,startedAt:1783035131364,failedAt:1783035131367,reason:`timeout`,error:`Job exceeded its 30000 ms timeout while connecting to smtp.example.com`,duration:3}],retryCount:0,lastRetryAt:null,nextRetryAt:null,expiresAt:1783639931367},{job:{id:`019f252b-8750-7000-afa1-767720d8f433`,queue:`emails`,data:{to:`user13@example.com`,subject:`Welcome 13`},createdAt:1783035037520,runAt:1783035037520,startedAt:1783035131364,completedAt:null,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035131364,stallCount:0,priority:3,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037520},{state:`active`,timestamp:1783035131364}]},enteredAt:1783035131368,reason:`max_attempts`,error:`SMTP 550: mailbox unavailable (user13@example.com) — 3 of 3 attempts failed`,attempts:[{attempt:0,startedAt:1783035131364,failedAt:1783035131368,reason:`max_attempts`,error:`SMTP 550: mailbox unavailable (user13@example.com) — 3 of 3 attempts failed`,duration:4}],retryCount:0,lastRetryAt:null,nextRetryAt:null,expiresAt:1783639931368}],total:2},detail_emails:{ok:!0,name:`emails`,counts:{waiting:2,prioritized:7,delayed:0,active:0,completed:4,failed:2,"waiting-children":0,totalCompleted:4,totalFailed:0,paused:0},paused:!1,priorityCounts:{0:2,1:3,2:4},dlqPreview:[{id:`019f252b-8716-7000-bbec-d8c65e09f340`,data:{to:`user8@example.com`,subject:`Welcome 8`},attempts:0,createdAt:1783035037462},{id:`019f252b-8750-7000-afa1-767720d8f433`,data:{to:`user13@example.com`,subject:`Welcome 13`},attempts:0,createdAt:1783035037520}],timestamp:1783035131373,jobs:{waiting:[{id:`019f252b-86f2-7000-a45d-6e5e3dd4abf0`,priority:0,createdAt:1783035037426,runAt:1783035037426,attempts:0,progress:0},{id:`019f252b-872e-7000-91af-f820da905a23`,priority:0,createdAt:1783035037486,runAt:1783035037486,attempts:0,progress:0}],active:[],delayed:[],paused:[]}},"counts_image-processing":{ok:!0,counts:{waiting:7,prioritized:0,delayed:0,active:2,completed:0,failed:0,"waiting-children":0,paused:0}},"dlq_image-processing":{ok:!0,entries:[],total:0},"detail_image-processing":{ok:!0,name:`image-processing`,counts:{waiting:7,prioritized:0,delayed:0,active:2,completed:0,failed:0,"waiting-children":0,totalCompleted:0,totalFailed:0,paused:0},paused:!1,priorityCounts:{0:7},dlqPreview:[],timestamp:1783035131374,jobs:{waiting:[{id:`019f252b-8780-7000-9066-7f3a95bbb309`,priority:0,createdAt:1783035037568,runAt:1783035037568,attempts:0,progress:0},{id:`019f252b-878d-7000-9396-88a9de934b0c`,priority:0,createdAt:1783035037581,runAt:1783035037581,attempts:0,progress:0},{id:`019f252b-8799-7000-8433-2f4d874dfa3f`,priority:0,createdAt:1783035037593,runAt:1783035037593,attempts:0,progress:0},{id:`019f252b-87a5-7000-b3d2-48c6816be571`,priority:0,createdAt:1783035037605,runAt:1783035037605,attempts:0,progress:0}],active:[{id:`019f252b-8769-7000-bc44-cfc168232f53`,priority:0,createdAt:1783035037545,runAt:1783035037545,attempts:0,progress:0},{id:`019f252b-8775-7000-884a-63456175f48c`,priority:0,createdAt:1783035037557,runAt:1783035037557,attempts:0,progress:0}],delayed:[],paused:[]}},counts_reports:{ok:!0,counts:{waiting:0,prioritized:0,delayed:6,active:0,completed:0,failed:0,"waiting-children":0,paused:0}},dlq_reports:{ok:!0,entries:[],total:0},detail_reports:{ok:!0,name:`reports`,counts:{waiting:0,prioritized:0,delayed:6,active:0,completed:0,failed:0,"waiting-children":0,totalCompleted:0,totalFailed:0,paused:0},paused:!1,priorityCounts:{0:6},dlqPreview:[],timestamp:1783035131374,jobs:{waiting:[],active:[],delayed:[{id:`019f252b-87d8-7000-8f0c-e8ca5fec7d18`,priority:0,createdAt:1783035037656,runAt:1783035637656,attempts:0,progress:0},{id:`019f252b-87e3-7000-b0dc-18aac125e1ce`,priority:0,createdAt:1783035037667,runAt:1783035637667,attempts:0,progress:0},{id:`019f252b-87ee-7000-bb98-e9997d218441`,priority:0,createdAt:1783035037678,runAt:1783035637678,attempts:0,progress:0},{id:`019f252b-87fa-7000-9eb8-5b7a6d7aa7b4`,priority:0,createdAt:1783035037690,runAt:1783035637690,attempts:0,progress:0}],paused:[]}},counts_notifications:{ok:!0,counts:{waiting:4,prioritized:0,delayed:0,active:0,completed:0,failed:0,"waiting-children":0,paused:0}},dlq_notifications:{ok:!0,entries:[],total:0},detail_notifications:{ok:!0,name:`notifications`,counts:{waiting:4,prioritized:0,delayed:0,active:0,completed:0,failed:0,"waiting-children":0,totalCompleted:0,totalFailed:0,paused:0},paused:!1,priorityCounts:{0:4},dlqPreview:[],timestamp:1783035131375,jobs:{waiting:[{id:`019f252b-8823-7000-9455-de9cff6a56e2`,priority:0,createdAt:1783035037731,runAt:1783035037731,attempts:0,progress:0},{id:`019f252b-882e-7000-ae38-9c7fe01639d5`,priority:0,createdAt:1783035037742,runAt:1783035037742,attempts:0,progress:0},{id:`019f252b-883b-7000-8789-839b741a1011`,priority:0,createdAt:1783035037755,runAt:1783035037755,attempts:0,progress:0},{id:`019f252b-884d-7000-b703-96a357151ef4`,priority:0,createdAt:1783035037773,runAt:1783035037773,attempts:0,progress:0}],active:[],delayed:[],paused:[]}},emailsWaiting:{ok:!0,jobs:[{id:`019f252b-86c0-7000-a54e-3816c968ebf0`,queue:`emails`,data:{to:`user1@example.com`,subject:`Welcome 1`},createdAt:1783035037376,runAt:1783035037376,startedAt:null,completedAt:null,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035037376,stallCount:0,priority:1,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037376}],_state:`prioritized`,state:`prioritized`},{id:`019f252b-86ce-7000-adfc-613a9495a6ef`,queue:`emails`,data:{to:`user2@example.com`,subject:`Welcome 2`},createdAt:1783035037390,runAt:1783035037390,startedAt:null,completedAt:null,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035037390,stallCount:0,priority:2,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037390}],_state:`prioritized`,state:`prioritized`},{id:`019f252b-86fe-7000-894d-fe3ad935cc36`,queue:`emails`,data:{to:`user6@example.com`,subject:`Welcome 6`},createdAt:1783035037438,runAt:1783035037438,startedAt:null,completedAt:null,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035037438,stallCount:0,priority:1,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037438}],_state:`prioritized`,state:`prioritized`},{id:`019f252b-870a-7000-91d2-ca4070505abe`,queue:`emails`,data:{to:`user7@example.com`,subject:`Welcome 7`},createdAt:1783035037450,runAt:1783035037450,startedAt:null,completedAt:null,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035037450,stallCount:0,priority:2,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037450}],_state:`prioritized`,state:`prioritized`}]},emailsCompleted:{ok:!0,jobs:[{id:`019f252b-86da-7000-a9e3-6b1b74944d70`,queue:`emails`,data:{to:`user3@example.com`,subject:`Welcome 3`},createdAt:1783035037402,runAt:1783035037402,startedAt:1783035131364,completedAt:1783035131367,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035131364,stallCount:0,priority:3,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037402},{state:`active`,timestamp:1783035131364},{state:`completed`,timestamp:1783035131367}],_state:`completed`,state:`completed`},{id:`019f252b-86e6-7000-a51e-e65a7cd2ce85`,queue:`emails`,data:{to:`user4@example.com`,subject:`Welcome 4`},createdAt:1783035037414,runAt:1783035037414,startedAt:1783035131364,completedAt:1783035131366,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035131364,stallCount:0,priority:4,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037414},{state:`active`,timestamp:1783035131364},{state:`completed`,timestamp:1783035131366}],_state:`completed`,state:`completed`},{id:`019f252b-8722-7000-9270-14be63598def`,queue:`emails`,data:{to:`user9@example.com`,subject:`Welcome 9`},createdAt:1783035037474,runAt:1783035037474,startedAt:1783035131364,completedAt:1783035131366,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035131364,stallCount:0,priority:4,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037474},{state:`active`,timestamp:1783035131364},{state:`completed`,timestamp:1783035131366}],_state:`completed`,state:`completed`},{id:`019f252b-875b-7000-8f4b-3d571d84663d`,queue:`emails`,data:{to:`user14@example.com`,subject:`Welcome 14`},createdAt:1783035037531,runAt:1783035037531,startedAt:1783035131364,completedAt:1783035131367,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035131364,stallCount:0,priority:4,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037531},{state:`active`,timestamp:1783035131364},{state:`completed`,timestamp:1783035131367}],_state:`completed`,state:`completed`}]},oneJob:{ok:!0,job:{id:`019f252b-8716-7000-bbec-d8c65e09f340`,queue:`emails`,data:{to:`user8@example.com`,subject:`Welcome 8`},createdAt:1783035037462,runAt:1783035037462,startedAt:1783035131364,completedAt:null,attempts:0,backoff:1e3,backoffConfig:null,dependsOn:[],childrenIds:[],childrenCompleted:0,tags:[],progress:0,progressMessage:null,stacktrace:null,repeat:null,lastHeartbeat:1783035131364,stallCount:0,priority:3,lifo:!1,maxAttempts:3,removeOnComplete:!1,removeOnFail:!1,ttl:null,timeout:null,uniqueKey:null,customId:null,parentId:null,groupId:null,stallTimeout:null,stackTraceLimit:10,keepLogs:null,sizeLimit:null,failParentOnFailure:!1,removeDependencyOnFailure:!1,continueParentOnFailure:!1,ignoreDependencyOnFailure:!1,deduplicationTtl:null,deduplicationExtend:!1,deduplicationReplace:!1,debounceId:null,debounceTtl:null,timeline:[{state:`prioritized`,timestamp:1783035037462},{state:`active`,timestamp:1783035131364}],state:`failed`}}},E=e=>T[e]?.jobs??[],D=T.oneJob.job,O=[...E(`emailsWaiting`),...E(`emailsCompleted`),...D?[D]:[]],te=[`emails`,`image-processing`,`reports`,`notifications`];function k(e,t,n){let r={...e,name:typeof e.name==`string`?e.name:`${t}-job`,...e.state===`completed`&&!Object.hasOwn(e,`returnvalue`)?{returnvalue:{ok:!0}}:{},...e.state===`failed`&&!Object.hasOwn(e,`failedReason`)?{failedReason:`Demo job exhausted its retries`}:{}};return t===`emails`?r:{...r,id:`${t}-${String(e.id).slice(-12)}-${n}`,queue:t}}function A(e){if(b[e])return b[e];let t=O.find(t=>t.id===e);if(t)return k(t,`emails`,0);for(let t of te){let n=O.map((e,n)=>k(e,t,n)).find(t=>t.id===e);if(n)return n}return{...D??{queue:`emails`,state:`failed`},id:e,customId:e.startsWith(`demo-custom:`)?e.slice(12):null}}var j=[{id:`wf-order-2026-0804`,workflowName:`order-fulfillment`,state:`running`,currentNodeIndex:3,createdAt:178583892e4,updatedAt:178583904e4,definitionHash:`sha256:8a03c8e91db4d8f5`,input:{orderId:`ord_9a3f`,customerId:`cus_417`,total:129.9},steps:{validate:{status:`completed`,attempts:1,startedAt:1785838920100,completedAt:1785838920210,result:{valid:!0}},charge:{status:`completed`,attempts:1,startedAt:1785838920300,completedAt:1785838921120,compensatable:!0,idempotencyKey:`charge:ord_9a3f`,result:{paymentId:`pay_802`}},reserveInventory:{status:`completed`,attempts:2,startedAt:1785838921200,completedAt:1785838930600,compensatable:!0,result:{reservationId:`res_551`}},ship:{status:`running`,attempts:1,startedAt:178583904e4,childExecutionId:`wf-shipping-0804`}},resolvedSteps:[`validate`,`charge`,`reserveInventory`,`ship`],signals:{},decisions:{"branch:payment":`card`}},{id:`wf-refund-2026-0803`,workflowName:`refund-order`,state:`compensation-stuck`,currentNodeIndex:4,createdAt:17857512e5,updatedAt:178575132e4,rollbackStatus:`stuck`,failureReason:`Refund provider unavailable after 3 attempts`,definitionHash:`sha256:cc89ab41c1b2f011`,input:{orderId:`ord_772`,reason:`customer_request`},steps:{loadOrder:{status:`completed`,attempts:1,result:{paymentId:`pay_331`}},revokeShipment:{status:`completed`,attempts:1,compensatable:!0,compensation:{status:`compensated`,at:1785751300100}},refundPayment:{status:`failed`,attempts:3,compensatable:!0,error:`Provider timeout`,compensation:{status:`compensation-failed`,at:178575132e4,error:`Provider unavailable`}}},resolvedSteps:[`loadOrder`,`revokeShipment`,`refundPayment`],signals:{approved:{actor:`ops@example.com`}},decisions:{"branch:refund-method":`original-payment`}},{id:`wf-signup-2026-0802`,workflowName:`customer-onboarding`,state:`waiting`,currentNodeIndex:2,createdAt:17856648e5,updatedAt:178566492e4,input:{customerId:`cus_881`,plan:`pro`},steps:{createAccount:{status:`completed`,attempts:1,result:{accountId:`acc_881`}},sendVerification:{status:`completed`,attempts:1,result:{messageId:`msg_194`}}},resolvedSteps:[`createAccount`,`sendVerification`],signals:{}}],M=[{id:`wf-month-close-2026-07`,workflowName:`month-end-close`,state:`completed`,currentNodeIndex:4,createdAt:17855784e5,updatedAt:1785578465e3,archivedAt:17856648e5,rollbackStatus:`not-applicable`,definitionHash:`sha256:78b6fd851d8b32a1`,input:{period:`2026-07`},steps:{lockPeriod:{status:`completed`,attempts:1,result:{locked:!0}},aggregate:{status:`completed`,attempts:1,result:{entries:1842}},publish:{status:`completed`,attempts:1,result:{reportId:`rep_2026_07`}}},resolvedSteps:[`lockPeriod`,`aggregate`,`publish`],signals:{},decisions:{}},{id:`wf-import-legacy-441`,workflowName:`legacy-import`,state:`failed`,currentNodeIndex:1,createdAt:1785492e6,updatedAt:1785492009e3,archivedAt:17856648e5,rollbackStatus:`not-applicable`,failureReason:`Input schema rejected row 441`,input:{batch:`legacy-2026-07`},steps:{validate:{status:`failed`,attempts:1,error:`Invalid customer reference at row 441`}},resolvedSteps:[`validate`],signals:{},decisions:{}}],ne={configured:!0,ready:!0,moduleName:`demo-workflows`,workflowNames:[`customer-onboarding`,`order-fulfillment`,`refund-order`]},N=e=>({ok:!0,result:e});function re(e,t){return e[1]===`runtime`&&(e.length===2||e[2]===`reload`)?N(ne):t===`POST`?e[1]===`start`?N({run:{id:`wf-demo-started`,workflowName:`order-fulfillment`}}):e[1]===`recover`?N({recovered:{running:1,waiting:1,compensating:0,total:2}}):e[1]===`archive`||e[1]===`cleanup`?N({affected:1}):e[2]===`signal`||e[2]===`resume-compensation`||e[2]===`abandon-compensation`?N({applied:!0}):null:null}function ie(e,t,n){let r=re(e,n);if(r)return r;if(e[1]===`stats`){let e={running:0,waiting:0,completed:0,failed:0,compensating:0,"compensation-stuck":0};for(let t of j)e[t.state]++;return{ok:!0,available:!0,activeTotal:j.length,archiveTotal:M.length,states:e,workflowNames:[...new Set([...j,...M].map(e=>String(e.workflowName)))].sort()}}let i=new URLSearchParams(t),a=i.get(`kind`)===`archive`?M:j;if(e[1]){let t=a.find(t=>t.id===decodeURIComponent(e[1]));return t?{ok:!0,execution:t}:{ok:!1,error:`Workflow execution not found`}}let o=i.get(`workflowName`),s=i.get(`state`),c=Number(i.get(`offset`)??0),l=Number(i.get(`limit`)??50),u=a.filter(e=>(!o||e.workflowName===o)&&(!s||e.state===s||s===`compensation`&&(e.state===`compensating`||e.state===`compensation-stuck`)));return{ok:!0,available:!0,executions:u.slice(c,c+l).map(({input:e,steps:t,resolvedSteps:n,signals:r,decisions:i,...a})=>a),total:u.length,limit:l,offset:c}}var ae=new Set([`events`,`health`,`healthz`,`live`,`ready`,`ping`,`stats`,`metrics`,`storage`,`dashboard`,`queues`,`queue-operations`,`jobs`,`crons`,`webhooks`,`workers`,`dlq`,`control`,`db`,`workflows`,`flows`,`backup`,`gc`,`heapstats`]);function oe(e,t){if(e[0]!==`queues`||!e[1])return null;let n=decodeURIComponent(e[1]);if(e[2]===`counts`)return T[`counts_${n}`]??{ok:!0,counts:{}};if(e[2]===`dlq`&&e[3]===`stats`)return{ok:!0,stats:n===`emails`?{total:2,byReason:{timeout:1,max_attempts:1}}:{total:0,byReason:{}}};if(e[2]===`dlq`)return T[`dlq_${n}`]??{ok:!0,entries:[],total:0};if(e[2]===`stall-config`)return{ok:!0,config:{enabled:!0,stallInterval:3e4,maxStalls:3,gracePeriod:5e3}};if(e[2]===`dlq-config`)return{ok:!0,config:{autoRetry:!1,autoRetryInterval:6e4,maxAutoRetries:3,maxAge:null,maxEntries:1e3}};if(e[2]!==`jobs`||e[3]!==`list`)return null;let r=new URLSearchParams(t),i=(r.get(`states`)??r.get(`state`)??``).split(`,`).map(e=>e.trim()).filter(Boolean),a=e=>i.length===0||i.includes(String(e))||i.includes(`waiting`)&&e===`prioritized`;return{ok:!0,jobs:O.filter(e=>a(e.state)).map((e,t)=>k(e,n,t))}}function se(e){let t=T.dashboardQueues,n=Array.isArray(t.queues)?t.queues:[],r=new URLSearchParams(e),i=Number(r.get(`limit`)??t.limit),a=Number(r.get(`offset`)??t.offset),o=Number.isSafeInteger(i)&&i>=0?i:Number(t.limit),s=Number.isSafeInteger(a)&&a>=0?a:Number(t.offset);return{...t,queues:n.slice(s,s+o),total:n.length,limit:o,offset:s}}function ce(e){if(e[0]!==`jobs`||!e[1])return null;let t=decodeURIComponent(e[1]);if(e[1]===`custom`&&e[2])return{ok:!0,job:A(`demo-custom:${decodeURIComponent(e[2])}`)};if(e[2]===`result`)return{ok:!0,id:t,result:{sent:!0,provider:`demo`}};if(e[2]===`logs`){let e=[`[info] picked up by worker-emails-1`,`[info] connecting to smtp.example.com:587`,`[error] SMTP 550: mailbox unavailable — will retry with backoff`];return{ok:!0,data:{logs:e,count:e.length}}}return e[2]?null:{ok:!0,job:A(t)}}function P(e,t){if(e[0]!==`db`)return null;if(e[1]===`info`)return s;if(e[1]===`tables`&&!e[2])return u;if(e[1]!==`tables`||!e[2])return null;let n=decodeURIComponent(e[2]);return e[3]===`schema`?d(n):e[3]===`cell`?{ok:!0,value:`demo cell value`}:m(n,t)}function F(e,t){return e===`/gc`?{ok:!0,before:{heapUsed:118,heapTotal:176,rss:214},after:{heapUsed:94,heapTotal:150,rss:181}}:e.endsWith(`/db/query`)?{ok:!0,columns:[`note`],rows:[[`This is the demo. Queries run against a static in-memory sample.`]],rowCount:1,truncated:!1,ms:.4}:e.endsWith(`/jobs`)||e.endsWith(`/jobs/bulk`)?{ok:!0,id:`demo-${t.join(`-`)}`,ids:[`demo-1`]}:{ok:!0}}function I(e,t,s){let c=e.replace(/\/+$/,``)||`/`,l=c.split(`/`).filter(Boolean);if(l[0]===`control`)return l[1]===`logs`?o():l[1]===`config`?{...r,configRevision:1}:i();if(l[0]===`workflows`)return ie(l,s,t);if(l[0]===`backup`)return n(l,t);if(l[0]===`flows`)return S(l,t,s);if(t!==`GET`)return F(c,l);if(c===`/workers`)return a();if(c===`/ready`)return{ok:!0,ready:!0};if(c===`/metrics`){let e=T.stats.stats;return{ok:!0,metrics:{totalPushed:e.totalPushed,totalPulled:e.totalPulled,totalCompleted:e.totalCompleted,totalFailed:e.totalFailed}}}if(c===`/heapstats`)return{ok:!0,memory:{heapUsed:94,heapTotal:150,rss:181},heap:{objectCount:486204,protectedCount:1284,globalCount:312},collections:{},topObjectTypes:[{type:`Structure`,count:42118},{type:`Object`,count:31064},{type:`Function`,count:18902},{type:`string`,count:12447},{type:`Array`,count:8021}]};if(c===`/dashboard/queues`)return se(s);let u={"/health":`health`,"/ping":`ping`,"/stats":`stats`,"/storage":`storage`,"/dashboard":`dashboard`,"/queues/summary":`queuesSummary`,"/crons":`crons`,"/webhooks":`webhooks`,"/dlq/stats":`dlqStats`};return u[c]?T[u[c]]:l[0]===`dashboard`&&l[1]===`queues`&&l[2]?T[`detail_${l[2]}`]??T.detail_emails:oe(l,s)??ce(l)??P(l,s)??{ok:!0}}var L=(e,t=200)=>new Response(JSON.stringify(e),{status:t,headers:{"Content-Type":`application/json`}});function R(e){let t=new TextEncoder,n=[`emails`,`image-processing`,`reports`,`notifications`],r=[`job:active`,`job:completed`,`job:completed`,`job:waiting`,`job:failed`,`job:active`],i=new ReadableStream({start(i){let a=0,o=!1,s,c=()=>{if(!o){o=!0,clearInterval(s);try{i.close()}catch{}}};i.enqueue(t.encode(`data: {"connected":true}
|
|
2
|
+
|
|
3
|
+
`)),s=setInterval(()=>{if(o)return;let e=r[a%r.length],s=n[a%n.length],l=JSON.stringify({queue:s,jobId:`demo-${a}`,name:s,timestamp:Date.now()});try{i.enqueue(t.encode(`event: ${e}\ndata: ${l}\n\n`))}catch{c()}a+=1},1400),e?.aborted?c():e?.addEventListener(`abort`,c,{once:!0})}});return new Response(i,{status:200,headers:{"Content-Type":`text/event-stream`}})}var z=8192,B=1783035039e3;function V(e,t,n){let r=n===-1?e.length:Math.min(e.length,n+1);return{meta:{count:e.reduce((e,t)=>e+t,0),prevTS:e.length?B:0,prevCount:e[0]??0},data:t>=r?[]:e.slice(t,r),count:e.length}}function H(e,t){let n=new URL(e.url).searchParams;for(let e of n.keys()){if(!t.includes(e))throw Error(`Unknown Queue operation option: ${e}`);if(n.getAll(e).length!==1)throw Error(`Duplicate Queue operation option: ${e}`)}if(!n.get(`target`))throw Error(`Queue operation target is required`);return n}async function U(e,t){let n=await e.text();if(new TextEncoder().encode(n).byteLength>z)throw Error(`Queue operation request body exceeds 8 KiB`);let r;try{r=JSON.parse(n)}catch{throw Error(`Queue operation request must be valid JSON`)}if(!ue(r))throw Error(`Queue operation request must be an object`);let i=Object.keys(r).find(e=>!t.includes(e));if(i)throw Error(`Unknown Queue operation body field: ${i}`);return r}function W(e){if(!e||e.length>256||e===`.`||e===`..`||!/^[\w.:-]+$/.test(e))throw Error(`Queue name must contain 1-256 letters, numbers, underscores, dashes, dots or colons`);return e}function G(e){if(typeof e!=`string`||!e||e.length>1024)throw Error(`Deduplication ID must contain 1-1024 characters`);return e}function K(e){if(typeof e!=`string`||!e||e.length>256||e.includes(`\0`))throw Error(`groupId must be a non-empty string of at most 256 characters without NUL`);return e}function q(e,t){let n=e.groups.get(t);if(n)return n;let r={jobs:0,active:0,consumedJobs:0,cooldownMs:0,rateLimit:null,concurrency:null,paused:!1,entries:[]};return e.groups.set(t,r),r}function J(e,t){return X(e,t,1,2**53-1)}function le(e){if(e!==`completed`&&e!==`failed`)throw Error(`Metrics type must be completed or failed`);return e}function Y(e,t,n,r){if(e!==null){if(!/^-?\d+$/.test(e))throw Error(`${t} must be an integer`);return X(Number(e),t,n,r)}}function X(e,t,n,r){if(!Number.isSafeInteger(e)||e<n||e>r)throw Error(`${t} must be an integer from ${n} to ${r}`);return e}function ue(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function de(){return L({ok:!1,error:`Unknown Queue operation`},404)}var fe=e=>e instanceof Error?e.message:String(e),pe={emails:{rateLimit:null,concurrency:10,activeJobs:0,consumedJobs:0,cooldownMs:0,events:1284,completed:[2,1,0,1],failed:[1,0,1],deduplications:[[`welcome:user8@example.com`,`019f252b-86c0-7000-a54e-3816c968ebf0`]]},"image-processing":{rateLimit:{max:100,duration:6e4},concurrency:4,activeJobs:2,consumedJobs:100,cooldownMs:750,events:1428,completed:[7,9,4,6,3],failed:[0,1,0,0,1],deduplications:[[`asset:hero`,`019f252b-8769-7000-bc44-cfc168232f53`]]},reports:{rateLimit:null,concurrency:2,activeJobs:0,consumedJobs:0,cooldownMs:0,events:318,completed:[1,0,2],failed:[1],deduplications:[]},notifications:{rateLimit:null,concurrency:8,activeJobs:0,consumedJobs:0,cooldownMs:0,events:612,completed:[5,4,3],failed:[],deduplications:[]}},me={rateLimit:null,concurrency:null,activeJobs:0,consumedJobs:0,cooldownMs:0,events:0,completed:[],failed:[],deduplications:[]},Z=1e4,Q=1e6;function he(){let e=new Map,t=t=>{let n=e.get(t);if(n)return n;let r=pe[t]??me,i={...r,deduplications:new Map(r.deduplications),groups:new Map};return e.set(t,i),i};return async(e,n)=>{try{let r=await ge(e,n,t);return r?L(r):de()}catch(e){return L({ok:!1,error:fe(e)},400)}}}async function ge(e,t,n){let r=t.replace(/\/+$/,``).split(`/`).filter(Boolean);if(r[0]!==`queue-operations`||r.length<3)return null;let i=W(decodeURIComponent(r[1])),a=r.slice(2).join(`/`),o=n(i);if(e.method===`GET`&&a===`limits`){let t=Y(H(e,[`target`,`maxJobs`]).get(`maxJobs`),`maxJobs`,0,1e6),n=o.rateLimit===null?-2:t!==void 0&&o.consumedJobs<t?0:o.cooldownMs;return{ok:!0,limits:{rateLimit:o.rateLimit,concurrency:o.concurrency,rateLimitTtl:n,maxed:o.concurrency!==null&&o.activeJobs>=o.concurrency}}}if(e.method===`GET`&&a===`groups`){let t=H(e,[`target`,`groupId`,`maxJobs`,`maxCount`,`start`,`end`]),n=K(t.get(`groupId`)),r=Y(t.get(`maxJobs`),`maxJobs`,0,1e6);Y(t.get(`maxCount`),`maxCount`,1,1e6);let i=Y(t.get(`start`),`start`,0,1e6)??0,a=Y(t.get(`end`),`end`,0,1e6)??i+24;if(a<i||a-i>=100)throw Error(`Group jobs page must be an inclusive range of at most 100 jobs`);let s=q(o,n),c=s.rateLimit===null?-2:r!==void 0&&s.consumedJobs<r?0:s.cooldownMs,l={};for(let e of s.entries){let t=String(e.priority);l[t]=(l[t]??0)+1}return{ok:!0,group:{jobs:s.jobs,active:s.active,totalGrouped:[...o.groups.values()].reduce((e,t)=>e+t.jobs,0),paused:s.paused,entries:s.entries.slice(i,a+1),priorityCounts:l,rateLimit:s.rateLimit,rateLimitTtl:c,concurrency:s.concurrency}}}if(e.method===`GET`&&a===`deduplication`){let t=G(H(e,[`target`,`deduplicationId`]).get(`deduplicationId`));return{ok:!0,jobId:o.deduplications.get(t)??null}}if(e.method===`GET`&&a===`metrics`){let t=H(e,[`target`,`type`,`start`,`end`]),n=le(t.get(`type`)),r=Y(t.get(`start`),`start`,0,Z)??0,i=Y(t.get(`end`),`end`,-1,Z)??-1;if(i!==-1&&i<r)throw Error(`Metrics end must be -1 or at least start`);return{ok:!0,metrics:V(o[n],r,i)}}if(e.method===`POST`&&a===`deduplication/remove`){H(e,[`target`]);let t=G((await U(e,[`deduplicationId`])).deduplicationId);return{ok:!0,removed:+!!o.deduplications.delete(t)}}if(e.method===`POST`&&a.startsWith(`groups/`)){if(H(e,[`target`]),a===`groups/pause`||a===`groups/resume`){let t=q(o,K((await U(e,[`groupId`])).groupId)),n=a===`groups/pause`,r=t.paused!==n;return t.paused=n,{ok:!0,changed:r}}let t=a.endsWith(`/remove`),n=a.includes(`/rate-limit`),r=await U(e,t?[`groupId`]:n?[`groupId`,`max`,`duration`]:[`groupId`,`concurrency`]),i=q(o,K(r.groupId));if(t){let e=n?i.rateLimit!==null:i.concurrency!==null;return n?i.rateLimit=null:i.concurrency=null,{ok:!0,removed:+!!e}}return n?i.rateLimit={max:J(r.max,`max`),duration:J(r.duration,`duration`)}:i.concurrency=J(r.concurrency,`concurrency`),{ok:!0,applied:!0}}if(e.method===`POST`&&a===`events/trim`){H(e,[`target`]);let t=X((await U(e,[`maxLength`])).maxLength,`maxLength`,0,Q),n=Math.max(0,o.events-t);return o.events-=n,{ok:!0,removed:n}}return null}var $=!1;function _e(){if($||typeof window>`u`)return()=>void 0;$=!0;let e=window.fetch,t=e.bind(window),n=`./`.replace(/\/+$/,``),r=he(),i=async(e,i)=>{let a=e instanceof Request?e:null,o=typeof e==`string`?e:e instanceof URL?e.href:a?.url??``,s=(i?.method??a?.method??`GET`).toUpperCase(),c;try{c=new URL(o,window.location.origin)}catch{return t(e,i)}let l=c.pathname;n&&(l===n||l.startsWith(`${n}/`))&&(l=l.slice(n.length)||`/`),(l===`/api`||l.startsWith(`/api/`))&&(l=l.slice(4)||`/`);let u=l.split(`/`).filter(Boolean)[0];if(!u||!ae.has(u))return t(e,i);if(u===`queue-operations`)try{let t=e instanceof Request?new Request(e,i):new Request(c,i);return await r(t,l)}catch(e){return L({ok:!1,error:`Invalid Queue operation request: ${e instanceof Error?e.message:String(e)}`},400)}if(u===`events`)return R(i?.signal??a?.signal);if(u===`healthz`||u===`live`)return new Response(`OK`,{status:200});if(s===`GET`){let e=l.replace(/\/+$/,``).split(`/`).filter(Boolean);if(e.length===4&&e[0]===`db`&&e[1]===`tables`&&e[3]===`export`)return ee(decodeURIComponent(e[2]),c.search)}return L(I(l,s,c.search))};window.fetch=i;let a=!1;return()=>{a||(a=!0,window.fetch===i&&(window.fetch=e),$=!1)}}export{_e as installDemo};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={name:`bunqueue-dashboard`,version:`1.0.4`,type:`module`,description:"Web dashboard for a bunqueue server (queues, jobs, DLQ, cron, metrics, workers, live activity). Run with `bunx bunqueue-dashboard` (requires Bun 1.4.4).",packageManager:`bun@1.4.4`,bin:{"bunqueue-dashboard":`scripts/serve.ts`},files:[`dist`,`scripts/serve.ts`,`scripts/serveHandler.ts`,`scripts/servePolicy.ts`,`scripts/bunVersion.ts`,`scripts/embedded.gen.ts`,`agent`,`shared`],publishConfig:{access:`public`},license:`MIT`,author:`Egeo Minotti`,homepage:`https://egeominotti.github.io/bunqueue-dashboard/`,repository:{type:`git`,url:`git+https://github.com/egeominotti/bunqueue-dashboard.git`},bugs:{url:`https://github.com/egeominotti/bunqueue-dashboard/issues`},keywords:[`bunqueue`,`dashboard`,`queue-dashboard`,`job-queue-ui`,`bullmq-alternative`,`bull-board-alternative`,`redis-queue-ui`,`task-queue`,`background-jobs`,`dead-letter-queue`,`dlq`,`cron`,`job-monitoring`,`bun`,`react`],engines:{bun:`1.4.4`},scripts:{prepack:`bun run version:check && bun run build && bun scripts/gen-embed.ts`,start:`bun run scripts/dev.ts`,dev:`vite`,agent:`bun run agent/index.ts`,build:`bun run typecheck && vite build`,typecheck:`bun check --no-script && bun run typecheck:agent && bun run typecheck:examples && bun run typecheck:e2e`,"typecheck:agent":`bun check --no-script -p tsconfig.agent.json`,"typecheck:examples":`bun check --no-script -p tsconfig.examples.json`,size:`bun run scripts/check-bundle.ts`,"version:check":`bun run scripts/check-bun-version.ts && bun run scripts/check-playwright-image.ts`,architecture:`bun run scripts/check-file-size.ts`,"docs:dev":`vitepress dev docs`,"docs:build":`bun run scripts/build-docs.ts`,"docs:preview":`vitepress preview docs`,"build:bin":`bun run build && bun run scripts/gen-embed.ts && bun build scripts/serve.ts agent/dbReadWorker.ts agent/backup/standaloneWorker.ts --compile --minify --outfile bunqueue-dashboard`,preview:`vite preview`,test:`bun test`,"test:e2e:flow":`bun run scripts/validate-flow-runtime.ts`,"test:e2e:queue-operations":`bun run scripts/validate-queue-operations.ts`,"test:e2e:upgrade":`bun run scripts/validate-sqlite-upgrade-runtime.ts`,"test:e2e:workflow":`bun run scripts/validate-workflow-runtime.ts`,"test:e2e:postgres-fleet":`bun run scripts/validate-postgres-fleet-runtime.ts`,"test:e2e:tls":`bun run scripts/validate-tls-runtime.ts`,"test:e2e":`bun run test:e2e:tls && bun run test:e2e:upgrade && bun run test:e2e:flow && bun run test:e2e:workflow && bun run test:e2e:queue-operations && bun run test:e2e:postgres-fleet`,"test:e2e:browser:install":`playwright install chromium firefox webkit`,"test:e2e:browser:serve":`bun e2e/runtime.ts`,"test:e2e:browser:postgres-fleet":`bun run scripts/validate-postgres-fleet-dashboard-runtime.ts`,"test:e2e:browser":`bun run build && bun scripts/gen-embed.ts && playwright test`,"test:binary":`bun scripts/validate-standalone-runtime.ts ./bunqueue-dashboard`,"test:runtime":`bun scripts/validate-standalone-runtime.ts --source`,"test:soak":`bun scripts/validate-resilience.ts`,"test:package":`bun run scripts/validate-package-runtime.ts`,"test:coverage":`bun test --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage && bun scripts/check-coverage.ts && bun scripts/check-critical-coverage.ts && bun scripts/check-test-inventory.ts`,lint:`bunx --bun --no-install oxlint .`,"lint:fix":`bunx --bun --no-install oxlint --fix .`,format:`bun fmt`,"format:check":`bun fmt --check`,check:`bun run typecheck && bun run lint && bun run format:check`,"check:fix":`bun run lint:fix && bun run format`,"audit:high":`bun audit --audit-level=high`,quality:`bun run quality:static && bun run quality:unit && bun run quality:runtime-a && bun run quality:runtime-b && bun run quality:runtime-c && bun run quality:runtime-d`,"quality:static":`bun run version:check && bun run architecture && bun run check && bun run build && bun run size && bun run docs:build && bun run audit:high`,"quality:unit":`bun run test:coverage`,"quality:runtime-a":`bun run test:e2e:tls && bun run test:e2e:upgrade && bun run test:e2e:flow && bun run test:e2e:workflow`,"quality:runtime-b":`bun run test:e2e:queue-operations && bun run test:e2e:postgres-fleet`,"quality:runtime-c":`bun run test:package && bun run test:runtime`,"quality:runtime-d":`bun run test:soak`,"typecheck:e2e":`bun check --no-script -p tsconfig.e2e.json`,"test:e2e:browser:managed":`bun run build && bun scripts/gen-embed.ts && playwright test -c playwright.managed.config.ts`,"test:e2e:docs":`bun run docs:build && playwright test -c playwright.docs.config.ts`},devDependencies:{"@ai-sdk/anthropic":`^4.0.89`,"@ai-sdk/google":`^4.0.106`,"@ai-sdk/openai":`^4.0.103`,"@ai-sdk/openai-compatible":`^3.0.79`,"@axe-core/playwright":`4.14.0`,"@fontsource-variable/inter":`^5.3.0`,"@fontsource-variable/jetbrains-mono":`^5.3.0`,"@modelcontextprotocol/sdk":`1.32.2`,"@playwright/test":`1.64.1`,"@tailwindcss/vite":`^4.3.3`,"@types/node":`^26.6.5`,"@types/react":`^19.3.0`,"@types/react-dom":`^19.3.0`,"@vitejs/plugin-react":`^6.1.2`,ai:`7.0.154`,"bun-types":`1.4.4`,"bunqueue-v2-9-2":`npm:bunqueue@2.9.2`,"happy-dom":`^21.0.4`,mermaid:`^12.2.0`,oxlint:`^1.89.0`,"oxlint-tsgolint":`^7.0.2005`,react:`^19.3.1`,"react-dom":`^19.3.1`,"react-router-dom":`^7.18.4`,tailwindcss:`^4.3.3`,vite:`^8.3.5`,vitepress:`2.0.0-alpha.21`,"vitepress-plugin-llms":`^1.14.0`,zod:`^4.6.7`,zustand:`^5.0.16`},overrides:{"brace-expansion":`^5.0.12`,dompurify:`^3.4.17`,"fast-uri":`^3.1.9`,"ip-address":`^10.7.5`,"markdown-it":`^14.3.3`,nanoid:`^3.3.20`,postcss:`^8.5.32`,"proxy-addr":`^2.0.8`,"source-map-js":`^1.2.2`,vue:`^3.5.44`},dependencies:{bunqueue:`2.9.20`,msgpackr:`^2.1.2`}};export{e as t};
|