@zintrust/workers 0.1.27

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 (178) hide show
  1. package/README.md +861 -0
  2. package/dist/AnomalyDetection.d.ts +102 -0
  3. package/dist/AnomalyDetection.js +321 -0
  4. package/dist/AutoScaler.d.ts +127 -0
  5. package/dist/AutoScaler.js +425 -0
  6. package/dist/BroadcastWorker.d.ts +21 -0
  7. package/dist/BroadcastWorker.js +24 -0
  8. package/dist/CanaryController.d.ts +103 -0
  9. package/dist/CanaryController.js +380 -0
  10. package/dist/ChaosEngineering.d.ts +79 -0
  11. package/dist/ChaosEngineering.js +216 -0
  12. package/dist/CircuitBreaker.d.ts +106 -0
  13. package/dist/CircuitBreaker.js +374 -0
  14. package/dist/ClusterLock.d.ts +90 -0
  15. package/dist/ClusterLock.js +385 -0
  16. package/dist/ComplianceManager.d.ts +177 -0
  17. package/dist/ComplianceManager.js +556 -0
  18. package/dist/DatacenterOrchestrator.d.ts +133 -0
  19. package/dist/DatacenterOrchestrator.js +404 -0
  20. package/dist/DeadLetterQueue.d.ts +122 -0
  21. package/dist/DeadLetterQueue.js +539 -0
  22. package/dist/HealthMonitor.d.ts +42 -0
  23. package/dist/HealthMonitor.js +301 -0
  24. package/dist/MultiQueueWorker.d.ts +89 -0
  25. package/dist/MultiQueueWorker.js +277 -0
  26. package/dist/NotificationWorker.d.ts +21 -0
  27. package/dist/NotificationWorker.js +23 -0
  28. package/dist/Observability.d.ts +153 -0
  29. package/dist/Observability.js +530 -0
  30. package/dist/PluginManager.d.ts +123 -0
  31. package/dist/PluginManager.js +392 -0
  32. package/dist/PriorityQueue.d.ts +117 -0
  33. package/dist/PriorityQueue.js +244 -0
  34. package/dist/ResourceMonitor.d.ts +164 -0
  35. package/dist/ResourceMonitor.js +605 -0
  36. package/dist/SLAMonitor.d.ts +110 -0
  37. package/dist/SLAMonitor.js +274 -0
  38. package/dist/WorkerFactory.d.ts +193 -0
  39. package/dist/WorkerFactory.js +1507 -0
  40. package/dist/WorkerInit.d.ts +85 -0
  41. package/dist/WorkerInit.js +223 -0
  42. package/dist/WorkerMetrics.d.ts +114 -0
  43. package/dist/WorkerMetrics.js +509 -0
  44. package/dist/WorkerRegistry.d.ts +145 -0
  45. package/dist/WorkerRegistry.js +319 -0
  46. package/dist/WorkerShutdown.d.ts +61 -0
  47. package/dist/WorkerShutdown.js +159 -0
  48. package/dist/WorkerVersioning.d.ts +107 -0
  49. package/dist/WorkerVersioning.js +300 -0
  50. package/dist/build-manifest.json +462 -0
  51. package/dist/config/workerConfig.d.ts +3 -0
  52. package/dist/config/workerConfig.js +19 -0
  53. package/dist/createQueueWorker.d.ts +23 -0
  54. package/dist/createQueueWorker.js +113 -0
  55. package/dist/dashboard/index.d.ts +1 -0
  56. package/dist/dashboard/index.js +1 -0
  57. package/dist/dashboard/types.d.ts +117 -0
  58. package/dist/dashboard/types.js +1 -0
  59. package/dist/dashboard/workers-api.d.ts +4 -0
  60. package/dist/dashboard/workers-api.js +638 -0
  61. package/dist/dashboard/workers-dashboard-ui.d.ts +3 -0
  62. package/dist/dashboard/workers-dashboard-ui.js +1026 -0
  63. package/dist/dashboard/workers-dashboard.d.ts +4 -0
  64. package/dist/dashboard/workers-dashboard.js +904 -0
  65. package/dist/helper/index.d.ts +5 -0
  66. package/dist/helper/index.js +10 -0
  67. package/dist/http/WorkerApiController.d.ts +38 -0
  68. package/dist/http/WorkerApiController.js +312 -0
  69. package/dist/http/WorkerController.d.ts +374 -0
  70. package/dist/http/WorkerController.js +1351 -0
  71. package/dist/http/middleware/CustomValidation.d.ts +92 -0
  72. package/dist/http/middleware/CustomValidation.js +270 -0
  73. package/dist/http/middleware/DatacenterValidator.d.ts +3 -0
  74. package/dist/http/middleware/DatacenterValidator.js +94 -0
  75. package/dist/http/middleware/EditWorkerValidation.d.ts +7 -0
  76. package/dist/http/middleware/EditWorkerValidation.js +55 -0
  77. package/dist/http/middleware/FeaturesValidator.d.ts +3 -0
  78. package/dist/http/middleware/FeaturesValidator.js +60 -0
  79. package/dist/http/middleware/InfrastructureValidator.d.ts +31 -0
  80. package/dist/http/middleware/InfrastructureValidator.js +226 -0
  81. package/dist/http/middleware/OptionsValidator.d.ts +3 -0
  82. package/dist/http/middleware/OptionsValidator.js +112 -0
  83. package/dist/http/middleware/PayloadSanitizer.d.ts +7 -0
  84. package/dist/http/middleware/PayloadSanitizer.js +42 -0
  85. package/dist/http/middleware/ProcessorPathSanitizer.d.ts +3 -0
  86. package/dist/http/middleware/ProcessorPathSanitizer.js +74 -0
  87. package/dist/http/middleware/QueueNameSanitizer.d.ts +3 -0
  88. package/dist/http/middleware/QueueNameSanitizer.js +45 -0
  89. package/dist/http/middleware/ValidateDriver.d.ts +7 -0
  90. package/dist/http/middleware/ValidateDriver.js +20 -0
  91. package/dist/http/middleware/VersionSanitizer.d.ts +3 -0
  92. package/dist/http/middleware/VersionSanitizer.js +25 -0
  93. package/dist/http/middleware/WorkerNameSanitizer.d.ts +3 -0
  94. package/dist/http/middleware/WorkerNameSanitizer.js +46 -0
  95. package/dist/http/middleware/WorkerValidationChain.d.ts +27 -0
  96. package/dist/http/middleware/WorkerValidationChain.js +185 -0
  97. package/dist/index.d.ts +46 -0
  98. package/dist/index.js +48 -0
  99. package/dist/routes/workers.d.ts +12 -0
  100. package/dist/routes/workers.js +81 -0
  101. package/dist/storage/WorkerStore.d.ts +45 -0
  102. package/dist/storage/WorkerStore.js +195 -0
  103. package/dist/type.d.ts +76 -0
  104. package/dist/type.js +1 -0
  105. package/dist/ui/router/ui.d.ts +3 -0
  106. package/dist/ui/router/ui.js +83 -0
  107. package/dist/ui/types/worker-ui.d.ts +229 -0
  108. package/dist/ui/types/worker-ui.js +5 -0
  109. package/package.json +53 -0
  110. package/src/AnomalyDetection.ts +434 -0
  111. package/src/AutoScaler.ts +654 -0
  112. package/src/BroadcastWorker.ts +34 -0
  113. package/src/CanaryController.ts +531 -0
  114. package/src/ChaosEngineering.ts +301 -0
  115. package/src/CircuitBreaker.ts +495 -0
  116. package/src/ClusterLock.ts +499 -0
  117. package/src/ComplianceManager.ts +815 -0
  118. package/src/DatacenterOrchestrator.ts +561 -0
  119. package/src/DeadLetterQueue.ts +733 -0
  120. package/src/HealthMonitor.ts +390 -0
  121. package/src/MultiQueueWorker.ts +431 -0
  122. package/src/NotificationWorker.ts +33 -0
  123. package/src/Observability.ts +696 -0
  124. package/src/PluginManager.ts +551 -0
  125. package/src/PriorityQueue.ts +351 -0
  126. package/src/ResourceMonitor.ts +769 -0
  127. package/src/SLAMonitor.ts +408 -0
  128. package/src/WorkerFactory.ts +2108 -0
  129. package/src/WorkerInit.ts +313 -0
  130. package/src/WorkerMetrics.ts +709 -0
  131. package/src/WorkerRegistry.ts +443 -0
  132. package/src/WorkerShutdown.ts +210 -0
  133. package/src/WorkerVersioning.ts +422 -0
  134. package/src/config/workerConfig.ts +25 -0
  135. package/src/createQueueWorker.ts +174 -0
  136. package/src/dashboard/index.ts +6 -0
  137. package/src/dashboard/types.ts +141 -0
  138. package/src/dashboard/workers-api.ts +785 -0
  139. package/src/dashboard/zintrust.svg +30 -0
  140. package/src/helper/index.ts +11 -0
  141. package/src/http/WorkerApiController.ts +369 -0
  142. package/src/http/WorkerController.ts +1512 -0
  143. package/src/http/middleware/CustomValidation.ts +360 -0
  144. package/src/http/middleware/DatacenterValidator.ts +124 -0
  145. package/src/http/middleware/EditWorkerValidation.ts +74 -0
  146. package/src/http/middleware/FeaturesValidator.ts +82 -0
  147. package/src/http/middleware/InfrastructureValidator.ts +295 -0
  148. package/src/http/middleware/OptionsValidator.ts +144 -0
  149. package/src/http/middleware/PayloadSanitizer.ts +52 -0
  150. package/src/http/middleware/ProcessorPathSanitizer.ts +86 -0
  151. package/src/http/middleware/QueueNameSanitizer.ts +55 -0
  152. package/src/http/middleware/ValidateDriver.ts +29 -0
  153. package/src/http/middleware/VersionSanitizer.ts +30 -0
  154. package/src/http/middleware/WorkerNameSanitizer.ts +56 -0
  155. package/src/http/middleware/WorkerValidationChain.ts +230 -0
  156. package/src/index.ts +98 -0
  157. package/src/routes/workers.ts +154 -0
  158. package/src/storage/WorkerStore.ts +240 -0
  159. package/src/type.ts +89 -0
  160. package/src/types/queue-monitor.d.ts +38 -0
  161. package/src/types/queue-redis.d.ts +38 -0
  162. package/src/ui/README.md +13 -0
  163. package/src/ui/components/JsonEditor.js +670 -0
  164. package/src/ui/components/JsonViewer.js +387 -0
  165. package/src/ui/components/WorkerCard.js +178 -0
  166. package/src/ui/components/WorkerExpandPanel.js +257 -0
  167. package/src/ui/components/fetcher.js +42 -0
  168. package/src/ui/components/sla-scorecard.js +32 -0
  169. package/src/ui/components/styles.css +30 -0
  170. package/src/ui/components/table-expander.js +34 -0
  171. package/src/ui/integration/worker-ui-integration.js +565 -0
  172. package/src/ui/router/ui.ts +99 -0
  173. package/src/ui/services/workerApi.js +240 -0
  174. package/src/ui/types/worker-ui.ts +283 -0
  175. package/src/ui/utils/jsonValidator.js +444 -0
  176. package/src/ui/workers/index.html +202 -0
  177. package/src/ui/workers/main.js +1781 -0
  178. package/src/ui/workers/styles.css +1350 -0
