@zudojs/queue 0.0.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 (211) hide show
  1. package/README.md +46 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/deadLetter/deadLetter.core.d.ts +13 -0
  4. package/dist/deadLetter/deadLetter.core.d.ts.map +1 -0
  5. package/dist/deadLetter/deadLetter.core.js +41 -0
  6. package/dist/deadLetter/deadLetter.core.js.map +1 -0
  7. package/dist/deadLetter/deadLetter.type.d.ts +33 -0
  8. package/dist/deadLetter/deadLetter.type.d.ts.map +1 -0
  9. package/dist/deadLetter/deadLetter.type.js +2 -0
  10. package/dist/deadLetter/deadLetter.type.js.map +1 -0
  11. package/dist/deadLetter/index.d.ts +9 -0
  12. package/dist/deadLetter/index.d.ts.map +1 -0
  13. package/dist/deadLetter/index.js +8 -0
  14. package/dist/deadLetter/index.js.map +1 -0
  15. package/dist/inMemoryQueue/inMemoryQueue.core.d.ts +48 -0
  16. package/dist/inMemoryQueue/inMemoryQueue.core.d.ts.map +1 -0
  17. package/dist/inMemoryQueue/inMemoryQueue.core.js +230 -0
  18. package/dist/inMemoryQueue/inMemoryQueue.core.js.map +1 -0
  19. package/dist/inMemoryQueue/inMemoryQueue.factory.d.ts +7 -0
  20. package/dist/inMemoryQueue/inMemoryQueue.factory.d.ts.map +1 -0
  21. package/dist/inMemoryQueue/inMemoryQueue.factory.js +8 -0
  22. package/dist/inMemoryQueue/inMemoryQueue.factory.js.map +1 -0
  23. package/dist/inMemoryQueue/inMemoryQueue.processing.d.ts +19 -0
  24. package/dist/inMemoryQueue/inMemoryQueue.processing.d.ts.map +1 -0
  25. package/dist/inMemoryQueue/inMemoryQueue.processing.js +112 -0
  26. package/dist/inMemoryQueue/inMemoryQueue.processing.js.map +1 -0
  27. package/dist/inMemoryQueue/inMemoryQueue.scheduling.d.ts +10 -0
  28. package/dist/inMemoryQueue/inMemoryQueue.scheduling.d.ts.map +1 -0
  29. package/dist/inMemoryQueue/inMemoryQueue.scheduling.js +38 -0
  30. package/dist/inMemoryQueue/inMemoryQueue.scheduling.js.map +1 -0
  31. package/dist/inMemoryQueue/index.d.ts +8 -0
  32. package/dist/inMemoryQueue/index.d.ts.map +1 -0
  33. package/dist/inMemoryQueue/index.js +8 -0
  34. package/dist/inMemoryQueue/index.js.map +1 -0
  35. package/dist/index.d.ts +27 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +44 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/job/index.d.ts +9 -0
  40. package/dist/job/index.d.ts.map +1 -0
  41. package/dist/job/index.js +8 -0
  42. package/dist/job/index.js.map +1 -0
  43. package/dist/job/job.core.d.ts +19 -0
  44. package/dist/job/job.core.d.ts.map +1 -0
  45. package/dist/job/job.core.js +74 -0
  46. package/dist/job/job.core.js.map +1 -0
  47. package/dist/job/job.type.d.ts +65 -0
  48. package/dist/job/job.type.d.ts.map +1 -0
  49. package/dist/job/job.type.js +2 -0
  50. package/dist/job/job.type.js.map +1 -0
  51. package/dist/jobContext/index.d.ts +8 -0
  52. package/dist/jobContext/index.d.ts.map +1 -0
  53. package/dist/jobContext/index.js +7 -0
  54. package/dist/jobContext/index.js.map +1 -0
  55. package/dist/jobContext/jobContext.core.d.ts +17 -0
  56. package/dist/jobContext/jobContext.core.d.ts.map +1 -0
  57. package/dist/jobContext/jobContext.core.js +36 -0
  58. package/dist/jobContext/jobContext.core.js.map +1 -0
  59. package/dist/jobContext/jobContext.type.d.ts +16 -0
  60. package/dist/jobContext/jobContext.type.d.ts.map +1 -0
  61. package/dist/jobContext/jobContext.type.js +2 -0
  62. package/dist/jobContext/jobContext.type.js.map +1 -0
  63. package/dist/jobOptions/index.d.ts +8 -0
  64. package/dist/jobOptions/index.d.ts.map +1 -0
  65. package/dist/jobOptions/index.js +7 -0
  66. package/dist/jobOptions/index.js.map +1 -0
  67. package/dist/jobOptions/jobOptions.core.d.ts +10 -0
  68. package/dist/jobOptions/jobOptions.core.d.ts.map +1 -0
  69. package/dist/jobOptions/jobOptions.core.js +23 -0
  70. package/dist/jobOptions/jobOptions.core.js.map +1 -0
  71. package/dist/jobOptions/jobOptions.type.d.ts +36 -0
  72. package/dist/jobOptions/jobOptions.type.d.ts.map +1 -0
  73. package/dist/jobOptions/jobOptions.type.js +2 -0
  74. package/dist/jobOptions/jobOptions.type.js.map +1 -0
  75. package/dist/jobResult/index.d.ts +8 -0
  76. package/dist/jobResult/index.d.ts.map +1 -0
  77. package/dist/jobResult/index.js +7 -0
  78. package/dist/jobResult/index.js.map +1 -0
  79. package/dist/jobResult/jobResult.core.d.ts +19 -0
  80. package/dist/jobResult/jobResult.core.d.ts.map +1 -0
  81. package/dist/jobResult/jobResult.core.js +36 -0
  82. package/dist/jobResult/jobResult.core.js.map +1 -0
  83. package/dist/jobResult/jobResult.type.d.ts +34 -0
  84. package/dist/jobResult/jobResult.type.d.ts.map +1 -0
  85. package/dist/jobResult/jobResult.type.js +2 -0
  86. package/dist/jobResult/jobResult.type.js.map +1 -0
  87. package/dist/jobTypes/index.d.ts +9 -0
  88. package/dist/jobTypes/index.d.ts.map +1 -0
  89. package/dist/jobTypes/index.js +8 -0
  90. package/dist/jobTypes/index.js.map +1 -0
  91. package/dist/jobTypes/jobTypes.type.d.ts +89 -0
  92. package/dist/jobTypes/jobTypes.type.d.ts.map +1 -0
  93. package/dist/jobTypes/jobTypes.type.js +81 -0
  94. package/dist/jobTypes/jobTypes.type.js.map +1 -0
  95. package/dist/middleware/index.d.ts +8 -0
  96. package/dist/middleware/index.d.ts.map +1 -0
  97. package/dist/middleware/index.js +7 -0
  98. package/dist/middleware/index.js.map +1 -0
  99. package/dist/middleware/middleware.core.d.ts +16 -0
  100. package/dist/middleware/middleware.core.d.ts.map +1 -0
  101. package/dist/middleware/middleware.core.js +76 -0
  102. package/dist/middleware/middleware.core.js.map +1 -0
  103. package/dist/middleware/middleware.type.d.ts +19 -0
  104. package/dist/middleware/middleware.type.d.ts.map +1 -0
  105. package/dist/middleware/middleware.type.js +2 -0
  106. package/dist/middleware/middleware.type.js.map +1 -0
  107. package/dist/processor/index.d.ts +10 -0
  108. package/dist/processor/index.d.ts.map +1 -0
  109. package/dist/processor/index.js +9 -0
  110. package/dist/processor/index.js.map +1 -0
  111. package/dist/processor/processor.core.d.ts +6 -0
  112. package/dist/processor/processor.core.d.ts.map +1 -0
  113. package/dist/processor/processor.core.js +40 -0
  114. package/dist/processor/processor.core.js.map +1 -0
  115. package/dist/processor/processor.type.d.ts +42 -0
  116. package/dist/processor/processor.type.d.ts.map +1 -0
  117. package/dist/processor/processor.type.js +7 -0
  118. package/dist/processor/processor.type.js.map +1 -0
  119. package/dist/queue/index.d.ts +10 -0
  120. package/dist/queue/index.d.ts.map +1 -0
  121. package/dist/queue/index.js +8 -0
  122. package/dist/queue/index.js.map +1 -0
  123. package/dist/queue/queue.core.d.ts +13 -0
  124. package/dist/queue/queue.core.d.ts.map +1 -0
  125. package/dist/queue/queue.core.js +23 -0
  126. package/dist/queue/queue.core.js.map +1 -0
  127. package/dist/queue/queue.type.d.ts +109 -0
  128. package/dist/queue/queue.type.d.ts.map +1 -0
  129. package/dist/queue/queue.type.js +2 -0
  130. package/dist/queue/queue.type.js.map +1 -0
  131. package/dist/queueEmitter/index.d.ts +9 -0
  132. package/dist/queueEmitter/index.d.ts.map +1 -0
  133. package/dist/queueEmitter/index.js +8 -0
  134. package/dist/queueEmitter/index.js.map +1 -0
  135. package/dist/queueEmitter/queueEmitter.core.d.ts +24 -0
  136. package/dist/queueEmitter/queueEmitter.core.d.ts.map +1 -0
  137. package/dist/queueEmitter/queueEmitter.core.js +45 -0
  138. package/dist/queueEmitter/queueEmitter.core.js.map +1 -0
  139. package/dist/queueEmitter/queueEmitter.type.d.ts +14 -0
  140. package/dist/queueEmitter/queueEmitter.type.d.ts.map +1 -0
  141. package/dist/queueEmitter/queueEmitter.type.js +2 -0
  142. package/dist/queueEmitter/queueEmitter.type.js.map +1 -0
  143. package/dist/queueEvents/index.d.ts +8 -0
  144. package/dist/queueEvents/index.d.ts.map +1 -0
  145. package/dist/queueEvents/index.js +7 -0
  146. package/dist/queueEvents/index.js.map +1 -0
  147. package/dist/queueEvents/queueEvents.core.d.ts +6 -0
  148. package/dist/queueEvents/queueEvents.core.d.ts.map +1 -0
  149. package/dist/queueEvents/queueEvents.core.js +12 -0
  150. package/dist/queueEvents/queueEvents.core.js.map +1 -0
  151. package/dist/queueEvents/queueEvents.type.d.ts +97 -0
  152. package/dist/queueEvents/queueEvents.type.d.ts.map +1 -0
  153. package/dist/queueEvents/queueEvents.type.js +2 -0
  154. package/dist/queueEvents/queueEvents.type.js.map +1 -0
  155. package/dist/queueManager/index.d.ts +8 -0
  156. package/dist/queueManager/index.d.ts.map +1 -0
  157. package/dist/queueManager/index.js +7 -0
  158. package/dist/queueManager/index.js.map +1 -0
  159. package/dist/queueManager/queueManager.core.d.ts +6 -0
  160. package/dist/queueManager/queueManager.core.d.ts.map +1 -0
  161. package/dist/queueManager/queueManager.core.js +32 -0
  162. package/dist/queueManager/queueManager.core.js.map +1 -0
  163. package/dist/queueManager/queueManager.type.d.ts +18 -0
  164. package/dist/queueManager/queueManager.type.d.ts.map +1 -0
  165. package/dist/queueManager/queueManager.type.js +2 -0
  166. package/dist/queueManager/queueManager.type.js.map +1 -0
  167. package/dist/queueRegistry/index.d.ts +8 -0
  168. package/dist/queueRegistry/index.d.ts.map +1 -0
  169. package/dist/queueRegistry/index.js +7 -0
  170. package/dist/queueRegistry/index.js.map +1 -0
  171. package/dist/queueRegistry/queueRegistry.core.d.ts +6 -0
  172. package/dist/queueRegistry/queueRegistry.core.d.ts.map +1 -0
  173. package/dist/queueRegistry/queueRegistry.core.js +41 -0
  174. package/dist/queueRegistry/queueRegistry.core.js.map +1 -0
  175. package/dist/queueRegistry/queueRegistry.type.d.ts +31 -0
  176. package/dist/queueRegistry/queueRegistry.type.d.ts.map +1 -0
  177. package/dist/queueRegistry/queueRegistry.type.js +2 -0
  178. package/dist/queueRegistry/queueRegistry.type.js.map +1 -0
  179. package/dist/retryPolicy/index.d.ts +8 -0
  180. package/dist/retryPolicy/index.d.ts.map +1 -0
  181. package/dist/retryPolicy/index.js +8 -0
  182. package/dist/retryPolicy/index.js.map +1 -0
  183. package/dist/retryPolicy/retryPolicy.core.d.ts +29 -0
  184. package/dist/retryPolicy/retryPolicy.core.d.ts.map +1 -0
  185. package/dist/retryPolicy/retryPolicy.core.js +51 -0
  186. package/dist/retryPolicy/retryPolicy.core.js.map +1 -0
  187. package/dist/serializer/index.d.ts +9 -0
  188. package/dist/serializer/index.d.ts.map +1 -0
  189. package/dist/serializer/index.js +8 -0
  190. package/dist/serializer/index.js.map +1 -0
  191. package/dist/serializer/serializer.core.d.ts +19 -0
  192. package/dist/serializer/serializer.core.d.ts.map +1 -0
  193. package/dist/serializer/serializer.core.js +53 -0
  194. package/dist/serializer/serializer.core.js.map +1 -0
  195. package/dist/serializer/serializer.type.d.ts +12 -0
  196. package/dist/serializer/serializer.type.d.ts.map +1 -0
  197. package/dist/serializer/serializer.type.js +2 -0
  198. package/dist/serializer/serializer.type.js.map +1 -0
  199. package/dist/worker/index.d.ts +9 -0
  200. package/dist/worker/index.d.ts.map +1 -0
  201. package/dist/worker/index.js +8 -0
  202. package/dist/worker/index.js.map +1 -0
  203. package/dist/worker/worker.core.d.ts +11 -0
  204. package/dist/worker/worker.core.d.ts.map +1 -0
  205. package/dist/worker/worker.core.js +117 -0
  206. package/dist/worker/worker.core.js.map +1 -0
  207. package/dist/worker/worker.type.d.ts +61 -0
  208. package/dist/worker/worker.type.d.ts.map +1 -0
  209. package/dist/worker/worker.type.js +2 -0
  210. package/dist/worker/worker.type.js.map +1 -0
  211. package/package.json +54 -0
