n8n-nodes-wecom 0.1.6 → 0.1.8
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.
- package/README.md +40 -16
- package/dist/credentials/WeComReceiveApi.credentials.d.ts +13 -0
- package/dist/credentials/WeComReceiveApi.credentials.js +64 -0
- package/dist/credentials/WeComReceiveApi.credentials.js.map +1 -0
- package/dist/nodes/WeCom/WeCom.node.js +20 -9
- package/dist/nodes/WeCom/WeCom.node.js.map +1 -1
- package/dist/nodes/WeCom/resources/appChat/createAppChat.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/createAppChat.js +55 -0
- package/dist/nodes/WeCom/resources/appChat/createAppChat.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/execute.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/execute.js +180 -0
- package/dist/nodes/WeCom/resources/appChat/execute.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/getAppChat.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/getAppChat.js +22 -0
- package/dist/nodes/WeCom/resources/appChat/getAppChat.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/index.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/index.js +85 -0
- package/dist/nodes/WeCom/resources/appChat/index.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/sendFile.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/sendFile.js +84 -0
- package/dist/nodes/WeCom/resources/appChat/sendFile.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/sendImage.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/sendImage.js +84 -0
- package/dist/nodes/WeCom/resources/appChat/sendImage.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/sendMarkdown.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/sendMarkdown.js +37 -0
- package/dist/nodes/WeCom/resources/appChat/sendMarkdown.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/sendNews.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/sendNews.js +79 -0
- package/dist/nodes/WeCom/resources/appChat/sendNews.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/sendText.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/sendText.js +48 -0
- package/dist/nodes/WeCom/resources/appChat/sendText.js.map +1 -0
- package/dist/nodes/WeCom/resources/appChat/updateAppChat.d.ts +2 -0
- package/dist/nodes/WeCom/resources/appChat/updateAppChat.js +111 -0
- package/dist/nodes/WeCom/resources/appChat/updateAppChat.js.map +1 -0
- package/dist/nodes/WeCom/resources/message/index.js +7 -7
- package/dist/nodes/WeCom/resources/message/index.js.map +1 -1
- package/dist/nodes/WeCom/shared/crypto.d.ts +12 -0
- package/dist/nodes/WeCom/shared/crypto.js +91 -0
- package/dist/nodes/WeCom/shared/crypto.js.map +1 -0
- package/dist/nodes/WeComTrigger/WeComTrigger.node.d.ts +12 -0
- package/dist/nodes/WeComTrigger/WeComTrigger.node.js +180 -0
- package/dist/nodes/WeComTrigger/WeComTrigger.node.js.map +1 -0
- package/dist/nodes/WeComTrigger/WeComTrigger.node.json +18 -0
- package/dist/package.json +5 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/appChat/index.ts"],"names":[],"mappings":";;;AACA,6CAAqD;AACrD,mDAA2D;AAC3D,mDAA2D;AAC3D,yCAAiD;AACjD,2CAAmD;AACnD,yCAAiD;AACjD,iDAAyD;AACzD,yCAAiD;AAEjD,MAAM,kBAAkB,GAAG;IAC1B,QAAQ,EAAE,CAAC,SAAS,CAAC;CACrB,CAAC;AAEW,QAAA,kBAAkB,GAAsB;IACpD;QACC,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE,kBAAkB;SACxB;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,qBAAqB;aAClC;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,YAAY;aACzB;YACD;gBACC,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,gBAAgB;gBACxB,WAAW,EAAE,uBAAuB;aACpC;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,aAAa;aAC1B;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,aAAa;aAC1B;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,aAAa;aAC1B;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,aAAa;aAC1B;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,kBAAkB;aAC/B;SACD;QACD,OAAO,EAAE,YAAY;KACrB;IACD,GAAG,kCAAqB;IACxB,GAAG,wCAAwB;IAC3B,GAAG,wCAAwB;IAC3B,GAAG,8BAAmB;IACtB,GAAG,gCAAoB;IACvB,GAAG,8BAAmB;IACtB,GAAG,sCAAuB;IAC1B,GAAG,8BAAmB;CACtB,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendFileDescription = void 0;
|
|
4
|
+
const showOnlyForSendFile = {
|
|
5
|
+
resource: ['appChat'],
|
|
6
|
+
operation: ['sendFile'],
|
|
7
|
+
};
|
|
8
|
+
exports.sendFileDescription = [
|
|
9
|
+
{
|
|
10
|
+
displayName: '群聊ID',
|
|
11
|
+
name: 'chatid',
|
|
12
|
+
type: 'string',
|
|
13
|
+
displayOptions: {
|
|
14
|
+
show: showOnlyForSendFile,
|
|
15
|
+
},
|
|
16
|
+
default: '',
|
|
17
|
+
required: true,
|
|
18
|
+
description: '群聊的唯一标识',
|
|
19
|
+
hint: '群聊会话的 chatid',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
displayName: '文件来源',
|
|
23
|
+
name: 'fileSource',
|
|
24
|
+
type: 'options',
|
|
25
|
+
displayOptions: {
|
|
26
|
+
show: showOnlyForSendFile,
|
|
27
|
+
},
|
|
28
|
+
options: [
|
|
29
|
+
{
|
|
30
|
+
name: '使用 Media ID',
|
|
31
|
+
value: 'mediaId',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '上传二进制文件',
|
|
35
|
+
value: 'binary',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
default: 'binary',
|
|
39
|
+
description: '选择文件来源方式',
|
|
40
|
+
hint: '可以直接提供 media_id 或上传二进制文件',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
displayName: 'Media ID',
|
|
44
|
+
name: 'media_id',
|
|
45
|
+
type: 'string',
|
|
46
|
+
displayOptions: {
|
|
47
|
+
show: {
|
|
48
|
+
...showOnlyForSendFile,
|
|
49
|
+
fileSource: ['mediaId'],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
default: '',
|
|
53
|
+
required: true,
|
|
54
|
+
description: '文件的 media_id',
|
|
55
|
+
hint: '通过素材管理接口上传文件获得',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
displayName: '二进制属性',
|
|
59
|
+
name: 'binaryPropertyName',
|
|
60
|
+
type: 'string',
|
|
61
|
+
displayOptions: {
|
|
62
|
+
show: {
|
|
63
|
+
...showOnlyForSendFile,
|
|
64
|
+
fileSource: ['binary'],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
default: 'data',
|
|
68
|
+
required: true,
|
|
69
|
+
description: '包含文件数据的二进制属性名',
|
|
70
|
+
hint: '存储文件的二进制属性',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
displayName: '保密消息',
|
|
74
|
+
name: 'safe',
|
|
75
|
+
type: 'boolean',
|
|
76
|
+
displayOptions: {
|
|
77
|
+
show: showOnlyForSendFile,
|
|
78
|
+
},
|
|
79
|
+
default: false,
|
|
80
|
+
description: 'Whether the message is confidential',
|
|
81
|
+
hint: '保密消息会话中的消息在发送后不会显示在聊天记录中',
|
|
82
|
+
},
|
|
83
|
+
];
|
|
84
|
+
//# sourceMappingURL=sendFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendFile.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/appChat/sendFile.ts"],"names":[],"mappings":";;;AAEA,MAAM,mBAAmB,GAAG;IAC3B,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,UAAU,CAAC;CACvB,CAAC;AAEW,QAAA,mBAAmB,GAAsB;IACrD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,cAAc;KACpB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,SAAS;aAChB;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,QAAQ;aACf;SACD;QACD,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,0BAA0B;KAChC;IACD;QACC,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,mBAAmB;gBACtB,UAAU,EAAE,CAAC,SAAS,CAAC;aACvB;SACD;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,gBAAgB;KACtB;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,mBAAmB;gBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;aACtB;SACD;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,YAAY;KAClB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,0BAA0B;KAChC;CACD,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendImageDescription = void 0;
|
|
4
|
+
const showOnlyForSendImage = {
|
|
5
|
+
resource: ['appChat'],
|
|
6
|
+
operation: ['sendImage'],
|
|
7
|
+
};
|
|
8
|
+
exports.sendImageDescription = [
|
|
9
|
+
{
|
|
10
|
+
displayName: '群聊ID',
|
|
11
|
+
name: 'chatid',
|
|
12
|
+
type: 'string',
|
|
13
|
+
displayOptions: {
|
|
14
|
+
show: showOnlyForSendImage,
|
|
15
|
+
},
|
|
16
|
+
default: '',
|
|
17
|
+
required: true,
|
|
18
|
+
description: '群聊的唯一标识',
|
|
19
|
+
hint: '群聊会话的 chatid',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
displayName: '图片来源',
|
|
23
|
+
name: 'imageSource',
|
|
24
|
+
type: 'options',
|
|
25
|
+
displayOptions: {
|
|
26
|
+
show: showOnlyForSendImage,
|
|
27
|
+
},
|
|
28
|
+
options: [
|
|
29
|
+
{
|
|
30
|
+
name: '使用 Media ID',
|
|
31
|
+
value: 'mediaId',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '上传二进制文件',
|
|
35
|
+
value: 'binary',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
default: 'binary',
|
|
39
|
+
description: '选择图片来源方式',
|
|
40
|
+
hint: '可以直接提供 media_id 或上传二进制文件',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
displayName: 'Media ID',
|
|
44
|
+
name: 'media_id',
|
|
45
|
+
type: 'string',
|
|
46
|
+
displayOptions: {
|
|
47
|
+
show: {
|
|
48
|
+
...showOnlyForSendImage,
|
|
49
|
+
imageSource: ['mediaId'],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
default: '',
|
|
53
|
+
required: true,
|
|
54
|
+
description: '图片的 media_id',
|
|
55
|
+
hint: '通过素材管理接口上传图片获得',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
displayName: '二进制属性',
|
|
59
|
+
name: 'binaryPropertyName',
|
|
60
|
+
type: 'string',
|
|
61
|
+
displayOptions: {
|
|
62
|
+
show: {
|
|
63
|
+
...showOnlyForSendImage,
|
|
64
|
+
imageSource: ['binary'],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
default: 'data',
|
|
68
|
+
required: true,
|
|
69
|
+
description: '包含图片数据的二进制属性名',
|
|
70
|
+
hint: '存储图片文件的二进制属性',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
displayName: '保密消息',
|
|
74
|
+
name: 'safe',
|
|
75
|
+
type: 'boolean',
|
|
76
|
+
displayOptions: {
|
|
77
|
+
show: showOnlyForSendImage,
|
|
78
|
+
},
|
|
79
|
+
default: false,
|
|
80
|
+
description: 'Whether the message is confidential',
|
|
81
|
+
hint: '保密消息会话中的消息在发送后不会显示在聊天记录中',
|
|
82
|
+
},
|
|
83
|
+
];
|
|
84
|
+
//# sourceMappingURL=sendImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendImage.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/appChat/sendImage.ts"],"names":[],"mappings":";;;AAEA,MAAM,oBAAoB,GAAG;IAC5B,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,WAAW,CAAC;CACxB,CAAC;AAEW,QAAA,oBAAoB,GAAsB;IACtD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,oBAAoB;SAC1B;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,cAAc;KACpB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE,oBAAoB;SAC1B;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,SAAS;aAChB;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,QAAQ;aACf;SACD;QACD,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,0BAA0B;KAChC;IACD;QACC,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,oBAAoB;gBACvB,WAAW,EAAE,CAAC,SAAS,CAAC;aACxB;SACD;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,gBAAgB;KACtB;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,oBAAoB;gBACvB,WAAW,EAAE,CAAC,QAAQ,CAAC;aACvB;SACD;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,cAAc;KACpB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE,oBAAoB;SAC1B;QACD,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,0BAA0B;KAChC;CACD,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendMarkdownDescription = void 0;
|
|
4
|
+
const showOnlyForSendMarkdown = {
|
|
5
|
+
resource: ['appChat'],
|
|
6
|
+
operation: ['sendMarkdown'],
|
|
7
|
+
};
|
|
8
|
+
exports.sendMarkdownDescription = [
|
|
9
|
+
{
|
|
10
|
+
displayName: '群聊ID',
|
|
11
|
+
name: 'chatid',
|
|
12
|
+
type: 'string',
|
|
13
|
+
displayOptions: {
|
|
14
|
+
show: showOnlyForSendMarkdown,
|
|
15
|
+
},
|
|
16
|
+
default: '',
|
|
17
|
+
required: true,
|
|
18
|
+
description: '群聊的唯一标识',
|
|
19
|
+
hint: '群聊会话的 chatid',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
displayName: '消息内容',
|
|
23
|
+
name: 'content',
|
|
24
|
+
type: 'string',
|
|
25
|
+
typeOptions: {
|
|
26
|
+
rows: 6,
|
|
27
|
+
},
|
|
28
|
+
displayOptions: {
|
|
29
|
+
show: showOnlyForSendMarkdown,
|
|
30
|
+
},
|
|
31
|
+
default: '',
|
|
32
|
+
required: true,
|
|
33
|
+
description: 'Markdown 格式的消息内容',
|
|
34
|
+
hint: '支持 markdown 语法,最长不超过2048个字节',
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
//# sourceMappingURL=sendMarkdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendMarkdown.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/appChat/sendMarkdown.ts"],"names":[],"mappings":";;;AAEA,MAAM,uBAAuB,GAAG;IAC/B,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,cAAc,CAAC;CAC3B,CAAC;AAEW,QAAA,uBAAuB,GAAsB;IACzD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,uBAAuB;SAC7B;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,cAAc;KACpB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE;YACZ,IAAI,EAAE,CAAC;SACP;QACD,cAAc,EAAE;YACf,IAAI,EAAE,uBAAuB;SAC7B;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,6BAA6B;KACnC;CACD,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendNewsDescription = void 0;
|
|
4
|
+
const showOnlyForSendNews = {
|
|
5
|
+
resource: ['appChat'],
|
|
6
|
+
operation: ['sendNews'],
|
|
7
|
+
};
|
|
8
|
+
exports.sendNewsDescription = [
|
|
9
|
+
{
|
|
10
|
+
displayName: '群聊ID',
|
|
11
|
+
name: 'chatid',
|
|
12
|
+
type: 'string',
|
|
13
|
+
displayOptions: {
|
|
14
|
+
show: showOnlyForSendNews,
|
|
15
|
+
},
|
|
16
|
+
default: '',
|
|
17
|
+
required: true,
|
|
18
|
+
description: '群聊的唯一标识',
|
|
19
|
+
hint: '群聊会话的 chatid',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
displayName: '图文列表',
|
|
23
|
+
name: 'articles',
|
|
24
|
+
type: 'fixedCollection',
|
|
25
|
+
typeOptions: {
|
|
26
|
+
multipleValues: true,
|
|
27
|
+
},
|
|
28
|
+
displayOptions: {
|
|
29
|
+
show: showOnlyForSendNews,
|
|
30
|
+
},
|
|
31
|
+
default: {},
|
|
32
|
+
placeholder: '添加图文',
|
|
33
|
+
description: '图文消息,一个图文消息支持1到8条图文',
|
|
34
|
+
options: [
|
|
35
|
+
{
|
|
36
|
+
name: 'article',
|
|
37
|
+
displayName: '图文',
|
|
38
|
+
values: [
|
|
39
|
+
{
|
|
40
|
+
displayName: '标题',
|
|
41
|
+
name: 'title',
|
|
42
|
+
type: 'string',
|
|
43
|
+
default: '',
|
|
44
|
+
description: '图文消息的标题',
|
|
45
|
+
hint: '不超过128个字节',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
displayName: '描述',
|
|
49
|
+
name: 'description',
|
|
50
|
+
type: 'string',
|
|
51
|
+
typeOptions: {
|
|
52
|
+
rows: 3,
|
|
53
|
+
},
|
|
54
|
+
default: '',
|
|
55
|
+
description: '图文消息的描述',
|
|
56
|
+
hint: '不超过512个字节',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
displayName: '跳转链接',
|
|
60
|
+
name: 'url',
|
|
61
|
+
type: 'string',
|
|
62
|
+
default: '',
|
|
63
|
+
description: '点击后跳转的链接',
|
|
64
|
+
hint: '必须是http或https开头',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
displayName: '图片链接',
|
|
68
|
+
name: 'picurl',
|
|
69
|
+
type: 'string',
|
|
70
|
+
default: '',
|
|
71
|
+
description: '图文消息的图片链接',
|
|
72
|
+
hint: '支持JPG、PNG格式,较好的效果为大图640*320,小图80*80',
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
//# sourceMappingURL=sendNews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendNews.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/appChat/sendNews.ts"],"names":[],"mappings":";;;AAEA,MAAM,mBAAmB,GAAG;IAC3B,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,UAAU,CAAC;CACvB,CAAC;AAEW,QAAA,mBAAmB,GAAsB;IACrD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,cAAc;KACpB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE;YACZ,cAAc,EAAE,IAAI;SACpB;QACD,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE;oBACP;wBACC,WAAW,EAAE,IAAI;wBACjB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,SAAS;wBACtB,IAAI,EAAE,WAAW;qBACjB;oBACD;wBACC,WAAW,EAAE,IAAI;wBACjB,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE;4BACZ,IAAI,EAAE,CAAC;yBACP;wBACD,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,SAAS;wBACtB,IAAI,EAAE,WAAW;qBACjB;oBACD;wBACC,WAAW,EAAE,MAAM;wBACnB,IAAI,EAAE,KAAK;wBACX,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,UAAU;wBACvB,IAAI,EAAE,iBAAiB;qBACvB;oBACD;wBACC,WAAW,EAAE,MAAM;wBACnB,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,WAAW;wBACxB,IAAI,EAAE,qCAAqC;qBAC3C;iBACD;aACD;SACD;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendTextDescription = void 0;
|
|
4
|
+
const showOnlyForSendText = {
|
|
5
|
+
resource: ['appChat'],
|
|
6
|
+
operation: ['sendText'],
|
|
7
|
+
};
|
|
8
|
+
exports.sendTextDescription = [
|
|
9
|
+
{
|
|
10
|
+
displayName: '群聊ID',
|
|
11
|
+
name: 'chatid',
|
|
12
|
+
type: 'string',
|
|
13
|
+
displayOptions: {
|
|
14
|
+
show: showOnlyForSendText,
|
|
15
|
+
},
|
|
16
|
+
default: '',
|
|
17
|
+
required: true,
|
|
18
|
+
description: '群聊的唯一标识',
|
|
19
|
+
hint: '群聊会话的 chatid',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
displayName: '消息内容',
|
|
23
|
+
name: 'content',
|
|
24
|
+
type: 'string',
|
|
25
|
+
typeOptions: {
|
|
26
|
+
rows: 4,
|
|
27
|
+
},
|
|
28
|
+
displayOptions: {
|
|
29
|
+
show: showOnlyForSendText,
|
|
30
|
+
},
|
|
31
|
+
default: '',
|
|
32
|
+
required: true,
|
|
33
|
+
description: '文本消息内容',
|
|
34
|
+
hint: '支持换行符,最长不超过2048个字节',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
displayName: '保密消息',
|
|
38
|
+
name: 'safe',
|
|
39
|
+
type: 'boolean',
|
|
40
|
+
displayOptions: {
|
|
41
|
+
show: showOnlyForSendText,
|
|
42
|
+
},
|
|
43
|
+
default: false,
|
|
44
|
+
description: 'Whether the message is confidential. 0 means no, 1 means yes.',
|
|
45
|
+
hint: '保密消息会话中的消息在发送后不会显示在聊天记录中',
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
//# sourceMappingURL=sendText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendText.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/appChat/sendText.ts"],"names":[],"mappings":";;;AAEA,MAAM,mBAAmB,GAAG;IAC3B,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,UAAU,CAAC;CACvB,CAAC;AAEW,QAAA,mBAAmB,GAAsB;IACrD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,cAAc;KACpB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE;YACZ,IAAI,EAAE,CAAC;SACP;QACD,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,oBAAoB;KAC1B;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,+DAA+D;QAC5E,IAAI,EAAE,0BAA0B;KAChC;CACD,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateAppChatDescription = void 0;
|
|
4
|
+
const showOnlyForUpdateAppChat = {
|
|
5
|
+
resource: ['appChat'],
|
|
6
|
+
operation: ['updateAppChat'],
|
|
7
|
+
};
|
|
8
|
+
exports.updateAppChatDescription = [
|
|
9
|
+
{
|
|
10
|
+
displayName: '群聊ID',
|
|
11
|
+
name: 'chatid',
|
|
12
|
+
type: 'string',
|
|
13
|
+
displayOptions: {
|
|
14
|
+
show: showOnlyForUpdateAppChat,
|
|
15
|
+
},
|
|
16
|
+
default: '',
|
|
17
|
+
required: true,
|
|
18
|
+
description: '群聊的唯一标识',
|
|
19
|
+
hint: '群聊会话的 chatid',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
displayName: '更新类型',
|
|
23
|
+
name: 'updateType',
|
|
24
|
+
type: 'options',
|
|
25
|
+
displayOptions: {
|
|
26
|
+
show: showOnlyForUpdateAppChat,
|
|
27
|
+
},
|
|
28
|
+
options: [
|
|
29
|
+
{
|
|
30
|
+
name: '修改群主',
|
|
31
|
+
value: 'owner',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '修改群名称',
|
|
35
|
+
value: 'name',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: '删除成员',
|
|
39
|
+
value: 'delUsers',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: '添加成员',
|
|
43
|
+
value: 'addUsers',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: '组合更新',
|
|
47
|
+
value: 'combined',
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
default: 'name',
|
|
51
|
+
description: '选择要更新的内容',
|
|
52
|
+
hint: '可以单独更新或组合更新多个字段',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
displayName: '群聊名称',
|
|
56
|
+
name: 'name',
|
|
57
|
+
type: 'string',
|
|
58
|
+
displayOptions: {
|
|
59
|
+
show: {
|
|
60
|
+
...showOnlyForUpdateAppChat,
|
|
61
|
+
updateType: ['name', 'combined'],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
default: '',
|
|
65
|
+
description: '新的群聊名称',
|
|
66
|
+
hint: '群聊名,最多50个utf8字符,超过将自动截断',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
displayName: '群主ID',
|
|
70
|
+
name: 'owner',
|
|
71
|
+
type: 'string',
|
|
72
|
+
displayOptions: {
|
|
73
|
+
show: {
|
|
74
|
+
...showOnlyForUpdateAppChat,
|
|
75
|
+
updateType: ['owner', 'combined'],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
default: '',
|
|
79
|
+
description: '新的群主 ID',
|
|
80
|
+
hint: '群主 ID,必须是群成员之一',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
displayName: '添加成员列表',
|
|
84
|
+
name: 'add_user_list',
|
|
85
|
+
type: 'string',
|
|
86
|
+
displayOptions: {
|
|
87
|
+
show: {
|
|
88
|
+
...showOnlyForUpdateAppChat,
|
|
89
|
+
updateType: ['addUsers', 'combined'],
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
default: '',
|
|
93
|
+
description: '要添加的成员 ID 列表',
|
|
94
|
+
hint: '成员列表,用逗号分隔',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
displayName: '删除成员列表',
|
|
98
|
+
name: 'del_user_list',
|
|
99
|
+
type: 'string',
|
|
100
|
+
displayOptions: {
|
|
101
|
+
show: {
|
|
102
|
+
...showOnlyForUpdateAppChat,
|
|
103
|
+
updateType: ['delUsers', 'combined'],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
default: '',
|
|
107
|
+
description: '要删除的成员 ID 列表',
|
|
108
|
+
hint: '成员列表,用逗号分隔',
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
//# sourceMappingURL=updateAppChat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateAppChat.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/appChat/updateAppChat.ts"],"names":[],"mappings":";;;AAEA,MAAM,wBAAwB,GAAG;IAChC,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,eAAe,CAAC;CAC5B,CAAC;AAEW,QAAA,wBAAwB,GAAsB;IAC1D;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,wBAAwB;SAC9B;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,cAAc;KACpB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE,wBAAwB;SAC9B;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACd;YACD;gBACC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM;aACb;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,UAAU;aACjB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,UAAU;aACjB;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,UAAU;aACjB;SACD;QACD,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,iBAAiB;KACvB;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,wBAAwB;gBAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;aAChC;SACD;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,yBAAyB;KAC/B;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,wBAAwB;gBAC3B,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACjC;SACD;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,gBAAgB;KACtB;IACD;QACC,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,wBAAwB;gBAC3B,UAAU,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;aACpC;SACD;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,YAAY;KAClB;IACD;QACC,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,wBAAwB;gBAC3B,UAAU,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;aACpC;SACD;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,YAAY;KAClB;CACD,CAAC"}
|
|
@@ -42,14 +42,8 @@ exports.messageDescription = [
|
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
name: '发送图文消息',
|
|
45
|
-
value: 'sendNews',
|
|
46
|
-
action: '发送图文消息',
|
|
47
|
-
description: '发送图文消息(news类型)',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
name: '发送图文消息(Mpnews)',
|
|
51
45
|
value: 'sendMpNews',
|
|
52
|
-
action: '
|
|
46
|
+
action: '发送图文消息',
|
|
53
47
|
description: '发送图文消息(mpnews类型)',
|
|
54
48
|
},
|
|
55
49
|
{
|
|
@@ -82,6 +76,12 @@ exports.messageDescription = [
|
|
|
82
76
|
action: '发送文本消息',
|
|
83
77
|
description: '发送文本类型的消息',
|
|
84
78
|
},
|
|
79
|
+
{
|
|
80
|
+
name: '发送普通图文消息',
|
|
81
|
+
value: 'sendNews',
|
|
82
|
+
action: '发送普通图文消息',
|
|
83
|
+
description: '发送图文消息(news类型)',
|
|
84
|
+
},
|
|
85
85
|
{
|
|
86
86
|
name: '发送模板卡片消息',
|
|
87
87
|
value: 'sendTemplateCard',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/message/index.ts"],"names":[],"mappings":";;;AACA,yCAAiD;AACjD,iDAAyD;AACzD,2CAAmD;AACnD,yCAAiD;AACjD,2CAAmD;AACnD,2CAAmD;AACnD,iDAAyD;AACzD,yCAAiD;AACjD,6CAAqD;AACrD,mEAA2E;AAC3E,iDAAyD;AACzD,yDAAiE;AACjE,6DAAqE;AACrE,mDAA2D;AAE3D,MAAM,kBAAkB,GAAG;IAC1B,QAAQ,EAAE,CAAC,SAAS,CAAC;CACrB,CAAC;AAEW,QAAA,kBAAkB,GAAsB;IACpD;QACC,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE,kBAAkB;SACxB;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,gBAAgB;gBACxB,WAAW,EAAE,mBAAmB;aAChC;YACD;gBACC,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,aAAa;aAC1B;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/WeCom/resources/message/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { INode } from 'n8n-workflow';
|
|
2
|
+
export declare class WeComCrypto {
|
|
3
|
+
private readonly key;
|
|
4
|
+
private readonly corpId;
|
|
5
|
+
constructor(encodingAESKey: string, corpId: string);
|
|
6
|
+
decrypt(encrypted: string, node: INode): string;
|
|
7
|
+
encrypt(message: string, node: INode): string;
|
|
8
|
+
static generateSignature(token: string, timestamp: string, nonce: string, encrypt: string): string;
|
|
9
|
+
static verifySignature(signature: string, token: string, timestamp: string, nonce: string, encrypt: string): boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function parseXML(xml: string): Record<string, string>;
|
|
12
|
+
export declare function generateXML(data: Record<string, string>): string;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WeComCrypto = void 0;
|
|
4
|
+
exports.parseXML = parseXML;
|
|
5
|
+
exports.generateXML = generateXML;
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
7
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
8
|
+
class WeComCrypto {
|
|
9
|
+
constructor(encodingAESKey, corpId) {
|
|
10
|
+
const aesKey = encodingAESKey + '=';
|
|
11
|
+
this.key = Buffer.from(aesKey, 'base64');
|
|
12
|
+
this.corpId = corpId;
|
|
13
|
+
}
|
|
14
|
+
decrypt(encrypted, node) {
|
|
15
|
+
try {
|
|
16
|
+
const cipher = Buffer.from(encrypted, 'base64');
|
|
17
|
+
const decipher = (0, crypto_1.createDecipheriv)('aes-256-cbc', this.key, this.key.slice(0, 16));
|
|
18
|
+
decipher.setAutoPadding(false);
|
|
19
|
+
let decrypted = Buffer.concat([decipher.update(cipher), decipher.final()]);
|
|
20
|
+
const pad = decrypted[decrypted.length - 1];
|
|
21
|
+
if (pad < 1 || pad > 32) {
|
|
22
|
+
throw new Error('Invalid padding');
|
|
23
|
+
}
|
|
24
|
+
decrypted = decrypted.slice(0, decrypted.length - pad);
|
|
25
|
+
const content = decrypted.slice(16);
|
|
26
|
+
const msgLen = content.readUInt32BE(0);
|
|
27
|
+
const message = content.slice(4, msgLen + 4).toString('utf8');
|
|
28
|
+
const receivedCorpId = content.slice(msgLen + 4).toString('utf8');
|
|
29
|
+
if (receivedCorpId !== this.corpId) {
|
|
30
|
+
throw new n8n_workflow_1.NodeOperationError(node, `CorpID 不匹配: 期望 ${this.corpId}, 收到 ${receivedCorpId}`);
|
|
31
|
+
}
|
|
32
|
+
return message;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
const err = error;
|
|
36
|
+
throw new n8n_workflow_1.NodeOperationError(node, `消息解密失败: ${err.message}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
encrypt(message, node) {
|
|
40
|
+
try {
|
|
41
|
+
const random = (0, crypto_1.randomBytes)(16);
|
|
42
|
+
const msgBuffer = Buffer.from(message, 'utf8');
|
|
43
|
+
const msgLenBuffer = Buffer.alloc(4);
|
|
44
|
+
msgLenBuffer.writeUInt32BE(msgBuffer.length, 0);
|
|
45
|
+
const corpIdBuffer = Buffer.from(this.corpId, 'utf8');
|
|
46
|
+
const content = Buffer.concat([random, msgLenBuffer, msgBuffer, corpIdBuffer]);
|
|
47
|
+
const blockSize = 32;
|
|
48
|
+
const paddingLength = blockSize - (content.length % blockSize);
|
|
49
|
+
const padding = Buffer.alloc(paddingLength, paddingLength);
|
|
50
|
+
const paddedContent = Buffer.concat([content, padding]);
|
|
51
|
+
const cipher = (0, crypto_1.createCipheriv)('aes-256-cbc', this.key, this.key.slice(0, 16));
|
|
52
|
+
cipher.setAutoPadding(false);
|
|
53
|
+
const encrypted = Buffer.concat([cipher.update(paddedContent), cipher.final()]);
|
|
54
|
+
return encrypted.toString('base64');
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
const err = error;
|
|
58
|
+
throw new n8n_workflow_1.NodeOperationError(node, `消息加密失败: ${err.message}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static generateSignature(token, timestamp, nonce, encrypt) {
|
|
62
|
+
const arr = [token, timestamp, nonce, encrypt].sort();
|
|
63
|
+
const str = arr.join('');
|
|
64
|
+
return (0, crypto_1.createHash)('sha1').update(str).digest('hex');
|
|
65
|
+
}
|
|
66
|
+
static verifySignature(signature, token, timestamp, nonce, encrypt) {
|
|
67
|
+
const expectedSignature = this.generateSignature(token, timestamp, nonce, encrypt);
|
|
68
|
+
return signature === expectedSignature;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.WeComCrypto = WeComCrypto;
|
|
72
|
+
function parseXML(xml) {
|
|
73
|
+
const result = {};
|
|
74
|
+
const regex = /<(\w+)><!?\[CDATA\[([^\]]+)\]\]><\/\1>|<(\w+)>([^<]+)<\/\3>/g;
|
|
75
|
+
let match;
|
|
76
|
+
while ((match = regex.exec(xml)) !== null) {
|
|
77
|
+
const key = match[1] || match[3];
|
|
78
|
+
const value = match[2] || match[4];
|
|
79
|
+
result[key] = value;
|
|
80
|
+
}
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
function generateXML(data) {
|
|
84
|
+
let xml = '<xml>';
|
|
85
|
+
for (const [key, value] of Object.entries(data)) {
|
|
86
|
+
xml += `<${key}><![CDATA[${value}]]></${key}>`;
|
|
87
|
+
}
|
|
88
|
+
xml += '</xml>';
|
|
89
|
+
return xml;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=crypto.js.map
|