wurk 1.8.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -1
  3. data/lib/wurk/rails_boot.rb +13 -3
  4. data/lib/wurk/version.rb +1 -1
  5. data/vendor/assets/dashboard/assets/{ArgsValue-DsPb_KZ-.js → ArgsValue-_MYkd_vA.js} +1 -1
  6. data/vendor/assets/dashboard/assets/{BatchDetail-BCIXJOpZ.js → BatchDetail-DPmg-hle.js} +1 -1
  7. data/vendor/assets/dashboard/assets/{Batches-IjaQfXW6.js → Batches-NTgqSlvD.js} +1 -1
  8. data/vendor/assets/dashboard/assets/{Busy-CaQrf1Ve.js → Busy-2rxcLJMq.js} +1 -1
  9. data/vendor/assets/dashboard/assets/{Cron-B18EHn_Y.js → Cron-BFpJgKYb.js} +1 -1
  10. data/vendor/assets/dashboard/assets/{Dashboard-DdT5ZaUg.js → Dashboard-C8VOE2S7.js} +1 -1
  11. data/vendor/assets/dashboard/assets/{Dead-DWIy-Mu8.js → Dead-Dse2YEbZ.js} +1 -1
  12. data/vendor/assets/dashboard/assets/{Extension-BjBUWhHf.js → Extension-BIc2c1zG.js} +1 -1
  13. data/vendor/assets/dashboard/assets/{FilterBox-DwH3PXXt.js → FilterBox-BfZm8ZzH.js} +1 -1
  14. data/vendor/assets/dashboard/assets/{FlowDetail-DnexL72n.js → FlowDetail-BWddOtgf.js} +1 -1
  15. data/vendor/assets/dashboard/assets/{FlowState-Cr4aX6-d.js → FlowState-6lGsojxE.js} +1 -1
  16. data/vendor/assets/dashboard/assets/{Flows-DO6EimbZ.js → Flows-BgKTlYwI.js} +1 -1
  17. data/vendor/assets/dashboard/assets/{JobDetailModal-aPjgq-U9.js → JobDetailModal-BrjmO98c.js} +1 -1
  18. data/vendor/assets/dashboard/assets/{Limiters-DxpwWCNe.js → Limiters-DeUkfbcg.js} +1 -1
  19. data/vendor/assets/dashboard/assets/{Metrics-C3JL1GIH.js → Metrics-DzmAgBFG.js} +1 -1
  20. data/vendor/assets/dashboard/assets/{NotFound-BfP9uAV9.js → NotFound-CQLLXIfa.js} +1 -1
  21. data/vendor/assets/dashboard/assets/{PageHeader-DbC97afG.js → PageHeader-CeSaqysY.js} +1 -1
  22. data/vendor/assets/dashboard/assets/{Profiles-BcaHreMe.js → Profiles-CI2i2tl8.js} +1 -1
  23. data/vendor/assets/dashboard/assets/{Queues-ZlBc5tyD.js → Queues-DUCQ_3St.js} +1 -1
  24. data/vendor/assets/dashboard/assets/{Retries-Bg3nkeiL.js → Retries-Dc2RFuTf.js} +1 -1
  25. data/vendor/assets/dashboard/assets/{Scheduled-BrMZPZGl.js → Scheduled-B8zOKCLC.js} +1 -1
  26. data/vendor/assets/dashboard/assets/{Search-B5X5pGht.js → Search-x0eS-V-U.js} +1 -1
  27. data/vendor/assets/dashboard/assets/{charts-uDyf4PN0.js → charts-VggSMFGc.js} +1 -1
  28. data/vendor/assets/dashboard/assets/i18n-B6AbnmJn.js +1 -0
  29. data/vendor/assets/dashboard/assets/index-CTWV8VL4.js +141 -0
  30. data/vendor/assets/dashboard/assets/index-WpZjU076.css +1 -0
  31. data/vendor/assets/dashboard/assets/{useResetPageOnEmpty-O3-5rMk3.js → useResetPageOnEmpty-BsYWeStI.js} +1 -1
  32. data/vendor/assets/dashboard/assets/{useSort-xfnwjQAu.js → useSort-BWWfpnZH.js} +1 -1
  33. data/vendor/assets/dashboard/assets/{utils-BIKHwNKB.js → utils-DnzJXljj.js} +1 -1
  34. data/vendor/assets/dashboard/index.html +3 -3
  35. data/vendor/assets/dashboard/wurk-manifest.json +2 -2
  36. metadata +30 -30
  37. data/vendor/assets/dashboard/assets/i18n-CJeYfeVt.js +0 -1
  38. data/vendor/assets/dashboard/assets/index-B36QCAf-.css +0 -1
  39. data/vendor/assets/dashboard/assets/index-DQujgZgH.js +0 -141
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d5734527cfa0b903c07b143f7eb0b821fca970cd98a8773f16cbdc12dcbb43c
4
- data.tar.gz: e3e610d19a29b71e071896a45710a807928123bb0c530348fb809dafb101cfe3
3
+ metadata.gz: e3249733631f049cf81a41880d6355512889dd963fa9e3c159610d27b1c52bd2
4
+ data.tar.gz: a5db03ee0bdbf32d765ba439b4aa0e3fbb5d55cfcd8b58471375a62bf2b3367b
5
5
  SHA512:
6
- metadata.gz: c08daf7f94145029bcfd74e49c4426c8881effdce3aa65329453c5e7c2930ed87d93ac6ea85423ea8ee6a9df3465152837ebac692abfff3376623e69198209bc
7
- data.tar.gz: a8374380a15e20e599374bdd7afe6e911a3364b6f1acb532fca2ece894d31d8a113baf4375773a7b94ae2fb0a4a1da98767ca16667b705a53c8f58fdde9ad9d0
6
+ metadata.gz: 304f23c4742924dc22a9a3d9cdc0c7c28cbcdf089c6e5d5dd485adc858bc81d239fc501687e378b026e0c42e6be9675ce960c7f8b27007e35925a04f133961f0
7
+ data.tar.gz: 1fd8a666fa1d02940c4f36d1e49c7c69fad64783f7f52433543cf3bfba77340de2964202ac91224f03cb66b32babc32849fe81694e98ea173023245eda98fc95
data/README.md CHANGED
@@ -11,6 +11,7 @@
11
11
  <div align="center">
12
12
 
