@motiadev/plugin-bullmq 0.14.0-beta.165-516298 → 0.14.0-beta.165-454838

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 (42) hide show
  1. package/dist/api.d.ts +4 -0
  2. package/dist/api.d.ts.map +1 -0
  3. package/dist/components/dlq-panel.d.ts +2 -0
  4. package/dist/components/dlq-panel.d.ts.map +1 -0
  5. package/dist/components/job-detail.d.ts +2 -0
  6. package/dist/components/job-detail.d.ts.map +1 -0
  7. package/dist/components/jobs-table.d.ts +2 -0
  8. package/dist/components/jobs-table.d.ts.map +1 -0
  9. package/dist/components/queue-detail.d.ts +2 -0
  10. package/dist/components/queue-detail.d.ts.map +1 -0
  11. package/dist/components/queue-list.d.ts +2 -0
  12. package/dist/components/queue-list.d.ts.map +1 -0
  13. package/dist/components/queues-page.d.ts +2 -0
  14. package/dist/components/queues-page.d.ts.map +1 -0
  15. package/dist/hooks/use-jobs-mutations.d.ts +23 -0
  16. package/dist/hooks/use-jobs-mutations.d.ts.map +1 -0
  17. package/dist/hooks/use-jobs-query.d.ts +5 -0
  18. package/dist/hooks/use-jobs-query.d.ts.map +1 -0
  19. package/dist/hooks/use-queues.d.ts +11 -0
  20. package/dist/hooks/use-queues.d.ts.map +1 -0
  21. package/dist/index.cjs +98 -0
  22. package/dist/index.d.ts +2 -62
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4509 -2896
  25. package/dist/plugin-bullmq.css +1 -0
  26. package/dist/plugin.cjs +1 -0
  27. package/dist/plugin.d.ts +2 -6
  28. package/dist/plugin.d.ts.map +1 -1
  29. package/dist/plugin.js +384 -630
  30. package/dist/providers/query-provider.d.ts +7 -0
  31. package/dist/providers/query-provider.d.ts.map +1 -0
  32. package/dist/stores/use-bullmq-store.d.ts +22 -0
  33. package/dist/stores/use-bullmq-store.d.ts.map +1 -0
  34. package/dist/streams/queues-stream.d.ts +33 -0
  35. package/dist/streams/queues-stream.d.ts.map +1 -0
  36. package/dist/types/queue.d.ts +54 -0
  37. package/dist/types/queue.d.ts.map +1 -0
  38. package/package.json +24 -17
  39. package/dist/index.css +0 -1161
  40. package/dist/index.css.map +0 -1
  41. package/dist/index.js.map +0 -1
  42. package/dist/plugin.js.map +0 -1
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-500:oklch(72.3% .219 149.579);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-500:oklch(62.7% .265 303.9);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:.05em;--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-weight-500:var(--font-weight-500);--font-weight-600:var(--font-weight-600);--font-weight-700:var(--font-weight-700)}}@layer base{*{border-color:var(--border)}body{background-color:var(--background);color:var(--foreground)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.right-3{right:calc(var(--spacing)*3)}.left-3{left:calc(var(--spacing)*3)}.mt-1{margin-top:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-full{height:100%}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-16{width:calc(var(--spacing)*16)}.w-\[60px\]{width:60px}.w-\[80px\]{width:80px}.w-\[100px\]{width:100px}.w-\[140px\]{width:140px}.w-\[150px\]{width:150px}.w-\[180px\]{width:180px}.w-\[200px\]{width:200px}.w-full{width:100%}.max-w-\[300px\]{max-width:300px}.flex-1{flex:1}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-\[300px_1fr\]{grid-template-columns:300px 1fr}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\/10{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/10{background-color:color-mix(in oklab,var(--muted-foreground)10%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-yellow-500\/20{background-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/20{background-color:color-mix(in oklab,var(--color-yellow-500)20%,transparent)}}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-9{padding-inline:calc(var(--spacing)*9)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-2{padding-block:calc(var(--spacing)*2)}.pt-2{padding-top:calc(var(--spacing)*2)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-blue-500{color:var(--color-blue-500)}.text-destructive{color:var(--destructive)}.text-green-500{color:var(--color-green-500)}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.uppercase{text-transform:uppercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.paused{animation-play-state:paused}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:right-0:after{content:var(--tw-content);right:calc(var(--spacing)*0)}.after\:bottom-0:after{content:var(--tw-content);bottom:calc(var(--spacing)*0)}.after\:left-0:after{content:var(--tw-content);left:calc(var(--spacing)*0)}.after\:h-0\.5:after{content:var(--tw-content);height:calc(var(--spacing)*.5)}.after\:bg-primary:after{content:var(--tw-content);background-color:var(--primary)}@media (hover:hover){.hover\:bg-muted-foreground\/10:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted-foreground\/10:hover{background-color:color-mix(in oklab,var(--muted-foreground)10%,transparent)}}.hover\:bg-muted-foreground\/20:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted-foreground\/20:hover{background-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.hover\:bg-muted\/70:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/70:hover{background-color:color-mix(in oklab,var(--muted)70%,transparent)}}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}}}:root{--default-font-family:"DM Sans",ui-sans-serif,sans-serif;--font-dm-mono:"DM Mono",ui-monospace,monospace;color-scheme:light dark;font-size:16px;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"),serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--font-weight-500:500;--font-weight-600:600;--font-weight-700:700;--accent-1000:#2862fe;--accent-970:#2862fef7;--accent-950:#2862fef2;--accent-900:#2862fee5;--accent-800:#2862fecc;--accent-700:#2862feb2;--accent-600:#2862fe99;--accent-500:#2862fe80;--accent-400:#2862fe66;--accent-300:#2862fe4d;--accent-200:#2862fe33;--accent-100:#2862fe1a;--accent-50:#2862fe0d;--accent-30:#2862fe08;--dark-1000:#0a0a0a;--dark-970:#0a0a0af7;--dark-950:#0a0a0af2;--dark-900:#0a0a0ae5;--dark-800:#0a0a0acc;--dark-700:#0a0a0ab2;--dark-600:#0a0a0a99;--dark-500:#0a0a0a80;--dark-400:#0a0a0a66;--dark-300:#0a0a0a4d;--dark-200:#0a0a0a33;--dark-100:#0a0a0a1a;--dark-50:#0a0a0a0d;--dark-30:#0a0a0a08;--light-1000:#fff;--light-970:#fffffff7;--light-950:#fffffff2;--light-900:#ffffffe5;--light-800:#fffc;--light-700:#ffffffb2;--light-600:#fff9;--light-500:#ffffff80;--light-400:#fff6;--light-300:#ffffff4d;--light-200:#fff3;--light-100:#ffffff1a;--light-50:#ffffff0d;--light-30:#ffffff08;--error:#d61355;--canvas-background:#ebebeb;--background:var(--light-1000);--foreground:var(--dark-1000);--surface-content:var(--dark-30);--surface-component:var(--dark-50);--surface-light-100:var(--dark-100);--surface-light-200:var(--dark-200);--border:var(--dark-100);--border-accent:var(--accent-1000);--states-hover:var(--dark-30);--states-selected:var(--dark-100);--states-active:var(--accent-1000);--text-header:var(--dark-1000);--text-body:var(--dark-600);--text-placeholder:var(--dark-400);--text-accent:var(--accent-1000);--text-error:var(--error);--icon-active:var(--dark-1000);--icon-light:var(--dark-600);--icon-component:var(--dark-400);--icon-accent:var(--accent-1000);--primary:var(--accent-1000);--primary-foreground:var(--light-1000);--secondary:var(--surface-component);--secondary-foreground:var(--text-body);--muted:var(--surface-light-100);--muted-foreground:var(--text-body);--accent:var(--accent-1000);--accent-foreground:var(--light-1000);--destructive:var(--error);--destructive-foreground:var(--light-1000);--card:var(--surface-content);--card-foreground:var(--foreground);--popover:var(--surface-content);--popover-foreground:var(--foreground);--input:var(--states-hover);--ring:var(--border-accent);--chart-1:var(--accent-1000);--chart-2:var(--accent-800);--chart-3:var(--accent-600);--chart-4:var(--accent-400);--chart-5:var(--accent-200);--header:var(--background);--header-foreground:var(--text-header);--header-primary:var(--primary);--header-primary-foreground:var(--primary-foreground);--header-accent:var(--surface-component);--header-accent-foreground:var(--text-body);--header-border:var(--border);--header-ring:var(--ring);--sidebar:var(--background);--sidebar-foreground:var(--text-header);--sidebar-primary:var(--primary);--sidebar-primary-foreground:var(--primary-foreground);--sidebar-accent:var(--surface-component);--sidebar-accent-foreground:var(--text-body);--sidebar-border:var(--border);--sidebar-ring:var(--ring);width:100%}.dark{--canvas-background:#030303;--background:var(--dark-1000);--foreground:var(--light-1000);--surface-content:var(--light-30);--surface-component:var(--light-50);--surface-light-100:var(--light-100);--surface-light-200:var(--light-200);--border:var(--light-100);--states-hover:var(--light-30);--states-selected:var(--light-100);--text-header:var(--light-1000);--text-body:var(--light-600);--text-placeholder:var(--light-400);--icon-active:var(--light-1000);--icon-light:var(--light-600);--icon-component:var(--light-400);--secondary-foreground:var(--light-600);--muted-foreground:var(--light-600);--card:var(--surface-content);--card-foreground:var(--foreground);--popover:var(--surface-content);--popover-foreground:var(--foreground);--input:var(--states-hover);--ring:var(--border-accent);--chart-1:var(--accent-1000);--chart-2:var(--accent-800);--chart-3:var(--accent-600);--chart-4:var(--accent-400);--chart-5:var(--accent-200);--header:var(--background);--header-foreground:var(--text-header);--header-primary:var(--primary);--header-primary-foreground:var(--primary-foreground);--header-accent:var(--surface-component);--header-accent-foreground:var(--text-body);--header-border:var(--border);--header-ring:var(--ring);--sidebar:var(--background);--sidebar-foreground:var(--text-header);--sidebar-primary:var(--primary);--sidebar-primary-foreground:var(--primary-foreground);--sidebar-accent:var(--surface-component);--sidebar-accent-foreground:var(--text-body);--sidebar-border:var(--border);--sidebar-ring:var(--ring)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}.json-view{display:block;color:#4d4d4d;text-align:left;--json-property: #009033;--json-index: #676dff;--json-number: #676dff;--json-string: #b2762e;--json-boolean: #dc155e;--json-null: #dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover,.json-view .jv-size:hover+.jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy,.json-view--edit),.json-view .json-view--link svg{display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover,.json-view--pair:hover)>:is(.json-view--copy,.json-view--edit),:is(.json-view:hover,.json-view--pair:hover)>.json-view--link svg{display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer;color:inherit}.json-view .cursor-pointer{cursor:pointer}.json-view svg{vertical-align:-10%}.jv-size-chevron~svg{vertical-align:-16%}.json-view_a11y{color:#545454;--json-property: #aa5d00;--json-index: #007299;--json-number: #007299;--json-string: #008000;--json-boolean: #d91e18;--json-null: #d91e18}.json-view_github{color:#005cc5;--json-property: #005cc5;--json-index: #005cc5;--json-number: #005cc5;--json-string: #032f62;--json-boolean: #005cc5;--json-null: #005cc5}.json-view_vscode{color:#005cc5;--json-property: #0451a5;--json-index: #0000ff;--json-number: #0000ff;--json-string: #a31515;--json-boolean: #0000ff;--json-null: #0000ff}.json-view_atom{color:#383a42;--json-property: #e45649;--json-index: #986801;--json-number: #986801;--json-string: #50a14f;--json-boolean: #0184bc;--json-null: #0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property: #3a9685;--json-index: #ae408b;--json-number: #ae408b;--json-string: #8123a9;--json-boolean: #0184bc;--json-null: #0184bc}
@@ -0,0 +1 @@
1
+ "use strict";const I=require("ioredis"),_=require("@motiadev/core"),P=require("bullmq"),g=new Map,f=new Map,d=(u,s,a)=>{const o=g.get(u);if(o)return o;const t=new P.Queue(u,{connection:s,prefix:a});return g.set(u,t),t},w=async(u,s)=>{const a=`${s}:*:id`,o=await u.keys(a),t=new Set;for(const e of o){const i=e.slice(s.length+1).slice(0,-3);t.add(i)}return t},b=async(u,s,a,o)=>{const t=d(u,s,a),[e,n]=await Promise.all([t.isPaused(),t.getJobCounts()]);return{name:u,displayName:u,isPaused:e,isDLQ:u.endsWith(o),stats:{waiting:n.waiting||0,active:n.active||0,completed:n.completed||0,failed:n.failed||0,delayed:n.delayed||0,paused:n.paused||0,prioritized:n.prioritized||0}}},v=500;class Q extends _.StreamAdapter{constructor(s,a,o){super("__motia.bullmq-queues"),this.knownQueues=new Set,this.lastStatsCache=new Map,this.debounceTimers=new Map,this.connection=s,this.prefix=a,this.dlqSuffix=o}setUpdateCallback(s){this.onQueueUpdate=s}async get(s,a){try{const o=await b(a,this.connection,this.prefix,this.dlqSuffix);return{...o,id:o.name}}catch{return null}}async set(s,a,o){return o}async delete(s,a){return this.knownQueues.delete(a),this.lastStatsCache.delete(a),{id:a}}async getGroup(s){const a=await w(this.connection,this.prefix),o=[];for(const t of a){this.knownQueues.add(t);const e=await b(t,this.connection,this.prefix,this.dlqSuffix),n={...e,id:e.name};o.push(n),this.lastStatsCache.set(t,JSON.stringify({stats:e.stats,isPaused:e.isPaused}))}return o}async refreshQueue(s){const a=await b(s,this.connection,this.prefix,this.dlqSuffix),o={...a,id:a.name};this.knownQueues.add(s);const t=JSON.stringify({stats:a.stats,isPaused:a.isPaused});return this.lastStatsCache.get(s)!==t&&(this.lastStatsCache.set(s,t),this.onQueueUpdate?.(o)),o}debouncedRefresh(s){const a=this.debounceTimers.get(s);a&&clearTimeout(a);const o=setTimeout(()=>{this.debounceTimers.delete(s),this.refreshQueue(s)},v);this.debounceTimers.set(s,o)}setupQueueEvents(s){if(f.has(s))return;const a=new P.QueueEvents(s,{connection:this.connection,prefix:this.prefix}),o=()=>{this.debouncedRefresh(s)};a.on("waiting",o),a.on("active",o),a.on("completed",o),a.on("failed",o),a.on("delayed",o),a.on("removed",o)}async setupAllQueueEvents(){const s=await w(this.connection,this.prefix);for(const a of s)this.setupQueueEvents(a)}async closeAllQueueEvents(){for(const s of this.debounceTimers.values())clearTimeout(s);this.debounceTimers.clear();for(const[,s]of f)await s.close();f.clear()}getKnownQueues(){return this.knownQueues}}const E=async(u,s,a)=>{const o=await w(u,s),t=[];for(const e of o){const n=await b(e,u,s,a);t.push(n)}return t},S=({registerApi:u},s,a,o)=>{u({method:"GET",path:"/__motia/bullmq/queues"},async()=>{try{return{status:200,body:{queues:await E(o,s,a)}}}catch(t){return{status:500,body:{error:t instanceof Error?t.message:"Unknown error"}}}}),u({method:"GET",path:"/__motia/bullmq/queues/:name"},async t=>{try{const e=t.pathParams.name,n=d(e,o,s),[i,r]=await Promise.all([n.isPaused(),n.getJobCounts()]);return{status:200,body:{name:e,displayName:e,isPaused:i,isDLQ:e.endsWith(a),stats:{waiting:r.waiting||0,active:r.active||0,completed:r.completed||0,failed:r.failed||0,delayed:r.delayed||0,paused:r.paused||0,prioritized:r.prioritized||0}}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/queues/:name/pause"},async t=>{try{const e=t.pathParams.name;return await d(e,o,s).pause(),{status:200,body:{message:"Queue paused"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/queues/:name/resume"},async t=>{try{const e=t.pathParams.name;return await d(e,o,s).resume(),{status:200,body:{message:"Queue resumed"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/queues/:name/clean"},async t=>{try{const e=t.pathParams.name,n=t.body,i={grace:n.grace??0,limit:n.limit??1e3,status:n.status??"completed"},m=await d(e,o,s).clean(i.grace,i.limit,i.status);return{status:200,body:{deleted:m.length,ids:m}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/queues/:name/drain"},async t=>{try{const e=t.pathParams.name;return await d(e,o,s).drain(),{status:200,body:{message:"Queue drained"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"GET",path:"/__motia/bullmq/queues/:name/jobs"},async t=>{try{const e=t.pathParams.name,n=t.queryParams.status||"waiting",i=parseInt(t.queryParams.start,10)||0,r=parseInt(t.queryParams.end,10)||100;return{status:200,body:{jobs:(await d(e,o,s).getJobs([n],i,r)).map(c=>({id:c.id||"",name:c.name,data:c.data,opts:c.opts,progress:typeof c.progress=="object"?JSON.stringify(c.progress):c.progress,timestamp:c.timestamp,attemptsMade:c.attemptsMade,processedOn:c.processedOn,finishedOn:c.finishedOn,returnvalue:c.returnvalue,failedReason:c.failedReason,stacktrace:c.stacktrace}))}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"GET",path:"/__motia/bullmq/queues/:queueName/jobs/:jobId"},async t=>{try{const e=t.pathParams.queueName,n=t.pathParams.jobId,r=await d(e,o,s).getJob(n);return r?{status:200,body:{id:r.id||"",name:r.name,data:r.data,opts:r.opts,progress:typeof r.progress=="object"?JSON.stringify(r.progress):r.progress,timestamp:r.timestamp,attemptsMade:r.attemptsMade,processedOn:r.processedOn,finishedOn:r.finishedOn,returnvalue:r.returnvalue,failedReason:r.failedReason,stacktrace:r.stacktrace}}:{status:404,body:{error:"Job not found"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/queues/:queueName/jobs/:jobId/retry"},async t=>{try{const e=t.pathParams.queueName,n=t.pathParams.jobId,r=await d(e,o,s).getJob(n);return r?(await r.retry(),{status:200,body:{message:"Job retried"}}):{status:404,body:{error:"Job not found"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/queues/:queueName/jobs/:jobId/remove"},async t=>{try{const e=t.pathParams.queueName,n=t.pathParams.jobId,r=await d(e,o,s).getJob(n);return r?(await r.remove(),{status:200,body:{message:"Job removed"}}):{status:404,body:{error:"Job not found"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/queues/:queueName/jobs/:jobId/promote"},async t=>{try{const e=t.pathParams.queueName,n=t.pathParams.jobId,r=await d(e,o,s).getJob(n);return r?(await r.promote(),{status:200,body:{message:"Job promoted"}}):{status:404,body:{error:"Job not found"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"GET",path:"/__motia/bullmq/dlq/:name/jobs"},async t=>{try{const e=t.pathParams.name,n=parseInt(t.queryParams.start,10)||0,i=parseInt(t.queryParams.end,10)||100,r=e.endsWith(a)?e:`${e}${a}`;return{status:200,body:{jobs:(await d(r,o,s).getJobs(["waiting","completed"],n,i)).map(c=>({id:c.id||"",name:c.name,data:c.data,timestamp:c.timestamp,originalEvent:c.data?.originalEvent,failureReason:c.data?.failureReason||c.failedReason,failureTimestamp:c.data?.failureTimestamp||c.finishedOn,attemptsMade:c.data?.attemptsMade||c.attemptsMade}))}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/dlq/:name/retry/:jobId"},async t=>{try{const e=t.pathParams.name,n=t.pathParams.jobId,i=e.endsWith(a)?e:`${e}${a}`,m=await d(i,o,s).getJob(n);if(!m)return{status:404,body:{error:"Job not found in DLQ"}};const l=m.data?.originalEvent;if(l){const p=i.replace(a,""),c=d(p,o,s),h={topic:l.topic,data:l.data,traceId:l.traceId};l.flows&&(h.flows=l.flows),l.messageGroupId&&(h.messageGroupId=l.messageGroupId),await c.add(l.topic||m.name,h)}return await m.remove(),{status:200,body:{message:"Job retried from DLQ"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/dlq/:name/retry-all"},async t=>{try{const e=t.pathParams.name,n=e.endsWith(a)?e:`${e}${a}`,r=await d(n,o,s).getJobs(["waiting","completed"]),m=n.replace(a,""),l=d(m,o,s);let p=0;for(const c of r){const h=c.data?.originalEvent;if(h){const y={topic:h.topic,data:h.data,traceId:h.traceId};h.flows&&(y.flows=h.flows),h.messageGroupId&&(y.messageGroupId=h.messageGroupId),await l.add(h.topic||c.name,y)}await c.remove(),p++}return{status:200,body:{message:`Retried ${p} jobs from DLQ`,count:p}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}}),u({method:"POST",path:"/__motia/bullmq/dlq/:name/clear"},async t=>{try{const e=t.pathParams.name,n=e.endsWith(a)?e:`${e}${a}`;return await d(n,o,s).obliterate({force:!0}),{status:200,body:{message:"DLQ cleared"}}}catch(e){return{status:500,body:{error:e instanceof Error?e.message:"Unknown error"}}}})},q="__motia.bullmq-queues",O=u=>u!==null&&typeof u=="object"&&"connection"in u&&"prefix"in u&&"dlqSuffix"in u;function k(u){let s,a,o,t=!1;if(O(u.eventAdapter))s=u.eventAdapter.connection,a=u.eventAdapter.prefix,o=u.eventAdapter.dlqSuffix;else{const i=process.env.BULLMQ_REDIS_HOST||process.env.REDIS_HOST||"localhost",r=parseInt(process.env.BULLMQ_REDIS_PORT||process.env.REDIS_PORT||"6379",10),m=process.env.BULLMQ_REDIS_PASSWORD||process.env.REDIS_PASSWORD||void 0;a=process.env.BULLMQ_PREFIX||"motia:events",o=process.env.BULLMQ_DLQ_SUFFIX||".dlq",s=new I({host:i,port:r,password:m,maxRetriesPerRequest:null}),t=!0}const e=new Q(s,a,o),n=u.lockedData.createStream({filePath:`${q}.ts`,hidden:!0,config:{name:q,baseConfig:{storageType:"custom",factory:()=>e},schema:null}})();return e.setUpdateCallback(i=>{n.set("default",i.id,i)}),e.setupAllQueueEvents().then(()=>{e.getGroup("default").then(i=>{for(const r of i)n.set("default",r.id,r)})}),S(u,a,o,s),{workbench:[{packageName:"@motiadev/plugin-bullmq",cssImports:["@motiadev/plugin-bullmq/dist/plugin-bullmq.css"],label:"Queues",position:"top",componentName:"QueuesPage",labelIcon:"layers"}],onShutdown:async()=>{await e.closeAllQueueEvents(),t&&await s.quit()}}}module.exports=k;
package/dist/plugin.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- import { MotiaPlugin, MotiaPluginContext } from "@motiadev/core";
2
-
3
- //#region src/plugin.d.ts
4
- declare function plugin(motia: MotiaPluginContext): MotiaPlugin;
5
- //#endregion
6
- export { plugin as default };
1
+ import { MotiaPlugin, MotiaPluginContext } from '@motiadev/core';
2
+ export default function plugin(motia: MotiaPluginContext): MotiaPlugin;
7
3
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","names":[],"sources":["../src/plugin.ts"],"sourcesContent":[],"mappings":";;;iBAiBwB,MAAA,QAAc,qBAAqB"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAiBrE,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,WAAW,CAiErE"}