@wppconnect/server 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/config/upload.js +1 -1
  3. package/dist/config.js +8 -2
  4. package/dist/controller/catalogController.js +296 -29
  5. package/dist/controller/deviceController.js +875 -30
  6. package/dist/controller/encryptController.js +14 -2
  7. package/dist/controller/groupController.js +343 -9
  8. package/dist/controller/labelsController.js +68 -1
  9. package/dist/controller/messageController.js +289 -40
  10. package/dist/controller/miscController.js +221 -0
  11. package/dist/controller/orderController.js +27 -3
  12. package/dist/controller/sessionController.js +236 -9
  13. package/dist/controller/statusController.js +53 -5
  14. package/dist/index.js +8 -8
  15. package/dist/mapper/index.js +2 -2
  16. package/dist/middleware/auth.js +16 -15
  17. package/dist/middleware/healthCheck.js +15 -1
  18. package/dist/middleware/statusConnection.js +2 -1
  19. package/dist/routes/index.js +741 -710
  20. package/dist/swagger-backup.json +21463 -0
  21. package/dist/swagger.js +100 -0
  22. package/dist/swagger.json +4957 -20348
  23. package/dist/types/express/index.d.js +2 -0
  24. package/dist/util/chatWootClient.js +49 -45
  25. package/dist/util/createSessionUtil.js +55 -45
  26. package/dist/util/db/mongodb/db.js +7 -7
  27. package/dist/util/functions.js +31 -23
  28. package/dist/util/getAllTokens.js +1 -1
  29. package/dist/util/logger.js +22 -22
  30. package/dist/util/manageSession.js +130 -0
  31. package/dist/util/sessionUtil.js +5 -3
  32. package/dist/util/tokenStore/FileTokenStore/FileTokenStore.js +7 -7
  33. package/dist/util/tokenStore/mongodbTokenStory.js +2 -3
  34. package/dist/util/tokenStore/redisTokenStory.js +25 -25
  35. package/docker-compose.yml +7 -7
  36. package/package.json +40 -33
  37. package/wppconnect_tokens/wppconnect.json +0 -0
  38. package/dist/types/Request.js +0 -2
@@ -17,6 +17,23 @@
17
17
 
18
18
 
