@nlabs/reaktor 0.1.6 → 0.1.7
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/lib/config.js +20 -11
- package/lib/data/conversations.js +69 -39
- package/lib/data/dynamodb.js +60 -27
- package/lib/data/email.js +50 -19
- package/lib/data/files.js +103 -46
- package/lib/data/groups.js +114 -67
- package/lib/data/images.js +168 -100
- package/lib/data/index.js +234 -24
- package/lib/data/ios.js +48 -23
- package/lib/data/locations.js +45 -29
- package/lib/data/messages.d.ts +2 -2
- package/lib/data/messages.js +105 -72
- package/lib/data/notifications.js +31 -14
- package/lib/data/payments.js +164 -114
- package/lib/data/posts.js +144 -87
- package/lib/data/reactions.js +58 -33
- package/lib/data/s3.js +54 -24
- package/lib/data/search.js +32 -19
- package/lib/data/sms.js +35 -15
- package/lib/data/subscription.js +78 -51
- package/lib/data/tags.js +90 -51
- package/lib/data/users.js +118 -70
- package/lib/index.js +42 -8
- package/lib/types/apps.js +1 -1
- package/lib/types/arangodb.js +1 -1
- package/lib/types/auth.js +1 -1
- package/lib/types/conversations.js +1 -1
- package/lib/types/email.js +1 -1
- package/lib/types/files.js +1 -1
- package/lib/types/google.js +1 -1
- package/lib/types/groups.js +1 -1
- package/lib/types/images.js +1 -1
- package/lib/types/index.js +210 -22
- package/lib/types/locations.js +1 -1
- package/lib/types/messages.d.ts +12 -7
- package/lib/types/messages.js +1 -1
- package/lib/types/notifications.js +1 -1
- package/lib/types/payments.js +1 -1
- package/lib/types/posts.js +1 -1
- package/lib/types/reactions.js +1 -1
- package/lib/types/tags.js +1 -1
- package/lib/types/users.d.ts +0 -1
- package/lib/types/users.js +1 -1
- package/lib/utils/analytics.js +23 -11
- package/lib/utils/arangodb.js +48 -19
- package/lib/utils/auth.js +31 -15
- package/lib/utils/graphql.js +16 -4
- package/lib/utils/index.js +78 -11
- package/lib/utils/objects.js +30 -10
- package/lib/utils/redis.js +21 -8
- package/package.json +5 -5
- package/index.d.ts +0 -1
package/lib/data/locations.js
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addLocation = void 0;
|
|
7
|
+
|
|
8
|
+
var _ripHunter = require("@nlabs/rip-hunter");
|
|
9
|
+
|
|
10
|
+
var _utils = require("@nlabs/utils");
|
|
11
|
+
|
|
12
|
+
var _arangojs = require("arangojs");
|
|
13
|
+
|
|
14
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
15
|
+
|
|
16
|
+
var _config = require("../config");
|
|
17
|
+
|
|
18
|
+
var _utils2 = require("../utils");
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
1
22
|
function _templateObject() {
|
|
2
23
|
var data = _taggedTemplateLiteral(["UPSERT {googleId: ", "}\n INSERT ", "\n UPDATE ", "\n IN locations RETURN NEW"]);
|
|
3
24
|
|
|
@@ -10,31 +31,24 @@ function _templateObject() {
|
|
|
10
31
|
|
|
11
32
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
12
33
|
|
|
13
|
-
/**
|
|
14
|
-
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
15
|
-
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
16
|
-
*/
|
|
17
|
-
import { get as httpGet, queryString } from '@nlabs/rip-hunter';
|
|
18
|
-
import { createHash, parseChar, parseId } from '@nlabs/utils';
|
|
19
|
-
import { aql } from 'arangojs';
|
|
20
|
-
import get from 'lodash/get';
|
|
21
|
-
import { Config } from '../config';
|
|
22
|
-
import { logError, useDb } from '../utils';
|
|
23
34
|
var eventCategory = 'locations';
|
|
24
|
-
|
|
35
|
+
|
|
36
|
+
var addLocation = function addLocation(context, location) {
|
|
25
37
|
var action = 'add';
|
|
26
38
|
var database = context.database,
|
|
27
39
|
sessionId = context.userId;
|
|
28
40
|
var address = location.address,
|
|
29
41
|
itemId = location.itemId,
|
|
30
42
|
itemType = location.itemType;
|
|
31
|
-
|
|
43
|
+
|
|
44
|
+
var geocodeUrl = _config.Config.get('google.geocode.url');
|
|
45
|
+
|
|
32
46
|
var params = {
|
|
33
47
|
address: address,
|
|
34
|
-
key: Config.get('google.geocode.key')
|
|
48
|
+
key: _config.Config.get('google.geocode.key')
|
|
35
49
|
};
|
|
36
|
-
var url = "".concat(geocodeUrl, "?").concat(queryString(params));
|
|
37
|
-
return
|
|
50
|
+
var url = "".concat(geocodeUrl, "?").concat((0, _ripHunter.queryString)(params));
|
|
51
|
+
return (0, _ripHunter.get)(url).then(function (json) {
|
|
38
52
|
var _json$results = json.results,
|
|
39
53
|
results = _json$results === void 0 ? [] : _json$results,
|
|
40
54
|
_json$status = json.status,
|
|
@@ -42,7 +56,7 @@ export var addLocation = function addLocation(context, location) {
|
|
|
42
56
|
|
|
43
57
|
if (status === 'OK' && results.length) {
|
|
44
58
|
var geodata = results[0];
|
|
45
|
-
var addressComponents =
|
|
59
|
+
var addressComponents = (0, _get.default)(geodata, 'address_components');
|
|
46
60
|
|
|
47
61
|
var getFieldVal = function getFieldVal(name) {
|
|
48
62
|
var _ref = addressComponents.find(function (addressField) {
|
|
@@ -63,27 +77,27 @@ export var addLocation = function addLocation(context, location) {
|
|
|
63
77
|
|
|
64
78
|
var now = Date.now(); // Item
|
|
65
79
|
|
|
66
|
-
var formatItemType = parseChar(itemType).toLowerCase();
|
|
67
|
-
var formatItemId = parseId(itemId);
|
|
68
|
-
var googleId =
|
|
80
|
+
var formatItemType = (0, _utils.parseChar)(itemType).toLowerCase();
|
|
81
|
+
var formatItemId = (0, _utils.parseId)(itemId);
|
|
82
|
+
var googleId = (0, _get.default)(geodata, 'place_id');
|
|
69
83
|
var update = {};
|
|
70
84
|
var insert = {
|
|
71
|
-
_key: createHash("post-".concat(sessionId)),
|
|
85
|
+
_key: (0, _utils.createHash)("post-".concat(sessionId)),
|
|
72
86
|
added: now,
|
|
73
87
|
city: getFieldVal('locality'),
|
|
74
88
|
country: getFieldVal('country'),
|
|
75
|
-
formatted:
|
|
89
|
+
formatted: (0, _get.default)(geodata, 'formatted_address'),
|
|
76
90
|
googleId: googleId,
|
|
77
|
-
latitude:
|
|
78
|
-
longitude:
|
|
91
|
+
latitude: (0, _get.default)(geodata, 'geometry.location.lat'),
|
|
92
|
+
longitude: (0, _get.default)(geodata, 'geometry.location.lng'),
|
|
79
93
|
state: getFieldVal('administrative_area_level_1'),
|
|
80
94
|
street: [streetNumber, route].filter(function (obj) {
|
|
81
95
|
return obj;
|
|
82
96
|
}).join(' '),
|
|
83
97
|
zip: getFieldVal('postal_code')
|
|
84
98
|
};
|
|
85
|
-
var aqlQry = aql(_templateObject(), googleId, insert, update);
|
|
86
|
-
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
99
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject(), googleId, insert, update);
|
|
100
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
87
101
|
return cursor.next();
|
|
88
102
|
}).then(function () {
|
|
89
103
|
var updatedLocation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -101,10 +115,10 @@ export var addLocation = function addLocation(context, location) {
|
|
|
101
115
|
|
|
102
116
|
|
|
103
117
|
if (itemDocId) {
|
|
104
|
-
var edgeCollection = useDb(database).edgeCollection('hasLocation');
|
|
118
|
+
var edgeCollection = (0, _utils2.useDb)(database).edgeCollection('hasLocation');
|
|
105
119
|
var locationId = updatedLocationKey;
|
|
106
120
|
var locationDocId = "locations/".concat(locationId);
|
|
107
|
-
var edgeId = createHash("hasLocation-".concat(locationId, "-").concat(sessionId));
|
|
121
|
+
var edgeId = (0, _utils.createHash)("hasLocation-".concat(locationId, "-").concat(sessionId));
|
|
108
122
|
var edge = {
|
|
109
123
|
_key: edgeId
|
|
110
124
|
};
|
|
@@ -116,7 +130,7 @@ export var addLocation = function addLocation(context, location) {
|
|
|
116
130
|
|
|
117
131
|
return updatedLocation;
|
|
118
132
|
}).catch(function (error) {
|
|
119
|
-
return logError({
|
|
133
|
+
return (0, _utils2.logError)({
|
|
120
134
|
action: action,
|
|
121
135
|
category: eventCategory,
|
|
122
136
|
label: 'db_error'
|
|
@@ -129,4 +143,6 @@ export var addLocation = function addLocation(context, location) {
|
|
|
129
143
|
return {};
|
|
130
144
|
});
|
|
131
145
|
};
|
|
132
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2xvY2F0aW9ucy50cyJdLCJuYW1lcyI6WyJnZXQiLCJodHRwR2V0IiwicXVlcnlTdHJpbmciLCJjcmVhdGVIYXNoIiwicGFyc2VDaGFyIiwicGFyc2VJZCIsImFxbCIsIkNvbmZpZyIsImxvZ0Vycm9yIiwidXNlRGIiLCJldmVudENhdGVnb3J5IiwiYWRkTG9jYXRpb24iLCJjb250ZXh0IiwibG9jYXRpb24iLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImFkZHJlc3MiLCJpdGVtSWQiLCJpdGVtVHlwZSIsImdlb2NvZGVVcmwiLCJwYXJhbXMiLCJrZXkiLCJ1cmwiLCJ0aGVuIiwianNvbiIsInJlc3VsdHMiLCJzdGF0dXMiLCJsZW5ndGgiLCJnZW9kYXRhIiwiYWRkcmVzc0NvbXBvbmVudHMiLCJnZXRGaWVsZFZhbCIsIm5hbWUiLCJmaW5kIiwiYWRkcmVzc0ZpZWxkIiwidHlwZXMiLCJmaW5kSW5kZXgiLCJmaWVsZFR5cGUiLCJzaG9ydF9uYW1lIiwic2hvcnROYW1lIiwic3RyZWV0TnVtYmVyIiwicm91dGUiLCJub3ciLCJEYXRlIiwiZm9ybWF0SXRlbVR5cGUiLCJ0b0xvd2VyQ2FzZSIsImZvcm1hdEl0ZW1JZCIsImdvb2dsZUlkIiwidXBkYXRlIiwiaW5zZXJ0IiwiX2tleSIsImFkZGVkIiwiY2l0eSIsImNvdW50cnkiLCJmb3JtYXR0ZWQiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInN0YXRlIiwic3RyZWV0IiwiZmlsdGVyIiwib2JqIiwiam9pbiIsInppcCIsImFxbFFyeSIsInF1ZXJ5IiwiY3Vyc29yIiwibmV4dCIsInVwZGF0ZWRMb2NhdGlvbiIsIml0ZW1Eb2NJZCIsInVwZGF0ZWRMb2NhdGlvbktleSIsImVkZ2VDb2xsZWN0aW9uIiwibG9jYXRpb25JZCIsImxvY2F0aW9uRG9jSWQiLCJlZGdlSWQiLCJlZGdlIiwic2F2ZSIsImNhdGNoIiwiZXJyb3IiLCJjYXRlZ29yeSIsImxhYmVs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RCxFQUk5QkYsS0FKOEIsRUFJdkJsRSxPQUp1QixDQUFSLENBSU5hLElBSk0sQ0FJRDtBQUFBLGlCQUFNLElBQU47QUFBQSxTQUpDLENBQWxCO0FBQUEsT0E1QkYsQ0FBUDtBQWlDRDs7QUFFRCxXQUFPLEVBQVA7QUFDRCxHQWxGSSxDQUFQO0FBbUZELENBOUZNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Z2V0IGFzIGh0dHBHZXQsIHF1ZXJ5U3RyaW5nfSBmcm9tICdAbmxhYnMvcmlwLWh1bnRlcic7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlQ2hhciwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2FxbC1xdWVyeSc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2N1cnNvcic7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQge0dvb2dsZU1hcHNBZGRyZXNzVHlwZX0gZnJvbSAnLi4vdHlwZXMvZ29vZ2xlJztcbmltcG9ydCB7TG9jYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9sb2NhdGlvbnMnO1xuaW1wb3J0IHtsb2dFcnJvciwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2xvY2F0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBhZGRMb2NhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBsb2NhdGlvbjogTG9jYXRpb25UeXBlKTogUHJvbWlzZTxMb2NhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCB7YWRkcmVzcywgaXRlbUlkLCBpdGVtVHlwZX0gPSBsb2NhdGlvbjtcbiAgY29uc3QgZ2VvY29kZVVybDogc3RyaW5nID0gQ29uZmlnLmdldCgnZ29vZ2xlLmdlb2NvZGUudXJsJyk7XG4gIGNvbnN0IHBhcmFtczogb2JqZWN0ID0ge1xuICAgIGFkZHJlc3MsXG4gICAga2V5OiBDb25maWcuZ2V0KCdnb29nbGUuZ2VvY29kZS5rZXknKVxuICB9O1xuICBjb25zdCB1cmw6IHN0cmluZyA9IGAke2dlb2NvZGVVcmx9PyR7cXVlcnlTdHJpbmcocGFyYW1zKX1gO1xuXG4gIHJldHVybiBodHRwR2V0KHVybClcbiAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgY29uc3Qge3Jlc3VsdHMgPSBbXSwgc3RhdHVzID0gJyd9ID0ganNvbjtcblxuICAgICAgaWYoc3RhdHVzID09PSAnT0snICYmIHJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGdlb2RhdGE6IG9iamVjdCA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IGFkZHJlc3NDb21wb25lbnRzOiBHb29nbGVNYXBzQWRkcmVzc1R5cGVbXSA9IGdldChnZW9kYXRhLCAnYWRkcmVzc19jb21wb25lbnRzJyk7XG4gICAgICAgIGNvbnN0IGdldEZpZWxkVmFsID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgICAgICAgY29uc3Qge3Nob3J0X25hbWU6IHNob3J0TmFtZSA9ICcnfSA9IGFkZHJlc3NDb21wb25lbnRzLmZpbmQoKGFkZHJlc3NGaWVsZDogR29vZ2xlTWFwc0FkZHJlc3NUeXBlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlcyA9IGFkZHJlc3NGaWVsZC50eXBlcyB8fCBbXTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlcy5maW5kSW5kZXgoKGZpZWxkVHlwZTogc3RyaW5nKSA9PiBmaWVsZFR5cGUgPT09IG5hbWUpID49IDA7XG4gICAgICAgICAgfSkgfHwge307XG5cbiAgICAgICAgICByZXR1cm4gc2hvcnROYW1lO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFN0cmVldFxuICAgICAgICBjb25zdCBzdHJlZXROdW1iZXI6IHN0cmluZyA9IGdldEZpZWxkVmFsKCdzdHJlZXRfbnVtYmVyJyk7XG4gICAgICAgIGNvbnN0IHJvdXRlOiBzdHJpbmcgPSBnZXRGaWVsZFZhbCgncm91dGUnKTtcblxuICAgICAgICAvLyBMb2NhdGlvblxuICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgICAgICAgLy8gSXRlbVxuICAgICAgICBjb25zdCBmb3JtYXRJdGVtVHlwZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1UeXBlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbUlkKTtcbiAgICAgICAgY29uc3QgZ29vZ2xlSWQ6IHN0cmluZyA9IGdldChnZW9kYXRhLCAncGxhY2VfaWQnKTtcbiAgICAgICAgY29uc3QgdXBkYXRlOiBMb2NhdGlvblR5cGUgPSB7fTtcbiAgICAgICAgY29uc3QgaW5zZXJ0OiBMb2NhdGlvblR5cGUgPSB7XG4gICAgICAgICAgX2tleTogY3JlYXRlSGFzaChgcG9zdC0ke3Nlc3Npb25JZH1gKSxcbiAgICAgICAgICBhZGRlZDogbm93LFxuICAgICAgICAgIGNpdHk6IGdldEZpZWxkVmFsKCdsb2NhbGl0eScpLFxuICAgICAgICAgIGNvdW50cnk6IGdldEZpZWxkVmFsKCdjb3VudHJ5JyksXG4gICAgICAgICAgZm9ybWF0dGVkOiBnZXQoZ2VvZGF0YSwgJ2Zvcm1hdHRlZF9hZGRyZXNzJyksXG4gICAgICAgICAgZ29vZ2xlSWQsXG4gICAgICAgICAgbGF0aXR1ZGU6IGdldChnZW9kYXRhLCAnZ2VvbWV0cnkubG9jYXRpb24ubGF0JyksXG4gICAgICAgICAgbG9uZ2l0dWRlOiBnZXQoZ2VvZGF0YSwgJ2dlb21ldHJ5LmxvY2F0aW9uLmxuZycpLFxuICAgICAgICAgIHN0YXRlOiBnZXRGaWVsZFZhbCgnYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xJyksXG4gICAgICAgICAgc3RyZWV0OiBbc3RyZWV0TnVtYmVyLCByb3V0ZV0uZmlsdGVyKChvYmopID0+IG9iaikuam9pbignICcpLFxuICAgICAgICAgIHppcDogZ2V0RmllbGRWYWwoJ3Bvc3RhbF9jb2RlJylcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2dvb2dsZUlkOiAke2dvb2dsZUlkfX1cbiAgICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgICAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgICAgICAgIElOIGxvY2F0aW9ucyBSRVRVUk4gTkVXYDtcblxuICAgICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgICAudGhlbigodXBkYXRlZExvY2F0aW9uOiBMb2NhdGlvblR5cGUgPSB7fSkgPT4ge1xuICAgICAgICAgICAgbGV0IGl0ZW1Eb2NJZDogc3RyaW5nO1xuICAgICAgICAgICAgY29uc3Qge19rZXk6IHVwZGF0ZWRMb2NhdGlvbktleX0gPSB1cGRhdGVkTG9jYXRpb247XG5cbiAgICAgICAgICAgIHN3aXRjaChmb3JtYXRJdGVtVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICdwb3N0cyc6XG4gICAgICAgICAgICAgICAgaXRlbURvY0lkID0gYHBvc3RzLyR7Zm9ybWF0SXRlbUlkfWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaXRlbURvY0lkID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgdmFsaWQgaXRlbSBkb2MgaWQsIGNyZWF0ZSBhbiBlZGdlXG4gICAgICAgICAgICBpZihpdGVtRG9jSWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZSkuZWRnZUNvbGxlY3Rpb24oJ2hhc0xvY2F0aW9uJyk7XG4gICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uSWQ6IHN0cmluZyA9IHVwZGF0ZWRMb2NhdGlvbktleTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25Eb2NJZDogc3RyaW5nID0gYGxvY2F0aW9ucy8ke2xvY2F0aW9uSWR9YDtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZUlkID0gY3JlYXRlSGFzaChgaGFzTG9jYXRpb24tJHtsb2NhdGlvbklkfS0ke3Nlc3Npb25JZH1gKTtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZTogYW55ID0ge19rZXk6IGVkZ2VJZH07XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwgaXRlbURvY0lkLCBsb2NhdGlvbkRvY0lkKS50aGVuKCgpID0+IHVwZGF0ZWRMb2NhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHJldHVybiB0aGUgbmV3IGxvY2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZExvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9KTtcbn07XG4iXX0=
|
|
146
|
+
|
|
147
|
+
exports.addLocation = addLocation;
|
|
148
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2xvY2F0aW9ucy50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiYWRkTG9jYXRpb24iLCJjb250ZXh0IiwibG9jYXRpb24iLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImFkZHJlc3MiLCJpdGVtSWQiLCJpdGVtVHlwZSIsImdlb2NvZGVVcmwiLCJDb25maWciLCJnZXQiLCJwYXJhbXMiLCJrZXkiLCJ1cmwiLCJ0aGVuIiwianNvbiIsInJlc3VsdHMiLCJzdGF0dXMiLCJsZW5ndGgiLCJnZW9kYXRhIiwiYWRkcmVzc0NvbXBvbmVudHMiLCJnZXRGaWVsZFZhbCIsIm5hbWUiLCJmaW5kIiwiYWRkcmVzc0ZpZWxkIiwidHlwZXMiLCJmaW5kSW5kZXgiLCJmaWVsZFR5cGUiLCJzaG9ydF9uYW1lIiwic2hvcnROYW1lIiwic3RyZWV0TnVtYmVyIiwicm91dGUiLCJub3ciLCJEYXRlIiwiZm9ybWF0SXRlbVR5cGUiLCJ0b0xvd2VyQ2FzZSIsImZvcm1hdEl0ZW1JZCIsImdvb2dsZUlkIiwidXBkYXRlIiwiaW5zZXJ0IiwiX2tleSIsImFkZGVkIiwiY2l0eSIsImNvdW50cnkiLCJmb3JtYXR0ZWQiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInN0YXRlIiwic3RyZWV0IiwiZmlsdGVyIiwib2JqIiwiam9pbiIsInppcCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwiY3Vyc29yIiwibmV4dCIsInVwZGF0ZWRMb2NhdGlvbiIsIml0ZW1Eb2NJZCIsInVwZGF0ZWRMb2NhdGlvbktleSIsImVkZ2VDb2xsZWN0aW9uIiwibG9jYXRpb25JZCIsImxvY2F0aW9uRG9jSWQiLCJlZGdlSWQiLCJlZGdlIiwic2F2ZSIsImNhdGNoIiwiZXJyb3IiLCJjYXRlZ29yeSIsImxhYmVsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBRUE7O0FBSUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJ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QixDQUErQixhQUEvQixDQUF2QjtBQUNBLGNBQU1DLFVBQWtCLEdBQUdGLGtCQUEzQjtBQUNBLGNBQU1HLGFBQXFCLHVCQUFnQkQsVUFBaEIsQ0FBM0I7QUFDQSxjQUFNRSxNQUFNLEdBQUcsNkNBQTBCRixVQUExQixjQUF3QzNELFNBQXhDLEVBQWY7QUFDQSxjQUFNOEQsSUFBUyxHQUFHO0FBQUN6QixZQUFBQSxJQUFJLEVBQUV3QjtBQUFQLFdBQWxCO0FBRUEsaUJBQU9ILGNBQWMsQ0FBQ0ssSUFBZixDQUFvQkQsSUFBcEIsRUFBMEJOLFNBQTFCLEVBQXFDSSxhQUFyQyxFQUFvRGpELElBQXBELENBQXlEO0FBQUEsbUJBQU00QyxlQUFOO0FBQUEsV0FBekQsQ0FBUDtBQUNELFNBckIyQyxDQXVCNUM7OztBQUNBLGVBQU9BLGVBQVA7QUFDRCxPQTNCSSxFQTRCSlMsS0E1QkksQ0E0QkUsVUFBQ0MsS0FBRDtBQUFBLGVBQWtCLHNCQUFTO0FBQ2hDbkUsVUFBQUEsTUFBTSxFQUFOQSxNQURnQztBQUVoQ29FLFVBQUFBLFFBQVEsRUFBRXhFLGFBRnNCO0FBR2hDeUUsVUFBQUEsS0FBSyxFQUFFO0FBSHlCLFNBQVQsRUFJdEJGLEtBSnNCLEVBSWZyRSxPQUplLEVBSU5lLElBSk0sQ0FJRDtBQUFBLGlCQUFNLElBQU47QUFBQSxTQUpDLENBQWxCO0FBQUEsT0E1QkYsQ0FBUDtBQWlDRDs7QUFFRCxXQUFPLEVBQVA7QUFDRCxHQWxGSSxDQUFQO0FBbUZELENBOUZNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Z2V0IGFzIGh0dHBHZXQsIHF1ZXJ5U3RyaW5nfSBmcm9tICdAbmxhYnMvcmlwLWh1bnRlcic7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlQ2hhciwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2FxbC1xdWVyeSc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2N1cnNvcic7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQge0dvb2dsZU1hcHNBZGRyZXNzVHlwZX0gZnJvbSAnLi4vdHlwZXMvZ29vZ2xlJztcbmltcG9ydCB7TG9jYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9sb2NhdGlvbnMnO1xuaW1wb3J0IHtsb2dFcnJvciwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2xvY2F0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBhZGRMb2NhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBsb2NhdGlvbjogTG9jYXRpb25UeXBlKTogUHJvbWlzZTxMb2NhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCB7YWRkcmVzcywgaXRlbUlkLCBpdGVtVHlwZX0gPSBsb2NhdGlvbjtcbiAgY29uc3QgZ2VvY29kZVVybDogc3RyaW5nID0gQ29uZmlnLmdldCgnZ29vZ2xlLmdlb2NvZGUudXJsJyk7XG4gIGNvbnN0IHBhcmFtczogb2JqZWN0ID0ge1xuICAgIGFkZHJlc3MsXG4gICAga2V5OiBDb25maWcuZ2V0KCdnb29nbGUuZ2VvY29kZS5rZXknKVxuICB9O1xuICBjb25zdCB1cmw6IHN0cmluZyA9IGAke2dlb2NvZGVVcmx9PyR7cXVlcnlTdHJpbmcocGFyYW1zKX1gO1xuXG4gIHJldHVybiBodHRwR2V0KHVybClcbiAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgY29uc3Qge3Jlc3VsdHMgPSBbXSwgc3RhdHVzID0gJyd9ID0ganNvbjtcblxuICAgICAgaWYoc3RhdHVzID09PSAnT0snICYmIHJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGdlb2RhdGE6IG9iamVjdCA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IGFkZHJlc3NDb21wb25lbnRzOiBHb29nbGVNYXBzQWRkcmVzc1R5cGVbXSA9IGdldChnZW9kYXRhLCAnYWRkcmVzc19jb21wb25lbnRzJyk7XG4gICAgICAgIGNvbnN0IGdldEZpZWxkVmFsID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgICAgICAgY29uc3Qge3Nob3J0X25hbWU6IHNob3J0TmFtZSA9ICcnfSA9IGFkZHJlc3NDb21wb25lbnRzLmZpbmQoKGFkZHJlc3NGaWVsZDogR29vZ2xlTWFwc0FkZHJlc3NUeXBlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlcyA9IGFkZHJlc3NGaWVsZC50eXBlcyB8fCBbXTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlcy5maW5kSW5kZXgoKGZpZWxkVHlwZTogc3RyaW5nKSA9PiBmaWVsZFR5cGUgPT09IG5hbWUpID49IDA7XG4gICAgICAgICAgfSkgfHwge307XG5cbiAgICAgICAgICByZXR1cm4gc2hvcnROYW1lO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFN0cmVldFxuICAgICAgICBjb25zdCBzdHJlZXROdW1iZXI6IHN0cmluZyA9IGdldEZpZWxkVmFsKCdzdHJlZXRfbnVtYmVyJyk7XG4gICAgICAgIGNvbnN0IHJvdXRlOiBzdHJpbmcgPSBnZXRGaWVsZFZhbCgncm91dGUnKTtcblxuICAgICAgICAvLyBMb2NhdGlvblxuICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgICAgICAgLy8gSXRlbVxuICAgICAgICBjb25zdCBmb3JtYXRJdGVtVHlwZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1UeXBlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbUlkKTtcbiAgICAgICAgY29uc3QgZ29vZ2xlSWQ6IHN0cmluZyA9IGdldChnZW9kYXRhLCAncGxhY2VfaWQnKTtcbiAgICAgICAgY29uc3QgdXBkYXRlOiBMb2NhdGlvblR5cGUgPSB7fTtcbiAgICAgICAgY29uc3QgaW5zZXJ0OiBMb2NhdGlvblR5cGUgPSB7XG4gICAgICAgICAgX2tleTogY3JlYXRlSGFzaChgcG9zdC0ke3Nlc3Npb25JZH1gKSxcbiAgICAgICAgICBhZGRlZDogbm93LFxuICAgICAgICAgIGNpdHk6IGdldEZpZWxkVmFsKCdsb2NhbGl0eScpLFxuICAgICAgICAgIGNvdW50cnk6IGdldEZpZWxkVmFsKCdjb3VudHJ5JyksXG4gICAgICAgICAgZm9ybWF0dGVkOiBnZXQoZ2VvZGF0YSwgJ2Zvcm1hdHRlZF9hZGRyZXNzJyksXG4gICAgICAgICAgZ29vZ2xlSWQsXG4gICAgICAgICAgbGF0aXR1ZGU6IGdldChnZW9kYXRhLCAnZ2VvbWV0cnkubG9jYXRpb24ubGF0JyksXG4gICAgICAgICAgbG9uZ2l0dWRlOiBnZXQoZ2VvZGF0YSwgJ2dlb21ldHJ5LmxvY2F0aW9uLmxuZycpLFxuICAgICAgICAgIHN0YXRlOiBnZXRGaWVsZFZhbCgnYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xJyksXG4gICAgICAgICAgc3RyZWV0OiBbc3RyZWV0TnVtYmVyLCByb3V0ZV0uZmlsdGVyKChvYmopID0+IG9iaikuam9pbignICcpLFxuICAgICAgICAgIHppcDogZ2V0RmllbGRWYWwoJ3Bvc3RhbF9jb2RlJylcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2dvb2dsZUlkOiAke2dvb2dsZUlkfX1cbiAgICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgICAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgICAgICAgIElOIGxvY2F0aW9ucyBSRVRVUk4gTkVXYDtcblxuICAgICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgICAudGhlbigodXBkYXRlZExvY2F0aW9uOiBMb2NhdGlvblR5cGUgPSB7fSkgPT4ge1xuICAgICAgICAgICAgbGV0IGl0ZW1Eb2NJZDogc3RyaW5nO1xuICAgICAgICAgICAgY29uc3Qge19rZXk6IHVwZGF0ZWRMb2NhdGlvbktleX0gPSB1cGRhdGVkTG9jYXRpb247XG5cbiAgICAgICAgICAgIHN3aXRjaChmb3JtYXRJdGVtVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICdwb3N0cyc6XG4gICAgICAgICAgICAgICAgaXRlbURvY0lkID0gYHBvc3RzLyR7Zm9ybWF0SXRlbUlkfWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaXRlbURvY0lkID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgdmFsaWQgaXRlbSBkb2MgaWQsIGNyZWF0ZSBhbiBlZGdlXG4gICAgICAgICAgICBpZihpdGVtRG9jSWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZSkuZWRnZUNvbGxlY3Rpb24oJ2hhc0xvY2F0aW9uJyk7XG4gICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uSWQ6IHN0cmluZyA9IHVwZGF0ZWRMb2NhdGlvbktleTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25Eb2NJZDogc3RyaW5nID0gYGxvY2F0aW9ucy8ke2xvY2F0aW9uSWR9YDtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZUlkID0gY3JlYXRlSGFzaChgaGFzTG9jYXRpb24tJHtsb2NhdGlvbklkfS0ke3Nlc3Npb25JZH1gKTtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZTogYW55ID0ge19rZXk6IGVkZ2VJZH07XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwgaXRlbURvY0lkLCBsb2NhdGlvbkRvY0lkKS50aGVuKCgpID0+IHVwZGF0ZWRMb2NhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHJldHVybiB0aGUgbmV3IGxvY2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZExvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9KTtcbn07XG4iXX0=
|
package/lib/data/messages.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiContext } from '../types/auth';
|
|
2
|
-
import { MessageType } from '../types/messages';
|
|
2
|
+
import { MessageInputType, MessageType } from '../types/messages';
|
|
3
3
|
export declare const getMessageList: (context: ApiContext, convoId: string, from: number, to: number) => Promise<MessageType[]>;
|
|
4
|
-
export declare const updateMessage: (context: ApiContext, message:
|
|
4
|
+
export declare const updateMessage: (context: ApiContext, message: MessageInputType) => Promise<MessageType>;
|
|
5
5
|
export declare const saveMessage: (context: ApiContext, msgId: string, convoId: string) => Promise<MessageType>;
|
|
6
6
|
export declare const unsaveMessage: (context: ApiContext, msgId: string, convoId: string) => Promise<MessageType>;
|
|
7
7
|
export declare const deleteMessage: (context: ApiContext, msgId: string, convoId: string) => Promise<MessageType>;
|
package/lib/data/messages.js
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cleanMessages = exports.getMessage = exports.deleteMessage = exports.unsaveMessage = exports.saveMessage = exports.updateMessage = exports.getMessageList = void 0;
|
|
7
|
+
|
|
8
|
+
var _utils = require("@nlabs/utils");
|
|
9
|
+
|
|
10
|
+
var _arangojs = require("arangojs");
|
|
11
|
+
|
|
12
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
13
|
+
|
|
14
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
15
|
+
|
|
16
|
+
var _utils2 = require("../utils");
|
|
17
|
+
|
|
18
|
+
var _conversations = require("./conversations");
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
1
22
|
function _templateObject5() {
|
|
2
23
|
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && LENGTH(m.saved) > 0\n REMOVE m IN messages\n RETURN OLD"]);
|
|
3
24
|
|
|
@@ -39,7 +60,7 @@ function _templateObject2() {
|
|
|
39
60
|
}
|
|
40
61
|
|
|
41
62
|
function _templateObject() {
|
|
42
|
-
var data = _taggedTemplateLiteral(["UPSERT {_key: ", ",
|
|
63
|
+
var data = _taggedTemplateLiteral(["UPSERT {_key: ", ", convoId: ", "}\n INSERT ", "\n UPDATE ", "\n IN messages RETURN NEW"]);
|
|
43
64
|
|
|
44
65
|
_templateObject = function _templateObject() {
|
|
45
66
|
return data;
|
|
@@ -54,63 +75,58 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
54
75
|
|
|
55
76
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
56
77
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
60
|
-
*/
|
|
61
|
-
import { createHash, parseId, parseVarChar } from '@nlabs/utils';
|
|
62
|
-
import { aql } from 'arangojs';
|
|
63
|
-
import cloneDeep from 'lodash/cloneDeep';
|
|
64
|
-
import isEmpty from 'lodash/isEmpty';
|
|
65
|
-
import { getLimit, useDb } from '../utils';
|
|
66
|
-
import { getConversation } from './conversations'; // const eventCategory: string = 'messages';
|
|
67
|
-
|
|
68
|
-
export var getMessageList = function getMessageList(context, convoId, from, to) {
|
|
78
|
+
// const eventCategory: string = 'messages';
|
|
79
|
+
var getMessageList = function getMessageList(context, convoId, from, to) {
|
|
69
80
|
var database = context.database;
|
|
70
|
-
var formatConvoId = parseId(convoId);
|
|
71
|
-
return getConversation(context, formatConvoId).then(function (conversation) {
|
|
81
|
+
var formatConvoId = (0, _utils.parseId)(convoId);
|
|
82
|
+
return (0, _conversations.getConversation)(context, formatConvoId).then(function (conversation) {
|
|
72
83
|
var conversationKey = conversation._key;
|
|
73
|
-
var limit = getLimit(from, to);
|
|
84
|
+
var limit = (0, _utils2.getLimit)(from, to);
|
|
74
85
|
var aqlQry = "FOR m IN messages\n FILTER m.to == \"".concat(conversationKey, "\"\n ").concat(limit.aql, "\n SORT m.added\n RETURN m");
|
|
75
|
-
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
86
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
76
87
|
return cursor.all();
|
|
77
88
|
}).catch(function (error) {
|
|
78
89
|
throw error;
|
|
79
90
|
});
|
|
80
91
|
});
|
|
81
92
|
};
|
|
82
|
-
|
|
93
|
+
|
|
94
|
+
exports.getMessageList = getMessageList;
|
|
95
|
+
|
|
96
|
+
var updateMessage = function updateMessage(context, message) {
|
|
83
97
|
var database = context.database,
|
|
84
98
|
sessionId = context.userId;
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
var convoId = message.convoId,
|
|
100
|
+
files = message.files,
|
|
101
|
+
images = message.images,
|
|
102
|
+
msgId = message.msgId;
|
|
103
|
+
var formatConvoId = (0, _utils.parseId)(convoId);
|
|
89
104
|
|
|
90
|
-
if (
|
|
91
|
-
throw new Error('
|
|
105
|
+
if (formatConvoId === '') {
|
|
106
|
+
throw new Error('required_convoId');
|
|
92
107
|
}
|
|
93
108
|
|
|
94
|
-
return getConversation(context,
|
|
109
|
+
return (0, _conversations.getConversation)(context, formatConvoId).then(function (conversation) {
|
|
95
110
|
var conversationKey = conversation._key;
|
|
96
|
-
var now =
|
|
111
|
+
var now = Date.now();
|
|
97
112
|
var update = {
|
|
98
|
-
content: parseVarChar(message.content, 640),
|
|
113
|
+
content: (0, _utils.parseVarChar)(message.content, 640),
|
|
114
|
+
convoId: formatConvoId,
|
|
99
115
|
files: files || [],
|
|
100
|
-
|
|
116
|
+
images: images || [],
|
|
101
117
|
modified: now,
|
|
102
|
-
|
|
118
|
+
userId: sessionId
|
|
103
119
|
};
|
|
104
|
-
var
|
|
105
|
-
var updatedId =
|
|
120
|
+
var formatMsgId = (0, _utils.parseId)(msgId);
|
|
121
|
+
var updatedId = formatMsgId === '' ? (0, _utils.createHash)("message-".concat(sessionId)) : formatMsgId;
|
|
106
122
|
|
|
107
|
-
var insert = _objectSpread({},
|
|
123
|
+
var insert = _objectSpread({}, (0, _cloneDeep.default)(update), {
|
|
108
124
|
_key: updatedId,
|
|
109
125
|
added: now
|
|
110
126
|
});
|
|
111
127
|
|
|
112
|
-
var aqlQry = aql(_templateObject(), updatedId, conversationKey, insert, update);
|
|
113
|
-
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
128
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject(), updatedId, conversationKey, insert, update);
|
|
129
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
114
130
|
return cursor.next();
|
|
115
131
|
}).then(function () {
|
|
116
132
|
var updatedMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -145,19 +161,22 @@ export var updateMessage = function updateMessage(context, message) {
|
|
|
145
161
|
});
|
|
146
162
|
});
|
|
147
163
|
};
|
|
148
|
-
|
|
164
|
+
|
|
165
|
+
exports.updateMessage = updateMessage;
|
|
166
|
+
|
|
167
|
+
var saveMessage = function saveMessage(context, msgId, convoId) {
|
|
149
168
|
var database = context.database,
|
|
150
169
|
sessionId = context.userId;
|
|
151
|
-
var formatId = parseId(msgId);
|
|
152
|
-
return getConversation(context, convoId).then(function (conversation) {
|
|
170
|
+
var formatId = (0, _utils.parseId)(msgId);
|
|
171
|
+
return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
|
|
153
172
|
var conversationKey = conversation._key;
|
|
154
|
-
var aqlQry = aql(_templateObject2(), formatId, conversationKey, sessionId);
|
|
155
|
-
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
173
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject2(), formatId, conversationKey, sessionId);
|
|
174
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
156
175
|
return cursor.next();
|
|
157
176
|
}).then(function () {
|
|
158
177
|
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
159
178
|
|
|
160
|
-
if (!
|
|
179
|
+
if (!(0, _isEmpty.default)(message)) {// Broadcast to message box
|
|
161
180
|
// const msg: MessageType = Messages.getMessageObject(message);
|
|
162
181
|
// io.to(message.toId).emit('message_save', msg);
|
|
163
182
|
}
|
|
@@ -168,19 +187,22 @@ export var saveMessage = function saveMessage(context, msgId, convoId) {
|
|
|
168
187
|
});
|
|
169
188
|
});
|
|
170
189
|
};
|
|
171
|
-
|
|
190
|
+
|
|
191
|
+
exports.saveMessage = saveMessage;
|
|
192
|
+
|
|
193
|
+
var unsaveMessage = function unsaveMessage(context, msgId, convoId) {
|
|
172
194
|
var database = context.database,
|
|
173
195
|
sessionId = context.userId;
|
|
174
|
-
var formatId = parseId(msgId);
|
|
175
|
-
return getConversation(context, convoId).then(function (conversation) {
|
|
196
|
+
var formatId = (0, _utils.parseId)(msgId);
|
|
197
|
+
return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
|
|
176
198
|
var conversationKey = conversation._key;
|
|
177
|
-
var aqlQry = aql(_templateObject3(), formatId, conversationKey, sessionId);
|
|
178
|
-
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
199
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject3(), formatId, conversationKey, sessionId);
|
|
200
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
179
201
|
return cursor.next();
|
|
180
202
|
}).then(function () {
|
|
181
203
|
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
182
204
|
|
|
183
|
-
if (!
|
|
205
|
+
if (!(0, _isEmpty.default)(message)) {// Broadcast to message box
|
|
184
206
|
// const msg: MessageType = Messages.getMessageObject(message);
|
|
185
207
|
// io.to(message.id).emit('message_unsave', msg);
|
|
186
208
|
}
|
|
@@ -191,19 +213,22 @@ export var unsaveMessage = function unsaveMessage(context, msgId, convoId) {
|
|
|
191
213
|
});
|
|
192
214
|
});
|
|
193
215
|
};
|
|
194
|
-
|
|
216
|
+
|
|
217
|
+
exports.unsaveMessage = unsaveMessage;
|
|
218
|
+
|
|
219
|
+
var deleteMessage = function deleteMessage(context, msgId, convoId) {
|
|
195
220
|
var database = context.database,
|
|
196
221
|
sessionId = context.userId;
|
|
197
|
-
var formatId = parseId(msgId);
|
|
198
|
-
return getConversation(context, convoId).then(function (conversation) {
|
|
222
|
+
var formatId = (0, _utils.parseId)(msgId);
|
|
223
|
+
return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
|
|
199
224
|
var conversationKey = conversation._key;
|
|
200
|
-
var aqlQry = aql(_templateObject4(), formatId, conversationKey, sessionId);
|
|
201
|
-
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
225
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject4(), formatId, conversationKey, sessionId);
|
|
226
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
202
227
|
return cursor.next();
|
|
203
228
|
}).then(function () {
|
|
204
229
|
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
205
230
|
|
|
206
|
-
if (!
|
|
231
|
+
if (!(0, _isEmpty.default)(message)) {// Broadcast to message box
|
|
207
232
|
// const msg: MessageType = Messages.getMessageObject(message);
|
|
208
233
|
// io.to(message.toId).emit('message_delete', msg);
|
|
209
234
|
}
|
|
@@ -214,30 +239,36 @@ export var deleteMessage = function deleteMessage(context, msgId, convoId) {
|
|
|
214
239
|
});
|
|
215
240
|
});
|
|
216
241
|
};
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
242
|
+
|
|
243
|
+
exports.deleteMessage = deleteMessage;
|
|
244
|
+
|
|
245
|
+
var getMessage = function getMessage(data) {
|
|
246
|
+
var added = data.added,
|
|
247
|
+
content = data.content,
|
|
248
|
+
convoId = data.convoId,
|
|
249
|
+
files = data.files,
|
|
222
250
|
msgId = data._key,
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
251
|
+
read = data.read,
|
|
252
|
+
saved = data.saved,
|
|
253
|
+
userId = data.userId;
|
|
226
254
|
return {
|
|
227
|
-
added:
|
|
228
|
-
content:
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
read:
|
|
233
|
-
saved:
|
|
234
|
-
|
|
255
|
+
added: added,
|
|
256
|
+
content: content,
|
|
257
|
+
convoId: convoId,
|
|
258
|
+
files: files,
|
|
259
|
+
msgId: msgId,
|
|
260
|
+
read: read,
|
|
261
|
+
saved: saved,
|
|
262
|
+
userId: userId
|
|
235
263
|
};
|
|
236
264
|
};
|
|
237
|
-
|
|
265
|
+
|
|
266
|
+
exports.getMessage = getMessage;
|
|
267
|
+
|
|
268
|
+
var cleanMessages = function cleanMessages(database) {
|
|
238
269
|
// Remove all messages that are over 60 days and not saved
|
|
239
|
-
var aqlQry = aql(_templateObject5());
|
|
240
|
-
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
270
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject5());
|
|
271
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
241
272
|
return cursor.all();
|
|
242
273
|
}).then(function (list) {
|
|
243
274
|
return list.length;
|
|
@@ -245,4 +276,6 @@ export var cleanMessages = function cleanMessages(database) {
|
|
|
245
276
|
throw error;
|
|
246
277
|
});
|
|
247
278
|
};
|
|
248
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbImNyZWF0ZUhhc2giLCJwYXJzZUlkIiwicGFyc2VWYXJDaGFyIiwiYXFsIiwiY2xvbmVEZWVwIiwiaXNFbXB0eSIsImdldExpbWl0IiwidXNlRGIiLCJnZXRDb252ZXJzYXRpb24iLCJnZXRNZXNzYWdlTGlzdCIsImNvbnRleHQiLCJjb252b0lkIiwiZnJvbSIsInRvIiwiZGF0YWJhc2UiLCJmb3JtYXRDb252b0lkIiwidGhlbiIsImNvbnZlcnNhdGlvbiIsImNvbnZlcnNhdGlvbktleSIsIl9rZXkiLCJsaW1pdCIsImFxbFFyeSIsInF1ZXJ5IiwiY3Vyc29yIiwiYWxsIiwiY2F0Y2giLCJlcnJvciIsInVwZGF0ZU1lc3NhZ2UiLCJtZXNzYWdlIiwic2Vzc2lvbklkIiwidXNlcklkIiwiZmlsZXMiLCJtZXNzYWdlSWQiLCJpZCIsInRvSWQiLCJmb3JtYXRUb0lkIiwiRXJyb3IiLCJub3ciLCJEYXRlIiwiZ2V0VGltZSIsInVwZGF0ZSIsImNvbnRlbnQiLCJmcm9tSWQiLCJtb2RpZmllZCIsImZvcm1hdElkIiwidXBkYXRlZElkIiwiaW5zZXJ0IiwiYWRkZWQiLCJuZXh0IiwidXBkYXRlZE1lc3NhZ2UiLCJjb25zb2xlIiwibG9nIiwic2F2ZU1lc3NhZ2UiLCJtc2dJZCIsInVuc2F2ZU1lc3NhZ2UiLCJkZWxldGVNZXNzYWdlIiwiZ2V0TWVzc2FnZSIsImRhdGEiLCJtc2dBZGRlZCIsIm1zZ0NvbnRlbnQiLCJtc2dGaWxlcyIsIm1zZ0Zyb21JZCIsIm1zZ1JlYWQiLCJyZWFkIiwibXNnU2F2ZWQiLCJzYXZlZCIsIm1zZ1RvSWQiLCJjbGVhbk1lc3NhZ2VzIiwibGlzdCIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUlBLFNBQVFBLFVBQVIsRUFBb0JDLE9BQXBCLEVBQTZCQyxZQUE3QixRQUFnRCxjQUFoRDtBQUNBLFNBQVFDLEdBQVIsUUFBa0IsVUFBbEI7QUFHQSxPQUFPQyxTQUFQLE1BQXNCLGtCQUF0QjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsZ0JBQXBCO0FBTUEsU0FBUUMsUUFBUixFQUFrQkMsS0FBbEIsUUFBOEIsVUFBOUI7QUFDQSxTQUFRQyxlQUFSLFFBQThCLGlCQUE5QixDLENBRUE7O0FBRUEsT0FBTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQzVCQyxPQUQ0QixFQUU1QkMsT0FGNEIsRUFHNUJDLElBSDRCLEVBSTVCQyxFQUo0QixFQUtEO0FBQUEsTUFDcEJDLFFBRG9CLEdBQ1JKLE9BRFEsQ0FDcEJJLFFBRG9CO0FBRTNCLE1BQU1DLGFBQXFCLEdBQUdkLE9BQU8sQ0FBQ1UsT0FBRCxDQUFyQztBQUVBLFNBQU9ILGVBQWUsQ0FBQ0UsT0FBRCxFQUFVSyxhQUFWLENBQWYsQ0FDSkMsSUFESSxDQUNDLFVBQUNDLFlBQUQsRUFBb0M7QUFBQSxRQUMzQkMsZUFEMkIsR0FDUkQsWUFEUSxDQUNqQ0UsSUFEaUM7QUFFeEMsUUFBTUMsS0FBb0IsR0FBR2QsUUFBUSxDQUFDTSxJQUFELEVBQU9DLEVBQVAsQ0FBckM7QUFDQSxRQUFNUSxNQUFjLDJEQUNFSCxlQURGLDJCQUVkRSxLQUFLLENBQUNqQixHQUZRLGlEQUFwQjtBQU1BLFdBQU9JLEtBQUssQ0FBQ08sUUFBRCxDQUFMLENBQWdCUSxLQUFoQixDQUFzQkQsTUFBdEIsRUFDSkwsSUFESSxDQUNDLFVBQUNPLE1BQUQ7QUFBQSxhQUF5QkEsTUFBTSxDQUFDQyxHQUFQLEVBQXpCO0FBQUEsS0FERCxFQUVKQyxLQUZJLENBRUUsVUFBQ0MsS0FBRCxFQUFrQjtBQUN2QixZQUFNQSxLQUFOO0FBQ0QsS0FKSSxDQUFQO0FBS0QsR0FmSSxDQUFQO0FBZ0JELENBekJNO0FBMkJQLE9BQU8sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDakIsT0FBRCxFQUFzQmtCLE9BQXRCLEVBQXFFO0FBQUEsTUFDekZkLFFBRHlGLEdBQzFESixPQUQwRCxDQUN6RkksUUFEeUY7QUFBQSxNQUN2RWUsU0FEdUUsR0FDMURuQixPQUQwRCxDQUMvRW9CLE1BRCtFO0FBQUEsTUFFekZDLEtBRnlGLEdBRTNESCxPQUYyRCxDQUV6RkcsS0FGeUY7QUFBQSxNQUU5RUMsU0FGOEUsR0FFM0RKLE9BRjJELENBRWxGSyxFQUZrRjtBQUFBLE1BRW5FQyxJQUZtRSxHQUUzRE4sT0FGMkQsQ0FFbkVNLElBRm1FO0FBR2hHLE1BQU1DLFVBQWtCLEdBQUdsQyxPQUFPLENBQUNpQyxJQUFELENBQWxDOztBQUVBLE1BQUdDLFVBQVUsS0FBSyxFQUFsQixFQUFzQjtBQUNwQixVQUFNLElBQUlDLEtBQUosQ0FBVSxhQUFWLENBQU47QUFDRDs7QUFFRCxTQUFPNUIsZUFBZSxDQUFDRSxPQUFELEVBQVV5QixVQUFWLENBQWYsQ0FDSm5CLElBREksQ0FDQyxVQUFDQyxZQUFELEVBQW9DO0FBQUEsUUFDM0JDLGVBRDJCLEdBQ1JELFlBRFEsQ0FDakNFLElBRGlDO0FBRXhDLFFBQU1rQixHQUFXLEdBQUksSUFBSUMsSUFBSixFQUFELENBQWFDLE9BQWIsRUFBcEI7QUFDQSxRQUFNQyxNQUFtQixHQUFHO0FBQzFCQyxNQUFBQSxPQUFPLEVBQUV2QyxZQUFZLENBQUMwQixPQUFPLENBQUNhLE9BQVQsRUFBa0IsR0FBbEIsQ0FESztBQUUxQlYsTUFBQUEsS0FBSyxFQUFFQSxLQUFLLElBQUksRUFGVTtBQUcxQlcsTUFBQUEsTUFBTSxFQUFFYixTQUhrQjtBQUkxQmMsTUFBQUEsUUFBUSxFQUFFTixHQUpnQjtBQUsxQkgsTUFBQUEsSUFBSSxFQUFFQztBQUxvQixLQUE1QjtBQU9BLFFBQU1TLFFBQWdCLEdBQUczQyxPQUFPLENBQUMrQixTQUFELENBQWhDO0FBQ0EsUUFBTWEsU0FBaUIsR0FBR0QsUUFBUSxLQUFLLEVBQWIsR0FBa0I1QyxVQUFVLG1CQUFZNkIsU0FBWixFQUE1QixHQUF1RGUsUUFBakY7O0FBQ0EsUUFBTUUsTUFBbUIscUJBQ3BCMUMsU0FBUyxDQUFDb0MsTUFBRCxDQURXO0FBRXZCckIsTUFBQUEsSUFBSSxFQUFFMEIsU0FGaUI7QUFHdkJFLE1BQUFBLEtBQUssRUFBRVY7QUFIZ0IsTUFBekI7O0FBS0EsUUFBTWhCLE1BQWdCLEdBQUdsQixHQUFILG9CQUF1QjBDLFNBQXZCLEVBQXlDM0IsZUFBekMsRUFDVDRCLE1BRFMsRUFFVE4sTUFGUyxDQUF0QjtBQUtBLFdBQU9qQyxLQUFLLENBQUNPLFFBQUQsQ0FBTCxDQUFnQlEsS0FBaEIsQ0FBc0JELE1BQXRCLEVBQ0pMLElBREksQ0FDQyxVQUFDTyxNQUFEO0FBQUEsYUFBeUJBLE1BQU0sQ0FBQ3lCLElBQVAsRUFBekI7QUFBQSxLQURELEVBRUpoQyxJQUZJLENBRUMsWUFBc0M7QUFBQSxVQUFyQ2lDLGNBQXFDLHVFQUFQLEVBQU87QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUFDLE1BQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGdCQUFaLEVBQThCRixjQUE5QjtBQUNBLGFBQU9BLGNBQVA7QUFDRCxLQWhDSSxFQWlDSnhCLEtBakNJLENBaUNFLFVBQUNDLEtBQUQsRUFBa0I7QUFDdkIsWUFBTUEsS0FBTjtBQUNELEtBbkNJLENBQVA7QUFvQ0QsR0EzREksQ0FBUDtBQTRERCxDQXJFTTtBQXVFUCxPQUFPLElBQU0wQixXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFDMUMsT0FBRCxFQUFzQjJDLEtBQXRCLEVBQXFDMUMsT0FBckMsRUFBK0U7QUFBQSxNQUNqR0csUUFEaUcsR0FDbEVKLE9BRGtFLENBQ2pHSSxRQURpRztBQUFBLE1BQy9FZSxTQUQrRSxHQUNsRW5CLE9BRGtFLENBQ3ZGb0IsTUFEdUY7QUFFeEcsTUFBTWMsUUFBZ0IsR0FBRzNDLE9BQU8sQ0FBQ29ELEtBQUQsQ0FBaEM7QUFFQSxTQUFPN0MsZUFBZSxDQUFDRSxPQUFELEVBQVVDLE9BQVYsQ0FBZixDQUNKSyxJQURJLENBQ0MsVUFBQ0MsWUFBRCxFQUFvQztBQUFBLFFBQzNCQyxlQUQyQixHQUNSRCxZQURRLENBQ2pDRSxJQURpQztBQUV4QyxRQUFNRSxNQUFNLEdBQUdsQixHQUFILHFCQUNTeUMsUUFEVCxFQUNnQzFCLGVBRGhDLEVBRThCVyxTQUY5QixDQUFaO0FBS0EsV0FBT3RCLEtBQUssQ0FBQ08sUUFBRCxDQUFMLENBQWdCUSxLQUFoQixDQUFzQkQsTUFBdEIsRUFDSkwsSUFESSxDQUNDLFVBQUNPLE1BQUQ7QUFBQSxhQUF5QkEsTUFBTSxDQUFDeUIsSUFBUCxFQUF6QjtBQUFBLEtBREQsRUFFSmhDLElBRkksQ0FFQyxZQUErQjtBQUFBLFVBQTlCWSxPQUE4Qix1RUFBUCxFQUFPOztBQUNuQyxVQUFHLENBQUN2QixPQUFPLENBQUN1QixPQUFELENBQVgsRUFBc0IsQ0FDcEI7QUFDQTtBQUNBO0FBQ0Q7O0FBRUQsYUFBT0EsT0FBUDtBQUNELEtBVkksRUFXSkgsS0FYSSxDQVdFLFVBQUNDLEtBQUQsRUFBa0I7QUFDdkIsWUFBTUEsS0FBTjtBQUNELEtBYkksQ0FBUDtBQWNELEdBdEJJLENBQVA7QUF1QkQsQ0EzQk07QUE2QlAsT0FBTyxJQUFNNEIsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDNUMsT0FBRCxFQUFzQjJDLEtBQXRCLEVBQXFDMUMsT0FBckMsRUFBK0U7QUFBQSxNQUNuR0csUUFEbUcsR0FDcEVKLE9BRG9FLENBQ25HSSxRQURtRztBQUFBLE1BQ2pGZSxTQURpRixHQUNwRW5CLE9BRG9FLENBQ3pGb0IsTUFEeUY7QUFFMUcsTUFBTWMsUUFBZ0IsR0FBRzNDLE9BQU8sQ0FBQ29ELEtBQUQsQ0FBaEM7QUFFQSxTQUFPN0MsZUFBZSxDQUFDRSxPQUFELEVBQVVDLE9BQVYsQ0FBZixDQUNKSyxJQURJLENBQ0MsVUFBQ0MsWUFBRCxFQUFvQztBQUFBLFFBQzNCQyxlQUQyQixHQUNSRCxZQURRLENBQ2pDRSxJQURpQztBQUV4QyxRQUFNRSxNQUFnQixHQUFHbEIsR0FBSCxxQkFDQ3lDLFFBREQsRUFDd0IxQixlQUR4QixFQUU0QlcsU0FGNUIsQ0FBdEI7QUFLQSxXQUFPdEIsS0FBSyxDQUFDTyxRQUFELENBQUwsQ0FBZ0JRLEtBQWhCLENBQXNCRCxNQUF0QixFQUNKTCxJQURJLENBQ0MsVUFBQ08sTUFBRDtBQUFBLGFBQXlCQSxNQUFNLENBQUN5QixJQUFQLEVBQXpCO0FBQUEsS0FERCxFQUVKaEMsSUFGSSxDQUVDLFlBQStCO0FBQUEsVUFBOUJZLE9BQThCLHVFQUFQLEVBQU87O0FBQ25DLFVBQUcsQ0FBQ3ZCLE9BQU8sQ0FBQ3VCLE9BQUQsQ0FBWCxFQUFzQixDQUNwQjtBQUNBO0FBQ0E7QUFDRDs7QUFFRCxhQUFPQSxPQUFQO0FBQ0QsS0FWSSxFQVdKSCxLQVhJLENBV0UsVUFBQ0MsS0FBRCxFQUFrQjtBQUN2QixZQUFNQSxLQUFOO0FBQ0QsS0FiSSxDQUFQO0FBY0QsR0F0QkksQ0FBUDtBQXVCRCxDQTNCTTtBQTZCUCxPQUFPLElBQU02QixhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUM3QyxPQUFELEVBQXNCMkMsS0FBdEIsRUFBcUMxQyxPQUFyQyxFQUErRTtBQUFBLE1BQ25HRyxRQURtRyxHQUNwRUosT0FEb0UsQ0FDbkdJLFFBRG1HO0FBQUEsTUFDakZlLFNBRGlGLEdBQ3BFbkIsT0FEb0UsQ0FDekZvQixNQUR5RjtBQUUxRyxNQUFNYyxRQUFnQixHQUFHM0MsT0FBTyxDQUFDb0QsS0FBRCxDQUFoQztBQUVBLFNBQU83QyxlQUFlLENBQUNFLE9BQUQsRUFBVUMsT0FBVixDQUFmLENBQ0pLLElBREksQ0FDQyxVQUFDQyxZQUFELEVBQW9DO0FBQUEsUUFDM0JDLGVBRDJCLEdBQ1JELFlBRFEsQ0FDakNFLElBRGlDO0FBRXhDLFFBQU1FLE1BQU0sR0FBR2xCLEdBQUgscUJBQ1N5QyxRQURULEVBQ2dDMUIsZUFEaEMsRUFDZ0VXLFNBRGhFLENBQVo7QUFLQSxXQUFPdEIsS0FBSyxDQUFDTyxRQUFELENBQUwsQ0FBZ0JRLEtBQWhCLENBQXNCRCxNQUF0QixFQUNKTCxJQURJLENBQ0MsVUFBQ08sTUFBRDtBQUFBLGFBQXlCQSxNQUFNLENBQUN5QixJQUFQLEVBQXpCO0FBQUEsS0FERCxFQUVKaEMsSUFGSSxDQUVDLFlBQStCO0FBQUEsVUFBOUJZLE9BQThCLHVFQUFQLEVBQU87O0FBQ25DLFVBQUcsQ0FBQ3ZCLE9BQU8sQ0FBQ3VCLE9BQUQsQ0FBWCxFQUFzQixDQUNwQjtBQUNBO0FBQ0E7QUFDRDs7QUFFRCxhQUFPQSxPQUFQO0FBQ0QsS0FWSSxFQVdKSCxLQVhJLENBV0UsVUFBQ0MsS0FBRCxFQUFrQjtBQUN2QixZQUFNQSxLQUFOO0FBQ0QsS0FiSSxDQUFQO0FBY0QsR0F0QkksQ0FBUDtBQXVCRCxDQTNCTTtBQTZCUCxPQUFPLElBQU04QixVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDQyxJQUFELEVBQW9DO0FBQUEsTUFFbkRDLFFBRm1ELEdBVXhERCxJQVZ3RCxDQUUxRFYsS0FGMEQ7QUFBQSxNQUdqRFksVUFIaUQsR0FVeERGLElBVndELENBRzFEaEIsT0FIMEQ7QUFBQSxNQUluRG1CLFFBSm1ELEdBVXhESCxJQVZ3RCxDQUkxRDFCLEtBSjBEO0FBQUEsTUFLbEQ4QixTQUxrRCxHQVV4REosSUFWd0QsQ0FLMURmLE1BTDBEO0FBQUEsTUFNcERXLEtBTm9ELEdBVXhESSxJQVZ3RCxDQU0xRHRDLElBTjBEO0FBQUEsTUFPcEQyQyxPQVBvRCxHQVV4REwsSUFWd0QsQ0FPMURNLElBUDBEO0FBQUEsTUFRbkRDLFFBUm1ELEdBVXhEUCxJQVZ3RCxDQVExRFEsS0FSMEQ7QUFBQSxNQVNwREMsT0FUb0QsR0FVeERULElBVndELENBUzFEdkIsSUFUMEQ7QUFZNUQsU0FBTztBQUNMYSxJQUFBQSxLQUFLLEVBQUVXLFFBREY7QUFFTGpCLElBQUFBLE9BQU8sRUFBRWtCLFVBRko7QUFHTDVCLElBQUFBLEtBQUssRUFBRTZCLFFBSEY7QUFJTGxCLElBQUFBLE1BQU0sRUFBRW1CLFNBSkg7QUFLTDVCLElBQUFBLEVBQUUsRUFBRW9CLEtBTEM7QUFNTFUsSUFBQUEsSUFBSSxFQUFFRCxPQU5EO0FBT0xHLElBQUFBLEtBQUssRUFBRUQsUUFQRjtBQVFMOUIsSUFBQUEsSUFBSSxFQUFFZ0M7QUFSRCxHQUFQO0FBVUQsQ0F0Qk07QUF3QlAsT0FBTyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNyRCxRQUFELEVBQXVDO0FBQ2xFO0FBQ0EsTUFBTU8sTUFBTSxHQUFHbEIsR0FBSCxvQkFBWjtBQUtBLFNBQU9JLEtBQUssQ0FBQ08sUUFBRCxDQUFMLENBQWdCUSxLQUFoQixDQUFzQkQsTUFBdEIsRUFDSkwsSUFESSxDQUNDLFVBQUNPLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDQyxHQUFQLEVBQXpCO0FBQUEsR0FERCxFQUVKUixJQUZJLENBRUMsVUFBQ29ELElBQUQ7QUFBQSxXQUF5QkEsSUFBSSxDQUFDQyxNQUE5QjtBQUFBLEdBRkQsRUFHSjVDLEtBSEksQ0FHRSxVQUFDQyxLQUFELEVBQWtCO0FBQ3ZCLFVBQU1BLEtBQU47QUFDRCxHQUxJLENBQVA7QUFNRCxDQWJNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VJZCwgcGFyc2VWYXJDaGFyfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvYXFsLXF1ZXJ5JztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvY3Vyc29yJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGInO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucyc7XG5pbXBvcnQge01lc3NhZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9tZXNzYWdlcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtnZXRDb252ZXJzYXRpb259IGZyb20gJy4vY29udmVyc2F0aW9ucyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdtZXNzYWdlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRNZXNzYWdlTGlzdCA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udm9JZDogc3RyaW5nLFxuICBmcm9tOiBudW1iZXIsXG4gIHRvOiBudW1iZXJcbik6IFByb21pc2U8TWVzc2FnZVR5cGVbXT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0Q29udm9JZDogc3RyaW5nID0gcGFyc2VJZChjb252b0lkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGZvcm1hdENvbnZvSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgICAgIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgICAgRklMVEVSIG0udG8gPT0gXCIke2NvbnZlcnNhdGlvbktleX1cIlxuICAgICAgICAgICR7bGltaXQuYXFsfVxuICAgICAgICAgIFNPUlQgbS5hZGRlZFxuICAgICAgICAgIFJFVFVSTiBtYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZTogTWVzc2FnZVR5cGUpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3Qge2ZpbGVzLCBpZDogbWVzc2FnZUlkLCB0b0lkfSA9IG1lc3NhZ2U7XG4gIGNvbnN0IGZvcm1hdFRvSWQ6IHN0cmluZyA9IHBhcnNlSWQodG9JZCk7XG5cbiAgaWYoZm9ybWF0VG9JZCA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlcXVpcmVkX3RvJyk7XG4gIH1cblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGZvcm1hdFRvSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBub3c6IG51bWJlciA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgICBjb25zdCB1cGRhdGU6IE1lc3NhZ2VUeXBlID0ge1xuICAgICAgICBjb250ZW50OiBwYXJzZVZhckNoYXIobWVzc2FnZS5jb250ZW50LCA2NDApLFxuICAgICAgICBmaWxlczogZmlsZXMgfHwgW10sXG4gICAgICAgIGZyb21JZDogc2Vzc2lvbklkLFxuICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICB0b0lkOiBmb3JtYXRUb0lkXG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRJZDogc3RyaW5nID0gZm9ybWF0SWQgPT09ICcnID8gY3JlYXRlSGFzaChgbWVzc2FnZS0ke3Nlc3Npb25JZH1gKSA6IGZvcm1hdElkO1xuICAgICAgY29uc3QgaW5zZXJ0OiBNZXNzYWdlVHlwZSA9IHtcbiAgICAgICAgLi4uY2xvbmVEZWVwKHVwZGF0ZSksXG4gICAgICAgIF9rZXk6IHVwZGF0ZWRJZCxcbiAgICAgICAgYWRkZWQ6IG5vd1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtfa2V5OiAke3VwZGF0ZWRJZH0sIHRvOiAke2NvbnZlcnNhdGlvbktleX19XG4gICAgICAgICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgICAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgICAgICBJTiBtZXNzYWdlcyBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigodXBkYXRlZE1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICAvLyBjb25zdCB7XG4gICAgICAgICAgLy8gICBfa2V5OiBtc2dJZCxcbiAgICAgICAgICAvLyAgIGFkZGVkOiBtc2dBZGRlZCxcbiAgICAgICAgICAvLyAgIGNvbnRlbnQ6IG1zZ0NvbnRlbnQsXG4gICAgICAgICAgLy8gICBmaWxlczogbXNnRmlsZXMsXG4gICAgICAgICAgLy8gICBmcm9tSWQ6IG1zZ0Zyb21JZCxcbiAgICAgICAgICAvLyAgIHJlYWQ6IG1zZ1JlYWQsXG4gICAgICAgICAgLy8gICBzYXZlZDogbXNnU2F2ZWQsXG4gICAgICAgICAgLy8gICB0b0lkOiBtc2dUb0lkXG4gICAgICAgICAgLy8gfSA9IHVwZGF0ZWRNZXNzYWdlO1xuXG4gICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgLy8gaWYoaW8pIHtcbiAgICAgICAgICAvLyAgIGNvbnN0IG1zZzogTWVzc2FnZVR5cGUgPSB7XG4gICAgICAgICAgLy8gICAgIGFkZGVkOiBtc2dBZGRlZCxcbiAgICAgICAgICAvLyAgICAgY29udGVudDogbXNnQ29udGVudCxcbiAgICAgICAgICAvLyAgICAgZmlsZXM6IG1zZ0ZpbGVzLFxuICAgICAgICAgIC8vICAgICBmcm9tSWQ6IG1zZ0Zyb21JZCxcbiAgICAgICAgICAvLyAgICAgaWQ6IG1zZ0lkLFxuICAgICAgICAgIC8vICAgICByZWFkOiBtc2dSZWFkLFxuICAgICAgICAgIC8vICAgICBzYXZlZDogbXNnU2F2ZWQsXG4gICAgICAgICAgLy8gICAgIHRvSWQ6IG1zZ1RvSWRcbiAgICAgICAgICAvLyAgIH07XG5cbiAgICAgICAgICAvLyAgIGlvLnRvKG1zZ1RvSWQpLmVtaXQoJ21lc3NhZ2VfdXBkYXRlJywgbXNnKTtcbiAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICBjb25zb2xlLmxvZygndXBkYXRlZE1lc3NhZ2UnLCB1cGRhdGVkTWVzc2FnZSk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNZXNzYWdlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBBUFBFTkQobS5zYXZlZCwgJHtzZXNzaW9uSWR9LCB0cnVlKX0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICBpZighaXNFbXB0eShtZXNzYWdlKSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtc2c6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9zYXZlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdW5zYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgICAgVVBEQVRFIG0gV0lUSCB7c2F2ZWQ6IFJFTU9WRV9WQUxVRShtLnNhdmVkLCAke3Nlc3Npb25JZH0pfSBJTiBtZXNzYWdlc1xuICAgICAgICAgIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgaWYoIWlzRW1wdHkobWVzc2FnZSkpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbXNnOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLmlkKS5lbWl0KCdtZXNzYWdlX3Vuc2F2ZScsIG1zZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbXNnSWQ6IHN0cmluZywgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1zZ0lkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGNvbnZvSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgRklMVEVSIG0uX2tleSA9PSAke2Zvcm1hdElkfSAmJiBtLnRvID09ICR7Y29udmVyc2F0aW9uS2V5fSAmJiBtLmZyb20gPT0gJHtzZXNzaW9uSWR9XG4gICAgICAgIFJFTU9WRSBtIElOIG1lc3NhZ2VzXG4gICAgICAgIFJFVFVSTiBPTERgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgaWYoIWlzRW1wdHkobWVzc2FnZSkpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbXNnOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLnRvSWQpLmVtaXQoJ21lc3NhZ2VfZGVsZXRlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVzc2FnZSA9IChkYXRhOiBNZXNzYWdlVHlwZSk6IE1lc3NhZ2VUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIGFkZGVkOiBtc2dBZGRlZCxcbiAgICBjb250ZW50OiBtc2dDb250ZW50LFxuICAgIGZpbGVzOiBtc2dGaWxlcyxcbiAgICBmcm9tSWQ6IG1zZ0Zyb21JZCxcbiAgICBfa2V5OiBtc2dJZCxcbiAgICByZWFkOiBtc2dSZWFkLFxuICAgIHNhdmVkOiBtc2dTYXZlZCxcbiAgICB0b0lkOiBtc2dUb0lkXG4gIH0gPSBkYXRhO1xuXG4gIHJldHVybiB7XG4gICAgYWRkZWQ6IG1zZ0FkZGVkLFxuICAgIGNvbnRlbnQ6IG1zZ0NvbnRlbnQsXG4gICAgZmlsZXM6IG1zZ0ZpbGVzLFxuICAgIGZyb21JZDogbXNnRnJvbUlkLFxuICAgIGlkOiBtc2dJZCxcbiAgICByZWFkOiBtc2dSZWFkLFxuICAgIHNhdmVkOiBtc2dTYXZlZCxcbiAgICB0b0lkOiBtc2dUb0lkXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYW5NZXNzYWdlcyA9IChkYXRhYmFzZTogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgLy8gUmVtb3ZlIGFsbCBtZXNzYWdlcyB0aGF0IGFyZSBvdmVyIDYwIGRheXMgYW5kIG5vdCBzYXZlZFxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgIEZJTFRFUiBtLmFkZGVkIDwgREFURV9USU1FU1RBTVAoREFURV9TVUJUUkFDVChEQVRFX05PVygpLCA2MCwgJ2RheScpKSAmJiBMRU5HVEgobS5zYXZlZCkgPiAwXG4gICAgICBSRU1PVkUgbSBJTiBtZXNzYWdlc1xuICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigobGlzdDogTWVzc2FnZVR5cGVbXSkgPT4gbGlzdC5sZW5ndGgpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcbiJdfQ==
|
|
279
|
+
|
|
280
|
+
exports.cleanMessages = cleanMessages;
|
|
281
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbImdldE1lc3NhZ2VMaXN0IiwiY29udGV4dCIsImNvbnZvSWQiLCJmcm9tIiwidG8iLCJkYXRhYmFzZSIsImZvcm1hdENvbnZvSWQiLCJ0aGVuIiwiY29udmVyc2F0aW9uIiwiY29udmVyc2F0aW9uS2V5IiwiX2tleSIsImxpbWl0IiwiYXFsUXJ5IiwiYXFsIiwicXVlcnkiLCJjdXJzb3IiLCJhbGwiLCJjYXRjaCIsImVycm9yIiwidXBkYXRlTWVzc2FnZSIsIm1lc3NhZ2UiLCJzZXNzaW9uSWQiLCJ1c2VySWQiLCJmaWxlcyIsImltYWdlcyIsIm1zZ0lkIiwiRXJyb3IiLCJub3ciLCJEYXRlIiwidXBkYXRlIiwiY29udGVudCIsIm1vZGlmaWVkIiwiZm9ybWF0TXNnSWQiLCJ1cGRhdGVkSWQiLCJpbnNlcnQiLCJhZGRlZCIsIm5leHQiLCJ1cGRhdGVkTWVzc2FnZSIsImNvbnNvbGUiLCJsb2ciLCJzYXZlTWVzc2FnZSIsImZvcm1hdElkIiwidW5zYXZlTWVzc2FnZSIsImRlbGV0ZU1lc3NhZ2UiLCJnZXRNZXNzYWdlIiwiZGF0YSIsInJlYWQiLCJzYXZlZCIsImNsZWFuTWVzc2FnZXMiLCJsaXN0IiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBTUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBO0FBRU8sSUFBTUEsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUM1QkMsT0FENEIsRUFFNUJDLE9BRjRCLEVBRzVCQyxJQUg0QixFQUk1QkMsRUFKNEIsRUFLRDtBQUFBLE1BQ3BCQyxRQURvQixHQUNSSixPQURRLENBQ3BCSSxRQURvQjtBQUUzQixNQUFNQyxhQUFxQixHQUFHLG9CQUFRSixPQUFSLENBQTlCO0FBRUEsU0FBTyxvQ0FBZ0JELE9BQWhCLEVBQXlC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dCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUlkLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9hcWwtcXVlcnknO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcblxuaW1wb3J0IHtBcmFuZ29EQkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYic7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHtDb252ZXJzYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9jb252ZXJzYXRpb25zJztcbmltcG9ydCB7TWVzc2FnZUlucHV0VHlwZSwgTWVzc2FnZVR5cGV9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2VzJztcbmltcG9ydCB7Z2V0TGltaXQsIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2dldENvbnZlcnNhdGlvbn0gZnJvbSAnLi9jb252ZXJzYXRpb25zJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGNvbnN0IGdldE1lc3NhZ2VMaXN0ID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb252b0lkOiBzdHJpbmcsXG4gIGZyb206IG51bWJlcixcbiAgdG86IG51bWJlclxuKTogUHJvbWlzZTxNZXNzYWdlVHlwZVtdPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252b0lkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZvSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgZm9ybWF0Q29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGxpbWl0OiBBcmFuZ29EQkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICAgICAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBGSUxURVIgbS50byA9PSBcIiR7Y29udmVyc2F0aW9uS2V5fVwiXG4gICAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgICAgU09SVCBtLmFkZGVkXG4gICAgICAgICAgUkVUVVJOIG1gO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlOiBNZXNzYWdlSW5wdXRUeXBlKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtjb252b0lkLCBmaWxlcywgaW1hZ2VzLCBtc2dJZH0gPSBtZXNzYWdlO1xuICBjb25zdCBmb3JtYXRDb252b0lkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZvSWQpO1xuXG4gIGlmKGZvcm1hdENvbnZvSWQgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdyZXF1aXJlZF9jb252b0lkJyk7XG4gIH1cblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGZvcm1hdENvbnZvSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gICAgICBjb25zdCB1cGRhdGU6IE1lc3NhZ2VUeXBlID0ge1xuICAgICAgICBjb250ZW50OiBwYXJzZVZhckNoYXIobWVzc2FnZS5jb250ZW50LCA2NDApLFxuICAgICAgICBjb252b0lkOiBmb3JtYXRDb252b0lkLFxuICAgICAgICBmaWxlczogZmlsZXMgfHwgW10sXG4gICAgICAgIGltYWdlczogaW1hZ2VzIHx8IFtdLFxuICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdE1zZ0lkOiBzdHJpbmcgPSBwYXJzZUlkKG1zZ0lkKTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRJZDogc3RyaW5nID0gZm9ybWF0TXNnSWQgPT09ICcnID8gY3JlYXRlSGFzaChgbWVzc2FnZS0ke3Nlc3Npb25JZH1gKSA6IGZvcm1hdE1zZ0lkO1xuICAgICAgY29uc3QgaW5zZXJ0OiBNZXNzYWdlVHlwZSA9IHtcbiAgICAgICAgLi4uY2xvbmVEZWVwKHVwZGF0ZSksXG4gICAgICAgIF9rZXk6IHVwZGF0ZWRJZCxcbiAgICAgICAgYWRkZWQ6IG5vd1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtfa2V5OiAke3VwZGF0ZWRJZH0sIGNvbnZvSWQ6ICR7Y29udmVyc2F0aW9uS2V5fX1cbiAgICAgICAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgICAgICAgVVBEQVRFICR7dXBkYXRlfVxuICAgICAgICAgIElOIG1lc3NhZ2VzIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKCh1cGRhdGVkTWVzc2FnZTogTWVzc2FnZVR5cGUgPSB7fSkgPT4ge1xuICAgICAgICAgIC8vIGNvbnN0IHtcbiAgICAgICAgICAvLyAgIF9rZXk6IG1zZ0lkLFxuICAgICAgICAgIC8vICAgYWRkZWQ6IG1zZ0FkZGVkLFxuICAgICAgICAgIC8vICAgY29udGVudDogbXNnQ29udGVudCxcbiAgICAgICAgICAvLyAgIGZpbGVzOiBtc2dGaWxlcyxcbiAgICAgICAgICAvLyAgIGZyb21JZDogbXNnRnJvbUlkLFxuICAgICAgICAgIC8vICAgcmVhZDogbXNnUmVhZCxcbiAgICAgICAgICAvLyAgIHNhdmVkOiBtc2dTYXZlZCxcbiAgICAgICAgICAvLyAgIHRvSWQ6IG1zZ1RvSWRcbiAgICAgICAgICAvLyB9ID0gdXBkYXRlZE1lc3NhZ2U7XG5cbiAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAvLyBpZihpbykge1xuICAgICAgICAgIC8vICAgY29uc3QgbXNnOiBNZXNzYWdlVHlwZSA9IHtcbiAgICAgICAgICAvLyAgICAgYWRkZWQ6IG1zZ0FkZGVkLFxuICAgICAgICAgIC8vICAgICBjb250ZW50OiBtc2dDb250ZW50LFxuICAgICAgICAgIC8vICAgICBmaWxlczogbXNnRmlsZXMsXG4gICAgICAgICAgLy8gICAgIGZyb21JZDogbXNnRnJvbUlkLFxuICAgICAgICAgIC8vICAgICBpZDogbXNnSWQsXG4gICAgICAgICAgLy8gICAgIHJlYWQ6IG1zZ1JlYWQsXG4gICAgICAgICAgLy8gICAgIHNhdmVkOiBtc2dTYXZlZCxcbiAgICAgICAgICAvLyAgICAgdG9JZDogbXNnVG9JZFxuICAgICAgICAgIC8vICAgfTtcblxuICAgICAgICAgIC8vICAgaW8udG8obXNnVG9JZCkuZW1pdCgnbWVzc2FnZV91cGRhdGUnLCBtc2cpO1xuICAgICAgICAgIC8vIH1cblxuICAgICAgICAgIGNvbnNvbGUubG9nKCd1cGRhdGVkTWVzc2FnZScsIHVwZGF0ZWRNZXNzYWdlKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZE1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHNhdmVNZXNzYWdlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG1zZ0lkOiBzdHJpbmcsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChtc2dJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252b0lkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH0gJiYgbS50byA9PSAke2NvbnZlcnNhdGlvbktleX1cbiAgICAgICAgVVBEQVRFIG0gV0lUSCB7c2F2ZWQ6IEFQUEVORChtLnNhdmVkLCAke3Nlc3Npb25JZH0sIHRydWUpfSBJTiBtZXNzYWdlc1xuICAgICAgICBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUgPSB7fSkgPT4ge1xuICAgICAgICAgIGlmKCFpc0VtcHR5KG1lc3NhZ2UpKSB7XG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAgIC8vIGNvbnN0IG1zZzogTWVzc2FnZVR5cGUgPSBNZXNzYWdlcy5nZXRNZXNzYWdlT2JqZWN0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgLy8gaW8udG8obWVzc2FnZS50b0lkKS5lbWl0KCdtZXNzYWdlX3NhdmUnLCBtc2cpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCB1bnNhdmVNZXNzYWdlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG1zZ0lkOiBzdHJpbmcsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChtc2dJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252b0lkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH0gJiYgbS50byA9PSAke2NvbnZlcnNhdGlvbktleX1cbiAgICAgICAgICBVUERBVEUgbSBXSVRIIHtzYXZlZDogUkVNT1ZFX1ZBTFVFKG0uc2F2ZWQsICR7c2Vzc2lvbklkfSl9IElOIG1lc3NhZ2VzXG4gICAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICBpZighaXNFbXB0eShtZXNzYWdlKSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtc2c6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UuaWQpLmVtaXQoJ21lc3NhZ2VfdW5zYXZlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9ICYmIG0uZnJvbSA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICBpZighaXNFbXB0eShtZXNzYWdlKSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtc2c6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9kZWxldGUnLCBtc2cpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNZXNzYWdlID0gKGRhdGE6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgYWRkZWQsXG4gICAgY29udGVudCxcbiAgICBjb252b0lkLFxuICAgIGZpbGVzLFxuICAgIF9rZXk6IG1zZ0lkLFxuICAgIHJlYWQsXG4gICAgc2F2ZWQsXG4gICAgdXNlcklkXG4gIH0gPSBkYXRhO1xuXG4gIHJldHVybiB7XG4gICAgYWRkZWQsXG4gICAgY29udGVudCxcbiAgICBjb252b0lkLFxuICAgIGZpbGVzLFxuICAgIG1zZ0lkLFxuICAgIHJlYWQsXG4gICAgc2F2ZWQsXG4gICAgdXNlcklkXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYW5NZXNzYWdlcyA9IChkYXRhYmFzZTogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgLy8gUmVtb3ZlIGFsbCBtZXNzYWdlcyB0aGF0IGFyZSBvdmVyIDYwIGRheXMgYW5kIG5vdCBzYXZlZFxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgIEZJTFRFUiBtLmFkZGVkIDwgREFURV9USU1FU1RBTVAoREFURV9TVUJUUkFDVChEQVRFX05PVygpLCA2MCwgJ2RheScpKSAmJiBMRU5HVEgobS5zYXZlZCkgPiAwXG4gICAgICBSRU1PVkUgbSBJTiBtZXNzYWdlc1xuICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigobGlzdDogTWVzc2FnZVR5cGVbXSkgPT4gbGlzdC5sZW5ndGgpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcbiJdfQ==
|