@@ -0,0 +1,34 @@
1
+ import type { Timestamp } from "@zudojs/constants";
2
+ /**
3
+ * Result of a job execution.
4
+ */
5
+ export interface JobResult<T = unknown> {
6
+ /** Whether the job succeeded. */
7
+ readonly success: boolean;
8
+ /** The return value from the processor. */
9
+ readonly data?: T;
10
+ /** Error message if the job failed. */
11
+ readonly error?: string;
12
+ /** Duration of the job execution in milliseconds. */
13
+ readonly durationMs: number;
14
+ /** When the result was created. */
15
+ readonly timestamp: Timestamp;
16
+ }
17
+ /**
18
+ * Progress information for a job.
19
+ */
20
+ export interface JobProgress {
21
+ /** Progress percentage (0-100). */
22
+ readonly percent: number;
23
+ /** Current step or phase. */
24
+ readonly step?: string;
25
+ /** Total steps (if known). */
26
+ readonly totalSteps?: number;
27
+ /** Current step number. */
28
+ readonly currentStep?: number;
29
+ /** Optional message. */
30
+ readonly message?: string;
31
+ /** When the progress was updated. */
32
+ readonly timestamp: Timestamp;
33
+ }
34
+ //# sourceMappingURL=jobResult.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobResult.type.d.ts","sourceRoot":"","sources":["../../src/jobResult/jobResult.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IACpC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,uCAAuC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=jobResult.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobResult.type.js","sourceRoot":"","sources":["../../src/jobResult/jobResult.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Core type definitions for the queue system.
3
+ *
4
+ * Provides branded types for job IDs, queue names, and job names,
5
+ * as well as lifecycle state enums and priority constants.
6
+ */
7
+ export { JobState, JobPriorityLevels, BackoffType, WorkerState, createJobId, createQueueName, createJobName, isJobId, isQueueName, isJobName, } from "./jobTypes.type.js";
8
+ export type { JobId, QueueName, JobName, JobPriority, } from "./jobTypes.type.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jobTypes/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,GACV,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,KAAK,EACL,SAAS,EACT,OAAO,EACP,WAAW,GACZ,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Core type definitions for the queue system.
3
+ *
4
+ * Provides branded types for job IDs, queue names, and job names,
5
+ * as well as lifecycle state enums and priority constants.
6
+ */
7
+ export { JobState, JobPriorityLevels, BackoffType, WorkerState, createJobId, createQueueName, createJobName, isJobId, isQueueName, isJobName, } from "./jobTypes.type.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jobTypes/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,GACV,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,89 @@
1
+ import type { EntityId } from "@zudojs/constants";
2
+ /**
3
+ * Unique identifier for a job.
4
+ */
5
+ export type JobId = EntityId & {
6
+ readonly __brand: "JobId";
7
+ };
8
+ /**
9
+ * Name of a queue.
10
+ */
11
+ export type QueueName = string & {
12
+ readonly __brand: "QueueName";
13
+ };
14
+ /**
15
+ * Name of a job type.
16
+ */
17
+ export type JobName = string & {
18
+ readonly __brand: "JobName";
19
+ };
20
+ /**
21
+ * Lifecycle states for a job.
22
+ */
23
+ export declare enum JobState {
24
+ WAITING = "waiting",
25
+ SCHEDULED = "scheduled",
26
+ ACTIVE = "active",
27
+ COMPLETED = "completed",
28
+ FAILED = "failed",
29
+ RETRYING = "retrying",
30
+ CANCELLED = "cancelled",
31
+ PAUSED = "paused",
32
+ DEAD_LETTER = "dead_letter"
33
+ }
34
+ /**
35
+ * Priority levels for jobs (higher number = higher priority).
36
+ */
37
+ export type JobPriority = number;
38
+ /**
39
+ * Default priority constants.
40
+ */
41
+ export declare const JobPriorityLevels: Readonly<{
42
+ readonly LOW: 10;
43
+ readonly NORMAL: 50;
44
+ readonly HIGH: 100;
45
+ readonly CRITICAL: 200;
46
+ }>;
47
+ /**
48
+ * Backoff strategy types.
49
+ */
50
+ export declare enum BackoffType {
51
+ FIXED = "fixed",
52
+ EXPONENTIAL = "exponential"
53
+ }
54
+ /**
55
+ * Worker lifecycle states.
56
+ */
57
+ export declare enum WorkerState {
58
+ CREATED = "created",
59
+ STARTING = "starting",
60
+ RUNNING = "running",
61
+ DRAINING = "draining",
62
+ STOPPED = "stopped",
63
+ FAILED = "failed"
64
+ }
65
+ /**
66
+ * Creates a JobId from a string.
67
+ */
68
+ export declare function createJobId(id: string): JobId;
69
+ /**
70
+ * Creates a QueueName from a string.
71
+ */
72
+ export declare function createQueueName(name: string): QueueName;
73
+ /**
74
+ * Creates a JobName from a string.
75
+ */
76
+ export declare function createJobName(name: string): JobName;
77
+ /**
78
+ * Checks if a value is a valid JobId.
79
+ */
80
+ export declare function isJobId(value: unknown): value is JobId;
81
+ /**
82
+ * Checks if a value is a valid QueueName.
83
+ */
84
+ export declare function isQueueName(value: unknown): value is QueueName;
85
+ /**
86
+ * Checks if a value is a valid JobName.
87
+ */
88
+ export declare function isJobName(value: unknown): value is JobName;
89
+ //# sourceMappingURL=jobTypes.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobTypes.type.d.ts","sourceRoot":"","sources":["../../src/jobTypes/jobTypes.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAC/B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,iBAAiB;kBACvB,EAAE;qBACC,EAAE;mBACJ,GAAG;uBACC,GAAG;EACJ,CAAC;AAEZ;;GAEG;AACH,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAE7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAEvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAEtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Lifecycle states for a job.
3
+ */
4
+ export var JobState;
5
+ (function (JobState) {
6
+ JobState["WAITING"] = "waiting";
7
+ JobState["SCHEDULED"] = "scheduled";
8
+ JobState["ACTIVE"] = "active";
9
+ JobState["COMPLETED"] = "completed";
10
+ JobState["FAILED"] = "failed";
11
+ JobState["RETRYING"] = "retrying";
12
+ JobState["CANCELLED"] = "cancelled";
13
+ JobState["PAUSED"] = "paused";
14
+ JobState["DEAD_LETTER"] = "dead_letter";
15
+ })(JobState || (JobState = {}));
16
+ /**
17
+ * Default priority constants.
18
+ */
19
+ export const JobPriorityLevels = Object.freeze({
20
+ LOW: 10,
21
+ NORMAL: 50,
22
+ HIGH: 100,
23
+ CRITICAL: 200,
24
+ });
25
+ /**
26
+ * Backoff strategy types.
27
+ */
28
+ export var BackoffType;
29
+ (function (BackoffType) {
30
+ BackoffType["FIXED"] = "fixed";
31
+ BackoffType["EXPONENTIAL"] = "exponential";
32
+ })(BackoffType || (BackoffType = {}));
33
+ /**
34
+ * Worker lifecycle states.
35
+ */
36
+ export var WorkerState;
37
+ (function (WorkerState) {
38
+ WorkerState["CREATED"] = "created";
39
+ WorkerState["STARTING"] = "starting";
40
+ WorkerState["RUNNING"] = "running";
41
+ WorkerState["DRAINING"] = "draining";
42
+ WorkerState["STOPPED"] = "stopped";
43
+ WorkerState["FAILED"] = "failed";
44
+ })(WorkerState || (WorkerState = {}));
45
+ /**
46
+ * Creates a JobId from a string.
47
+ */
48
+ export function createJobId(id) {
49
+ return id;
50
+ }
51
+ /**
52
+ * Creates a QueueName from a string.
53
+ */
54
+ export function createQueueName(name) {
55
+ return name;
56
+ }
57
+ /**
58
+ * Creates a JobName from a string.
59
+ */
60
+ export function createJobName(name) {
61
+ return name;
62
+ }
63
+ /**
64
+ * Checks if a value is a valid JobId.
65
+ */
66
+ export function isJobId(value) {
67
+ return typeof value === "string" && value.length > 0;
68
+ }
69
+ /**
70
+ * Checks if a value is a valid QueueName.
71
+ */
72
+ export function isQueueName(value) {
73
+ return typeof value === "string" && value.length > 0;
74
+ }
75
+ /**
76
+ * Checks if a value is a valid JobName.
77
+ */
78
+ export function isJobName(value) {
79
+ return typeof value === "string" && value.length > 0;
80
+ }
81
+ //# sourceMappingURL=jobTypes.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobTypes.type.js","sourceRoot":"","sources":["../../src/jobTypes/jobTypes.type.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,CAAN,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,uCAA2B,CAAA;AAC7B,CAAC,EAVW,QAAQ,KAAR,QAAQ,QAUnB;AAOD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,GAAG;CACL,CAAC,CAAC;AAEZ;;GAEG;AACH,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;AACnB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,EAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Queue middleware types and utilities.
3
+ *
4
+ * Provides middleware composition for queue processing.
5
+ */
6
+ export { createMiddlewareChain, createLoggingMiddleware, createTimeoutMiddleware, } from "./middleware.core.js";
7
+ export type { QueueMiddlewareContext, QueueMiddleware, } from "./middleware.type.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,sBAAsB,EACtB,eAAe,GAChB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Queue middleware types and utilities.
3
+ *
4
+ * Provides middleware composition for queue processing.
5
+ */
6
+ export { createMiddlewareChain, createLoggingMiddleware, createTimeoutMiddleware, } from "./middleware.core.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { QueueMiddleware } from "./middleware.type.js";
2
+ /**
3
+ * Creates a middleware chain from an array of middleware.
4
+ */
5
+ export declare function createMiddlewareChain(middleware: QueueMiddleware[]): QueueMiddleware;
6
+ /**
7
+ * Logging middleware for queue processing.
8
+ */
9
+ export declare function createLoggingMiddleware(logger?: {
10
+ info: (message: string, data?: Record<string, unknown>) => void;
11
+ }): QueueMiddleware;
12
+ /**
13
+ * Timeout middleware for queue processing.
14
+ */
15
+ export declare function createTimeoutMiddleware(timeoutMs: number): QueueMiddleware;
16
+ //# sourceMappingURL=middleware.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.core.d.ts","sourceRoot":"","sources":["../../src/middleware/middleware.core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAkBjB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE;IAC/C,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACjE,GAAG,eAAe,CAsClB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAe1E"}
@@ -0,0 +1,76 @@
1
+ import { JobTimeoutError } from "@zudojs/errors";
2
+ /**
3
+ * Creates a middleware chain from an array of middleware.
4
+ */
5
+ export function createMiddlewareChain(middleware) {
6
+ return async (ctx) => {
7
+ let index = -1;
8
+ const dispatch = async () => {
9
+ index++;
10
+ if (index < middleware.length) {
11
+ const current = middleware[index];
12
+ return current({
13
+ ...ctx,
14
+ next: dispatch,
15
+ });
16
+ }
17
+ return ctx.next();
18
+ };
19
+ return dispatch();
20
+ };
21
+ }
22
+ /**
23
+ * Logging middleware for queue processing.
24
+ */
25
+ export function createLoggingMiddleware(logger) {
26
+ return async (ctx) => {
27
+ const startTime = Date.now();
28
+ logger?.info("Job processing started", {
29
+ jobId: ctx.job.id,
30
+ jobName: ctx.job.name,
31
+ queueName: ctx.job.queueName,
32
+ attempt: ctx.job.attempt,
33
+ });
34
+ try {
35
+ const result = await ctx.next();
36
+ const duration = Date.now() - startTime;
37
+ logger?.info("Job processing completed", {
38
+ jobId: ctx.job.id,
39
+ jobName: ctx.job.name,
40
+ queueName: ctx.job.queueName,
41
+ duration,
42
+ success: result?.success ?? true,
43
+ });
44
+ return result;
45
+ }
46
+ catch (error) {
47
+ const duration = Date.now() - startTime;
48
+ logger?.info("Job processing failed", {
49
+ jobId: ctx.job.id,
50
+ jobName: ctx.job.name,
51
+ queueName: ctx.job.queueName,
52
+ duration,
53
+ error: error instanceof Error ? error.message : String(error),
54
+ });
55
+ throw error;
56
+ }
57
+ };
58
+ }
59
+ /**
60
+ * Timeout middleware for queue processing.
61
+ */
62
+ export function createTimeoutMiddleware(timeoutMs) {
63
+ return async (ctx) => {
64
+ return Promise.race([
65
+ ctx.next(),
66
+ new Promise((_, reject) => {
67
+ setTimeout(() => {
68
+ reject(new JobTimeoutError(ctx.job.id, timeoutMs, {
69
+ queueName: ctx.job.queueName,
70
+ }));
71
+ }, timeoutMs);
72
+ }),
73
+ ]);
74
+ };
75
+ }
76
+ //# sourceMappingURL=middleware.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.core.js","sourceRoot":"","sources":["../../src/middleware/middleware.core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Job } from "../job/job.type.js";
2
+ import type { JobContext } from "../jobContext/jobContext.type.js";
3
+ import type { JobResult } from "../jobResult/jobResult.type.js";
4
+ /**
5
+ * Context for queue middleware execution.
6
+ */
7
+ export interface QueueMiddlewareContext<TData = unknown> {
8
+ /** The job being processed. */
9
+ readonly job: Job<TData>;
10
+ /** Job context. */
11
+ readonly context: JobContext<TData>;
12
+ /** The next middleware or processor in the chain. */
13
+ next(): Promise<JobResult | void>;
14
+ }
15
+ /**
16
+ * Queue middleware function.
17
+ */
18
+ export type QueueMiddleware<TData = unknown> = (ctx: QueueMiddlewareContext<TData>) => Promise<JobResult | void>;
19
+ //# sourceMappingURL=middleware.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.type.d.ts","sourceRoot":"","sources":["../../src/middleware/middleware.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,KAAK,GAAG,OAAO;IACrD,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,mBAAmB;IACnB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,qDAAqD;IACrD,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,GAAG,OAAO,IAAI,CAC7C,GAAG,EAAE,sBAAsB,CAAC,KAAK,CAAC,KAC/B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=middleware.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.type.js","sourceRoot":"","sources":["../../src/middleware/middleware.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Processor interface and registry.
3
+ *
4
+ * Provides the core Processor type and a registry for
5
+ * managing job processors.
6
+ */
7
+ export { createProcessorRegistry } from "./processor.core.js";
8
+ export { isProcessor } from "./processor.type.js";
9
+ export type { Processor, ProcessorInfo, ProcessorRegistry, } from "./processor.type.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/processor/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,YAAY,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Processor interface and registry.
3
+ *
4
+ * Provides the core Processor type and a registry for
5
+ * managing job processors.
6
+ */
7
+ export { createProcessorRegistry } from "./processor.core.js";
8
+ export { isProcessor } from "./processor.type.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processor/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ProcessorRegistry } from "./processor.type.js";
2
+ /**
3
+ * Creates a new ProcessorRegistry.
4
+ */
5
+ export declare function createProcessorRegistry(): ProcessorRegistry;
6
+ //# sourceMappingURL=processor.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.core.d.ts","sourceRoot":"","sources":["../../src/processor/processor.core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAI7B;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAkD3D"}
@@ -0,0 +1,40 @@
1
+ import { JobError } from "@zudojs/errors";
2
+ /**
3
+ * Creates a new ProcessorRegistry.
4
+ */
5
+ export function createProcessorRegistry() {
6
+ const processors = new Map();
7
+ const infoMap = new Map();
8
+ return {
9
+ register(jobName, processor, options) {
10
+ if (processors.has(jobName)) {
11
+ throw new JobError(`Processor already registered for job "${jobName}".`, { jobId: jobName });
12
+ }
13
+ processors.set(jobName, processor);
14
+ infoMap.set(jobName, {
15
+ jobName,
16
+ registeredAt: new Date(),
17
+ description: options?.description,
18
+ });
19
+ },
20
+ get(jobName) {
21
+ return processors.get(jobName);
22
+ },
23
+ has(jobName) {
24
+ return processors.has(jobName);
25
+ },
26
+ getAll() {
27
+ return Array.from(infoMap.values());
28
+ },
29
+ unregister(jobName) {
30
+ const deleted = processors.delete(jobName);
31
+ infoMap.delete(jobName);
32
+ return deleted;
33
+ },
34
+ clear() {
35
+ processors.clear();
36
+ infoMap.clear();
37
+ },
38
+ };
39
+ }
40
+ //# sourceMappingURL=processor.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.core.js","sourceRoot":"","sources":["../../src/processor/processor.core.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEjD,OAAO;QACL,QAAQ,CACN,OAAe,EACf,SAAoC,EACpC,OAAkC;YAElC,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,QAAQ,CAChB,yCAAyC,OAAO,IAAI,EACpD,EAAE,KAAK,EAAE,OAAO,EAAE,CACnB,CAAC;YACJ,CAAC;YAED,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,SAAsB,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;gBACnB,OAAO;gBACP,YAAY,EAAE,IAAI,IAAI,EAAE;gBACxB,WAAW,EAAE,OAAO,EAAE,WAAW;aAClC,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CACD,OAAe;YAEf,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAA0C,CAAC;QAC1E,CAAC;QAED,GAAG,CAAC,OAAe;YACjB,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,MAAM;YACJ,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,UAAU,CAAC,OAAe;YACxB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK;YACH,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { Job } from "../job/job.type.js";
2
+ import type { JobContext } from "../jobContext/jobContext.type.js";
3
+ import type { JobResult } from "../jobResult/jobResult.type.js";
4
+ /**
5
+ * A function that processes a job.
6
+ */
7
+ export type Processor<TData = unknown, TResult = unknown> = (job: Job<TData>, context: JobContext<TData>) => Promise<JobResult<TResult>> | Promise<void>;
8
+ /**
9
+ * Metadata about a registered processor.
10
+ */
11
+ export interface ProcessorInfo {
12
+ /** The job name this processor handles. */
13
+ readonly jobName: string;
14
+ /** When the processor was registered. */
15
+ readonly registeredAt: Date;
16
+ /** Optional description. */
17
+ readonly description?: string;
18
+ }
19
+ /**
20
+ * Registry for job processors.
21
+ */
22
+ export interface ProcessorRegistry {
23
+ /** Register a processor for a job type. */
24
+ register<TData, TResult>(jobName: string, processor: Processor<TData, TResult>, options?: {
25
+ description?: string;
26
+ }): void;
27
+ /** Get a processor by job name. */
28
+ get<TData, TResult>(jobName: string): Processor<TData, TResult> | undefined;
29
+ /** Check if a processor is registered. */
30
+ has(jobName: string): boolean;
31
+ /** Get all registered processor info. */
32
+ getAll(): ProcessorInfo[];
33
+ /** Remove a processor. */
34
+ unregister(jobName: string): boolean;
35
+ /** Clear all processors. */
36
+ clear(): void;
37
+ }
38
+ /**
39
+ * Checks if a value is a valid Processor.
40
+ */
41
+ export declare function isProcessor(value: unknown): value is Processor;
42
+ //# sourceMappingURL=processor.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.type.d.ts","sourceRoot":"","sources":["../../src/processor/processor.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,CAC1D,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EACf,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,KACvB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,4BAA4B;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,OAAO,EACrB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,IAAI,CAAC;IACR,mCAAmC;IACnC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5E,0CAA0C;IAC1C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,yCAAyC;IACzC,MAAM,IAAI,aAAa,EAAE,CAAC;IAC1B,0BAA0B;IAC1B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,4BAA4B;IAC5B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Checks if a value is a valid Processor.
3
+ */
4
+ export function isProcessor(value) {
5
+ return typeof value === "function";
6
+ }
7
+ //# sourceMappingURL=processor.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.type.js","sourceRoot":"","sources":["../../src/processor/processor.type.ts"],"names":[],"mappings":"AAgDA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Queue interface and factory functions.
3
+ *
4
+ * Provides the core Queue type and functions for creating
5
+ * and managing job queues.
6
+ */
7
+ export { createQueue, isQueue } from "./queue.core.js";
8
+ export type { Queue, QueueOptions, QueueStats, QueueEventMap, } from "./queue.type.js";
9
+ export type { QueueEventEmitter } from "../queueEmitter/queueEmitter.type.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEvD,YAAY,EACV,KAAK,EACL,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Queue interface and factory functions.
3
+ *
4
+ * Provides the core Queue type and functions for creating
5
+ * and managing job queues.
6
+ */
7
+ export { createQueue, isQueue } from "./queue.core.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { QueueName } from "../jobTypes/jobTypes.type.js";
2
+ import type { Queue, QueueOptions } from "./queue.type.js";
3
+ /**
4
+ * Creates a new queue.
5
+ *
6
+ * @deprecated Use `createInMemoryQueue` instead for the full in-memory implementation.
7
+ */
8
+ export declare function createQueue<TData>(name: QueueName, options?: QueueOptions): Queue<TData>;
9
+ /**
10
+ * Checks if a value is a valid Queue.
11
+ */
12
+ export declare function isQueue(value: unknown): value is Queue;
13
+ //# sourceMappingURL=queue.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.core.d.ts","sourceRoot":"","sources":["../../src/queue/queue.core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAWrE,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAMvE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAC/B,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,KAAK,CAAC,KAAK,CAAC,CAEd;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAUtD"}
@@ -0,0 +1,23 @@
1
+ import { QueueClosedError, QueueDisposedError } from "@zudojs/errors";
2
+ import { createInMemoryQueue } from "../inMemoryQueue/index.js";
3
+ /**
4
+ * Creates a new queue.
5
+ *
6
+ * @deprecated Use `createInMemoryQueue` instead for the full in-memory implementation.
7
+ */
8
+ export function createQueue(name, options) {
9
+ return createInMemoryQueue(name, options);
10
+ }
11
+ /**
12
+ * Checks if a value is a valid Queue.
13
+ */
14
+ export function isQueue(value) {
15
+ return (typeof value === "object" &&
16
+ value !== null &&
17
+ "name" in value &&
18
+ "add" in value &&
19
+ "process" in value &&
20
+ "getJob" in value &&
21
+ "getNextJob" in value);
22
+ }
23
+ //# sourceMappingURL=queue.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.core.js","sourceRoot":"","sources":["../../src/queue/queue.core.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,IAAe,EACf,OAAsB;IAEtB,OAAO,mBAAmB,CAAQ,IAAI,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,KAAK,IAAI,KAAK;QACd,SAAS,IAAI,KAAK;QAClB,QAAQ,IAAI,KAAK;QACjB,YAAY,IAAI,KAAK,CACtB,CAAC;AACJ,CAAC"}