19
19
  async function addNewLabel(req, res) {
20
+ /**
21
+ #swagger.tags = ["Labels"]
22
+ #swagger.autoBody=false
23
+ #swagger.security = [{
24
+ "bearerAuth": []
25
+ }]
26
+ #swagger.parameters["session"] = {
27
+ schema: 'NERDWHATS_AMERICA'
28
+ }
29
+ #swagger.parameters["obj"] = {
30
+ in: 'body',
31
+ schema: {
32
+ $name: 'Name of your label',
33
+ $options: { labelColor: 4292849392 },
34
+ }
35
+ }
36
+ */
20
37
  const { name, options } = req.body;
21
38
  if (!name)
22
39
  return res.status(401).send({
@@ -36,6 +53,23 @@ async function addNewLabel(req, res) {
36
53
  }
37
54
 
38
55
  async function addOrRemoveLabels(req, res) {
56
+ /**
57
+ #swagger.tags = ["Labels"]
58
+ #swagger.autoBody=false
59
+ #swagger.security = [{
60
+ "bearerAuth": []
61
+ }]
62
+ #swagger.parameters["session"] = {
63
+ schema: 'NERDWHATS_AMERICA'
64
+ }
65
+ #swagger.parameters["obj"] = {
66
+ in: 'body',
67
+ schema: {
68
+ $chatIds: ['5521999999999'],
69
+ $options: [{labelId:'76', type:'add'},{labelId:'75', type:'remove'}],
70
+ }
71
+ }
72
+ */
39
73
  const { chatIds, options } = req.body;
40
74
  if (!chatIds || !options)
41
75
  return res.status(401).send({
@@ -55,6 +89,16 @@ async function addOrRemoveLabels(req, res) {
55
89
  }
56
90
 
57
91
  async function getAllLabels(req, res) {
92
+ /**
93
+ #swagger.tags = ["Labels"]
94
+ #swagger.autoBody=false
95
+ #swagger.security = [{
96
+ "bearerAuth": []
97
+ }]
98
+ #swagger.parameters["session"] = {
99
+ schema: 'NERDWHATS_AMERICA'
100
+ }
101
+ */
58
102
  try {
59
103
  const result = await req.client.getAllLabels();
60
104
  res.status(201).json({ status: 'success', response: result });
@@ -68,6 +112,16 @@ async function getAllLabels(req, res) {
68
112
  }
69
113
 
70
114
  async function deleteAllLabels(req, res) {
115
+ /**
116
+ #swagger.tags = ["Labels"]
117
+ #swagger.autoBody=false
118
+ #swagger.security = [{
119
+ "bearerAuth": []
120
+ }]
121
+ #swagger.parameters["session"] = {
122
+ schema: 'NERDWHATS_AMERICA'
123
+ }
124
+ */
71
125
  try {
72
126
  const result = await req.client.deleteAllLabels();
73
127
  res.status(201).json({ status: 'success', response: result });
@@ -81,6 +135,19 @@ async function deleteAllLabels(req, res) {
81
135
  }
82
136
 
83
137
  async function deleteLabel(req, res) {
138
+ /**
139
+ #swagger.tags = ["Labels"]
140
+ #swagger.autoBody=false
141
+ #swagger.security = [{
142
+ "bearerAuth": []
143
+ }]
144
+ #swagger.parameters["session"] = {
145
+ schema: 'NERDWHATS_AMERICA'
146
+ }
147
+ #swagger.parameters["id"] = {
148
+ schema: '<labelId>'
149
+ }
150
+ */
84
151
  const { id } = req.params;
85
152
  try {
86
153
  const result = await req.client.deleteLabel(id);
@@ -93,4 +160,4 @@ async function deleteLabel(req, res) {
93
160
  });
94
161
  }
95
162
  }
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhZGROZXdMYWJlbCIsInJlcSIsInJlcyIsIm5hbWUiLCJvcHRpb25zIiwiYm9keSIsInN0YXR1cyIsInNlbmQiLCJtZXNzYWdlIiwicmVzdWx0IiwiY2xpZW50IiwianNvbiIsInJlc3BvbnNlIiwiZXJyb3IiLCJhZGRPclJlbW92ZUxhYmVscyIsImNoYXRJZHMiLCJnZXRBbGxMYWJlbHMiLCJkZWxldGVBbGxMYWJlbHMiLCJkZWxldGVMYWJlbCIsImlkIiwicGFyYW1zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvbGFiZWxzQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9SZXF1ZXN0JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZE5ld0xhYmVsKHJlcTogUmVxdWVzdCwgcmVzOiBhbnkpIHtcbiAgY29uc3QgeyBuYW1lLCBvcHRpb25zIH0gPSByZXEuYm9keTtcbiAgaWYgKCFuYW1lKVxuICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuc2VuZCh7XG4gICAgICBtZXNzYWdlOiAnTmFtZSB3YXMgbm90IGluZm9ybWVkJyxcbiAgICB9KTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcS5jbGllbnQuYWRkTmV3TGFiZWwobmFtZSwgb3B0aW9ucyk7XG4gICAgcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3VsdCB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdFcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJybyBhbyBhZGljaW9uYXIgZXRpcXVldGEuJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkT3JSZW1vdmVMYWJlbHMocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICBjb25zdCB7IGNoYXRJZHMsIG9wdGlvbnMgfSA9IHJlcS5ib2R5O1xuICBpZiAoIWNoYXRJZHMgfHwgIW9wdGlvbnMpXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5zZW5kKHtcbiAgICAgIG1lc3NhZ2U6ICdjaGF0SWRzIG9yIG9wdGlvbnMgd2FzIG5vdCBpbmZvcm1lZCcsXG4gICAgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmFkZE9yUmVtb3ZlTGFiZWxzKGNoYXRJZHMsIG9wdGlvbnMpO1xuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXN1bHQgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnRXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm8gYW8gYWRpY2lvbmFyL2RlbGV0YXIgZXRpcXVldGEuJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsTGFiZWxzKHJlcTogUmVxdWVzdCwgcmVzOiBhbnkpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmdldEFsbExhYmVscygpO1xuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXN1bHQgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnRXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm8gYW8gYnVzY2FyIGV0aXF1ZXRhcy4nLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVBbGxMYWJlbHMocmVxOiBSZXF1ZXN0LCByZXM6IGFueSkge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcS5jbGllbnQuZGVsZXRlQWxsTGFiZWxzKCk7XG4gICAgcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3VsdCB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdFcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJybyBhbyBkZWxldGFyIHRvZGFzIGFzIGV0aXF1ZXRhcy4nLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVMYWJlbChyZXE6IFJlcXVlc3QsIHJlczogYW55KSB7XG4gIGNvbnN0IHsgaWQgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxLmNsaWVudC5kZWxldGVMYWJlbChpZCk7XG4gICAgcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3VsdCB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdFcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJybyBhbyBkZWxldGFyIGV0aXF1ZXRhLicsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjRRQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlPLGVBQWVBLFdBQVdBLENBQUNDLEdBQVksRUFBRUMsR0FBUSxFQUFFO0VBQ3hELE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxPQUFPLENBQUMsQ0FBQyxHQUFHSCxHQUFHLENBQUNJLElBQUk7RUFDbEMsSUFBSSxDQUFDRixJQUFJO0VBQ1AsT0FBT0QsR0FBRyxDQUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUNDLElBQUksQ0FBQztJQUMxQkMsT0FBTyxFQUFFO0VBQ1gsQ0FBQyxDQUFDOztFQUVKLElBQUk7SUFDRixNQUFNQyxNQUFNLEdBQUcsTUFBTVIsR0FBRyxDQUFDUyxNQUFNLENBQUNWLFdBQVcsQ0FBQ0csSUFBSSxFQUFFQyxPQUFPLENBQUM7SUFDMURGLEdBQUcsQ0FBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDSyxJQUFJLENBQUMsRUFBRUwsTUFB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
163
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhZGROZXdMYWJlbCIsInJlcSIsInJlcyIsIm5hbWUiLCJvcHRpb25zIiwiYm9keSIsInN0YXR1cyIsInNlbmQiLCJtZXNzYWdlIiwicmVzdWx0IiwiY2xpZW50IiwianNvbiIsInJlc3BvbnNlIiwiZXJyb3IiLCJhZGRPclJlbW92ZUxhYmVscyIsImNoYXRJZHMiLCJnZXRBbGxMYWJlbHMiLCJkZWxldGVBbGxMYWJlbHMiLCJkZWxldGVMYWJlbCIsImlkIiwicGFyYW1zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvbGFiZWxzQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGROZXdMYWJlbChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJMYWJlbHNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcIm9ialwiXSA9IHtcbiAgICAgIGluOiAnYm9keScsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgJG5hbWU6ICdOYW1lIG9mIHlvdXIgbGFiZWwnLFxuICAgICAgICAkb3B0aW9uczogeyBsYWJlbENvbG9yOiA0MjkyODQ5MzkyIH0sXG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgbmFtZSwgb3B0aW9ucyB9ID0gcmVxLmJvZHk7XG4gIGlmICghbmFtZSlcbiAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLnNlbmQoe1xuICAgICAgbWVzc2FnZTogJ05hbWUgd2FzIG5vdCBpbmZvcm1lZCcsXG4gICAgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmFkZE5ld0xhYmVsKG5hbWUsIG9wdGlvbnMpO1xuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXN1bHQgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnRXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm8gYW8gYWRpY2lvbmFyIGV0aXF1ZXRhLicsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZE9yUmVtb3ZlTGFiZWxzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkxhYmVsc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wib2JqXCJdID0ge1xuICAgICAgaW46ICdib2R5JyxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICAkY2hhdElkczogWyc1NTIxOTk5OTk5OTk5J10sXG4gICAgICAgICRvcHRpb25zOiBbe2xhYmVsSWQ6Jzc2JywgdHlwZTonYWRkJ30se2xhYmVsSWQ6Jzc1JywgdHlwZToncmVtb3ZlJ31dLFxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IGNoYXRJZHMsIG9wdGlvbnMgfSA9IHJlcS5ib2R5O1xuICBpZiAoIWNoYXRJZHMgfHwgIW9wdGlvbnMpXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5zZW5kKHtcbiAgICAgIG1lc3NhZ2U6ICdjaGF0SWRzIG9yIG9wdGlvbnMgd2FzIG5vdCBpbmZvcm1lZCcsXG4gICAgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmFkZE9yUmVtb3ZlTGFiZWxzKGNoYXRJZHMsIG9wdGlvbnMpO1xuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXN1bHQgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnRXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm8gYW8gYWRpY2lvbmFyL2RlbGV0YXIgZXRpcXVldGEuJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsTGFiZWxzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkxhYmVsc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmdldEFsbExhYmVscygpO1xuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXN1bHQgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnRXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm8gYW8gYnVzY2FyIGV0aXF1ZXRhcy4nLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVBbGxMYWJlbHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTGFiZWxzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcS5jbGllbnQuZGVsZXRlQWxsTGFiZWxzKCk7XG4gICAgcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3VsdCB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdFcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJybyBhbyBkZWxldGFyIHRvZGFzIGFzIGV0aXF1ZXRhcy4nLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVMYWJlbChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJMYWJlbHNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcImlkXCJdID0ge1xuICAgICAgc2NoZW1hOiAnPGxhYmVsSWQ+J1xuICAgICB9XG4gICAqL1xuICBjb25zdCB7IGlkIH0gPSByZXEucGFyYW1zO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcS5jbGllbnQuZGVsZXRlTGFiZWwoaWQpO1xuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXN1bHQgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnRXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm8gYW8gZGVsZXRhciBldGlxdWV0YS4nLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI0UUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJTyxlQUFlQSxXQUFXQSxDQUFDQyxHQUFZLEVBQUVDLEdBQWEsRUFBRTtFQUM3RDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sQ0FBQyxDQUFDLEdBQUdILEdBQUcsQ0FBQ0ksSUFBSTtFQUNsQyxJQUFJLENBQUNGLElBQUk7RUFDUCxPQUFPRCxHQUFHLENBQUNJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO0lBQzFCQyxPQUFPLEVBQUU7RUFDWCxDQUFDLENBQUM7O0VBRUosSUFBSTtJQUNGLE1BQU1DLE1BQU0sR0FBRyxNQUFNUixHQUFHLENBQUNTLE1BQU0sQ0FBQ1YsV0FBVyxDQUFDRyxJQUFJLEVBQUVDLE9BQU8sQ0FBQztJQUMxREYsR0FBRyxDQUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUNLLElBQUksQ0FBQyxFQUFFTCxNQUFNLEVBQUUsU0FBUyxFQUFFTSxRQUFRLEVBQUVILE1BQU0sQ0FBQyxDQUFDLENBQUM7RUFDL0Qs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