package/dist/type.d.ts ADDED
@@ -0,0 +1,76 @@
1
+ export interface WorkerType {
2
+ name: string;
3
+ queueName: string;
4
+ processor: string;
5
+ version: string;
6
+ options: Options;
7
+ infrastructure: Infrastructure;
8
+ features: Features;
9
+ datacenter: Datacenter;
10
+ }
11
+ export interface Options {
12
+ concurrency: number;
13
+ limiter: Limiter;
14
+ }
15
+ export interface Limiter {
16
+ max: number;
17
+ duration: number;
18
+ }
19
+ export interface Infrastructure {
20
+ persistence: Persistence;
21
+ redis: Redis;
22
+ deadLetterQueue: DeadLetterQueue;
23
+ compliance: Compliance;
24
+ observability: Observability;
25
+ autoScaler: AutoScaler;
26
+ }
27
+ export interface Persistence {
28
+ driver: string;
29
+ }
30
+ export interface Redis {
31
+ env: boolean;
32
+ host: string;
33
+ port: string;
34
+ db: string;
35
+ password: string;
36
+ }
37
+ export interface DeadLetterQueue {
38
+ policy: string;
39
+ }
40
+ export interface Compliance {
41
+ config: Config;
42
+ }
43
+ export interface Config {
44
+ retentionDays: number;
45
+ }
46
+ export interface Observability {
47
+ enabled: boolean;
48
+ }
49
+ export interface AutoScaler {
50
+ enabled: boolean;
51
+ minWorkers: number;
52
+ maxWorkers: number;
53
+ }
54
+ export interface Features {
55
+ clustering: boolean;
56
+ metrics: boolean;
57
+ autoScaling: boolean;
58
+ circuitBreaker: boolean;
59
+ deadLetterQueue: boolean;
60
+ resourceMonitoring: boolean;
61
+ compliance: boolean;
62
+ observability: boolean;
63
+ plugins: boolean;
64
+ versioning: boolean;
65
+ datacenterOrchestration: boolean;
66
+ }
67
+ export interface Datacenter {
68
+ primaryRegion: string;
69
+ secondaryRegions: string[];
70
+ affinityRules: AffinityRules;
71
+ }
72
+ export interface AffinityRules {
73
+ preferLocal: boolean;
74
+ maxLatency: number;
75
+ avoidRegions: string[];
76
+ }
package/dist/type.js ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { IRouter } from '@zintrust/core';
2
+ export declare const uiResolver: (uiBasePath: string) => Promise<string>;
3
+ export declare const registerStaticAssets: (router: IRouter, middleware: ReadonlyArray<string>) => void;
@@ -0,0 +1,83 @@
1
+ import { Logger, MIME_TYPES, NodeSingletons, Router } from '@zintrust/core';
2
+ export const uiResolver = async (uiBasePath) => {
3
+ // Resolve base path for UI assets
4
+ // const __filename = NodeSingletons.url.fileURLToPath(import.meta.url);
5
+ // const __dirname = NodeSingletons.path.dirname(__filename);
6
+ const uiPath = NodeSingletons.path.resolve(uiBasePath, 'workers/index.html');
7
+ const html = await NodeSingletons.fs.readFile(uiPath, 'utf8');
8
+ return html;
9
+ };
10
+ // MIME type mapping for static files
11
+ const getMimeType = (filePath) => {
12
+ const ext = NodeSingletons.path.extname(filePath).toLowerCase();
13
+ const mimeTypes = {
14
+ '.css': MIME_TYPES.CSS,
15
+ '.js': MIME_TYPES.JS,
16
+ '.html': MIME_TYPES.HTML,
17
+ '.json': MIME_TYPES.JSON,
18
+ '.png': MIME_TYPES.PNG,
19
+ '.jpg': MIME_TYPES.JPG,
20
+ '.jpeg': MIME_TYPES.JPG,
21
+ '.gif': MIME_TYPES.GIF,
22
+ '.svg': MIME_TYPES.SVG,
23
+ '.ico': MIME_TYPES.ICO,
24
+ '.ipa': MIME_TYPES.IPA,
25
+ };
26
+ return mimeTypes[ext] || MIME_TYPES.IPA;
27
+ };
28
+ let uiBasePath = '';
29
+ const getUiBase = () => {
30
+ // Resolve base path for UI assets
31
+ if (uiBasePath.length > 0)
32
+ return uiBasePath;
33
+ const __filename = NodeSingletons.url.fileURLToPath(import.meta.url);
34
+ const __dirname = NodeSingletons.path.dirname(__filename);
35
+ uiBasePath = NodeSingletons.path.resolve(__dirname, '../');
36
+ return uiBasePath;
37
+ };
38
+ const serveStaticFile = async (req, res) => {
39
+ try {
40
+ const filePath = req.getPath();
41
+ const fullPath = NodeSingletons.path.resolve(getUiBase(), filePath.replace(/^\//, ''));
42
+ // Security check - prevent directory traversal
43
+ if (!fullPath.startsWith(uiBasePath)) {
44
+ res.setStatus(403);
45
+ res.send(Buffer.from('Forbidden'));
46
+ return;
47
+ }
48
+ const content = await NodeSingletons.fs.readFile(fullPath);
49
+ const mimeType = getMimeType(filePath);
50
+ res.setHeader('Content-Type', mimeType);
51
+ res.setHeader('Cache-Control', 'public, max-age=3600'); // 1 hour cache
52
+ res.send(content);
53
+ }
54
+ catch (err) {
55
+ Logger.warn(`Static file not found: ${req.getPath()}`, err);
56
+ res.setStatus(404);
57
+ res.send(Buffer.from('Not Found'));
58
+ }
59
+ };
60
+ // Static file serving for workers assets
61
+ export const registerStaticAssets = (router, middleware) => {
62
+ const handler = async (_req, res) => {
63
+ try {
64
+ const html = await uiResolver(getUiBase());
65
+ res.html(html);
66
+ }
67
+ catch (err) {
68
+ Logger.error('Failed to load static UI page', err);
69
+ // Fallback to generated dashboard if static file unavailable
70
+ }
71
+ };
72
+ Router.group(router, '/workers', (r) => {
73
+ Router.get(r, '/', handler, { middleware });
74
+ // Serve workers CSS and JS files
75
+ Router.get(r, '/styles.css', serveStaticFile);
76
+ Router.get(r, '/main.js', serveStaticFile);
77
+ Router.get(r, '/:filename', serveStaticFile);
78
+ Router.get(r, '/integration/:filename', serveStaticFile);
79
+ // Serve components CSS files
80
+ Router.get(r, '/components/styles.css', serveStaticFile);
81
+ Router.get(r, '/components/:filename', serveStaticFile);
82
+ });
83
+ };
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Worker UI Types
3
+ * Type definitions for worker management UI components
4
+ */
5
+ declare global {
6
+ interface HTMLElement {
7
+ appendChild(node: Node): Node;
8
+ remove(): void;
9
+ classList: DOMTokenList;
10
+ style: CSSStyleDeclaration;
11
+ textContent: string;
12
+ innerHTML: string;
13
+ className: string;
14
+ id: string;
15
+ querySelector(selector: string): Element | null;
16
+ addEventListener(type: string, listener: UIEventListener): void;
17
+ dataset: DOMStringMap;
18
+ }
19
+ type UIEventListener = (evt: Event) => void;
20
+ interface Event {
21
+ target: EventTarget | null;
22
+ }
23
+ interface Element {
24
+ querySelector(selector: string): Element | null;
25
+ }
26
+ interface EventTarget {
27
+ addEventListener(type: string, listener: UIEventListener): void;
28
+ }
29
+ interface DOMTokenList {
30
+ add(token: string): void;
31
+ remove(token: string): void;
32
+ }
33
+ interface CSSStyleDeclaration {
34
+ display: 'block' | 'none' | 'inline' | 'inline-block' | 'flex' | 'grid' | 'hidden' | 'inherit' | 'initial' | 'revert' | 'unset' | number;
35
+ [property: string]: string | number;
36
+ }
37
+ interface DOMStringMap {
38
+ [key: string]: string;
39
+ }
40
+ interface Node {
41
+ remove(): void;
42
+ }
43
+ }
44
+ export interface Node {
45
+ remove(): void;
46
+ }
47
+ export interface DOMTokenList {
48
+ add(token: string): void;
49
+ remove(token: string): void;
50
+ }
51
+ export interface CSSStyleDeclaration {
52
+ display: string | number;
53
+ [property: string]: string | number;
54
+ }
55
+ export interface DOMStringMap {
56
+ [key: string]: string;
57
+ }
58
+ export interface Element {
59
+ querySelector(selector: string): Element | null;
60
+ }
61
+ export interface EventTarget {
62
+ addEventListener(type: string, listener: UIEventListener): void;
63
+ }
64
+ export interface Event {
65
+ target: EventTarget | null;
66
+ }
67
+ export type UIEventListener = (evt: Event) => void;
68
+ export interface HTMLElement {
69
+ appendChild(node: Node): Node;
70
+ remove(): void;
71
+ classList: DOMTokenList;
72
+ style: CSSStyleDeclaration;
73
+ textContent: string;
74
+ innerHTML: string;
75
+ className: string;
76
+ id: string;
77
+ querySelector(selector: string): Element | null;
78
+ addEventListener(type: string, listener: UIEventListener): void;
79
+ dataset: DOMStringMap;
80
+ }
81
+ /**
82
+ * Worker instance interface for UI components
83
+ */
84
+ export interface WorkerInstance {
85
+ id: string;
86
+ name: string;
87
+ status: 'running' | 'stopped' | 'failed' | 'paused';
88
+ queueName: string;
89
+ driver: 'database' | 'redis' | 'memory';
90
+ concurrency: number;
91
+ autoStart: boolean;
92
+ createdAt: string;
93
+ updatedAt: string;
94
+ lastHealthCheck?: string;
95
+ lastError?: string;
96
+ connectionState?: 'connected' | 'disconnected' | 'connecting';
97
+ version?: string;
98
+ region?: string;
99
+ processor?: string;
100
+ features?: Record<string, boolean>;
101
+ infrastructure?: Record<string, unknown>;
102
+ datacenter?: Record<string, unknown>;
103
+ }
104
+ /**
105
+ * Worker card instance interface
106
+ */
107
+ export interface WorkerCardInstance {
108
+ element: HTMLElement;
109
+ worker: WorkerInstance;
110
+ isExpanded: () => boolean;
111
+ toggleExpand: () => void;
112
+ updateWorker: (worker: WorkerInstance) => void;
113
+ destroy: () => void;
114
+ }
115
+ /**
116
+ * Worker expand panel instance interface
117
+ */
118
+ export interface WorkerExpandPanelInstance {
119
+ element: HTMLElement;
120
+ worker: WorkerInstance;
121
+ render: () => void;
122
+ destroy: () => void;
123
+ }
124
+ /**
125
+ * JSON viewer modal instance interface
126
+ */
127
+ export interface JsonViewerInstance {
128
+ element: HTMLElement;
129
+ isOpen: () => boolean;
130
+ open: (data: unknown) => void;
131
+ close: () => void;
132
+ destroy: () => void;
133
+ }
134
+ /**
135
+ * JSON editor modal instance interface
136
+ */
137
+ export interface JsonEditorInstance {
138
+ element: HTMLElement;
139
+ isOpen: () => boolean;
140
+ open: (data: unknown) => void;
141
+ close: () => void;
142
+ getJsonData: () => unknown;
143
+ setJsonData: (data: unknown) => void;
144
+ validate: () => ValidationResult;
145
+ destroy: () => void;
146
+ }
147
+ /**
148
+ * Validation result interface
149
+ */
150
+ export interface ValidationResult {
151
+ isValid: boolean;
152
+ errors: ValidationError[];
153
+ warnings: ValidationWarning[];
154
+ }
155
+ /**
156
+ * Validation error interface
157
+ */
158
+ export interface ValidationError {
159
+ path: string;
160
+ message: string;
161
+ code: string;
162
+ field?: string;
163
+ }
164
+ /**
165
+ * Validation warning interface
166
+ */
167
+ export interface ValidationWarning {
168
+ path: string;
169
+ message: string;
170
+ code: string;
171
+ field?: string;
172
+ }
173
+ /**
174
+ * Modal options interface
175
+ */
176
+ export interface ModalOptions {
177
+ title?: string;
178
+ width?: string;
179
+ height?: string;
180
+ closable?: boolean;
181
+ backdrop?: boolean;
182
+ }
183
+ /**
184
+ * JSON viewer options interface
185
+ */
186
+ export interface JsonViewerOptions extends ModalOptions {
187
+ expandAll?: boolean;
188
+ searchEnabled?: boolean;
189
+ copyEnabled?: boolean;
190
+ theme?: 'light' | 'dark';
191
+ }
192
+ /**
193
+ * JSON editor options interface
194
+ */
195
+ export interface JsonEditorOptions extends ModalOptions {
196
+ validateOnChange?: boolean;
197
+ autoFormat?: boolean;
198
+ theme?: 'light' | 'dark';
199
+ fontSize?: number;
200
+ wordWrap?: boolean;
201
+ }
202
+ /**
203
+ * API response interface
204
+ */
205
+ export interface ApiResponse<T = unknown> {
206
+ success: boolean;
207
+ data?: T;
208
+ error?: string;
209
+ message?: string;
210
+ code?: string;
211
+ }
212
+ /**
213
+ * Worker API response interface
214
+ */
215
+ export interface WorkerApiResponse extends ApiResponse<WorkerInstance> {
216
+ data?: WorkerInstance;
217
+ }
218
+ /**
219
+ * Workers list API response interface
220
+ */
221
+ export interface WorkersListApiResponse extends ApiResponse<WorkerInstance[]> {
222
+ data?: WorkerInstance[];
223
+ pagination?: {
224
+ page: number;
225
+ limit: number;
226
+ total: number;
227
+ totalPages: number;
228
+ };
229
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Worker UI Types
3
+ * Type definitions for worker management UI components
4
+ */
5
+ export {};
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@zintrust/workers",
3
+ "version": "0.1.27",
4
+ "private": false,
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "src"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "default": "./dist/index.js"
16
+ },
17
+ "./HealthMonitor": {
18
+ "types": "./dist/HealthMonitor.d.ts",
19
+ "default": "./dist/HealthMonitor.js"
20
+ },
21
+ "./ResourceMonitor": {
22
+ "types": "./dist/ResourceMonitor.d.ts",
23
+ "default": "./dist/ResourceMonitor.js"
24
+ },
25
+ "./WorkerFactory": {
26
+ "types": "./dist/WorkerFactory.d.ts",
27
+ "default": "./dist/WorkerFactory.js"
28
+ }
29
+ },
30
+ "engines": {
31
+ "node": ">=20.0.0"
32
+ },
33
+ "peerDependencies": {
34
+ "@zintrust/core": "^0.1.27"
35
+ },
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "scripts": {
40
+ "build": "npm --prefix ../queue-redis run -s build && npm --prefix ../queue-monitor run -s build && tsc -p tsconfig.json",
41
+ "prepublishOnly": "npm run build"
42
+ },
43
+ "dependencies": {
44
+ "@opentelemetry/api": "^1.9.0",
45
+ "@zintrust/queue-redis": "file:../queue-redis",
46
+ "@zintrust/queue-monitor": "file:../queue-monitor",
47
+ "hot-shots": "^10.2.1",
48
+ "ioredis": "^5.9.2",
49
+ "ml.js": "^0.0.1",
50
+ "prom-client": "^15.1.3",
51
+ "simple-statistics": "^7.8.8"
52
+ }
53
+ }