@wppconnect/server 2.2.4 → 2.3.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 +4 -0
- package/Dockerfile +3 -3
- package/README.md +29 -6
- package/dist/config/upload.js +2 -2
- package/dist/config.js +28 -6
- package/dist/controller/deviceController.js +7 -14
- package/dist/controller/groupController.js +37 -6
- package/dist/controller/messageController.js +244 -27
- package/dist/controller/newsletterController.js +196 -0
- package/dist/controller/orderController.js +14 -27
- package/dist/controller/sessionController.js +20 -35
- package/dist/index.js +9 -3
- package/dist/mapper/index.js +2 -2
- package/dist/mapper/tagone-chat.js +3 -3
- package/dist/mapper/tagone-device.js +3 -3
- package/dist/mapper/tagone-message-document.js +3 -3
- package/dist/mapper/tagone-message-image.js +3 -3
- package/dist/mapper/tagone-message-location.js +3 -3
- package/dist/mapper/tagone-message-video.js +3 -3
- package/dist/mapper/tagone-message.js +3 -3
- package/dist/mapper/tagone-onack.js +3 -3
- package/dist/mapper/tagone-return.js +3 -3
- package/dist/middleware/auth.js +3 -3
- package/dist/middleware/instrumentation.js +39 -0
- package/dist/routes/index.js +65 -11
- package/dist/swagger.json +655 -107
- package/dist/tests/util/bufferUtils.test.js +54 -0
- package/dist/types/ServerOptions.js +1 -1
- package/dist/util/bucketAlreadyExists.js +26 -0
- package/dist/util/bufferutils.js +50 -0
- package/dist/util/chatWootClient.js +124 -38
- package/dist/util/createSessionUtil.js +25 -8
- package/dist/util/db/mongodb/db.js +3 -3
- package/dist/util/db/redis/db.js +3 -3
- package/dist/util/functions.js +85 -21
- package/dist/util/sessionUtil.js +23 -22
- package/dist/util/tokenStore/FileTokenStore/FileTokenStore.js +4 -4
- package/dist/util/tokenStore/factory.js +3 -3
- package/dist/util/tokenStore/fileTokenStory.js +3 -3
- package/dist/util/tokenStore/model/token.js +3 -3
- package/dist/util/tokenStore/mongodbTokenStory.js +3 -3
- package/dist/util/tokenStore/redisTokenStory.js +3 -3
- package/jest.config.js +5 -0
- package/package.json +59 -60
- package/tsconfig.json +6 -4
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _stream = require("stream");
|
|
2
|
+
|
|
3
|
+
var _bufferutils = _interopRequireDefault(require("../../util/bufferutils"));
|
|
4
|
+
|
|
5
|
+
function generateRandomData(length) {
|
|
6
|
+
const characters =
|
|
7
|
+
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
8
|
+
let randomData = '';
|
|
9
|
+
for (let i = 0; i < length; i++) {
|
|
10
|
+
const randomIndex = Math.floor(Math.random() * characters.length);
|
|
11
|
+
randomData += characters.charAt(randomIndex);
|
|
12
|
+
}
|
|
13
|
+
return randomData;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
describe('Utils Functions', function () {
|
|
17
|
+
describe('Buffer to Stream', function () {
|
|
18
|
+
const bodyToBuffer = generateRandomData(100);
|
|
19
|
+
const buffer = Buffer.from(bodyToBuffer, 'utf-8');
|
|
20
|
+
|
|
21
|
+
it('Should transform the Buffer in a Readable Stream', function () {
|
|
22
|
+
const bufferStream = _bufferutils.default.bufferToReadableStream(buffer);
|
|
23
|
+
|
|
24
|
+
// Assert that the bufferStream is a Readable stream
|
|
25
|
+
expect(bufferStream).toBeInstanceOf(_stream.Readable);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('Should, on data end, checks if the Stream are correct', function () {
|
|
29
|
+
const bufferStream = _bufferutils.default.bufferToReadableStream(buffer);
|
|
30
|
+
|
|
31
|
+
let data = '';
|
|
32
|
+
|
|
33
|
+
bufferStream.on('data', (chunck) => {
|
|
34
|
+
data += chunck.toString('utf-8');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
bufferStream.on('end', () => {
|
|
38
|
+
expect(data).toStrictEqual(bodyToBuffer);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe('Async Buffer to Stream', function () {
|
|
44
|
+
const bodyToBuffer = generateRandomData(10000000);
|
|
45
|
+
const buffer = Buffer.from(bodyToBuffer, 'utf-8');
|
|
46
|
+
|
|
47
|
+
it('Should await the Buffer convertion and return a instance of readable', async function () {
|
|
48
|
+
const bufferStream = await _bufferutils.default.AsyncBufferToStream(buffer);
|
|
49
|
+
|
|
50
|
+
expect(bufferStream).toBeInstanceOf(_stream.Readable);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3RyZWFtIiwicmVxdWlyZSIsIl9idWZmZXJ1dGlscyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJnZW5lcmF0ZVJhbmRvbURhdGEiLCJsZW5ndGgiLCJjaGFyYWN0ZXJzIiwicmFuZG9tRGF0YSIsImkiLCJyYW5kb21JbmRleCIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImNoYXJBdCIsImRlc2NyaWJlIiwiYm9keVRvQnVmZmVyIiwiYnVmZmVyIiwiQnVmZmVyIiwiZnJvbSIsIml0IiwiYnVmZmVyU3RyZWFtIiwiYnVmZmVyVXRpbHMiLCJidWZmZXJUb1JlYWRhYmxlU3RyZWFtIiwiZXhwZWN0IiwidG9CZUluc3RhbmNlT2YiLCJSZWFkYWJsZSIsImRhdGEiLCJvbiIsImNodW5jayIsInRvU3RyaW5nIiwidG9TdHJpY3RFcXVhbCIsIkFzeW5jQnVmZmVyVG9TdHJlYW0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHMvdXRpbC9idWZmZXJVdGlscy50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWRhYmxlIH0gZnJvbSAnc3RyZWFtJztcblxuaW1wb3J0IGJ1ZmZlclV0aWxzIGZyb20gJy4uLy4uL3V0aWwvYnVmZmVydXRpbHMnO1xuXG5mdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbURhdGEobGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBjaGFyYWN0ZXJzID1cbiAgICAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICBsZXQgcmFuZG9tRGF0YSA9ICcnO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XG4gICAgcmFuZG9tRGF0YSArPSBjaGFyYWN0ZXJzLmNoYXJBdChyYW5kb21JbmRleCk7XG4gIH1cbiAgcmV0dXJuIHJhbmRvbURhdGE7XG59XG5cbmRlc2NyaWJlKCdVdGlscyBGdW5jdGlvbnMnLCBmdW5jdGlvbiAoKSB7XG4gIGRlc2NyaWJlKCdCdWZmZXIgdG8gU3RyZWFtJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJvZHlUb0J1ZmZlciA9IGdlbmVyYXRlUmFuZG9tRGF0YSgxMDApO1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGJvZHlUb0J1ZmZlciwgJ3V0Zi04Jyk7XG5cbiAgICBpdCgnU2hvdWxkIHRyYW5zZm9ybSB0aGUgQnVmZmVyIGluIGEgUmVhZGFibGUgU3RyZWFtJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnVmZmVyU3RyZWFtID0gYnVmZmVyVXRpbHMuYnVmZmVyVG9SZWFkYWJsZVN0cmVhbShidWZmZXIpO1xuXG4gICAgICAvLyBBc3NlcnQgdGhhdCB0aGUgYnVmZmVyU3RyZWFtIGlzIGEgUmVhZGFibGUgc3RyZWFtXG4gICAgICBleHBlY3QoYnVmZmVyU3RyZWFtKS50b0JlSW5zdGFuY2VPZihSZWFkYWJsZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnU2hvdWxkLCBvbiBkYXRhIGVuZCwgY2hlY2tzIGlmIHRoZSBTdHJlYW0gYXJlIGNvcnJlY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWZmZXJTdHJlYW0gPSBidWZmZXJVdGlscy5idWZmZXJUb1JlYWRhYmxlU3RyZWFtKGJ1ZmZlcik7XG5cbiAgICAgIGxldCBkYXRhID0gJyc7XG5cbiAgICAgIGJ1ZmZlclN0cmVhbS5vbignZGF0YScsIChjaHVuY2spID0+IHtcbiAgICAgICAgZGF0YSArPSBjaHVuY2sudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgICB9KTtcblxuICAgICAgYnVmZmVyU3RyZWFtLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChkYXRhKS50b1N0cmljdEVxdWFsKGJvZHlUb0J1ZmZlcik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0FzeW5jIEJ1ZmZlciB0byBTdHJlYW0nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYm9keVRvQnVmZmVyID0gZ2VuZXJhdGVSYW5kb21EYXRhKDEwMDAwMDAwKTtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShib2R5VG9CdWZmZXIsICd1dGYtOCcpO1xuXG4gICAgaXQoJ1Nob3VsZCBhd2FpdCB0aGUgQnVmZmVyIGNvbnZlcnRpb24gYW5kIHJldHVybiBhIGluc3RhbmNlIG9mIHJlYWRhYmxlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnVmZmVyU3RyZWFtID0gYXdhaXQgYnVmZmVyVXRpbHMuQXN5bmNCdWZmZXJUb1N0cmVhbShidWZmZXIpO1xuXG4gICAgICBleHBlY3QoYnVmZmVyU3RyZWFtKS50b0JlSW5zdGFuY2VPZihSZWFkYWJsZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiJrR0FBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7O0FBRUEsSUFBQUMsWUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBOztBQUVBLFNBQVNHLGtCQUFrQkEsQ0FBQ0MsTUFBYyxFQUFVO0VBQ2xELE1BQU1DLFVBQVU7RUFDZCxnRUFBZ0U7RUFDbEUsSUFBSUMsVUFBVSxHQUFHLEVBQUU7RUFDbkIsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdILE1BQU0sRUFBRUcsQ0FBQyxFQUFFLEVBQUU7SUFDL0IsTUFBTUMsV0FBVyxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0QsSUFBSSxDQUFDRSxNQUFNLENBQUMsQ0FBQyxHQUFHTixVQUFVLENBQUNELE1BQU0sQ0FBQztJQUNqRUUsVUFBVSxJQUFJRCxVQUFVLENBQUNPLE1BQU0sQ0FBQ0osV0FBVyxDQUFDO0VBQzlDO0VBQ0EsT0FBT0YsVUFBVTtBQUNuQjs7QUFFQU8sUUFBUSxDQUFDLGlCQUFpQixFQUFFLFlBQVk7RUFDdENBLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZO0lBQ3ZDLE1BQU1DLFlBQVksR0FBR1gsa0JBQWtCLENBQUMsR0FBRyxDQUFDO0lBQzVDLE1BQU1ZLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNILFlBQVksRUFBRSxPQUFPLENBQUM7O0lBRWpESSxFQUFFLENBQUMsa0RBQWtELEVBQUUsWUFBWTtNQUNqRSxNQUFNQyxZQUFZLEdBQUdDLG9CQUFXLENBQUNDLHNCQUFzQixDQUFDTixNQUFNLENBQUM7O01BRS9EO01BQ0FPLE1BQU0sQ0FBQ0gsWUFBWSxDQUFDLENBQUNJLGNBQWMsQ0FBQ0MsZ0JBQVEsQ0FBQztJQUMvQyxDQUFDLENBQUM7O0lBRUZOLEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxZQUFZO01BQ3RFLE1BQU1DLFlBQVksR0FBR0Msb0JBQVcsQ0FBQ0Msc0JBQXNCLENBQUNOLE1BQU0sQ0FBQzs7TUFFL0QsSUFBSVUsSUFBSSxHQUFHLEVBQUU7O01BRWJOLFlBQVksQ0FBQ08sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDQyxNQUFNLEtBQUs7UUFDbENGLElBQUksSUFBSUUsTUFBTSxDQUFDQyxRQUFRLENBQUMsT0FBTyxDQUFDO01BQ2xDLENBQUMsQ0FBQzs7TUFFRlQsWUFBWSxDQUFDTyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU07UUFDM0JKLE1BQU0sQ0FBQ0csSUFBSSxDQUFDLENBQUNJLGFBQWEsQ0FBQ2YsWUFBWSxDQUFDO01BQzFDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQzs7RUFFRkQsUUFBUSxDQUFDLHdCQUF3QixFQUFFLFlBQVk7SUFDN0MsTUFBTUMsWUFBWSxHQUFHWCxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDakQsTUFBTVksTUFBTSxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQ0gsWUFBWSxFQUFFLE9BQU8sQ0FBQzs7SUFFakRJLEVBQUUsQ0FBQyxzRUFBc0UsRUFBRSxrQkFBa0I7TUFDM0YsTUFBTUMsWUFBWSxHQUFHLE1BQU1DLG9CQUFXLENBQUNVLG1CQUFtQixDQUFDZixNQUFNLENBQUM7O01BRWxFTyxNQUFNLENBQUNILFlBQVksQ0FBQyxDQUFDSSxjQUFjLENBQUNDLGdCQUFRLENBQUM7SUFDL0MsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL1NlcnZlck9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVja2V0TG9jYXRpb25Db25zdHJhaW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJPcHRpb25zIHtcbiAgc2VjcmV0S2V5OiBzdHJpbmc7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICBkZXZpY2VOYW1lOiBzdHJpbmc7XG4gIHBvd2VyZWRCeTogc3RyaW5nO1xuICBzdGFydEFsbFNlc3Npb246IGJvb2xlYW47XG4gIHRva2VuU3RvcmVUeXBlOiBzdHJpbmc7XG4gIG1heExpc3RlbmVyczogbnVtYmVyO1xuICBjdXN0b21Vc2VyRGF0YURpcjogc3RyaW5nO1xuICB3ZWJob29rOiB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgYXV0b0Rvd25sb2FkOiBib29sZWFuO1xuICAgIHVwbG9hZFMzOiBib29sZWFuO1xuICAgIHJlYWRNZXNzYWdlOiBib29sZWFuO1xuICAgIGFsbFVucmVhZE9uU3RhcnQ6IGJvb2xlYW47XG4gICAgbGlzdGVuQWNrczogYm9vbGVhbjtcbiAgICBvblByZXNlbmNlQ2hhbmdlZDogYm9vbGVhbjtcbiAgICBvblBhcnRpY2lwYW50c0NoYW5nZWQ6IGJvb2xlYW47XG4gICAgb25SZWFjdGlvbk1lc3NhZ2U6IGJvb2xlYW47XG4gICAgb25Qb2xsUmVzcG9uc2U6IGJvb2xlYW47XG4gICAgb25SZXZva2VkTWVzc2FnZTogYm9vbGVhbjtcbiAgICBvblNlbGZNZXNzYWdlOiBib29sZWFuO1xuICAgIGlnbm9yZTogc3RyaW5nW107XG4gIH07XG4gIHdlYnNvY2tldDoge1xuICAgIGF1dG9Eb3dubG9hZDogYm9vbGVhbjtcbiAgICB1cGxvYWRTMzogYm9vbGVhbjtcbiAgfTtcbiAgYXJjaGl2ZToge1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgICB3YWl0VGltZTogbnVtYmVyO1xuICAgIGRheXNUb0FyY2hpdmU6IG51bWJlcjtcbiAgfTtcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IHN0cmluZztcbiAgICBsb2dnZXI6IHN0cmluZ1tdO1xuICB9O1xuICBjcmVhdGVPcHRpb25zOiB7XG4gICAgYnJvd3NlckFyZ3M6IHN0cmluZ1tdO1xuICB9O1xuICBtYXBwZXI6IHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gICAgcHJlZml4OiBzdHJpbmc7XG4gIH07XG4gIGRiOiB7XG4gICAgbW9uZ29kYkRhdGFiYXNlOiBzdHJpbmc7XG4gICAgbW9uZ29kYkNvbGxlY3Rpb246IHN0cmluZztcbiAgICBtb25nb2RiVXNlcjogc3RyaW5nO1xuICAgIG1vbmdvZGJQYXNzd29yZDogc3RyaW5nO1xuICAgIG1vbmdvZGJIb3N0OiBzdHJpbmc7XG4gICAgbW9uZ29Jc1JlbW90ZTogYm9vbGVhbjtcbiAgICBtb25nb1VSTFJlbW90ZTogc3RyaW5nO1xuICAgIG1vbmdvZGJQb3J0OiBudW1iZXI7XG4gICAgcmVkaXNIb3N0OiBzdHJpbmc7XG4gICAgcmVkaXNQb3J0OiBudW1iZXI7XG4gICAgcmVkaXNQYXNzd29yZDogc3RyaW5nO1xuICAgIHJlZGlzRGI6IHN0cmluZztcbiAgICByZWRpc1ByZWZpeDogc3RyaW5nO1xuICB9O1xuICBhd3NfczM6IHtcbiAgICByZWdpb246IEJ1Y2tldExvY2F0aW9uQ29uc3RyYWludCB8IG51bGw7XG4gICAgYWNjZXNzX2tleV9pZDogc3RyaW5nIHwgbnVsbDtcbiAgICBzZWNyZXRfa2V5OiBzdHJpbmcgfCBudWxsO1xuICAgIGRlZmF1bHRCdWNrZXROYW1lOiBzdHJpbmcgfCBudWxsO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.bucketAlreadyExists = bucketAlreadyExists;var _clientS = require("@aws-sdk/client-s3");
|
|
2
|
+
|
|
3
|
+
var _ = require("..");
|
|
4
|
+
var _config = _interopRequireDefault(require("../config"));
|
|
5
|
+
|
|
6
|
+
async function bucketAlreadyExists(bucketName) {
|
|
7
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
8
|
+
return new Promise(async (resolve, reject) => {
|
|
9
|
+
const s3Client = new _clientS.S3Client({ region: _config.default.aws_s3.region });
|
|
10
|
+
|
|
11
|
+
const command = new _clientS.HeadBucketCommand({ Bucket: bucketName });
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
await s3Client.send(command);
|
|
15
|
+
resolve(true);
|
|
16
|
+
} catch (error) {
|
|
17
|
+
if (error.name === 'NoSuchBucket' || error.name === 'NotFound') {
|
|
18
|
+
resolve(false);
|
|
19
|
+
} else {
|
|
20
|
+
_.logger.error(error);
|
|
21
|
+
reject(error);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xpZW50UyIsInJlcXVpcmUiLCJfIiwiX2NvbmZpZyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJidWNrZXRBbHJlYWR5RXhpc3RzIiwiYnVja2V0TmFtZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiczNDbGllbnQiLCJTM0NsaWVudCIsInJlZ2lvbiIsImNvbmZpZyIsImF3c19zMyIsImNvbW1hbmQiLCJIZWFkQnVja2V0Q29tbWFuZCIsIkJ1Y2tldCIsInNlbmQiLCJlcnJvciIsIm5hbWUiLCJsb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9idWNrZXRBbHJlYWR5RXhpc3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRCdWNrZXRDb21tYW5kLCBTM0NsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5cbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vY29uZmlnJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1Y2tldEFscmVhZHlFeGlzdHMoYnVja2V0TmFtZTogc3RyaW5nKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yXG4gIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgczNDbGllbnQgPSBuZXcgUzNDbGllbnQoeyByZWdpb246IGNvbmZpZy5hd3NfczMucmVnaW9uIH0pO1xuXG4gICAgY29uc3QgY29tbWFuZCA9IG5ldyBIZWFkQnVja2V0Q29tbWFuZCh7IEJ1Y2tldDogYnVja2V0TmFtZSB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKGNvbW1hbmQpO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAoZXJyb3IubmFtZSA9PT0gJ05vU3VjaEJ1Y2tldCcgfHwgZXJyb3IubmFtZSA9PT0gJ05vdEZvdW5kJykge1xuICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6ImtOQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTs7QUFFQSxJQUFBQyxDQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7O0FBRU8sZUFBZUksbUJBQW1CQSxDQUFDQyxVQUFrQixFQUFFO0VBQzVEO0VBQ0EsT0FBTyxJQUFJQyxPQUFPLENBQUMsT0FBT0MsT0FBTyxFQUFFQyxNQUFNLEtBQUs7SUFDNUMsTUFBTUMsUUFBUSxHQUFHLElBQUlDLGlCQUFRLENBQUMsRUFBRUMsTUFBTSxFQUFFQyxlQUFNLENBQUNDLE1BQU0sQ0FBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQzs7SUFFL0QsTUFBTUcsT0FBTyxHQUFHLElBQUlDLDBCQUFpQixDQUFDLEVBQUVDLE1BQU0sRUFBRVgsVUFBVSxDQUFDLENBQUMsQ0FBQzs7SUFFN0QsSUFBSTtNQUNGLE1BQU1JLFFBQVEsQ0FBQ1EsSUFBSSxDQUFDSCxPQUFPLENBQUM7TUFDNUJQLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDZixDQUFDLENBQUMsT0FBT1csS0FBVSxFQUFFO01BQ25CLElBQUlBLEtBQUssQ0FBQ0MsSUFBSSxLQUFLLGNBQWMsSUFBSUQsS0FBSyxDQUFDQyxJQUFJLEtBQUssVUFBVSxFQUFFO1FBQzlEWixPQUFPLENBQUMsS0FBSyxDQUFDO01BQ2hCLENBQUMsTUFBTTtRQUNMYSxRQUFNLENBQUNGLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO1FBQ25CVixNQUFNLENBQUNVLEtBQUssQ0FBQztNQUNmO0lBQ0Y7RUFDRixDQUFDLENBQUM7QUFDSiJ9
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
var _stream = require("stream"); /*
|
|
18
|
+
* Copyright 2021 WPPConnect Team
|
|
19
|
+
*
|
|
20
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
21
|
+
* you may not use this file except in compliance with the License.
|
|
22
|
+
* You may obtain a copy of the License at
|
|
23
|
+
*
|
|
24
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
25
|
+
*
|
|
26
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
27
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
28
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
29
|
+
* See the License for the specific language governing permissions and
|
|
30
|
+
* limitations under the License.
|
|
31
|
+
*/ // type AsyncBufferToStream
|
|
32
|
+
function bufferToReadableStream(buffer) {const readableInstanceStream = new _stream.Readable({ read() {this.push(buffer);this.push(null);} });return readableInstanceStream;}async function AsyncBufferToStream(buffer) {
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
const bufferStream = bufferToReadableStream(buffer);
|
|
35
|
+
bufferStream.on('data', () => {
|
|
36
|
+
|
|
37
|
+
// data = chunck;
|
|
38
|
+
});
|
|
39
|
+
bufferStream.on('end', () => {
|
|
40
|
+
resolve(bufferStream);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
bufferStream.on('error', (error) => {
|
|
44
|
+
reject(error);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}var _default = exports.default =
|
|
48
|
+
|
|
49
|
+
{ bufferToReadableStream, AsyncBufferToStream };
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3RyZWFtIiwicmVxdWlyZSIsImJ1ZmZlclRvUmVhZGFibGVTdHJlYW0iLCJidWZmZXIiLCJyZWFkYWJsZUluc3RhbmNlU3RyZWFtIiwiUmVhZGFibGUiLCJyZWFkIiwicHVzaCIsIkFzeW5jQnVmZmVyVG9TdHJlYW0iLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImJ1ZmZlclN0cmVhbSIsIm9uIiwiZXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvYnVmZmVydXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5cbi8vIHR5cGUgQXN5bmNCdWZmZXJUb1N0cmVhbVxuXG5mdW5jdGlvbiBidWZmZXJUb1JlYWRhYmxlU3RyZWFtKGJ1ZmZlcjogQnVmZmVyKTogUmVhZGFibGUge1xuICBjb25zdCByZWFkYWJsZUluc3RhbmNlU3RyZWFtID0gbmV3IFJlYWRhYmxlKHtcbiAgICByZWFkKCkge1xuICAgICAgdGhpcy5wdXNoKGJ1ZmZlcik7XG4gICAgICB0aGlzLnB1c2gobnVsbCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIHJlYWRhYmxlSW5zdGFuY2VTdHJlYW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIEFzeW5jQnVmZmVyVG9TdHJlYW0oYnVmZmVyOiBCdWZmZXIpOiBQcm9taXNlPFJlYWRhYmxlPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgYnVmZmVyU3RyZWFtID0gYnVmZmVyVG9SZWFkYWJsZVN0cmVhbShidWZmZXIpO1xuICAgIGJ1ZmZlclN0cmVhbS5vbignZGF0YScsICgpID0+IHtcbiAgICAgIC8vIGRhdGEgPSBjaHVuY2s7XG4gICAgfSk7XG5cbiAgICBidWZmZXJTdHJlYW0ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHJlc29sdmUoYnVmZmVyU3RyZWFtKTtcbiAgICB9KTtcblxuICAgIGJ1ZmZlclN0cmVhbS5vbignZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgIHJlamVjdChlcnJvcik7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7IGJ1ZmZlclRvUmVhZGFibGVTdHJlYW0sIEFzeW5jQnVmZmVyVG9TdHJlYW0gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUEsV0FBa0MsQ0FoQmxDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQWRBLENBa0JBO0FBRUEsU0FBU0Msc0JBQXNCQSxDQUFDQyxNQUFjLEVBQVksQ0FDeEQsTUFBTUMsc0JBQXNCLEdBQUcsSUFBSUMsZ0JBQVEsQ0FBQyxFQUMxQ0MsSUFBSUEsQ0FBQSxFQUFHLENBQ0wsSUFBSSxDQUFDQyxJQUFJLENBQUNKLE1BQU0sQ0FBQyxDQUNqQixJQUFJLENBQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDakIsQ0FBQyxDQUNILENBQUMsQ0FBQyxDQUVGLE9BQU9ILHNCQUFzQixDQUMvQixDQUVBLGVBQWVJLG1CQUFtQkEsQ0FBQ0wsTUFBYyxFQUFxQjtFQUNwRSxPQUFPLElBQUlNLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztJQUN0QyxNQUFNQyxZQUFZLEdBQUdWLHNCQUFzQixDQUFDQyxNQUFNLENBQUM7SUFDbkRTLFlBQVksQ0FBQ0MsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNOztNQUM1QjtJQUFBLENBQ0QsQ0FBQztJQUVGRCxZQUFZLENBQUNDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTTtNQUMzQkgsT0FBTyxDQUFDRSxZQUFZLENBQUM7SUFDdkIsQ0FBQyxDQUFDOztJQUVGQSxZQUFZLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQ0MsS0FBSyxLQUFLO01BQ2xDSCxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUE7O0FBRWMsRUFBRWYsc0JBQXNCLEVBQUVNLG1CQUFtQixDQUFDLENBQUMifQ==
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
var _axios = _interopRequireDefault(require("axios"));
|
|
17
|
-
var _bufferToStream = _interopRequireDefault(require("buffer-to-stream"));
|
|
18
17
|
var _formData = _interopRequireDefault(require("form-data"));
|
|
19
18
|
var _mimeTypes = _interopRequireDefault(require("mime-types"));
|
|
20
19
|
|
|
20
|
+
var _bufferutils = _interopRequireDefault(require("./bufferutils"));
|
|
21
|
+
|
|
21
22
|
var _sessionUtil = require("./sessionUtil"); /*
|
|
22
23
|
* Copyright 2021 WPPConnect Team
|
|
23
24
|
*
|
|
@@ -32,8 +33,8 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
32
33
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
33
34
|
* See the License for the specific language governing permissions and
|
|
34
35
|
* limitations under the License.
|
|
35
|
-
*/
|
|
36
|
-
|
|
36
|
+
*/ // import bufferUtils from './bufferutils';
|
|
37
|
+
class chatWootClient {constructor(config, session) {this.config = config;this.mobile_name = this.config.mobile_name ? this.config.mobile_name :
|
|
37
38
|
`WPPConnect`;
|
|
38
39
|
this.mobile_number = this.config.mobile_number ?
|
|
39
40
|
this.config.mobile_number :
|
|
@@ -86,8 +87,94 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
86
87
|
});
|
|
87
88
|
}
|
|
88
89
|
|
|
90
|
+
// async sendMessage(client: any, message: any) {
|
|
91
|
+
// if (message.isGroupMsg || message.chatId.indexOf('@broadcast') > 0) return;
|
|
92
|
+
// const contact = await this.createContact(message);
|
|
93
|
+
// const conversation = await this.createConversation(
|
|
94
|
+
// contact,
|
|
95
|
+
// message.chatId.split('@')[0]
|
|
96
|
+
// );
|
|
97
|
+
|
|
98
|
+
// try {
|
|
99
|
+
// if (
|
|
100
|
+
// message.type == 'image' ||
|
|
101
|
+
// message.type == 'video' ||
|
|
102
|
+
// message.type == 'in' ||
|
|
103
|
+
// message.type == 'document' ||
|
|
104
|
+
// message.type == 'ptt' ||
|
|
105
|
+
// message.type == 'audio' ||
|
|
106
|
+
// message.type == 'sticker'
|
|
107
|
+
// ) {
|
|
108
|
+
// if (message.mimetype == 'image/webp') message.mimetype = 'image/jpeg';
|
|
109
|
+
// const extension = mime.extension(message.mimetype);
|
|
110
|
+
// const filename = `${message.timestamp}.${extension}`;
|
|
111
|
+
// let b64;
|
|
112
|
+
|
|
113
|
+
// if (message.qrCode) b64 = message.qrCode;
|
|
114
|
+
// else {
|
|
115
|
+
// const buffer = await client.decryptFile(message);
|
|
116
|
+
// b64 = await buffer.toString('base64');
|
|
117
|
+
// }
|
|
118
|
+
|
|
119
|
+
// const mediaData = Buffer.from(b64, 'base64');
|
|
120
|
+
|
|
121
|
+
// // Create a readable stream from the Buffer
|
|
122
|
+
// const stream = new Readable();
|
|
123
|
+
// stream.push(mediaData);
|
|
124
|
+
// stream.push(null); // Signaling the end of the stream
|
|
125
|
+
|
|
126
|
+
// const data = new FormData();
|
|
127
|
+
// if (message.caption) {
|
|
128
|
+
// data.append('content', message.caption);
|
|
129
|
+
// }
|
|
130
|
+
|
|
131
|
+
// data.append('attachments[]', stream, {
|
|
132
|
+
// filename: filename,
|
|
133
|
+
// contentType: message.mimetype,
|
|
134
|
+
// });
|
|
135
|
+
|
|
136
|
+
// data.append('message_type', 'incoming');
|
|
137
|
+
// data.append('private', 'false');
|
|
138
|
+
|
|
139
|
+
// const configPost = Object.assign(
|
|
140
|
+
// {},
|
|
141
|
+
// {
|
|
142
|
+
// baseURL: this.config.baseURL,
|
|
143
|
+
// headers: {
|
|
144
|
+
// 'Content-Type': 'application/json;charset=utf-8',
|
|
145
|
+
// api_access_token: this.config.token,
|
|
146
|
+
// },
|
|
147
|
+
// }
|
|
148
|
+
// );
|
|
149
|
+
|
|
150
|
+
// configPost.headers = { ...configPost.headers, ...data.getHeaders() };
|
|
151
|
+
// console.log('PRÉ-REQUEST');
|
|
152
|
+
// const result = await axios.post(
|
|
153
|
+
// `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,
|
|
154
|
+
// data,
|
|
155
|
+
// configPost
|
|
156
|
+
// );
|
|
157
|
+
// console.log('POS-REQUEST');
|
|
158
|
+
// return result;
|
|
159
|
+
// } else {
|
|
160
|
+
// const body = {
|
|
161
|
+
// content: message.body,
|
|
162
|
+
// message_type: 'incoming',
|
|
163
|
+
// };
|
|
164
|
+
// const { data } = await this.api.post(
|
|
165
|
+
// `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,
|
|
166
|
+
// body
|
|
167
|
+
// );
|
|
168
|
+
// return data;
|
|
169
|
+
// }
|
|
170
|
+
// } catch (e) {
|
|
171
|
+
// return null;
|
|
172
|
+
// }
|
|
173
|
+
// }
|
|
174
|
+
|
|
89
175
|
async sendMessage(client, message) {
|
|
90
176
|
if (message.isGroupMsg || message.chatId.indexOf('@broadcast') > 0) return;
|
|
177
|
+
|
|
91
178
|
const contact = await this.createContact(message);
|
|
92
179
|
const conversation = await this.createConversation(
|
|
93
180
|
contact,
|
|
@@ -96,55 +183,54 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
96
183
|
|
|
97
184
|
try {
|
|
98
185
|
if (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
186
|
+
[
|
|
187
|
+
'image',
|
|
188
|
+
'video',
|
|
189
|
+
'in',
|
|
190
|
+
'document',
|
|
191
|
+
'ptt',
|
|
192
|
+
'audio',
|
|
193
|
+
'sticker'].
|
|
194
|
+
includes(message.type))
|
|
106
195
|
{
|
|
107
|
-
if (message.mimetype
|
|
196
|
+
if (message.mimetype === 'image/webp') message.mimetype = 'image/jpeg';
|
|
108
197
|
const extension = _mimeTypes.default.extension(message.mimetype);
|
|
109
198
|
const filename = `${message.timestamp}.${extension}`;
|
|
110
199
|
let b64;
|
|
111
200
|
|
|
112
|
-
if (message.qrCode)
|
|
113
|
-
|
|
201
|
+
if (message.qrCode) {
|
|
202
|
+
b64 = message.qrCode;
|
|
203
|
+
} else {
|
|
114
204
|
const buffer = await client.decryptFile(message);
|
|
115
|
-
b64 =
|
|
205
|
+
b64 = buffer.toString('base64');
|
|
116
206
|
}
|
|
117
207
|
|
|
118
208
|
const mediaData = Buffer.from(b64, 'base64');
|
|
209
|
+
const stream = _bufferutils.default.bufferToReadableStream(mediaData);
|
|
119
210
|
|
|
120
211
|
const data = new _formData.default();
|
|
121
212
|
if (message.caption) {
|
|
122
213
|
data.append('content', message.caption);
|
|
123
214
|
}
|
|
124
|
-
|
|
215
|
+
|
|
216
|
+
data.append('attachments[]', stream, {
|
|
125
217
|
filename: filename,
|
|
126
218
|
contentType: message.mimetype
|
|
127
219
|
});
|
|
220
|
+
|
|
128
221
|
data.append('message_type', 'incoming');
|
|
129
222
|
data.append('private', 'false');
|
|
130
223
|
|
|
131
|
-
const configPost =
|
|
132
|
-
|
|
133
|
-
{
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
'Content-Type': 'application/json;charset=utf-8',
|
|
137
|
-
api_access_token: this.config.token
|
|
138
|
-
}
|
|
224
|
+
const configPost = {
|
|
225
|
+
baseURL: this.config.baseURL,
|
|
226
|
+
headers: {
|
|
227
|
+
api_access_token: this.config.token,
|
|
228
|
+
...data.getHeaders()
|
|
139
229
|
}
|
|
140
|
-
|
|
141
|
-
|
|
230
|
+
};
|
|
231
|
+
const endpoint = `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`;
|
|
142
232
|
|
|
143
|
-
const result = await _axios.default.post(
|
|
144
|
-
`api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,
|
|
145
|
-
data,
|
|
146
|
-
configPost
|
|
147
|
-
);
|
|
233
|
+
const result = await _axios.default.post(endpoint, data, configPost);
|
|
148
234
|
|
|
149
235
|
return result;
|
|
150
236
|
} else {
|
|
@@ -152,13 +238,13 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
152
238
|
content: message.body,
|
|
153
239
|
message_type: 'incoming'
|
|
154
240
|
};
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
);
|
|
241
|
+
const endpoint = `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`;
|
|
242
|
+
|
|
243
|
+
const { data } = await this.api.post(endpoint, body);
|
|
159
244
|
return data;
|
|
160
245
|
}
|
|
161
246
|
} catch (e) {
|
|
247
|
+
console.error('Error sending message:', e);
|
|
162
248
|
return null;
|
|
163
249
|
}
|
|
164
250
|
}
|
|
@@ -205,10 +291,10 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
205
291
|
async findConversation(contact) {
|
|
206
292
|
try {
|
|
207
293
|
const { data } = await this.api.get(
|
|
208
|
-
`api/v1/accounts/${this.account_id}/
|
|
294
|
+
`api/v1/accounts/${this.account_id}/contacts/${contact.id}/conversations`
|
|
209
295
|
);
|
|
210
|
-
return data.
|
|
211
|
-
(e) => e.
|
|
296
|
+
return data.payload.find(
|
|
297
|
+
(e) => e.inbox_id == this.inbox_id && e.status != 'resolved'
|
|
212
298
|
);
|
|
213
299
|
} catch (e) {
|
|
214
300
|
console.log(e);
|
|
@@ -239,4 +325,4 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
239
325
|
}
|
|
240
326
|
}
|
|
241
327
|
}exports.default = chatWootClient;
|
|
242
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9idWZmZXJUb1N0cmVhbSIsIl9mb3JtRGF0YSIsIl9taW1lVHlwZXMiLCJfc2Vzc2lvblV0aWwiLCJjaGF0V29vdENsaWVudCIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwic2Vzc2lvbiIsIm1vYmlsZV9uYW1lIiwibW9iaWxlX251bWJlciIsInNlbmRlciIsInB1c2huYW1lIiwiaWQiLCJhY2NvdW50X2lkIiwiaW5ib3hfaWQiLCJhcGkiLCJheGlvcyIsImNyZWF0ZSIsImJhc2VVUkwiLCJoZWFkZXJzIiwiYXBpX2FjY2Vzc190b2tlbiIsInRva2VuIiwiZXZlbnRFbWl0dGVyIiwib24iLCJxckNvZGUiLCJ1cmxDb2RlIiwiY2xpZW50Iiwic2V0VGltZW91dCIsImNoYXR3b290Iiwic2VuZFFyQ29kZSIsInNlbmRNZXNzYWdlIiwiY2hhdElkIiwidHlwZSIsInRpbWVzdGFtcCIsIm1pbWV0eXBlIiwiY2FwdGlvbiIsInJlcGxhY2UiLCJzdGF0dXMiLCJzZW5kU3RhdHVzIiwiYm9keSIsIm1lc3NhZ2UiLCJpc0dyb3VwTXNnIiwiaW5kZXhPZiIsImNvbnRhY3QiLCJjcmVhdGVDb250YWN0IiwiY29udmVyc2F0aW9uIiwiY3JlYXRlQ29udmVyc2F0aW9uIiwic3BsaXQiLCJleHRlbnNpb24iLCJtaW1lIiwiZmlsZW5hbWUiLCJiNjQiLCJidWZmZXIiLCJkZWNyeXB0RmlsZSIsInRvU3RyaW5nIiwibWVkaWFEYXRhIiwiQnVmZmVyIiwiZnJvbSIsImRhdGEiLCJGb3JtRGF0YSIsImFwcGVuZCIsInRvU3RyZWFtIiwiY29udGVudFR5cGUiLCJjb25maWdQb3N0IiwiT2JqZWN0IiwiYXNzaWduIiwiZ2V0SGVhZGVycyIsInJlc3VsdCIsInBvc3QiLCJjb250ZW50IiwibWVzc2FnZV90eXBlIiwiZSIsImZpbmRDb250YWN0IiwicXVlcnkiLCJnZXQiLCJjb25zb2xlIiwibG9nIiwibmFtZSIsImlzTXlDb250YWN0IiwiZm9ybWF0dGVkTmFtZSIsInBob25lX251bWJlciIsInVzZXIiLCJtZXRhIiwiY291bnQiLCJwYXlsb2FkIiwiZmluZENvbnZlcnNhdGlvbiIsImZpbmQiLCJzb3VyY2VfaWQiLCJjb250YWN0X2lkIiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9jaGF0V29vdENsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHRvU3RyZWFtIGZyb20gJ2J1ZmZlci10by1zdHJlYW0nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBGb3JtRGF0YSB9IGZyb20gJ2Zvcm0tZGF0YSc7XG5pbXBvcnQgbWltZSBmcm9tICdtaW1lLXR5cGVzJztcblxuaW1wb3J0IHsgZXZlbnRFbWl0dGVyIH0gZnJvbSAnLi9zZXNzaW9uVXRpbCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIGNoYXRXb290Q2xpZW50IHtcbiAgZGVjbGFyZSBjb25maWc6IGFueTtcbiAgZGVjbGFyZSBzZXNzaW9uOiBhbnk7XG4gIGRlY2xhcmUgbW9iaWxlX25hbWU6IGFueTtcbiAgZGVjbGFyZSBtb2JpbGVfbnVtYmVyOiBhbnk7XG4gIGRlY2xhcmUgc2VuZGVyOiBhbnk7XG4gIGRlY2xhcmUgYWNjb3VudF9pZDogYW55O1xuICBkZWNsYXJlIGluYm94X2lkOiBhbnk7XG4gIGRlY2xhcmUgYXBpOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBhbnksIHNlc3Npb246IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMubW9iaWxlX25hbWUgPSB0aGlzLmNvbmZpZy5tb2JpbGVfbmFtZVxuICAgICAgPyB0aGlzLmNvbmZpZy5tb2JpbGVfbmFtZVxuICAgICAgOiBgV1BQQ29ubmVjdGA7XG4gICAgdGhpcy5tb2JpbGVfbnVtYmVyID0gdGhpcy5jb25maWcubW9iaWxlX251bWJlclxuICAgICAgPyB0aGlzLmNvbmZpZy5tb2JpbGVfbnVtYmVyXG4gICAgICA6ICc1NTExOTk5OTk5OTk5JztcbiAgICB0aGlzLnNlbmRlciA9IHtcbiAgICAgIHB1c2huYW1lOiB0aGlzLm1vYmlsZV9uYW1lLFxuICAgICAgaWQ6IHRoaXMubW9iaWxlX251bWJlcixcbiAgICB9O1xuICAgIHRoaXMuYWNjb3VudF9pZCA9IHRoaXMuY29uZmlnLmFjY291bnRfaWQ7XG4gICAgdGhpcy5pbmJveF9pZCA9IHRoaXMuY29uZmlnLmluYm94X2lkO1xuICAgIHRoaXMuYXBpID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IHRoaXMuY29uZmlnLmJhc2VVUkwsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04JyxcbiAgICAgICAgYXBpX2FjY2Vzc190b2tlbjogdGhpcy5jb25maWcudG9rZW4sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy9hc3NpbmEgbyBldmVudG8gZG8gcXJjb2RlXG4gICAgZXZlbnRFbWl0dGVyLm9uKGBxcmNvZGUtJHtzZXNzaW9ufWAsIChxckNvZGUsIHVybENvZGUsIGNsaWVudCkgPT4ge1xuICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChjb25maWc/LmNoYXR3b290Py5zZW5kUXJDb2RlICE9PSBmYWxzZSkge1xuICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoY2xpZW50LCB7XG4gICAgICAgICAgICBzZW5kZXI6IHRoaXMuc2VuZGVyLFxuICAgICAgICAgICAgY2hhdElkOiB0aGlzLm1vYmlsZV9udW1iZXIgKyAnQGMudXMnLFxuICAgICAgICAgICAgdHlwZTogJ2ltYWdlJyxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogJ3FyY29kZScsXG4gICAgICAgICAgICBtaW1ldHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgICAgICBjYXB0aW9uOiAnbGVpYSBvIHFyQ29kZScsXG4gICAgICAgICAgICBxckNvZGU6IHFyQ29kZS5yZXBsYWNlKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsJywgJycpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCAxMDAwKTtcbiAgICB9KTtcblxuICAgIC8vYXNzaW9uYSBvIGV2ZW50byBkbyBzdGF0dXNcbiAgICBldmVudEVtaXR0ZXIub24oYHN0YXR1cy0ke3Nlc3Npb259YCwgKGNsaWVudCwgc3RhdHVzKSA9PiB7XG4gICAgICBpZiAoY29uZmlnPy5jaGF0d29vdD8uc2VuZFN0YXR1cyAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5zZW5kTWVzc2FnZShjbGllbnQsIHtcbiAgICAgICAgICBzZW5kZXI6IHRoaXMuc2VuZGVyLFxuICAgICAgICAgIGNoYXRJZDogdGhpcy5tb2JpbGVfbnVtYmVyICsgJ0BjLnVzJyxcbiAgICAgICAgICBib2R5OiBgd3BwY29ubmVjdCBzdGF0dXM6ICR7c3RhdHVzfSBgLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vYXNzaW5hIG8gZXZlbnRvIGRlIG1lbnNhZ2VtXG4gICAgZXZlbnRFbWl0dGVyLm9uKGBtZW5zYWdlbS0ke3Nlc3Npb259YCwgKGNsaWVudCwgbWVzc2FnZSkgPT4ge1xuICAgICAgdGhpcy5zZW5kTWVzc2FnZShjbGllbnQsIG1lc3NhZ2UpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UoY2xpZW50OiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICAgIGlmIChtZXNzYWdlLmlzR3JvdXBNc2cgfHwgbWVzc2FnZS5jaGF0SWQuaW5kZXhPZignQGJyb2FkY2FzdCcpID4gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGNvbnRhY3QgPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbnRhY3QobWVzc2FnZSk7XG4gICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgdGhpcy5jcmVhdGVDb252ZXJzYXRpb24oXG4gICAgICBjb250YWN0LFxuICAgICAgbWVzc2FnZS5jaGF0SWQuc3BsaXQoJ0AnKVswXVxuICAgICk7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ2ltYWdlJyB8fFxuICAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ3ZpZGVvJyB8fFxuICAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ2luJyB8fFxuICAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ2RvY3VtZW50JyB8fFxuICAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ3B0dCcgfHxcbiAgICAgICAgbWVzc2FnZS50eXBlID09ICdhdWRpbycgfHxcbiAgICAgICAgbWVzc2FnZS50eXBlID09ICdzdGlja2VyJ1xuICAgICAgKSB7XG4gICAgICAgIGlmIChtZXNzYWdlLm1pbWV0eXBlID09ICdpbWFnZS93ZWJwJykgbWVzc2FnZS5taW1ldHlwZSA9ICdpbWFnZS9qcGVnJztcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gbWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSk7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lID0gYCR7bWVzc2FnZS50aW1lc3RhbXB9LiR7ZXh0ZW5zaW9ufWA7XG4gICAgICAgIGxldCBiNjQ7XG5cbiAgICAgICAgaWYgKG1lc3NhZ2UucXJDb2RlKSBiNjQgPSBtZXNzYWdlLnFyQ29kZTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRlY3J5cHRGaWxlKG1lc3NhZ2UpO1xuICAgICAgICAgIGI2NCA9IGF3YWl0IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZWRpYURhdGEgPSBCdWZmZXIuZnJvbShiNjQsICdiYXNlNjQnKTtcblxuICAgICAgICBjb25zdCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGlmIChtZXNzYWdlLmNhcHRpb24pIHtcbiAgICAgICAgICBkYXRhLmFwcGVuZCgnY29udGVudCcsIG1lc3NhZ2UuY2FwdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YS5hcHBlbmQoJ2F0dGFjaG1lbnRzW10nLCB0b1N0cmVhbShtZWRpYURhdGEpLCB7XG4gICAgICAgICAgZmlsZW5hbWU6IGZpbGVuYW1lLFxuICAgICAgICAgIGNvbnRlbnRUeXBlOiBtZXNzYWdlLm1pbWV0eXBlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGF0YS5hcHBlbmQoJ21lc3NhZ2VfdHlwZScsICdpbmNvbWluZycpO1xuICAgICAgICBkYXRhLmFwcGVuZCgncHJpdmF0ZScsICdmYWxzZScpO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZ1Bvc3QgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHt9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJhc2VVUkw6IHRoaXMuY29uZmlnLmJhc2VVUkwsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04JyxcbiAgICAgICAgICAgICAgYXBpX2FjY2Vzc190b2tlbjogdGhpcy5jb25maWcudG9rZW4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgY29uZmlnUG9zdC5oZWFkZXJzID0geyAuLi5jb25maWdQb3N0LmhlYWRlcnMsIC4uLmRhdGEuZ2V0SGVhZGVycygpIH07XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXhpb3MucG9zdChcbiAgICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uLmlkfS9tZXNzYWdlc2AsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBjb25maWdQb3N0XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgY29udGVudDogbWVzc2FnZS5ib2R5LFxuICAgICAgICAgIG1lc3NhZ2VfdHlwZTogJ2luY29taW5nJyxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmFwaS5wb3N0KFxuICAgICAgICAgIGBhcGkvdjEvYWNjb3VudHMvJHt0aGlzLmFjY291bnRfaWR9L2NvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb24uaWR9L21lc3NhZ2VzYCxcbiAgICAgICAgICBib2R5XG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZpbmRDb250YWN0KHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmFwaS5nZXQoXG4gICAgICAgIGBhcGkvdjEvYWNjb3VudHMvJHt0aGlzLmFjY291bnRfaWR9L2NvbnRhY3RzL3NlYXJjaC8/cT0ke3F1ZXJ5fWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnRhY3QobWVzc2FnZTogYW55KSB7XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGluYm94X2lkOiB0aGlzLmluYm94X2lkLFxuICAgICAgbmFtZTogbWVzc2FnZS5zZW5kZXIuaXNNeUNvbnRhY3RcbiAgICAgICAgPyBtZXNzYWdlLnNlbmRlci5mb3JtYXR0ZWROYW1lXG4gICAgICAgIDogbWVzc2FnZS5zZW5kZXIucHVzaG5hbWUgfHwgbWVzc2FnZS5zZW5kZXIuZm9ybWF0dGVkTmFtZSxcbiAgICAgIHBob25lX251bWJlcjpcbiAgICAgICAgdHlwZW9mIG1lc3NhZ2Uuc2VuZGVyLmlkID09ICdvYmplY3QnXG4gICAgICAgICAgPyBtZXNzYWdlLnNlbmRlci5pZC51c2VyXG4gICAgICAgICAgOiBtZXNzYWdlLnNlbmRlci5pZC5zcGxpdCgnQCcpWzBdLFxuICAgIH07XG4gICAgYm9keS5waG9uZV9udW1iZXIgPSBgKyR7Ym9keS5waG9uZV9udW1iZXJ9YDtcbiAgICBjb25zdCBjb250YWN0ID0gYXdhaXQgdGhpcy5maW5kQ29udGFjdChib2R5LnBob25lX251bWJlci5yZXBsYWNlKCcrJywgJycpKTtcbiAgICBpZiAoY29udGFjdCAmJiBjb250YWN0Lm1ldGEuY291bnQgPiAwKSByZXR1cm4gY29udGFjdC5wYXlsb2FkWzBdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFwaS5wb3N0KFxuICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb250YWN0c2AsXG4gICAgICAgIGJvZHlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YS5kYXRhLnBheWxvYWQuY29udGFjdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZpbmRDb252ZXJzYXRpb24oY29udGFjdDogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkuZ2V0KFxuICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb252ZXJzYXRpb25zP2luYm94X2lkPSR7dGhpcy5pbmJveF9pZH0mc3RhdHVzPWFsbGBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YS5kYXRhLnBheWxvYWQuZmluZChcbiAgICAgICAgKGU6IGFueSkgPT4gZS5tZXRhLnNlbmRlci5pZCA9PSBjb250YWN0LmlkICYmIGUuc3RhdHVzICE9ICdyZXNvbHZlZCdcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVDb252ZXJzYXRpb24oY29udGFjdDogYW55LCBzb3VyY2VfaWQ6IGFueSkge1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGF3YWl0IHRoaXMuZmluZENvbnZlcnNhdGlvbihjb250YWN0KTtcbiAgICBpZiAoY29udmVyc2F0aW9uKSByZXR1cm4gY29udmVyc2F0aW9uO1xuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIHNvdXJjZV9pZDogc291cmNlX2lkLFxuICAgICAgaW5ib3hfaWQ6IHRoaXMuaW5ib3hfaWQsXG4gICAgICBjb250YWN0X2lkOiBjb250YWN0LmlkLFxuICAgICAgc3RhdHVzOiAnb3BlbicsXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuYXBpLnBvc3QoXG4gICAgICAgIGBhcGkvdjEvYWNjb3VudHMvJHt0aGlzLmFjY291bnRfaWR9L2NvbnZlcnNhdGlvbnNgLFxuICAgICAgICBib2R5XG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBOztBQUVBLElBQUFJLFlBQUEsR0FBQUosT0FBQSxrQkFBNkMsQ0FwQjdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQVFlLE1BQU1LLGNBQWMsQ0FBQyxDQVVsQ0MsV0FBV0EsQ0FBQ0MsTUFBVyxFQUFFQyxPQUFlLEVBQUUsQ0FDeEMsSUFBSSxDQUFDRCxNQUFNLEdBQUdBLE1BQU0sQ0FDcEIsSUFBSSxDQUFDRSxXQUFXLEdBQUcsSUFBSSxDQUFDRixNQUFNLENBQUNFLFdBQVc7SUFDdEMsSUFBSSxDQUFDRixNQUFNLENBQUNFLFdBQVc7SUFDdEIsWUFBVztJQUNoQixJQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUNILE1BQU0sQ0FBQ0csYUFBYTtJQUMxQyxJQUFJLENBQUNILE1B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
|
|
328
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9mb3JtRGF0YSIsIl9taW1lVHlwZXMiLCJfYnVmZmVydXRpbHMiLCJfc2Vzc2lvblV0aWwiLCJjaGF0V29vdENsaWVudCIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwic2Vzc2lvbiIsIm1vYmlsZV9uYW1lIiwibW9iaWxlX251bWJlciIsInNlbmRlciIsInB1c2huYW1lIiwiaWQiLCJhY2NvdW50X2lkIiwiaW5ib3hfaWQiLCJhcGkiLCJheGlvcyIsImNyZWF0ZSIsImJhc2VVUkwiLCJoZWFkZXJzIiwiYXBpX2FjY2Vzc190b2tlbiIsInRva2VuIiwiZXZlbnRFbWl0dGVyIiwib24iLCJxckNvZGUiLCJ1cmxDb2RlIiwiY2xpZW50Iiwic2V0VGltZW91dCIsImNoYXR3b290Iiwic2VuZFFyQ29kZSIsInNlbmRNZXNzYWdlIiwiY2hhdElkIiwidHlwZSIsInRpbWVzdGFtcCIsIm1pbWV0eXBlIiwiY2FwdGlvbiIsInJlcGxhY2UiLCJzdGF0dXMiLCJzZW5kU3RhdHVzIiwiYm9keSIsIm1lc3NhZ2UiLCJpc0dyb3VwTXNnIiwiaW5kZXhPZiIsImNvbnRhY3QiLCJjcmVhdGVDb250YWN0IiwiY29udmVyc2F0aW9uIiwiY3JlYXRlQ29udmVyc2F0aW9uIiwic3BsaXQiLCJpbmNsdWRlcyIsImV4dGVuc2lvbiIsIm1pbWUiLCJmaWxlbmFtZSIsImI2NCIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwidG9TdHJpbmciLCJtZWRpYURhdGEiLCJCdWZmZXIiLCJmcm9tIiwic3RyZWFtIiwiYnVmZmVydXRpbHMiLCJidWZmZXJUb1JlYWRhYmxlU3RyZWFtIiwiZGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiY29udGVudFR5cGUiLCJjb25maWdQb3N0IiwiZ2V0SGVhZGVycyIsImVuZHBvaW50IiwicmVzdWx0IiwicG9zdCIsImNvbnRlbnQiLCJtZXNzYWdlX3R5cGUiLCJlIiwiY29uc29sZSIsImVycm9yIiwiZmluZENvbnRhY3QiLCJxdWVyeSIsImdldCIsImxvZyIsIm5hbWUiLCJpc015Q29udGFjdCIsImZvcm1hdHRlZE5hbWUiLCJwaG9uZV9udW1iZXIiLCJ1c2VyIiwibWV0YSIsImNvdW50IiwicGF5bG9hZCIsImZpbmRDb252ZXJzYXRpb24iLCJmaW5kIiwic291cmNlX2lkIiwiY29udGFjdF9pZCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY2hhdFdvb3RDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zSW5zdGFuY2UsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgRm9ybURhdGEgfSBmcm9tICdmb3JtLWRhdGEnO1xuaW1wb3J0IG1pbWUgZnJvbSAnbWltZS10eXBlcyc7XG5cbmltcG9ydCBidWZmZXJ1dGlscyBmcm9tICcuL2J1ZmZlcnV0aWxzJztcbi8vIGltcG9ydCBidWZmZXJVdGlscyBmcm9tICcuL2J1ZmZlcnV0aWxzJztcbmltcG9ydCB7IGV2ZW50RW1pdHRlciB9IGZyb20gJy4vc2Vzc2lvblV0aWwnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBjaGF0V29vdENsaWVudCB7XG4gIGRlY2xhcmUgY29uZmlnOiBhbnk7XG4gIGRlY2xhcmUgc2Vzc2lvbjogYW55O1xuICBkZWNsYXJlIG1vYmlsZV9uYW1lOiBhbnk7XG4gIGRlY2xhcmUgbW9iaWxlX251bWJlcjogYW55O1xuICBkZWNsYXJlIHNlbmRlcjogYW55O1xuICBkZWNsYXJlIGFjY291bnRfaWQ6IGFueTtcbiAgZGVjbGFyZSBpbmJveF9pZDogYW55O1xuICBkZWNsYXJlIGFwaTogQXhpb3NJbnN0YW5jZTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IGFueSwgc2Vzc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5tb2JpbGVfbmFtZSA9IHRoaXMuY29uZmlnLm1vYmlsZV9uYW1lXG4gICAgICA/IHRoaXMuY29uZmlnLm1vYmlsZV9uYW1lXG4gICAgICA6IGBXUFBDb25uZWN0YDtcbiAgICB0aGlzLm1vYmlsZV9udW1iZXIgPSB0aGlzLmNvbmZpZy5tb2JpbGVfbnVtYmVyXG4gICAgICA/IHRoaXMuY29uZmlnLm1vYmlsZV9udW1iZXJcbiAgICAgIDogJzU1MTE5OTk5OTk5OTknO1xuICAgIHRoaXMuc2VuZGVyID0ge1xuICAgICAgcHVzaG5hbWU6IHRoaXMubW9iaWxlX25hbWUsXG4gICAgICBpZDogdGhpcy5tb2JpbGVfbnVtYmVyLFxuICAgIH07XG4gICAgdGhpcy5hY2NvdW50X2lkID0gdGhpcy5jb25maWcuYWNjb3VudF9pZDtcbiAgICB0aGlzLmluYm94X2lkID0gdGhpcy5jb25maWcuaW5ib3hfaWQ7XG4gICAgdGhpcy5hcGkgPSBheGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogdGhpcy5jb25maWcuYmFzZVVSTCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTgnLFxuICAgICAgICBhcGlfYWNjZXNzX3Rva2VuOiB0aGlzLmNvbmZpZy50b2tlbixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvL2Fzc2luYSBvIGV2ZW50byBkbyBxcmNvZGVcbiAgICBldmVudEVtaXR0ZXIub24oYHFyY29kZS0ke3Nlc3Npb259YCwgKHFyQ29kZSwgdXJsQ29kZSwgY2xpZW50KSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZz8uY2hhdHdvb3Q/LnNlbmRRckNvZGUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZShjbGllbnQsIHtcbiAgICAgICAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICAgICAgICBjaGF0SWQ6IHRoaXMubW9iaWxlX251bWJlciArICdAYy51cycsXG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICAgICAgdGltZXN0YW1wOiAncXJjb2RlJyxcbiAgICAgICAgICAgIG1pbWV0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgIGNhcHRpb246ICdsZWlhIG8gcXJDb2RlJyxcbiAgICAgICAgICAgIHFyQ29kZTogcXJDb2RlLnJlcGxhY2UoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnLCAnJyksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMDApO1xuICAgIH0pO1xuXG4gICAgLy9hc3Npb25hIG8gZXZlbnRvIGRvIHN0YXR1c1xuICAgIGV2ZW50RW1pdHRlci5vbihgc3RhdHVzLSR7c2Vzc2lvbn1gLCAoY2xpZW50LCBzdGF0dXMpID0+IHtcbiAgICAgIGlmIChjb25maWc/LmNoYXR3b290Py5zZW5kU3RhdHVzICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKGNsaWVudCwge1xuICAgICAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICAgICAgY2hhdElkOiB0aGlzLm1vYmlsZV9udW1iZXIgKyAnQGMudXMnLFxuICAgICAgICAgIGJvZHk6IGB3cHBjb25uZWN0IHN0YXR1czogJHtzdGF0dXN9IGAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy9hc3NpbmEgbyBldmVudG8gZGUgbWVuc2FnZW1cbiAgICBldmVudEVtaXR0ZXIub24oYG1lbnNhZ2VtLSR7c2Vzc2lvbn1gLCAoY2xpZW50LCBtZXNzYWdlKSA9PiB7XG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKGNsaWVudCwgbWVzc2FnZSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBhc3luYyBzZW5kTWVzc2FnZShjbGllbnQ6IGFueSwgbWVzc2FnZTogYW55KSB7XG4gIC8vICAgaWYgKG1lc3NhZ2UuaXNHcm91cE1zZyB8fCBtZXNzYWdlLmNoYXRJZC5pbmRleE9mKCdAYnJvYWRjYXN0JykgPiAwKSByZXR1cm47XG4gIC8vICAgY29uc3QgY29udGFjdCA9IGF3YWl0IHRoaXMuY3JlYXRlQ29udGFjdChtZXNzYWdlKTtcbiAgLy8gICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbnZlcnNhdGlvbihcbiAgLy8gICAgIGNvbnRhY3QsXG4gIC8vICAgICBtZXNzYWdlLmNoYXRJZC5zcGxpdCgnQCcpWzBdXG4gIC8vICAgKTtcblxuICAvLyAgIHRyeSB7XG4gIC8vICAgICBpZiAoXG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnaW1hZ2UnIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAndmlkZW8nIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnaW4nIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnZG9jdW1lbnQnIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAncHR0JyB8fFxuICAvLyAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ2F1ZGlvJyB8fFxuICAvLyAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ3N0aWNrZXInXG4gIC8vICAgICApIHtcbiAgLy8gICAgICAgaWYgKG1lc3NhZ2UubWltZXR5cGUgPT0gJ2ltYWdlL3dlYnAnKSBtZXNzYWdlLm1pbWV0eXBlID0gJ2ltYWdlL2pwZWcnO1xuICAvLyAgICAgICBjb25zdCBleHRlbnNpb24gPSBtaW1lLmV4dGVuc2lvbihtZXNzYWdlLm1pbWV0eXBlKTtcbiAgLy8gICAgICAgY29uc3QgZmlsZW5hbWUgPSBgJHttZXNzYWdlLnRpbWVzdGFtcH0uJHtleHRlbnNpb259YDtcbiAgLy8gICAgICAgbGV0IGI2NDtcblxuICAvLyAgICAgICBpZiAobWVzc2FnZS5xckNvZGUpIGI2NCA9IG1lc3NhZ2UucXJDb2RlO1xuICAvLyAgICAgICBlbHNlIHtcbiAgLy8gICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjbGllbnQuZGVjcnlwdEZpbGUobWVzc2FnZSk7XG4gIC8vICAgICAgICAgYjY0ID0gYXdhaXQgYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgLy8gICAgICAgfVxuXG4gIC8vICAgICAgIGNvbnN0IG1lZGlhRGF0YSA9IEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpO1xuXG4gIC8vICAgICAgIC8vIENyZWF0ZSBhIHJlYWRhYmxlIHN0cmVhbSBmcm9tIHRoZSBCdWZmZXJcbiAgLy8gICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlKCk7XG4gIC8vICAgICAgIHN0cmVhbS5wdXNoKG1lZGlhRGF0YSk7XG4gIC8vICAgICAgIHN0cmVhbS5wdXNoKG51bGwpOyAvLyBTaWduYWxpbmcgdGhlIGVuZCBvZiB0aGUgc3RyZWFtXG5cbiAgLy8gICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAvLyAgICAgICBpZiAobWVzc2FnZS5jYXB0aW9uKSB7XG4gIC8vICAgICAgICAgZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBtZXNzYWdlLmNhcHRpb24pO1xuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgZGF0YS5hcHBlbmQoJ2F0dGFjaG1lbnRzW10nLCBzdHJlYW0sIHtcbiAgLy8gICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsXG4gIC8vICAgICAgICAgY29udGVudFR5cGU6IG1lc3NhZ2UubWltZXR5cGUsXG4gIC8vICAgICAgIH0pO1xuXG4gIC8vICAgICAgIGRhdGEuYXBwZW5kKCdtZXNzYWdlX3R5cGUnLCAnaW5jb21pbmcnKTtcbiAgLy8gICAgICAgZGF0YS5hcHBlbmQoJ3ByaXZhdGUnLCAnZmFsc2UnKTtcblxuICAvLyAgICAgICBjb25zdCBjb25maWdQb3N0ID0gT2JqZWN0LmFzc2lnbihcbiAgLy8gICAgICAgICB7fSxcbiAgLy8gICAgICAgICB7XG4gIC8vICAgICAgICAgICBiYXNlVVJMOiB0aGlzLmNvbmZpZy5iYXNlVVJMLFxuICAvLyAgICAgICAgICAgaGVhZGVyczoge1xuICAvLyAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtOCcsXG4gIC8vICAgICAgICAgICAgIGFwaV9hY2Nlc3NfdG9rZW46IHRoaXMuY29uZmlnLnRva2VuLFxuICAvLyAgICAgICAgICAgfSxcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgICk7XG5cbiAgLy8gICAgICAgY29uZmlnUG9zdC5oZWFkZXJzID0geyAuLi5jb25maWdQb3N0LmhlYWRlcnMsIC4uLmRhdGEuZ2V0SGVhZGVycygpIH07XG4gIC8vICAgICAgIGNvbnNvbGUubG9nKCdQUsOJLVJFUVVFU1QnKTtcbiAgLy8gICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXhpb3MucG9zdChcbiAgLy8gICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uLmlkfS9tZXNzYWdlc2AsXG4gIC8vICAgICAgICAgZGF0YSxcbiAgLy8gICAgICAgICBjb25maWdQb3N0XG4gIC8vICAgICAgICk7XG4gIC8vICAgICAgIGNvbnNvbGUubG9nKCdQT1MtUkVRVUVTVCcpO1xuICAvLyAgICAgICByZXR1cm4gcmVzdWx0O1xuICAvLyAgICAgfSBlbHNlIHtcbiAgLy8gICAgICAgY29uc3QgYm9keSA9IHtcbiAgLy8gICAgICAgICBjb250ZW50OiBtZXNzYWdlLmJvZHksXG4gIC8vICAgICAgICAgbWVzc2FnZV90eXBlOiAnaW5jb21pbmcnLFxuICAvLyAgICAgICB9O1xuICAvLyAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuYXBpLnBvc3QoXG4gIC8vICAgICAgICAgYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgLFxuICAvLyAgICAgICAgIGJvZHlcbiAgLy8gICAgICAgKTtcbiAgLy8gICAgICAgcmV0dXJuIGRhdGE7XG4gIC8vICAgICB9XG4gIC8vICAgfSBjYXRjaCAoZSkge1xuICAvLyAgICAgcmV0dXJuIG51bGw7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UoY2xpZW50OiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICAgIGlmIChtZXNzYWdlLmlzR3JvdXBNc2cgfHwgbWVzc2FnZS5jaGF0SWQuaW5kZXhPZignQGJyb2FkY2FzdCcpID4gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29udGFjdCA9IGF3YWl0IHRoaXMuY3JlYXRlQ29udGFjdChtZXNzYWdlKTtcbiAgICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbnZlcnNhdGlvbihcbiAgICAgIGNvbnRhY3QsXG4gICAgICBtZXNzYWdlLmNoYXRJZC5zcGxpdCgnQCcpWzBdXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoXG4gICAgICAgIFtcbiAgICAgICAgICAnaW1hZ2UnLFxuICAgICAgICAgICd2aWRlbycsXG4gICAgICAgICAgJ2luJyxcbiAgICAgICAgICAnZG9jdW1lbnQnLFxuICAgICAgICAgICdwdHQnLFxuICAgICAgICAgICdhdWRpbycsXG4gICAgICAgICAgJ3N0aWNrZXInLFxuICAgICAgICBdLmluY2x1ZGVzKG1lc3NhZ2UudHlwZSlcbiAgICAgICkge1xuICAgICAgICBpZiAobWVzc2FnZS5taW1ldHlwZSA9PT0gJ2ltYWdlL3dlYnAnKSBtZXNzYWdlLm1pbWV0eXBlID0gJ2ltYWdlL2pwZWcnO1xuICAgICAgICBjb25zdCBleHRlbnNpb24gPSBtaW1lLmV4dGVuc2lvbihtZXNzYWdlLm1pbWV0eXBlKTtcbiAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBgJHttZXNzYWdlLnRpbWVzdGFtcH0uJHtleHRlbnNpb259YDtcbiAgICAgICAgbGV0IGI2NDtcblxuICAgICAgICBpZiAobWVzc2FnZS5xckNvZGUpIHtcbiAgICAgICAgICBiNjQgPSBtZXNzYWdlLnFyQ29kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjbGllbnQuZGVjcnlwdEZpbGUobWVzc2FnZSk7XG4gICAgICAgICAgYjY0ID0gYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1lZGlhRGF0YSA9IEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpO1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBidWZmZXJ1dGlscy5idWZmZXJUb1JlYWRhYmxlU3RyZWFtKG1lZGlhRGF0YSk7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBpZiAobWVzc2FnZS5jYXB0aW9uKSB7XG4gICAgICAgICAgZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBtZXNzYWdlLmNhcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YS5hcHBlbmQoJ2F0dGFjaG1lbnRzW10nLCBzdHJlYW0sIHtcbiAgICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsXG4gICAgICAgICAgY29udGVudFR5cGU6IG1lc3NhZ2UubWltZXR5cGUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRhdGEuYXBwZW5kKCdtZXNzYWdlX3R5cGUnLCAnaW5jb21pbmcnKTtcbiAgICAgICAgZGF0YS5hcHBlbmQoJ3ByaXZhdGUnLCAnZmFsc2UnKTtcblxuICAgICAgICBjb25zdCBjb25maWdQb3N0OiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICAgICAgYmFzZVVSTDogdGhpcy5jb25maWcuYmFzZVVSTCxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBhcGlfYWNjZXNzX3Rva2VuOiB0aGlzLmNvbmZpZy50b2tlbixcbiAgICAgICAgICAgIC4uLmRhdGEuZ2V0SGVhZGVycygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGF4aW9zLnBvc3QoZW5kcG9pbnQsIGRhdGEsIGNvbmZpZ1Bvc3QpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgIGNvbnRlbnQ6IG1lc3NhZ2UuYm9keSxcbiAgICAgICAgICBtZXNzYWdlX3R5cGU6ICdpbmNvbWluZycsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgO1xuXG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkucG9zdChlbmRwb2ludCwgYm9keSk7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZTonLCBlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZpbmRDb250YWN0KHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmFwaS5nZXQoXG4gICAgICAgIGBhcGkvdjEvYWNjb3VudHMvJHt0aGlzLmFjY291bnRfaWR9L2NvbnRhY3RzL3NlYXJjaC8/cT0ke3F1ZXJ5fWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnRhY3QobWVzc2FnZTogYW55KSB7XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGluYm94X2lkOiB0aGlzLmluYm94X2lkLFxuICAgICAgbmFtZTogbWVzc2FnZS5zZW5kZXIuaXNNeUNvbnRhY3RcbiAgICAgICAgPyBtZXNzYWdlLnNlbmRlci5mb3JtYXR0ZWROYW1lXG4gICAgICAgIDogbWVzc2FnZS5zZW5kZXIucHVzaG5hbWUgfHwgbWVzc2FnZS5zZW5kZXIuZm9ybWF0dGVkTmFtZSxcbiAgICAgIHBob25lX251bWJlcjpcbiAgICAgICAgdHlwZW9mIG1lc3NhZ2Uuc2VuZGVyLmlkID09ICdvYmplY3QnXG4gICAgICAgICAgPyBtZXNzYWdlLnNlbmRlci5pZC51c2VyXG4gICAgICAgICAgOiBtZXNzYWdlLnNlbmRlci5pZC5zcGxpdCgnQCcpWzBdLFxuICAgIH07XG4gICAgYm9keS5waG9uZV9udW1iZXIgPSBgKyR7Ym9keS5waG9uZV9udW1iZXJ9YDtcbiAgICBjb25zdCBjb250YWN0ID0gYXdhaXQgdGhpcy5maW5kQ29udGFjdChib2R5LnBob25lX251bWJlci5yZXBsYWNlKCcrJywgJycpKTtcbiAgICBpZiAoY29udGFjdCAmJiBjb250YWN0Lm1ldGEuY291bnQgPiAwKSByZXR1cm4gY29udGFjdC5wYXlsb2FkWzBdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFwaS5wb3N0KFxuICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb250YWN0c2AsXG4gICAgICAgIGJvZHlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YS5kYXRhLnBheWxvYWQuY29udGFjdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZpbmRDb252ZXJzYXRpb24oY29udGFjdDogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkuZ2V0KFxuICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb250YWN0cy8ke2NvbnRhY3QuaWR9L2NvbnZlcnNhdGlvbnNgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGEucGF5bG9hZC5maW5kKFxuICAgICAgICAoZTogYW55KSA9PiBlLmluYm94X2lkID09IHRoaXMuaW5ib3hfaWQgJiYgZS5zdGF0dXMgIT0gJ3Jlc29sdmVkJ1xuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnZlcnNhdGlvbihjb250YWN0OiBhbnksIHNvdXJjZV9pZDogYW55KSB7XG4gICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgdGhpcy5maW5kQ29udmVyc2F0aW9uKGNvbnRhY3QpO1xuICAgIGlmIChjb252ZXJzYXRpb24pIHJldHVybiBjb252ZXJzYXRpb247XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgc291cmNlX2lkOiBzb3VyY2VfaWQsXG4gICAgICBpbmJveF9pZDogdGhpcy5pbmJveF9pZCxcbiAgICAgIGNvbnRhY3RfaWQ6IGNvbnRhY3QuaWQsXG4gICAgICBzdGF0dXM6ICdvcGVuJyxcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkucG9zdChcbiAgICAgICAgYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9uc2AsXG4gICAgICAgIGJvZHlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7O0FBRUEsSUFBQUcsWUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBOztBQUVBLElBQUFJLFlBQUEsR0FBQUosT0FBQSxrQkFBNkMsQ0FyQjdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQWRBLENBb0JBO0FBR2UsTUFBTUssY0FBYyxDQUFDLENBVWxDQyxXQUFXQSxDQUFDQyxNQUFXLEVBQUVDLE9B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
|