@cryozerolabs/n8n-nodes-dingtalk 0.3.4 → 0.4.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 (25) hide show
  1. package/README.md +14 -2
  2. package/dist/credentials/DingtalkApi.credentials.js +9 -10
  3. package/dist/credentials/DingtalkApi.credentials.js.map +1 -1
  4. package/dist/docs/images/stream-push-guide.png +0 -0
  5. package/dist/nodes/DingtalkNode/DingtalkNodeTrigger.node.d.ts +5 -0
  6. package/dist/nodes/DingtalkNode/DingtalkNodeTrigger.node.js +65 -0
  7. package/dist/nodes/DingtalkNode/DingtalkNodeTrigger.node.js.map +1 -0
  8. package/dist/nodes/DingtalkNode/DingtalkNodeTrigger.node.json +21 -0
  9. package/dist/nodes/DingtalkNode/resources/todo/tasksDelete.d.ts +3 -0
  10. package/dist/nodes/DingtalkNode/resources/todo/tasksDelete.js +95 -0
  11. package/dist/nodes/DingtalkNode/resources/todo/tasksDelete.js.map +1 -0
  12. package/dist/nodes/DingtalkNode/resources/user/getByMobile.d.ts +3 -0
  13. package/dist/nodes/DingtalkNode/resources/user/getByMobile.js +39 -0
  14. package/dist/nodes/DingtalkNode/resources/user/getByMobile.js.map +1 -0
  15. package/dist/nodes/DingtalkNode/resources/user/index.js +3 -1
  16. package/dist/nodes/DingtalkNode/resources/user/index.js.map +1 -1
  17. package/dist/nodes/DingtalkNode/resources/user/search.d.ts +3 -0
  18. package/dist/nodes/DingtalkNode/resources/user/search.js +71 -0
  19. package/dist/nodes/DingtalkNode/resources/user/search.js.map +1 -0
  20. package/dist/nodes/DingtalkNode/triggers/streamPushTrigger.d.ts +3 -0
  21. package/dist/nodes/DingtalkNode/triggers/streamPushTrigger.js +307 -0
  22. package/dist/nodes/DingtalkNode/triggers/streamPushTrigger.js.map +1 -0
  23. package/dist/package.json +3 -2
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/package.json +3 -2
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.streamPushTriggerOptions = void 0;
4
+ exports.runStreamPushTrigger = runStreamPushTrigger;
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ const undici_1 = require("undici");
7
+ const GATEWAY_URL = 'https://api.dingtalk.com/v1.0/gateway/connections/open';
8
+ const USER_AGENT = 'n8n-nodes-dingtalk-trigger';
9
+ const HEARTBEAT_TIMEOUT_MS = 60000;
10
+ const RECONNECT_DELAY_MS = 5000;
11
+ function safeParse(payload) {
12
+ if (typeof payload !== 'string') {
13
+ return payload !== null && payload !== void 0 ? payload : null;
14
+ }
15
+ const trimmed = payload.trim();
16
+ if (!trimmed) {
17
+ return payload;
18
+ }
19
+ try {
20
+ return JSON.parse(trimmed);
21
+ }
22
+ catch {
23
+ return payload;
24
+ }
25
+ }
26
+ exports.streamPushTriggerOptions = [];
27
+ async function runStreamPushTrigger() {
28
+ const credentials = (await this.getCredentials('dingtalkApi'));
29
+ if (!(credentials === null || credentials === void 0 ? void 0 : credentials.clientId) || !(credentials === null || credentials === void 0 ? void 0 : credentials.clientSecret)) {
30
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Missing DingTalk credentials. Please configure Client ID and Client Secret.');
31
+ }
32
+ const keepAlive = true;
33
+ const subscriptions = [{ type: 'EVENT', topic: '*' }];
34
+ let socket = null;
35
+ let shouldStayConnected = true;
36
+ let reconnectTimer = null;
37
+ let heartbeatTimer = null;
38
+ let lastHeartbeat = Date.now();
39
+ let manualResolve = null;
40
+ let manualTimeout = null;
41
+ const resolveManualIfPending = () => {
42
+ if (manualTimeout) {
43
+ clearTimeout(manualTimeout);
44
+ manualTimeout = null;
45
+ }
46
+ if (manualResolve) {
47
+ manualResolve();
48
+ manualResolve = null;
49
+ }
50
+ };
51
+ const sendSocketMessage = (payload) => {
52
+ if (!socket || socket.readyState !== undici_1.WebSocket.OPEN)
53
+ return;
54
+ socket.send(JSON.stringify(payload));
55
+ };
56
+ const sendEventAck = (headers, body) => {
57
+ if (!headers.messageId)
58
+ return;
59
+ sendSocketMessage({
60
+ code: 200,
61
+ headers: {
62
+ contentType: 'application/json',
63
+ messageId: headers.messageId,
64
+ },
65
+ message: 'OK',
66
+ data: JSON.stringify(body),
67
+ });
68
+ };
69
+ const updateHeartbeat = () => {
70
+ lastHeartbeat = Date.now();
71
+ };
72
+ const stopHeartbeatMonitor = () => {
73
+ if (heartbeatTimer) {
74
+ clearInterval(heartbeatTimer);
75
+ heartbeatTimer = null;
76
+ }
77
+ };
78
+ const startHeartbeatMonitor = () => {
79
+ stopHeartbeatMonitor();
80
+ if (!keepAlive)
81
+ return;
82
+ heartbeatTimer = setInterval(() => {
83
+ if (!socket || socket.readyState !== undici_1.WebSocket.OPEN)
84
+ return;
85
+ const staleFor = Date.now() - lastHeartbeat;
86
+ if (staleFor > HEARTBEAT_TIMEOUT_MS) {
87
+ socket.close();
88
+ }
89
+ }, HEARTBEAT_TIMEOUT_MS / 2);
90
+ };
91
+ const emitMessage = (message) => {
92
+ const parsedData = safeParse(message.data);
93
+ const payload = {
94
+ type: message.type,
95
+ specVersion: message.specVersion,
96
+ headers: message.headers,
97
+ data: parsedData,
98
+ rawData: message.data,
99
+ receivedAt: new Date().toISOString(),
100
+ };
101
+ this.emit([this.helpers.returnJsonArray([payload])]);
102
+ resolveManualIfPending();
103
+ };
104
+ const handleSystemMessage = (message) => {
105
+ const topic = message.headers.topic.toUpperCase();
106
+ updateHeartbeat();
107
+ if (topic === 'PING') {
108
+ sendSocketMessage({
109
+ code: 200,
110
+ headers: { ...message.headers },
111
+ message: 'OK',
112
+ data: message.data,
113
+ });
114
+ }
115
+ };
116
+ const handleEventMessage = (message) => {
117
+ emitMessage(message);
118
+ sendEventAck(message.headers, { status: 'SUCCESS' });
119
+ };
120
+ const handleDownstream = (payload) => {
121
+ var _a, _b, _c, _d, _e, _f;
122
+ let message;
123
+ try {
124
+ message = JSON.parse(payload);
125
+ }
126
+ catch (error) {
127
+ (_b = (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, 'Failed to parse DingTalk stream payload', {
128
+ error: error instanceof Error ? error.message : String(error),
129
+ payload,
130
+ });
131
+ return;
132
+ }
133
+ updateHeartbeat();
134
+ switch (message.type) {
135
+ case 'SYSTEM':
136
+ handleSystemMessage(message);
137
+ break;
138
+ case 'EVENT':
139
+ try {
140
+ handleEventMessage(message);
141
+ }
142
+ catch (error) {
143
+ const errMessage = error instanceof Error ? error.message : 'Failed to forward DingTalk event payload.';
144
+ (_d = (_c = this.logger) === null || _c === void 0 ? void 0 : _c.error) === null || _d === void 0 ? void 0 : _d.call(_c, 'DingTalk stream event handling failed', {
145
+ error: errMessage,
146
+ topic: message.headers.topic,
147
+ });
148
+ sendEventAck(message.headers, {
149
+ status: 'LATER',
150
+ message: errMessage,
151
+ });
152
+ }
153
+ break;
154
+ default:
155
+ (_f = (_e = this.logger) === null || _e === void 0 ? void 0 : _e.warn) === null || _f === void 0 ? void 0 : _f.call(_e, 'Unknown DingTalk stream message type', {
156
+ type: message.type,
157
+ });
158
+ }
159
+ };
160
+ const scheduleReconnect = () => {
161
+ if (!shouldStayConnected)
162
+ return;
163
+ if (reconnectTimer)
164
+ return;
165
+ reconnectTimer = setTimeout(() => {
166
+ reconnectTimer = null;
167
+ void connect();
168
+ }, RECONNECT_DELAY_MS);
169
+ };
170
+ const connect = async () => {
171
+ var _a, _b;
172
+ if (!shouldStayConnected)
173
+ return;
174
+ try {
175
+ const gatewayResponse = (await this.helpers.httpRequest({
176
+ method: 'POST',
177
+ url: GATEWAY_URL,
178
+ body: {
179
+ clientId: credentials.clientId,
180
+ clientSecret: credentials.clientSecret,
181
+ ua: USER_AGENT,
182
+ subscriptions,
183
+ },
184
+ json: true,
185
+ headers: {
186
+ Accept: 'application/json',
187
+ },
188
+ }));
189
+ if (!(gatewayResponse === null || gatewayResponse === void 0 ? void 0 : gatewayResponse.endpoint) || !gatewayResponse.ticket) {
190
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Did not receive stream endpoint information.');
191
+ }
192
+ const url = `${gatewayResponse.endpoint}?ticket=${gatewayResponse.ticket}`;
193
+ const ws = new undici_1.WebSocket(url);
194
+ await new Promise((resolve, reject) => {
195
+ let settled = false;
196
+ const cleanup = () => {
197
+ ws.removeEventListener('open', handleOpen);
198
+ ws.removeEventListener('error', handleError);
199
+ ws.removeEventListener('close', handleClose);
200
+ };
201
+ const handleOpen = () => {
202
+ if (settled)
203
+ return;
204
+ settled = true;
205
+ cleanup();
206
+ resolve();
207
+ };
208
+ const handleError = (event) => {
209
+ if (settled)
210
+ return;
211
+ settled = true;
212
+ cleanup();
213
+ const errorObj = typeof event === 'object' && event !== null && 'error' in event
214
+ ? event.error
215
+ : event;
216
+ reject(errorObj instanceof Error
217
+ ? errorObj
218
+ : new Error(errorObj
219
+ ? `WebSocket connection error: ${String(errorObj)}`
220
+ : 'WebSocket connection error'));
221
+ };
222
+ const handleClose = () => {
223
+ if (settled)
224
+ return;
225
+ settled = true;
226
+ cleanup();
227
+ reject(new Error('WebSocket closed before opening'));
228
+ };
229
+ ws.addEventListener('open', handleOpen);
230
+ ws.addEventListener('error', handleError);
231
+ ws.addEventListener('close', handleClose);
232
+ });
233
+ if (socket && socket.readyState === undici_1.WebSocket.OPEN) {
234
+ socket.close();
235
+ }
236
+ socket = ws;
237
+ updateHeartbeat();
238
+ startHeartbeatMonitor();
239
+ ws.addEventListener('message', (event) => {
240
+ if (typeof event.data === 'string') {
241
+ handleDownstream(event.data);
242
+ }
243
+ else if (event.data instanceof ArrayBuffer) {
244
+ handleDownstream(Buffer.from(event.data).toString('utf8'));
245
+ }
246
+ else {
247
+ handleDownstream(String(event.data));
248
+ }
249
+ });
250
+ ws.addEventListener('close', () => {
251
+ stopHeartbeatMonitor();
252
+ socket = null;
253
+ if (shouldStayConnected) {
254
+ scheduleReconnect();
255
+ }
256
+ });
257
+ ws.addEventListener('error', (event) => {
258
+ var _a, _b, _c, _d, _e;
259
+ const err = (_a = event === null || event === void 0 ? void 0 : event.error) !== null && _a !== void 0 ? _a : event;
260
+ if (err instanceof Error || typeof err === 'string') {
261
+ (_c = (_b = this.logger) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.call(_b, 'DingTalk stream socket error', {
262
+ error: err instanceof Error ? err.message : String(err),
263
+ });
264
+ }
265
+ else {
266
+ (_e = (_d = this.logger) === null || _d === void 0 ? void 0 : _d.error) === null || _e === void 0 ? void 0 : _e.call(_d, 'DingTalk stream socket error');
267
+ }
268
+ });
269
+ }
270
+ catch (error) {
271
+ const errMessage = error instanceof Error ? error.message : 'Unknown error opening DingTalk stream.';
272
+ (_b = (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, 'Failed to connect DingTalk stream websocket', { error: errMessage });
273
+ scheduleReconnect();
274
+ }
275
+ };
276
+ shouldStayConnected = true;
277
+ await connect();
278
+ return {
279
+ manualTriggerFunction: async () => {
280
+ await new Promise((resolve) => {
281
+ manualResolve = resolve;
282
+ manualTimeout = setTimeout(() => {
283
+ manualResolve = null;
284
+ manualTimeout = null;
285
+ resolve();
286
+ }, 60000);
287
+ });
288
+ },
289
+ closeFunction: async () => {
290
+ shouldStayConnected = false;
291
+ if (reconnectTimer) {
292
+ clearTimeout(reconnectTimer);
293
+ reconnectTimer = null;
294
+ }
295
+ if (heartbeatTimer) {
296
+ clearInterval(heartbeatTimer);
297
+ heartbeatTimer = null;
298
+ }
299
+ resolveManualIfPending();
300
+ if (socket && socket.readyState === undici_1.WebSocket.OPEN) {
301
+ socket.close();
302
+ }
303
+ socket = null;
304
+ },
305
+ };
306
+ }
307
+ //# sourceMappingURL=streamPushTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamPushTrigger.js","sourceRoot":"","sources":["../../../../nodes/DingtalkNode/triggers/streamPushTrigger.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryozerolabs/n8n-nodes-dingtalk",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "Dingtalk(钉钉) nodes for n8n: Notable(AI表格)、User API、auto token refresh",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -42,7 +42,8 @@
42
42
  "dist/credentials/DingtalkApi.credentials.js"
43
43
  ],
44
44
  "nodes": [
45
- "dist/nodes/DingtalkNode/DingtalkNode.node.js"
45
+ "dist/nodes/DingtalkNode/DingtalkNode.node.js",
46
+ "dist/nodes/DingtalkNode/DingtalkNodeTrigger.node.js"
46
47
  ]
47
48
  },
48
49
  "devDependencies": {