n8n-nodes-bozonx-redis-sugar 1.18.0 → 1.20.0

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 (35) hide show
  1. package/README.md +157 -16
  2. package/dist/nodes/RedisCache/BozonxRedisCache.node.js +21 -6
  3. package/dist/nodes/RedisCache/BozonxRedisCache.node.js.map +1 -1
  4. package/dist/nodes/RedisCache/redisClient.js +19 -1
  5. package/dist/nodes/RedisCache/redisClient.js.map +1 -1
  6. package/dist/nodes/RedisQueueComplete/BozonxRedisQueueComplete.node.d.ts +5 -0
  7. package/dist/nodes/RedisQueueComplete/BozonxRedisQueueComplete.node.js +128 -0
  8. package/dist/nodes/RedisQueueComplete/BozonxRedisQueueComplete.node.js.map +1 -0
  9. package/dist/nodes/RedisQueueComplete/redis-queue-complete.svg +4 -0
  10. package/dist/nodes/RedisQueueComplete/redisClient.d.ts +9 -0
  11. package/dist/nodes/RedisQueueComplete/redisClient.js +93 -0
  12. package/dist/nodes/RedisQueueComplete/redisClient.js.map +1 -0
  13. package/dist/nodes/RedisQueueConsumer/BozonxRedisQueueConsumer.node.d.ts +5 -0
  14. package/dist/nodes/RedisQueueConsumer/BozonxRedisQueueConsumer.node.js +179 -0
  15. package/dist/nodes/RedisQueueConsumer/BozonxRedisQueueConsumer.node.js.map +1 -0
  16. package/dist/nodes/RedisQueueConsumer/redis-queue-consumer.svg +4 -0
  17. package/dist/nodes/RedisQueueConsumer/redisClient.d.ts +9 -0
  18. package/dist/nodes/RedisQueueConsumer/redisClient.js +93 -0
  19. package/dist/nodes/RedisQueueConsumer/redisClient.js.map +1 -0
  20. package/dist/nodes/RedisQueueProducer/BozonxRedisQueueProducer.node.d.ts +5 -0
  21. package/dist/nodes/RedisQueueProducer/BozonxRedisQueueProducer.node.js +224 -0
  22. package/dist/nodes/RedisQueueProducer/BozonxRedisQueueProducer.node.js.map +1 -0
  23. package/dist/nodes/RedisQueueProducer/redis-queue-producer.svg +4 -0
  24. package/dist/nodes/RedisQueueProducer/redisClient.d.ts +10 -0
  25. package/dist/nodes/RedisQueueProducer/redisClient.js +97 -0
  26. package/dist/nodes/RedisQueueProducer/redisClient.js.map +1 -0
  27. package/dist/nodes/RedisStreamProducer/BozonxRedisStreamProducer.node.js +20 -4
  28. package/dist/nodes/RedisStreamProducer/BozonxRedisStreamProducer.node.js.map +1 -1
  29. package/dist/nodes/RedisStreamProducer/redisClient.js +20 -2
  30. package/dist/nodes/RedisStreamProducer/redisClient.js.map +1 -1
  31. package/dist/nodes/RedisStreamTrigger/BozonxRedisStreamTrigger.node.js +4 -11
  32. package/dist/nodes/RedisStreamTrigger/BozonxRedisStreamTrigger.node.js.map +1 -1
  33. package/dist/package.json +12 -8
  34. package/dist/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +12 -8
package/README.md CHANGED
@@ -1,10 +1,13 @@
1
- # n8n Nodes: Bozonx Redis Nodes (Cache + Streams)
1
+ # n8n Nodes: Bozonx Redis Sugar
2
2
 
3
3
  Community nodes for n8n to work with Redis:
4
4
 
5
- - Redis Cache: read/write JSON values with optional TTL
6
- - Redis Pub: append entries to Redis Streams (XADD)
7
- - Redis Stream Trigger: emit items from Redis Streams (XREAD)
5
+ - **Redis Cache**: read/write JSON values with optional TTL
6
+ - **Redis Pub**: append entries to Redis Streams (XADD)
7
+ - **Redis Sub Trigger**: emit items from Redis Streams (XREAD)
8
+ - **Redis Queue Add**: add jobs to a Redis-based queue
9
+ - **Redis Queue Trigger**: process jobs from a Redis-based queue
10
+ - **Redis Queue Complete**: mark queue job as complete and check if it was the last job
8
11
 
