@luka-cat-mimi/n8n-nodes-feishu 0.5.11 → 0.6.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 (75) hide show
  1. package/README.md +24 -0
  2. package/dist/credentials/FeishuNodeCredentialsApi.credentials.js +56 -9
  3. package/dist/credentials/FeishuNodeCredentialsApi.credentials.js.map +1 -1
  4. package/dist/credentials/FeishuNodeOauth2Api.credentials.js +89 -9
  5. package/dist/credentials/FeishuNodeOauth2Api.credentials.js.map +1 -1
  6. package/dist/nodes/FeishuNode/FeishuNode.node.js +11 -0
  7. package/dist/nodes/FeishuNode/FeishuNode.node.js.map +1 -1
  8. package/dist/nodes/FeishuNode/FeishuNodeTrigger.node.d.ts +5 -0
  9. package/dist/nodes/FeishuNode/FeishuNodeTrigger.node.js +200 -0
  10. package/dist/nodes/FeishuNode/FeishuNodeTrigger.node.js.map +1 -0
  11. package/dist/nodes/FeishuNode/FeishuTrigger.node.json +19 -0
  12. package/dist/nodes/FeishuNode/RespondToFeishu.node.d.ts +5 -0
  13. package/dist/nodes/FeishuNode/RespondToFeishu.node.js +129 -0
  14. package/dist/nodes/FeishuNode/RespondToFeishu.node.js.map +1 -0
  15. package/dist/nodes/FeishuNode/resource/message/MessageEphemeralSendOperate.js +1 -1
  16. package/dist/nodes/FeishuNode/resource/message/MessageEphemeralSendOperate.js.map +1 -1
  17. package/dist/nodes/FeishuNode/resource/message/MessageEventDecryptOperate.js +2 -55
  18. package/dist/nodes/FeishuNode/resource/message/MessageEventDecryptOperate.js.map +1 -1
  19. package/dist/nodes/help/type/enums.d.ts +14 -0
  20. package/dist/nodes/help/type/enums.js +18 -0
  21. package/dist/nodes/help/type/enums.js.map +1 -1
  22. package/dist/nodes/help/utils/FeishuDecryptUtils.d.ts +1 -0
  23. package/dist/nodes/help/utils/FeishuDecryptUtils.js +61 -0
  24. package/dist/nodes/help/utils/FeishuDecryptUtils.js.map +1 -0
  25. package/dist/nodes/help/utils/FeishuResponseManager.d.ts +11 -0
  26. package/dist/nodes/help/utils/FeishuResponseManager.js +51 -0
  27. package/dist/nodes/help/utils/FeishuResponseManager.js.map +1 -0
  28. package/dist/nodes/help/utils/RequestUtils.js +3 -2
  29. package/dist/nodes/help/utils/RequestUtils.js.map +1 -1
  30. package/dist/nodes/help/utils/lark-sdk/consts.d.ts +4 -0
  31. package/dist/nodes/help/utils/lark-sdk/consts.js +8 -0
  32. package/dist/nodes/help/utils/lark-sdk/consts.js.map +1 -0
  33. package/dist/nodes/help/utils/lark-sdk/data-cache.d.ts +23 -0
  34. package/dist/nodes/help/utils/lark-sdk/data-cache.js +63 -0
  35. package/dist/nodes/help/utils/lark-sdk/data-cache.js.map +1 -0
  36. package/dist/nodes/help/utils/lark-sdk/enum.d.ts +37 -0
  37. package/dist/nodes/help/utils/lark-sdk/enum.js +47 -0
  38. package/dist/nodes/help/utils/lark-sdk/enum.js.map +1 -0
  39. package/dist/nodes/help/utils/lark-sdk/handler/cache.d.ts +16 -0
  40. package/dist/nodes/help/utils/lark-sdk/handler/cache.js +37 -0
  41. package/dist/nodes/help/utils/lark-sdk/handler/cache.js.map +1 -0
  42. package/dist/nodes/help/utils/lark-sdk/handler/event-handler.d.ts +26 -0
  43. package/dist/nodes/help/utils/lark-sdk/handler/event-handler.js +92 -0
  44. package/dist/nodes/help/utils/lark-sdk/handler/event-handler.js.map +1 -0
  45. package/dist/nodes/help/utils/lark-sdk/handler/events-template.d.ts +4 -0
  46. package/dist/nodes/help/utils/lark-sdk/handler/events-template.js +3 -0
  47. package/dist/nodes/help/utils/lark-sdk/handler/events-template.js.map +1 -0
  48. package/dist/nodes/help/utils/lark-sdk/handler/request-handle.d.ts +15 -0
  49. package/dist/nodes/help/utils/lark-sdk/handler/request-handle.js +77 -0
  50. package/dist/nodes/help/utils/lark-sdk/handler/request-handle.js.map +1 -0
  51. package/dist/nodes/help/utils/lark-sdk/interfaces.d.ts +8 -0
  52. package/dist/nodes/help/utils/lark-sdk/interfaces.js +3 -0
  53. package/dist/nodes/help/utils/lark-sdk/interfaces.js.map +1 -0
  54. package/dist/nodes/help/utils/lark-sdk/proto-buf/index.d.ts +3 -0
  55. package/dist/nodes/help/utils/lark-sdk/proto-buf/index.js +13 -0
  56. package/dist/nodes/help/utils/lark-sdk/proto-buf/index.js.map +1 -0
  57. package/dist/nodes/help/utils/lark-sdk/proto-buf/pbbp2.js +718 -0
  58. package/dist/nodes/help/utils/lark-sdk/utils/aes-cipher.d.ts +5 -0
  59. package/dist/nodes/help/utils/lark-sdk/utils/aes-cipher.js +23 -0
  60. package/dist/nodes/help/utils/lark-sdk/utils/aes-cipher.js.map +1 -0
  61. package/dist/nodes/help/utils/lark-sdk/ws-client/index.d.ts +43 -0
  62. package/dist/nodes/help/utils/lark-sdk/ws-client/index.js +364 -0
  63. package/dist/nodes/help/utils/lark-sdk/ws-client/index.js.map +1 -0
  64. package/dist/nodes/help/utils/lark-sdk/ws-client/ws-config.d.ts +33 -0
  65. package/dist/nodes/help/utils/lark-sdk/ws-client/ws-config.js +53 -0
  66. package/dist/nodes/help/utils/lark-sdk/ws-client/ws-config.js.map +1 -0
  67. package/dist/nodes/help/utils/outputs.d.ts +6 -0
  68. package/dist/nodes/help/utils/outputs.js +21 -0
  69. package/dist/nodes/help/utils/outputs.js.map +1 -0
  70. package/dist/nodes/help/utils/properties.d.ts +12 -0
  71. package/dist/nodes/help/utils/properties.js +156 -0
  72. package/dist/nodes/help/utils/properties.js.map +1 -0
  73. package/dist/package.json +10 -3
  74. package/dist/tsconfig.tsbuildinfo +1 -1
  75. package/package.json +10 -3