13
13
  [![Live Demo](https://img.shields.io/badge/live%20demo-wurk.demo.developerz.ai-22c55e?logo=googlechrome&logoColor=white)](https://wurk.demo.developerz.ai/wurk)
14
+ [![AI-maintained](https://img.shields.io/badge/maintained%20by-developerz.ai-8a2be2.svg)](#ai-maintained)
14
15
  [![Gem Version](https://img.shields.io/gem/v/wurk.svg)](https://rubygems.org/gems/wurk)
15
16
  [![CI](https://github.com/developerz-ai/wurk/actions/workflows/test.yml/badge.svg)](https://github.com/developerz-ai/wurk/actions/workflows/test.yml)
16
17
  [![Coverage gate](https://img.shields.io/badge/coverage%20gate-line%20%2B%20branch%20%E2%89%A590%25-brightgreen.svg)](https://github.com/developerz-ai/wurk/actions/workflows/test.yml)
@@ -25,6 +26,8 @@ Wurk is wire-compatible with Sidekiq — same Redis keys, same job JSON, same Ru
25
26
 
26
27
  **At scale:** Wurk is built for fleets, not just for one box. Kubernetes `/live` + `/ready` probes are a config line, not a sidecar; a bearer-scoped [HTTP API](docs/api-http.md) lets non-Ruby services enqueue and inspect; [OpenTelemetry](docs/telemetry.md) traces propagate client → server; per-queue [global concurrency caps](docs/rate-limiting.md) hold cluster-wide limits; and monitoring is the dashboard you already mount — live SSE, charts, per-job progress, no separate stack to run. See [Wurk extras](#wurk-extras).
27
28
 
29
+ **AI-managed:** Wurk is a 100% AI-managed project. Outside contributors' issues and pull requests, and dependency updates, are triaged, reviewed, merged or closed by the [developerz.ai](https://developerz.ai) maintainer agent, which asks a human only for security reports, license questions and breaking changes, and cuts a release when a shipped fix has waited for one. New features are still built by us, humans and AI together — see [CONTRIBUTING.md](CONTRIBUTING.md) and [AI-maintained](#ai-maintained).
30
+
28
31
  **On Sidekiq:** Wurk implements Sidekiq's API because it is a genuinely good API. Sidekiq is human-maintained and funds that work through its paid tiers; Wurk is AI-maintained, which is what lets the same surface be free software. Wurk is independent and not affiliated with or endorsed by Sidekiq or its maintainers — see [Why Wurk exists](#why-wurk-exists).
29
32
 
30
33
  **On speed:** Wurk is not currently faster than stock Sidekiq — it runs at roughly 0.87×–1.02× depending on workload shape, with parity on CPU and I/O but still behind on framework overhead (noop) and boot time. Numbers, method, and the reproduction command are in [docs/benchmarks.md](docs/benchmarks.md); run them yourself with `rake bench:vs_sidekiq`.
@@ -276,7 +279,7 @@ There is no native Prometheus `/metrics` endpoint — the StatsD export or the `
276
279
 
277
280
  Infrastructure this basic should be free software. A Rails app shouldn't need a licence key to get reliable fetch, batches, rate limiting, or cron — those are table stakes, not a premium tier, and the free-software tradition is that the best tools belong to everyone who runs them.
278
281
 
279
- What has made that hard is maintenance: someone has to be paid to do it. Sidekiq funds a decade of *human* maintenance through its paid tiers, which is an honest trade. Wurk makes a different one — it is maintained **AI-first**: implementation, parity suite, docs, and benchmarks are written and kept current by AI agents under human review. A fix, a doc update, or a version bump is no longer somebody's week, which is what makes it practical to:
282
+ What has made that hard is maintenance: someone has to be paid to do it. Sidekiq funds a decade of *human* maintenance through its paid tiers, which is an honest trade. Wurk makes a different one — it is maintained **by AI**: outside contributors' issues and pull requests, and dependency updates, are handled end to end by a maintainer agent (the team's own are left to them, their pull requests still reviewed), and the implementation, parity suite, docs, and benchmarks are written and kept current by AI agents working with the team, which still builds the features and cuts the releases. A fix, a doc update, or a version bump is no longer somebody's week, which is what makes it practical to:
280
283
 
281
284
  - ship the entire Pro + Enterprise surface with no tier, no flag gate, and no license check;
282
285
  - keep parity honest mechanically rather than by hand — an independently written parity oracle suite, pinned to a documented Sidekiq revision, plus sidekiq-cron's upstream suite running against Wurk on every push ([docs/idea/14-ecosystem-compat.md](https://github.com/developerz-ai/wurk/blob/main/docs/idea/14-ecosystem-compat.md) tracks the rest);
@@ -316,6 +319,21 @@ Every framework of the last fifteen years optimised for a human typing the code.
316
319
 
317
320
  TypeScript end to end, MIT, and as measured about its own claims as this file is: what is proven, what is not, and what it refuses to claim yet are all in [its README](https://github.com/developerz-ai/ultimate#readme).
318
321
 
322
+ ## AI-maintained
323
+
324
+ **Wurk is maintained by AI**: by [developerz.ai](https://developerz.ai), the way a human maintainer looks after an open-source project. The developerz-ai org comes back with new ideas once or twice a year. In between, the project is still looked after:
325
+
326
+ | Who opens it | What happens |
327
+ |---|---|
328
+ | you, an issue | triaged; asked for a reproduction when one is missing; a real bug is fixed and released |
329
+ | you, a pull request | reviewed (CodeRabbit and the developerz.ai reviewer), driven to green, merged |
330
+ | Dependabot | driven to green and merged |
331
+ | an issue or pull request by anyone with write access (org members, collaborators) | left to its author; a pull request is still reviewed, and an @-mention of the bot is answered |
332
+ | an outside change to CI, release or publish automation | declined: members maintain the pipeline that publishes the gem |
333
+ | a breaking change | never merged unattended: the drop-in contract is the one promise a revert cannot take back |
334
+
335
+ Releases follow the work, not a calendar. A weekday checkup asks whether a shipping fix has merged and nobody has released it. When one has, the bot files a release request, its coding fleet opens the `Wurk::VERSION` bump PR, and merging that PR publishes the gem ([RELEASE.md](RELEASE.md)). The bot's policy is committed in [`.dz/maintainer/maintainer.yml`](.dz/maintainer/maintainer.yml).
336
+
319
337
  ## Contributing
320
338
 
321
339
  Issues and pull requests are welcome — see **[CONTRIBUTING.md](https://github.com/developerz-ai/wurk/blob/main/CONTRIBUTING.md)** for the dev setup, test layers, and conventions, and **[SECURITY.md](https://github.com/developerz-ai/wurk/blob/main/SECURITY.md)** to report a vulnerability.
@@ -68,17 +68,27 @@ module Wurk
68
68
  # custom script that requires config/environment — and a denylist can
69
69
  # never name them all: each one forked a full swarm that fetched jobs, and
70
70
  # its at_exit drain then cut those jobs off when the one-off command
71
- # finished. The markers are constants only a running server defines
72
- # (Bundler.require of the puma gem loads `Puma`, never `Puma::Launcher`).
71
+ # finished. The markers are constants only a running server defines.
73
72
  # Any other server (Falcon, Thin, Pitchfork, a bespoke rackup) opts in
74
73
  # with WURK_EMBED=1.
75
74
  def serving?
76
75
  return true if ENV['WURK_EMBED'] == '1'
77
- return true if defined?(::Rails::Server) || defined?(::Puma::Launcher) || defined?(::PhusionPassenger)
76
+ return true if defined?(::Rails::Server) || puma_launcher_loaded? || defined?(::PhusionPassenger)
78
77
 
79
78
  unicorn_server?
80
79
  end
81
80
 
81
+ # Bundler.require of the puma gem defines `Puma` in every process, and
82
+ # puma >= 6 registers `autoload :Launcher` in lib/puma.rb — `defined?`
83
+ # reports an autoload as "constant" without loading it, so the bare check
84
+ # was true in `rails runner` / a console and forked a swarm there. Only a
85
+ # running server has actually loaded the launcher.
86
+ def puma_launcher_loaded?
87
+ return false unless defined?(::Puma::Launcher)
88
+
89
+ !::Puma.autoload?(:Launcher)
90
+ end
91
+
82
92
  # `require 'unicorn'` (a Gemfile entry) defines the constant in every
83
93
  # process, so the program name is what tells the server apart.
84
94
  def unicorn_server?
data/lib/wurk/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Wurk
4
- VERSION = '1.8.0'
4
+ VERSION = '1.8.1'
5
5
  end
@@ -1 +1 @@
1
- import{E as e,I as t,_ as n,d as r,j as i,p as a,u as o}from"./i18n-CJeYfeVt.js";import{u as s}from"./utils-BIKHwNKB.js";var c=n(`<span>`),l=n(`<span style=color:var(--text-muted)>—`);function u(n){return i(e,{get when(){return r(()=>n.str!==`[]`)()&&n.str!==``},get fallback(){return l()},get children(){var e=c();return o(e,()=>s(n.str,n.max)),t(()=>a(e,`title`,n.str)),e}})}export{u as t};
1
+ import{E as e,I as t,_ as n,d as r,j as i,p as a,u as o}from"./i18n-B6AbnmJn.js";import{u as s}from"./utils-DnzJXljj.js";var c=n(`<span>`),l=n(`<span style=color:var(--text-muted)>—`);function u(n){return i(e,{get when(){return r(()=>n.str!==`[]`)()&&n.str!==``},get fallback(){return l()},get children(){var e=c();return o(e,()=>s(n.str,n.max)),t(()=>a(e,`title`,n.str)),e}})}export{u as t};
@@ -1 +1 @@
1
- import{C as e,E as t,O as n,T as r,_ as i,d as a,j as o,o as s,q as c,u as l}from"./i18n-CJeYfeVt.js";import{S as u,b as d,f,h as p,i as m,v as h}from"./index-DQujgZgH.js";import{l as g,o as _}from"./utils-BIKHwNKB.js";var v=i(`<div style=display:flex;flex-direction:column;gap:2px><span style=font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em></span><span style=font-variant-numeric:tabular-nums>`),y=i(`<div style=margin-top:1.5rem><h2 style="font-size:14px;margin:0 0 0.5rem"> <span class="badge badge-muted"></span></h2><div class=table-wrapper><table><tbody>`),b=i(`<tr><td style=font-family:monospace;font-size:12px>`),x=i(`<div><div class=section-header style=gap:0.75rem></div><div style=margin-top:1rem>`),S=i(`<div class=empty-state style=color:var(--danger)>`),C=i(`<span class="badge badge-success">`),w=i(`<span class="badge badge-danger">`),T=i(`<p style=color:var(--text-muted);margin-top:0>`),E=i(`<div><div class=section-header style=gap:0.75rem><h1 class=page-title style=margin:0;font-family:monospace;font-size:16px></h1></div><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));gap:1rem;margin-top:1rem">`),D=i(`<span class="badge badge-accent">%`);function O(e){return(()=>{var t=v(),n=t.firstChild,r=n.nextSibling;return l(n,()=>e.label),l(r,()=>e.children),t})()}function k(n){return o(t,{get when(){return n.jids.length>0},get children(){var t=y(),r=t.firstChild,i=r.firstChild,a=i.nextSibling,s=r.nextSibling.firstChild.firstChild;return l(r,()=>n.label,i),l(a,()=>n.jids.length),l(s,o(e,{get each(){return n.jids},children:e=>(()=>{var t=b(),n=t.firstChild;return l(n,e),t})()})),t}})}function A(){let e=u(),i=()=>e.bid??``;c(()=>{document.title=`${s(`nav.batches`)} — Wurk`});let v=h(()=>({queryKey:[`batch`,i()],queryFn:()=>f(`${p()}/api/batches/${encodeURIComponent(i())}`)}));return o(n,{get children(){return[o(r,{get when(){return v.isPending},get children(){var e=x(),t=e.firstChild,n=t.nextSibling;return l(t,o(d,{href:`/batches`,class:`btn btn-sm`,get children(){return[`← `,a(()=>s(`nav.batches`))]}})),l(n,o(m,{count:8})),e}}),o(r,{get when(){return v.isError||!v.data},get children(){var e=S();return l(e,()=>s(`common.error`)),e}}),o(r,{get when(){return v.data},children:e=>{let n=()=>e().total-e().pending,r=()=>e().total>0?Math.round(n()/e().total*100):0;return(()=>{var n=E(),i=n.firstChild,c=i.firstChild,u=i.nextSibling;return l(i,o(d,{href:`/batches`,class:`btn btn-sm`,get children(){return[`← `,a(()=>s(`nav.batches`))]}}),c),l(c,()=>e().bid),l(i,o(t,{get when(){return e().complete},get fallback(){return(()=>{var e=D(),t=e.firstChild;return l(e,r,t),e})()},get children(){var e=C();return l(e,()=>s(`batches.complete`)),e}}),null),l(i,o(t,{get when(){return e().invalidated},get children(){var e=w();return l(e,()=>s(`batches.invalidated`)),e}}),null),l(n,o(t,{get when(){return e().description},get children(){var t=T();return l(t,()=>e().description),t}}),u),l(u,o(O,{get label(){return s(`table.total`)},get children(){return _(e().total)}}),null),l(u,o(O,{get label(){return s(`table.pending`)},get children(){return _(e().pending)}}),null),l(u,o(O,{get label(){return s(`table.failures`)},get children(){return _(e().failures)}}),null),l(u,o(O,{get label(){return s(`batches.children`)},get children(){return _(e().child_count)}}),null),l(u,o(O,{get label(){return s(`table.created`)},get children(){return a(()=>!!e().created_at)()?g(e().created_at):`—`}}),null),l(u,o(O,{get label(){return s(`batches.completed`)},get children(){return a(()=>!!e().complete_at)()?g(e().complete_at):`—`}}),null),l(u,o(t,{get when(){return e().parent_bid},get children(){return o(O,{get label(){return s(`batches.parent`)},get children(){return e().parent_bid}})}}),null),l(u,o(t,{get when(){return e().tags.length>0},get children(){return o(O,{get label(){return s(`batches.tags`)},get children(){return e().tags.join(`, `)}})}}),null),l(n,o(k,{get label(){return s(`batches.failed_jobs`)},get jids(){return e().failed_jids}}),null),l(n,o(k,{get label(){return s(`batches.dead_jobs`)},get jids(){return e().dead_jids}}),null),n})()}})]}})}export{A as default};
1
+ import{C as e,E as t,O as n,T as r,_ as i,d as a,j as o,o as s,q as c,u as l}from"./i18n-B6AbnmJn.js";import{S as u,b as d,f,h as p,i as m,v as h}from"./index-CTWV8VL4.js";import{l as g,o as _}from"./utils-DnzJXljj.js";var v=i(`<div style=display:flex;flex-direction:column;gap:2px><span style=font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em></span><span style=font-variant-numeric:tabular-nums>`),y=i(`<div style=margin-top:1.5rem><h2 style="font-size:14px;margin:0 0 0.5rem"> <span class="badge badge-muted"></span></h2><div class=table-wrapper><table><tbody>`),b=i(`<tr><td style=font-family:monospace;font-size:12px>`),x=i(`<div><div class=section-header style=gap:0.75rem></div><div style=margin-top:1rem>`),S=i(`<div class=empty-state style=color:var(--danger)>`),C=i(`<span class="badge badge-success">`),w=i(`<span class="badge badge-danger">`),T=i(`<p style=color:var(--text-muted);margin-top:0>`),E=i(`<div><div class=section-header style=gap:0.75rem><h1 class=page-title style=margin:0;font-family:monospace;font-size:16px></h1></div><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));gap:1rem;margin-top:1rem">`),D=i(`<span class="badge badge-accent">%`);function O(e){return(()=>{var t=v(),n=t.firstChild,r=n.nextSibling;return l(n,()=>e.label),l(r,()=>e.children),t})()}function k(n){return o(t,{get when(){return n.jids.length>0},get children(){var t=y(),r=t.firstChild,i=r.firstChild,a=i.nextSibling,s=r.nextSibling.firstChild.firstChild;return l(r,()=>n.label,i),l(a,()=>n.jids.length),l(s,o(e,{get each(){return n.jids},children:e=>(()=>{var t=b(),n=t.firstChild;return l(n,e),t})()})),t}})}function A(){let e=u(),i=()=>e.bid??``;c(()=>{document.title=`${s(`nav.batches`)} — Wurk`});let v=h(()=>({queryKey:[`batch`,i()],queryFn:()=>f(`${p()}/api/batches/${encodeURIComponent(i())}`)}));return o(n,{get children(){return[o(r,{get when(){return v.isPending},get children(){var e=x(),t=e.firstChild,n=t.nextSibling;return l(t,o(d,{href:`/batches`,class:`btn btn-sm`,get children(){return[`← `,a(()=>s(`nav.batches`))]}})),l(n,o(m,{count:8})),e}}),o(r,{get when(){return v.isError||!v.data},get children(){var e=S();return l(e,()=>s(`common.error`)),e}}),o(r,{get when(){return v.data},children:e=>{let n=()=>e().total-e().pending,r=()=>e().total>0?Math.round(n()/e().total*100):0;return(()=>{var n=E(),i=n.firstChild,c=i.firstChild,u=i.nextSibling;return l(i,o(d,{href:`/batches`,class:`btn btn-sm`,get children(){return[`← `,a(()=>s(`nav.batches`))]}}),c),l(c,()=>e().bid),l(i,o(t,{get when(){return e().complete},get fallback(){return(()=>{var e=D(),t=e.firstChild;return l(e,r,t),e})()},get children(){var e=C();return l(e,()=>s(`batches.complete`)),e}}),null),l(i,o(t,{get when(){return e().invalidated},get children(){var e=w();return l(e,()=>s(`batches.invalidated`)),e}}),null),l(n,o(t,{get when(){return e().description},get children(){var t=T();return l(t,()=>e().description),t}}),u),l(u,o(O,{get label(){return s(`table.total`)},get children(){return _(e().total)}}),null),l(u,o(O,{get label(){return s(`table.pending`)},get children(){return _(e().pending)}}),null),l(u,o(O,{get label(){return s(`table.failures`)},get children(){return _(e().failures)}}),null),l(u,o(O,{get label(){return s(`batches.children`)},get children(){return _(e().child_count)}}),null),l(u,o(O,{get label(){return s(`table.created`)},get children(){return a(()=>!!e().created_at)()?g(e().created_at):`—`}}),null),l(u,o(O,{get label(){return s(`batches.completed`)},get children(){return a(()=>!!e().complete_at)()?g(e().complete_at):`—`}}),null),l(u,o(t,{get when(){return e().parent_bid},get children(){return o(O,{get label(){return s(`batches.parent`)},get children(){return e().parent_bid}})}}),null),l(u,o(t,{get when(){return e().tags.length>0},get children(){return o(O,{get label(){return s(`batches.tags`)},get children(){return e().tags.join(`, `)}})}}),null),l(n,o(k,{get label(){return s(`batches.failed_jobs`)},get jids(){return e().failed_jids}}),null),l(n,o(k,{get label(){return s(`batches.dead_jobs`)},get jids(){return e().dead_jids}}),null),n})()}})]}})}export{A as default};
@@ -1 +1 @@
1
- import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,m as c,o as l,p as u,q as d,u as f}from"./i18n-CJeYfeVt.js";import{a as p,b as m,f as h,h as g,v as _}from"./index-DQujgZgH.js";import{l as v,o as y,u as b}from"./utils-BIKHwNKB.js";import{a as x,i as S,n as C,r as w,t as T}from"./useResetPageOnEmpty-O3-5rMk3.js";import{n as E,t as D}from"./useSort-xfnwjQAu.js";import{t as O}from"./PageHeader-DbC97afG.js";var k=a(`<div>`),A=a(`<div class=empty-state style=color:var(--danger)>`),j=a(`<span class="badge badge-accent">`),M=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),N=a(`<div class=empty-state>`),P=a(`<tr><td style=font-family:monospace;font-size:12px></td><td></td><td></td><td></td><td></td><td style=width:100px><div style=display:flex;align-items:center;gap:0.5rem><div class=progress-bar-track style=flex:1><div class=progress-bar-fill></div></div><span style=font-size:11px;color:var(--text-muted);min-width:32px>%</span></div></td><td>`),F=25,I={bid:e=>e.bid,description:e=>e.description??``,total:e=>e.total,pending:e=>e.pending,failures:e=>e.failures,progress:e=>e.total>0?(e.total-e.pending)/e.total:0,created:e=>e.created_at??null};function L(){let[a,L]=C();d(()=>{document.title=`${l(`nav.batches`)} — Wurk`});let R=_(()=>({queryKey:[`batches`,a()],queryFn:()=>h(`${g()}/api/batches?page=${a()-1}&count=${F}`)}));w(a,L,()=>R.data),T(a,L,()=>!R.isPending&&!!R.data,()=>(R.data?.batches.length??0)===0);let{sorted:z,sort:B,toggle:V}=D(()=>R.data?.batches??[],I);return s(r,{get children(){return[s(i,{get when(){return R.isPending},get children(){var e=k();return f(e,s(O,{icon:`fa-table-cells-large`,get title(){return l(`nav.batches`)},get summary(){return l(`summaries.batches`)}}),null),f(e,s(p,{rows:8,cols:7}),null),e}}),s(i,{get when(){return R.isError||!R.data},get children(){var e=A();return f(e,()=>l(`common.error`)),e}}),s(i,{get when(){return R.data},children:r=>(()=>{var i=k();return f(i,s(O,{icon:`fa-table-cells-large`,get title(){return l(`nav.batches`)},get summary(){return l(`summaries.batches`)},get children(){var e=j();return f(e,()=>y(r().total)),e}}),null),f(i,s(t,{get when(){return z().length>0},get fallback(){return(()=>{var e=N();return f(e,()=>l(`common.empty`)),e})()},get children(){return[(()=>{var t=M(),r=t.firstChild.firstChild,i=r.firstChild,a=r.nextSibling;return f(i,s(E,{get label(){return l(`table.bid`)},sortKey:`bid`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.description`)},sortKey:`description`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.total`)},sortKey:`total`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.pending`)},sortKey:`pending`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.failures`)},sortKey:`failures`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.progress`)},sortKey:`progress`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.created`)},sortKey:`created`,get sort(){return B()},onSort:V}),null),f(a,s(e,{get each(){return z()},children:e=>{let t=e.total-e.pending,r=e.total>0?t/e.total*100:0;return(()=>{var t=P(),i=t.firstChild,a=i.nextSibling,l=a.nextSibling,d=l.nextSibling,p=d.nextSibling,h=p.nextSibling,g=h.firstChild.firstChild,_=g.firstChild,x=g.nextSibling,S=x.firstChild,C=h.nextSibling;return f(i,s(m,{get href(){return`/batches/${e.bid}`},get title(){return e.bid},get children(){return b(e.bid,14)}})),f(a,()=>b(e.description??`—`,40)),f(l,()=>y(e.total)),f(d,()=>y(e.pending)),f(p,()=>y(e.failures)),c(_,`width`,`${r}%`),f(x,()=>Math.round(r),S),f(C,(()=>{var t=o(()=>!!e.created_at);return()=>t()?v(e.created_at):`—`})()),n(t=>{var n=e.description??``,r=e.pending>0?`var(--warning)`:`var(--success)`,i=e.failures>0?`var(--danger)`:void 0,o=e.failures>0?`var(--danger)`:`var(--success)`;return n!==t.e&&u(a,`title`,t.e=n),r!==t.t&&c(d,`color`,t.t=r),i!==t.a&&c(p,`color`,t.a=i),o!==t.o&&c(_,`background`,t.o=o),t},{e:void 0,t:void 0,a:void 0,o:void 0}),t})()}})),t})(),s(S,{get page(){return a()},get total(){return r().total},count:F,get maxPage(){return x(r())},onChange:L})]}}),null),i})()})]}})}export{L as default};
1
+ import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,m as c,o as l,p as u,q as d,u as f}from"./i18n-B6AbnmJn.js";import{a as p,b as m,f as h,h as g,v as _}from"./index-CTWV8VL4.js";import{l as v,o as y,u as b}from"./utils-DnzJXljj.js";import{a as x,i as S,n as C,r as w,t as T}from"./useResetPageOnEmpty-BsYWeStI.js";import{n as E,t as D}from"./useSort-BWWfpnZH.js";import{t as O}from"./PageHeader-CeSaqysY.js";var k=a(`<div>`),A=a(`<div class=empty-state style=color:var(--danger)>`),j=a(`<span class="badge badge-accent">`),M=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),N=a(`<div class=empty-state>`),P=a(`<tr><td style=font-family:monospace;font-size:12px></td><td></td><td></td><td></td><td></td><td style=width:100px><div style=display:flex;align-items:center;gap:0.5rem><div class=progress-bar-track style=flex:1><div class=progress-bar-fill></div></div><span style=font-size:11px;color:var(--text-muted);min-width:32px>%</span></div></td><td>`),F=25,I={bid:e=>e.bid,description:e=>e.description??``,total:e=>e.total,pending:e=>e.pending,failures:e=>e.failures,progress:e=>e.total>0?(e.total-e.pending)/e.total:0,created:e=>e.created_at??null};function L(){let[a,L]=C();d(()=>{document.title=`${l(`nav.batches`)} — Wurk`});let R=_(()=>({queryKey:[`batches`,a()],queryFn:()=>h(`${g()}/api/batches?page=${a()-1}&count=${F}`)}));w(a,L,()=>R.data),T(a,L,()=>!R.isPending&&!!R.data,()=>(R.data?.batches.length??0)===0);let{sorted:z,sort:B,toggle:V}=D(()=>R.data?.batches??[],I);return s(r,{get children(){return[s(i,{get when(){return R.isPending},get children(){var e=k();return f(e,s(O,{icon:`fa-table-cells-large`,get title(){return l(`nav.batches`)},get summary(){return l(`summaries.batches`)}}),null),f(e,s(p,{rows:8,cols:7}),null),e}}),s(i,{get when(){return R.isError||!R.data},get children(){var e=A();return f(e,()=>l(`common.error`)),e}}),s(i,{get when(){return R.data},children:r=>(()=>{var i=k();return f(i,s(O,{icon:`fa-table-cells-large`,get title(){return l(`nav.batches`)},get summary(){return l(`summaries.batches`)},get children(){var e=j();return f(e,()=>y(r().total)),e}}),null),f(i,s(t,{get when(){return z().length>0},get fallback(){return(()=>{var e=N();return f(e,()=>l(`common.empty`)),e})()},get children(){return[(()=>{var t=M(),r=t.firstChild.firstChild,i=r.firstChild,a=r.nextSibling;return f(i,s(E,{get label(){return l(`table.bid`)},sortKey:`bid`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.description`)},sortKey:`description`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.total`)},sortKey:`total`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.pending`)},sortKey:`pending`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.failures`)},sortKey:`failures`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.progress`)},sortKey:`progress`,get sort(){return B()},onSort:V}),null),f(i,s(E,{get label(){return l(`table.created`)},sortKey:`created`,get sort(){return B()},onSort:V}),null),f(a,s(e,{get each(){return z()},children:e=>{let t=e.total-e.pending,r=e.total>0?t/e.total*100:0;return(()=>{var t=P(),i=t.firstChild,a=i.nextSibling,l=a.nextSibling,d=l.nextSibling,p=d.nextSibling,h=p.nextSibling,g=h.firstChild.firstChild,_=g.firstChild,x=g.nextSibling,S=x.firstChild,C=h.nextSibling;return f(i,s(m,{get href(){return`/batches/${e.bid}`},get title(){return e.bid},get children(){return b(e.bid,14)}})),f(a,()=>b(e.description??`—`,40)),f(l,()=>y(e.total)),f(d,()=>y(e.pending)),f(p,()=>y(e.failures)),c(_,`width`,`${r}%`),f(x,()=>Math.round(r),S),f(C,(()=>{var t=o(()=>!!e.created_at);return()=>t()?v(e.created_at):`—`})()),n(t=>{var n=e.description??``,r=e.pending>0?`var(--warning)`:`var(--success)`,i=e.failures>0?`var(--danger)`:void 0,o=e.failures>0?`var(--danger)`:`var(--success)`;return n!==t.e&&u(a,`title`,t.e=n),r!==t.t&&c(d,`color`,t.t=r),i!==t.a&&c(p,`color`,t.a=i),o!==t.o&&c(_,`background`,t.o=o),t},{e:void 0,t:void 0,a:void 0,o:void 0}),t})()}})),t})(),s(S,{get page(){return a()},get total(){return r().total},count:F,get maxPage(){return x(r())},onChange:L})]}}),null),i})()})]}})}export{L as default};
@@ -1 +1 @@
1
- import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,g as s,j as c,l,m as u,o as d,p as f,q as p,u as m,z as h}from"./i18n-CJeYfeVt.js";import{_ as g,f as _,g as v,h as y,i as b,m as x,o as S,t as C,u as w,v as T}from"./index-DQujgZgH.js";import{a as E,c as D,i as O,l as k,n as A,s as j,u as M}from"./utils-BIKHwNKB.js";import{t as N}from"./PageHeader-DbC97afG.js";import{t as P}from"./ArgsValue-DsPb_KZ-.js";var F=a(`<code style=font-size:12px>`),I=a(`<span class="badge badge-accent">`),L=a(`<span>`),R=a(`<div class=table-wrapper><table><thead><tr><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody>`),z=a(`<div><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:0.75rem;margin-bottom:1rem"></div><div style=margin-bottom:0.25rem></div><div style=display:flex;flex-wrap:wrap;gap:0.25rem;margin-bottom:1rem></div><h3 class=section-title style=margin-bottom:0.5rem> <span class="badge badge-muted">`),B=a(`<div><div></div><div style=font-size:14px>`),V=a(`<span class="badge badge-muted">`),H=a(`<div class=empty-state style=padding:1rem>`),U=a(`<tr><td style=font-family:monospace;font-size:12px;color:var(--text-muted)></td><td style=font-weight:500></td><td><span class="badge badge-muted"></span></td><td></td><td>`),ee=a(`<span class="badge badge-muted"><i class="fa-solid fa-microchip"style=margin-right:0.35rem>`),te=a(`<span class="badge badge-muted"><i class="fa-solid fa-memory"style=margin-right:0.35rem>`),W=a(`<div style=display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;margin-bottom:0.75rem><span style=font-weight:600;font-size:15px><i class="fa-solid fa-server"style=color:var(--text-muted);margin-right:0.5rem></i></span><span class="badge badge-muted"> </span><span class="badge badge-muted"style=font-variant-numeric:tabular-nums> <!> / `),G=a(`<div>`),K=a(`<div class=empty-state style=color:var(--danger)>`),q=a(`<button class="btn btn-sm btn-ghost">`),J=a(`<button class="btn btn-sm btn-ghost btn-danger">`),Y=a(`<div style=display:flex;align-items:center;gap:0.6rem><span class="badge badge-muted"> `),X=a(`<div class=empty-state>`),Z=a(`<section style=margin-bottom:1.5rem><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(min(100%, 320px), 1fr));gap:1rem">`),ne=a(`<span class=live-dot>`),Q=a(`<span class="badge badge-accent"><i class="fa-solid fa-crown"style=margin-right:0.3rem>`),re=a(`<span class="badge badge-warning">Quiet`),ie=a(`<span class="badge badge-muted">embedded`),ae=a(`<div style=display:flex;gap:0.4rem;margin-top:0.85rem><button class="btn btn-sm"></button><button class="btn btn-sm btn-danger">`),oe=a(`<div class="card row-clickable"><div style=display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:0.75rem><div><div style=font-weight:600;font-size:15px>PID </div><div style=color:var(--text-muted);font-size:12px></div></div><div style=display:flex;gap:0.375rem></div></div><div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.5rem;margin-bottom:0.75rem"><div><div> / </div><div style=font-weight:600;font-size:18px;font-variant-numeric:tabular-nums> / </div></div><div><div></div><div style=font-size:13px></div></div><div><div></div><div style=font-size:13px></div></div></div><div class=progress-bar-track style=margin-bottom:0.75rem><div class=progress-bar-fill></div></div><div><div style=margin-bottom:0.25rem></div><div style=display:flex;flex-wrap:wrap;gap:0.25rem>`);function se(e){let t=new Map;for(let n of e){let e=t.get(n.hostname);e||(e={hostname:n.hostname,processes:[],busy:0,concurrency:0,rssKb:0},t.set(n.hostname,e)),e.processes.push(n),e.busy+=n.busy,e.concurrency+=n.concurrency,e.rssKb+=n.rss??0,e.cpuModel??=n.cpu_model??void 0,e.cores??=n.cores,e.memoryTotalKb??=n.memory_total_kb}return[...t.values()].sort((e,t)=>e.hostname.localeCompare(t.hostname))}function ce(e){return e>90?`var(--danger)`:e>70?`var(--warning)`:`var(--accent)`}var $={"font-size":`11px`,color:`var(--text-muted)`,"text-transform":`uppercase`,"letter-spacing":`0.04em`};function le(r){let i=T(()=>({queryKey:[`workers`],queryFn:()=>_(`${y()}/api/workers`),refetchInterval:5e3})),a=()=>(i.data??[]).filter(e=>e.process_id===r.proc.identity),o=()=>[[d(`busy.identity`),(()=>{var e=F();return m(e,()=>r.proc.identity),e})()],[d(`busy.leader`),r.proc.leader?(()=>{var e=I();return m(e,()=>d(`busy.leader`)),e})():`—`],[`PID`,r.proc.pid],[d(`busy.started`),r.proc.started_at?(()=>{var e=L();return m(e,()=>k(r.proc.started_at)),n(()=>f(e,`title`,j(r.proc.started_at))),e})():`—`],[d(`busy.heartbeat`),(()=>{var e=L();return m(e,()=>k(r.proc.beat)),n(()=>f(e,`title`,j(r.proc.beat))),e})()],[`${d(`table.busy`)} / ${d(`table.concurrency`)}`,`${r.proc.busy} / ${r.proc.concurrency}`],[d(`busy.rss`),E(r.proc.rss??0)],[d(`busy.rtt`),r.proc.rtt_us?`${(r.proc.rtt_us/1e3).toFixed(1)} ${d(`common.ms`)}`:`—`],[d(`busy.version`),r.proc.version??`—`],[d(`busy.tag`),r.proc.tag||`—`],[d(`busy.labels`),r.proc.labels?.length?r.proc.labels.join(`, `):`—`]];return(()=>{var i=z(),l=i.firstChild,u=l.nextSibling,p=u.nextSibling,h=p.nextSibling,g=h.firstChild,_=g.nextSibling;return m(l,c(e,{get each(){return o()},children:([e,t])=>(()=>{var r=B(),i=r.firstChild,a=i.nextSibling;return m(i,e),m(a,t),n(e=>s(i,$,e)),r})()})),m(u,()=>d(`table.queues`)),m(p,c(e,{get each(){return r.proc.queues},children:e=>(()=>{var t=V();return m(t,e),t})()})),m(h,()=>d(`busy.running_jobs`),g),m(_,()=>a().length),m(i,c(t,{get when(){return a().length>0},get fallback(){return(()=>{var e=H();return m(e,()=>d(`busy.no_running`)),e})()},get children(){var t=R(),r=t.firstChild.firstChild,i=r.firstChild.firstChild,o=i.nextSibling,s=o.nextSibling,l=s.nextSibling,u=l.nextSibling,p=r.nextSibling;return m(i,()=>d(`table.jid`)),m(o,()=>d(`table.class`)),m(s,()=>d(`table.queue`)),m(l,()=>d(`table.args`)),m(u,()=>d(`busy.running_since`)),m(p,c(e,{get each(){return a()},children:e=>(()=>{var t=U(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.firstChild,s=a.nextSibling,l=s.nextSibling;return m(r,()=>M(e.jid,12)),m(i,()=>e.klass),m(o,()=>e.queue),m(s,c(P,{get str(){return A(e.args)},max:40})),m(l,()=>k(e.run_at)),n(t=>{var n=e.jid,i=j(e.run_at);return n!==t.e&&f(r,`title`,t.e=n),i!==t.t&&f(l,`title`,t.t=i),t},{e:void 0,t:void 0}),t})()})),t}}),null),n(e=>s(u,{...$},e)),i})()}function ue(e){let r=()=>e.group.memoryTotalKb?Math.min(100,e.group.rssKb/e.group.memoryTotalKb*100):null;return(()=>{var i=W(),a=i.firstChild;a.firstChild;var s=a.nextSibling,l=s.firstChild,u=s.nextSibling,p=u.firstChild,h=p.nextSibling;return h.nextSibling,m(a,()=>e.group.hostname,null),m(s,()=>e.group.processes.length,l),m(s,()=>d(`dashboard.processes`).toLowerCase(),null),m(i,c(t,{get when(){return e.group.cpuModel},get children(){var t=ee();return t.firstChild,m(t,()=>M(e.group.cpuModel,40),null),n(()=>f(t,`title`,e.group.cpuModel??void 0)),t}}),u),m(i,c(t,{get when(){return o(()=>e.group.cores!=null)()&&e.group.cores>0},get children(){var t=V();return m(t,()=>d(`busy.cores`,{n:e.group.cores})),t}}),u),m(i,c(t,{get when(){return e.group.rssKb>0},get children(){var t=te();return t.firstChild,m(t,()=>E(e.group.rssKb),null),m(t,(()=>{var t=o(()=>!!e.group.memoryTotalKb);return()=>t()?` / ${E(e.group.memoryTotalKb)}`:``})(),null),n(()=>f(t,`title`,r()==null?void 0:`${r().toFixed(1)}% ${d(`busy.of_total_ram`)}`)),t}}),u),m(u,()=>d(`table.busy`),p),m(u,()=>e.group.busy,h),m(u,()=>e.group.concurrency,null),i})()}function de(){let a=w(),l=()=>a.data?.read_only??!1,A=v(),[j,M]=h(null);p(()=>{document.title=`${d(`nav.busy`)} — Wurk`});let P=T(()=>({queryKey:[`processes`],queryFn:()=>_(`${y()}/api/processes`),refetchInterval:5e3})),F=g(()=>({mutationFn:e=>x(`${y()}/api/busy/${e.signal}`,{identity:e.scope===`all`?`all`:e.identity}),onSuccess:()=>A.invalidateQueries({queryKey:[`processes`]}),onError:C})),I=e=>window.confirm(d(`actions.confirm`,{action:d(`actions.stop`),scope:e})),L=()=>(P.data??[]).some(e=>!e.embedded),R=()=>se(P.data??[]),z=()=>(P.data??[]).find(e=>e.identity===j())??null;return c(r,{get children(){return[c(i,{get when(){return P.isPending},get children(){var e=G();return m(e,c(N,{icon:`fa-gears`,get title(){return d(`nav.busy`)},get summary(){return d(`summaries.busy`)}}),null),m(e,c(b,{count:6}),null),e}}),c(i,{get when(){return P.isError||!P.data},get children(){var e=K();return m(e,()=>d(`common.error`)),e}}),c(i,{get when(){return P.data},children:r=>(()=>{var i=G();return m(i,c(N,{icon:`fa-gears`,get title(){return d(`nav.busy`)},get summary(){return d(`summaries.busy`)},get children(){var e=Y(),i=e.firstChild,a=i.firstChild;return m(i,()=>r().length,a),m(i,()=>d(`dashboard.processes`).toLowerCase(),null),m(e,c(t,{get when(){return R().length>1},get children(){var e=V();return m(e,()=>d(`busy.hosts`,{n:R().length})),e}}),null),m(e,c(t,{get when(){return o(()=>!l())()&&L()},get children(){return[(()=>{var e=q();return e.$$click=()=>F.mutate({signal:`quiet`,scope:`all`}),m(e,()=>`${d(`actions.quiet`)} ${d(`actions.all_suffix`)}`),n(()=>e.disabled=F.isPending),e})(),(()=>{var e=J();return e.$$click=()=>I(d(`actions.scope_all_processes`))&&F.mutate({signal:`stop`,scope:`all`}),m(e,()=>`${d(`actions.stop`)} ${d(`actions.all_suffix`)}`),n(()=>e.disabled=F.isPending),e})()]}}),null),e}}),null),m(i,c(t,{get when(){return r().length>0},get fallback(){return(()=>{var e=X();return m(e,()=>d(`common.empty`)),e})()},get children(){return c(e,{get each(){return R()},children:r=>(()=>{var i=Z(),a=i.firstChild;return m(i,c(ue,{group:r}),a),m(a,c(e,{get each(){return r.processes},children:r=>{let i=r.concurrency>0?r.busy/r.concurrency*100:0,a=D()-r.beat<30;return(()=>{var p=oe(),h=p.firstChild,g=h.firstChild,_=g.firstChild;_.firstChild;var v=_.nextSibling,y=g.nextSibling,b=h.nextSibling,x=b.firstChild,S=x.firstChild,C=S.firstChild,w=S.nextSibling,T=w.firstChild,A=x.nextSibling,j=A.firstChild,N=j.nextSibling,P=A.nextSibling.firstChild,L=P.nextSibling,R=b.nextSibling,z=R.firstChild,B=R.nextSibling.firstChild,H=B.nextSibling;return p.$$click=()=>r.identity&&M(r.identity),m(_,()=>r.pid,null),m(v,()=>r.tag||r.hostname,null),m(v,(()=>{var e=o(()=>!!r.started_at);return()=>e()?` · ${d(`busy.up_for`)} ${O(D()-r.started_at)}`:``})(),null),m(y,c(t,{when:a,get children(){var e=ne();return n(()=>f(e,`title`,d(`busy.heartbeat_ok`))),e}}),null),m(y,c(t,{get when(){return r.leader},get children(){var e=Q();return e.firstChild,m(e,()=>d(`busy.leader`),null),n(()=>f(e,`title`,d(`busy.leader_title`))),e}}),null),m(y,c(t,{get when(){return r.quiet},get children(){return re()}}),null),m(y,c(t,{get when(){return r.embedded},get children(){return ie()}}),null),m(S,()=>d(`table.busy`),C),m(S,()=>d(`table.concurrency`),null),m(w,()=>r.busy,T),m(w,()=>r.concurrency,null),m(j,()=>d(`busy.heartbeat`)),u(N,`color`,a?`var(--success)`:`var(--danger)`),m(N,()=>k(r.beat)),m(P,()=>d(`busy.rss`)),m(L,()=>E(r.rss??0)),u(z,`width`,`${i}%`),m(B,()=>d(`table.queues`)),m(H,c(e,{get each(){return r.queues},children:e=>(()=>{var t=V();return m(t,e),t})()})),m(p,c(t,{get when(){return o(()=>!l())()&&!r.embedded},get children(){var e=ae(),t=e.firstChild,i=t.nextSibling;return e.$$click=e=>e.stopPropagation(),t.$$click=()=>F.mutate({signal:`quiet`,scope:`one`,identity:r.identity}),m(t,()=>d(`actions.quiet`)),i.$$click=()=>I(d(`actions.scope_this_process`))&&F.mutate({signal:`stop`,scope:`one`,identity:r.identity}),m(i,()=>d(`actions.stop`)),n(e=>{var n=F.isPending,r=F.isPending;return n!==e.e&&(t.disabled=e.e=n),r!==e.t&&(i.disabled=e.t=r),e},{e:void 0,t:void 0}),e}}),null),n(e=>{var t=$,n=$,r=$,a=ce(i),o={...$};return e.e=s(S,t,e.e),e.t=s(j,n,e.t),e.a=s(P,r,e.a),a!==e.o&&u(z,`background`,e.o=a),e.i=s(B,o,e.i),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),p})()}})),i})()})}}),null),m(i,c(S,{get open(){return z()!==null},onClose:()=>M(null),get title(){return o(()=>!!z())()?`${z().hostname} · PID ${z().pid}`:``},width:780,get children(){return c(t,{get when(){return z()},children:e=>c(le,{get proc(){return e()}})})}}),null),i})()})]}})}l([`click`]);export{de as default};
1
+ import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,g as s,j as c,l,m as u,o as d,p as f,q as p,u as m,z as h}from"./i18n-B6AbnmJn.js";import{_ as g,f as _,g as v,h as y,i as b,m as x,o as S,t as C,u as w,v as T}from"./index-CTWV8VL4.js";import{a as E,c as D,i as O,l as k,n as A,s as j,u as M}from"./utils-DnzJXljj.js";import{t as N}from"./PageHeader-CeSaqysY.js";import{t as P}from"./ArgsValue-_MYkd_vA.js";var F=a(`<code style=font-size:12px>`),I=a(`<span class="badge badge-accent">`),L=a(`<span>`),R=a(`<div class=table-wrapper><table><thead><tr><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody>`),z=a(`<div><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:0.75rem;margin-bottom:1rem"></div><div style=margin-bottom:0.25rem></div><div style=display:flex;flex-wrap:wrap;gap:0.25rem;margin-bottom:1rem></div><h3 class=section-title style=margin-bottom:0.5rem> <span class="badge badge-muted">`),B=a(`<div><div></div><div style=font-size:14px>`),V=a(`<span class="badge badge-muted">`),H=a(`<div class=empty-state style=padding:1rem>`),U=a(`<tr><td style=font-family:monospace;font-size:12px;color:var(--text-muted)></td><td style=font-weight:500></td><td><span class="badge badge-muted"></span></td><td></td><td>`),ee=a(`<span class="badge badge-muted"><i class="fa-solid fa-microchip"style=margin-right:0.35rem>`),te=a(`<span class="badge badge-muted"><i class="fa-solid fa-memory"style=margin-right:0.35rem>`),W=a(`<div style=display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;margin-bottom:0.75rem><span style=font-weight:600;font-size:15px><i class="fa-solid fa-server"style=color:var(--text-muted);margin-right:0.5rem></i></span><span class="badge badge-muted"> </span><span class="badge badge-muted"style=font-variant-numeric:tabular-nums> <!> / `),G=a(`<div>`),K=a(`<div class=empty-state style=color:var(--danger)>`),q=a(`<button class="btn btn-sm btn-ghost">`),J=a(`<button class="btn btn-sm btn-ghost btn-danger">`),Y=a(`<div style=display:flex;align-items:center;gap:0.6rem><span class="badge badge-muted"> `),X=a(`<div class=empty-state>`),Z=a(`<section style=margin-bottom:1.5rem><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(min(100%, 320px), 1fr));gap:1rem">`),ne=a(`<span class=live-dot>`),Q=a(`<span class="badge badge-accent"><i class="fa-solid fa-crown"style=margin-right:0.3rem>`),re=a(`<span class="badge badge-warning">Quiet`),ie=a(`<span class="badge badge-muted">embedded`),ae=a(`<div style=display:flex;gap:0.4rem;margin-top:0.85rem><button class="btn btn-sm"></button><button class="btn btn-sm btn-danger">`),oe=a(`<div class="card row-clickable"><div style=display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:0.75rem><div><div style=font-weight:600;font-size:15px>PID </div><div style=color:var(--text-muted);font-size:12px></div></div><div style=display:flex;gap:0.375rem></div></div><div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.5rem;margin-bottom:0.75rem"><div><div> / </div><div style=font-weight:600;font-size:18px;font-variant-numeric:tabular-nums> / </div></div><div><div></div><div style=font-size:13px></div></div><div><div></div><div style=font-size:13px></div></div></div><div class=progress-bar-track style=margin-bottom:0.75rem><div class=progress-bar-fill></div></div><div><div style=margin-bottom:0.25rem></div><div style=display:flex;flex-wrap:wrap;gap:0.25rem>`);function se(e){let t=new Map;for(let n of e){let e=t.get(n.hostname);e||(e={hostname:n.hostname,processes:[],busy:0,concurrency:0,rssKb:0},t.set(n.hostname,e)),e.processes.push(n),e.busy+=n.busy,e.concurrency+=n.concurrency,e.rssKb+=n.rss??0,e.cpuModel??=n.cpu_model??void 0,e.cores??=n.cores,e.memoryTotalKb??=n.memory_total_kb}return[...t.values()].sort((e,t)=>e.hostname.localeCompare(t.hostname))}function ce(e){return e>90?`var(--danger)`:e>70?`var(--warning)`:`var(--accent)`}var $={"font-size":`11px`,color:`var(--text-muted)`,"text-transform":`uppercase`,"letter-spacing":`0.04em`};function le(r){let i=T(()=>({queryKey:[`workers`],queryFn:()=>_(`${y()}/api/workers`),refetchInterval:5e3})),a=()=>(i.data??[]).filter(e=>e.process_id===r.proc.identity),o=()=>[[d(`busy.identity`),(()=>{var e=F();return m(e,()=>r.proc.identity),e})()],[d(`busy.leader`),r.proc.leader?(()=>{var e=I();return m(e,()=>d(`busy.leader`)),e})():`—`],[`PID`,r.proc.pid],[d(`busy.started`),r.proc.started_at?(()=>{var e=L();return m(e,()=>k(r.proc.started_at)),n(()=>f(e,`title`,j(r.proc.started_at))),e})():`—`],[d(`busy.heartbeat`),(()=>{var e=L();return m(e,()=>k(r.proc.beat)),n(()=>f(e,`title`,j(r.proc.beat))),e})()],[`${d(`table.busy`)} / ${d(`table.concurrency`)}`,`${r.proc.busy} / ${r.proc.concurrency}`],[d(`busy.rss`),E(r.proc.rss??0)],[d(`busy.rtt`),r.proc.rtt_us?`${(r.proc.rtt_us/1e3).toFixed(1)} ${d(`common.ms`)}`:`—`],[d(`busy.version`),r.proc.version??`—`],[d(`busy.tag`),r.proc.tag||`—`],[d(`busy.labels`),r.proc.labels?.length?r.proc.labels.join(`, `):`—`]];return(()=>{var i=z(),l=i.firstChild,u=l.nextSibling,p=u.nextSibling,h=p.nextSibling,g=h.firstChild,_=g.nextSibling;return m(l,c(e,{get each(){return o()},children:([e,t])=>(()=>{var r=B(),i=r.firstChild,a=i.nextSibling;return m(i,e),m(a,t),n(e=>s(i,$,e)),r})()})),m(u,()=>d(`table.queues`)),m(p,c(e,{get each(){return r.proc.queues},children:e=>(()=>{var t=V();return m(t,e),t})()})),m(h,()=>d(`busy.running_jobs`),g),m(_,()=>a().length),m(i,c(t,{get when(){return a().length>0},get fallback(){return(()=>{var e=H();return m(e,()=>d(`busy.no_running`)),e})()},get children(){var t=R(),r=t.firstChild.firstChild,i=r.firstChild.firstChild,o=i.nextSibling,s=o.nextSibling,l=s.nextSibling,u=l.nextSibling,p=r.nextSibling;return m(i,()=>d(`table.jid`)),m(o,()=>d(`table.class`)),m(s,()=>d(`table.queue`)),m(l,()=>d(`table.args`)),m(u,()=>d(`busy.running_since`)),m(p,c(e,{get each(){return a()},children:e=>(()=>{var t=U(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.firstChild,s=a.nextSibling,l=s.nextSibling;return m(r,()=>M(e.jid,12)),m(i,()=>e.klass),m(o,()=>e.queue),m(s,c(P,{get str(){return A(e.args)},max:40})),m(l,()=>k(e.run_at)),n(t=>{var n=e.jid,i=j(e.run_at);return n!==t.e&&f(r,`title`,t.e=n),i!==t.t&&f(l,`title`,t.t=i),t},{e:void 0,t:void 0}),t})()})),t}}),null),n(e=>s(u,{...$},e)),i})()}function ue(e){let r=()=>e.group.memoryTotalKb?Math.min(100,e.group.rssKb/e.group.memoryTotalKb*100):null;return(()=>{var i=W(),a=i.firstChild;a.firstChild;var s=a.nextSibling,l=s.firstChild,u=s.nextSibling,p=u.firstChild,h=p.nextSibling;return h.nextSibling,m(a,()=>e.group.hostname,null),m(s,()=>e.group.processes.length,l),m(s,()=>d(`dashboard.processes`).toLowerCase(),null),m(i,c(t,{get when(){return e.group.cpuModel},get children(){var t=ee();return t.firstChild,m(t,()=>M(e.group.cpuModel,40),null),n(()=>f(t,`title`,e.group.cpuModel??void 0)),t}}),u),m(i,c(t,{get when(){return o(()=>e.group.cores!=null)()&&e.group.cores>0},get children(){var t=V();return m(t,()=>d(`busy.cores`,{n:e.group.cores})),t}}),u),m(i,c(t,{get when(){return e.group.rssKb>0},get children(){var t=te();return t.firstChild,m(t,()=>E(e.group.rssKb),null),m(t,(()=>{var t=o(()=>!!e.group.memoryTotalKb);return()=>t()?` / ${E(e.group.memoryTotalKb)}`:``})(),null),n(()=>f(t,`title`,r()==null?void 0:`${r().toFixed(1)}% ${d(`busy.of_total_ram`)}`)),t}}),u),m(u,()=>d(`table.busy`),p),m(u,()=>e.group.busy,h),m(u,()=>e.group.concurrency,null),i})()}function de(){let a=w(),l=()=>a.data?.read_only??!1,A=v(),[j,M]=h(null);p(()=>{document.title=`${d(`nav.busy`)} — Wurk`});let P=T(()=>({queryKey:[`processes`],queryFn:()=>_(`${y()}/api/processes`),refetchInterval:5e3})),F=g(()=>({mutationFn:e=>x(`${y()}/api/busy/${e.signal}`,{identity:e.scope===`all`?`all`:e.identity}),onSuccess:()=>A.invalidateQueries({queryKey:[`processes`]}),onError:C})),I=e=>window.confirm(d(`actions.confirm`,{action:d(`actions.stop`),scope:e})),L=()=>(P.data??[]).some(e=>!e.embedded),R=()=>se(P.data??[]),z=()=>(P.data??[]).find(e=>e.identity===j())??null;return c(r,{get children(){return[c(i,{get when(){return P.isPending},get children(){var e=G();return m(e,c(N,{icon:`fa-gears`,get title(){return d(`nav.busy`)},get summary(){return d(`summaries.busy`)}}),null),m(e,c(b,{count:6}),null),e}}),c(i,{get when(){return P.isError||!P.data},get children(){var e=K();return m(e,()=>d(`common.error`)),e}}),c(i,{get when(){return P.data},children:r=>(()=>{var i=G();return m(i,c(N,{icon:`fa-gears`,get title(){return d(`nav.busy`)},get summary(){return d(`summaries.busy`)},get children(){var e=Y(),i=e.firstChild,a=i.firstChild;return m(i,()=>r().length,a),m(i,()=>d(`dashboard.processes`).toLowerCase(),null),m(e,c(t,{get when(){return R().length>1},get children(){var e=V();return m(e,()=>d(`busy.hosts`,{n:R().length})),e}}),null),m(e,c(t,{get when(){return o(()=>!l())()&&L()},get children(){return[(()=>{var e=q();return e.$$click=()=>F.mutate({signal:`quiet`,scope:`all`}),m(e,()=>`${d(`actions.quiet`)} ${d(`actions.all_suffix`)}`),n(()=>e.disabled=F.isPending),e})(),(()=>{var e=J();return e.$$click=()=>I(d(`actions.scope_all_processes`))&&F.mutate({signal:`stop`,scope:`all`}),m(e,()=>`${d(`actions.stop`)} ${d(`actions.all_suffix`)}`),n(()=>e.disabled=F.isPending),e})()]}}),null),e}}),null),m(i,c(t,{get when(){return r().length>0},get fallback(){return(()=>{var e=X();return m(e,()=>d(`common.empty`)),e})()},get children(){return c(e,{get each(){return R()},children:r=>(()=>{var i=Z(),a=i.firstChild;return m(i,c(ue,{group:r}),a),m(a,c(e,{get each(){return r.processes},children:r=>{let i=r.concurrency>0?r.busy/r.concurrency*100:0,a=D()-r.beat<30;return(()=>{var p=oe(),h=p.firstChild,g=h.firstChild,_=g.firstChild;_.firstChild;var v=_.nextSibling,y=g.nextSibling,b=h.nextSibling,x=b.firstChild,S=x.firstChild,C=S.firstChild,w=S.nextSibling,T=w.firstChild,A=x.nextSibling,j=A.firstChild,N=j.nextSibling,P=A.nextSibling.firstChild,L=P.nextSibling,R=b.nextSibling,z=R.firstChild,B=R.nextSibling.firstChild,H=B.nextSibling;return p.$$click=()=>r.identity&&M(r.identity),m(_,()=>r.pid,null),m(v,()=>r.tag||r.hostname,null),m(v,(()=>{var e=o(()=>!!r.started_at);return()=>e()?` · ${d(`busy.up_for`)} ${O(D()-r.started_at)}`:``})(),null),m(y,c(t,{when:a,get children(){var e=ne();return n(()=>f(e,`title`,d(`busy.heartbeat_ok`))),e}}),null),m(y,c(t,{get when(){return r.leader},get children(){var e=Q();return e.firstChild,m(e,()=>d(`busy.leader`),null),n(()=>f(e,`title`,d(`busy.leader_title`))),e}}),null),m(y,c(t,{get when(){return r.quiet},get children(){return re()}}),null),m(y,c(t,{get when(){return r.embedded},get children(){return ie()}}),null),m(S,()=>d(`table.busy`),C),m(S,()=>d(`table.concurrency`),null),m(w,()=>r.busy,T),m(w,()=>r.concurrency,null),m(j,()=>d(`busy.heartbeat`)),u(N,`color`,a?`var(--success)`:`var(--danger)`),m(N,()=>k(r.beat)),m(P,()=>d(`busy.rss`)),m(L,()=>E(r.rss??0)),u(z,`width`,`${i}%`),m(B,()=>d(`table.queues`)),m(H,c(e,{get each(){return r.queues},children:e=>(()=>{var t=V();return m(t,e),t})()})),m(p,c(t,{get when(){return o(()=>!l())()&&!r.embedded},get children(){var e=ae(),t=e.firstChild,i=t.nextSibling;return e.$$click=e=>e.stopPropagation(),t.$$click=()=>F.mutate({signal:`quiet`,scope:`one`,identity:r.identity}),m(t,()=>d(`actions.quiet`)),i.$$click=()=>I(d(`actions.scope_this_process`))&&F.mutate({signal:`stop`,scope:`one`,identity:r.identity}),m(i,()=>d(`actions.stop`)),n(e=>{var n=F.isPending,r=F.isPending;return n!==e.e&&(t.disabled=e.e=n),r!==e.t&&(i.disabled=e.t=r),e},{e:void 0,t:void 0}),e}}),null),n(e=>{var t=$,n=$,r=$,a=ce(i),o={...$};return e.e=s(S,t,e.e),e.t=s(j,n,e.t),e.a=s(P,r,e.a),a!==e.o&&u(z,`background`,e.o=a),e.i=s(B,o,e.i),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),p})()}})),i})()})}}),null),m(i,c(S,{get open(){return z()!==null},onClose:()=>M(null),get title(){return o(()=>!!z())()?`${z().hostname} · PID ${z().pid}`:``},width:780,get children(){return c(t,{get when(){return z()},children:e=>c(le,{get proc(){return e()}})})}}),null),i})()})]}})}l([`click`]);export{de as default};
@@ -1 +1 @@
1
- import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,l as c,m as l,o as u,p as d,q as f,u as p,z as m}from"./i18n-CJeYfeVt.js";import{_ as h,a as g,f as _,g as v,h as y,m as b,o as x,t as S,u as C,v as w}from"./index-DQujgZgH.js";import{l as T,s as E,u as D}from"./utils-BIKHwNKB.js";import{n as O,t as k}from"./useSort-xfnwjQAu.js";import{t as A}from"./PageHeader-DbC97afG.js";var j=a(`<div>`),M=a(`<div class=empty-state style=color:var(--danger)>`),N=a(`<span class="badge badge-muted">`),P=a(`<th>`),F=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),I=a(`<div class=empty-state>`),L=a(`<td><div style=display:flex;gap:0.4rem><button class="btn btn-sm"></button><button class="btn btn-sm">`),R=a(`<tr class=row-clickable><td style=font-family:monospace;font-size:12px></td><td></td><td></td><td style=color:var(--text-muted)></td><td></td><td>`),z=a(`<span class="badge badge-success">`),B=a(`<div class=table-wrapper><table><thead><tr><th></th><th></th></tr></thead><tbody>`),V=a(`<tr><td style=color:var(--text-muted)></td><td style=font-family:monospace;font-size:12px>`),H={schedule:e=>e.schedule,klass:e=>e.klass,queue:e=>e.queue,last_fire:e=>e.last_fire_at,next_fire:e=>e.next_fire_at,status:e=>e.paused?`paused`:`active`};function U(){let a=v(),c=C(),U=()=>c.data?.read_only??!1,[W,G]=m(null);f(()=>{document.title=`${u(`nav.cron`)} — Wurk`});let K=w(()=>({queryKey:[`cron`],queryFn:()=>_(`${y()}/api/cron`),refetchInterval:15e3})),q=(e,t)=>b(`${y()}/api/cron/${e}/${t}`),J=h(()=>({mutationFn:({lid:e,paused:t})=>q(e,t?`unpause`:`pause`),onSuccess:()=>a.invalidateQueries({queryKey:[`cron`]}),onError:S})),Y=h(()=>({mutationFn:e=>q(e,`enqueue`),onSuccess:()=>a.invalidateQueries({queryKey:[`cron`]}),onError:S})),X=w(()=>({queryKey:[`cron-history`,W()?.lid],queryFn:()=>_(`${y()}/api/cron/${W().lid}/history`).then(e=>e.history),enabled:W()!==null})),{sorted:Z,sort:Q,toggle:$}=k(()=>K.data??[],H);return s(r,{get children(){return[s(i,{get when(){return K.isPending},get children(){var e=j();return p(e,s(A,{icon:`fa-stopwatch`,get title(){return u(`nav.cron`)},get summary(){return u(`summaries.cron`)}}),null),p(e,s(g,{rows:8,get cols(){return U()?6:7}}),null),e}}),s(i,{get when(){return K.isError||!K.data},get children(){var e=M();return p(e,()=>u(`common.error`)),e}}),s(i,{get when(){return K.data},children:a=>(()=>{var c=j();return p(c,s(A,{icon:`fa-stopwatch`,get title(){return u(`nav.cron`)},get summary(){return u(`summaries.cron`)},get children(){var e=N();return p(e,()=>a().length),e}}),null),p(c,s(t,{get when(){return a().length>0},get fallback(){return(()=>{var e=I();return p(e,()=>u(`common.empty`)),e})()},get children(){var r=F(),i=r.firstChild.firstChild,a=i.firstChild,c=i.nextSibling;return p(a,s(O,{get label(){return u(`table.schedule`)},sortKey:`schedule`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`table.class`)},sortKey:`klass`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`table.queue`)},sortKey:`queue`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`cron.last_fire`)},sortKey:`last_fire`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`cron.next_fire`)},sortKey:`next_fire`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`table.status`)},sortKey:`status`,get sort(){return Q()},onSort:$}),null),p(a,s(t,{get when(){return!U()},get children(){return P()}}),null),p(c,s(e,{get each(){return Z()},children:e=>(()=>{var r=R(),i=r.firstChild,a=i.nextSibling,c=a.nextSibling,f=c.nextSibling,m=f.nextSibling,h=m.nextSibling;return r.$$click=()=>G(e),p(i,()=>e.schedule),p(a,()=>D(e.klass,32)),p(c,()=>e.queue),p(f,(()=>{var t=o(()=>!!e.last_fire_at);return()=>t()?T(e.last_fire_at):`—`})()),p(m,(()=>{var t=o(()=>!!e.paused);return()=>t()?`—`:o(()=>!!e.next_fire_at)()?T(e.next_fire_at):`—`})()),p(h,s(t,{get when(){return e.paused},get fallback(){return(()=>{var e=z();return p(e,()=>u(`dashboard.active`)),e})()},get children(){var e=N();return p(e,()=>u(`dashboard.paused`)),e}})),p(r,s(t,{get when(){return!U()},get children(){var t=L(),r=t.firstChild.firstChild,i=r.nextSibling;return t.$$click=e=>e.stopPropagation(),r.$$click=()=>J.mutate({lid:e.lid,paused:e.paused}),p(r,(()=>{var t=o(()=>!!e.paused);return()=>t()?u(`actions.unpause`):u(`actions.pause`)})()),i.$$click=()=>Y.mutate(e.lid),p(i,()=>u(`actions.enqueue`)),n(e=>{var t=J.isPending,n=Y.isPending;return t!==e.e&&(r.disabled=e.e=t),n!==e.t&&(i.disabled=e.t=n),e},{e:void 0,t:void 0}),t}}),null),n(t=>{var n=e.tz??void 0,r=e.klass,o=e.paused?`var(--text-muted)`:`var(--accent)`;return n!==t.e&&d(i,`title`,t.e=n),r!==t.t&&d(a,`title`,t.t=r),o!==t.a&&l(m,`color`,t.a=o),t},{e:void 0,t:void 0,a:void 0}),r})()})),r}}),null),p(c,s(x,{get open(){return W()!==null},onClose:()=>G(null),get title(){return o(()=>!!W())()?`${u(`cron.history_title`)} — ${D(W().klass,40)}`:u(`cron.history_title`)},get children(){return s(r,{get children(){return[s(i,{get when(){return X.isPending},get children(){return s(g,{rows:6,cols:2})}}),s(i,{get when(){return X.isError},get children(){var e=M();return p(e,()=>u(`common.error`)),e}}),s(i,{get when(){return!X.data||X.data.length===0},get children(){var e=I();return p(e,()=>u(`cron.no_history`)),e}}),s(i,{get when(){return X.data},children:t=>(()=>{var r=B(),i=r.firstChild.firstChild,a=i.firstChild.firstChild,o=a.nextSibling,c=i.nextSibling;return p(a,()=>u(`cron.fired`)),p(o,()=>u(`table.jid`)),p(c,s(e,{get each(){return t()},children:([e,t])=>(()=>{var r=V(),i=r.firstChild,a=i.nextSibling;return p(i,()=>T(e)),p(a,t),n(()=>d(i,`title`,E(e))),r})()})),r})()})]}})}}),null),c})()})]}})}c([`click`]);export{U as default};
1
+ import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,l as c,m as l,o as u,p as d,q as f,u as p,z as m}from"./i18n-B6AbnmJn.js";import{_ as h,a as g,f as _,g as v,h as y,m as b,o as x,t as S,u as C,v as w}from"./index-CTWV8VL4.js";import{l as T,s as E,u as D}from"./utils-DnzJXljj.js";import{n as O,t as k}from"./useSort-BWWfpnZH.js";import{t as A}from"./PageHeader-CeSaqysY.js";var j=a(`<div>`),M=a(`<div class=empty-state style=color:var(--danger)>`),N=a(`<span class="badge badge-muted">`),P=a(`<th>`),F=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),I=a(`<div class=empty-state>`),L=a(`<td><div style=display:flex;gap:0.4rem><button class="btn btn-sm"></button><button class="btn btn-sm">`),R=a(`<tr class=row-clickable><td style=font-family:monospace;font-size:12px></td><td></td><td></td><td style=color:var(--text-muted)></td><td></td><td>`),z=a(`<span class="badge badge-success">`),B=a(`<div class=table-wrapper><table><thead><tr><th></th><th></th></tr></thead><tbody>`),V=a(`<tr><td style=color:var(--text-muted)></td><td style=font-family:monospace;font-size:12px>`),H={schedule:e=>e.schedule,klass:e=>e.klass,queue:e=>e.queue,last_fire:e=>e.last_fire_at,next_fire:e=>e.next_fire_at,status:e=>e.paused?`paused`:`active`};function U(){let a=v(),c=C(),U=()=>c.data?.read_only??!1,[W,G]=m(null);f(()=>{document.title=`${u(`nav.cron`)} — Wurk`});let K=w(()=>({queryKey:[`cron`],queryFn:()=>_(`${y()}/api/cron`),refetchInterval:15e3})),q=(e,t)=>b(`${y()}/api/cron/${e}/${t}`),J=h(()=>({mutationFn:({lid:e,paused:t})=>q(e,t?`unpause`:`pause`),onSuccess:()=>a.invalidateQueries({queryKey:[`cron`]}),onError:S})),Y=h(()=>({mutationFn:e=>q(e,`enqueue`),onSuccess:()=>a.invalidateQueries({queryKey:[`cron`]}),onError:S})),X=w(()=>({queryKey:[`cron-history`,W()?.lid],queryFn:()=>_(`${y()}/api/cron/${W().lid}/history`).then(e=>e.history),enabled:W()!==null})),{sorted:Z,sort:Q,toggle:$}=k(()=>K.data??[],H);return s(r,{get children(){return[s(i,{get when(){return K.isPending},get children(){var e=j();return p(e,s(A,{icon:`fa-stopwatch`,get title(){return u(`nav.cron`)},get summary(){return u(`summaries.cron`)}}),null),p(e,s(g,{rows:8,get cols(){return U()?6:7}}),null),e}}),s(i,{get when(){return K.isError||!K.data},get children(){var e=M();return p(e,()=>u(`common.error`)),e}}),s(i,{get when(){return K.data},children:a=>(()=>{var c=j();return p(c,s(A,{icon:`fa-stopwatch`,get title(){return u(`nav.cron`)},get summary(){return u(`summaries.cron`)},get children(){var e=N();return p(e,()=>a().length),e}}),null),p(c,s(t,{get when(){return a().length>0},get fallback(){return(()=>{var e=I();return p(e,()=>u(`common.empty`)),e})()},get children(){var r=F(),i=r.firstChild.firstChild,a=i.firstChild,c=i.nextSibling;return p(a,s(O,{get label(){return u(`table.schedule`)},sortKey:`schedule`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`table.class`)},sortKey:`klass`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`table.queue`)},sortKey:`queue`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`cron.last_fire`)},sortKey:`last_fire`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`cron.next_fire`)},sortKey:`next_fire`,get sort(){return Q()},onSort:$}),null),p(a,s(O,{get label(){return u(`table.status`)},sortKey:`status`,get sort(){return Q()},onSort:$}),null),p(a,s(t,{get when(){return!U()},get children(){return P()}}),null),p(c,s(e,{get each(){return Z()},children:e=>(()=>{var r=R(),i=r.firstChild,a=i.nextSibling,c=a.nextSibling,f=c.nextSibling,m=f.nextSibling,h=m.nextSibling;return r.$$click=()=>G(e),p(i,()=>e.schedule),p(a,()=>D(e.klass,32)),p(c,()=>e.queue),p(f,(()=>{var t=o(()=>!!e.last_fire_at);return()=>t()?T(e.last_fire_at):`—`})()),p(m,(()=>{var t=o(()=>!!e.paused);return()=>t()?`—`:o(()=>!!e.next_fire_at)()?T(e.next_fire_at):`—`})()),p(h,s(t,{get when(){return e.paused},get fallback(){return(()=>{var e=z();return p(e,()=>u(`dashboard.active`)),e})()},get children(){var e=N();return p(e,()=>u(`dashboard.paused`)),e}})),p(r,s(t,{get when(){return!U()},get children(){var t=L(),r=t.firstChild.firstChild,i=r.nextSibling;return t.$$click=e=>e.stopPropagation(),r.$$click=()=>J.mutate({lid:e.lid,paused:e.paused}),p(r,(()=>{var t=o(()=>!!e.paused);return()=>t()?u(`actions.unpause`):u(`actions.pause`)})()),i.$$click=()=>Y.mutate(e.lid),p(i,()=>u(`actions.enqueue`)),n(e=>{var t=J.isPending,n=Y.isPending;return t!==e.e&&(r.disabled=e.e=t),n!==e.t&&(i.disabled=e.t=n),e},{e:void 0,t:void 0}),t}}),null),n(t=>{var n=e.tz??void 0,r=e.klass,o=e.paused?`var(--text-muted)`:`var(--accent)`;return n!==t.e&&d(i,`title`,t.e=n),r!==t.t&&d(a,`title`,t.t=r),o!==t.a&&l(m,`color`,t.a=o),t},{e:void 0,t:void 0,a:void 0}),r})()})),r}}),null),p(c,s(x,{get open(){return W()!==null},onClose:()=>G(null),get title(){return o(()=>!!W())()?`${u(`cron.history_title`)} — ${D(W().klass,40)}`:u(`cron.history_title`)},get children(){return s(r,{get children(){return[s(i,{get when(){return X.isPending},get children(){return s(g,{rows:6,cols:2})}}),s(i,{get when(){return X.isError},get children(){var e=M();return p(e,()=>u(`common.error`)),e}}),s(i,{get when(){return!X.data||X.data.length===0},get children(){var e=I();return p(e,()=>u(`cron.no_history`)),e}}),s(i,{get when(){return X.data},children:t=>(()=>{var r=B(),i=r.firstChild.firstChild,a=i.firstChild.firstChild,o=a.nextSibling,c=i.nextSibling;return p(a,()=>u(`cron.fired`)),p(o,()=>u(`table.jid`)),p(c,s(e,{get each(){return t()},children:([e,t])=>(()=>{var r=V(),i=r.firstChild,a=i.nextSibling;return p(i,()=>T(e)),p(a,t),n(()=>d(i,`title`,E(e))),r})()})),r})()})]}})}}),null),c})()})]}})}c([`click`]);export{U as default};
@@ -1 +1 @@
1
- import{C as e,E as t,F as n,I as r,K as i,O as a,P as o,T as s,_ as c,c as l,d as u,j as d,l as f,o as p,p as m,q as h,u as g,z as _}from"./i18n-CJeYfeVt.js";import{a as v,b as y,c as b,f as x,h as S,i as C,r as w,s as T,v as E}from"./index-DQujgZgH.js";import{i as D,o as O,r as k}from"./utils-BIKHwNKB.js";import{t as A}from"./PageHeader-DbC97afG.js";import{r as ee}from"./charts-uDyf4PN0.js";var j=e=>1-(1-e)**3,M=()=>typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;function N(e,t=700){let[n,r]=_(0),a=0,s=null;return o(()=>{let n=e();if(M()||!Number.isFinite(n)){a=n,r(n);return}let o=a;if(o===n)return;let c=performance.now(),l=e=>{let i=Math.min((e-c)/t,1),u=o+(n-o)*j(i);a=u,r(u),i<1&&(s=requestAnimationFrame(l))};s=requestAnimationFrame(l),i(()=>{s!==null&&cancelAnimationFrame(s)})}),n}function P(e){let t=N(()=>e.value);return u(()=>O(Math.round(t())))}var F=c(`<span class=obs-metric__sub>`),I=c(`<span class=obs-metric__sub><span> <!>%</span> `),L=c(`<div class=obs>`),R=c(`<div class=obs><div class=empty-state style=color:var(--danger)>`),z=c(`<div class=obs><div class=empty-state>`),B=c(`<div class=obs-metric__head><span class=obs-mono></span><i class="fa-solid fa-circle-check obs-metric__icon"aria-hidden=true>`),V=c(`<span class=obs-metric__value>`),H=c(`<i class="fa-solid fa-arrow-right obs-card__go"aria-hidden=true>`),U=c(`<div class=obs-metric__head><span class=obs-mono></span><i class="fa-solid fa-triangle-exclamation obs-metric__icon"aria-hidden=true>`),W=c(`<div class=obs-metric__head><span class=obs-mono></span><i class="fa-solid fa-ban obs-metric__icon"aria-hidden=true>`),G=c(`<div class=obs-metric__head><span class=obs-mono></span><i class="fa-solid fa-spinner obs-metric__icon"aria-hidden=true>`),K=c(`<span class=obs-mono>`),q=c(`<span class=obs-stat__value>`),J=c(`<i class="fa-solid fa-arrow-right"aria-hidden=true>`),te=c(`<div class=obs-tablescroll><table><thead><tr><th>Name</th><th></th><th></th><th></th></tr></thead><tbody>`),ne=c(`<div class=obs><div class=obs-metrics></div><div class="obs-card obs-panel"><div class=obs-panel__head><div><h2 class=obs-panel__title></h2><p class=obs-panel__sub></p></div><div class=obs-panel__controls><div class=obs-seg role=tablist></div><div class=obs-legend><span><i class="dot dot--processed"></i> </span><span><i class="dot dot--failed"></i> </span></div></div></div><div class=obs-chartbox></div></div><div class=obs-stats></div><div class="obs-card obs-table"><div class=obs-table__head><h2 class=obs-table__title></h2></div></div><div class="obs-card obs-cta"><span class=obs-cta__icon><i class="fa-solid fa-bolt"aria-hidden=true></i></span><h2 class=obs-cta__title></h2><p class=obs-cta__text></p><div class=obs-cta__actions><a class="obs-btn obs-btn--primary"href=https://developerz-ai.github.io/wurk/ target=_blank rel=noreferrer><i class="fa-solid fa-download"aria-hidden=true></i> </a><a class="obs-btn obs-btn--ghost"href=https://github.com/developerz-ai/wurk/wiki target=_blank rel=noreferrer><i class="fa-solid fa-book"aria-hidden=true></i> `),re=c(`<button role=tab>`),ie=c(`<div class=empty-state style=height:320px;display:grid;place-items:center>`),ae=c(`<div class=empty-state>`),oe=c(`<span class="obs-chip obs-chip--paused">`),se=c(`<tr><td style=font-weight:500;color:var(--obs-text)></td><td></td><td></td><td>`),ce=c(`<span class="obs-chip obs-chip--active">`);function Y(e,t){if(e.length<2)return null;let n=e[e.length-1].at,r=0,i=0;for(let a of e)a.at>n-3600?r+=a[t]:a.at>n-7200&&(i+=a[t]);return i===0?r===0?null:100:Math.round((r-i)/i*100)}var X=[{key:`1h`,bucket:`1m`,window:`24h`,slice:60,desc_key:`dashboard.range_1h_desc`},{key:`24h`,bucket:`1m`,window:`24h`,desc_key:`dashboard.range_24h_desc`},{key:`7d`,bucket:`5m`,window:`7d`,desc_key:`dashboard.range_7d_desc`},{key:`30d`,bucket:`1h`,window:`30d`,desc_key:`dashboard.range_30d_desc`}];function Z(e){return d(t,{get when(){return e.pct!==null},get fallback(){return(()=>{var e=F();return g(e,()=>p(`dashboard.vs_last_hour`)),e})()},get children(){return(()=>{let t=()=>e.pct>=0,n=()=>t()===e.goodWhenUp;return(()=>{var i=I(),a=i.firstChild,o=a.firstChild,s=o.nextSibling;return s.nextSibling,a.nextSibling,g(a,()=>t()?`▲`:`▼`,o),g(a,()=>t()?`+`:``,s),g(a,()=>e.pct,s),g(i,()=>p(`dashboard.vs_last_hour`),null),r(()=>l(a,n()?`up`:`down`)),i})()})()}})}function Q(){let i=b(),[o,c]=_(0),f=()=>X[o()];h(()=>{document.title=`${p(`nav.dashboard`)} — Wurk`});let O=E(()=>({queryKey:[`stats`],queryFn:()=>x(`${S()}/api/stats`),enabled:!i.connected(),refetchInterval:!i.connected()&&5e3})),j=E(()=>({queryKey:[`history`,f().bucket,f().window],queryFn:()=>x(`${S()}/api/history/${f().bucket}?window=${f().window}`),refetchInterval:3e4})),M=()=>i.stats()??O.data??null,N=n(()=>(j.data?.series??[]).map(e=>({...e,label:k(e.at,f().bucket,T)}))),I=n(()=>{let e=f(),t=`slice`in e?e.slice:void 0;return t?N().slice(-t):N()}),Q=n(()=>I().some(e=>e.processed>0||e.failed>0)),$=()=>d(A,{icon:`fa-gauge-high`,get title(){return p(`nav.dashboard`)},get summary(){return p(`summaries.dashboard`)}});return d(a,{get children(){return[d(s,{get when(){return u(()=>!!O.isLoading)()&&!M()},get children(){var e=L();return g(e,d($,{}),null),g(e,d(C,{count:4}),null),g(e,d(v,{rows:6,cols:4}),null),e}}),d(s,{get when(){return u(()=>!!O.isError)()&&!M()},get children(){var e=R(),t=e.firstChild;return g(e,d($,{}),t),g(t,()=>p(`common.error`)),e}}),d(s,{get when(){return!M()},get children(){var e=z(),t=e.firstChild;return g(e,d($,{}),t),g(t,()=>p(`common.empty`)),e}}),d(s,{get when(){return M()},children:n=>(()=>{var i=ne(),a=i.firstChild,s=a.nextSibling,h=s.firstChild,_=h.firstChild,v=_.firstChild,b=v.nextSibling,x=_.nextSibling.firstChild,S=x.nextSibling.firstChild;S.firstChild.nextSibling;var C=S.nextSibling;C.firstChild.nextSibling;var T=h.nextSibling,E=s.nextSibling,O=E.nextSibling,k=O.firstChild,A=k.firstChild,M=O.nextSibling.firstChild.nextSibling,L=M.nextSibling,R=L.nextSibling.firstChild;R.firstChild.nextSibling;var z=R.nextSibling;return z.firstChild.nextSibling,g(i,d($,{}),a),g(a,d(y,{class:`obs-card obs-metric obs-card--link`,href:`/metrics`,get children(){return[(()=>{var e=B(),t=e.firstChild;return g(t,()=>p(`dashboard.processed`)),e})(),(()=>{var e=V();return g(e,d(P,{get value(){return n().processed}})),e})(),d(Z,{get pct(){return Y(N(),`processed`)},goodWhenUp:!0}),H()]}}),null),g(a,d(y,{class:`obs-card obs-metric obs-card--link`,href:`/retries`,get children(){return[(()=>{var e=U(),t=e.firstChild;return g(t,()=>p(`dashboard.failed`)),e})(),(()=>{var e=V();return g(e,d(P,{get value(){return n().failed}})),e})(),d(Z,{get pct(){return Y(N(),`failed`)},goodWhenUp:!1}),H()]}}),null),g(a,d(y,{class:`obs-card obs-metric obs-card--link`,href:`/dead`,get children(){return[(()=>{var e=W(),t=e.firstChild;return g(t,()=>p(`dashboard.expired`)),e})(),(()=>{var e=V();return g(e,d(P,{get value(){return n().expired}})),e})(),(()=>{var e=F();return g(e,(()=>{var e=u(()=>n().expired===0);return()=>e()?p(`dashboard.stable_threshold`):p(`dashboard.above_threshold`)})()),e})(),H()]}}),null),g(a,d(y,{class:`obs-card obs-metric obs-card--link`,href:`/busy`,get children(){return[(()=>{var e=G(),t=e.firstChild;return g(t,()=>p(`dashboard.busy`)),e})(),(()=>{var e=V();return g(e,d(P,{get value(){return n().busy}})),e})(),(()=>{var e=F();return g(e,(()=>{var e=u(()=>n().busy===0);return()=>e()?p(`dashboard.system_idle`):p(`dashboard.processing`)})()),e})(),H()]}}),null),g(v,()=>p(`dashboard.performance_insight`)),g(b,()=>p(`dashboard.perf_subtitle`,{range:p(f().desc_key)})),g(x,d(e,{each:X,children:(e,t)=>(()=>{var n=re();return n.$$click=()=>c(t()),g(n,()=>e.key),r(e=>{var r=t()===o(),i=t()===o()?`is-active`:``;return r!==e.e&&m(n,`aria-selected`,e.e=r),i!==e.t&&l(n,e.t=i),e},{e:void 0,t:void 0}),n})()})),g(S,()=>p(`dashboard.processed`),null),g(C,()=>p(`dashboard.failed`),null),g(T,d(t,{get when(){return!j.isPending},get fallback(){return d(w,{height:320})},get children(){return d(t,{get when(){return Q()},get fallback(){return(()=>{var e=ie();return g(e,()=>p(`dashboard.no_history`)),e})()},get children(){return d(ee,{get data(){return I()},height:320,xMinTickGap:64,get series(){return[{key:`processed`,name:p(`dashboard.processed`),stroke:`var(--mono-1)`,strokeWidth:2,fill:`gradient`},{key:`failed`,name:p(`dashboard.failed`),stroke:`var(--mono-3)`,strokeWidth:1.5,strokeDasharray:`5 4`,fill:`none`}]}})}})}})),g(E,d(y,{class:`obs-card obs-stat obs-card--link`,href:`/queues`,get children(){return[(()=>{var e=K();return g(e,()=>p(`dashboard.enqueued`)),e})(),(()=>{var e=q();return g(e,d(P,{get value(){return n().enqueued}})),e})(),H()]}}),null),g(E,d(y,{class:`obs-card obs-stat obs-card--link`,href:`/retries`,get children(){return[(()=>{var e=K();return g(e,()=>p(`dashboard.retries`)),e})(),(()=>{var e=q();return g(e,d(P,{get value(){return n().retries}})),e})(),H()]}}),null),g(E,d(y,{class:`obs-card obs-stat obs-card--link`,href:`/scheduled`,get children(){return[(()=>{var e=K();return g(e,()=>p(`dashboard.scheduled`)),e})(),(()=>{var e=q();return g(e,d(P,{get value(){return n().scheduled}})),e})(),H()]}}),null),g(E,d(y,{class:`obs-card obs-stat obs-card--link`,href:`/dead`,get children(){return[(()=>{var e=K();return g(e,()=>p(`dashboard.dead`)),e})(),(()=>{var e=q();return g(e,d(P,{get value(){return n().dead}})),e})(),H()]}}),null),g(A,()=>p(`table.queues`)),g(k,d(y,{class:`obs-table__link`,href:`/queues`,get children(){return[`View All `,J()]}}),null),g(O,d(t,{get when(){return n().queues.length>0},get fallback(){return(()=>{var e=ae();return g(e,()=>p(`common.empty`)),e})()},get children(){var i=te(),a=i.firstChild.firstChild,o=a.firstChild.firstChild.nextSibling,s=o.nextSibling,c=s.nextSibling,l=a.nextSibling;return g(o,()=>p(`table.size`)),g(s,()=>p(`table.latency`)),g(c,()=>p(`table.status`)),g(l,d(e,{get each(){return n().queues},children:e=>(()=>{var n=se(),i=n.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling;return g(i,()=>e.name),g(a,d(P,{get value(){return e.size}})),g(o,()=>D(e.latency)),g(s,d(t,{get when(){return e.paused},get fallback(){return(()=>{var e=ce();return g(e,()=>p(`dashboard.active`)),e})()},get children(){var e=oe();return g(e,()=>p(`dashboard.paused`)),e}})),r(()=>m(o,`title`,`${e.latency.toFixed(3)}s`)),n})()})),i}}),null),g(M,()=>p(`dashboard.strapline`)),g(L,()=>p(`dashboard.tagline`)),g(R,()=>p(`dashboard.install`),null),g(z,()=>p(`dashboard.docs`),null),r(()=>m(x,`aria-label`,p(`metrics.time_range`))),i})()})]}})}f([`click`]);export{Q as default};
1
+ import{C as e,E as t,F as n,I as r,K as i,O as a,P as o,T as s,_ as c,c as l,d as u,j as d,l as f,o as p,p as m,q as h,u as g,z as _}from"./i18n-B6AbnmJn.js";import{a as v,b as y,c as b,f as x,h as S,i as C,r as w,s as T,v as E}from"./index-CTWV8VL4.js";import{i as D,o as O,r as k}from"./utils-DnzJXljj.js";import{t as A}from"./PageHeader-CeSaqysY.js";import{r as ee}from"./charts-VggSMFGc.js";var j=e=>1-(1-e)**3,M=()=>typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;function N(e,t=700){let[n,r]=_(0),a=0,s=null;return o(()=>{let n=e();if(M()||!Number.isFinite(n)){a=n,r(n);return}let o=a;if(o===n)return;let c=performance.now(),l=e=>{let i=Math.min((e-c)/t,1),u=o+(n-o)*j(i);a=u,r(u),i<1&&(s=requestAnimationFrame(l))};s=requestAnimationFrame(l),i(()=>{s!==null&&cancelAnimationFrame(s)})}),n}function P(e){let t=N(()=>e.value);return u(()=>O(Math.round(t())))}var F=c(`<span class=obs-metric__sub>`),I=c(`<span class=obs-metric__sub><span> <!>%</span> `),L=c(`<div class=obs>`),R=c(`<div class=obs><div class=empty-state style=color:var(--danger)>`),z=c(`<div class=obs><div class=empty-state>`),B=c(`<div class=obs-metric__head><span class=obs-mono></span><i class="fa-solid fa-circle-check obs-metric__icon"aria-hidden=true>`),V=c(`<span class=obs-metric__value>`),H=c(`<i class="fa-solid fa-arrow-right obs-card__go"aria-hidden=true>`),U=c(`<div class=obs-metric__head><span class=obs-mono></span><i class="fa-solid fa-triangle-exclamation obs-metric__icon"aria-hidden=true>`),W=c(`<div class=obs-metric__head><span class=obs-mono></span><i class="fa-solid fa-ban obs-metric__icon"aria-hidden=true>`),G=c(`<div class=obs-metric__head><span class=obs-mono></span><i class="fa-solid fa-spinner obs-metric__icon"aria-hidden=true>`),K=c(`<span class=obs-mono>`),q=c(`<span class=obs-stat__value>`),J=c(`<i class="fa-solid fa-arrow-right"aria-hidden=true>`),te=c(`<div class=obs-tablescroll><table><thead><tr><th>Name</th><th></th><th></th><th></th></tr></thead><tbody>`),ne=c(`<div class=obs><div class=obs-metrics></div><div class="obs-card obs-panel"><div class=obs-panel__head><div><h2 class=obs-panel__title></h2><p class=obs-panel__sub></p></div><div class=obs-panel__controls><div class=obs-seg role=tablist></div><div class=obs-legend><span><i class="dot dot--processed"></i> </span><span><i class="dot dot--failed"></i> </span></div></div></div><div class=obs-chartbox></div></div><div class=obs-stats></div><div class="obs-card obs-table"><div class=obs-table__head><h2 class=obs-table__title></h2></div></div><div class="obs-card obs-cta"><span class=obs-cta__icon><i class="fa-solid fa-bolt"aria-hidden=true></i></span><h2 class=obs-cta__title></h2><p class=obs-cta__text></p><div class=obs-cta__actions><a class="obs-btn obs-btn--primary"href=https://developerz-ai.github.io/wurk/ target=_blank rel=noreferrer><i class="fa-solid fa-download"aria-hidden=true></i> </a><a class="obs-btn obs-btn--ghost"href=https://github.com/developerz-ai/wurk/wiki target=_blank rel=noreferrer><i class="fa-solid fa-book"aria-hidden=true></i> `),re=c(`<button role=tab>`),ie=c(`<div class=empty-state style=height:320px;display:grid;place-items:center>`),ae=c(`<div class=empty-state>`),oe=c(`<span class="obs-chip obs-chip--paused">`),se=c(`<tr><td style=font-weight:500;color:var(--obs-text)></td><td></td><td></td><td>`),ce=c(`<span class="obs-chip obs-chip--active">`);function Y(e,t){if(e.length<2)return null;let n=e[e.length-1].at,r=0,i=0;for(let a of e)a.at>n-3600?r+=a[t]:a.at>n-7200&&(i+=a[t]);return i===0?r===0?null:100:Math.round((r-i)/i*100)}var X=[{key:`1h`,bucket:`1m`,window:`24h`,slice:60,desc_key:`dashboard.range_1h_desc`},{key:`24h`,bucket:`1m`,window:`24h`,desc_key:`dashboard.range_24h_desc`},{key:`7d`,bucket:`5m`,window:`7d`,desc_key:`dashboard.range_7d_desc`},{key:`30d`,bucket:`1h`,window:`30d`,desc_key:`dashboard.range_30d_desc`}];function Z(e){return d(t,{get when(){return e.pct!==null},get fallback(){return(()=>{var e=F();return g(e,()=>p(`dashboard.vs_last_hour`)),e})()},get children(){return(()=>{let t=()=>e.pct>=0,n=()=>t()===e.goodWhenUp;return(()=>{var i=I(),a=i.firstChild,o=a.firstChild,s=o.nextSibling;return s.nextSibling,a.nextSibling,g(a,()=>t()?`▲`:`▼`,o),g(a,()=>t()?`+`:``,s),g(a,()=>e.pct,s),g(i,()=>p(`dashboard.vs_last_hour`),null),r(()=>l(a,n()?`up`:`down`)),i})()})()}})}function Q(){let i=b(),[o,c]=_(0),f=()=>X[o()];h(()=>{document.title=`${p(`nav.dashboard`)} — Wurk`});let O=E(()=>({queryKey:[`stats`],queryFn:()=>x(`${S()}/api/stats`),enabled:!i.connected(),refetchInterval:!i.connected()&&5e3})),j=E(()=>({queryKey:[`history`,f().bucket,f().window],queryFn:()=>x(`${S()}/api/history/${f().bucket}?window=${f().window}`),refetchInterval:3e4})),M=()=>i.stats()??O.data??null,N=n(()=>(j.data?.series??[]).map(e=>({...e,label:k(e.at,f().bucket,T)}))),I=n(()=>{let e=f(),t=`slice`in e?e.slice:void 0;return t?N().slice(-t):N()}),Q=n(()=>I().some(e=>e.processed>0||e.failed>0)),$=()=>d(A,{icon:`fa-gauge-high`,get title(){return p(`nav.dashboard`)},get summary(){return p(`summaries.dashboard`)}});return d(a,{get children(){return[d(s,{get when(){return u(()=>!!O.isLoading)()&&!M()},get children(){var e=L();return g(e,d($,{}),null),g(e,d(C,{count:4}),null),g(e,d(v,{rows:6,cols:4}),null),e}}),d(s,{get when(){return u(()=>!!O.isError)()&&!M()},get children(){var e=R(),t=e.firstChild;return g(e,d($,{}),t),g(t,()=>p(`common.error`)),e}}),d(s,{get when(){return!M()},get children(){var e=z(),t=e.firstChild;return g(e,d($,{}),t),g(t,()=>p(`common.empty`)),e}}),d(s,{get when(){return M()},children:n=>(()=>{var i=ne(),a=i.firstChild,s=a.nextSibling,h=s.firstChild,_=h.firstChild,v=_.firstChild,b=v.nextSibling,x=_.nextSibling.firstChild,S=x.nextSibling.firstChild;S.firstChild.nextSibling;var C=S.nextSibling;C.firstChild.nextSibling;var T=h.nextSibling,E=s.nextSibling,O=E.nextSibling,k=O.firstChild,A=k.firstChild,M=O.nextSibling.firstChild.nextSibling,L=M.nextSibling,R=L.nextSibling.firstChild;R.firstChild.nextSibling;var z=R.nextSibling;return z.firstChild.nextSibling,g(i,d($,{}),a),g(a,d(y,{class:`obs-card obs-metric obs-card--link`,href:`/metrics`,get children(){return[(()=>{var e=B(),t=e.firstChild;return g(t,()=>p(`dashboard.processed`)),e})(),(()=>{var e=V();return g(e,d(P,{get value(){return n().processed}})),e})(),d(Z,{get pct(){return Y(N(),`processed`)},goodWhenUp:!0}),H()]}}),null),g(a,d(y,{class:`obs-card obs-metric obs-card--link`,href:`/retries`,get children(){return[(()=>{var e=U(),t=e.firstChild;return g(t,()=>p(`dashboard.failed`)),e})(),(()=>{var e=V();return g(e,d(P,{get value(){return n().failed}})),e})(),d(Z,{get pct(){return Y(N(),`failed`)},goodWhenUp:!1}),H()]}}),null),g(a,d(y,{class:`obs-card obs-metric obs-card--link`,href:`/dead`,get children(){return[(()=>{var e=W(),t=e.firstChild;return g(t,()=>p(`dashboard.expired`)),e})(),(()=>{var e=V();return g(e,d(P,{get value(){return n().expired}})),e})(),(()=>{var e=F();return g(e,(()=>{var e=u(()=>n().expired===0);return()=>e()?p(`dashboard.stable_threshold`):p(`dashboard.above_threshold`)})()),e})(),H()]}}),null),g(a,d(y,{class:`obs-card obs-metric obs-card--link`,href:`/busy`,get children(){return[(()=>{var e=G(),t=e.firstChild;return g(t,()=>p(`dashboard.busy`)),e})(),(()=>{var e=V();return g(e,d(P,{get value(){return n().busy}})),e})(),(()=>{var e=F();return g(e,(()=>{var e=u(()=>n().busy===0);return()=>e()?p(`dashboard.system_idle`):p(`dashboard.processing`)})()),e})(),H()]}}),null),g(v,()=>p(`dashboard.performance_insight`)),g(b,()=>p(`dashboard.perf_subtitle`,{range:p(f().desc_key)})),g(x,d(e,{each:X,children:(e,t)=>(()=>{var n=re();return n.$$click=()=>c(t()),g(n,()=>e.key),r(e=>{var r=t()===o(),i=t()===o()?`is-active`:``;return r!==e.e&&m(n,`aria-selected`,e.e=r),i!==e.t&&l(n,e.t=i),e},{e:void 0,t:void 0}),n})()})),g(S,()=>p(`dashboard.processed`),null),g(C,()=>p(`dashboard.failed`),null),g(T,d(t,{get when(){return!j.isPending},get fallback(){return d(w,{height:320})},get children(){return d(t,{get when(){return Q()},get fallback(){return(()=>{var e=ie();return g(e,()=>p(`dashboard.no_history`)),e})()},get children(){return d(ee,{get data(){return I()},height:320,xMinTickGap:64,get series(){return[{key:`processed`,name:p(`dashboard.processed`),stroke:`var(--mono-1)`,strokeWidth:2,fill:`gradient`},{key:`failed`,name:p(`dashboard.failed`),stroke:`var(--mono-3)`,strokeWidth:1.5,strokeDasharray:`5 4`,fill:`none`}]}})}})}})),g(E,d(y,{class:`obs-card obs-stat obs-card--link`,href:`/queues`,get children(){return[(()=>{var e=K();return g(e,()=>p(`dashboard.enqueued`)),e})(),(()=>{var e=q();return g(e,d(P,{get value(){return n().enqueued}})),e})(),H()]}}),null),g(E,d(y,{class:`obs-card obs-stat obs-card--link`,href:`/retries`,get children(){return[(()=>{var e=K();return g(e,()=>p(`dashboard.retries`)),e})(),(()=>{var e=q();return g(e,d(P,{get value(){return n().retries}})),e})(),H()]}}),null),g(E,d(y,{class:`obs-card obs-stat obs-card--link`,href:`/scheduled`,get children(){return[(()=>{var e=K();return g(e,()=>p(`dashboard.scheduled`)),e})(),(()=>{var e=q();return g(e,d(P,{get value(){return n().scheduled}})),e})(),H()]}}),null),g(E,d(y,{class:`obs-card obs-stat obs-card--link`,href:`/dead`,get children(){return[(()=>{var e=K();return g(e,()=>p(`dashboard.dead`)),e})(),(()=>{var e=q();return g(e,d(P,{get value(){return n().dead}})),e})(),H()]}}),null),g(A,()=>p(`table.queues`)),g(k,d(y,{class:`obs-table__link`,href:`/queues`,get children(){return[`View All `,J()]}}),null),g(O,d(t,{get when(){return n().queues.length>0},get fallback(){return(()=>{var e=ae();return g(e,()=>p(`common.empty`)),e})()},get children(){var i=te(),a=i.firstChild.firstChild,o=a.firstChild.firstChild.nextSibling,s=o.nextSibling,c=s.nextSibling,l=a.nextSibling;return g(o,()=>p(`table.size`)),g(s,()=>p(`table.latency`)),g(c,()=>p(`table.status`)),g(l,d(e,{get each(){return n().queues},children:e=>(()=>{var n=se(),i=n.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling;return g(i,()=>e.name),g(a,d(P,{get value(){return e.size}})),g(o,()=>D(e.latency)),g(s,d(t,{get when(){return e.paused},get fallback(){return(()=>{var e=ce();return g(e,()=>p(`dashboard.active`)),e})()},get children(){var e=oe();return g(e,()=>p(`dashboard.paused`)),e}})),r(()=>m(o,`title`,`${e.latency.toFixed(3)}s`)),n})()})),i}}),null),g(M,()=>p(`dashboard.strapline`)),g(L,()=>p(`dashboard.tagline`)),g(R,()=>p(`dashboard.install`),null),g(z,()=>p(`dashboard.docs`),null),r(()=>m(x,`aria-label`,p(`metrics.time_range`))),i})()})]}})}f([`click`]);export{Q as default};
@@ -1 +1 @@
1
- import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,l as c,o as l,p as u,q as d,u as f,z as p}from"./i18n-CJeYfeVt.js";import{S as m,a as h,u as g}from"./index-DQujgZgH.js";import{l as _,n as v,o as ee,s as y,u as b}from"./utils-BIKHwNKB.js";import{i as x}from"./useResetPageOnEmpty-O3-5rMk3.js";import{n as S,t as C}from"./useSort-xfnwjQAu.js";import{t as w}from"./PageHeader-DbC97afG.js";import{t as T}from"./ArgsValue-DsPb_KZ-.js";import{t as E}from"./JobDetailModal-aPjgq-U9.js";import{a as te,i as D,n as ne,o as re,r as ie,s as ae,t as oe}from"./FilterBox-DwH3PXXt.js";var O=a(`<span class=badge>`),k=a(`<div class=empty-state style=color:var(--danger)>`),A=a(`<div>`),j=a(`<span class="badge badge-danger">`),M=a(`<th class=row-action><input type=checkbox>`),N=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),P=a(`<div class=empty-state>`),F=a(`<td class=row-action><input type=checkbox>`),I=a(`<tr class=row-clickable><td style=font-family:monospace;font-size:12px;color:var(--text-muted)></td><td style=font-weight:500></td><td></td><td style=color:var(--danger)></td><td></td><td>`),L={jid:e=>e.jid,klass:e=>e.klass,args:e=>v(e.args),error_class:e=>e.error_class,error_message:e=>e.error_message,failed_at:e=>e.at},R=[{cmd:`retry`,label:l(`actions.retry`)},{cmd:`delete`,label:l(`actions.delete`),danger:!0}];function z(){let a=m(),c=ie(`dead`,ne(a.key)),z=c.query,[B,V]=p(null),[H,U]=p(null),W=g(),G=()=>W.data?.read_only??!1,K=re(),{single:q,bulk:J,all:Y}=te(`dead`),se=()=>q.isPending||J.isPending||Y.isPending;d(()=>{document.title=`${l(`nav.dead`)} — Wurk`});let{sorted:X,sort:Z,toggle:Q}=C(()=>z.data?.entries??[],L),$=()=>X().map(D),ce=()=>$().length>0&&$().every(e=>K.selected().has(e));return(()=>{var a=A();return f(a,s(w,{icon:`fa-skull`,get title(){return l(`nav.dead`)},get summary(){return l(`summaries.dead`)},get children(){return[s(t,{get when(){return z.data},children:e=>(()=>{var t=j();return f(t,()=>ee(e().total)),t})()}),s(t,{get when(){return o(()=>!!c.filtered())()&&c.matching()!==void 0},get children(){var e=O();return f(e,()=>l(`common.matching`,{n:c.matching()})),e}})]}}),null),f(a,s(oe,{get value(){return c.filter()},get onChange(){return c.onFilterChange},get placeholder(){return l(`common.filter_placeholder`)}}),null),f(a,s(r,{get children(){return[s(i,{get when(){return z.isPending},get children(){return s(h,{rows:8,cols:7})}}),s(i,{get when(){return z.isError||!z.data},get children(){var e=k();return f(e,()=>l(`common.error`)),e}}),s(i,{get when(){return z.data},children:r=>(()=>{var i=A();return f(i,s(t,{get when(){return X().length>0},get fallback(){return(()=>{var e=P();return f(e,()=>l(`common.empty`)),e})()},get children(){return[s(t,{get when(){return!G()},get children(){return s(ae,{bulk:R,all:R,get selectedCount(){return K.count()},get total(){return r().total},get filtered(){return c.filtered()},get matching(){return c.matching()},get pending(){return se()},onBulk:e=>J.mutate({keys:[...K.selected()],cmd:e},{onSuccess:K.clear}),onAll:e=>Y.mutate(e,{onSuccess:K.clear})})}}),(()=>{var r=N(),i=r.firstChild.firstChild,a=i.firstChild,o=i.nextSibling;return f(a,s(t,{get when(){return!G()},get children(){var e=M(),t=e.firstChild;return t.addEventListener(`change`,()=>K.toggleAll($())),n(()=>u(t,`aria-label`,l(`table.select_all`))),n(()=>t.checked=ce()),e}}),null),f(a,s(S,{get label(){return l(`table.jid`)},sortKey:`jid`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.class`)},sortKey:`klass`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.args`)},sortKey:`args`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.error`)},sortKey:`error_class`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.message`)},sortKey:`error_message`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.failed_at`)},sortKey:`failed_at`,get sort(){return Z()},onSort:Q}),null),f(o,s(e,{get each(){return X()},children:e=>{let r=v(e.args),i=D(e);return(()=>{var a=I(),o=a.firstChild,c=o.nextSibling,d=c.nextSibling,p=d.nextSibling,m=p.nextSibling,h=m.nextSibling;return a.$$click=()=>{V(e),U(i)},f(a,s(t,{get when(){return!G()},get children(){var e=F(),t=e.firstChild;return e.$$click=e=>e.stopPropagation(),t.addEventListener(`change`,()=>K.toggle(i)),n(()=>u(t,`aria-label`,l(`table.select_row`))),n(()=>t.checked=K.selected().has(i)),e}}),o),f(o,()=>b(e.jid,12)),f(c,()=>e.klass),f(d,s(T,{str:r,max:40})),f(p,()=>b(e.error_class,25)),f(m,()=>b(e.error_message,40)),f(h,()=>_(e.at)),n(t=>{var n=e.jid,r=e.error_class??``,i=e.error_message??``,a=y(e.at);return n!==t.e&&u(o,`title`,t.e=n),r!==t.t&&u(p,`title`,t.t=r),i!==t.a&&u(m,`title`,t.a=i),a!==t.o&&u(h,`title`,t.o=a),t},{e:void 0,t:void 0,a:void 0,o:void 0}),a})()}})),r})(),s(x,{get page(){return c.page()},get total(){return c.pagerTotal()},count:25,get maxPage(){return c.maxPage()},get onChange(){return c.setPage}})]}}),null),f(i,s(E,{get entry(){return B()},get atLabel(){return l(`table.failed_at`)},get actions(){return G()?void 0:R},get pending(){return q.isPending},onAction:e=>{let t=H();t&&q.mutate({key:t,cmd:e},{onSuccess:()=>{V(null),U(null)}})},onClose:()=>{V(null),U(null)}}),null),i})()})]}}),null),a})()}c([`click`]);export{z as default};
1
+ import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,l as c,o as l,p as u,q as d,u as f,z as p}from"./i18n-B6AbnmJn.js";import{S as m,a as h,u as g}from"./index-CTWV8VL4.js";import{l as _,n as v,o as ee,s as y,u as b}from"./utils-DnzJXljj.js";import{i as x}from"./useResetPageOnEmpty-BsYWeStI.js";import{n as S,t as C}from"./useSort-BWWfpnZH.js";import{t as w}from"./PageHeader-CeSaqysY.js";import{t as T}from"./ArgsValue-_MYkd_vA.js";import{t as E}from"./JobDetailModal-BrjmO98c.js";import{a as te,i as D,n as ne,o as re,r as ie,s as ae,t as oe}from"./FilterBox-BfZm8ZzH.js";var O=a(`<span class=badge>`),k=a(`<div class=empty-state style=color:var(--danger)>`),A=a(`<div>`),j=a(`<span class="badge badge-danger">`),M=a(`<th class=row-action><input type=checkbox>`),N=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),P=a(`<div class=empty-state>`),F=a(`<td class=row-action><input type=checkbox>`),I=a(`<tr class=row-clickable><td style=font-family:monospace;font-size:12px;color:var(--text-muted)></td><td style=font-weight:500></td><td></td><td style=color:var(--danger)></td><td></td><td>`),L={jid:e=>e.jid,klass:e=>e.klass,args:e=>v(e.args),error_class:e=>e.error_class,error_message:e=>e.error_message,failed_at:e=>e.at},R=[{cmd:`retry`,label:l(`actions.retry`)},{cmd:`delete`,label:l(`actions.delete`),danger:!0}];function z(){let a=m(),c=ie(`dead`,ne(a.key)),z=c.query,[B,V]=p(null),[H,U]=p(null),W=g(),G=()=>W.data?.read_only??!1,K=re(),{single:q,bulk:J,all:Y}=te(`dead`),se=()=>q.isPending||J.isPending||Y.isPending;d(()=>{document.title=`${l(`nav.dead`)} — Wurk`});let{sorted:X,sort:Z,toggle:Q}=C(()=>z.data?.entries??[],L),$=()=>X().map(D),ce=()=>$().length>0&&$().every(e=>K.selected().has(e));return(()=>{var a=A();return f(a,s(w,{icon:`fa-skull`,get title(){return l(`nav.dead`)},get summary(){return l(`summaries.dead`)},get children(){return[s(t,{get when(){return z.data},children:e=>(()=>{var t=j();return f(t,()=>ee(e().total)),t})()}),s(t,{get when(){return o(()=>!!c.filtered())()&&c.matching()!==void 0},get children(){var e=O();return f(e,()=>l(`common.matching`,{n:c.matching()})),e}})]}}),null),f(a,s(oe,{get value(){return c.filter()},get onChange(){return c.onFilterChange},get placeholder(){return l(`common.filter_placeholder`)}}),null),f(a,s(r,{get children(){return[s(i,{get when(){return z.isPending},get children(){return s(h,{rows:8,cols:7})}}),s(i,{get when(){return z.isError||!z.data},get children(){var e=k();return f(e,()=>l(`common.error`)),e}}),s(i,{get when(){return z.data},children:r=>(()=>{var i=A();return f(i,s(t,{get when(){return X().length>0},get fallback(){return(()=>{var e=P();return f(e,()=>l(`common.empty`)),e})()},get children(){return[s(t,{get when(){return!G()},get children(){return s(ae,{bulk:R,all:R,get selectedCount(){return K.count()},get total(){return r().total},get filtered(){return c.filtered()},get matching(){return c.matching()},get pending(){return se()},onBulk:e=>J.mutate({keys:[...K.selected()],cmd:e},{onSuccess:K.clear}),onAll:e=>Y.mutate(e,{onSuccess:K.clear})})}}),(()=>{var r=N(),i=r.firstChild.firstChild,a=i.firstChild,o=i.nextSibling;return f(a,s(t,{get when(){return!G()},get children(){var e=M(),t=e.firstChild;return t.addEventListener(`change`,()=>K.toggleAll($())),n(()=>u(t,`aria-label`,l(`table.select_all`))),n(()=>t.checked=ce()),e}}),null),f(a,s(S,{get label(){return l(`table.jid`)},sortKey:`jid`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.class`)},sortKey:`klass`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.args`)},sortKey:`args`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.error`)},sortKey:`error_class`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.message`)},sortKey:`error_message`,get sort(){return Z()},onSort:Q}),null),f(a,s(S,{get label(){return l(`table.failed_at`)},sortKey:`failed_at`,get sort(){return Z()},onSort:Q}),null),f(o,s(e,{get each(){return X()},children:e=>{let r=v(e.args),i=D(e);return(()=>{var a=I(),o=a.firstChild,c=o.nextSibling,d=c.nextSibling,p=d.nextSibling,m=p.nextSibling,h=m.nextSibling;return a.$$click=()=>{V(e),U(i)},f(a,s(t,{get when(){return!G()},get children(){var e=F(),t=e.firstChild;return e.$$click=e=>e.stopPropagation(),t.addEventListener(`change`,()=>K.toggle(i)),n(()=>u(t,`aria-label`,l(`table.select_row`))),n(()=>t.checked=K.selected().has(i)),e}}),o),f(o,()=>b(e.jid,12)),f(c,()=>e.klass),f(d,s(T,{str:r,max:40})),f(p,()=>b(e.error_class,25)),f(m,()=>b(e.error_message,40)),f(h,()=>_(e.at)),n(t=>{var n=e.jid,r=e.error_class??``,i=e.error_message??``,a=y(e.at);return n!==t.e&&u(o,`title`,t.e=n),r!==t.t&&u(p,`title`,t.t=r),i!==t.a&&u(m,`title`,t.a=i),a!==t.o&&u(h,`title`,t.o=a),t},{e:void 0,t:void 0,a:void 0,o:void 0}),a})()}})),r})(),s(x,{get page(){return c.page()},get total(){return c.pagerTotal()},count:25,get maxPage(){return c.maxPage()},get onChange(){return c.setPage}})]}}),null),f(i,s(E,{get entry(){return B()},get atLabel(){return l(`table.failed_at`)},get actions(){return G()?void 0:R},get pending(){return q.isPending},onAction:e=>{let t=H();t&&q.mutate({key:t,cmd:e},{onSuccess:()=>{V(null),U(null)}})},onClose:()=>{V(null),U(null)}}),null),i})()})]}}),null),a})()}c([`click`]);export{z as default};
@@ -1 +1 @@
1
- import{E as e,I as t,K as n,P as r,_ as i,d as a,j as o,l as s,o as c,p as l,u,z as d}from"./i18n-CJeYfeVt.js";import{S as f,a as p,d as m,h,r as g,u as _}from"./index-DQujgZgH.js";import{t as v}from"./PageHeader-DbC97afG.js";var y=i(`<div class=empty-state style=color:var(--danger)>`),b=i(`<div class=skeleton-stack>`),x=i(`<div class="card ext-view">`),S=i(`<a class="btn btn-sm"target=_blank rel="noopener noreferrer"><i class="fa-solid fa-arrow-up-right-from-square"style=margin-inline-end:0.4rem>`),C=i(`<iframe style="width:100%;height:calc(100vh - 11rem);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)">`);function w(){let t=f(),n=()=>t.tab??``,r=_(),i=e=>e.replace(/\/+$/,``),a=()=>r.data?.custom_tabs?.find(e=>i(e.path)===i(n())),s=()=>a()?.name??n();return o(e,{get when(){return a()?.ext_name},keyed:!0,get fallback(){return o(E,{get tab(){return n()},get title(){return s()}})},children:e=>o(T,{extName:e,get indexPath(){return n()},get title(){return s()}})})}function T(i){let s=`${h()}/ext/${i.extName}/`,[l,f]=d(null),[_,S]=d(!1),C=0,w,T=async(e,t)=>{let n=++C;w=new AbortController;try{let r=await m(s+e,{...t,signal:w.signal});if(n!==C)return;S(!r.ok&&r.status!==404),f(r.text)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;n===C&&S(!0)}};n(()=>w?.abort()),r(()=>{T(i.indexPath.replace(/\/+$/,``))});let E=e=>{if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target.closest(`a`);if(!t?.getAttribute(`href`)||t.hasAttribute(`download`))return;let n=t.getAttribute(`target`);if(n&&n!==`_self`)return;let r=new URL(t.href,window.location.origin);r.origin===window.location.origin&&r.pathname.startsWith(s)&&(e.preventDefault(),T(r.pathname.slice(s.length)+r.search))},D=e=>{let t=e.target,n=new URL(t.getAttribute(`action`)||window.location.href,window.location.origin);if(n.origin!==window.location.origin||!n.pathname.startsWith(s))return;e.preventDefault();let r=new FormData(t);if((t.method||`get`).toUpperCase()===`GET`){let e=new URLSearchParams(Array.from(r.entries())).toString();T(`${n.pathname.slice(s.length)}${e?`?${e}`:``}`)}else T(n.pathname.slice(s.length)+n.search,{method:`POST`,body:r})};return[o(v,{icon:`fa-puzzle-piece`,get title(){return i.title},get summary(){return c(`extension.summary`)}}),o(e,{get when(){return _()},get children(){var e=y();return u(e,()=>c(`common.error`)),e}}),o(e,{get when(){return a(()=>l()===null)()&&!_()},get children(){var e=b();return u(e,o(g,{height:`1.5rem`,width:`40%`}),null),u(e,o(p,{rows:6,cols:4}),null),e}}),o(e,{get when(){return a(()=>l()!==null)()&&!_()},get children(){var e=x();return e.addEventListener(`submit`,D),e.$$click=E,t(()=>e.innerHTML=l()),e}})]}function E(e){let n=()=>`${h()}/${e.tab}?wurk_ext_embed=1`;return[o(v,{icon:`fa-puzzle-piece`,get title(){return e.title},get summary(){return c(`extension.summary`)},get children(){var n=S();return n.firstChild,u(n,()=>c(`extension.open`),null),t(()=>l(n,`href`,`${h()}/${e.tab}`)),n}}),(()=>{var r=C();return t(t=>{var i=e.title,a=n();return i!==t.e&&l(r,`title`,t.e=i),a!==t.t&&l(r,`src`,t.t=a),t},{e:void 0,t:void 0}),r})()]}s([`click`]);export{w as default};
1
+ import{E as e,I as t,K as n,P as r,_ as i,d as a,j as o,l as s,o as c,p as l,u,z as d}from"./i18n-B6AbnmJn.js";import{S as f,a as p,d as m,h,r as g,u as _}from"./index-CTWV8VL4.js";import{t as v}from"./PageHeader-CeSaqysY.js";var y=i(`<div class=empty-state style=color:var(--danger)>`),b=i(`<div class=skeleton-stack>`),x=i(`<div class="card ext-view">`),S=i(`<a class="btn btn-sm"target=_blank rel="noopener noreferrer"><i class="fa-solid fa-arrow-up-right-from-square"style=margin-inline-end:0.4rem>`),C=i(`<iframe style="width:100%;height:calc(100vh - 11rem);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)">`);function w(){let t=f(),n=()=>t.tab??``,r=_(),i=e=>e.replace(/\/+$/,``),a=()=>r.data?.custom_tabs?.find(e=>i(e.path)===i(n())),s=()=>a()?.name??n();return o(e,{get when(){return a()?.ext_name},keyed:!0,get fallback(){return o(E,{get tab(){return n()},get title(){return s()}})},children:e=>o(T,{extName:e,get indexPath(){return n()},get title(){return s()}})})}function T(i){let s=`${h()}/ext/${i.extName}/`,[l,f]=d(null),[_,S]=d(!1),C=0,w,T=async(e,t)=>{let n=++C;w=new AbortController;try{let r=await m(s+e,{...t,signal:w.signal});if(n!==C)return;S(!r.ok&&r.status!==404),f(r.text)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;n===C&&S(!0)}};n(()=>w?.abort()),r(()=>{T(i.indexPath.replace(/\/+$/,``))});let E=e=>{if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target.closest(`a`);if(!t?.getAttribute(`href`)||t.hasAttribute(`download`))return;let n=t.getAttribute(`target`);if(n&&n!==`_self`)return;let r=new URL(t.href,window.location.origin);r.origin===window.location.origin&&r.pathname.startsWith(s)&&(e.preventDefault(),T(r.pathname.slice(s.length)+r.search))},D=e=>{let t=e.target,n=new URL(t.getAttribute(`action`)||window.location.href,window.location.origin);if(n.origin!==window.location.origin||!n.pathname.startsWith(s))return;e.preventDefault();let r=new FormData(t);if((t.method||`get`).toUpperCase()===`GET`){let e=new URLSearchParams(Array.from(r.entries())).toString();T(`${n.pathname.slice(s.length)}${e?`?${e}`:``}`)}else T(n.pathname.slice(s.length)+n.search,{method:`POST`,body:r})};return[o(v,{icon:`fa-puzzle-piece`,get title(){return i.title},get summary(){return c(`extension.summary`)}}),o(e,{get when(){return _()},get children(){var e=y();return u(e,()=>c(`common.error`)),e}}),o(e,{get when(){return a(()=>l()===null)()&&!_()},get children(){var e=b();return u(e,o(g,{height:`1.5rem`,width:`40%`}),null),u(e,o(p,{rows:6,cols:4}),null),e}}),o(e,{get when(){return a(()=>l()!==null)()&&!_()},get children(){var e=x();return e.addEventListener(`submit`,D),e.$$click=E,t(()=>e.innerHTML=l()),e}})]}function E(e){let n=()=>`${h()}/${e.tab}?wurk_ext_embed=1`;return[o(v,{icon:`fa-puzzle-piece`,get title(){return e.title},get summary(){return c(`extension.summary`)},get children(){var n=S();return n.firstChild,u(n,()=>c(`extension.open`),null),t(()=>l(n,`href`,`${h()}/${e.tab}`)),n}}),(()=>{var r=C();return t(t=>{var i=e.title,a=n();return i!==t.e&&l(r,`title`,t.e=i),a!==t.t&&l(r,`src`,t.t=a),t},{e:void 0,t:void 0}),r})()]}s([`click`]);export{w as default};
@@ -1 +1 @@
1
- import{C as e,I as t,K as n,P as r,_ as i,c as a,d as o,j as s,l as c,o as l,p as u,u as d,z as f}from"./i18n-CJeYfeVt.js";import{_ as p,f as m,g as h,h as g,m as _,n as v,p as y,t as b,v as x,y as S}from"./index-DQujgZgH.js";import{o as C}from"./utils-BIKHwNKB.js";import{a as w,n as T,r as E,t as D}from"./useResetPageOnEmpty-O3-5rMk3.js";var O=i(`<div class=action-bar><div class=action-bar-group><span class=action-bar-count></span></div><div class=action-bar-group>`),k=i(`<button>`);function A(n){let r=(e,t)=>!e.danger||window.confirm(l(`actions.confirm`,{action:e.label,scope:t}));return(()=>{var i=O(),c=i.firstChild,f=c.firstChild,p=c.nextSibling;return d(f,(()=>{var e=o(()=>n.selectedCount>0);return()=>e()?l(`actions.selected`,{n:n.selectedCount}):o(()=>!!(n.filtered&&n.matching!==void 0))()?l(`actions.matching`,{n:n.matching}):l(`actions.select_hint`)})()),d(c,s(e,{get each(){return n.bulk},children:e=>(()=>{var i=k();return i.$$click=()=>r(e,l(`actions.scope_selected`,{n:n.selectedCount}))&&n.onBulk(e.cmd),d(i,()=>e.label),t(t=>{var r=`btn btn-sm${e.danger?` btn-danger`:``}`,o=n.pending||n.selectedCount===0;return r!==t.e&&a(i,t.e=r),o!==t.t&&(i.disabled=t.t=o),t},{e:void 0,t:void 0}),i})()}),null),d(p,s(e,{get each(){return n.all},children:e=>(()=>{var i=k();return i.$$click=()=>r(e,l(`actions.scope_all`))&&n.onAll(e.cmd),d(i,()=>`${e.label} ${l(`actions.all_suffix`)}`),t(t=>{var r=`btn btn-sm btn-ghost${e.danger?` btn-danger`:``}`,o=n.pending||n.total===0||n.filtered,s=n.filtered?l(`actions.all_filtered_hint`):void 0;return r!==t.e&&a(i,t.e=r),o!==t.t&&(i.disabled=t.t=o),s!==t.a&&u(i,`title`,t.a=s),t},{e:void 0,t:void 0,a:void 0}),i})()})),i})()}c([`click`]);function j(){let[e,t]=f(new Set);return{selected:e,toggle:e=>t(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),toggleAll:e=>t(t=>e.length>0&&e.every(e=>t.has(e))?new Set:new Set(e)),clear:()=>t(new Set),count:()=>e().size}}function M(e){return`${e.score}|${e.jid}`}function N(e){let t=h(),n=()=>{t.invalidateQueries({queryKey:[e]}),t.invalidateQueries({queryKey:[`stats`]})},r=e=>{let t=y(e);if(!t)return b(e);v(l(`toast.partial`,{count:t.count,failed:t.failed.length}),`error`),n()};return{single:p(()=>({mutationFn:({key:t,cmd:n})=>_(`${g()}/api/${e}/${encodeURIComponent(t)}`,{cmd:n}),onSuccess:n,onError:r})),bulk:p(()=>({mutationFn:({keys:t,cmd:n})=>_(`${g()}/api/${e}`,{keys:t,cmd:n}),onSuccess:n,onError:r})),all:p(()=>({mutationFn:t=>_(`${g()}/api/${e}/all/${t}`),onSuccess:n,onError:r}))}}function P(e,t=``){let[n,r]=T(),[i,a]=f(t),o=e=>{a(e),r(1)},s=x(()=>({queryKey:[e,n(),i()],queryFn:()=>m(`${g()}/api/${e}?page=${n()-1}&count=25&substr=${encodeURIComponent(i())}`),placeholderData:S}));D(n,r,()=>!!s.data&&!s.isPlaceholderData,()=>(s.data?.entries.length??0)===0),E(n,r,()=>s.data,()=>s.isPlaceholderData);let c=()=>i()!==``,l=()=>s.data?.filtered_total_exact===!1;return{page:n,setPage:r,filter:i,onFilterChange:o,query:s,filtered:c,matching:()=>{let e=s.data?.filtered_total;if(c()&&typeof e==`number`)return`${C(e)}${l()?`+`:``}`},pagerTotal:()=>{let e=s.data;if(!e)return 0;if(!c())return e.total;let t=e.entries.length>=25;return typeof e.filtered_total==`number`?l()&&t?Math.max(e.filtered_total,n()*25+1):e.filtered_total:t?e.total:(n()-1)*25+e.entries.length},maxPage:()=>w(s.data)}}function F(e){return e?decodeURIComponent(e).split(/[|-]/).pop()??``:``}var I=i(`<div class=filter-box style=margin-bottom:1rem;display:flex><input class=input type=search style=flex:1;max-width:360px>`),L=250;function R(e){let[i,a]=f(e.value);return r(()=>{let t=i(),r=setTimeout(()=>{t!==e.value&&e.onChange(t)},L);n(()=>clearTimeout(r))}),(()=>{var n=I(),r=n.firstChild;return r.$$input=e=>a(e.currentTarget.value),t(t=>{var n=e.placeholder??l(`common.filter_placeholder`),i=e.placeholder??l(`common.filter_placeholder`);return n!==t.e&&u(r,`placeholder`,t.e=n),i!==t.t&&u(r,`aria-label`,t.t=i),t},{e:void 0,t:void 0}),t(()=>r.value=i()),n})()}c([`input`]);export{N as a,M as i,F as n,j as o,P as r,A as s,R as t};
1
+ import{C as e,I as t,K as n,P as r,_ as i,c as a,d as o,j as s,l as c,o as l,p as u,u as d,z as f}from"./i18n-B6AbnmJn.js";import{_ as p,f as m,g as h,h as g,m as _,n as v,p as y,t as b,v as x,y as S}from"./index-CTWV8VL4.js";import{o as C}from"./utils-DnzJXljj.js";import{a as w,n as T,r as E,t as D}from"./useResetPageOnEmpty-BsYWeStI.js";var O=i(`<div class=action-bar><div class=action-bar-group><span class=action-bar-count></span></div><div class=action-bar-group>`),k=i(`<button>`);function A(n){let r=(e,t)=>!e.danger||window.confirm(l(`actions.confirm`,{action:e.label,scope:t}));return(()=>{var i=O(),c=i.firstChild,f=c.firstChild,p=c.nextSibling;return d(f,(()=>{var e=o(()=>n.selectedCount>0);return()=>e()?l(`actions.selected`,{n:n.selectedCount}):o(()=>!!(n.filtered&&n.matching!==void 0))()?l(`actions.matching`,{n:n.matching}):l(`actions.select_hint`)})()),d(c,s(e,{get each(){return n.bulk},children:e=>(()=>{var i=k();return i.$$click=()=>r(e,l(`actions.scope_selected`,{n:n.selectedCount}))&&n.onBulk(e.cmd),d(i,()=>e.label),t(t=>{var r=`btn btn-sm${e.danger?` btn-danger`:``}`,o=n.pending||n.selectedCount===0;return r!==t.e&&a(i,t.e=r),o!==t.t&&(i.disabled=t.t=o),t},{e:void 0,t:void 0}),i})()}),null),d(p,s(e,{get each(){return n.all},children:e=>(()=>{var i=k();return i.$$click=()=>r(e,l(`actions.scope_all`))&&n.onAll(e.cmd),d(i,()=>`${e.label} ${l(`actions.all_suffix`)}`),t(t=>{var r=`btn btn-sm btn-ghost${e.danger?` btn-danger`:``}`,o=n.pending||n.total===0||n.filtered,s=n.filtered?l(`actions.all_filtered_hint`):void 0;return r!==t.e&&a(i,t.e=r),o!==t.t&&(i.disabled=t.t=o),s!==t.a&&u(i,`title`,t.a=s),t},{e:void 0,t:void 0,a:void 0}),i})()})),i})()}c([`click`]);function j(){let[e,t]=f(new Set);return{selected:e,toggle:e=>t(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),toggleAll:e=>t(t=>e.length>0&&e.every(e=>t.has(e))?new Set:new Set(e)),clear:()=>t(new Set),count:()=>e().size}}function M(e){return`${e.score}|${e.jid}`}function N(e){let t=h(),n=()=>{t.invalidateQueries({queryKey:[e]}),t.invalidateQueries({queryKey:[`stats`]})},r=e=>{let t=y(e);if(!t)return b(e);v(l(`toast.partial`,{count:t.count,failed:t.failed.length}),`error`),n()};return{single:p(()=>({mutationFn:({key:t,cmd:n})=>_(`${g()}/api/${e}/${encodeURIComponent(t)}`,{cmd:n}),onSuccess:n,onError:r})),bulk:p(()=>({mutationFn:({keys:t,cmd:n})=>_(`${g()}/api/${e}`,{keys:t,cmd:n}),onSuccess:n,onError:r})),all:p(()=>({mutationFn:t=>_(`${g()}/api/${e}/all/${t}`),onSuccess:n,onError:r}))}}function P(e,t=``){let[n,r]=T(),[i,a]=f(t),o=e=>{a(e),r(1)},s=x(()=>({queryKey:[e,n(),i()],queryFn:()=>m(`${g()}/api/${e}?page=${n()-1}&count=25&substr=${encodeURIComponent(i())}`),placeholderData:S}));D(n,r,()=>!!s.data&&!s.isPlaceholderData,()=>(s.data?.entries.length??0)===0),E(n,r,()=>s.data,()=>s.isPlaceholderData);let c=()=>i()!==``,l=()=>s.data?.filtered_total_exact===!1;return{page:n,setPage:r,filter:i,onFilterChange:o,query:s,filtered:c,matching:()=>{let e=s.data?.filtered_total;if(c()&&typeof e==`number`)return`${C(e)}${l()?`+`:``}`},pagerTotal:()=>{let e=s.data;if(!e)return 0;if(!c())return e.total;let t=e.entries.length>=25;return typeof e.filtered_total==`number`?l()&&t?Math.max(e.filtered_total,n()*25+1):e.filtered_total:t?e.total:(n()-1)*25+e.entries.length},maxPage:()=>w(s.data)}}function F(e){return e?decodeURIComponent(e).split(/[|-]/).pop()??``:``}var I=i(`<div class=filter-box style=margin-bottom:1rem;display:flex><input class=input type=search style=flex:1;max-width:360px>`),L=250;function R(e){let[i,a]=f(e.value);return r(()=>{let t=i(),r=setTimeout(()=>{t!==e.value&&e.onChange(t)},L);n(()=>clearTimeout(r))}),(()=>{var n=I(),r=n.firstChild;return r.$$input=e=>a(e.currentTarget.value),t(t=>{var n=e.placeholder??l(`common.filter_placeholder`),i=e.placeholder??l(`common.filter_placeholder`);return n!==t.e&&u(r,`placeholder`,t.e=n),i!==t.t&&u(r,`aria-label`,t.t=i),t},{e:void 0,t:void 0}),t(()=>r.value=i()),n})()}c([`input`]);export{N as a,M as i,F as n,j as o,P as r,A as s,R as t};
@@ -1 +1 @@
1
- import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,l as c,m as l,o as u,p as d,q as f,u as p}from"./i18n-CJeYfeVt.js";import{S as m,_ as h,b as g,f as _,g as v,h as y,i as b,m as x,t as S,u as C,v as w}from"./index-DQujgZgH.js";import{l as T,o as E,u as D}from"./utils-BIKHwNKB.js";import{n as O,r as k,t as A}from"./FlowState-Cr4aX6-d.js";var j=a(`<div style=display:flex;flex-direction:column;gap:2px><span style=font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em></span><span style=font-variant-numeric:tabular-nums>`),M=a(`<div class=table-wrapper style=overflow-x:auto;padding:0.5rem><svg role=img style=display:block>`),N=a(`<svg><path fill=none stroke=var(--border) stroke-width=1.5></svg>`,!1,!0,!1),P=a(`<svg><g><title></title><rect width=176 height=54 rx=8 fill=var(--surface) stroke-width=1.5></rect><circle r=4></circle><text fill=var(--text) font-size=12></text><text fill=var(--text-muted) font-size=10.5 font-family=var(--font-mono)></svg>`,!1,!0,!1),F=a(`<div class=table-wrapper><table><thead><tr><th>#</th><th></th><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody>`),I=a(`<tr><td style=font-family:monospace;font-size:12px></td><td></td><td></td><td style=font-variant-numeric:tabular-nums></td><td></td><td style=font-family:monospace;font-size:12px></td><td>`),L=a(`<div><div class=section-header style=gap:0.75rem></div><div style=margin-top:1rem>`),R=a(`<div class=empty-state style=color:var(--danger)>`),z=a(`<button class="btn btn-sm btn-danger">`),B=a(`<h2 style="font-size:14px;margin:1.5rem 0 0.5rem">`),V=a(`<div><div class=section-header style=gap:0.75rem><h1 class=page-title style=margin:0;font-family:monospace;font-size:16px></h1></div><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));gap:1rem;margin-top:1rem">`),H=a(`<div class=empty-state style=margin-top:1.5rem>`),U=176,W=54,G=60,K=14,q=10;function J(e){let t=new Map(e.map(e=>[e.index,e])),n=new Map(e.map(e=>[e.index,0])),r=new Map(e.map(e=>[e.index,e.depends_on.filter(e=>t.has(e)).length])),i=e.filter(e=>r.get(e.index)===0).map(e=>e.index);for(let e=0;e<i.length;e++){let a=i[e];for(let e of t.get(a).dependents){if(!t.has(e))continue;n.set(e,Math.max(n.get(e),n.get(a)+1));let o=r.get(e)-1;r.set(e,o),o===0&&i.push(e)}}let a=new Map,o=e.map(e=>{let t=n.get(e.index),r=a.get(t)??0;return a.set(t,r+1),{node:e,x:q+t*236,y:q+r*68}}),s=a.size,c=Math.max(0,...a.values());return{placed:o,at:new Map(o.map(e=>[e.node.index,e])),width:s===0?0:20+s*U+(s-1)*G,height:c===0?0:20+c*W+(c-1)*K}}function Y(e,t){let n=e.x+U,r=e.y+W/2,i=t.x,a=t.y+W/2,o=Math.max(20,(i-n)/2);return`M${n},${r} C${n+o},${r} ${i-o},${a} ${i},${a}`}function X(e){return e.name?`${e.name} · #${e.index}`:`#${e.index}`}function Z(e){return(()=>{var t=j(),n=t.firstChild,r=n.nextSibling;return p(n,()=>e.label),p(r,()=>e.children),t})()}function Q(r){let i=()=>J(r.nodes);return(()=>{var r=M(),a=r.firstChild;return p(a,s(e,{get each(){return i().placed},children:r=>s(e,{get each(){return r.node.depends_on},children:e=>s(t,{get when(){return i().at.get(e)},children:e=>(()=>{var t=N();return n(()=>d(t,`d`,Y(e(),r))),t})()})})}),null),p(a,s(e,{get each(){return i().placed},children:e=>(()=>{var t=P(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,s=a.nextSibling,c=s.nextSibling;return p(r,()=>`${e.node.klass} — ${k(e.node.state)} — ${e.node.jid}`),p(s,()=>D(e.node.klass,18)),p(c,(()=>{var t=o(()=>!!e.node.piped);return()=>t()?`${X(e.node)} · ${u(`flows.piped`)}`:X(e.node)})()),n(t=>{var n=e.x,r=e.y,o=O(e.node.state),l=e.x+15,u=e.y+W/2,f=O(e.node.state),p=e.x+28,m=e.y+23,h=e.x+28,g=e.y+39;return n!==t.e&&d(i,`x`,t.e=n),r!==t.t&&d(i,`y`,t.t=r),o!==t.a&&d(i,`stroke`,t.a=o),l!==t.o&&d(a,`cx`,t.o=l),u!==t.i&&d(a,`cy`,t.i=u),f!==t.n&&d(a,`fill`,t.n=f),p!==t.s&&d(s,`x`,t.s=p),m!==t.h&&d(s,`y`,t.h=m),h!==t.r&&d(c,`x`,t.r=h),g!==t.d&&d(c,`y`,t.d=g),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),t})()}),null),n(e=>{var t=i().width,n=i().height,r=`0 0 ${i().width} ${i().height}`,o=u(`flows.graph`);return t!==e.e&&d(a,`width`,e.e=t),n!==e.t&&d(a,`height`,e.t=n),r!==e.a&&d(a,`viewBox`,e.a=r),o!==e.o&&d(a,`aria-label`,e.o=o),e},{e:void 0,t:void 0,a:void 0,o:void 0}),r})()}function $(t){return(()=>{var r=F(),i=r.firstChild.firstChild,a=i.firstChild.firstChild.nextSibling,c=a.nextSibling,f=c.nextSibling,m=f.nextSibling,h=m.nextSibling,_=h.nextSibling,v=i.nextSibling;return p(a,()=>u(`table.class`)),p(c,()=>u(`table.status`)),p(f,()=>u(`flows.depends_on`)),p(m,()=>u(`table.queue`)),p(h,()=>u(`table.jid`)),p(_,()=>u(`table.error`)),p(v,s(e,{get each(){return t.nodes},children:e=>(()=>{var t=I(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,c=a.nextSibling,u=c.nextSibling,f=u.nextSibling,m=f.nextSibling;return p(r,()=>X(e)),p(i,()=>D(e.klass,34)),p(a,s(A,{get state(){return e.state}})),p(c,(()=>{var t=o(()=>e.depends_on.length>0);return()=>t()?e.depends_on.map(e=>`#${e}`).join(`, `):`—`})()),p(u,()=>e.queue),p(f,s(g,{get href(){return`/batches/${e.bid}`},get title(){return e.jid},get children(){return D(e.jid,12)}})),p(m,(()=>{var t=o(()=>!!e.error);return()=>t()?D(e.error,48):`—`})()),n(t=>{var n=e.klass,r=e.error?`var(--danger)`:void 0,a=e.error??``;return n!==t.e&&d(i,`title`,t.e=n),r!==t.t&&l(m,`color`,t.t=r),a!==t.a&&d(m,`title`,t.a=a),t},{e:void 0,t:void 0,a:void 0}),t})()})),r})()}function ee(){let e=m(),a=()=>e.fid??``,c=v(),l=C();f(()=>{document.title=`${u(`nav.flows`)} — Wurk`});let D=w(()=>({queryKey:[`flow`,a()],queryFn:()=>_(`${y()}/api/flows/${encodeURIComponent(a())}`),refetchInterval:5e3})),O=h(()=>({mutationFn:()=>x(`${y()}/api/flows/${encodeURIComponent(a())}/abandon`),onSuccess:()=>c.invalidateQueries({queryKey:[`flow`,a()]}),onError:S})),k=()=>window.confirm(u(`actions.confirm`,{action:u(`flows.abandon`),scope:a()}))&&O.mutate();return s(r,{get children(){return[s(i,{get when(){return D.isPending},get children(){var e=L(),t=e.firstChild,n=t.nextSibling;return p(t,s(g,{href:`/flows`,class:`btn btn-sm`,get children(){return[`← `,o(()=>u(`nav.flows`))]}})),p(n,s(b,{count:8})),e}}),s(i,{get when(){return D.isError||!D.data},get children(){var e=R();return p(e,()=>u(`common.error`)),e}}),s(i,{get when(){return D.data},children:e=>{let r=()=>!(l.data?.read_only??!1)&&(e().state===`running`||e().state===`failed`);return(()=>{var i=V(),a=i.firstChild,c=a.firstChild,l=a.nextSibling;return p(a,s(g,{href:`/flows`,class:`btn btn-sm`,get children(){return[`← `,o(()=>u(`nav.flows`))]}}),c),p(c,()=>e().fid),p(a,s(A,{get state(){return e().state}}),null),p(a,s(t,{get when(){return r()},get children(){var e=z();return e.$$click=k,p(e,()=>u(`flows.abandon`)),n(t=>{var n=u(`flows.abandon_hint`),r=O.isPending;return n!==t.e&&d(e,`title`,t.e=n),r!==t.t&&(e.disabled=t.t=r),t},{e:void 0,t:void 0}),e}}),null),p(l,s(Z,{get label(){return u(`flows.nodes`)},get children(){return E(e().total)}}),null),p(l,s(Z,{get label(){return u(`flows.succeeded`)},get children(){return E(e().succeeded)}}),null),p(l,s(Z,{get label(){return u(`table.pending`)},get children(){return E(e().pending)}}),null),p(l,s(Z,{get label(){return u(`flows.depth`)},get children(){return E(e().depth)}}),null),p(l,s(Z,{get label(){return u(`flows.width`)},get children(){return E(e().width)}}),null),p(l,s(Z,{get label(){return u(`table.created`)},get children(){return o(()=>!!e().created_at)()?T(e().created_at):`—`}}),null),p(l,s(t,{get when(){return e().finished_at},get children(){return s(Z,{get label(){return u(`flows.finished`)},get children(){return T(e().finished_at)}})}}),null),p(l,s(t,{get when(){return e().failed_at},get children(){return s(Z,{get label(){return u(`table.failed_at`)},get children(){return T(e().failed_at)}})}}),null),p(l,s(t,{get when(){return e().abandoned_at},get children(){return s(Z,{get label(){return u(`flows.state.abandoned`)},get children(){return T(e().abandoned_at)}})}}),null),p(l,s(t,{get when(){return e().dead_nodes.length>0},get children(){return s(Z,{get label(){return u(`flows.blocked`)},get children(){return e().dead_nodes.map(e=>`#${e}`).join(`, `)}})}}),null),p(i,s(t,{get when(){return e().nodes.length>0},get fallback(){return(()=>{var e=H();return p(e,()=>u(`flows.released`)),e})()},get children(){return[(()=>{var e=B();return p(e,()=>u(`flows.graph`)),e})(),s(Q,{get nodes(){return e().nodes}}),(()=>{var e=B();return p(e,()=>u(`flows.nodes`)),e})(),s($,{get nodes(){return e().nodes}})]}}),null),i})()}})]}})}c([`click`]);export{ee as default,J as layoutFlow};
1
+ import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,l as c,m as l,o as u,p as d,q as f,u as p}from"./i18n-B6AbnmJn.js";import{S as m,_ as h,b as g,f as _,g as v,h as y,i as b,m as x,t as S,u as C,v as w}from"./index-CTWV8VL4.js";import{l as T,o as E,u as D}from"./utils-DnzJXljj.js";import{n as O,r as k,t as A}from"./FlowState-6lGsojxE.js";var j=a(`<div style=display:flex;flex-direction:column;gap:2px><span style=font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em></span><span style=font-variant-numeric:tabular-nums>`),M=a(`<div class=table-wrapper style=overflow-x:auto;padding:0.5rem><svg role=img style=display:block>`),N=a(`<svg><path fill=none stroke=var(--border) stroke-width=1.5></svg>`,!1,!0,!1),P=a(`<svg><g><title></title><rect width=176 height=54 rx=8 fill=var(--surface) stroke-width=1.5></rect><circle r=4></circle><text fill=var(--text) font-size=12></text><text fill=var(--text-muted) font-size=10.5 font-family=var(--font-mono)></svg>`,!1,!0,!1),F=a(`<div class=table-wrapper><table><thead><tr><th>#</th><th></th><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody>`),I=a(`<tr><td style=font-family:monospace;font-size:12px></td><td></td><td></td><td style=font-variant-numeric:tabular-nums></td><td></td><td style=font-family:monospace;font-size:12px></td><td>`),L=a(`<div><div class=section-header style=gap:0.75rem></div><div style=margin-top:1rem>`),R=a(`<div class=empty-state style=color:var(--danger)>`),z=a(`<button class="btn btn-sm btn-danger">`),B=a(`<h2 style="font-size:14px;margin:1.5rem 0 0.5rem">`),V=a(`<div><div class=section-header style=gap:0.75rem><h1 class=page-title style=margin:0;font-family:monospace;font-size:16px></h1></div><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));gap:1rem;margin-top:1rem">`),H=a(`<div class=empty-state style=margin-top:1.5rem>`),U=176,W=54,G=60,K=14,q=10;function J(e){let t=new Map(e.map(e=>[e.index,e])),n=new Map(e.map(e=>[e.index,0])),r=new Map(e.map(e=>[e.index,e.depends_on.filter(e=>t.has(e)).length])),i=e.filter(e=>r.get(e.index)===0).map(e=>e.index);for(let e=0;e<i.length;e++){let a=i[e];for(let e of t.get(a).dependents){if(!t.has(e))continue;n.set(e,Math.max(n.get(e),n.get(a)+1));let o=r.get(e)-1;r.set(e,o),o===0&&i.push(e)}}let a=new Map,o=e.map(e=>{let t=n.get(e.index),r=a.get(t)??0;return a.set(t,r+1),{node:e,x:q+t*236,y:q+r*68}}),s=a.size,c=Math.max(0,...a.values());return{placed:o,at:new Map(o.map(e=>[e.node.index,e])),width:s===0?0:20+s*U+(s-1)*G,height:c===0?0:20+c*W+(c-1)*K}}function Y(e,t){let n=e.x+U,r=e.y+W/2,i=t.x,a=t.y+W/2,o=Math.max(20,(i-n)/2);return`M${n},${r} C${n+o},${r} ${i-o},${a} ${i},${a}`}function X(e){return e.name?`${e.name} · #${e.index}`:`#${e.index}`}function Z(e){return(()=>{var t=j(),n=t.firstChild,r=n.nextSibling;return p(n,()=>e.label),p(r,()=>e.children),t})()}function Q(r){let i=()=>J(r.nodes);return(()=>{var r=M(),a=r.firstChild;return p(a,s(e,{get each(){return i().placed},children:r=>s(e,{get each(){return r.node.depends_on},children:e=>s(t,{get when(){return i().at.get(e)},children:e=>(()=>{var t=N();return n(()=>d(t,`d`,Y(e(),r))),t})()})})}),null),p(a,s(e,{get each(){return i().placed},children:e=>(()=>{var t=P(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,s=a.nextSibling,c=s.nextSibling;return p(r,()=>`${e.node.klass} — ${k(e.node.state)} — ${e.node.jid}`),p(s,()=>D(e.node.klass,18)),p(c,(()=>{var t=o(()=>!!e.node.piped);return()=>t()?`${X(e.node)} · ${u(`flows.piped`)}`:X(e.node)})()),n(t=>{var n=e.x,r=e.y,o=O(e.node.state),l=e.x+15,u=e.y+W/2,f=O(e.node.state),p=e.x+28,m=e.y+23,h=e.x+28,g=e.y+39;return n!==t.e&&d(i,`x`,t.e=n),r!==t.t&&d(i,`y`,t.t=r),o!==t.a&&d(i,`stroke`,t.a=o),l!==t.o&&d(a,`cx`,t.o=l),u!==t.i&&d(a,`cy`,t.i=u),f!==t.n&&d(a,`fill`,t.n=f),p!==t.s&&d(s,`x`,t.s=p),m!==t.h&&d(s,`y`,t.h=m),h!==t.r&&d(c,`x`,t.r=h),g!==t.d&&d(c,`y`,t.d=g),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),t})()}),null),n(e=>{var t=i().width,n=i().height,r=`0 0 ${i().width} ${i().height}`,o=u(`flows.graph`);return t!==e.e&&d(a,`width`,e.e=t),n!==e.t&&d(a,`height`,e.t=n),r!==e.a&&d(a,`viewBox`,e.a=r),o!==e.o&&d(a,`aria-label`,e.o=o),e},{e:void 0,t:void 0,a:void 0,o:void 0}),r})()}function $(t){return(()=>{var r=F(),i=r.firstChild.firstChild,a=i.firstChild.firstChild.nextSibling,c=a.nextSibling,f=c.nextSibling,m=f.nextSibling,h=m.nextSibling,_=h.nextSibling,v=i.nextSibling;return p(a,()=>u(`table.class`)),p(c,()=>u(`table.status`)),p(f,()=>u(`flows.depends_on`)),p(m,()=>u(`table.queue`)),p(h,()=>u(`table.jid`)),p(_,()=>u(`table.error`)),p(v,s(e,{get each(){return t.nodes},children:e=>(()=>{var t=I(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,c=a.nextSibling,u=c.nextSibling,f=u.nextSibling,m=f.nextSibling;return p(r,()=>X(e)),p(i,()=>D(e.klass,34)),p(a,s(A,{get state(){return e.state}})),p(c,(()=>{var t=o(()=>e.depends_on.length>0);return()=>t()?e.depends_on.map(e=>`#${e}`).join(`, `):`—`})()),p(u,()=>e.queue),p(f,s(g,{get href(){return`/batches/${e.bid}`},get title(){return e.jid},get children(){return D(e.jid,12)}})),p(m,(()=>{var t=o(()=>!!e.error);return()=>t()?D(e.error,48):`—`})()),n(t=>{var n=e.klass,r=e.error?`var(--danger)`:void 0,a=e.error??``;return n!==t.e&&d(i,`title`,t.e=n),r!==t.t&&l(m,`color`,t.t=r),a!==t.a&&d(m,`title`,t.a=a),t},{e:void 0,t:void 0,a:void 0}),t})()})),r})()}function ee(){let e=m(),a=()=>e.fid??``,c=v(),l=C();f(()=>{document.title=`${u(`nav.flows`)} — Wurk`});let D=w(()=>({queryKey:[`flow`,a()],queryFn:()=>_(`${y()}/api/flows/${encodeURIComponent(a())}`),refetchInterval:5e3})),O=h(()=>({mutationFn:()=>x(`${y()}/api/flows/${encodeURIComponent(a())}/abandon`),onSuccess:()=>c.invalidateQueries({queryKey:[`flow`,a()]}),onError:S})),k=()=>window.confirm(u(`actions.confirm`,{action:u(`flows.abandon`),scope:a()}))&&O.mutate();return s(r,{get children(){return[s(i,{get when(){return D.isPending},get children(){var e=L(),t=e.firstChild,n=t.nextSibling;return p(t,s(g,{href:`/flows`,class:`btn btn-sm`,get children(){return[`← `,o(()=>u(`nav.flows`))]}})),p(n,s(b,{count:8})),e}}),s(i,{get when(){return D.isError||!D.data},get children(){var e=R();return p(e,()=>u(`common.error`)),e}}),s(i,{get when(){return D.data},children:e=>{let r=()=>!(l.data?.read_only??!1)&&(e().state===`running`||e().state===`failed`);return(()=>{var i=V(),a=i.firstChild,c=a.firstChild,l=a.nextSibling;return p(a,s(g,{href:`/flows`,class:`btn btn-sm`,get children(){return[`← `,o(()=>u(`nav.flows`))]}}),c),p(c,()=>e().fid),p(a,s(A,{get state(){return e().state}}),null),p(a,s(t,{get when(){return r()},get children(){var e=z();return e.$$click=k,p(e,()=>u(`flows.abandon`)),n(t=>{var n=u(`flows.abandon_hint`),r=O.isPending;return n!==t.e&&d(e,`title`,t.e=n),r!==t.t&&(e.disabled=t.t=r),t},{e:void 0,t:void 0}),e}}),null),p(l,s(Z,{get label(){return u(`flows.nodes`)},get children(){return E(e().total)}}),null),p(l,s(Z,{get label(){return u(`flows.succeeded`)},get children(){return E(e().succeeded)}}),null),p(l,s(Z,{get label(){return u(`table.pending`)},get children(){return E(e().pending)}}),null),p(l,s(Z,{get label(){return u(`flows.depth`)},get children(){return E(e().depth)}}),null),p(l,s(Z,{get label(){return u(`flows.width`)},get children(){return E(e().width)}}),null),p(l,s(Z,{get label(){return u(`table.created`)},get children(){return o(()=>!!e().created_at)()?T(e().created_at):`—`}}),null),p(l,s(t,{get when(){return e().finished_at},get children(){return s(Z,{get label(){return u(`flows.finished`)},get children(){return T(e().finished_at)}})}}),null),p(l,s(t,{get when(){return e().failed_at},get children(){return s(Z,{get label(){return u(`table.failed_at`)},get children(){return T(e().failed_at)}})}}),null),p(l,s(t,{get when(){return e().abandoned_at},get children(){return s(Z,{get label(){return u(`flows.state.abandoned`)},get children(){return T(e().abandoned_at)}})}}),null),p(l,s(t,{get when(){return e().dead_nodes.length>0},get children(){return s(Z,{get label(){return u(`flows.blocked`)},get children(){return e().dead_nodes.map(e=>`#${e}`).join(`, `)}})}}),null),p(i,s(t,{get when(){return e().nodes.length>0},get fallback(){return(()=>{var e=H();return p(e,()=>u(`flows.released`)),e})()},get children(){return[(()=>{var e=B();return p(e,()=>u(`flows.graph`)),e})(),s(Q,{get nodes(){return e().nodes}}),(()=>{var e=B();return p(e,()=>u(`flows.nodes`)),e})(),s($,{get nodes(){return e().nodes}})]}}),null),i})()}})]}})}c([`click`]);export{ee as default,J as layoutFlow};
@@ -1 +1 @@
1
- import{I as e,_ as t,c as n,o as r,u as i}from"./i18n-CJeYfeVt.js";var a=t(`<span>`),o={running:`badge-warning`,succeeded:`badge-success`,failed:`badge-danger`,abandoned:`badge-muted`,waiting:`badge-muted`,enqueued:`badge-accent`,dead:`badge-danger`,broken:`badge-danger`},s={running:`var(--warning)`,succeeded:`var(--success)`,failed:`var(--danger)`,abandoned:`var(--mono-4)`,waiting:`var(--mono-4)`,enqueued:`var(--accent)`,dead:`var(--danger)`,broken:`var(--danger)`};function c(e){return s[e]}function l(e){return r(`flows.state.${e}`)}function u(t){return(()=>{var r=a();return i(r,()=>l(t.state)),e(()=>n(r,`badge ${o[t.state]}`)),r})()}export{c as n,l as r,u as t};
1
+ import{I as e,_ as t,c as n,o as r,u as i}from"./i18n-B6AbnmJn.js";var a=t(`<span>`),o={running:`badge-warning`,succeeded:`badge-success`,failed:`badge-danger`,abandoned:`badge-muted`,waiting:`badge-muted`,enqueued:`badge-accent`,dead:`badge-danger`,broken:`badge-danger`},s={running:`var(--warning)`,succeeded:`var(--success)`,failed:`var(--danger)`,abandoned:`var(--mono-4)`,waiting:`var(--mono-4)`,enqueued:`var(--accent)`,dead:`var(--danger)`,broken:`var(--danger)`};function c(e){return s[e]}function l(e){return r(`flows.state.${e}`)}function u(t){return(()=>{var r=a();return i(r,()=>l(t.state)),e(()=>n(r,`badge ${o[t.state]}`)),r})()}export{c as n,l as r,u as t};
@@ -1 +1 @@
1
- import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,m as c,o as l,q as u,u as d}from"./i18n-CJeYfeVt.js";import{a as f,b as p,f as m,h,v as g}from"./index-DQujgZgH.js";import{l as _,o as v,u as y}from"./utils-BIKHwNKB.js";import{a as b,i as x,n as S,r as C,t as w}from"./useResetPageOnEmpty-O3-5rMk3.js";import{n as T,t as E}from"./useSort-xfnwjQAu.js";import{t as D}from"./PageHeader-DbC97afG.js";import{t as O}from"./FlowState-Cr4aX6-d.js";var k=a(`<div>`),A=a(`<div class=empty-state style=color:var(--danger)>`),j=a(`<span class="badge badge-accent">`),M=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),N=a(`<div class=empty-state>`),P=a(`<tr><td style=font-family:monospace;font-size:12px></td><td></td><td></td><td></td><td style=width:100px><div style=display:flex;align-items:center;gap:0.5rem><div class=progress-bar-track style=flex:1><div class=progress-bar-fill></div></div><span style=font-size:11px;color:var(--text-muted);min-width:32px>%</span></div></td><td></td><td>`),F=25,I={fid:e=>e.fid,state:e=>e.state,nodes:e=>e.total,pending:e=>e.pending,progress:e=>e.total>0?e.succeeded/e.total:0,depth:e=>e.depth,created:e=>e.created_at??null};function L(){let[a,L]=S();u(()=>{document.title=`${l(`nav.flows`)} — Wurk`});let R=g(()=>({queryKey:[`flows`,a()],queryFn:()=>m(`${h()}/api/flows?page=${a()-1}&count=${F}`),refetchInterval:5e3}));C(a,L,()=>R.data),w(a,L,()=>!R.isPending&&!!R.data,()=>(R.data?.flows.length??0)===0);let{sorted:z,sort:B,toggle:V}=E(()=>R.data?.flows??[],I);return s(r,{get children(){return[s(i,{get when(){return R.isPending},get children(){var e=k();return d(e,s(D,{icon:`fa-diagram-project`,get title(){return l(`nav.flows`)},get summary(){return l(`summaries.flows`)}}),null),d(e,s(f,{rows:8,cols:7}),null),e}}),s(i,{get when(){return R.isError||!R.data},get children(){var e=A();return d(e,()=>l(`common.error`)),e}}),s(i,{get when(){return R.data},children:r=>(()=>{var i=k();return d(i,s(D,{icon:`fa-diagram-project`,get title(){return l(`nav.flows`)},get summary(){return l(`summaries.flows`)},get children(){var e=j();return d(e,()=>v(r().total)),e}}),null),d(i,s(t,{get when(){return z().length>0},get fallback(){return(()=>{var e=N();return d(e,()=>l(`common.empty`)),e})()},get children(){return[(()=>{var t=M(),r=t.firstChild.firstChild,i=r.firstChild,a=r.nextSibling;return d(i,s(T,{get label(){return l(`table.fid`)},sortKey:`fid`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`table.status`)},sortKey:`state`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`flows.nodes`)},sortKey:`nodes`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`table.pending`)},sortKey:`pending`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`table.progress`)},sortKey:`progress`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`flows.depth`)},sortKey:`depth`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`table.created`)},sortKey:`created`,get sort(){return B()},onSort:V}),null),d(a,s(e,{get each(){return z()},children:e=>{let t=e.total>0?e.succeeded/e.total*100:0,r=e.state===`failed`||e.state===`abandoned`;return(()=>{var i=P(),a=i.firstChild,l=a.nextSibling,u=l.nextSibling,f=u.nextSibling,m=f.nextSibling,h=m.firstChild.firstChild,g=h.firstChild,b=h.nextSibling,x=b.firstChild,S=m.nextSibling,C=S.nextSibling;return d(a,s(p,{get href(){return`/flows/${e.fid}`},get title(){return e.fid},get children(){return y(e.fid,14)}})),d(l,s(O,{get state(){return e.state}})),d(u,()=>v(e.total)),d(f,()=>v(e.pending)),c(g,`width`,`${t}%`),c(g,`background`,r?`var(--danger)`:`var(--success)`),d(b,()=>Math.round(t),x),d(S,()=>v(e.depth)),d(C,(()=>{var t=o(()=>!!e.created_at);return()=>t()?_(e.created_at):`—`})()),n(t=>c(f,`color`,e.pending>0?`var(--warning)`:`var(--success)`)),i})()}})),t})(),s(x,{get page(){return a()},get total(){return r().total},count:F,get maxPage(){return b(r())},onChange:L})]}}),null),i})()})]}})}export{L as default};
1
+ import{C as e,E as t,I as n,O as r,T as i,_ as a,d as o,j as s,m as c,o as l,q as u,u as d}from"./i18n-B6AbnmJn.js";import{a as f,b as p,f as m,h,v as g}from"./index-CTWV8VL4.js";import{l as _,o as v,u as y}from"./utils-DnzJXljj.js";import{a as b,i as x,n as S,r as C,t as w}from"./useResetPageOnEmpty-BsYWeStI.js";import{n as T,t as E}from"./useSort-BWWfpnZH.js";import{t as D}from"./PageHeader-CeSaqysY.js";import{t as O}from"./FlowState-6lGsojxE.js";var k=a(`<div>`),A=a(`<div class=empty-state style=color:var(--danger)>`),j=a(`<span class="badge badge-accent">`),M=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),N=a(`<div class=empty-state>`),P=a(`<tr><td style=font-family:monospace;font-size:12px></td><td></td><td></td><td></td><td style=width:100px><div style=display:flex;align-items:center;gap:0.5rem><div class=progress-bar-track style=flex:1><div class=progress-bar-fill></div></div><span style=font-size:11px;color:var(--text-muted);min-width:32px>%</span></div></td><td></td><td>`),F=25,I={fid:e=>e.fid,state:e=>e.state,nodes:e=>e.total,pending:e=>e.pending,progress:e=>e.total>0?e.succeeded/e.total:0,depth:e=>e.depth,created:e=>e.created_at??null};function L(){let[a,L]=S();u(()=>{document.title=`${l(`nav.flows`)} — Wurk`});let R=g(()=>({queryKey:[`flows`,a()],queryFn:()=>m(`${h()}/api/flows?page=${a()-1}&count=${F}`),refetchInterval:5e3}));C(a,L,()=>R.data),w(a,L,()=>!R.isPending&&!!R.data,()=>(R.data?.flows.length??0)===0);let{sorted:z,sort:B,toggle:V}=E(()=>R.data?.flows??[],I);return s(r,{get children(){return[s(i,{get when(){return R.isPending},get children(){var e=k();return d(e,s(D,{icon:`fa-diagram-project`,get title(){return l(`nav.flows`)},get summary(){return l(`summaries.flows`)}}),null),d(e,s(f,{rows:8,cols:7}),null),e}}),s(i,{get when(){return R.isError||!R.data},get children(){var e=A();return d(e,()=>l(`common.error`)),e}}),s(i,{get when(){return R.data},children:r=>(()=>{var i=k();return d(i,s(D,{icon:`fa-diagram-project`,get title(){return l(`nav.flows`)},get summary(){return l(`summaries.flows`)},get children(){var e=j();return d(e,()=>v(r().total)),e}}),null),d(i,s(t,{get when(){return z().length>0},get fallback(){return(()=>{var e=N();return d(e,()=>l(`common.empty`)),e})()},get children(){return[(()=>{var t=M(),r=t.firstChild.firstChild,i=r.firstChild,a=r.nextSibling;return d(i,s(T,{get label(){return l(`table.fid`)},sortKey:`fid`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`table.status`)},sortKey:`state`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`flows.nodes`)},sortKey:`nodes`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`table.pending`)},sortKey:`pending`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`table.progress`)},sortKey:`progress`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`flows.depth`)},sortKey:`depth`,get sort(){return B()},onSort:V}),null),d(i,s(T,{get label(){return l(`table.created`)},sortKey:`created`,get sort(){return B()},onSort:V}),null),d(a,s(e,{get each(){return z()},children:e=>{let t=e.total>0?e.succeeded/e.total*100:0,r=e.state===`failed`||e.state===`abandoned`;return(()=>{var i=P(),a=i.firstChild,l=a.nextSibling,u=l.nextSibling,f=u.nextSibling,m=f.nextSibling,h=m.firstChild.firstChild,g=h.firstChild,b=h.nextSibling,x=b.firstChild,S=m.nextSibling,C=S.nextSibling;return d(a,s(p,{get href(){return`/flows/${e.fid}`},get title(){return e.fid},get children(){return y(e.fid,14)}})),d(l,s(O,{get state(){return e.state}})),d(u,()=>v(e.total)),d(f,()=>v(e.pending)),c(g,`width`,`${t}%`),c(g,`background`,r?`var(--danger)`:`var(--success)`),d(b,()=>Math.round(t),x),d(S,()=>v(e.depth)),d(C,(()=>{var t=o(()=>!!e.created_at);return()=>t()?_(e.created_at):`—`})()),n(t=>c(f,`color`,e.pending>0?`var(--warning)`:`var(--success)`)),i})()}})),t})(),s(x,{get page(){return a()},get total(){return r().total},count:F,get maxPage(){return b(r())},onChange:L})]}}),null),i})()})]}})}export{L as default};
@@ -1,2 +1,2 @@
1
- import{C as e,E as t,I as n,_ as r,c as i,d as a,j as o,l as s,m as c,o as l,p as u,u as d}from"./i18n-CJeYfeVt.js";import{o as f}from"./index-DQujgZgH.js";import{l as p,n as m,s as h,t as g}from"./utils-BIKHwNKB.js";var _=r(`<div style=display:flex;flex-direction:column;gap:3px><span style=font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em></span><span style=font-size:13px;word-break:break-word>`),v=r(`<div style=display:flex;gap:0.5rem;justify-content:flex-end;flex-wrap:wrap>`),y=r(`<button>`),b=r(`<span> (<!>)`),x=r(`<span style=color:var(--text-muted)>—`),S=r(`<div style=display:flex;flex-direction:column;gap:3px><span style=font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em></span><span style=font-size:13px;color:var(--danger);word-break:break-word>`),C=r(`<pre class=job-backtrace>`),w=r(`<div style="display:grid;grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));gap:0.9rem">`),T=r(`<div style=display:flex;flex-direction:column;gap:1rem><div style="display:grid;grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));gap:0.9rem">`),E=r(`<pre style=margin:0;white-space:pre-wrap;word-break:break-word>`);function D(e){return(()=>{var t=_(),r=t.firstChild,i=r.nextSibling;return d(r,()=>e.label),d(i,()=>e.children),n(t=>c(i,`font-family`,e.mono?`ui-monospace, monospace`:void 0)),t})()}function O(r){let s=r.actions&&r.actions.length>0&&r.onAction?(()=>{var t=v();return d(t,o(e,{get each(){return r.actions},children:e=>(()=>{var t=y();return t.$$click=()=>{r.pending||(!e.danger||window.confirm(l(`actions.confirm`,{action:e.label,scope:l(`job.detail`).toLowerCase()})))&&r.onAction?.(e.cmd)},d(t,()=>e.label),n(n=>{var a=`btn btn-sm${e.danger?` btn-danger`:``}`,o=r.pending;return a!==n.e&&i(t,n.e=a),o!==n.t&&(t.disabled=n.t=o),n},{e:void 0,t:void 0}),t})()})),t})():void 0;return o(f,{get open(){return r.entry!==null},get onClose(){return r.onClose},get title(){return r.entry?.klass??l(`job.detail`)},width:680,footer:s,get children(){return o(t,{get when(){return r.entry},children:i=>(()=>{var s=T(),c=s.firstChild;return d(c,o(D,{get label(){return l(`job.class`)},get children(){return i().klass}}),null),d(c,o(t,{get when(){return i().queue},get children(){return o(D,{get label(){return l(`job.queue`)},get children(){return i().queue}})}}),null),d(c,o(D,{get label(){return l(`job.jid`)},mono:!0,get children(){return i().jid}}),null),d(c,o(t,{get when(){return typeof i().retry_count==`number`},get children(){return o(D,{get label(){return l(`job.retries`)},get children(){return i().retry_count}})}}),null),d(c,o(t,{get when(){return i().enqueued_at!=null},get children(){return o(D,{get label(){return l(`job.enqueued`)},mono:!0,get children(){var e=b(),t=e.firstChild,r=t.nextSibling;return r.nextSibling,d(e,()=>g(i().enqueued_at),t),d(e,()=>p(i().enqueued_at),r),n(()=>u(e,`title`,h(i().enqueued_at))),e}})}}),null),d(c,o(t,{get when(){return i().at!=null},get children(){return o(D,{get label(){return r.atLabel??l(`job.at`)},mono:!0,get children(){var e=b(),t=e.firstChild,r=t.nextSibling;return r.nextSibling,d(e,()=>g(i().at),t),d(e,()=>p(i().at),r),n(()=>u(e,`title`,h(i().at))),e}})}}),null),d(s,o(D,{get label(){return l(`job.args`)},mono:!0,get children(){return o(t,{get when(){return m(i().args)===`[]`||m(i().args)===``},get fallback(){return(()=>{var e=E();return d(e,()=>m(i().args)),e})()},get children(){return x()}})}}),null),d(s,o(t,{get when(){return i().error_class||i().error_message},get children(){var e=S(),t=e.firstChild,n=t.nextSibling;return d(t,()=>l(`job.error`)),d(n,()=>i().error_class,null),d(n,(()=>{var e=a(()=>!!i().error_message);return()=>e()?`: ${i().error_message}`:``})(),null),e}}),null),d(s,o(t,{get when(){return a(()=>!!i().error_backtrace)()&&i().error_backtrace.length>0},get children(){return o(D,{get label(){return l(`job.backtrace`)},get children(){var e=C();return d(e,()=>i().error_backtrace.join(`
1
+ import{C as e,E as t,I as n,_ as r,c as i,d as a,j as o,l as s,m as c,o as l,p as u,u as d}from"./i18n-B6AbnmJn.js";import{o as f}from"./index-CTWV8VL4.js";import{l as p,n as m,s as h,t as g}from"./utils-DnzJXljj.js";var _=r(`<div style=display:flex;flex-direction:column;gap:3px><span style=font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em></span><span style=font-size:13px;word-break:break-word>`),v=r(`<div style=display:flex;gap:0.5rem;justify-content:flex-end;flex-wrap:wrap>`),y=r(`<button>`),b=r(`<span> (<!>)`),x=r(`<span style=color:var(--text-muted)>—`),S=r(`<div style=display:flex;flex-direction:column;gap:3px><span style=font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em></span><span style=font-size:13px;color:var(--danger);word-break:break-word>`),C=r(`<pre class=job-backtrace>`),w=r(`<div style="display:grid;grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));gap:0.9rem">`),T=r(`<div style=display:flex;flex-direction:column;gap:1rem><div style="display:grid;grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));gap:0.9rem">`),E=r(`<pre style=margin:0;white-space:pre-wrap;word-break:break-word>`);function D(e){return(()=>{var t=_(),r=t.firstChild,i=r.nextSibling;return d(r,()=>e.label),d(i,()=>e.children),n(t=>c(i,`font-family`,e.mono?`ui-monospace, monospace`:void 0)),t})()}function O(r){let s=r.actions&&r.actions.length>0&&r.onAction?(()=>{var t=v();return d(t,o(e,{get each(){return r.actions},children:e=>(()=>{var t=y();return t.$$click=()=>{r.pending||(!e.danger||window.confirm(l(`actions.confirm`,{action:e.label,scope:l(`job.detail`).toLowerCase()})))&&r.onAction?.(e.cmd)},d(t,()=>e.label),n(n=>{var a=`btn btn-sm${e.danger?` btn-danger`:``}`,o=r.pending;return a!==n.e&&i(t,n.e=a),o!==n.t&&(t.disabled=n.t=o),n},{e:void 0,t:void 0}),t})()})),t})():void 0;return o(f,{get open(){return r.entry!==null},get onClose(){return r.onClose},get title(){return r.entry?.klass??l(`job.detail`)},width:680,footer:s,get children(){return o(t,{get when(){return r.entry},children:i=>(()=>{var s=T(),c=s.firstChild;return d(c,o(D,{get label(){return l(`job.class`)},get children(){return i().klass}}),null),d(c,o(t,{get when(){return i().queue},get children(){return o(D,{get label(){return l(`job.queue`)},get children(){return i().queue}})}}),null),d(c,o(D,{get label(){return l(`job.jid`)},mono:!0,get children(){return i().jid}}),null),d(c,o(t,{get when(){return typeof i().retry_count==`number`},get children(){return o(D,{get label(){return l(`job.retries`)},get children(){return i().retry_count}})}}),null),d(c,o(t,{get when(){return i().enqueued_at!=null},get children(){return o(D,{get label(){return l(`job.enqueued`)},mono:!0,get children(){var e=b(),t=e.firstChild,r=t.nextSibling;return r.nextSibling,d(e,()=>g(i().enqueued_at),t),d(e,()=>p(i().enqueued_at),r),n(()=>u(e,`title`,h(i().enqueued_at))),e}})}}),null),d(c,o(t,{get when(){return i().at!=null},get children(){return o(D,{get label(){return r.atLabel??l(`job.at`)},mono:!0,get children(){var e=b(),t=e.firstChild,r=t.nextSibling;return r.nextSibling,d(e,()=>g(i().at),t),d(e,()=>p(i().at),r),n(()=>u(e,`title`,h(i().at))),e}})}}),null),d(s,o(D,{get label(){return l(`job.args`)},mono:!0,get children(){return o(t,{get when(){return m(i().args)===`[]`||m(i().args)===``},get fallback(){return(()=>{var e=E();return d(e,()=>m(i().args)),e})()},get children(){return x()}})}}),null),d(s,o(t,{get when(){return i().error_class||i().error_message},get children(){var e=S(),t=e.firstChild,n=t.nextSibling;return d(t,()=>l(`job.error`)),d(n,()=>i().error_class,null),d(n,(()=>{var e=a(()=>!!i().error_message);return()=>e()?`: ${i().error_message}`:``})(),null),e}}),null),d(s,o(t,{get when(){return a(()=>!!i().error_backtrace)()&&i().error_backtrace.length>0},get children(){return o(D,{get label(){return l(`job.backtrace`)},get children(){var e=C();return d(e,()=>i().error_backtrace.join(`
2
2
  `)),e}})}}),null),d(s,o(t,{get when(){return a(()=>!!i().custom_rows)()&&i().custom_rows.length>0},get children(){var t=w();return d(t,o(e,{get each(){return i().custom_rows},children:([e,t])=>o(D,{label:e,children:t})})),t}}),null),s})()})}})}s([`click`]);export{O as t};
@@ -1 +1 @@
1
- import{C as e,E as t,I as n,O as r,T as i,_ as a,j as o,l as s,m as c,o as l,p as u,q as d,u as f}from"./i18n-CJeYfeVt.js";import{_ as p,a as m,f as h,g,h as _,m as v,t as y,u as b,v as x}from"./index-DQujgZgH.js";import{o as S}from"./utils-BIKHwNKB.js";import{a as C,i as w,n as T,r as E,t as D}from"./useResetPageOnEmpty-O3-5rMk3.js";import{n as O,t as k}from"./useSort-xfnwjQAu.js";import{t as A}from"./PageHeader-DbC97afG.js";var j=a(`<div>`),M=a(`<div class=empty-state style=color:var(--danger)>`),N=a(`<span class="badge badge-muted">`),P=a(`<th>`),F=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),I=a(`<div class=empty-state>`),L=a(`<div style=display:flex;align-items:center;gap:0.5rem><div class=progress-bar-track style=flex:1><div class=progress-bar-fill></div></div><span style=font-size:12px;color:var(--text-muted);min-width:36px>%`),R=a(`<span class="badge badge-success">`),z=a(`<td><button class="btn btn-sm">`),B=a(`<tr><td style=font-weight:500></td><td><span class="badge badge-accent"></span></td><td style=font-variant-numeric:tabular-nums></td><td style=font-variant-numeric:tabular-nums></td><td style=width:160px></td><td>`),V=a(`<span style=color:var(--text-muted)>—`),H=a(`<span class="badge badge-danger">`),U=25,W={name:e=>e.name,type:e=>e.type,used:e=>e.status?.used??0,limit:e=>e.status?.limit??null,usage:e=>{let t=e.status?.used??0,n=e.status?.limit??null;return n&&n>0?t/n:0},status:e=>e.status?.[`available?`]??!0?`available`:`exhausted`};function G(){let a=g(),s=b(),G=()=>s.data?.read_only??!1,[K,q]=T();d(()=>{document.title=`${l(`nav.limiters`)} — Wurk`});let J=x(()=>({queryKey:[`limiters`,K()],queryFn:()=>h(`${_()}/api/limiters?page=${K()-1}&count=${U}`),refetchInterval:5e3}));E(K,q,()=>J.data);let Y=p(()=>({mutationFn:e=>v(`${_()}/api/limiters/${encodeURIComponent(e)}/reset`),onSuccess:()=>a.invalidateQueries({queryKey:[`limiters`]}),onError:y}));D(K,q,()=>!J.isPending&&!!J.data,()=>(J.data?.limiters.length??0)===0);let{sorted:X,sort:Z,toggle:Q}=k(()=>J.data?.limiters??[],W),$=e=>window.confirm(l(`actions.confirm`,{action:l(`actions.reset`),scope:e}))&&Y.mutate(e);return o(r,{get children(){return[o(i,{get when(){return J.isPending},get children(){var e=j();return f(e,o(A,{icon:`fa-gauge`,get title(){return l(`nav.limiters`)},get summary(){return l(`summaries.limiters`)}}),null),f(e,o(m,{rows:8,get cols(){return G()?6:7}}),null),e}}),o(i,{get when(){return J.isError||!J.data},get children(){var e=M();return f(e,()=>l(`common.error`)),e}}),o(i,{get when(){return J.data},children:r=>(()=>{var i=j();return f(i,o(A,{icon:`fa-gauge`,get title(){return l(`nav.limiters`)},get summary(){return l(`summaries.limiters`)},get children(){var e=N();return f(e,()=>S(r().total)),e}}),null),f(i,o(t,{get when(){return X().length>0},get fallback(){return(()=>{var e=I();return f(e,()=>l(`common.empty`)),e})()},get children(){return[(()=>{var r=F(),i=r.firstChild.firstChild,a=i.firstChild,s=i.nextSibling;return f(a,o(O,{get label(){return l(`table.name`)},sortKey:`name`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.type`)},sortKey:`type`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.used`)},sortKey:`used`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.limit`)},sortKey:`limit`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.usage`)},sortKey:`usage`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.status`)},sortKey:`status`,get sort(){return Z()},onSort:Q}),null),f(a,o(t,{get when(){return!G()},get children(){return P()}}),null),f(s,o(e,{get each(){return X()},children:e=>{let r=e.status,i=r?.used??0,a=r?.limit??null,s=a&&a>0?Math.min(i/a*100,100):0,d=s>90?`var(--danger)`:s>70?`var(--warning)`:`var(--success)`,p=r?.[`available?`]??!0,m=r?Object.entries(r).filter(([e])=>![`used`,`limit`,`reset_at`,`available?`].includes(e)).map(([e,t])=>`${e}=${t}`).join(` `):``;return(()=>{var r=B(),h=r.firstChild,g=h.nextSibling,_=g.firstChild,v=g.nextSibling,y=v.nextSibling,b=y.nextSibling,x=b.nextSibling;return f(h,()=>e.name),f(_,()=>e.type),u(v,`title`,m),f(v,()=>S(i)),f(y,()=>a==null?`∞`:S(a)),f(b,o(t,{when:a!=null,get fallback(){return V()},get children(){var e=L(),t=e.firstChild,n=t.firstChild,r=t.nextSibling,i=r.firstChild;return c(n,`width`,`${s}%`),c(n,`background`,d),f(r,()=>Math.round(s),i),e}})),f(x,o(t,{when:p,get fallback(){return(()=>{var e=H();return f(e,()=>l(`limiters.exhausted`)),e})()},get children(){var e=R();return f(e,()=>l(`limiters.available`)),e}})),f(r,o(t,{get when(){return!G()},get children(){var t=z(),r=t.firstChild;return r.$$click=()=>$(e.name),f(r,()=>l(`actions.reset`)),n(()=>r.disabled=Y.isPending),t}}),null),n(()=>u(h,`title`,e.name)),r})()}})),r})(),o(w,{get page(){return K()},get total(){return r().total},count:U,get maxPage(){return C(r())},onChange:q})]}}),null),i})()})]}})}s([`click`]);export{G as default};
1
+ import{C as e,E as t,I as n,O as r,T as i,_ as a,j as o,l as s,m as c,o as l,p as u,q as d,u as f}from"./i18n-B6AbnmJn.js";import{_ as p,a as m,f as h,g,h as _,m as v,t as y,u as b,v as x}from"./index-CTWV8VL4.js";import{o as S}from"./utils-DnzJXljj.js";import{a as C,i as w,n as T,r as E,t as D}from"./useResetPageOnEmpty-BsYWeStI.js";import{n as O,t as k}from"./useSort-BWWfpnZH.js";import{t as A}from"./PageHeader-CeSaqysY.js";var j=a(`<div>`),M=a(`<div class=empty-state style=color:var(--danger)>`),N=a(`<span class="badge badge-muted">`),P=a(`<th>`),F=a(`<div class=table-wrapper><table><thead><tr></tr></thead><tbody>`),I=a(`<div class=empty-state>`),L=a(`<div style=display:flex;align-items:center;gap:0.5rem><div class=progress-bar-track style=flex:1><div class=progress-bar-fill></div></div><span style=font-size:12px;color:var(--text-muted);min-width:36px>%`),R=a(`<span class="badge badge-success">`),z=a(`<td><button class="btn btn-sm">`),B=a(`<tr><td style=font-weight:500></td><td><span class="badge badge-accent"></span></td><td style=font-variant-numeric:tabular-nums></td><td style=font-variant-numeric:tabular-nums></td><td style=width:160px></td><td>`),V=a(`<span style=color:var(--text-muted)>—`),H=a(`<span class="badge badge-danger">`),U=25,W={name:e=>e.name,type:e=>e.type,used:e=>e.status?.used??0,limit:e=>e.status?.limit??null,usage:e=>{let t=e.status?.used??0,n=e.status?.limit??null;return n&&n>0?t/n:0},status:e=>e.status?.[`available?`]??!0?`available`:`exhausted`};function G(){let a=g(),s=b(),G=()=>s.data?.read_only??!1,[K,q]=T();d(()=>{document.title=`${l(`nav.limiters`)} — Wurk`});let J=x(()=>({queryKey:[`limiters`,K()],queryFn:()=>h(`${_()}/api/limiters?page=${K()-1}&count=${U}`),refetchInterval:5e3}));E(K,q,()=>J.data);let Y=p(()=>({mutationFn:e=>v(`${_()}/api/limiters/${encodeURIComponent(e)}/reset`),onSuccess:()=>a.invalidateQueries({queryKey:[`limiters`]}),onError:y}));D(K,q,()=>!J.isPending&&!!J.data,()=>(J.data?.limiters.length??0)===0);let{sorted:X,sort:Z,toggle:Q}=k(()=>J.data?.limiters??[],W),$=e=>window.confirm(l(`actions.confirm`,{action:l(`actions.reset`),scope:e}))&&Y.mutate(e);return o(r,{get children(){return[o(i,{get when(){return J.isPending},get children(){var e=j();return f(e,o(A,{icon:`fa-gauge`,get title(){return l(`nav.limiters`)},get summary(){return l(`summaries.limiters`)}}),null),f(e,o(m,{rows:8,get cols(){return G()?6:7}}),null),e}}),o(i,{get when(){return J.isError||!J.data},get children(){var e=M();return f(e,()=>l(`common.error`)),e}}),o(i,{get when(){return J.data},children:r=>(()=>{var i=j();return f(i,o(A,{icon:`fa-gauge`,get title(){return l(`nav.limiters`)},get summary(){return l(`summaries.limiters`)},get children(){var e=N();return f(e,()=>S(r().total)),e}}),null),f(i,o(t,{get when(){return X().length>0},get fallback(){return(()=>{var e=I();return f(e,()=>l(`common.empty`)),e})()},get children(){return[(()=>{var r=F(),i=r.firstChild.firstChild,a=i.firstChild,s=i.nextSibling;return f(a,o(O,{get label(){return l(`table.name`)},sortKey:`name`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.type`)},sortKey:`type`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.used`)},sortKey:`used`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.limit`)},sortKey:`limit`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.usage`)},sortKey:`usage`,get sort(){return Z()},onSort:Q}),null),f(a,o(O,{get label(){return l(`table.status`)},sortKey:`status`,get sort(){return Z()},onSort:Q}),null),f(a,o(t,{get when(){return!G()},get children(){return P()}}),null),f(s,o(e,{get each(){return X()},children:e=>{let r=e.status,i=r?.used??0,a=r?.limit??null,s=a&&a>0?Math.min(i/a*100,100):0,d=s>90?`var(--danger)`:s>70?`var(--warning)`:`var(--success)`,p=r?.[`available?`]??!0,m=r?Object.entries(r).filter(([e])=>![`used`,`limit`,`reset_at`,`available?`].includes(e)).map(([e,t])=>`${e}=${t}`).join(` `):``;return(()=>{var r=B(),h=r.firstChild,g=h.nextSibling,_=g.firstChild,v=g.nextSibling,y=v.nextSibling,b=y.nextSibling,x=b.nextSibling;return f(h,()=>e.name),f(_,()=>e.type),u(v,`title`,m),f(v,()=>S(i)),f(y,()=>a==null?`∞`:S(a)),f(b,o(t,{when:a!=null,get fallback(){return V()},get children(){var e=L(),t=e.firstChild,n=t.firstChild,r=t.nextSibling,i=r.firstChild;return c(n,`width`,`${s}%`),c(n,`background`,d),f(r,()=>Math.round(s),i),e}})),f(x,o(t,{when:p,get fallback(){return(()=>{var e=H();return f(e,()=>l(`limiters.exhausted`)),e})()},get children(){var e=R();return f(e,()=>l(`limiters.available`)),e}})),f(r,o(t,{get when(){return!G()},get children(){var t=z(),r=t.firstChild;return r.$$click=()=>$(e.name),f(r,()=>l(`actions.reset`)),n(()=>r.disabled=Y.isPending),t}}),null),n(()=>u(h,`title`,e.name)),r})()}})),r})(),o(w,{get page(){return K()},get total(){return r().total},count:U,get maxPage(){return C(r())},onChange:q})]}}),null),i})()})]}})}s([`click`]);export{G as default};