9
12
  n8n is a fair-code licensed workflow automation platform: https://n8n.io/
10
13
 
@@ -43,14 +46,14 @@ Read result hit: `{ found: true, key, data }`
43
46
  Read result miss: `{ found: false, key }`
44
47
 
45
48
  Details:
46
- - When Payload Type is JSON, a valid JSON string is required.
49
+ - When Payload Type is YAML / JSON, the input is a string and is parsed as YAML first (YAML is a superset of JSON), then as JSON.
47
50
  - When Payload Type is Data Fields, you can add multiple fields with a selected value type (string, number, boolean, json, null). JSON values are validated and stringified.
48
51
  - TTL is optional; set to 0 to store without expiration. Units supported: seconds, minutes, hours, days.
49
52
 
50
53
  ### 2) Redis Pub (Streams)
51
54
 
52
55
  - Event name: Redis stream key
53
- - Payload Mode: Text, JSON, or Key-Value
56
+ - Payload Mode: YAML / JSON or Key-Value
54
57
  - Stream trimming: `MAXLEN ~ 1000000`
55
58
  - Stream TTL: `EXPIRE 86400` seconds
56
59
 
@@ -61,11 +64,10 @@ Output item example:
61
64
  ```
62
65
 
63
66
  Details:
64
- - Text mode sends a single field "payload" with the provided text.
65
- - JSON mode sends a single field "data". If left empty, the incoming item is used and stringified.
67
+ - YAML / JSON mode sends a single field "data". Input is a string and is parsed as YAML first (YAML is a superset of JSON), then as JSON. If left empty, the incoming item is used and stringified.
66
68
  - Key-Value mode lets you define typed fields (string, number, boolean, json, null). Invalid JSON values are rejected.
67
69
 
68
- ### 3) Redis Stream Trigger (Streams)
70
+ ### 3) Redis Sub Trigger (Streams)
69
71
 
70
72
  - Stream Key
71
73
  - Allowed Stale (Seconds): if > 0, on start emit recent entries; 0 → only new
@@ -78,20 +80,99 @@ Emitted item example:
78
80
  { "payload": <parsed_payload_or_fields>, "_stream": "mystream", "_id": "1728666000000-0" }
79
81
  ```
80
82
 
83
+ ### 4) Redis Queue Add
84
+
85
+ Add jobs to a Redis-based queue for sequential processing.
86
+
87
+ - **Queue ID**: unique identifier for the queue (leave empty to use current workflow ID)
88
+ - **Job Name**: optional name to group jobs within the same queue (e.g., separate queues per user: `user-123`)
89
+ - **Data**: job data in YAML/JSON format (leave empty to use incoming item)
90
+ - **Timeout (seconds)**: maximum time for job processing (default: 60)
91
+ - Queue TTL is automatically set to `timeout * 1.3 + 10` seconds
92
+
93
+ **Redis structure:**
94
+ - Without Job Name: `queue:{queueId}`
95
+ - With Job Name: `queue:{queueId}:{jobName}` (allows multiple independent queues per workflow)
96
+
97
+ Output:
98
+
99
+ ```json
100
+ { "queueId": "workflow-123", "jobName": "user-456", "position": 3, "timeoutSec": 60, "ttl": 88 }
101
+ ```
102
+
103
+ ### 5) Redis Queue Trigger
104
+
105
+ Process jobs from a Redis-based queue. This is a trigger node that starts a workflow for each job.
106
+
107
+ - **Queue ID**: which queue to consume from (leave empty to use current workflow ID)
108
+ - **Job Name**: optional name to match the Job Name from Redis Queue Add (for grouped queues)
109
+ - **BLPOP Timeout (seconds)**: timeout for blocking pop operation (default: 30)
110
+
111
+ Uses `BLPOP` for efficient, event-driven job consumption (no active polling).
112
+
113
+ Emitted item:
114
+
115
+ ```json
116
+ {
117
+ "data": { "your": "job data" },
118
+ "index": 1,
119
+ "queueId": "workflow-123",
120
+ "jobName": "user-456",
121
+ "uniqueJobId": "workflow-123-1735308000000-1"
122
+ }
123
+ ```
124
+
125
+ - `data`: the job payload
126
+ - `index`: position in the current queue "wave" (resets to 1 when queue empties)
127
+ - `queueId`: queue identifier (workflow ID if not specified)
128
+ - `jobName`: optional job group name (null if not used)
129
+ - `uniqueJobId`: unique identifier for this specific job execution
130
+
131
+ ### 6) Redis Queue Complete
132
+
133
+ Mark a job as complete and check if it was the last job in the queue. Place this node at the end of your queue processing workflow.
134
+
135
+ - **Queue ID**: from trigger (default: `={{ $json.queueId }}`)
136
+ - **Job Name**: optional, from trigger (default: `={{ $json.jobName }}`)
137
+ - **Unique Job ID**: from trigger (default: `={{ $json.uniqueJobId }}`)
138
+
139
+ Output:
140
+
141
+ ```json
142
+ {
143
+ "data": { "your": "job data" },
144
+ "index": 1,
145
+ "isLast": true,
146
+ "queueId": "workflow-123",
147
+ "jobName": "user-456",
148
+ "uniqueJobId": "workflow-123-1735308000000-1"
149
+ }
150
+ ```
151
+
152
+ - `isLast`: `true` if this was the last job in the queue (queue is now empty)
153
+ - When `isLast` is `true`, the index counter is reset for the next "wave" of jobs
154
+
81
155
  ## Quick Start
