@wppconnect/server 1.8.5 → 2.0.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.
- package/CHANGELOG.md +6 -0
- package/dist/config/upload.js +4 -4
- package/dist/config.js +78 -0
- package/dist/controller/catalogController.js +111 -22
- package/dist/controller/deviceController.js +324 -114
- package/dist/controller/encryptController.js +4 -2
- package/dist/controller/groupController.js +157 -44
- package/dist/controller/labelsController.js +46 -8
- package/dist/controller/messageController.js +104 -39
- package/dist/controller/orderController.js +19 -7
- package/dist/controller/sessionController.js +99 -34
- package/dist/controller/statusController.js +18 -10
- package/dist/index.js +47 -25
- package/dist/mapper/index.js +7 -5
- package/dist/mapper/tagone-chat.js +1 -1
- package/dist/mapper/tagone-device.js +1 -1
- package/dist/mapper/tagone-message-document.js +1 -1
- package/dist/mapper/tagone-message-image.js +1 -1
- package/dist/mapper/tagone-message-location.js +1 -1
- package/dist/mapper/tagone-message-video.js +1 -1
- package/dist/mapper/tagone-message.js +1 -1
- package/dist/mapper/tagone-onack.js +1 -1
- package/dist/mapper/tagone-return.js +4 -2
- package/dist/middleware/auth.js +29 -9
- package/dist/middleware/healthCheck.js +1 -1
- package/dist/middleware/statusConnection.js +9 -3
- package/dist/routes/index.js +618 -113
- package/dist/server.js +2 -2
- package/dist/types/Request.js +2 -0
- package/dist/types/ServerOptions.js +2 -0
- package/dist/types/WhatsAppServer.js +2 -0
- package/dist/util/chatWootClient.js +55 -22
- package/dist/util/createSessionUtil.js +65 -17
- package/dist/util/db/mongodb/db.js +10 -7
- package/dist/util/db/redis/db.js +7 -5
- package/dist/util/functions.js +81 -37
- package/dist/util/getAllTokens.js +1 -1
- package/dist/util/logger.js +2 -3
- package/dist/util/sessionUtil.js +5 -4
- package/dist/util/tokenStore/FileTokenStore/FileTokenStore.js +178 -0
- package/dist/util/tokenStore/factory.js +8 -11
- package/dist/util/tokenStore/fileTokenStory.js +21 -15
- package/dist/util/tokenStore/firebaseTokenStory.js +1 -1
- package/dist/util/tokenStore/model/token.js +7 -5
- package/dist/util/tokenStore/mongodbTokenStory.js +18 -11
- package/dist/util/tokenStore/redisTokenStory.js +39 -19
- package/dist/util/tokenStore/types.js +2 -0
- package/package.json +44 -22
- package/tsconfig.json +105 -0
- package/types.d.ts +2 -0
- package/dist/config/upload.js.map +0 -1
- package/dist/config.json +0 -77
- package/dist/controller/catalogController.js.map +0 -1
- package/dist/controller/deviceController.js.map +0 -1
- package/dist/controller/encryptController.js.map +0 -1
- package/dist/controller/groupController.js.map +0 -1
- package/dist/controller/labelsController.js.map +0 -1
- package/dist/controller/messageController.js.map +0 -1
- package/dist/controller/orderController.js.map +0 -1
- package/dist/controller/sessionController.js.map +0 -1
- package/dist/controller/statusController.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mapper/index.js.map +0 -1
- package/dist/mapper/tagone-chat.js.map +0 -1
- package/dist/mapper/tagone-device.js.map +0 -1
- package/dist/mapper/tagone-message-document.js.map +0 -1
- package/dist/mapper/tagone-message-image.js.map +0 -1
- package/dist/mapper/tagone-message-location.js.map +0 -1
- package/dist/mapper/tagone-message-video.js.map +0 -1
- package/dist/mapper/tagone-message.js.map +0 -1
- package/dist/mapper/tagone-onack.js.map +0 -1
- package/dist/mapper/tagone-return.js.map +0 -1
- package/dist/middleware/auth.js.map +0 -1
- package/dist/middleware/healthCheck.js.map +0 -1
- package/dist/middleware/statusConnection.js.map +0 -1
- package/dist/routes/index.js.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/util/chatWootClient.js.map +0 -1
- package/dist/util/createSessionUtil.js.map +0 -1
- package/dist/util/db/mongodb/db.js.map +0 -1
- package/dist/util/db/redis/db.js.map +0 -1
- package/dist/util/functions.js.map +0 -1
- package/dist/util/getAllTokens.js.map +0 -1
- package/dist/util/logger.js.map +0 -1
- package/dist/util/sessionUtil.js.map +0 -1
- package/dist/util/tokenStore/factory.js.map +0 -1
- package/dist/util/tokenStore/fileTokenStory.js.map +0 -1
- package/dist/util/tokenStore/firebaseTokenStory.js.map +0 -1
- package/dist/util/tokenStore/model/token.js.map +0 -1
- package/dist/util/tokenStore/mongodbTokenStory.js.map +0 -1
- package/dist/util/tokenStore/redisTokenStory.js.map +0 -1
|
@@ -13,15 +13,19 @@
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
var _functions = require("../util/functions");
|
|
18
|
-
var _createSessionUtil = _interopRequireDefault(require("../util/createSessionUtil"));
|
|
19
|
-
var _getAllTokens = _interopRequireDefault(require("../util/getAllTokens"));
|
|
16
|
+
|
|
20
17
|
var _fs = _interopRequireDefault(require("fs"));
|
|
21
18
|
var _mimeTypes = _interopRequireDefault(require("mime-types"));
|
|
22
|
-
var _package = require("../../package.json");
|
|
23
19
|
var _qrcode = _interopRequireDefault(require("qrcode"));
|
|
24
|
-
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
var _package = require("../../package.json");
|
|
23
|
+
var _config = _interopRequireDefault(require("../config"));
|
|
24
|
+
|
|
25
|
+
var _createSessionUtil = _interopRequireDefault(require("../util/createSessionUtil"));
|
|
26
|
+
var _functions = require("../util/functions");
|
|
27
|
+
var _getAllTokens = _interopRequireDefault(require("../util/getAllTokens"));
|
|
28
|
+
var _sessionUtil = require("../util/sessionUtil"); /*
|
|
25
29
|
* Copyright 2021 WPPConnect Team
|
|
26
30
|
*
|
|
27
31
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -33,9 +37,13 @@ var _config = _interopRequireDefault(require("../config.json")); /*
|
|
|
33
37
|
* Unless required by applicable law or agreed to in writing, software
|
|
34
38
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
35
39
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
36
|
-
* See the License for the specific language governing
|
|
40
|
+
* See the License for the specific language governing permclearSessionissions and
|
|
37
41
|
* limitations under the License.
|
|
38
|
-
*/const SessionUtil = new _createSessionUtil.default();async function downloadFileFunction(message, client, logger) {try {const buffer = await client.decryptFile(message);
|
|
42
|
+
*/const SessionUtil = new _createSessionUtil.default();async function downloadFileFunction(message, client, logger) {try {const buffer = await client.decryptFile(message);const filename = `./WhatsAppImages/file${message.t}`;if (!_fs.default.existsSync(filename)) {let result = '';
|
|
43
|
+
if (message.type === 'ptt') {
|
|
44
|
+
result = `${filename}.oga`;
|
|
45
|
+
} else {
|
|
46
|
+
result = `${filename}.${_mimeTypes.default.extension(message.mimetype)}`;
|
|
39
47
|
}
|
|
40
48
|
|
|
41
49
|
await _fs.default.writeFile(result, buffer, (err) => {
|
|
@@ -50,7 +58,9 @@ var _config = _interopRequireDefault(require("../config.json")); /*
|
|
|
50
58
|
}
|
|
51
59
|
} catch (e) {
|
|
52
60
|
logger.error(e);
|
|
53
|
-
logger.warn(
|
|
61
|
+
logger.warn(
|
|
62
|
+
'Erro ao descriptografar a midia, tentando fazer o download direto...');
|
|
63
|
+
|
|
54
64
|
try {
|
|
55
65
|
const buffer = await client.downloadMedia(message);
|
|
56
66
|
const filename = `./WhatsAppImages/file${message.t}`;
|
|
@@ -82,7 +92,7 @@ var _config = _interopRequireDefault(require("../config.json")); /*
|
|
|
82
92
|
async function download(message, client, logger) {
|
|
83
93
|
try {
|
|
84
94
|
const path = await downloadFileFunction(message, client, logger);
|
|
85
|
-
return path
|
|
95
|
+
return path?.replace('./', '');
|
|
86
96
|
} catch (e) {
|
|
87
97
|
logger.error(e);
|
|
88
98
|
}
|
|
@@ -114,7 +124,9 @@ async function startAllSessions(req, res) {
|
|
|
114
124
|
await util.opendata(req, session);
|
|
115
125
|
});
|
|
116
126
|
|
|
117
|
-
return await res.
|
|
127
|
+
return await res.
|
|
128
|
+
status(201).
|
|
129
|
+
json({ status: 'success', message: 'Starting all sessions' });
|
|
118
130
|
}
|
|
119
131
|
|
|
120
132
|
async function showAllSessions(req, res) {
|
|
@@ -124,7 +136,7 @@ async function showAllSessions(req, res) {
|
|
|
124
136
|
let tokenDecrypt = '';
|
|
125
137
|
|
|
126
138
|
if (secretkey === undefined) {
|
|
127
|
-
tokenDecrypt = token
|
|
139
|
+
tokenDecrypt = token?.split(' ')[0];
|
|
128
140
|
} else {
|
|
129
141
|
tokenDecrypt = secretkey;
|
|
130
142
|
}
|
|
@@ -158,12 +170,14 @@ async function closeSession(req, res) {
|
|
|
158
170
|
const { clearSession = false } = req.body;
|
|
159
171
|
try {
|
|
160
172
|
if (_sessionUtil.clientsArray[session].status === null) {
|
|
161
|
-
return await res.
|
|
173
|
+
return await res.
|
|
174
|
+
status(200).
|
|
175
|
+
json({ status: true, message: 'Session successfully closed' });
|
|
162
176
|
} else {
|
|
163
177
|
_sessionUtil.clientsArray[session] = { status: null };
|
|
164
178
|
|
|
165
179
|
if (clearSession) {
|
|
166
|
-
|
|
180
|
+
const sessionFolder = `${_config.default.customUserDataDir}/${session}`;
|
|
167
181
|
if (_fs.default.existsSync(sessionFolder)) {
|
|
168
182
|
console.log('Deletando pasta: ' + sessionFolder);
|
|
169
183
|
_fs.default.rmdirSync(sessionFolder, { recursive: true });
|
|
@@ -176,11 +190,15 @@ async function closeSession(req, res) {
|
|
|
176
190
|
connected: false
|
|
177
191
|
});
|
|
178
192
|
|
|
179
|
-
return await res.
|
|
193
|
+
return await res.
|
|
194
|
+
status(200).
|
|
195
|
+
json({ status: true, message: 'Session successfully closed' });
|
|
180
196
|
}
|
|
181
197
|
} catch (error) {
|
|
182
198
|
req.logger.error(error);
|
|
183
|
-
return await res.
|
|
199
|
+
return await res.
|
|
200
|
+
status(500).
|
|
201
|
+
json({ status: false, message: 'Error closing session', error });
|
|
184
202
|
}
|
|
185
203
|
}
|
|
186
204
|
|
|
@@ -195,10 +213,14 @@ async function logOutSession(req, res) {
|
|
|
195
213
|
connected: false
|
|
196
214
|
});
|
|
197
215
|
|
|
198
|
-
return await res.
|
|
216
|
+
return await res.
|
|
217
|
+
status(200).
|
|
218
|
+
json({ status: true, message: 'Session successfully closed' });
|
|
199
219
|
} catch (error) {
|
|
200
220
|
req.logger.error(error);
|
|
201
|
-
return await res.
|
|
221
|
+
return await res.
|
|
222
|
+
status(500).
|
|
223
|
+
json({ status: false, message: 'Error closing session', error });
|
|
202
224
|
}
|
|
203
225
|
}
|
|
204
226
|
|
|
@@ -239,7 +261,9 @@ async function downloadMediaByMessage(req, res) {
|
|
|
239
261
|
|
|
240
262
|
const buffer = await client.decryptFile(message);
|
|
241
263
|
|
|
242
|
-
return res.
|
|
264
|
+
return res.
|
|
265
|
+
status(200).
|
|
266
|
+
json({ base64: buffer.toString('base64'), mimetype: message.mimetype });
|
|
243
267
|
} catch (e) {
|
|
244
268
|
req.logger.error(e);
|
|
245
269
|
return res.status(400).json({
|
|
@@ -271,10 +295,16 @@ async function getMediaByMessage(req, res) {
|
|
|
271
295
|
|
|
272
296
|
const buffer = await client.decryptFile(message);
|
|
273
297
|
|
|
274
|
-
return res.
|
|
298
|
+
return res.
|
|
299
|
+
status(200).
|
|
300
|
+
json({ base64: buffer.toString('base64'), mimetype: message.mimetype });
|
|
275
301
|
} catch (ex) {
|
|
276
302
|
req.logger.error(ex);
|
|
277
|
-
return res.status(500).json({
|
|
303
|
+
return res.status(500).json({
|
|
304
|
+
status: 'error',
|
|
305
|
+
message: 'The session is not active',
|
|
306
|
+
error: ex
|
|
307
|
+
});
|
|
278
308
|
}
|
|
279
309
|
}
|
|
280
310
|
|
|
@@ -282,7 +312,10 @@ async function getSessionState(req, res) {
|
|
|
282
312
|
try {
|
|
283
313
|
const { waitQrCode = false } = req.body;
|
|
284
314
|
const client = req.client;
|
|
285
|
-
const qr =
|
|
315
|
+
const qr =
|
|
316
|
+
client?.urlcode != null && client?.urlcode != '' ?
|
|
317
|
+
await _qrcode.default.toDataURL(client.urlcode) :
|
|
318
|
+
null;
|
|
286
319
|
|
|
287
320
|
if ((client == null || client.status == null) && !waitQrCode)
|
|
288
321
|
return res.status(200).json({ status: 'CLOSED', qrcode: null });else
|
|
@@ -295,15 +328,24 @@ async function getSessionState(req, res) {
|
|
|
295
328
|
});
|
|
296
329
|
} catch (ex) {
|
|
297
330
|
req.logger.error(ex);
|
|
298
|
-
return res.status(500).json({
|
|
331
|
+
return res.status(500).json({
|
|
332
|
+
status: 'error',
|
|
333
|
+
message: 'The session is not active',
|
|
334
|
+
error: ex
|
|
335
|
+
});
|
|
299
336
|
}
|
|
300
337
|
}
|
|
301
338
|
|
|
302
339
|
async function getQrCode(req, res) {
|
|
303
340
|
try {
|
|
304
341
|
if (req.client.urlcode) {
|
|
305
|
-
const qr = req.client.urlcode ?
|
|
306
|
-
|
|
342
|
+
const qr = req.client.urlcode ?
|
|
343
|
+
await _qrcode.default.toDataURL(req.client.urlcode) :
|
|
344
|
+
null;
|
|
345
|
+
const img = Buffer.from(
|
|
346
|
+
qr.replace(/^data:image\/(png|jpeg|jpg);base64,/, ''),
|
|
347
|
+
'base64');
|
|
348
|
+
|
|
307
349
|
|
|
308
350
|
res.writeHead(200, {
|
|
309
351
|
'Content-Type': 'image/png',
|
|
@@ -311,29 +353,45 @@ async function getQrCode(req, res) {
|
|
|
311
353
|
});
|
|
312
354
|
res.end(img);
|
|
313
355
|
} else {
|
|
314
|
-
return res.status(200).json({
|
|
356
|
+
return res.status(200).json({
|
|
357
|
+
status: req.client.status,
|
|
358
|
+
message: 'QRCode is not available...'
|
|
359
|
+
});
|
|
315
360
|
}
|
|
316
361
|
} catch (ex) {
|
|
317
362
|
req.logger.error(ex);
|
|
318
|
-
return res.
|
|
363
|
+
return res.
|
|
364
|
+
status(500).
|
|
365
|
+
json({ status: 'error', message: 'Error retrieving QRCode', error: ex });
|
|
319
366
|
}
|
|
320
367
|
}
|
|
321
368
|
|
|
322
369
|
async function killServiceWorker(req, res) {
|
|
323
370
|
try {
|
|
324
|
-
return res.
|
|
371
|
+
return res.
|
|
372
|
+
status(200).
|
|
373
|
+
json({ status: 'error', response: 'Not implemented yet' });
|
|
325
374
|
} catch (ex) {
|
|
326
375
|
req.logger.error(ex);
|
|
327
|
-
return res.status(500).json({
|
|
376
|
+
return res.status(500).json({
|
|
377
|
+
status: 'error',
|
|
378
|
+
message: 'The session is not active',
|
|
379
|
+
error: ex
|
|
380
|
+
});
|
|
328
381
|
}
|
|
329
382
|
}
|
|
330
383
|
|
|
331
384
|
async function restartService(req, res) {
|
|
332
385
|
try {
|
|
333
|
-
return res.
|
|
386
|
+
return res.
|
|
387
|
+
status(200).
|
|
388
|
+
json({ status: 'error', response: 'Not implemented yet' });
|
|
334
389
|
} catch (ex) {
|
|
335
390
|
req.logger.error(ex);
|
|
336
|
-
return res.status(500).json({
|
|
391
|
+
return res.status(500).json({
|
|
392
|
+
status: 'error',
|
|
393
|
+
response: { message: 'The session is not active', error: ex }
|
|
394
|
+
});
|
|
337
395
|
}
|
|
338
396
|
}
|
|
339
397
|
|
|
@@ -356,9 +414,16 @@ async function subscribePresence(req, res) {
|
|
|
356
414
|
await req.client.subscribePresence(contato);
|
|
357
415
|
}
|
|
358
416
|
|
|
359
|
-
return await res.status(200).json({
|
|
417
|
+
return await res.status(200).json({
|
|
418
|
+
status: 'success',
|
|
419
|
+
response: { message: 'Subscribe presence executed' }
|
|
420
|
+
});
|
|
360
421
|
} catch (error) {
|
|
361
|
-
return await res.status(500).json({
|
|
422
|
+
return await res.status(500).json({
|
|
423
|
+
status: 'error',
|
|
424
|
+
message: 'Error on subscribe presence',
|
|
425
|
+
error: error
|
|
426
|
+
});
|
|
362
427
|
}
|
|
363
428
|
}
|
|
364
|
-
//# sourceMappingURL=sessionController.js.map
|
|
429
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9taW1lVHlwZXMiLCJfcXJjb2RlIiwiX3BhY2thZ2UiLCJfY29uZmlnIiwiX2NyZWF0ZVNlc3Npb25VdGlsIiwiX2Z1bmN0aW9ucyIsIl9nZXRBbGxUb2tlbnMiLCJfc2Vzc2lvblV0aWwiLCJTZXNzaW9uVXRpbCIsIkNyZWF0ZVNlc3Npb25VdGlsIiwiZG93bmxvYWRGaWxlRnVuY3Rpb24iLCJtZXNzYWdlIiwiY2xpZW50IiwibG9nZ2VyIiwiYnVmZmVyIiwiZGVjcnlwdEZpbGUiLCJmaWxlbmFtZSIsInQiLCJmcyIsImV4aXN0c1N5bmMiLCJyZXN1bHQiLCJ0eXBlIiwibWltZSIsImV4dGVuc2lvbiIsIm1pbWV0eXBlIiwid3JpdGVGaWxlIiwiZXJyIiwiZXJyb3IiLCJlIiwid2FybiIsImRvd25sb2FkTWVkaWEiLCJkb3dubG9hZCIsInBhdGgiLCJyZXBsYWNlIiwic3RhcnRBbGxTZXNzaW9ucyIsInJlcSIsInJlcyIsInNlY3JldGtleSIsInBhcmFtcyIsImF1dGhvcml6YXRpb24iLCJ0b2tlbiIsImhlYWRlcnMiLCJ0b2tlbkRlY3J5cHQiLCJ1bmRlZmluZWQiLCJzcGxpdCIsImFsbFNlc3Npb25zIiwiZ2V0QWxsVG9rZW5zIiwic2VydmVyT3B0aW9ucyIsInNlY3JldEtleSIsInN0YXR1cyIsImpzb24iLCJyZXNwb25zZSIsIm1hcCIsInNlc3Npb24iLCJ1dGlsIiwib3BlbmRhdGEiLCJzaG93QWxsU2Vzc2lvbnMiLCJhcnIiLCJPYmplY3QiLCJrZXlzIiwiY2xpZW50c0FycmF5IiwiZm9yRWFjaCIsIml0ZW0iLCJwdXNoIiwic3RhcnRTZXNzaW9uIiwid2FpdFFyQ29kZSIsImJvZHkiLCJnZXRTZXNzaW9uU3RhdGUiLCJjbG9zZVNlc3Npb24iLCJjbGVhclNlc3Npb24iLCJzZXNzaW9uRm9sZGVyIiwiY29uZmlnIiwiY3VzdG9tVXNlckRhdGFEaXIiLCJjb25zb2xlIiwibG9nIiwicm1kaXJTeW5jIiwicmVjdXJzaXZlIiwiY2xvc2UiLCJpbyIsImVtaXQiLCJjYWxsV2ViSG9vayIsImNvbm5lY3RlZCIsImxvZ091dFNlc3Npb24iLCJsb2dvdXQiLCJjaGVja0Nvbm5lY3Rpb25TZXNzaW9uIiwiaXNDb25uZWN0ZWQiLCJkb3dubG9hZE1lZGlhQnlNZXNzYWdlIiwibWVzc2FnZUlkIiwiaXNNZWRpYSIsImdldE1lc3NhZ2VCeUlkIiwiaXNNTVMiLCJiYXNlNjQiLCJ0b1N0cmluZyIsImdldE1lZGlhQnlNZXNzYWdlIiwiZXgiLCJxciIsInVybGNvZGUiLCJRUkNvZGUiLCJ0b0RhdGFVUkwiLCJxcmNvZGUiLCJ2ZXJzaW9uIiwiZ2V0UXJDb2RlIiwiaW1nIiwiQnVmZmVyIiwiZnJvbSIsIndyaXRlSGVhZCIsImxlbmd0aCIsImVuZCIsImtpbGxTZXJ2aWNlV29ya2VyIiwicmVzdGFydFNlcnZpY2UiLCJzdWJzY3JpYmVQcmVzZW5jZSIsInBob25lIiwiaXNHcm91cCIsImFsbCIsImNvbnRhY3RzIiwiZ3JvdXBzIiwiZ2V0QWxsR3JvdXBzIiwicCIsImlkIiwiX3NlcmlhbGl6ZWQiLCJjaGF0cyIsImdldEFsbENvbnRhY3RzIiwiYyIsImNvbnRhdG8iLCJjb250YWN0VG9BcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL3Nlc3Npb25Db250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMSBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1jbGVhclNlc3Npb25pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IE1lc3NhZ2UsIFdoYXRzYXBwIH0gZnJvbSAnQHdwcGNvbm5lY3QtdGVhbS93cHBjb25uZWN0JztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgbWltZSBmcm9tICdtaW1lLXR5cGVzJztcbmltcG9ydCBRUkNvZGUgZnJvbSAncXJjb2RlJztcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJ3dpbnN0b24nO1xuXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi4vLi4vcGFja2FnZS5qc29uJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9SZXF1ZXN0JztcbmltcG9ydCBDcmVhdGVTZXNzaW9uVXRpbCBmcm9tICcuLi91dGlsL2NyZWF0ZVNlc3Npb25VdGlsJztcbmltcG9ydCB7IGNhbGxXZWJIb29rLCBjb250YWN0VG9BcnJheSB9IGZyb20gJy4uL3V0aWwvZnVuY3Rpb25zJztcbmltcG9ydCBnZXRBbGxUb2tlbnMgZnJvbSAnLi4vdXRpbC9nZXRBbGxUb2tlbnMnO1xuaW1wb3J0IHsgY2xpZW50c0FycmF5IH0gZnJvbSAnLi4vdXRpbC9zZXNzaW9uVXRpbCc7XG5cbmNvbnN0IFNlc3Npb25VdGlsID0gbmV3IENyZWF0ZVNlc3Npb25VdGlsKCk7XG5cbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkRmlsZUZ1bmN0aW9uKFxuICBtZXNzYWdlOiBNZXNzYWdlLFxuICBjbGllbnQ6IFdoYXRzYXBwLFxuICBsb2dnZXI6IExvZ2dlclxuKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRlY3J5cHRGaWxlKG1lc3NhZ2UpO1xuXG4gICAgY29uc3QgZmlsZW5hbWUgPSBgLi9XaGF0c0FwcEltYWdlcy9maWxlJHttZXNzYWdlLnR9YDtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZW5hbWUpKSB7XG4gICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSAncHR0Jykge1xuICAgICAgICByZXN1bHQgPSBgJHtmaWxlbmFtZX0ub2dhYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGAke2ZpbGVuYW1lfS4ke21pbWUuZXh0ZW5zaW9uKG1lc3NhZ2UubWltZXR5cGUpfWA7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShyZXN1bHQsIGJ1ZmZlciwgKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7ZmlsZW5hbWV9LiR7bWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSl9YDtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoZSk7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAnRXJybyBhbyBkZXNjcmlwdG9ncmFmYXIgYSBtaWRpYSwgdGVudGFuZG8gZmF6ZXIgbyBkb3dubG9hZCBkaXJldG8uLi4nXG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRvd25sb2FkTWVkaWEobWVzc2FnZSk7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IGAuL1doYXRzQXBwSW1hZ2VzL2ZpbGUke21lc3NhZ2UudH1gO1xuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVuYW1lKSkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09ICdwdHQnKSB7XG4gICAgICAgICAgcmVzdWx0ID0gYCR7ZmlsZW5hbWV9Lm9nYWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gYCR7ZmlsZW5hbWV9LiR7bWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSl9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShyZXN1bHQsIGJ1ZmZlciwgKGVycikgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgJHtmaWxlbmFtZX0uJHttaW1lLmV4dGVuc2lvbihtZXNzYWdlLm1pbWV0eXBlKX1gO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihlKTtcbiAgICAgIGxvZ2dlci53YXJuKCdOw6NvIGZvaSBwb3Nzw612ZWwgYmFpeGFyIGEgbcOtZGlhLi4uJyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3dubG9hZChtZXNzYWdlOiBhbnksIGNsaWVudDogYW55LCBsb2dnZXI6IGFueSkge1xuICB0cnkge1xuICAgIGNvbnN0IHBhdGggPSBhd2FpdCBkb3dubG9hZEZpbGVGdW5jdGlvbihtZXNzYWdlLCBjbGllbnQsIGxvZ2dlcik7XG4gICAgcmV0dXJuIHBhdGg/LnJlcGxhY2UoJy4vJywgJycpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmVycm9yKGUpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydEFsbFNlc3Npb25zKHJlcTogUmVxdWVzdCwgcmVzOiBhbnkpIHtcbiAgY29uc3QgeyBzZWNyZXRrZXkgfSA9IHJlcS5wYXJhbXM7XG4gIGNvbnN0IHsgYXV0aG9yaXphdGlvbjogdG9rZW4gfSA9IHJlcS5oZWFkZXJzO1xuXG4gIGxldCB0b2tlbkRlY3J5cHQgPSAnJztcblxuICBpZiAoc2VjcmV0a2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICB0b2tlbkRlY3J5cHQgPSAodG9rZW4gYXMgYW55KS5zcGxpdCgnICcpWzBdO1xuICB9IGVsc2Uge1xuICAgIHRva2VuRGVjcnlwdCA9IHNlY3JldGtleTtcbiAgfVxuXG4gIGNvbnN0IGFsbFNlc3Npb25zID0gYXdhaXQgZ2V0QWxsVG9rZW5zKHJlcSk7XG5cbiAgaWYgKHRva2VuRGVjcnlwdCAhPT0gcmVxLnNlcnZlck9wdGlvbnMuc2VjcmV0S2V5KSB7XG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKHtcbiAgICAgIHJlc3BvbnNlOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ1RoZSB0b2tlbiBpcyBpbmNvcnJlY3QnLFxuICAgIH0pO1xuICB9XG5cbiAgYWxsU2Vzc2lvbnMubWFwKGFzeW5jIChzZXNzaW9uOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB1dGlsID0gbmV3IENyZWF0ZVNlc3Npb25VdGlsKCk7XG4gICAgYXdhaXQgdXRpbC5vcGVuZGF0YShyZXEsIHNlc3Npb24pO1xuICB9KTtcblxuICByZXR1cm4gYXdhaXQgcmVzXG4gICAgLnN0YXR1cygyMDEpXG4gICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgbWVzc2FnZTogJ1N0YXJ0aW5nIGFsbCBzZXNzaW9ucycgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93QWxsU2Vzc2lvbnMocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICBjb25zdCB7IHNlY3JldGtleSB9ID0gcmVxLnBhcmFtcztcbiAgY29uc3QgeyBhdXRob3JpemF0aW9uOiB0b2tlbiB9ID0gcmVxLmhlYWRlcnM7XG5cbiAgbGV0IHRva2VuRGVjcnlwdDogYW55ID0gJyc7XG5cbiAgaWYgKHNlY3JldGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdG9rZW5EZWNyeXB0ID0gdG9rZW4/LnNwbGl0KCcgJylbMF07XG4gIH0gZWxzZSB7XG4gICAgdG9rZW5EZWNyeXB0ID0gc2VjcmV0a2V5O1xuICB9XG5cbiAgY29uc3QgYXJyOiBhbnkgPSBbXTtcblxuICBpZiAodG9rZW5EZWNyeXB0ICE9PSByZXEuc2VydmVyT3B0aW9ucy5zZWNyZXRLZXkpIHtcbiAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgICAgcmVzcG9uc2U6IGZhbHNlLFxuICAgICAgbWVzc2FnZTogJ1RoZSB0b2tlbiBpcyBpbmNvcnJlY3QnLFxuICAgIH0pO1xuICB9XG5cbiAgT2JqZWN0LmtleXMoY2xpZW50c0FycmF5KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgYXJyLnB1c2goeyBzZXNzaW9uOiBpdGVtIH0pO1xuICB9KTtcblxuICByZXR1cm4gcmVzLnN0YXR1cygyMDApLmpzb24oeyByZXNwb25zZTogYXJyIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXNzaW9uKHJlcTogUmVxdWVzdCwgcmVzOiBhbnkpIHtcbiAgY29uc3Qgc2Vzc2lvbiA9IHJlcS5zZXNzaW9uO1xuICBjb25zdCB7IHdhaXRRckNvZGUgPSBmYWxzZSB9ID0gcmVxLmJvZHk7XG5cbiAgYXdhaXQgZ2V0U2Vzc2lvblN0YXRlKHJlcSwgcmVzKTtcbiAgYXdhaXQgU2Vzc2lvblV0aWwub3BlbmRhdGEocmVxLCBzZXNzaW9uLCB3YWl0UXJDb2RlID8gcmVzIDogbnVsbCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbG9zZVNlc3Npb24ocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICBjb25zdCBzZXNzaW9uID0gcmVxLnNlc3Npb247XG4gIGNvbnN0IHsgY2xlYXJTZXNzaW9uID0gZmFsc2UgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGlmICgoY2xpZW50c0FycmF5IGFzIGFueSlbc2Vzc2lvbl0uc3RhdHVzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gYXdhaXQgcmVzXG4gICAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgICAuanNvbih7IHN0YXR1czogdHJ1ZSwgbWVzc2FnZTogJ1Nlc3Npb24gc3VjY2Vzc2Z1bGx5IGNsb3NlZCcgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIChjbGllbnRzQXJyYXkgYXMgYW55KVtzZXNzaW9uXSA9IHsgc3RhdHVzOiBudWxsIH07XG5cbiAgICAgIGlmIChjbGVhclNlc3Npb24pIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbkZvbGRlciA9IGAke2NvbmZpZy5jdXN0b21Vc2VyRGF0YURpcn0vJHtzZXNzaW9ufWA7XG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHNlc3Npb25Gb2xkZXIpKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0RlbGV0YW5kbyBwYXN0YTogJyArIHNlc3Npb25Gb2xkZXIpO1xuICAgICAgICAgIGZzLnJtZGlyU3luYyhzZXNzaW9uRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgcmVxLmNsaWVudC5jbG9zZSgpO1xuICAgICAgcmVxLmlvLmVtaXQoJ3doYXRzYXBwLXN0YXR1cycsIGZhbHNlKTtcbiAgICAgIGNhbGxXZWJIb29rKHJlcS5jbGllbnQsIHJlcSwgJ2Nsb3Nlc2Vzc2lvbicsIHtcbiAgICAgICAgbWVzc2FnZTogYFNlc3Npb246ICR7c2Vzc2lvbn0gZGlzY29ubmVjdGVkYCxcbiAgICAgICAgY29ubmVjdGVkOiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYXdhaXQgcmVzXG4gICAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgICAuanNvbih7IHN0YXR1czogdHJ1ZSwgbWVzc2FnZTogJ1Nlc3Npb24gc3VjY2Vzc2Z1bGx5IGNsb3NlZCcgfSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJldHVybiBhd2FpdCByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3IgY2xvc2luZyBzZXNzaW9uJywgZXJyb3IgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvZ091dFNlc3Npb24ocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICB0cnkge1xuICAgIGNvbnN0IHNlc3Npb24gPSByZXEuc2Vzc2lvbjtcbiAgICBhd2FpdCByZXEuY2xpZW50LmxvZ291dCgpO1xuXG4gICAgcmVxLmlvLmVtaXQoJ3doYXRzYXBwLXN0YXR1cycsIGZhbHNlKTtcbiAgICBjYWxsV2ViSG9vayhyZXEuY2xpZW50LCByZXEsICdsb2dvdXRzZXNzaW9uJywge1xuICAgICAgbWVzc2FnZTogYFNlc3Npb246ICR7c2Vzc2lvbn0gbG9nZ2VkIG91dGAsXG4gICAgICBjb25uZWN0ZWQ6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogdHJ1ZSwgbWVzc2FnZTogJ1Nlc3Npb24gc3VjY2Vzc2Z1bGx5IGNsb3NlZCcgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcmV0dXJuIGF3YWl0IHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogZmFsc2UsIG1lc3NhZ2U6ICdFcnJvciBjbG9zaW5nIHNlc3Npb24nLCBlcnJvciB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tDb25uZWN0aW9uU2Vzc2lvbihyZXE6IFJlcXVlc3QsIHJlczogYW55KSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcmVxLmNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiB0cnVlLCBtZXNzYWdlOiAnQ29ubmVjdGVkJyB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6IGZhbHNlLCBtZXNzYWdlOiAnRGlzY29ubmVjdGVkJyB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bmxvYWRNZWRpYUJ5TWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogYW55KSB7XG4gIGNvbnN0IGNsaWVudCA9IHJlcS5jbGllbnQ7XG4gIGNvbnN0IHsgbWVzc2FnZUlkIH0gPSByZXEuYm9keTtcblxuICBsZXQgbWVzc2FnZTtcblxuICB0cnkge1xuICAgIGlmICghbWVzc2FnZUlkLmlzTWVkaWEgfHwgIW1lc3NhZ2VJZC50eXBlKSB7XG4gICAgICBtZXNzYWdlID0gYXdhaXQgY2xpZW50LmdldE1lc3NhZ2VCeUlkKG1lc3NhZ2VJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlSWQ7XG4gICAgfVxuXG4gICAgaWYgKCFtZXNzYWdlKVxuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKHtcbiAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnTWVzc2FnZSBub3QgZm91bmQnLFxuICAgICAgfSk7XG5cbiAgICBpZiAoIShtZXNzYWdlWydtaW1ldHlwZSddIHx8IG1lc3NhZ2UuaXNNZWRpYSB8fCBtZXNzYWdlLmlzTU1TKSlcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbih7XG4gICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogJ01lc3NhZ2UgZG9lcyBub3QgY29udGFpbiBtZWRpYScsXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGNsaWVudC5kZWNyeXB0RmlsZShtZXNzYWdlKTtcblxuICAgIHJldHVybiByZXNcbiAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgLmpzb24oeyBiYXNlNjQ6IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0JyksIG1pbWV0eXBlOiBtZXNzYWdlLm1pbWV0eXBlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0RlY3J5cHQgZmlsZSBlcnJvcicsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWVkaWFCeU1lc3NhZ2UocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICBjb25zdCBjbGllbnQgPSByZXEuY2xpZW50O1xuICBjb25zdCB7IG1lc3NhZ2VJZCB9ID0gcmVxLnBhcmFtcztcblxuICB0cnkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBjbGllbnQuZ2V0TWVzc2FnZUJ5SWQobWVzc2FnZUlkKTtcblxuICAgIGlmICghbWVzc2FnZSlcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbih7XG4gICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogJ01lc3NhZ2Ugbm90IGZvdW5kJyxcbiAgICAgIH0pO1xuXG4gICAgaWYgKCEobWVzc2FnZVsnbWltZXR5cGUnXSB8fCBtZXNzYWdlLmlzTWVkaWEgfHwgbWVzc2FnZS5pc01NUykpXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6ICdNZXNzYWdlIGRvZXMgbm90IGNvbnRhaW4gbWVkaWEnLFxuICAgICAgfSk7XG5cbiAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjbGllbnQuZGVjcnlwdEZpbGUobWVzc2FnZSk7XG5cbiAgICByZXR1cm4gcmVzXG4gICAgICAuc3RhdHVzKDIwMClcbiAgICAgIC5qc29uKHsgYmFzZTY0OiBidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpLCBtaW1ldHlwZTogbWVzc2FnZS5taW1ldHlwZSB9KTtcbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgICByZXR1cm4gcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ1RoZSBzZXNzaW9uIGlzIG5vdCBhY3RpdmUnLFxuICAgICAgZXJyb3I6IGV4LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTZXNzaW9uU3RhdGUocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICB0cnkge1xuICAgIGNvbnN0IHsgd2FpdFFyQ29kZSA9IGZhbHNlIH0gPSByZXEuYm9keTtcbiAgICBjb25zdCBjbGllbnQgPSByZXEuY2xpZW50O1xuICAgIGNvbnN0IHFyID1cbiAgICAgIGNsaWVudD8udXJsY29kZSAhPSBudWxsICYmIGNsaWVudD8udXJsY29kZSAhPSAnJ1xuICAgICAgICA/IGF3YWl0IFFSQ29kZS50b0RhdGFVUkwoY2xpZW50LnVybGNvZGUpXG4gICAgICAgIDogbnVsbDtcblxuICAgIGlmICgoY2xpZW50ID09IG51bGwgfHwgY2xpZW50LnN0YXR1cyA9PSBudWxsKSAmJiAhd2FpdFFyQ29kZSlcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ0NMT1NFRCcsIHFyY29kZTogbnVsbCB9KTtcbiAgICBlbHNlIGlmIChjbGllbnQgIT0gbnVsbClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDIwMCkuanNvbih7XG4gICAgICAgIHN0YXR1czogY2xpZW50LnN0YXR1cyxcbiAgICAgICAgcXJjb2RlOiBxcixcbiAgICAgICAgdXJsY29kZTogY2xpZW50LnVybGNvZGUsXG4gICAgICAgIHZlcnNpb246IHZlcnNpb24sXG4gICAgICB9KTtcbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgICByZXR1cm4gcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ1RoZSBzZXNzaW9uIGlzIG5vdCBhY3RpdmUnLFxuICAgICAgZXJyb3I6IGV4LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRRckNvZGUocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICB0cnkge1xuICAgIGlmIChyZXEuY2xpZW50LnVybGNvZGUpIHtcbiAgICAgIGNvbnN0IHFyID0gcmVxLmNsaWVudC51cmxjb2RlXG4gICAgICAgID8gYXdhaXQgUVJDb2RlLnRvRGF0YVVSTChyZXEuY2xpZW50LnVybGNvZGUpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGNvbnN0IGltZyA9IEJ1ZmZlci5mcm9tKFxuICAgICAgICAocXIgYXMgYW55KS5yZXBsYWNlKC9eZGF0YTppbWFnZVxcLyhwbmd8anBlZ3xqcGcpO2Jhc2U2NCwvLCAnJyksXG4gICAgICAgICdiYXNlNjQnXG4gICAgICApO1xuXG4gICAgICByZXMud3JpdGVIZWFkKDIwMCwge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2ltYWdlL3BuZycsXG4gICAgICAgICdDb250ZW50LUxlbmd0aCc6IGltZy5sZW5ndGgsXG4gICAgICB9KTtcbiAgICAgIHJlcy5lbmQoaW1nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoMjAwKS5qc29uKHtcbiAgICAgICAgc3RhdHVzOiByZXEuY2xpZW50LnN0YXR1cyxcbiAgICAgICAgbWVzc2FnZTogJ1FSQ29kZSBpcyBub3QgYXZhaWxhYmxlLi4uJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgICByZXR1cm4gcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3IgcmV0cmlldmluZyBRUkNvZGUnLCBlcnJvcjogZXggfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtpbGxTZXJ2aWNlV29ya2VyKHJlcTogUmVxdWVzdCwgcmVzOiBhbnkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVzXG4gICAgICAuc3RhdHVzKDIwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCByZXNwb25zZTogJ05vdCBpbXBsZW1lbnRlZCB5ZXQnIH0pO1xuICB9IGNhdGNoIChleCkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXgpO1xuICAgIHJldHVybiByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnVGhlIHNlc3Npb24gaXMgbm90IGFjdGl2ZScsXG4gICAgICBlcnJvcjogZXgsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RhcnRTZXJ2aWNlKHJlcTogUmVxdWVzdCwgcmVzOiBhbnkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVzXG4gICAgICAuc3RhdHVzKDIwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCByZXNwb25zZTogJ05vdCBpbXBsZW1lbnRlZCB5ZXQnIH0pO1xuICB9IGNhdGNoIChleCkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXgpO1xuICAgIHJldHVybiByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICByZXNwb25zZTogeyBtZXNzYWdlOiAnVGhlIHNlc3Npb24gaXMgbm90IGFjdGl2ZScsIGVycm9yOiBleCB9LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdWJzY3JpYmVQcmVzZW5jZShyZXE6IFJlcXVlc3QsIHJlczogYW55KSB7XG4gIHRyeSB7XG4gICAgY29uc3QgeyBwaG9uZSwgaXNHcm91cCA9IGZhbHNlLCBhbGwgPSBmYWxzZSB9ID0gcmVxLmJvZHk7XG5cbiAgICBpZiAoYWxsKSB7XG4gICAgICBsZXQgY29udGFjdHM7XG4gICAgICBpZiAoaXNHcm91cCkge1xuICAgICAgICBjb25zdCBncm91cHMgPSBhd2FpdCByZXEuY2xpZW50LmdldEFsbEdyb3VwcyhmYWxzZSk7XG4gICAgICAgIGNvbnRhY3RzID0gZ3JvdXBzLm1hcCgocDogYW55KSA9PiBwLmlkLl9zZXJpYWxpemVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNoYXRzID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxDb250YWN0cygpO1xuICAgICAgICBjb250YWN0cyA9IGNoYXRzLm1hcCgoYzogYW55KSA9PiBjLmlkLl9zZXJpYWxpemVkKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHJlcS5jbGllbnQuc3Vic2NyaWJlUHJlc2VuY2UoY29udGFjdHMpO1xuICAgIH0gZWxzZVxuICAgICAgZm9yIChjb25zdCBjb250YXRvIG9mIGNvbnRhY3RUb0FycmF5KHBob25lLCBpc0dyb3VwKSkge1xuICAgICAgICBhd2FpdCByZXEuY2xpZW50LnN1YnNjcmliZVByZXNlbmNlKGNvbnRhdG8pO1xuICAgICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHJlcy5zdGF0dXMoMjAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgcmVzcG9uc2U6IHsgbWVzc2FnZTogJ1N1YnNjcmliZSBwcmVzZW5jZSBleGVjdXRlZCcgfSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gYXdhaXQgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIHN1YnNjcmliZSBwcmVzZW5jZScsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxJQUFBQSxHQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7OztBQUdBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTs7QUFFQSxJQUFBSyxrQkFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsWUFBQSxHQUFBUixPQUFBLHdCQUFtRCxDQTNCbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBZUEsTUFBTVMsV0FBVyxHQUFHLElBQUlDLDBCQUFpQixFQUFFLENBRTNDLGVBQWVDLG9CQUFvQkEsQ0FDakNDLE9BQWdCLEVBQ2hCQyxNQUFnQixFQUNoQkMsTUFBYyxFQUNkLENBQ0EsSUFBSSxDQUNGLE1BQU1DLE1BQU0sR0FBRyxNQUFNRixNQUFNLENBQUNHLFdBQVcsQ0FBQ0osT0FBTyxDQUFDLENBRWhELE1BQU1LLFFBQVEsR0FBSSx3QkFBdUJMLE9BQU8sQ0FBQ00sQ0FBRSxFQUFDLENBQ3BELElBQUksQ0FBQ0MsV0FBRSxDQUFDQyxVQUFVLENBQUNILFFBQVEsQ0FBQyxFQUFFLENBQzVCLElBQUlJLE1BQU0sR0FBRyxFQUFFO01BQ2YsSUFBSVQs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
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.sendImageStorie = sendImageStorie;exports.sendTextStorie = sendTextStorie;exports.sendVideoStorie = sendVideoStorie;
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.sendImageStorie = sendImageStorie;exports.sendTextStorie = sendTextStorie;exports.sendVideoStorie = sendVideoStorie;
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _functions = require("../util/functions");
|
|
2
5
|
|
|
3
6
|
function returnError(req, res, error) {
|
|
4
7
|
req.logger.error(error);
|
|
5
|
-
res.
|
|
8
|
+
res.
|
|
9
|
+
status(500).
|
|
10
|
+
json({ status: 'Error', message: 'Erro ao enviar status.', error: error });
|
|
6
11
|
}
|
|
7
12
|
|
|
8
13
|
async function returnSucess(res, data) {
|
|
@@ -18,10 +23,11 @@ async function sendTextStorie(req, res) {
|
|
|
18
23
|
});
|
|
19
24
|
|
|
20
25
|
try {
|
|
21
|
-
|
|
26
|
+
const results = [];
|
|
22
27
|
results.push(await req.client.sendTextStatus(text, options));
|
|
23
28
|
|
|
24
|
-
if (results.length === 0)
|
|
29
|
+
if (results.length === 0)
|
|
30
|
+
return res.status(400).json('Error sending the text of stories');
|
|
25
31
|
returnSucess(res, results);
|
|
26
32
|
} catch (error) {
|
|
27
33
|
returnError(req, res, error);
|
|
@@ -39,10 +45,11 @@ async function sendImageStorie(req, res) {
|
|
|
39
45
|
const pathFile = path || req.file.path;
|
|
40
46
|
|
|
41
47
|
try {
|
|
42
|
-
|
|
43
|
-
results.push(await req.client.sendImageStatus(pathFile
|
|
48
|
+
const results = [];
|
|
49
|
+
results.push(await req.client.sendImageStatus(pathFile));
|
|
44
50
|
|
|
45
|
-
if (results.length === 0)
|
|
51
|
+
if (results.length === 0)
|
|
52
|
+
return res.status(400).json('Error sending the image of stories');
|
|
46
53
|
returnSucess(res, results);
|
|
47
54
|
} catch (error) {
|
|
48
55
|
returnError(req, res, error);
|
|
@@ -60,15 +67,16 @@ async function sendVideoStorie(req, res) {
|
|
|
60
67
|
const pathFile = path || req.file.path;
|
|
61
68
|
|
|
62
69
|
try {
|
|
63
|
-
|
|
70
|
+
const results = [];
|
|
64
71
|
|
|
65
72
|
results.push(await req.client.sendVideoStatus(pathFile));
|
|
66
73
|
|
|
67
|
-
if (results.length === 0)
|
|
74
|
+
if (results.length === 0)
|
|
75
|
+
return res.status(400).json('Error sending message');
|
|
68
76
|
if (req.file) await (0, _functions.unlinkAsync)(pathFile);
|
|
69
77
|
returnSucess(res, results);
|
|
70
78
|
} catch (error) {
|
|
71
79
|
returnError(req, res, error);
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnVuY3Rpb25zIiwicmVxdWlyZSIsInJldHVybkVycm9yIiwicmVxIiwicmVzIiwiZXJyb3IiLCJsb2dnZXIiLCJzdGF0dXMiLCJqc29uIiwibWVzc2FnZSIsInJldHVyblN1Y2VzcyIsImRhdGEiLCJyZXNwb25zZSIsIm1hcHBlciIsInNlbmRUZXh0U3RvcmllIiwidGV4dCIsIm9wdGlvbnMiLCJib2R5Iiwic2VuZCIsInJlc3VsdHMiLCJwdXNoIiwiY2xpZW50Iiwic2VuZFRleHRTdGF0dXMiLCJsZW5ndGgiLCJzZW5kSW1hZ2VTdG9yaWUiLCJwYXRoIiwiZmlsZSIsInBhdGhGaWxlIiwic2VuZEltYWdlU3RhdHVzIiwic2VuZFZpZGVvU3RvcmllIiwic2VuZFZpZGVvU3RhdHVzIiwidW5saW5rQXN5bmMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9zdGF0dXNDb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9SZXF1ZXN0JztcbmltcG9ydCB7IHVubGlua0FzeW5jIH0gZnJvbSAnLi4vdXRpbC9mdW5jdGlvbnMnO1xuXG5mdW5jdGlvbiByZXR1cm5FcnJvcihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIGVycm9yOiBhbnkpIHtcbiAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gIHJlc1xuICAgIC5zdGF0dXMoNTAwKVxuICAgIC5qc29uKHsgc3RhdHVzOiAnRXJyb3InLCBtZXNzYWdlOiAnRXJybyBhbyBlbnZpYXIgc3RhdHVzLicsIGVycm9yOiBlcnJvciB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0dXJuU3VjZXNzKHJlczogUmVzcG9uc2UsIGRhdGE6IGFueSkge1xuICByZXMuc3RhdHVzKDIwMSkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogZGF0YSwgbWFwcGVyOiAncmV0dXJuJyB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRUZXh0U3RvcmllKHJlcTogUmVxdWVzdCwgcmVzOiBhbnkpIHtcbiAgY29uc3QgeyB0ZXh0LCBvcHRpb25zIH0gPSByZXEuYm9keTtcblxuICBpZiAoIXRleHQpXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5zZW5kKHtcbiAgICAgIG1lc3NhZ2U6ICdUZXh0IHdhcyBub3QgaW5mb3JtZWQnLFxuICAgIH0pO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZFRleHRTdGF0dXModGV4dCwgb3B0aW9ucykpO1xuXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKCdFcnJvciBzZW5kaW5nIHRoZSB0ZXh0IG9mIHN0b3JpZXMnKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kSW1hZ2VTdG9yaWUocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICBjb25zdCB7IHBhdGgsIG9wdGlvbnMgfSA9IHJlcS5ib2R5O1xuXG4gIGlmICghcGF0aCAmJiAhcmVxLmZpbGUpXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5zZW5kKHtcbiAgICAgIG1lc3NhZ2U6ICdTZW5kaW5nIHRoZSBpbWFnZSBpcyBtYW5kYXRvcnknLFxuICAgIH0pO1xuXG4gIGNvbnN0IHBhdGhGaWxlID0gcGF0aCB8fCByZXEuZmlsZS5wYXRoO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZEltYWdlU3RhdHVzKHBhdGhGaWxlKSk7XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oJ0Vycm9yIHNlbmRpbmcgdGhlIGltYWdlIG9mIHN0b3JpZXMnKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kVmlkZW9TdG9yaWUocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICBjb25zdCB7IHBhdGggfSA9IHJlcS5ib2R5O1xuXG4gIGlmICghcGF0aCAmJiAhcmVxLmZpbGUpXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5zZW5kKHtcbiAgICAgIG1lc3NhZ2U6ICdTZW5kaW5nIHRoZSBWaWRlbyBpcyBtYW5kYXRvcnknLFxuICAgIH0pO1xuXG4gIGNvbnN0IHBhdGhGaWxlID0gcGF0aCB8fCByZXEuZmlsZS5wYXRoO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG5cbiAgICByZXN1bHRzLnB1c2goYXdhaXQgcmVxLmNsaWVudC5zZW5kVmlkZW9TdGF0dXMocGF0aEZpbGUpKTtcblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgaWYgKHJlcS5maWxlKSBhd2FpdCB1bmxpbmtBc3luYyhwYXRoRmlsZSk7XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFHQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7O0FBRUEsU0FBU0MsV0FBV0EsQ0FB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
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.initServer = initServer;
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.initServer = initServer;exports.logger = void 0;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
@@ -14,20 +14,24 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var _logger = require("./util/logger");
|
|
20
|
-
var _functions = require("./util/functions");
|
|
17
|
+
var _wppconnect = require("@wppconnect-team/wppconnect");
|
|
21
18
|
var _cors = _interopRequireDefault(require("cors"));
|
|
22
19
|
var _express = _interopRequireDefault(require("express"));
|
|
23
|
-
var _http = require("http");
|
|
24
|
-
var _socket = require("socket.io");
|
|
25
|
-
var _routes = _interopRequireDefault(require("./routes"));
|
|
26
|
-
var _config = _interopRequireDefault(require("./config.json"));
|
|
27
20
|
var _expressQueryBoolean = _interopRequireDefault(require("express-query-boolean"));
|
|
21
|
+
var _http = require("http");
|
|
28
22
|
var _mergeDeep = _interopRequireDefault(require("merge-deep"));
|
|
23
|
+
var _socket = require("socket.io");
|
|
24
|
+
|
|
25
|
+
var _package = require("../package.json");
|
|
26
|
+
var _config = _interopRequireDefault(require("./config"));
|
|
29
27
|
var _index = require("./mapper/index");
|
|
30
|
-
var
|
|
28
|
+
var _routes = _interopRequireDefault(require("./routes"));
|
|
29
|
+
var _functions = require("./util/functions");
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
var _logger = require("./util/logger"); /*
|
|
31
35
|
* Copyright 2021 WPPConnect Team
|
|
32
36
|
*
|
|
33
37
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -41,13 +45,10 @@ var _package = require("../package.json"); /*
|
|
|
41
45
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
42
46
|
* See the License for the specific language governing permissions and
|
|
43
47
|
* limitations under the License.
|
|
44
|
-
*/require('dotenv').config();
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
cors: true,
|
|
49
|
-
origins: ['*']
|
|
50
|
-
});
|
|
48
|
+
*/ //require('dotenv').config();
|
|
49
|
+
const logger = (0, _logger.createLogger)(_config.default.log);exports.logger = logger;function initServer(serverOptions) {if (typeof serverOptions !== 'object') {serverOptions = {};}serverOptions = (0, _mergeDeep.default)({}, _config.default, serverOptions);_wppconnect.defaultLogger.level = serverOptions.log.level;(0, _functions.setMaxListners)(serverOptions);
|
|
50
|
+
const app = (0, _express.default)();
|
|
51
|
+
const PORT = process.env.PORT || serverOptions.port;
|
|
51
52
|
|
|
52
53
|
app.use((0, _cors.default)());
|
|
53
54
|
app.use(_express.default.json({ limit: '50mb' }));
|
|
@@ -61,7 +62,7 @@ var _package = require("../package.json"); /*
|
|
|
61
62
|
req.logger = logger;
|
|
62
63
|
req.io = io;
|
|
63
64
|
|
|
64
|
-
|
|
65
|
+
const oldSend = res.send;
|
|
65
66
|
|
|
66
67
|
res.send = async function (data) {
|
|
67
68
|
const content = req.headers['content-type'];
|
|
@@ -69,7 +70,11 @@ var _package = require("../package.json"); /*
|
|
|
69
70
|
data = JSON.parse(data);
|
|
70
71
|
if (!data.session) data.session = req.client ? req.client.session : '';
|
|
71
72
|
if (data.mapper && req.serverOptions.mapper.enable) {
|
|
72
|
-
data.response = await (0, _index.convert)(
|
|
73
|
+
data.response = await (0, _index.convert)(
|
|
74
|
+
req.serverOptions.mapper.prefix,
|
|
75
|
+
data.response,
|
|
76
|
+
data.mapper);
|
|
77
|
+
|
|
73
78
|
delete data.mapper;
|
|
74
79
|
}
|
|
75
80
|
}
|
|
@@ -79,6 +84,16 @@ var _package = require("../package.json"); /*
|
|
|
79
84
|
next();
|
|
80
85
|
});
|
|
81
86
|
|
|
87
|
+
app.use(_routes.default);
|
|
88
|
+
|
|
89
|
+
(0, _functions.createFolders)();
|
|
90
|
+
const http = (0, _http.createServer)(app);
|
|
91
|
+
const io = new _socket.Server(http, {
|
|
92
|
+
cors: {
|
|
93
|
+
origin: ['*']
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
82
97
|
io.on('connection', (sock) => {
|
|
83
98
|
logger.info(`ID: ${sock.id} entrou`);
|
|
84
99
|
|
|
@@ -87,22 +102,29 @@ var _package = require("../package.json"); /*
|
|
|
87
102
|
});
|
|
88
103
|
});
|
|
89
104
|
|
|
90
|
-
app.use(_routes.default);
|
|
91
|
-
|
|
92
|
-
(0, _functions.createFolders)();
|
|
93
|
-
|
|
94
105
|
http.listen(PORT, () => {
|
|
95
106
|
logger.info(`Server is running on port: ${PORT}`);
|
|
96
|
-
logger.info(
|
|
107
|
+
logger.info(
|
|
108
|
+
`\x1b[31m Visit ${serverOptions.host}:${PORT}/api-docs for Swagger docs`);
|
|
109
|
+
|
|
97
110
|
logger.info(`WPPConnect-Server version: ${_package.version}`);
|
|
98
111
|
|
|
99
112
|
if (serverOptions.startAllSession) (0, _functions.startAllSessions)(serverOptions, logger);
|
|
100
113
|
});
|
|
101
114
|
|
|
115
|
+
if (_config.default.log.level === 'error' || _config.default.log.level === 'warn') {
|
|
116
|
+
console.log(`\x1b[33m ======================================================
|
|
117
|
+
Attention:
|
|
118
|
+
Your configuration is configured to show only a few logs, before opening an issue,
|
|
119
|
+
please set the log to 'silly', copy the log that shows the error and open your issue.
|
|
120
|
+
======================================================
|
|
121
|
+
`);
|
|
122
|
+
}
|
|
123
|
+
|
|
102
124
|
return {
|
|
103
125
|
app,
|
|
104
126
|
routes: _routes.default,
|
|
105
127
|
logger
|
|
106
128
|
};
|
|
107
129
|
}
|
|
108
|
-
//# sourceMappingURL=index.js.map
|
|
130
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3BwY29ubmVjdCIsInJlcXVpcmUiLCJfY29ycyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZXhwcmVzcyIsIl9leHByZXNzUXVlcnlCb29sZWFuIiwiX2h0dHAiLCJfbWVyZ2VEZWVwIiwiX3NvY2tldCIsIl9wYWNrYWdlIiwiX2NvbmZpZyIsIl9pbmRleCIsIl9yb3V0ZXMiLCJfZnVuY3Rpb25zIiwiX2xvZ2dlciIsImxvZ2dlciIsImNyZWF0ZUxvZ2dlciIsImNvbmZpZyIsImxvZyIsImV4cG9ydHMiLCJpbml0U2VydmVyIiwic2VydmVyT3B0aW9ucyIsIm1lcmdlRGVlcCIsImRlZmF1bHRMb2dnZXIiLCJsZXZlbCIsInNldE1heExpc3RuZXJzIiwiYXBwIiwiZXhwcmVzcyIsIlBPUlQiLCJwcm9jZXNzIiwiZW52IiwicG9ydCIsInVzZSIsImNvcnMiLCJqc29uIiwibGltaXQiLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJib29sUGFyc2VyIiwicmVxIiwicmVzIiwibmV4dCIsImlvIiwib2xkU2VuZCIsInNlbmQiLCJkYXRhIiwiY29udGVudCIsImhlYWRlcnMiLCJKU09OIiwicGFyc2UiLCJzZXNzaW9uIiwiY2xpZW50IiwibWFwcGVyIiwiZW5hYmxlIiwicmVzcG9uc2UiLCJjb252ZXJ0IiwicHJlZml4Iiwicm91dGVzIiwiY3JlYXRlRm9sZGVycyIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJTb2NrZXQiLCJvcmlnaW4iLCJvbiIsInNvY2siLCJpbmZvIiwiaWQiLCJsaXN0ZW4iLCJob3N0IiwidmVyc2lvbiIsInN0YXJ0QWxsU2Vzc2lvbiIsInN0YXJ0QWxsU2Vzc2lvbnMiLCJjb25zb2xlIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMSBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgZGVmYXVsdExvZ2dlciB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgY29ycyBmcm9tICdjb3JzJztcbmltcG9ydCBleHByZXNzLCB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGJvb2xQYXJzZXIgZnJvbSAnZXhwcmVzcy1xdWVyeS1ib29sZWFuJztcbmltcG9ydCB7IGNyZWF0ZVNlcnZlciB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IG1lcmdlRGVlcCBmcm9tICdtZXJnZS1kZWVwJztcbmltcG9ydCB7IFNlcnZlciBhcyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8nO1xuXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi4vcGFja2FnZS5qc29uJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgY29udmVydCB9IGZyb20gJy4vbWFwcGVyL2luZGV4JztcbmltcG9ydCByb3V0ZXMgZnJvbSAnLi9yb3V0ZXMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlRm9sZGVycyxcbiAgc2V0TWF4TGlzdG5lcnMsXG4gIHN0YXJ0QWxsU2Vzc2lvbnMsXG59IGZyb20gJy4vdXRpbC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyIH0gZnJvbSAnLi91dGlsL2xvZ2dlcic7XG5cbi8vcmVxdWlyZSgnZG90ZW52JykuY29uZmlnKCk7XG5cbmV4cG9ydCBjb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoY29uZmlnLmxvZyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0U2VydmVyKHNlcnZlck9wdGlvbnM6IGFueSkge1xuICBpZiAodHlwZW9mIHNlcnZlck9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgc2VydmVyT3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgc2VydmVyT3B0aW9ucyA9IG1lcmdlRGVlcCh7fSwgY29uZmlnLCBzZXJ2ZXJPcHRpb25zKTtcbiAgZGVmYXVsdExvZ2dlci5sZXZlbCA9IHNlcnZlck9wdGlvbnMubG9nLmxldmVsO1xuXG4gIHNldE1heExpc3RuZXJzKHNlcnZlck9wdGlvbnMpO1xuXG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcbiAgY29uc3QgUE9SVCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgc2VydmVyT3B0aW9ucy5wb3J0O1xuXG4gIGFwcC51c2UoY29ycygpKTtcbiAgYXBwLnVzZShleHByZXNzLmpzb24oeyBsaW1pdDogJzUwbWInIH0pKTtcbiAgYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBsaW1pdDogJzUwbWInLCBleHRlbmRlZDogdHJ1ZSB9KSk7XG4gIGFwcC51c2UoJy9maWxlcycsIGV4cHJlc3Muc3RhdGljKCdXaGF0c0FwcEltYWdlcycpKTtcbiAgYXBwLnVzZShib29sUGFyc2VyKCkpO1xuXG4gIC8vIEFkZCByZXF1ZXN0IG9wdGlvbnNcbiAgYXBwLnVzZSgocmVxOiBhbnksIHJlczogYW55LCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcbiAgICByZXEuc2VydmVyT3B0aW9ucyA9IHNlcnZlck9wdGlvbnM7XG4gICAgcmVxLmxvZ2dlciA9IGxvZ2dlcjtcbiAgICByZXEuaW8gPSBpbyBhcyBhbnk7XG5cbiAgICBjb25zdCBvbGRTZW5kID0gcmVzLnNlbmQ7XG5cbiAgICByZXMuc2VuZCA9IGFzeW5jIGZ1bmN0aW9uIChkYXRhOiBhbnkpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSByZXEuaGVhZGVyc1snY29udGVudC10eXBlJ107XG4gICAgICBpZiAoY29udGVudCA9PSAnYXBwbGljYXRpb24vanNvbicpIHtcbiAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgIGlmICghZGF0YS5zZXNzaW9uKSBkYXRhLnNlc3Npb24gPSByZXEuY2xpZW50ID8gcmVxLmNsaWVudC5zZXNzaW9uIDogJyc7XG4gICAgICAgIGlmIChkYXRhLm1hcHBlciAmJiByZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIuZW5hYmxlKSB7XG4gICAgICAgICAgZGF0YS5yZXNwb25zZSA9IGF3YWl0IGNvbnZlcnQoXG4gICAgICAgICAgICByZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIucHJlZml4LFxuICAgICAgICAgICAgZGF0YS5yZXNwb25zZSxcbiAgICAgICAgICAgIGRhdGEubWFwcGVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkZWxldGUgZGF0YS5tYXBwZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlcy5zZW5kID0gb2xkU2VuZDtcbiAgICAgIHJldHVybiByZXMuc2VuZChkYXRhKTtcbiAgICB9O1xuICAgIG5leHQoKTtcbiAgfSk7XG5cbiAgYXBwLnVzZShyb3V0ZXMpO1xuXG4gIGNyZWF0ZUZvbGRlcnMoKTtcbiAgY29uc3QgaHR0cCA9IGNyZWF0ZVNlcnZlcihhcHApO1xuICBjb25zdCBpbyA9IG5ldyBTb2NrZXQoaHR0cCwge1xuICAgIGNvcnM6IHtcbiAgICAgIG9yaWdpbjogWycqJ10sXG4gICAgfSxcbiAgfSk7XG5cbiAgaW8ub24oJ2Nvbm5lY3Rpb24nLCAoc29jaykgPT4ge1xuICAgIGxvZ2dlci5pbmZvKGBJRDogJHtzb2NrLmlkfSBlbnRyb3VgKTtcblxuICAgIHNvY2sub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICBsb2dnZXIuaW5mbyhgSUQ6ICR7c29jay5pZH0gc2FpdWApO1xuICAgIH0pO1xuICB9KTtcblxuICBodHRwLmxpc3RlbihQT1JULCAoKSA9PiB7XG4gICAgbG9nZ2VyLmluZm8oYFNlcnZlciBpcyBydW5uaW5nIG9uIHBvcnQ6ICR7UE9SVH1gKTtcbiAgICBsb2dnZXIuaW5mbyhcbiAgICAgIGBcXHgxYlszMW0gVmlzaXQgJHtzZXJ2ZXJPcHRpb25zLmhvc3R9OiR7UE9SVH0vYXBpLWRvY3MgZm9yIFN3YWdnZXIgZG9jc2BcbiAgICApO1xuICAgIGxvZ2dlci5pbmZvKGBXUFBDb25uZWN0LVNlcnZlciB2ZXJzaW9uOiAke3ZlcnNpb259YCk7XG5cbiAgICBpZiAoc2VydmVyT3B0aW9ucy5zdGFydEFsbFNlc3Npb24pIHN0YXJ0QWxsU2Vzc2lvbnMoc2VydmVyT3B0aW9ucywgbG9nZ2VyKTtcbiAgfSk7XG5cbiAgaWYgKGNvbmZpZy5sb2cubGV2ZWwgPT09ICdlcnJvcicgfHwgY29uZmlnLmxvZy5sZXZlbCA9PT0gJ3dhcm4nKSB7XG4gICAgY29uc29sZS5sb2coYFxceDFiWzMzbSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkF0dGVudGlvbjpcbllvdXIgY29uZmlndXJhdGlvbiBpcyBjb25maWd1cmVkIHRvIHNob3cgb25seSBhIGZldyBsb2dzLCBiZWZvcmUgb3BlbmluZyBhbiBpc3N1ZSwgXG5wbGVhc2Ugc2V0IHRoZSBsb2cgdG8gJ3NpbGx5JywgY29weSB0aGUgbG9nIHRoYXQgc2hvd3MgdGhlIGVycm9yIGFuZCBvcGVuIHlvdXIgaXNzdWUuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhcHAsXG4gICAgcm91dGVzLFxuICAgIGxvZ2dlcixcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBOztBQUVBLElBQUFRLFFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE9BQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLE9BQUEsR0FBQVQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFZLFVBQUEsR0FBQVosT0FBQTs7Ozs7QUFLQSxJQUFBYSxPQUFBLEdBQUFiLE9BQUEsa0JBQTZDLENBakM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FkQSxDQW1DQTtBQUVPLE1BQU1jLE1BQU0sR0FBRyxJQUFBQyxvQkFBWSxFQUFDQyxlQUFNLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxPQUFBLENBQUFKLE1BQUEsR0FBQUEsTUFBQSxDQUV4QyxTQUFTSyxVQUFVQSxDQUFDQyxhQUFrQixFQUFFLENBQzdDLElBQUksT0FBT0EsYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUNyQ0EsYUFBYSxH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
|
package/dist/mapper/index.js
CHANGED
|
@@ -5,8 +5,8 @@ async function convert(prefix, data, event) {
|
|
|
5
5
|
data.event = event || data.event;
|
|
6
6
|
event = data.event.indexOf('message') >= 0 ? 'message' : data.event;
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const mappConfEvent = await config_event(prefix, event);
|
|
9
|
+
const mappConfType = await config_type(prefix, event, data.type);
|
|
10
10
|
|
|
11
11
|
Object.assign(mappConfEvent, mappConfType);
|
|
12
12
|
|
|
@@ -21,7 +21,7 @@ async function convert(prefix, data, event) {
|
|
|
21
21
|
|
|
22
22
|
async function config_event(prefix, event) {
|
|
23
23
|
try {
|
|
24
|
-
|
|
24
|
+
const { default: mappConf } = await ((specifier) => new Promise((r) => r(specifier)).then((s) => _interopRequireWildcard(require(s))))(`./${prefix}${event}.js`);
|
|
25
25
|
if (!mappConf) return undefined;
|
|
26
26
|
return mappConf;
|
|
27
27
|
} catch (e) {
|
|
@@ -31,11 +31,13 @@ async function config_event(prefix, event) {
|
|
|
31
31
|
|
|
32
32
|
async function config_type(prefix, event, type) {
|
|
33
33
|
try {
|
|
34
|
-
|
|
34
|
+
const { default: mappConf } = await ((specifier) => new Promise((r) => r(specifier)).then((s) => _interopRequireWildcard(require(s))))(
|
|
35
|
+
`./${prefix}${event}-${type}.js`);
|
|
36
|
+
|
|
35
37
|
if (!mappConf) return undefined;
|
|
36
38
|
return mappConf;
|
|
37
39
|
} catch (e) {
|
|
38
40
|
return undefined;
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
|
-
//# sourceMappingURL=
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanNvbk1hcHBlckpzb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImNvbnZlcnQiLCJwcmVmaXgiLCJkYXRhIiwiZXZlbnQiLCJpbmRleE9mIiwibWFwcENvbmZFdmVudCIsImNvbmZpZ19ldmVudCIsIm1hcHBDb25mVHlwZSIsImNvbmZpZ190eXBlIiwidHlwZSIsImFzc2lnbiIsIm1hcHBlciIsImUiLCJtYXBwQ29uZiIsInNwZWNpZmllciIsIlByb21pc2UiLCJyIiwidGhlbiIsInMiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwcGVyL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtYXBwZXIgZnJvbSAnanNvbi1tYXBwZXItanNvbic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0KHByZWZpeDogc3RyaW5nLCBkYXRhOiBhbnksIGV2ZW50PzogYW55KSB7XG4gIHRyeSB7XG4gICAgZGF0YS5ldmVudCA9IGV2ZW50IHx8IGRhdGEuZXZlbnQ7XG4gICAgZXZlbnQgPSBkYXRhLmV2ZW50LmluZGV4T2YoJ21lc3NhZ2UnKSA+PSAwID8gJ21lc3NhZ2UnIDogZGF0YS5ldmVudDtcblxuICAgIGNvbnN0IG1hcHBDb25mRXZlbnQgPSBhd2FpdCBjb25maWdfZXZlbnQocHJlZml4LCBldmVudCk7XG4gICAgY29uc3QgbWFwcENvbmZUeXBlID0gYXdhaXQgY29uZmlnX3R5cGUocHJlZml4LCBldmVudCwgZGF0YS50eXBlKTtcblxuICAgIE9iamVjdC5hc3NpZ24obWFwcENvbmZFdmVudCwgbWFwcENvbmZUeXBlKTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdtYXBwQ29uZkV2ZW50JywgbWFwcENvbmZFdmVudCk7XG5cbiAgICBpZiAoIW1hcHBDb25mRXZlbnQpIHJldHVybiBkYXRhO1xuICAgIHJldHVybiBhd2FpdCBtYXBwZXIoZGF0YSwgbWFwcENvbmZFdmVudCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb25maWdfZXZlbnQocHJlZml4OiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGRlZmF1bHQ6IG1hcHBDb25mIH0gPSBhd2FpdCBpbXBvcnQoYC4vJHtwcmVmaXh9JHtldmVudH0uanNgKTtcbiAgICBpZiAoIW1hcHBDb25mKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtYXBwQ29uZjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY29uZmlnX3R5cGUocHJlZml4OiBhbnksIGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xuICB0cnkge1xuICAgIGNvbnN0IHsgZGVmYXVsdDogbWFwcENvbmYgfSA9IGF3YWl0IGltcG9ydChcbiAgICAgIGAuLyR7cHJlZml4fSR7ZXZlbnR9LSR7dHlwZX0uanNgXG4gICAgKTtcbiAgICBpZiAoIW1hcHBDb25mKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtYXBwQ29uZjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjBMQUFBLElBQUFB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
|
|
@@ -15,4 +15,4 @@
|
|
|
15
15
|
},
|
|
16
16
|
timestamp: 't'
|
|
17
17
|
};exports.default = _default;
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpZCIsInR5cGUiLCJwaG9uZSIsInBhdGgiLCJmb3JtYXR0aW5nIiwidmFsdWUiLCJzcGxpdCIsImF1dGhvciIsImlzTXlDb250YWN0IiwiZm9ybWF0dGVkTmFtZSIsInB1c2huYW1lIiwidGltZXN0YW1wIiwiZXhwb3J0cyIsImRlZmF1bHQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXBwZXIvdGFnb25lLWNoYXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xuICBpZDogJ2lkJyxcbiAgdHlwZTogJ2tpbmQnLFxuICBwaG9uZToge1xuICAgIHBhdGg6ICdpZC51c2VyJyxcbiAgICBmb3JtYXR0aW5nOiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHZhbHVlLnNwbGl0KCdAJylbMF07XG4gICAgfSxcbiAgfSxcbiAgYXV0aG9yOiB7XG4gICAgcGF0aDogJ2NvbnRhY3QnLFxuICAgIGZvcm1hdHRpbmc6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICByZXR1cm4gdmFsdWUuaXNNeUNvbnRhY3QgPyB2YWx1ZS5mb3JtYXR0ZWROYW1lIDogdmFsdWUucHVzaG5hbWU7XG4gICAgfSxcbiAgfSxcbiAgdGltZXN0YW1wOiAndCcsXG59O1xuIl0sIm1hcHBpbmdzIjoibUhBQWU7RUFDYkEsRUFBRSxFQUFFLElBQUk7RUFDUkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsS0FBSyxFQUFFO0lBQ0xDLElBQUksRUFBRSxTQUFTO0lBQ2ZDLFVBQVUsRUFBRUEsQ0FBQ0MsS0FBVSxLQUFLO01BQzFCLE9BQU9BLEtBQUssQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QjtFQUNGLENBQUM7RUFDREMsTUFBTSxFQUFFO0lBQ05KLElBQUksRUFBRSxTQUFTO0lBQ2ZDLFVBQVUsRUFBRUEsQ0FBQ0MsS0FBVSxLQUFLO01BQzFCLE9BQU9BLEtBQUssQ0FBQ0csV0FBVyxHQUFHSCxLQUFLLENBQUNJLGFBQWEsR0FBR0osS0FBSyxDQUFDSyxRQUFRO0lBQ2pFO0VBQ0YsQ0FBQztFQUNEQyxTQUFTLEVBQUU7QUFDYixDQUFDLENBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUFBQyxRQUFBIn0=
|
|
@@ -33,4 +33,4 @@
|
|
|
33
33
|
plugged: 'plugged',
|
|
34
34
|
pushname: 'pushname'
|
|
35
35
|
};exports.default = _default;
|
|
36
|
-
//# sourceMappingURL=
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJudW1iZXIiLCJjb25uZWN0ZWQiLCJwaG9uZSIsInBhdGgiLCJuZXN0ZWQiLCJ3YV92ZXJzaW9uIiwibWNjIiwibW5jIiwib3NfdmVyc2lvbiIsImRldmljZV9tYW51ZmFjdHVyZXIiLCJkZXZpY2VfbW9kZWwiLCJvc19idWlsZF9udW1iZXIiLCJwbGF0Zm9ybSIsImxvY2FsZXMiLCJiYXR0ZXJ5IiwicGx1Z2dlZCIsInB1c2huYW1lIiwiZXhwb3J0cyIsImRlZmF1bHQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXBwZXIvdGFnb25lLWRldmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIG51bWJlcjogJ3dpZC51c2VyJyxcbiAgY29ubmVjdGVkOiAnY29ubmVjdGVkJyxcbiAgcGhvbmU6IHtcbiAgICBwYXRoOiAncGhvbmUnLFxuICAgIG5lc3RlZDoge1xuICAgICAgd2FfdmVyc2lvbjoge1xuICAgICAgICBwYXRoOiAnd2FfdmVyc2lvbicsXG4gICAgICB9LFxuICAgICAgbWNjOiB7XG4gICAgICAgIHBhdGg6ICdtY2MnLFxuICAgICAgfSxcbiAgICAgIG1uYzoge1xuICAgICAgICBwYXRoOiAnbW5jJyxcbiAgICAgIH0sXG4gICAgICBvc192ZXJzaW9uOiB7XG4gICAgICAgIHBhdGg6ICdvc192ZXJzaW9uJyxcbiAgICAgIH0sXG4gICAgICBkZXZpY2VfbWFudWZhY3R1cmVyOiB7XG4gICAgICAgIHBhdGg6ICdkZXZpY2VfbWFudWZhY3R1cmVyJyxcbiAgICAgIH0sXG4gICAgICBkZXZpY2VfbW9kZWw6IHtcbiAgICAgICAgcGF0aDogJ2RldmljZV9tb2RlbCcsXG4gICAgICB9LFxuICAgICAgb3NfYnVpbGRfbnVtYmVyOiB7XG4gICAgICAgIHBhdGg6ICdvc19idWlsZF9udW1iZXInLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBwbGF0Zm9ybTogJ3BsYXRmb3JtJyxcbiAgbG9jYWxlczogJ2xvY2FsZXMnLFxuICBiYXR0ZXJ5OiAnYmF0dGVyeScsXG4gIHBsdWdnZWQ6ICdwbHVnZ2VkJyxcbiAgcHVzaG5hbWU6ICdwdXNobmFtZScsXG59O1xuIl0sIm1hcHBpbmdzIjoibUhBQWU7RUFDYkEsTUFBTSxFQUFFLFVBQVU7RUFDbEJDLFNBQVMsRUFBRSxXQUFXO0VBQ3RCQyxLQUFLLEVBQUU7SUFDTEMsSUFBSSxFQUFFLE9BQU87SUFDYkMsTUFBTSxFQUFFO01BQ05DLFVBQVUsRUFBRTtRQUNWRixJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0RHLEdBQUcsRUFBRTtRQUNISCxJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0RJLEdBQUcsRUFBRTtRQUNISixJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0RLLFVBQVUsRUFBRTtRQUNWTCxJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0RNLG1CQUFtQixFQUFFO1FBQ25CTixJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0RPLFlBQVksRUFBRTtRQUNaUCxJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0RRLGVBQWUsRUFBRTtRQUNmUixJQUFJLEVBQUU7TUFDUjtJQUNGO0VBQ0YsQ0FBQztFQUNEUyxRQUFRLEVBQUUsVUFBVTtFQUNwQkMsT0FBTyxFQUFFLFNBQVM7RUFDbEJDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxPQUFPLEVBQUUsU0FBUztFQUNsQkMsUUFBUSxFQUFFO0FBQ1osQ0FBQyxDQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FBQUMsUUFBQSJ9
|