node-easywechat 3.7.0 → 3.7.1
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/CHANGELOG.md +4 -0
- package/dist/Channel/Application.js +1 -1
- package/dist/Core/Cache/FileCache.js +46 -63
- package/dist/Core/Contracts/AccessTokenInterface.js +2 -15
- package/dist/Core/Contracts/CacheInterface.js +4 -21
- package/dist/Core/Contracts/RefreshableAccessTokenInterface.js +1 -12
- package/dist/Core/Contracts/ServerInterface.js +1 -12
- package/dist/Core/Http/ServerRequest.js +34 -49
- package/dist/Core/HttpClient/AccessTokenAwareClient.js +6 -17
- package/dist/Core/HttpClient/Contracts/HttpClientInterface.js +1 -12
- package/dist/Core/HttpClient/HttpClient.js +74 -85
- package/dist/Core/HttpClient/HttpClientResponse.js +35 -50
- package/dist/Core/HttpClient/Mixins/HttpClientMethodsMixin.js +34 -59
- package/dist/Core/HttpClient/Mixins/PresetMixin.js +8 -11
- package/dist/Core/Message.js +20 -31
- package/dist/Core/Mixins/DecryptMessageMixin.js +13 -24
- package/dist/Core/Mixins/HandlersMixin.js +18 -31
- package/dist/Core/Mixins/ResponseMessageMixin.js +31 -44
- package/dist/Core/Support/Utils.js +8 -19
- package/dist/MiniApp/Application.js +1 -1
- package/dist/MiniApp/Utils.js +13 -24
- package/dist/OfficialAccount/AccessToken.js +42 -59
- package/dist/OfficialAccount/Application.js +1 -1
- package/dist/OfficialAccount/JsApiTicket.js +31 -44
- package/dist/OfficialAccount/Server.js +25 -40
- package/dist/OfficialAccount/Utils.js +6 -17
- package/dist/OpenPlatform/Application.js +62 -86
- package/dist/OpenPlatform/Authorizer/MiniApp/Utils.js +14 -25
- package/dist/OpenPlatform/AuthorizerAccessToken.js +6 -19
- package/dist/OpenPlatform/ComponentAccessToken.js +27 -42
- package/dist/OpenPlatform/Server.js +31 -54
- package/dist/OpenPlatform/VerifyTicket.js +14 -27
- package/dist/OpenWork/Application.js +61 -84
- package/dist/OpenWork/AuthorizerAccessToken.js +32 -47
- package/dist/OpenWork/JsApiTicket.js +64 -81
- package/dist/OpenWork/ProviderAccessToken.js +26 -41
- package/dist/OpenWork/Server.js +50 -94
- package/dist/OpenWork/SuiteAccessToken.js +27 -42
- package/dist/OpenWork/SuiteTicket.js +14 -27
- package/dist/Pay/Application.js +1 -2
- package/dist/Pay/Client.js +63 -77
- package/dist/Pay/LegacySignature.js +2 -3
- package/dist/Pay/Merchant.js +36 -52
- package/dist/Pay/Server.js +55 -70
- package/dist/Pay/Utils.js +13 -26
- package/dist/Pay/Validator.js +28 -39
- package/dist/Work/AccessToken.js +26 -41
- package/dist/Work/Application.js +21 -32
- package/dist/Work/JsApiTicket.js +60 -77
- package/dist/Work/Server.js +47 -86
- package/dist/Work/Utils.js +12 -25
- package/package.json +1 -1
- package/tsconfig.json +2 -2
package/dist/Work/Server.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -24,32 +15,27 @@ class Server extends ServerInterface_1.default {
|
|
|
24
15
|
* 服务端消息处理
|
|
25
16
|
* @returns
|
|
26
17
|
*/
|
|
27
|
-
serve() {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
let
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
return response;
|
|
42
|
-
});
|
|
18
|
+
async serve() {
|
|
19
|
+
let query = this.request.getQueryParams();
|
|
20
|
+
if (!!query['echostr']) {
|
|
21
|
+
let echostr = this.encryptor.decrypt(query['echostr'], query['msg_signature'] ?? '', query['nonce'] ?? '', query['timestamp'] ?? '');
|
|
22
|
+
return new Response_1.default(200, { 'Content-Type': 'text/html' }, echostr);
|
|
23
|
+
}
|
|
24
|
+
let message = await this.getRequestMessage(this.request);
|
|
25
|
+
this.prepend(this.decryptRequestMessage(query));
|
|
26
|
+
let response = await this.handle(new Response_1.default(200, {}, 'SUCCESS'), message);
|
|
27
|
+
if (!(response instanceof Response_1.default)) {
|
|
28
|
+
response = await this.transformToReply(response, message, this.encryptor);
|
|
29
|
+
}
|
|
30
|
+
return response;
|
|
43
31
|
}
|
|
44
32
|
/**
|
|
45
33
|
* 设置联系人变化的消息处理器
|
|
46
34
|
* @param handler
|
|
47
35
|
*/
|
|
48
36
|
handleContactChanged(handler) {
|
|
49
|
-
return this.with(function (message, next) {
|
|
50
|
-
return
|
|
51
|
-
return message.Event === 'change_contact' ? handler(message, next) : next(message);
|
|
52
|
-
});
|
|
37
|
+
return this.with(async function (message, next) {
|
|
38
|
+
return message.Event === 'change_contact' ? handler(message, next) : next(message);
|
|
53
39
|
});
|
|
54
40
|
}
|
|
55
41
|
/**
|
|
@@ -57,10 +43,8 @@ class Server extends ServerInterface_1.default {
|
|
|
57
43
|
* @param handler
|
|
58
44
|
*/
|
|
59
45
|
handleUserTagUpdated(handler) {
|
|
60
|
-
return this.with(function (message, next) {
|
|
61
|
-
return
|
|
62
|
-
return message.Event === 'change_contact' && message.ChangeType === 'update_tag' ? handler(message, next) : next(message);
|
|
63
|
-
});
|
|
46
|
+
return this.with(async function (message, next) {
|
|
47
|
+
return message.Event === 'change_contact' && message.ChangeType === 'update_tag' ? handler(message, next) : next(message);
|
|
64
48
|
});
|
|
65
49
|
}
|
|
66
50
|
/**
|
|
@@ -68,10 +52,8 @@ class Server extends ServerInterface_1.default {
|
|
|
68
52
|
* @param handler
|
|
69
53
|
*/
|
|
70
54
|
handleUserCreated(handler) {
|
|
71
|
-
return this.with(function (message, next) {
|
|
72
|
-
return
|
|
73
|
-
return message.Event === 'change_contact' && message.ChangeType === 'create_user' ? handler(message, next) : next(message);
|
|
74
|
-
});
|
|
55
|
+
return this.with(async function (message, next) {
|
|
56
|
+
return message.Event === 'change_contact' && message.ChangeType === 'create_user' ? handler(message, next) : next(message);
|
|
75
57
|
});
|
|
76
58
|
}
|
|
77
59
|
/**
|
|
@@ -79,10 +61,8 @@ class Server extends ServerInterface_1.default {
|
|
|
79
61
|
* @param handler
|
|
80
62
|
*/
|
|
81
63
|
handleUserUpdated(handler) {
|
|
82
|
-
return this.with(function (message, next) {
|
|
83
|
-
return
|
|
84
|
-
return message.Event === 'change_contact' && message.ChangeType === 'update_user' ? handler(message, next) : next(message);
|
|
85
|
-
});
|
|
64
|
+
return this.with(async function (message, next) {
|
|
65
|
+
return message.Event === 'change_contact' && message.ChangeType === 'update_user' ? handler(message, next) : next(message);
|
|
86
66
|
});
|
|
87
67
|
}
|
|
88
68
|
/**
|
|
@@ -90,10 +70,8 @@ class Server extends ServerInterface_1.default {
|
|
|
90
70
|
* @param handler
|
|
91
71
|
*/
|
|
92
72
|
handleUserDeleted(handler) {
|
|
93
|
-
return this.with(function (message, next) {
|
|
94
|
-
return
|
|
95
|
-
return message.Event === 'change_contact' && message.ChangeType === 'delete_user' ? handler(message, next) : next(message);
|
|
96
|
-
});
|
|
73
|
+
return this.with(async function (message, next) {
|
|
74
|
+
return message.Event === 'change_contact' && message.ChangeType === 'delete_user' ? handler(message, next) : next(message);
|
|
97
75
|
});
|
|
98
76
|
}
|
|
99
77
|
/**
|
|
@@ -101,10 +79,8 @@ class Server extends ServerInterface_1.default {
|
|
|
101
79
|
* @param handler
|
|
102
80
|
*/
|
|
103
81
|
handlePartyCreated(handler) {
|
|
104
|
-
return this.with(function (message, next) {
|
|
105
|
-
return
|
|
106
|
-
return message.Event === 'change_contact' && message.ChangeType === 'create_party' ? handler(message, next) : next(message);
|
|
107
|
-
});
|
|
82
|
+
return this.with(async function (message, next) {
|
|
83
|
+
return message.Event === 'change_contact' && message.ChangeType === 'create_party' ? handler(message, next) : next(message);
|
|
108
84
|
});
|
|
109
85
|
}
|
|
110
86
|
/**
|
|
@@ -112,10 +88,8 @@ class Server extends ServerInterface_1.default {
|
|
|
112
88
|
* @param handler
|
|
113
89
|
*/
|
|
114
90
|
handlePartyUpdated(handler) {
|
|
115
|
-
return this.with(function (message, next) {
|
|
116
|
-
return
|
|
117
|
-
return message.Event === 'change_contact' && message.ChangeType === 'update_party' ? handler(message, next) : next(message);
|
|
118
|
-
});
|
|
91
|
+
return this.with(async function (message, next) {
|
|
92
|
+
return message.Event === 'change_contact' && message.ChangeType === 'update_party' ? handler(message, next) : next(message);
|
|
119
93
|
});
|
|
120
94
|
}
|
|
121
95
|
/**
|
|
@@ -123,10 +97,8 @@ class Server extends ServerInterface_1.default {
|
|
|
123
97
|
* @param handler
|
|
124
98
|
*/
|
|
125
99
|
handlePartyDeleted(handler) {
|
|
126
|
-
return this.with(function (message, next) {
|
|
127
|
-
return
|
|
128
|
-
return message.Event === 'change_contact' && message.ChangeType === 'delete_party' ? handler(message, next) : next(message);
|
|
129
|
-
});
|
|
100
|
+
return this.with(async function (message, next) {
|
|
101
|
+
return message.Event === 'change_contact' && message.ChangeType === 'delete_party' ? handler(message, next) : next(message);
|
|
130
102
|
});
|
|
131
103
|
}
|
|
132
104
|
/**
|
|
@@ -134,10 +106,8 @@ class Server extends ServerInterface_1.default {
|
|
|
134
106
|
* @param handler
|
|
135
107
|
*/
|
|
136
108
|
handleBatchJobsFinished(handler) {
|
|
137
|
-
return this.with(function (message, next) {
|
|
138
|
-
return
|
|
139
|
-
return message.Event === 'batch_job_result' ? handler(message, next) : next(message);
|
|
140
|
-
});
|
|
109
|
+
return this.with(async function (message, next) {
|
|
110
|
+
return message.Event === 'batch_job_result' ? handler(message, next) : next(message);
|
|
141
111
|
});
|
|
142
112
|
}
|
|
143
113
|
/**
|
|
@@ -147,10 +117,8 @@ class Server extends ServerInterface_1.default {
|
|
|
147
117
|
* @returns
|
|
148
118
|
*/
|
|
149
119
|
addMessageListener(type, handler) {
|
|
150
|
-
return this.withHandler(function (message, next) {
|
|
151
|
-
return
|
|
152
|
-
return message.MsgType === type ? handler(message, next) : next(message);
|
|
153
|
-
});
|
|
120
|
+
return this.withHandler(async function (message, next) {
|
|
121
|
+
return message.MsgType === type ? handler(message, next) : next(message);
|
|
154
122
|
});
|
|
155
123
|
}
|
|
156
124
|
/**
|
|
@@ -160,10 +128,8 @@ class Server extends ServerInterface_1.default {
|
|
|
160
128
|
* @returns
|
|
161
129
|
*/
|
|
162
130
|
addEventListener(event, handler) {
|
|
163
|
-
return this.withHandler(function (message, next) {
|
|
164
|
-
return
|
|
165
|
-
return message.Event === event ? handler(message, next) : next(message);
|
|
166
|
-
});
|
|
131
|
+
return this.withHandler(async function (message, next) {
|
|
132
|
+
return message.Event === event ? handler(message, next) : next(message);
|
|
167
133
|
});
|
|
168
134
|
}
|
|
169
135
|
/**
|
|
@@ -172,40 +138,35 @@ class Server extends ServerInterface_1.default {
|
|
|
172
138
|
* @returns
|
|
173
139
|
*/
|
|
174
140
|
getRequestMessage(request = null) {
|
|
175
|
-
return Message_1.default.createFromRequest(request
|
|
141
|
+
return Message_1.default.createFromRequest(request ?? this.request);
|
|
176
142
|
}
|
|
177
143
|
validateUrl() {
|
|
178
|
-
return (message, next) =>
|
|
179
|
-
var _a, _b, _c;
|
|
144
|
+
return async (message, next) => {
|
|
180
145
|
let query = this.request.getQueryParams();
|
|
181
146
|
if (!this.encryptor)
|
|
182
147
|
return null;
|
|
183
|
-
let echostr = this.encryptor.decrypt(query['echostr'],
|
|
148
|
+
let echostr = this.encryptor.decrypt(query['echostr'], query['msg_signature'] ?? '', query['timestamp'] ?? '', query['nonce'] ?? '');
|
|
184
149
|
return new Response_1.default(200, { 'Content-Type': 'text/html' }, echostr);
|
|
185
|
-
}
|
|
150
|
+
};
|
|
186
151
|
}
|
|
187
152
|
decryptRequestMessage(query) {
|
|
188
|
-
return (message, next) =>
|
|
189
|
-
var _a, _b, _c;
|
|
153
|
+
return async (message, next) => {
|
|
190
154
|
if (!this.encryptor)
|
|
191
155
|
return null;
|
|
192
|
-
|
|
156
|
+
await this.decryptMessage(message, this.encryptor, query['msg_signature'] ?? '', query['timestamp'] ?? '', query['nonce'] ?? '');
|
|
193
157
|
return next(message);
|
|
194
|
-
}
|
|
158
|
+
};
|
|
195
159
|
}
|
|
196
160
|
/**
|
|
197
161
|
* 获取解密后的消息
|
|
198
162
|
* @param request 未设置该参数时,则从当前服务端收到的请求中获取
|
|
199
163
|
* @returns
|
|
200
164
|
*/
|
|
201
|
-
getDecryptedMessage() {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
let query = request.getQueryParams();
|
|
207
|
-
return yield this.decryptMessage(message, this.encryptor, (_a = query['msg_signature']) !== null && _a !== void 0 ? _a : '', (_b = query['timestamp']) !== null && _b !== void 0 ? _b : '', (_c = query['nonce']) !== null && _c !== void 0 ? _c : '');
|
|
208
|
-
});
|
|
165
|
+
async getDecryptedMessage(request = null) {
|
|
166
|
+
request = request ?? this.request;
|
|
167
|
+
let message = await this.getRequestMessage(request);
|
|
168
|
+
let query = request.getQueryParams();
|
|
169
|
+
return await this.decryptMessage(message, this.encryptor, query['msg_signature'] ?? '', query['timestamp'] ?? '', query['nonce'] ?? '');
|
|
209
170
|
}
|
|
210
171
|
}
|
|
211
172
|
;
|
package/dist/Work/Utils.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -24,14 +15,12 @@ class Utils {
|
|
|
24
15
|
* @param debug 是否开启调试模式,默认:false
|
|
25
16
|
* @returns
|
|
26
17
|
*/
|
|
27
|
-
buildJsSdkConfig(
|
|
28
|
-
return
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}, yield this.app.getTicket().createConfigSignature(url));
|
|
34
|
-
});
|
|
18
|
+
async buildJsSdkConfig(url, jsApiList = [], openTagList = [], debug = false) {
|
|
19
|
+
return (0, merge_1.default)({
|
|
20
|
+
jsApiList,
|
|
21
|
+
openTagList,
|
|
22
|
+
debug,
|
|
23
|
+
}, await this.app.getTicket().createConfigSignature(url));
|
|
35
24
|
}
|
|
36
25
|
/**
|
|
37
26
|
* 构建代理应用的jssdk配置
|
|
@@ -42,14 +31,12 @@ class Utils {
|
|
|
42
31
|
* @param debug 是否开启调试模式,默认:false
|
|
43
32
|
* @returns
|
|
44
33
|
*/
|
|
45
|
-
buildJsSdkAgentConfig(
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}, yield this.app.getTicket().createAgentConfigSignature(agentId, url));
|
|
52
|
-
});
|
|
34
|
+
async buildJsSdkAgentConfig(agentId, url, jsApiList = [], openTagList = [], debug = false) {
|
|
35
|
+
return (0, merge_1.default)({
|
|
36
|
+
jsApiList,
|
|
37
|
+
openTagList,
|
|
38
|
+
debug,
|
|
39
|
+
}, await this.app.getTicket().createAgentConfigSignature(agentId, url));
|
|
53
40
|
}
|
|
54
41
|
}
|
|
55
42
|
;
|
package/package.json
CHANGED
package/tsconfig.json
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
/* Visit https://aka.ms/tsconfig.json to read more about this file */
|
|
4
4
|
/* Basic Options */
|
|
5
5
|
// "incremental": true, /* Enable incremental compilation */
|
|
6
|
-
"target": "
|
|
7
|
-
"module": "
|
|
6
|
+
"target": "ES2020", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
|
|
7
|
+
"module": "node16", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
|
|
8
8
|
// "lib": [], /* Specify library files to be included in the compilation. */
|
|
9
9
|
"allowJs": true, /* Allow javascript files to be compiled. */
|
|
10
10
|
// "checkJs": true, /* Report errors in .js files. */
|