82
156
 
157
+ ### Cache Example
83
158
  1. Create Redis credentials in n8n
84
159
  2. Redis Cache (Write): set key, payload JSON, TTL
85
160
  3. Redis Cache (Read): set same key
161
+
162
+ ### Streams Example
86
163
  4. Redis Pub: set stream key and payload
87
- 5. Redis Stream Trigger: set same stream key, optional Allowed Stale
164
+ 5. Redis Sub Trigger: set same stream key, optional Allowed Stale
165
+
166
+ ### Queue Example
167
+ 6. **Workflow 1 (Producer)**: Schedule Trigger → Redis Queue Add (queueId: "emails")
168
+ 7. **Workflow 2 (Consumer)**: Redis Queue Trigger (queueId: "emails") → Send Email → Redis Queue Complete → IF node (check `isLast`) → Send Summary Email (if last)
88
169
 
89
170
  ## Usage Examples
90
171
 
91
- - Redis Cache (Write JSON):
172
+ - Redis Cache (Write YAML / JSON):
92
173
  - Mode: Write
93
174
  - Key: `cache:user:42`
94
- - Payload Type: JSON
175
+ - Payload Type: YAML / JSON
95
176
  - Data: `{ "id": 42, "name": "Ada" }`
96
177
  - TTL Unit: hours, TTL Value: 24
97
178
 
@@ -99,15 +180,36 @@ Emitted item example:
99
180
  - Mode: Read
100
181
  - Key: `cache:user:42`
101
182
 
102
- - Redis Pub (JSON):
183
+ - Redis Pub (YAML / JSON):
103
184
  - Stream Key: `my-service:main`
104
- - Payload Mode: JSON
105
- - Payload: leave empty to send the incoming item as JSON
185
+ - Payload Mode: YAML / JSON
186
+ - Payload: leave empty to send the incoming item as YAML/JSON
106
187
 
107
- - Redis Stream Trigger:
188
+ - Redis Sub Trigger:
108
189
  - Stream Key: `my-service:main`
109
190
  - Allowed Stale (Seconds): `0` for only new entries
110
191
 
192
+ - Redis Queue (Producer Workflow):
193
+ - Redis Queue Add:
194
+ - Queue ID: `` (empty - uses workflow ID)
195
+ - Job Name: `={{ $json.userId }}` (separate queue per user)
196
+ - Data: `{ "url": "https://example.com/image.jpg", "format": "webp" }`
197
+ - Timeout: `120` seconds
198
+
199
+ - Redis Queue (Consumer Workflow):
200
+ - Redis Queue Trigger:
201
+ - Queue ID: `` (empty - uses workflow ID)
202
+ - Job Name: `={{ $json.userId }}` (must match producer)
203
+ - BLPOP Timeout: `30` seconds
204
+ - → Process Image node
205
+ - → Redis Queue Complete:
206
+ - Queue ID: `={{ $json.queueId }}`
207
+ - Job Name: `={{ $json.jobName }}`
208
+ - Unique Job ID: `={{ $json.uniqueJobId }}`
209
+ - → IF node: `={{ $json.result.isLast }}`
210
+ - True → Send notification "All images processed for user"
211
+ - False → End
212
+
111
213
  ## Development