@@ -0,0 +1,5 @@
1
+ export declare class AESCipher {
2
+ key: Buffer;
3
+ constructor(key: string);
4
+ decrypt(encrypt: string): string;
5
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AESCipher = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ class AESCipher {
9
+ constructor(key) {
10
+ const hash = crypto_1.default.createHash('sha256');
11
+ hash.update(key);
12
+ this.key = hash.digest();
13
+ }
14
+ decrypt(encrypt) {
15
+ const encryptBuffer = Buffer.from(encrypt, 'base64');
16
+ const decipher = crypto_1.default.createDecipheriv('aes-256-cbc', this.key, encryptBuffer.subarray(0, 16));
17
+ let decrypted = decipher.update(encryptBuffer.subarray(16).toString('hex'), 'hex', 'utf8');
18
+ decrypted += decipher.final('utf8');
19
+ return decrypted;
20
+ }
21
+ }
22
+ exports.AESCipher = AESCipher;
23
+ //# sourceMappingURL=aes-cipher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes-cipher.js","sourceRoot":"","sources":["../../../../../../nodes/help/utils/lark-sdk/utils/aes-cipher.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,MAAa,SAAS;IAGrB,YAAY,GAAW;QACtB,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,OAAe;QACtB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,gBAAM,CAAC,gBAAgB,CACvC,aAAa,EACb,IAAI,CAAC,GAAG,EACR,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAC7B,CAAC;QACF,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3F,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,SAAS,CAAC;IAClB,CAAC;CACD;AApBD,8BAoBC"}
@@ -0,0 +1,43 @@
1
+ import { Logger, RequestHelperFunctions } from 'n8n-workflow';
2
+ import { EventDispatcher } from '../handler/event-handler';
3
+ import { Domain } from '../enum';
4
+ interface IConstructorParams {
5
+ appId: string;
6
+ appSecret: string;
7
+ domain?: string | Domain;
8
+ logger: Logger;
9
+ helpers: RequestHelperFunctions;
10
+ autoReconnect?: boolean;
11
+ agent?: any;
12
+ }
13
+ export declare class WSClient {
14
+ private wsConfig;
15
+ private logger;
16
+ private dataCache;
17
+ private helpers;
18
+ private eventDispatcher?;
19
+ private pingInterval?;
20
+ private reconnectInterval?;
21
+ private isConnecting;
22
+ private shouldReconnect;
23
+ private reconnectInfo;
24
+ private agent?;
25
+ constructor(params: IConstructorParams);
26
+ private pullConnectConfig;
27
+ private connect;
28
+ private reConnect;
29
+ private pingLoop;
30
+ private communicate;
31
+ private handleControlData;
32
+ private handleEventData;
33
+ private sendMessage;
34
+ getReconnectInfo(): {
35
+ lastConnectTime: number;
36
+ nextConnectTime: number;
37
+ };
38
+ start(params: {
39
+ eventDispatcher: EventDispatcher;
40
+ }): Promise<void>;
41
+ stop(): Promise<void>;
42
+ }
43
+ export {};
@@ -0,0 +1,364 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.WSClient = void 0;
40
+ const ws_1 = __importDefault(require("ws"));
41
+ const protoBuf = __importStar(require("../proto-buf"));
42
+ const ws_config_1 = require("./ws-config");
43
+ const data_cache_1 = require("../data-cache");
44
+ const enum_1 = require("../enum");
45
+ const pbbp2_1 = require("../proto-buf/pbbp2");
46
+ class WSClient {
47
+ constructor(params) {
48
+ this.wsConfig = new ws_config_1.WSConfig();
49
+ this.isConnecting = false;
50
+ this.shouldReconnect = true;
51
+ this.reconnectInfo = {
52
+ lastConnectTime: 0,
53
+ nextConnectTime: 0,
54
+ };
55
+ const { appId, appSecret, logger, helpers, agent, domain, autoReconnect = true } = params;
56
+ this.logger = logger;
57
+ this.agent = agent;
58
+ this.dataCache = new data_cache_1.DataCache({ logger: this.logger });
59
+ this.helpers = helpers;
60
+ this.wsConfig.updateClient({
61
+ appId,
62
+ appSecret,
63
+ domain,
64
+ });
65
+ this.wsConfig.updateWs({
66
+ autoReconnect,
67
+ });
68
+ }
69
+ async pullConnectConfig() {
70
+ const { appId, appSecret } = this.wsConfig.getClient();
71
+ try {
72
+ const response = await this.helpers.request({
73
+ method: 'POST',
74
+ url: this.wsConfig.wsConfigUrl,
75
+ body: {
76
+ AppID: appId,
77
+ AppSecret: appSecret,
78
+ },
79
+ headers: {
80
+ locale: 'zh',
81
+ },
82
+ timeout: 15000,
83
+ });
84
+ const { code, data: { URL: connectUrl, ClientConfig }, msg, } = JSON.parse(response);
85
+ if (code !== enum_1.ErrorCode.ok) {
86
+ this.logger.error(`[ws] code: ${code}, ${code === enum_1.ErrorCode.system_busy ? msg : 'system busy'}`);
87
+ if (code === enum_1.ErrorCode.system_busy || code === enum_1.ErrorCode.internal_error) {
88
+ return false;
89
+ }
90
+ }
91
+ const parsedUrl = new URL(connectUrl);
92
+ const device_id = parsedUrl.searchParams.get('device_id');
93
+ const service_id = parsedUrl.searchParams.get('service_id');
94
+ this.wsConfig.updateWs({
95
+ connectUrl,
96
+ deviceId: device_id,
97
+ serviceId: service_id,
98
+ pingInterval: ClientConfig.PingInterval * 1000,
99
+ reconnectCount: ClientConfig.ReconnectCount,
100
+ reconnectInterval: ClientConfig.ReconnectInterval * 1000,
101
+ reconnectNonce: ClientConfig.ReconnectNonce * 1000,
102
+ });
103
+ this.logger.debug(`[ws] get connect config success, ws url: ${connectUrl}`);
104
+ return true;
105
+ }
106
+ catch (e) {
107
+ this.logger.error('[ws]', (e === null || e === void 0 ? void 0 : e.message) || 'system busy');
108
+ return false;
109
+ }
110
+ }
111
+ connect() {
112
+ const connectUrl = this.wsConfig.getWS('connectUrl');
113
+ let wsInstance;
114
+ try {
115
+ const { agent } = this;
116
+ wsInstance = new ws_1.default(connectUrl, { agent });
117
+ }
118
+ catch (e) {
119
+ this.logger.error('[ws] new WebSocket error');
120
+ }
121
+ if (!wsInstance) {
122
+ return Promise.resolve(false);
123
+ }
124
+ return new Promise((resolve) => {
125
+ wsInstance.on('open', () => {
126
+ this.logger.debug('[ws] ws connect success');
127
+ this.wsConfig.setWSInstance(wsInstance);
128
+ this.pingLoop();
129
+ resolve(true);
130
+ });
131
+ wsInstance.on('error', () => {
132
+ this.logger.error('[ws] ws connect failed');
133
+ resolve(false);
134
+ });
135
+ });
136
+ }
137
+ async reConnect(isStart = false) {
138
+ if (this.isConnecting) {
139
+ this.logger.debug('[ws] repeat connection');
140
+ return;
141
+ }
142
+ this.isConnecting = true;
143
+ const tryConnect = () => {
144
+ this.reconnectInfo.lastConnectTime = Date.now();
145
+ return this.pullConnectConfig()
146
+ .then((isSuccess) => (isSuccess ? this.connect() : Promise.resolve(false)))
147
+ .then((isSuccess) => {
148
+ if (isSuccess) {
149
+ this.communicate();
150
+ return Promise.resolve(true);
151
+ }
152
+ return Promise.resolve(false);
153
+ });
154
+ };
155
+ if (this.pingInterval) {
156
+ clearTimeout(this.pingInterval);
157
+ }
158
+ const wsInstance = this.wsConfig.getWSInstance();
159
+ if (isStart) {
160
+ if (wsInstance) {
161
+ wsInstance === null || wsInstance === void 0 ? void 0 : wsInstance.terminate();
162
+ }
163
+ if (this.reconnectInterval) {
164
+ clearTimeout(this.reconnectInterval);
165
+ }
166
+ let isSuccess = false;
167
+ try {
168
+ isSuccess = await tryConnect();
169
+ }
170
+ finally {
171
+ this.isConnecting = false;
172
+ }
173
+ if (!isSuccess) {
174
+ this.logger.error('[ws] connect failed');
175
+ await this.reConnect();
176
+ }
177
+ this.logger.info('[ws] ws client ready');
178
+ return;
179
+ }
180
+ const { autoReconnect, reconnectNonce, reconnectCount, reconnectInterval } = this.wsConfig.getWS();
181
+ if (!autoReconnect) {
182
+ return;
183
+ }
184
+ this.logger.info('[ws] reconnect');
185
+ if (wsInstance) {
186
+ wsInstance === null || wsInstance === void 0 ? void 0 : wsInstance.terminate();
187
+ }
188
+ this.wsConfig.setWSInstance(null);
189
+ const reconnectNonceTime = reconnectNonce ? reconnectNonce * Math.random() : 0;
190
+ this.reconnectInterval = setTimeout(async () => {
191
+ (async function loopReConnect(count) {
192
+ count++;
193
+ const isSuccess = await tryConnect();
194
+ if (isSuccess) {
195
+ this.logger.debug('[ws] reconnect success');
196
+ this.isConnecting = false;
197
+ return;
198
+ }
199
+ this.logger.info(`[ws] unable to connect to the server after trying ${count} times`);
200
+ if (reconnectCount >= 0 && count >= reconnectCount) {
201
+ this.isConnecting = false;
202
+ return;
203
+ }
204
+ this.reconnectInterval = setTimeout(() => {
205
+ loopReConnect.bind(this)(count);
206
+ }, reconnectInterval);
207
+ this.reconnectInfo.nextConnectTime = Date.now() + reconnectInterval;
208
+ }).bind(this)(0);
209
+ }, reconnectNonceTime);
210
+ this.reconnectInfo.nextConnectTime = Date.now() + reconnectNonceTime;
211
+ }
212
+ pingLoop() {
213
+ const { serviceId, pingInterval } = this.wsConfig.getWS();
214
+ const wsInstance = this.wsConfig.getWSInstance();
215
+ if ((wsInstance === null || wsInstance === void 0 ? void 0 : wsInstance.readyState) === ws_1.default.OPEN) {
216
+ const frame = {
217
+ headers: [
218
+ {
219
+ key: enum_1.HeaderKey.type,
220
+ value: enum_1.MessageType.ping,
221
+ },
222
+ ],
223
+ service: Number(serviceId),
224
+ method: enum_1.FrameType.control,
225
+ SeqID: 0,
226
+ LogID: 0,
227
+ };
228
+ this.sendMessage(frame);
229
+ this.logger.info('[ws] ping success');
230
+ }
231
+ this.pingInterval = setTimeout(this.pingLoop.bind(this), pingInterval);
232
+ }
233
+ communicate() {
234
+ const wsInstance = this.wsConfig.getWSInstance();
235
+ wsInstance === null || wsInstance === void 0 ? void 0 : wsInstance.on('message', async (buffer) => {
236
+ const data = protoBuf.decode(buffer);
237
+ const { method } = data;
238
+ if (method === enum_1.FrameType.control) {
239
+ await this.handleControlData(data);
240
+ }
241
+ if (method === enum_1.FrameType.data) {
242
+ await this.handleEventData(data);
243
+ }
244
+ });
245
+ wsInstance === null || wsInstance === void 0 ? void 0 : wsInstance.on('error', (e) => {
246
+ this.logger.error('[ws] ws error');
247
+ });
248
+ wsInstance === null || wsInstance === void 0 ? void 0 : wsInstance.on('close', () => {
249
+ if (this.shouldReconnect) {
250
+ this.logger.info('[ws] client closed unexpectedly, try to reconnect');
251
+ this.reConnect();
252
+ }
253
+ else {
254
+ this.logger.info('[ws] client closed');
255
+ }
256
+ });
257
+ }
258
+ async handleControlData(data) {
259
+ var _a;
260
+ const type = (_a = data.headers.find((item) => item.key === enum_1.HeaderKey.type)) === null || _a === void 0 ? void 0 : _a.value;
261
+ const payload = data.payload;
262
+ if (type === enum_1.MessageType.ping) {
263
+ return;
264
+ }
265
+ if (type === enum_1.MessageType.pong && payload) {
266
+ this.logger.info('[ws] receive pong');
267
+ const dataString = new TextDecoder('utf-8').decode(payload);
268
+ const { PingInterval, ReconnectCount, ReconnectInterval, ReconnectNonce } = JSON.parse(dataString);
269
+ this.wsConfig.updateWs({
270
+ pingInterval: PingInterval * 1000,
271
+ reconnectCount: ReconnectCount,
272
+ reconnectInterval: ReconnectInterval * 1000,
273
+ reconnectNonce: ReconnectNonce * 1000,
274
+ });
275
+ this.logger.info('[ws] update wsConfig with pong data');
276
+ }
277
+ }
278
+ async handleEventData(data) {
279
+ var _a;
280
+ const headers = data.headers.reduce((acc, cur) => {
281
+ acc[cur.key] = cur.value;
282
+ return acc;
283
+ }, {});
284
+ const { message_id, sum, seq, type, trace_id } = headers;
285
+ const payload = data.payload;
286
+ if (type !== enum_1.MessageType.event) {
287
+ return;
288
+ }
289
+ const mergedData = this.dataCache.mergeData({
290
+ message_id,
291
+ sum: Number(sum),
292
+ seq: Number(seq),
293
+ trace_id,
294
+ data: payload,
295
+ });
296
+ if (!mergedData) {
297
+ return;
298
+ }
299
+ this.logger.debug(`[ws] receive message, message_type: ${type}; message_id: ${message_id}; trace_id: ${trace_id}; data: ${mergedData.data}`);
300
+ const respPayload = {
301
+ code: enum_1.HttpStatusCode.ok,
302
+ };
303
+ const startTime = Date.now();
304
+ try {
305
+ const result = await ((_a = this.eventDispatcher) === null || _a === void 0 ? void 0 : _a.invoke(mergedData));
306
+ if (result) {
307
+ respPayload.data = Buffer.from(JSON.stringify(result)).toString('base64');
308
+ }
309
+ }
310
+ catch (error) {
311
+ respPayload.code = enum_1.HttpStatusCode.internal_server_error;
312
+ const errorMessage = error instanceof Error ? error.message : String(error);
313
+ this.logger.error(`[ws] invoke event failed, message_type: ${type}; message_id: ${message_id}; trace_id: ${trace_id}; error: ${errorMessage}`);
314
+ }
315
+ const endTime = Date.now();
316
+ this.sendMessage({
317
+ ...data,
318
+ headers: [...data.headers, { key: enum_1.HeaderKey.biz_rt, value: String(endTime - startTime) }],
319
+ payload: new TextEncoder().encode(JSON.stringify(respPayload)),
320
+ });
321
+ }
322
+ sendMessage(data) {
323
+ var _a;
324
+ const wsInstance = this.wsConfig.getWSInstance();
325
+ if ((wsInstance === null || wsInstance === void 0 ? void 0 : wsInstance.readyState) === ws_1.default.OPEN) {
326
+ const resp = pbbp2_1.pbbp2.Frame.encode(data).finish();
327
+ (_a = this.wsConfig.getWSInstance()) === null || _a === void 0 ? void 0 : _a.send(resp, (err) => {
328
+ if (err) {
329
+ this.logger.error('[ws] send data failed');
330
+ }
331
+ });
332
+ }
333
+ }
334
+ getReconnectInfo() {
335
+ return this.reconnectInfo;
336
+ }
337
+ async start(params) {
338
+ const { eventDispatcher } = params;
339
+ if (!eventDispatcher) {
340
+ this.logger.error('[ws] client need to start with a eventDispatcher');
341
+ return;
342
+ }
343
+ this.eventDispatcher = eventDispatcher;
344
+ this.reConnect(true);
345
+ }
346
+ async stop() {
347
+ this.shouldReconnect = false;
348
+ const wsInstance = this.wsConfig.getWSInstance();
349
+ if (wsInstance) {
350
+ wsInstance.terminate();
351
+ }
352
+ if (this.reconnectInterval) {
353
+ clearTimeout(this.reconnectInterval);
354
+ }
355
+ if (this.pingInterval) {
356
+ clearTimeout(this.pingInterval);
357
+ }
358
+ this.dataCache.clear();
359
+ this.eventDispatcher = undefined;
360
+ this.isConnecting = false;
361
+ }
362
+ }
363
+ exports.WSClient = WSClient;
364
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/help/utils/lark-sdk/ws-client/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import WebSocket from 'ws';
2
+ import { Domain } from '../enum';
3
+ interface IClientConfig {
4
+ appId: string;
5
+ appSecret: string;
6
+ domain: string | Domain;
7
+ }
8
+ interface IWSConfig {
9
+ connectUrl: string;
10
+ pingInterval: number;
11
+ reconnectCount: number;
12
+ reconnectInterval: number;
13
+ reconnectNonce: number;
14
+ deviceId: string;
15
+ serviceId: string;
16
+ autoReconnect: boolean;
17
+ }
18
+ export declare class WSConfig {
19
+ private client;
20
+ private ws;
21
+ private wsInstance;
22
+ constructor();
23
+ updateClient(clientConfig: Partial<IClientConfig>): void;
24
+ updateWs(WSConfig: Partial<IWSConfig>): void;
25
+ getClient(): IClientConfig;
26
+ getClient<T extends keyof IClientConfig>(key: T): IClientConfig[T];
27
+ getWS(): IWSConfig;
28
+ getWS<T extends keyof IWSConfig>(key: T): IWSConfig[T];
29
+ get wsConfigUrl(): string;
30
+ setWSInstance(wsInstance: WebSocket | null): void;
31
+ getWSInstance(): WebSocket | null;
32
+ }
33
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WSConfig = void 0;
4
+ const enum_1 = require("../enum");
5
+ class WSConfig {
6
+ constructor() {
7
+ this.client = {
8
+ appId: '',
9
+ appSecret: '',
10
+ domain: enum_1.Domain.Feishu,
11
+ };
12
+ this.ws = {
13
+ connectUrl: '',
14
+ pingInterval: 120 * 1000,
15
+ reconnectCount: -1,
16
+ reconnectInterval: 120 * 1000,
17
+ reconnectNonce: 30 * 1000,
18
+ deviceId: '',
19
+ serviceId: '',
20
+ autoReconnect: true,
21
+ };
22
+ this.wsInstance = null;
23
+ }
24
+ updateClient(clientConfig) {
25
+ Object.assign(this.client, clientConfig);
26
+ }
27
+ updateWs(WSConfig) {
28
+ Object.assign(this.ws, WSConfig);
29
+ }
30
+ getClient(key) {
31
+ if (key === undefined) {
32
+ return this.client;
33
+ }
34
+ return this.client[key];
35
+ }
36
+ getWS(key) {
37
+ if (key === undefined) {
38
+ return this.ws;
39
+ }
40
+ return this.ws[key];
41
+ }
42
+ get wsConfigUrl() {
43
+ return `${this.getClient('domain')}/callback/ws/endpoint`;
44
+ }
45
+ setWSInstance(wsInstance) {
46
+ this.wsInstance = wsInstance;
47
+ }
48
+ getWSInstance() {
49
+ return this.wsInstance;
50
+ }
51
+ }
52
+ exports.WSConfig = WSConfig;
53
+ //# sourceMappingURL=ws-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-config.js","sourceRoot":"","sources":["../../../../../../nodes/help/utils/lark-sdk/ws-client/ws-config.ts"],"names":[],"mappings":";;;AACA,kCAAiC;AAmBjC,MAAa,QAAQ;IAuBpB;QAtBQ,WAAM,GAAkB;YAC/B,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,aAAM,CAAC,MAAM;SACrB,CAAC;QAEM,OAAE,GAAc;YACvB,UAAU,EAAE,EAAE;YAEd,YAAY,EAAE,GAAG,GAAG,IAAI;YACxB,cAAc,EAAE,CAAC,CAAC;YAClB,iBAAiB,EAAE,GAAG,GAAG,IAAI;YAC7B,cAAc,EAAE,EAAE,GAAG,IAAI;YAEzB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YAEb,aAAa,EAAE,IAAI;SACnB,CAAC;QAEM,eAAU,GAAqB,IAAI,CAAC;IAE7B,CAAC;IAEhB,YAAY,CAAC,YAAoC;QAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,QAA4B;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAID,SAAS,CAAgC,GAAO;QAC/C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAID,KAAK,CAA4B,GAAO;QACvC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,EAAE,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,WAAW;QACd,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC3D,CAAC;IAED,aAAa,CAAC,UAA4B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;CACD;AA9DD,4BA8DC"}
@@ -0,0 +1,6 @@
1
+ export declare const configuredOutputs: (version: number, parameters: {
2
+ enableResponseOutput?: boolean;
3
+ }) => string[] | {
4
+ type: string;
5
+ displayName: string;
6
+ }[];
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configuredOutputs = void 0;
4
+ const configuredOutputs = (version, parameters) => {
5
+ const multipleOutputs = version >= 1 && parameters.enableResponseOutput;
6
+ if (multipleOutputs) {
7
+ return [
8
+ {
9
+ type: 'main',
10
+ displayName: 'Input Data',
11
+ },
12
+ {
13
+ type: 'main',
14
+ displayName: 'Response',
15
+ },
16
+ ];
17
+ }
18
+ return ['main'];
19
+ };
20
+ exports.configuredOutputs = configuredOutputs;
21
+ //# sourceMappingURL=outputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../../../nodes/help/utils/outputs.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAChC,OAAe,EACf,UAA8C,EAC7C,EAAE;IACH,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,IAAI,UAAU,CAAC,oBAAoB,CAAC;IACxE,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO;YACN;gBACC,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,YAAY;aACzB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,UAAU;aACvB;SACD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B"}
@@ -0,0 +1,12 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare enum TriggerEventType {
3
+ ReceiveMessage = "im.message.receive_v1"
4
+ }
5
+ export declare enum FileType {
6
+ Bitable = "bitable",
7
+ Docx = "docx",
8
+ Folder = "folder",
9
+ File = "file",
10
+ Slides = "slides"
11
+ }
12
+ export declare const triggerEventProperty: INodeProperties;