atomic-queues 1.0.13

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 (110) hide show
  1. package/README.md +686 -0
  2. package/dist/decorators/decorators.d.ts +67 -0
  3. package/dist/decorators/decorators.d.ts.map +1 -0
  4. package/dist/decorators/decorators.js +91 -0
  5. package/dist/decorators/decorators.js.map +1 -0
  6. package/dist/decorators/index.d.ts +2 -0
  7. package/dist/decorators/index.d.ts.map +1 -0
  8. package/dist/decorators/index.js +18 -0
  9. package/dist/decorators/index.js.map +1 -0
  10. package/dist/domain/index.d.ts +5 -0
  11. package/dist/domain/index.d.ts.map +1 -0
  12. package/dist/domain/index.js +21 -0
  13. package/dist/domain/index.js.map +1 -0
  14. package/dist/domain/interfaces.d.ts +614 -0
  15. package/dist/domain/interfaces.d.ts.map +1 -0
  16. package/dist/domain/interfaces.js +19 -0
  17. package/dist/domain/interfaces.js.map +1 -0
  18. package/dist/index.d.ts +40 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +61 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/module/atomic-queues.module.d.ts +97 -0
  23. package/dist/module/atomic-queues.module.d.ts.map +1 -0
  24. package/dist/module/atomic-queues.module.js +197 -0
  25. package/dist/module/atomic-queues.module.js.map +1 -0
  26. package/dist/module/index.d.ts +2 -0
  27. package/dist/module/index.d.ts.map +1 -0
  28. package/dist/module/index.js +18 -0
  29. package/dist/module/index.js.map +1 -0
  30. package/dist/services/constants.d.ts +10 -0
  31. package/dist/services/constants.d.ts.map +1 -0
  32. package/dist/services/constants.js +13 -0
  33. package/dist/services/constants.js.map +1 -0
  34. package/dist/services/cron-manager/cron-manager.service.d.ts +188 -0
  35. package/dist/services/cron-manager/cron-manager.service.d.ts.map +1 -0
  36. package/dist/services/cron-manager/cron-manager.service.js +534 -0
  37. package/dist/services/cron-manager/cron-manager.service.js.map +1 -0
  38. package/dist/services/cron-manager/index.d.ts +2 -0
  39. package/dist/services/cron-manager/index.d.ts.map +1 -0
  40. package/dist/services/cron-manager/index.js +18 -0
  41. package/dist/services/cron-manager/index.js.map +1 -0
  42. package/dist/services/index-manager/index-manager.service.d.ts +146 -0
  43. package/dist/services/index-manager/index-manager.service.d.ts.map +1 -0
  44. package/dist/services/index-manager/index-manager.service.js +337 -0
  45. package/dist/services/index-manager/index-manager.service.js.map +1 -0
  46. package/dist/services/index-manager/index.d.ts +2 -0
  47. package/dist/services/index-manager/index.d.ts.map +1 -0
  48. package/dist/services/index-manager/index.js +18 -0
  49. package/dist/services/index-manager/index.js.map +1 -0
  50. package/dist/services/index.d.ts +10 -0
  51. package/dist/services/index.d.ts.map +1 -0
  52. package/dist/services/index.js +26 -0
  53. package/dist/services/index.js.map +1 -0
  54. package/dist/services/job-processor/index.d.ts +2 -0
  55. package/dist/services/job-processor/index.d.ts.map +1 -0
  56. package/dist/services/job-processor/index.js +18 -0
  57. package/dist/services/job-processor/index.js.map +1 -0
  58. package/dist/services/job-processor/job-processor.service.d.ts +156 -0
  59. package/dist/services/job-processor/job-processor.service.d.ts.map +1 -0
  60. package/dist/services/job-processor/job-processor.service.js +331 -0
  61. package/dist/services/job-processor/job-processor.service.js.map +1 -0
  62. package/dist/services/queue-manager/index.d.ts +2 -0
  63. package/dist/services/queue-manager/index.d.ts.map +1 -0
  64. package/dist/services/queue-manager/index.js +18 -0
  65. package/dist/services/queue-manager/index.js.map +1 -0
  66. package/dist/services/queue-manager/queue-manager.service.d.ts +128 -0
  67. package/dist/services/queue-manager/queue-manager.service.d.ts.map +1 -0
  68. package/dist/services/queue-manager/queue-manager.service.js +308 -0
  69. package/dist/services/queue-manager/queue-manager.service.js.map +1 -0
  70. package/dist/services/resource-lock/index.d.ts +2 -0
  71. package/dist/services/resource-lock/index.d.ts.map +1 -0
  72. package/dist/services/resource-lock/index.js +18 -0
  73. package/dist/services/resource-lock/index.js.map +1 -0
  74. package/dist/services/resource-lock/resource-lock.service.d.ts +124 -0
  75. package/dist/services/resource-lock/resource-lock.service.d.ts.map +1 -0
  76. package/dist/services/resource-lock/resource-lock.service.js +379 -0
  77. package/dist/services/resource-lock/resource-lock.service.js.map +1 -0
  78. package/dist/services/service-queue/index.d.ts +2 -0
  79. package/dist/services/service-queue/index.d.ts.map +1 -0
  80. package/dist/services/service-queue/index.js +18 -0
  81. package/dist/services/service-queue/index.js.map +1 -0
  82. package/dist/services/service-queue/service-queue.service.d.ts +232 -0
  83. package/dist/services/service-queue/service-queue.service.d.ts.map +1 -0
  84. package/dist/services/service-queue/service-queue.service.js +647 -0
  85. package/dist/services/service-queue/service-queue.service.js.map +1 -0
  86. package/dist/services/shutdown-state/index.d.ts +2 -0
  87. package/dist/services/shutdown-state/index.d.ts.map +1 -0
  88. package/dist/services/shutdown-state/index.js +18 -0
  89. package/dist/services/shutdown-state/index.js.map +1 -0
  90. package/dist/services/shutdown-state/shutdown-state.service.d.ts +69 -0
  91. package/dist/services/shutdown-state/shutdown-state.service.d.ts.map +1 -0
  92. package/dist/services/shutdown-state/shutdown-state.service.js +127 -0
  93. package/dist/services/shutdown-state/shutdown-state.service.js.map +1 -0
  94. package/dist/services/worker-manager/index.d.ts +2 -0
  95. package/dist/services/worker-manager/index.d.ts.map +1 -0
  96. package/dist/services/worker-manager/index.js +18 -0
  97. package/dist/services/worker-manager/index.js.map +1 -0
  98. package/dist/services/worker-manager/worker-manager.service.d.ts +163 -0
  99. package/dist/services/worker-manager/worker-manager.service.d.ts.map +1 -0
  100. package/dist/services/worker-manager/worker-manager.service.js +460 -0
  101. package/dist/services/worker-manager/worker-manager.service.js.map +1 -0
  102. package/dist/utils/helpers.d.ts +124 -0
  103. package/dist/utils/helpers.d.ts.map +1 -0
  104. package/dist/utils/helpers.js +229 -0
  105. package/dist/utils/helpers.js.map +1 -0
  106. package/dist/utils/index.d.ts +2 -0
  107. package/dist/utils/index.d.ts.map +1 -0
  108. package/dist/utils/index.js +18 -0
  109. package/dist/utils/index.js.map +1 -0
  110. package/package.json +80 -0
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAtomicJobData = createAtomicJobData;
4
+ exports.createDefaultJobOptions = createDefaultJobOptions;
5
+ exports.createHighPriorityJobOptions = createHighPriorityJobOptions;
6
+ exports.sleep = sleep;
7
+ exports.retry = retry;
8
+ exports.getEntityQueueName = getEntityQueueName;
9
+ exports.getEntityWorkerName = getEntityWorkerName;
10
+ exports.parseQueueName = parseQueueName;
11
+ exports.createSigtermPayload = createSigtermPayload;
12
+ exports.isSigtermJob = isSigtermJob;
13
+ exports.batch = batch;
14
+ exports.createTimeout = createTimeout;
15
+ exports.withTimeout = withTimeout;
16
+ exports.debounce = debounce;
17
+ exports.throttle = throttle;
18
+ const uuid_1 = require("uuid");
19
+ /**
20
+ * Create an atomic job data payload.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const jobData = createAtomicJobData({
25
+ * entityType: 'user',
26
+ * entityId: '123',
27
+ * type: 'command',
28
+ * commandName: 'SendMessageCommand',
29
+ * payload: { message: 'Hello!' },
30
+ * });
31
+ *
32
+ * await queueManager.addJob('user-123-queue', 'send-message', jobData);
33
+ * ```
34
+ */
35
+ function createAtomicJobData(options) {
36
+ return {
37
+ uuid: (0, uuid_1.v4)(),
38
+ entityId: options.entityId,
39
+ entityType: options.entityType,
40
+ type: options.type,
41
+ commandName: options.commandName,
42
+ payload: options.payload,
43
+ metadata: options.metadata,
44
+ };
45
+ }
46
+ /**
47
+ * Create default job options with common settings.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const options = createDefaultJobOptions({
52
+ * priority: 0, // Highest priority
53
+ * attempts: 5,
54
+ * });
55
+ * ```
56
+ */
57
+ function createDefaultJobOptions(overrides) {
58
+ return {
59
+ removeOnComplete: true,
60
+ removeOnFail: false,
61
+ attempts: Number.MAX_SAFE_INTEGER,
62
+ backoff: {
63
+ type: 'fixed',
64
+ delay: 1000,
65
+ },
66
+ priority: 1,
67
+ ...overrides,
68
+ };
69
+ }
70
+ /**
71
+ * Create high-priority job options (for SIGTERM signals, etc.)
72
+ */
73
+ function createHighPriorityJobOptions(overrides) {
74
+ return createDefaultJobOptions({
75
+ priority: 0, // Highest priority
76
+ ...overrides,
77
+ });
78
+ }
79
+ /**
80
+ * Sleep utility for async operations.
81
+ */
82
+ function sleep(ms) {
83
+ return new Promise((resolve) => setTimeout(resolve, ms));
84
+ }
85
+ /**
86
+ * Retry utility with exponential backoff.
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const result = await retry(
91
+ * () => someUnreliableOperation(),
92
+ * { maxAttempts: 3, baseDelay: 1000 },
93
+ * );
94
+ * ```
95
+ */
96
+ async function retry(fn, options) {
97
+ const { maxAttempts, baseDelay, maxDelay = 30000, exponential = true, onRetry } = options;
98
+ let lastError;
99
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
100
+ try {
101
+ return await fn();
102
+ }
103
+ catch (error) {
104
+ lastError = error;
105
+ if (attempt === maxAttempts) {
106
+ throw lastError;
107
+ }
108
+ if (onRetry) {
109
+ onRetry(attempt, lastError);
110
+ }
111
+ const delay = exponential
112
+ ? Math.min(baseDelay * Math.pow(2, attempt - 1), maxDelay)
113
+ : baseDelay;
114
+ await sleep(delay);
115
+ }
116
+ }
117
+ throw lastError;
118
+ }
119
+ /**
120
+ * Generate a queue name for an entity.
121
+ */
122
+ function getEntityQueueName(entityType, entityId, prefix = 'aq') {
123
+ return `${prefix}:${entityType}:${entityId}:queue`;
124
+ }
125
+ /**
126
+ * Generate a worker name for an entity.
127
+ */
128
+ function getEntityWorkerName(entityType, entityId, prefix = 'aq') {
129
+ return `${prefix}:${entityType}:${entityId}:worker`;
130
+ }
131
+ /**
132
+ * Parse a queue name to extract entity info.
133
+ */
134
+ function parseQueueName(queueName) {
135
+ const parts = queueName.split(':');
136
+ if (parts.length >= 4 && parts[3] === 'queue') {
137
+ return {
138
+ prefix: parts[0],
139
+ entityType: parts[1],
140
+ entityId: parts[2],
141
+ };
142
+ }
143
+ return null;
144
+ }
145
+ /**
146
+ * Create a SIGTERM job payload for worker termination.
147
+ */
148
+ function createSigtermPayload(entityType, entityId) {
149
+ return {
150
+ uuid: (0, uuid_1.v4)(),
151
+ entityId,
152
+ entityType,
153
+ type: 'custom',
154
+ payload: { type: 'SIGTERM' },
155
+ metadata: { signal: 'SIGTERM' },
156
+ };
157
+ }
158
+ /**
159
+ * Check if a job is a SIGTERM signal.
160
+ */
161
+ function isSigtermJob(data) {
162
+ return (data.type === 'custom' &&
163
+ data.payload?.type === 'SIGTERM');
164
+ }
165
+ /**
166
+ * Batch utility for processing items in chunks.
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * await batch(items, 10, async (chunk) => {
171
+ * await Promise.all(chunk.map(processItem));
172
+ * });
173
+ * ```
174
+ */
175
+ async function batch(items, batchSize, processor) {
176
+ for (let i = 0; i < items.length; i += batchSize) {
177
+ const chunk = items.slice(i, i + batchSize);
178
+ await processor(chunk);
179
+ }
180
+ }
181
+ /**
182
+ * Create a timeout promise that rejects after specified ms.
183
+ */
184
+ function createTimeout(ms, message = 'Operation timed out') {
185
+ return new Promise((_, reject) => {
186
+ setTimeout(() => reject(new Error(message)), ms);
187
+ });
188
+ }
189
+ /**
190
+ * Run an operation with a timeout.
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * const result = await withTimeout(
195
+ * someAsyncOperation(),
196
+ * 5000,
197
+ * 'Operation took too long',
198
+ * );
199
+ * ```
200
+ */
201
+ async function withTimeout(promise, ms, message) {
202
+ return Promise.race([promise, createTimeout(ms, message)]);
203
+ }
204
+ /**
205
+ * Debounce utility for functions.
206
+ */
207
+ function debounce(fn, ms) {
208
+ let timeoutId = null;
209
+ return (...args) => {
210
+ if (timeoutId) {
211
+ clearTimeout(timeoutId);
212
+ }
213
+ timeoutId = setTimeout(() => fn(...args), ms);
214
+ };
215
+ }
216
+ /**
217
+ * Throttle utility for functions.
218
+ */
219
+ function throttle(fn, ms) {
220
+ let lastCall = 0;
221
+ return (...args) => {
222
+ const now = Date.now();
223
+ if (now - lastCall >= ms) {
224
+ lastCall = now;
225
+ fn(...args);
226
+ }
227
+ };
228
+ }
229
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './helpers';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./helpers"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "atomic-queues",
3
+ "version": "1.0.13",
4
+ "description": "A plug-and-play NestJS library for atomic process handling per entity with BullMQ, Redis distributed locking, and dynamic worker management",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist/**/*"
9
+ ],
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/Marce1o/nestjs-atomicQueues.git"
13
+ },
14
+ "homepage": "https://github.com/Marce1o/nestjs-atomicQueues#readme",
15
+ "bugs": {
16
+ "url": "https://github.com/Marce1o/nestjs-atomicQueues/issues"
17
+ },
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "scripts": {
22
+ "build": "rimraf dist && tsc",
23
+ "dev": "tsc --watch",
24
+ "copy-package": "node -e \"const p=require('./package.json'); p.main='index.js'; p.types='index.d.ts'; p.files=['**/*.js','**/*.d.ts','**/*.js.map','**/*.d.ts.map']; require('fs').writeFileSync('./dist/package.json', JSON.stringify(p, null, 2));\"",
25
+ "publish": "cd dist && npm publish --ignore-scripts",
26
+ "print:local:instructions": "FOLDER=$(echo \"$PWD\"/atomicqueues-core*.tgz) && echo 'Reinstall with -> npm uninstall @atomicqueues/core && npm i file:'\"$FOLDER\"",
27
+ "pack": "npm run build && npm run copy-package && cd dist && npm pack --ignore-scripts && npm run print:local:instructions",
28
+ "test": "jest",
29
+ "test:watch": "jest --watch",
30
+ "lint": "eslint src/**/*.ts"
31
+ },
32
+ "keywords": [
33
+ "nestjs",
34
+ "queue",
35
+ "bullmq",
36
+ "redis",
37
+ "atomic",
38
+ "distributed-lock",
39
+ "worker-management",
40
+ "cqrs"
41
+ ],
42
+ "author": "",
43
+ "license": "MIT",
44
+ "peerDependencies": {
45
+ "@nestjs/bullmq": ">=10.0.0",
46
+ "@nestjs/common": ">=10.0.0",
47
+ "@nestjs/core": ">=10.0.0",
48
+ "@nestjs/cqrs": ">=10.0.0",
49
+ "bullmq": ">=5.0.0",
50
+ "ioredis": ">=5.0.0",
51
+ "reflect-metadata": ">=0.1.13",
52
+ "rxjs": ">=7.0.0"
53
+ },
54
+ "devDependencies": {
55
+ "@nestjs/bullmq": "^10.2.0",
56
+ "@nestjs/common": "^10.3.0",
57
+ "@nestjs/core": "^10.3.0",
58
+ "@nestjs/cqrs": "^10.2.0",
59
+ "@types/jest": "^29.5.0",
60
+ "@types/node": "^20.0.0",
61
+ "@types/uuid": "^10.0.0",
62
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
63
+ "@typescript-eslint/parser": "^6.0.0",
64
+ "bullmq": "^5.1.0",
65
+ "eslint": "^8.0.0",
66
+ "ioredis": "^5.3.0",
67
+ "jest": "^29.5.0",
68
+ "reflect-metadata": "^0.1.13",
69
+ "rimraf": "^6.1.2",
70
+ "rxjs": "^7.8.0",
71
+ "shx": "^0.4.0",
72
+ "ts-jest": "^29.1.0",
73
+ "typescript": "^5.3.0",
74
+ "uuid": "^9.0.0"
75
+ },
76
+ "dependencies": {
77
+ "class-transformer": "^0.5.1",
78
+ "uuid": "^9.0.0"
79
+ }
80
+ }