112
214
 
113
215
  - Install deps: `pnpm install`
@@ -115,6 +217,45 @@ Emitted item example:
115
217
  - Build: `pnpm build`
116
218
  - Dev (watch): `pnpm dev` or `pnpm run build:watch`
117
219
 
220
+ ### Local Redis (for tests)
221
+
222
+ This package includes a ready-to-use `compose.yaml` that starts:
223
+
224
+ - `redis` on `localhost:6379`
225
+ - `redisinsight` UI on `http://localhost:5540`
226
+
227
+ Start containers:
228
+
229
+ ```bash
230
+ docker compose -f compose.yaml up -d
231
+ ```
232
+
233
+ Stop containers:
234
+
235
+ ```bash
236
+ docker compose -f compose.yaml down
237
+ ```
238
+
239
+ Redis connection params (matching `compose.yaml`):
240
+
241
+ - Host: `localhost`
242
+ - Port: `6379`
243
+ - Username: (empty)
244
+ - Password: (empty)
245
+ - TLS: `false`
246
+ - DB Index: `0`
247
+
248
+ Quick connectivity check:
249
+
250
+ ```bash
251
+ redis-cli -h localhost -p 6379 ping
252
+ ```
253
+
254
+ If you run n8n in Docker, use the correct host from the n8n container perspective:
255
+
256
+ - If n8n is started from the same Compose project/network, use the service name `redis` as host.
257
+ - If n8n runs in a separate Compose project, either connect the networks or expose Redis and use the host that is reachable from n8n.
258
+
118
259
  Before publishing, the CLI will run `n8n-node prerelease` automatically.
119
260
 
120
261
  Publishing options:
@@ -68,7 +68,8 @@ class BozonxRedisCache {
68
68
  {
69
69
  displayName: 'Data (YAML / JSON)',
70
70
  name: 'dataYamlJson',
71
- type: 'json',
71
+ type: 'string',
72
+ typeOptions: { rows: 8 },
72
73
  default: '',
73
74
  placeholder: 'foo: bar\ncount: 42\n# or JSON: { "foo": "bar" }',
74
75
  description: 'Data in YAML or JSON format. If a string is provided, it will first be parsed as YAML, then as JSON. If an expression returns a non-string value, it will be serialized to JSON.',
@@ -153,12 +154,13 @@ class BozonxRedisCache {
153
154
  displayOptions: { show: { valueType: ['string'] } },
154
155
  },
155
156
  {
156
- displayName: 'JSON Value',
157
+ displayName: 'Value (YAML / JSON)',
157
158
  name: 'valueJson',
158
- type: 'json',
159
+ type: 'string',
160
+ typeOptions: { rows: 8 },
159
161
  default: '',
160
- placeholder: "{ 'nested': true }",
161
- description: 'Provide valid JSON to be parsed as the field value (e.g. object or array). Use expressions like {{ $json.items }} to pass data.',
162
+ placeholder: 'foo: bar\ncount: 42\n# or JSON: { "foo": "bar" }',
163
+ description: 'Data in YAML or JSON format. If a string is provided, it will first be parsed as YAML, then as JSON. If an expression returns a non-string value, it will be serialized to JSON.',
162
164
  displayOptions: { show: { valueType: ['json'] } },
163
165
  },
164
166
  ],
@@ -312,9 +314,22 @@ class BozonxRedisCache {
312
314
  }
313
315
  case 'json': {
314
316
  const raw = pair.valueJson;
315
- if (raw === undefined) {
317
+ if (raw === undefined || raw === '') {
316
318
  value = null;
317
319
  }
320
+ else if (typeof raw === 'string') {
321
+ try {
322
+ value = (0, js_yaml_1.load)(raw);
323
+ }
324
+ catch {
325
+ try {
326
+ value = JSON.parse(raw);
327
+ }
328
+ catch (jsonError) {
329
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Invalid YAML or JSON provided in field "${k}": ${jsonError.message}`, { itemIndex: i });
330
+ }
331
+ }
332
+ }
318
333
  else {
319
334
  value = raw;
320
335
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BozonxRedisCache.node.js","sourceRoot":"","sources":["../../../nodes/RedisCache/BozonxRedisCache.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BozonxRedisCache.node.js","sourceRoot":"","sources":["../../../nodes/RedisCache/BozonxRedisCache.node.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,20 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.ttlToSeconds = ttlToSeconds;
37
37
  exports.createRedisClientConnected = createRedisClientConnected;
38
+ const timers_1 = require("timers");
39
+ const REDIS_CONNECT_DEADLINE_MS = 10000;
40
+ function withTimeout(promise, timeoutMs, message) {
41
+ let timeout;
42
+ return Promise.race([
43
+ promise,
44
+ new Promise((_, reject) => {
45
+ timeout = (0, timers_1.setTimeout)(() => reject(new Error(message)), timeoutMs);
46
+ }),
47
+ ]).finally(() => {
48
+ if (timeout)
49
+ (0, timers_1.clearTimeout)(timeout);
50
+ });
51
+ }
38
52
  function ttlToSeconds(ttl, unit) {
39
53
  if (!ttl || ttl <= 0)
40
54
  return 0;
@@ -64,11 +78,15 @@ async function createRedisClientConnected(options) {
64
78
  const { createClient } = await Promise.resolve().then(() => __importStar(require('redis')));
65
79
  const clientImpl = createClient({
66
80
  url,
81
+ disableOfflineQueue: true,
67
82
  socket: {
68
83
  connectTimeout: 10000,
84
+ reconnectStrategy: (retries) => {
85
+ return Math.min(retries * 100, 3000);
86
+ },
69
87
  },
70
88
  });
71
- await clientImpl.connect();
89
+ await withTimeout(clientImpl.connect(), REDIS_CONNECT_DEADLINE_MS, `Redis connect timeout after ${REDIS_CONNECT_DEADLINE_MS}ms`);
72
90
  const client = {
73
91
  async connect() { },
74
92
  async quit() {
@@ -1 +1 @@
1
- {"version":3,"file":"redisClient.js","sourceRoot":"","sources":["../../../nodes/RedisCache/redisClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,oCAcC;AAUD,gEA+CC;AAvED,SAAgB,YAAY,CAAC,GAAW,EAAE,IAA8C;IACvF,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,SAAS;YACb,OAAO,GAAG,CAAC;QACZ,KAAK,SAAS;YACb,OAAO,GAAG,GAAG,EAAE,CAAC;QACjB,KAAK,OAAO;YACX,OAAO,GAAG,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,GAAG,GAAG,KAAK,CAAC;QACpB;YACC,OAAO,GAAG,CAAC;IACb,CAAC;AACF,CAAC;AAUM,KAAK,UAAU,0BAA0B,CAC/C,OAA+B;;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAChC,CAAC,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,CAAC,GAAG;QAC1F,CAAC,CAAC,OAAO,CAAC,QAAQ;YACjB,CAAC,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;YAC7C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,GAAG,GAAG,GAAG,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;IAE9E,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,OAAO,GAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,YAAY,CAAC;QAC/B,GAAG;QACH,MAAM,EAAE;YACP,cAAc,EAAE,KAAK;SACrB;KACD,CAAC,CAAC;IACH,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAuB;QAClC,KAAK,CAAC,OAAO,KAAI,CAAC;QAClB,KAAK,CAAC,IAAI;YACT,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAW;YACpB,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,OAAyB;YAC9D,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,KAAI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACP,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;QACF,CAAC;QACD,OAAO;YACN,IAAI,CAAC;gBACJ,UAAU,CAAC,UAAU,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,KAAK,CAAC,CAAC;YACR,CAAC;QACF,CAAC;KACD,CAAC;IAEF,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"redisClient.js","sourceRoot":"","sources":["../../../nodes/RedisCache/redisClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type IExecuteFunctions, type INodeExecutionData, type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class BozonxRedisQueueComplete implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BozonxRedisQueueComplete = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const redisClient_1 = require("./redisClient");
6
+ class BozonxRedisQueueComplete {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'Redis Queue Complete',
10
+ name: 'bozonxRedisQueueComplete',
11
+ group: ['transform'],
12
+ version: 1,
13
+ description: 'Release queue lock and check if it was the last job',
14
+ defaults: { name: 'Redis Queue Complete' },
15
+ icon: 'file:redis-queue-complete.svg',
16
+ inputs: ['main'],
17
+ outputs: ['main'],
18
+ credentials: [
19
+ {
20
+ name: 'bozonxRedis',
21
+ required: true,
22
+ },
23
+ ],
24
+ properties: [
25
+ {
26
+ displayName: 'Queue ID',
27
+ name: 'queueId',
28
+ type: 'string',
29
+ default: '={{ $json.queueId }}',
30
+ required: true,
31
+ description: 'Queue identifier from the trigger node',
32
+ },
33
+ {
34
+ displayName: 'Job Name',
35
+ name: 'jobName',
36
+ type: 'string',
37
+ default: '={{ $json.jobName }}',
38
+ description: 'Optional job name from the trigger node (for grouped queues)',
39
+ },
40
+ {
41
+ displayName: 'Job ID',
42
+ name: 'jobId',
43
+ type: 'string',
44
+ default: '={{ $json.jobId }}',
45
+ required: true,
46
+ description: 'Unique job identifier from the trigger node',
47
+ },
48
+ {
49
+ displayName: 'Include Other Input Fields',
50
+ name: 'includeInputFields',
51
+ type: 'boolean',
52
+ default: false,
53
+ description: 'Whether to copy all input data to the output. When enabled, the node result will be placed in a "result" field.',
54
+ },
55
+ ],
56
+ usableAsTool: true,
57
+ };
58
+ }
59
+ async execute() {
60
+ var _a, _b;
61
+ const items = this.getInputData();
62
+ const returnData = [];
63
+ const creds = await this.getCredentials('bozonxRedis');
64
+ const host = (creds === null || creds === void 0 ? void 0 : creds.host) || 'localhost';
65
+ const port = (_a = creds === null || creds === void 0 ? void 0 : creds.port) !== null && _a !== void 0 ? _a : 6379;
66
+ const username = (creds === null || creds === void 0 ? void 0 : creds.username) || '';
67
+ const password = (creds === null || creds === void 0 ? void 0 : creds.password) || '';
68
+ const tls = (creds === null || creds === void 0 ? void 0 : creds.tls) || false;
69
+ const db = (_b = creds === null || creds === void 0 ? void 0 : creds.db) !== null && _b !== void 0 ? _b : 0;
70
+ const client = await (0, redisClient_1.getRedisClientConnected)({ host, port, username, password, tls, db });
71
+ for (let i = 0; i < items.length; i++) {
72
+ try {
73
+ const queueId = String(this.getNodeParameter('queueId', i) || '').trim();
74
+ const jobName = String(this.getNodeParameter('jobName', i, '') || '').trim();
75
+ const jobId = String(this.getNodeParameter('jobId', i) || '').trim();
76
+ const includeInputFields = this.getNodeParameter('includeInputFields', i, false);
77
+ if (!queueId) {
78
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Queue ID is required', { itemIndex: i });
79
+ }
80
+ if (!jobId) {
81
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Job ID is required', { itemIndex: i });
82
+ }
83
+ const queueKey = jobName ? `queue:${queueId}:${jobName}` : `queue:${queueId}`;
84
+ const lockKey = jobName ? `queue:${queueId}:${jobName}:lock` : `queue:${queueId}:lock`;
85
+ const responseKey = `response:${queueId}:${jobId}`;
86
+ const c = client;
87
+ const queueLength = (await c.sendCommand(['LLEN', queueKey]));
88
+ const isLast = queueLength === 0;
89
+ const inputData = items[i].json;
90
+ const responsePayload = {
91
+ data: inputData,
92
+ isLast,
93
+ };
94
+ const responseData = JSON.stringify(responsePayload);
95
+ await c.sendCommand(['RPUSH', responseKey, responseData]);
96
+ await c.sendCommand(['EXPIRE', responseKey, '60']);
97
+ await c.sendCommand(['DEL', lockKey]);
98
+ const result = {
99
+ data: inputData,
100
+ isLast,
101
+ queueId,
102
+ jobName: jobName || null,
103
+ jobId,
104
+ };
105
+ returnData.push({
106
+ json: includeInputFields ? { ...items[i].json, result } : { result },
107
+ pairedItem: { item: i },
108
+ });
109
+ }
110
+ catch (error) {
111
+ if (this.continueOnFail()) {
112
+ returnData.push({
113
+ json: { error: error.message },
114
+ pairedItem: { item: i },
115
+ });
116
+ continue;
117
+ }
118
+ if (error instanceof n8n_workflow_1.NodeOperationError) {
119
+ throw error;
120
+ }
121
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex: i });
122
+ }
123
+ }
124
+ return [returnData];
125
+ }
126
+ }
127
+ exports.BozonxRedisQueueComplete = BozonxRedisQueueComplete;
128
+ //# sourceMappingURL=BozonxRedisQueueComplete.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BozonxRedisQueueComplete.node.js","sourceRoot":"","sources":["../../../nodes/RedisQueueComplete/BozonxRedisQueueComplete.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2
+ <rect x="3" y="3" width="18" height="18" rx="2" ry="2" fill="#DC382D" stroke="none"/>
3
+ <path d="M9 12l2 2 4-4" stroke="white" stroke-width="2"/>
4
+ </svg>
@@ -0,0 +1,9 @@
1
+ export interface RedisConnectionOptions {
2
+ host: string;
3
+ port: number;
4
+ username?: string;
5
+ password?: string;
6
+ tls?: boolean;
7
+ db?: number;
8
+ }
9
+ export declare function getRedisClientConnected(opts: RedisConnectionOptions): Promise<unknown>;
@@ -0,0 +1,93 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getRedisClientConnected = getRedisClientConnected;
37
+ const timers_1 = require("timers");
38
+ const REDIS_CONNECT_DEADLINE_MS = 10000;
39
+ function withTimeout(promise, timeoutMs, message) {
40
+ let timeout;
41
+ return Promise.race([
42
+ promise,
43
+ new Promise((_, reject) => {
44
+ timeout = (0, timers_1.setTimeout)(() => reject(new Error(message)), timeoutMs);
45
+ }),
46
+ ]).finally(() => {
47
+ if (timeout)
48
+ (0, timers_1.clearTimeout)(timeout);
49
+ });
50
+ }
51
+ const clients = new Map();
52
+ function buildUrl(opts) {
53
+ var _a;
54
+ const proto = opts.tls ? 'rediss' : 'redis';
55
+ const authPart = opts.username
56
+ ? `${encodeURIComponent(opts.username)}:${encodeURIComponent((_a = opts.password) !== null && _a !== void 0 ? _a : '')}@`
57
+ : opts.password
58
+ ? `:${encodeURIComponent(opts.password)}@`
59
+ : '';
60
+ const dbPath = typeof opts.db === 'number' ? `/${opts.db}` : '';
61
+ return `${proto}://${authPart}${opts.host}:${opts.port}${dbPath}`;
62
+ }
63
+ async function getRedisClientConnected(opts) {
64
+ const url = buildUrl(opts);
65
+ const cached = clients.get(url);
66
+ if (cached) {
67
+ if (cached.isOpen)
68
+ return cached;
69
+ try {
70
+ await withTimeout(cached.connect(), REDIS_CONNECT_DEADLINE_MS, `Redis reconnect timeout after ${REDIS_CONNECT_DEADLINE_MS}ms`);
71
+ return cached;
72
+ }
73
+ catch {
74
+ }
75
+ }
76
+ const { createClient } = await Promise.resolve().then(() => __importStar(require('redis')));
77
+ const client = createClient({
78
+ url,
79
+ disableOfflineQueue: true,
80
+ socket: {
81
+ connectTimeout: 10000,
82
+ reconnectStrategy: (retries) => {
83
+ return Math.min(retries * 100, 3000);
84
+ },
85
+ },
86
+ });
87
+ client.on('error', () => {
88
+ });
89
+ await withTimeout(client.connect(), REDIS_CONNECT_DEADLINE_MS, `Redis connect timeout after ${REDIS_CONNECT_DEADLINE_MS}ms`);
90
+ clients.set(url, client);
91
+ return client;
92
+ }
93
+ //# sourceMappingURL=redisClient.js.map