@nlabs/reaktor 0.2.3 → 0.4.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/lib/config.js +12 -4
- package/lib/data/conversations.d.ts +3 -1
- package/lib/data/conversations.js +150 -65
- package/lib/data/dynamodb.d.ts +8 -8
- package/lib/data/dynamodb.js +65 -33
- package/lib/data/email.d.ts +2 -2
- package/lib/data/email.js +52 -24
- package/lib/data/files.js +71 -11
- package/lib/data/groups.js +37 -3
- package/lib/data/images.d.ts +3 -2
- package/lib/data/images.js +425 -273
- package/lib/data/index.d.ts +1 -0
- package/lib/data/index.js +33 -1
- package/lib/data/ios.d.ts +5 -5
- package/lib/data/ios.js +47 -21
- package/lib/data/locations.js +28 -4
- package/lib/data/messages.js +89 -73
- package/lib/data/notifications.d.ts +2 -2
- package/lib/data/notifications.js +6 -6
- package/lib/data/payments.d.ts +3 -4
- package/lib/data/payments.js +228 -257
- package/lib/data/posts.d.ts +1 -1
- package/lib/data/posts.js +88 -12
- package/lib/data/reactions.d.ts +1 -1
- package/lib/data/reactions.js +56 -14
- package/lib/data/s3.d.ts +6 -6
- package/lib/data/s3.js +10 -2
- package/lib/data/search.js +46 -4
- package/lib/data/sms.js +5 -1
- package/lib/data/subscription.d.ts +1 -1
- package/lib/data/subscription.js +46 -20
- package/lib/data/tags.js +60 -8
- package/lib/data/users.d.ts +7 -4
- package/lib/data/users.js +83 -32
- package/lib/data/websockets.d.ts +6 -0
- package/lib/data/websockets.js +250 -0
- package/lib/index.js +4 -1
- package/lib/types/conversations.d.ts +2 -0
- package/lib/types/index.js +18 -1
- package/lib/types/payments.d.ts +1 -0
- package/lib/types/posts.d.ts +2 -0
- package/lib/types/reactions.d.ts +2 -0
- package/lib/types/users.d.ts +1 -0
- package/lib/utils/analytics.js +28 -6
- package/lib/utils/arangodb.d.ts +2 -1
- package/lib/utils/arangodb.js +31 -10
- package/lib/utils/auth.js +21 -3
- package/lib/utils/graphql.js +3 -1
- package/lib/utils/index.js +7 -1
- package/lib/utils/objects.js +9 -1
- package/lib/utils/redis.js +6 -2
- package/package.json +33 -31
package/lib/data/reactions.js
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.symbol");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.array.concat");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.array.filter");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.array.for-each");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.array.join");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.array.map");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.array.slice");
|
|
16
|
+
|
|
17
|
+
require("core-js/modules/es.date.now");
|
|
18
|
+
|
|
19
|
+
require("core-js/modules/es.date.to-string");
|
|
20
|
+
|
|
21
|
+
require("core-js/modules/es.function.name");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/es.object.define-properties");
|
|
24
|
+
|
|
25
|
+
require("core-js/modules/es.object.define-property");
|
|
26
|
+
|
|
27
|
+
require("core-js/modules/es.object.freeze");
|
|
28
|
+
|
|
29
|
+
require("core-js/modules/es.object.get-own-property-descriptor");
|
|
30
|
+
|
|
31
|
+
require("core-js/modules/es.object.get-own-property-descriptors");
|
|
32
|
+
|
|
33
|
+
require("core-js/modules/es.object.keys");
|
|
34
|
+
|
|
35
|
+
require("core-js/modules/web.dom-collections.for-each");
|
|
36
|
+
|
|
3
37
|
Object.defineProperty(exports, "__esModule", {
|
|
4
38
|
value: true
|
|
5
39
|
});
|
|
@@ -43,7 +77,7 @@ function _templateObject4() {
|
|
|
43
77
|
|
|
44
78
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
45
79
|
|
|
46
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
80
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
47
81
|
|
|
48
82
|
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; }
|
|
49
83
|
|
|
@@ -120,12 +154,14 @@ var addReaction = function addReaction(context, itemId) {
|
|
|
120
154
|
var formatItemType = (0, _utils.parseChar)(itemType, 32);
|
|
121
155
|
var formatReactionName = (0, _utils.parseChar)(itemName, 32);
|
|
122
156
|
var formatValue = (0, _utils.parseString)(itemValue, 32);
|
|
123
|
-
var edgeCollection = (0, _utils2.useDb)(database).
|
|
157
|
+
var edgeCollection = (0, _utils2.useDb)(database).collection('hasReactions');
|
|
124
158
|
var typeDocId = "".concat(formatItemType, "/").concat(formatItemId);
|
|
125
159
|
var sessionDocId = "users/".concat(sessionId);
|
|
126
160
|
var edgeId = (0, _utils.createHash)("reaction-".concat(formatItemId, "-").concat(sessionId));
|
|
127
161
|
var edge = {
|
|
162
|
+
_from: sessionDocId,
|
|
128
163
|
_key: edgeId,
|
|
164
|
+
_to: typeDocId,
|
|
129
165
|
added: Date.now(),
|
|
130
166
|
name: formatReactionName,
|
|
131
167
|
type: formatItemType,
|
|
@@ -142,10 +178,14 @@ var addReaction = function addReaction(context, itemId) {
|
|
|
142
178
|
return reaction;
|
|
143
179
|
}
|
|
144
180
|
|
|
145
|
-
return edgeCollection.save(edge,
|
|
181
|
+
return edgeCollection.save(edge, {
|
|
182
|
+
returnNew: true
|
|
183
|
+
}).then(function () {
|
|
184
|
+
console.log('addReaction::edge', edge);
|
|
146
185
|
return edge;
|
|
147
186
|
});
|
|
148
187
|
})["catch"](function (error) {
|
|
188
|
+
console.log('addReaction::error', error);
|
|
149
189
|
return (0, _utils2.logError)({
|
|
150
190
|
action: action,
|
|
151
191
|
category: eventCategory,
|
|
@@ -156,7 +196,9 @@ var addReaction = function addReaction(context, itemId) {
|
|
|
156
196
|
});
|
|
157
197
|
}
|
|
158
198
|
|
|
159
|
-
return edgeCollection.save(edge,
|
|
199
|
+
return edgeCollection.save(edge, {
|
|
200
|
+
returnNew: true
|
|
201
|
+
}).then(function () {
|
|
160
202
|
return edge;
|
|
161
203
|
});
|
|
162
204
|
};
|
|
@@ -179,10 +221,10 @@ var removeReaction = function removeReaction(context, reactionId) {
|
|
|
179
221
|
});
|
|
180
222
|
}
|
|
181
223
|
|
|
182
|
-
var
|
|
224
|
+
var formatSessionId = "users/".concat((0, _utils.parseId)(sessionId));
|
|
183
225
|
var formatReactionId = "hasReactions/".concat((0, _utils.parseId)(reactionId)); // Query
|
|
184
226
|
|
|
185
|
-
var aqlQry = (0, _arangojs.aql)(_templateObject2(), formatReactionId,
|
|
227
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject2(), formatReactionId, formatSessionId);
|
|
186
228
|
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
187
229
|
return cursor.next();
|
|
188
230
|
})["catch"](function (error) {
|
|
@@ -267,7 +309,7 @@ var updateReaction = function updateReaction(context) {
|
|
|
267
309
|
value: formatValue
|
|
268
310
|
};
|
|
269
311
|
|
|
270
|
-
var insert = _objectSpread({}, update, {
|
|
312
|
+
var insert = _objectSpread(_objectSpread({}, update), {}, {
|
|
271
313
|
_key: edgeId,
|
|
272
314
|
added: Date.now()
|
|
273
315
|
}); // Query
|
|
@@ -308,7 +350,7 @@ var getReactionCount = function getReactionCount(context, itemId, itemType, reac
|
|
|
308
350
|
category: eventCategory,
|
|
309
351
|
label: 'db_error'
|
|
310
352
|
}, error, context).then(function () {
|
|
311
|
-
return
|
|
353
|
+
return undefined;
|
|
312
354
|
});
|
|
313
355
|
});
|
|
314
356
|
};
|
|
@@ -334,7 +376,7 @@ var getReactionCountByUser = function getReactionCountByUser(context, itemId, it
|
|
|
334
376
|
category: eventCategory,
|
|
335
377
|
label: 'db_error'
|
|
336
378
|
}, error, context).then(function () {
|
|
337
|
-
return
|
|
379
|
+
return [];
|
|
338
380
|
});
|
|
339
381
|
});
|
|
340
382
|
};
|
|
@@ -392,7 +434,7 @@ var getGroupUsersByReaction = function getGroupUsersByReaction(context) {
|
|
|
392
434
|
category: eventCategory,
|
|
393
435
|
label: 'db_error'
|
|
394
436
|
}, error, context).then(function () {
|
|
395
|
-
return
|
|
437
|
+
return [];
|
|
396
438
|
});
|
|
397
439
|
});
|
|
398
440
|
};
|
|
@@ -419,7 +461,7 @@ var getReactionsByItem = function getReactionsByItem(context, itemId, itemType,
|
|
|
419
461
|
category: eventCategory,
|
|
420
462
|
label: 'db_error'
|
|
421
463
|
}, error, context).then(function () {
|
|
422
|
-
return
|
|
464
|
+
return [];
|
|
423
465
|
});
|
|
424
466
|
});
|
|
425
467
|
};
|
|
@@ -447,7 +489,7 @@ var getItemsByReaction = function getItemsByReaction(context, itemId, itemType,
|
|
|
447
489
|
category: eventCategory,
|
|
448
490
|
label: 'db_error'
|
|
449
491
|
}, error, context).then(function () {
|
|
450
|
-
return
|
|
492
|
+
return [];
|
|
451
493
|
});
|
|
452
494
|
});
|
|
453
495
|
};
|
|
@@ -478,10 +520,10 @@ var hasReaction = function hasReaction(context, itemId, itemType, reactionName)
|
|
|
478
520
|
category: eventCategory,
|
|
479
521
|
label: 'db_error'
|
|
480
522
|
}, error, context).then(function () {
|
|
481
|
-
return
|
|
523
|
+
return false;
|
|
482
524
|
});
|
|
483
525
|
});
|
|
484
526
|
};
|
|
485
527
|
|
|
486
528
|
exports.hasReaction = hasReaction;
|
|
487
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3JlYWN0aW9ucy50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwicGFyc2VSZWFjdGlvbk9wdGlvbnMiLCJvcHRpb25zIiwiZnJvbSIsInRvIiwibGltaXQiLCJhZGRSZWFjdGlvbiIsImNvbnRleHQiLCJpdGVtSWQiLCJpdGVtVHlwZSIsInJlYWN0aW9uIiwiYWxsb3dEdXBsaWNhdGUiLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImNhdGVnb3J5IiwibGFiZWwiLCJ2YWx1ZSIsInRoZW4iLCJuYW1lIiwiaXRlbU5hbWUiLCJpdGVtVmFsdWUiLCJmb3JtYXRJdGVtSWQiLCJmb3JtYXRJdGVtVHlwZSIsImZvcm1hdFJlYWN0aW9uTmFtZSIsImZvcm1hdFZhbHVlIiwiZWRnZUNvbGxlY3Rpb24iLCJ0eXBlRG9jSWQiLCJzZXNzaW9uRG9jSWQiLCJlZGdlSWQiLCJlZGdlIiwiX2tleSIsImFkZGVkIiwiRGF0ZSIsIm5vdyIsInR5cGUiLCJ1bmRlZmluZWQiLCJhcWxRcnkiLCJhcWwiLCJxdWVyeSIsImN1cnNvciIsIm5leHQiLCJzYXZlIiwiZXJyb3IiLCJyZW1vdmVSZWFjdGlvbiIsInJlYWN0aW9uSWQiLCJmb3JtYXRTZXNzaW9ubklkIiwiZm9ybWF0UmVhY3Rpb25JZCIsInJlbW92ZVJlYWN0aW9uQnlJdGVtIiwicmVhY3Rpb25OYW1lIiwiZm9ybWF0U2Vzc2lvbklkIiwiZm9ybWF0SXRlbURvY0lkIiwidXBkYXRlUmVhY3Rpb24iLCJpZCIsImZvcm1hdElkIiwiZm9ybWF0TmFtZSIsImZvcm1hdFR5cGUiLCJ1cGRhdGUiLCJpbnNlcnQiLCJnZXRSZWFjdGlvbkNvdW50IiwiaXRlbURvY0lkIiwiZ2V0UmVhY3Rpb25Db3VudEJ5VXNlciIsImFsbCIsImdldEdyb3VwVXNlcnNCeVJlYWN0aW9uIiwicGFyYW1zIiwiZmlsdGVycyIsImdyb3VwSWQiLCJncm91cERvY0lkIiwiZmlsdGVyU3RyIiwibWFwIiwiZmlsdGVyIiwiY29uZGl0aW9uYWwiLCJxdWVyeVZhbHVlIiwiZmlsdGVyQ29uZCIsImNvbmNhdCIsImpvaW4iLCJnZXRSZWFjdGlvbnNCeUl0ZW0iLCJnZXRJdGVtc0J5UmVhY3Rpb24iLCJoYXNSZWFjdGlvbiIsImRpcmVjdGlvbiIsImZvcm1hdERpcmVjdGlvbiIsIml0ZW1EaXJlY3Rpb24iLCJyZWFjdGlvbnMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFhQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGFBQXFCLEdBQUcsV0FBOUI7O0FBRU8sSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixHQUFtQztBQUFBLE1BQWxDQyxPQUFrQyx1RUFBUCxFQUFPO0FBQUEsc0JBSWpFQSxPQUppRSxDQUVuRUMsSUFGbUU7QUFBQSxNQUVuRUEsSUFGbUUsOEJBRTVELENBRjREO0FBQUEsb0JBSWpFRCxPQUppRSxDQUduRUUsRUFIbUU7QUFBQSxNQUduRUEsRUFIbUUsNEJBRzlELEVBSDhEO0FBTXJFLFNBQU87QUFDTEMsSUFBQUEsS0FBSyxFQUFFLHNCQUFTRixJQUFULEVBQWVDLEVBQWY7QUFERixHQUFQO0FBR0QsQ0FUTTs7OztBQVdBLElBQU1FLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQ3pCQyxPQUR5QixFQUV6QkMsTUFGeUIsRUFNQztBQUFBLE1BSDFCQyxRQUcwQix1RUFIUCxPQUdPO0FBQUEsTUFGMUJDLFFBRTBCLHVFQUZELEVBRUM7QUFBQSxNQUQxQkMsY0FDMEIsdUVBREEsS0FDQTtBQUMxQixNQUFNQyxNQUFjLEdBQUcsYUFBdkI7QUFEMEIsTUFFbkJDLFFBRm1CLEdBRVlOLE9BRlosQ0FFbkJNLFFBRm1CO0FBQUEsTUFFREMsU0FGQyxHQUVZUCxPQUZaLENBRVRRLE1BRlM7O0FBSTFCLE1BQUcsQ0FBQ0QsU0FBSixFQUFlO0FBQ2IsV0FB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YXJzZUlkLCBwYXJzZU51bSwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9hcWwtcXVlcnknO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9jdXJzb3InO1xuXG5pbXBvcnQge1xuICBBcGlDb250ZXh0LFxuICBRdWVyeUZpbHRlcixcbiAgUmVhY3Rpb25EaXJlY3Rpb24sXG4gIFJlYWN0aW9uT3B0aW9ucyxcbiAgUmVhY3Rpb25UeXBlLFxuICBVc2VyUmVhY3Rpb25RdWVyeSxcbiAgVXNlclR5cGVcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtnZXRMaW1pdCwgbG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbiwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3JlYWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZVJlYWN0aW9uT3B0aW9ucyA9IChvcHRpb25zOiBSZWFjdGlvbk9wdGlvbnMgPSB7fSkgPT4ge1xuICBjb25zdCB7XG4gICAgZnJvbSA9IDAsXG4gICAgdG8gPSAzMFxuICB9ID0gb3B0aW9ucztcblxuICByZXR1cm4ge1xuICAgIGxpbWl0OiBnZXRMaW1pdChmcm9tLCB0bylcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcgPSAndXNlcnMnLFxuICByZWFjdGlvbjogUmVhY3Rpb25UeXBlID0ge30sXG4gIGFsbG93RHVwbGljYXRlOiBib29sZWFuID0gZmFsc2Vcbik6IFByb21pc2U8UmVhY3Rpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBuYW1lOiBpdGVtTmFtZSA9ICdsaWtlJyxcbiAgICB2YWx1ZTogaXRlbVZhbHVlXG4gIH0gPSByZWFjdGlvbjtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdEl0ZW1UeXBlOiBhbnkgPSBwYXJzZUNoYXIoaXRlbVR5cGUsIDMyKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbU5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKGl0ZW1WYWx1ZSwgMzIpO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbiA9IHVzZURiKGRhdGFiYXNlKS5lZGdlQ29sbGVjdGlvbignaGFzUmVhY3Rpb25zJyk7XG4gIGNvbnN0IHR5cGVEb2NJZDogc3RyaW5nID0gYCR7Zm9ybWF0SXRlbVR5cGV9LyR7Zm9ybWF0SXRlbUlkfWA7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcmVhY3Rpb24tJHtmb3JtYXRJdGVtSWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCBlZGdlOiBSZWFjdGlvblR5cGUgPSB7XG4gICAgX2tleTogZWRnZUlkLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpLFxuICAgIG5hbWU6IGZvcm1hdFJlYWN0aW9uTmFtZSxcbiAgICB0eXBlOiBmb3JtYXRJdGVtVHlwZSxcbiAgICB2YWx1ZTogaXRlbVZhbHVlICE9PSB1bmRlZmluZWQgPyBmb3JtYXRWYWx1ZSA6IHVuZGVmaW5lZFxuICB9O1xuXG4gIC8vIENoZWNrIGZvciBkdXBsaWNhdGVzIGlmIG5vdCBhbGxvd2VkXG4gIGlmKCFhbGxvd0R1cGxpY2F0ZSkge1xuICAgIC8vIFF1ZXJ5XG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgciBJTiBoYXNSZWFjdGlvbnNcbiAgICAgIEZJTFRFUiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfSAmJiByLl90byA9PSAke3R5cGVEb2NJZH0gJiYgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHJgO1xuXG4gICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC50aGVuKChyZWFjdGlvbikgPT4ge1xuICAgICAgICBpZighIXJlYWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHJlYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwgc2Vzc2lvbkRvY0lkLCB0eXBlRG9jSWQpLnRoZW4oKCkgPT4gZWRnZSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbiAgfVxuXG4gIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHNlc3Npb25Eb2NJZCwgdHlwZURvY0lkKS50aGVuKCgpID0+IGVkZ2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHJlYWN0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8UmVhY3Rpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ3JlbW92ZVJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFNlc3Npb25uSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3BhcnNlSWQoc2Vzc2lvbklkKX1gO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbklkOiBzdHJpbmcgPSBgaGFzUmVhY3Rpb25zLyR7cGFyc2VJZChyZWFjdGlvbklkKX1gO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgTEVUIHIgPSBET0NVTUVOVCgke2Zvcm1hdFJlYWN0aW9uSWR9KVxuICAgIEZJTFRFUiByLl9mcm9tID09ICR7Zm9ybWF0U2Vzc2lvbm5JZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25zXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlUmVhY3Rpb25CeUl0ZW0gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICBpdGVtVHlwZTogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFjdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAncmVtb3ZlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0U2Vzc2lvbklkOiBzdHJpbmcgPSBgdXNlcnMvJHtwYXJzZUlkKHNlc3Npb25JZCl9YDtcbiAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtVHlwZSwgMzIpO1xuICBjb25zdCBmb3JtYXRJdGVtRG9jSWQ6IHN0cmluZyA9IGAke2Zvcm1hdEl0ZW1UeXBlfS8ke3BhcnNlSWQoaXRlbUlkKX1gO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUsIDMyKTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiByIElOIGhhc1JlYWN0aW9uc1xuICAgIEZJTFRFUiByLl9mcm9tID09ICR7Zm9ybWF0U2Vzc2lvbklkfVxuICAgICAgJiYgci5fdG8gPT0gJHtmb3JtYXRJdGVtRG9jSWR9XG4gICAgICAmJiByLnR5cGUgPT0gJHtmb3JtYXRJdGVtVHlwZX1cbiAgICAgICYmIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25zXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUmVhY3Rpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgcmVhY3Rpb246IFJlYWN0aW9uVHlwZSA9IHt9KTogUHJvbWlzZTxSZWFjdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlkOiBpdGVtSWQsXG4gICAgbmFtZTogaXRlbU5hbWUsXG4gICAgdHlwZTogaXRlbVR5cGUsXG4gICAgdmFsdWU6IGl0ZW1WYWx1ZVxuICB9ID0gcmVhY3Rpb247XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdE5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtTmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXRUeXBlOiBhbnkgPSBwYXJzZUNoYXIoaXRlbVR5cGUsIDMyKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKGl0ZW1WYWx1ZSwgMzIpO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHJlYWN0aW9uLSR7Zm9ybWF0SWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCB1cGRhdGU6IFJlYWN0aW9uVHlwZSA9IHtcbiAgICBuYW1lOiBmb3JtYXROYW1lLFxuICAgIHR5cGU6IGZvcm1hdFR5cGUsXG4gICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gIH07XG4gIGNvbnN0IGluc2VydDogUmVhY3Rpb25UeXBlID0ge1xuICAgIC4uLnVwZGF0ZSxcbiAgICBfa2V5OiBlZGdlSWQsXG4gICAgYWRkZWQ6IERhdGUubm93KClcbiAgfTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCAke3tfa2V5OiBmb3JtYXRJZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25Db3VudCA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRSZWFjdGlvbkNvdW50JztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VJZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IGFueSA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IGFueSA9IHBhcnNlQ2hhcihpdGVtVHlwZSwgMzIpO1xuICBjb25zdCBpdGVtRG9jSWQ6IHN0cmluZyA9IGAke2Zvcm1hdEl0ZW1UeXBlfS8ke2Zvcm1hdEl0ZW1JZH1gO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGksIHIgSU4gSU5CT1VORCAke2l0ZW1Eb2NJZH0gaGFzUmVhY3Rpb25zXG4gICAgRklMVEVSIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX0gJiYgci50eXBlID09ICR7Zm9ybWF0SXRlbVR5cGV9XG4gICAgQ09MTEVDVCBXSVRIIENPVU5UIElOVE8gY291bnRcbiAgICBSRVRVUk4gY291bnRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlYWN0aW9uQ291bnRCeVVzZXIgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICBpdGVtVHlwZTogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFjdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRSZWFjdGlvbnNCeVVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VJZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IGFueSA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IGFueSA9IHBhcnNlQ2hhcihpdGVtVHlwZSwgMzIpO1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBpdGVtRG9jSWQ6IHN0cmluZyA9IGAke2Zvcm1hdEl0ZW1UeXBlfS8ke2Zvcm1hdEl0ZW1JZH1gO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGksIHIgSU4gSU5CT1VORCAke2l0ZW1Eb2NJZH0gaGFzUmVhY3Rpb25zXG4gICAgICBGSUxURVIgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfSAmJiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfVxuICAgICAgQ09MTEVDVCByZWFjdGlvblZhbHVlID0gci52YWx1ZSBJTlRPIHJlYWN0aW9uSXRlbXNcbiAgICAgIFJFVFVSTiBNRVJHRShyLCB7Y291bnQ6IExFTkdUSChyZWFjdGlvbkl0ZW1zWypdLnIudmFsdWUpfSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0R3JvdXBVc2Vyc0J5UmVhY3Rpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgcGFyYW1zOiBVc2VyUmVhY3Rpb25RdWVyeSA9IHt9KTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFVzZXJzQnlSZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcblxuICBpZighc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCB7ZmlsdGVycyA9IFtdLCBpZDogZ3JvdXBJZCwgdmFsdWV9OiBVc2VyUmVhY3Rpb25RdWVyeSA9IHBhcmFtcztcbiAgY29uc3QgcmVhY3Rpb24gPSBwYXJzZUNoYXIodmFsdWUsIDMyKTtcbiAgY29uc3QgZ3JvdXBEb2NJZCA9IGBncm91cHMvJHtwYXJzZUlkKGdyb3VwSWQpfWA7XG4gIGNvbnN0IGZpbHRlclN0cjogc3RyaW5nID0gZmlsdGVyc1xuICAgIC5tYXAoKGZpbHRlcjogUXVlcnlGaWx0ZXIpID0+IHtcbiAgICAgIGNvbnN0IHtjb25kaXRpb25hbCwgbmFtZSwgdmFsdWU6IHF1ZXJ5VmFsdWV9OiBRdWVyeUZpbHRlciA9IGZpbHRlcjtcbiAgICAgIGxldCBmaWx0ZXJDb25kOiBzdHJpbmcgPSBjb25kaXRpb25hbDtcblxuICAgICAgaWYoY29uZGl0aW9uYWwgIT09ICc+PScgJiYgY29uZGl0aW9uYWwgIT09ICc8PScgJiYgY29uZGl0aW9uYWwgIT09ICc+JyAmJiBjb25kaXRpb25hbCAhPT0gJzwnKSB7XG4gICAgICAgIGZpbHRlckNvbmQgPSAnPT0nO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2gobmFtZSkge1xuICAgICAgICBjYXNlICdhZGRlZCc6XG4gICAgICAgICAgcmV0dXJuIGByLmFkZGVkICR7ZmlsdGVyQ29uZH0gJHtwYXJzZU51bShxdWVyeVZhbHVlKX1gO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9KVxuICAgIC5jb25jYXQoW1xuICAgICAgYHIudmFsdWUgPT0gXCIke3JlYWN0aW9ufVwiYCxcbiAgICAgICd1Ll9pZCA9PSByLl9mcm9tJ1xuICAgIF0pXG4gICAgLmpvaW4oJyAmJiAnKTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgZywgciBJTiBJTkJPVU5EIFwiJHtncm91cERvY0lkfVwiIGhhc1JlYWN0aW9uc1xuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiAgJHtmaWx0ZXJTdHJ9XG4gICAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZWFjdGlvbnNCeUl0ZW0gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICBpdGVtVHlwZTogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVhY3Rpb25PcHRpb25zXG4pOiBQcm9taXNlPFVzZXJUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0VXNlcnNCeVJlYWN0aW9ucyc7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtVHlwZSwgMzIpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUsIDMyKTtcbiAgY29uc3QgaXRlbURvY0lkID0gYCR7Zm9ybWF0SXRlbVR5cGV9LyR7Zm9ybWF0SXRlbUlkfWA7XG4gIGNvbnN0IHtsaW1pdH0gPSBwYXJzZVJlYWN0aW9uT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGksIHIgSU4gSU5CT1VORCBcIiR7aXRlbURvY0lkfVwiIGhhc1JlYWN0aW9uc1xuICAgIEZJTFRFUiByLm5hbWUgPT0gXCIke2Zvcm1hdFJlYWN0aW9uTmFtZX1cIlxuICAgICR7bGltaXQuYXFsfVxuICAgIFJFVFVSTiBNRVJHRShpLCB7cmVhY3Rpb246IHJ9YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEl0ZW1zQnlSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBSZWFjdGlvbk9wdGlvbnNcbik6IFByb21pc2U8UmVhY3Rpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0VXNlclJlYWN0aW9uc0J5UmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdEl0ZW1UeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbVR5cGUsIDMyKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIocmVhY3Rpb25OYW1lLCAzMik7XG4gIGNvbnN0IGl0ZW1Eb2NJZCA9IGAke2Zvcm1hdEl0ZW1UeXBlfS8ke2Zvcm1hdEl0ZW1JZH1gO1xuICBjb25zdCB7bGltaXR9ID0gcGFyc2VSZWFjdGlvbk9wdGlvbnMob3B0aW9ucyk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUsIHIgSU4gT1VUQk9VTkQgXCIke2l0ZW1Eb2NJZH1cIiBoYXNSZWFjdGlvbnNcbiAgICBGSUxURVIgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgICR7bGltaXQuYXFsfVxuICAgIFJFVFVSTiBNRVJHRSh1LCB7cmVhY3Rpb246IHJ9KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nLFxuICBkaXJlY3Rpb246IFJlYWN0aW9uRGlyZWN0aW9uID0gJ09VVEJPVU5EJ1xuKTogUHJvbWlzZTxSZWFjdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRSZWFjdGlvbnNCeVVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VJZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRJdGVtVHlwZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1UeXBlLCAzMik7XG4gIGNvbnN0IGZvcm1hdERpcmVjdGlvbiA9IGRpcmVjdGlvbiA9PT0gJ09VVEJPVU5EJyA/ICdPVVRCT1VORCcgOiAnSU5CT1VORCc7XG4gIGNvbnN0IGl0ZW1EaXJlY3Rpb246IHN0cmluZyA9IGRpcmVjdGlvbiA9PT0gJ09VVEJPVU5EJyA/ICdyLl90bycgOiAnci5fZnJvbSc7XG4gIGNvbnN0IGl0ZW1Eb2NJZDogc3RyaW5nID0gYCR7Zm9ybWF0SXRlbVR5cGV9LyR7Zm9ybWF0SXRlbUlkfWA7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGksIHIgSU4gJHtmb3JtYXREaXJlY3Rpb259IFwiJHtzZXNzaW9uRG9jSWR9XCIgaGFzUmVhY3Rpb25zXG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7cmVhY3Rpb25OYW1lfVwiICYmICR7aXRlbURpcmVjdGlvbn0gPT0gXCIke2l0ZW1Eb2NJZH1cIlxuICAgIFJFVFVSTiBNRVJHRShpLCB7cmVhY3Rpb246IHJ9KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigocmVhY3Rpb25zID0gW10pID0+ICEhcmVhY3Rpb25zLmxlbmd0aClcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXX0=
|
|
529
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3JlYWN0aW9ucy50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwicGFyc2VSZWFjdGlvbk9wdGlvbnMiLCJvcHRpb25zIiwiZnJvbSIsInRvIiwibGltaXQiLCJhZGRSZWFjdGlvbiIsImNvbnRleHQiLCJpdGVtSWQiLCJpdGVtVHlwZSIsInJlYWN0aW9uIiwiYWxsb3dEdXBsaWNhdGUiLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImNhdGVnb3J5IiwibGFiZWwiLCJ2YWx1ZSIsInRoZW4iLCJuYW1lIiwiaXRlbU5hbWUiLCJpdGVtVmFsdWUiLCJmb3JtYXRJdGVtSWQiLCJmb3JtYXRJdGVtVHlwZSIsImZvcm1hdFJlYWN0aW9uTmFtZSIsImZvcm1hdFZhbHVlIiwiZWRnZUNvbGxlY3Rpb24iLCJjb2xsZWN0aW9uIiwidHlwZURvY0lkIiwic2Vzc2lvbkRvY0lkIiwiZWRnZUlkIiwiZWRnZSIsIl9mcm9tIiwiX2tleSIsIl90byIsImFkZGVkIiwiRGF0ZSIsIm5vdyIsInR5cGUiLCJ1bmRlZmluZWQiLCJhcWxRcnkiLCJhcWwiLCJxdWVyeSIsImN1cnNvciIsIm5leHQiLCJzYXZlIiwicmV0dXJuTmV3IiwiY29uc29sZSIsImxvZyIsImVycm9yIiwicmVtb3ZlUmVhY3Rpb24iLCJyZWFjdGlvbklkIiwiZm9ybWF0U2Vzc2lvbklkIiwiZm9ybWF0UmVhY3Rpb25JZCIsInJlbW92ZVJlYWN0aW9uQnlJdGVtIiwicmVhY3Rpb25OYW1lIiwiZm9ybWF0SXRlbURvY0lkIiwidXBkYXRlUmVhY3Rpb24iLCJpZCIsImZvcm1hdElkIiwiZm9ybWF0TmFtZSIsImZvcm1hdFR5cGUiLCJ1cGRhdGUiLCJpbnNlcnQiLCJnZXRSZWFjdGlvbkNvdW50IiwiaXRlbURvY0lkIiwiZ2V0UmVhY3Rpb25Db3VudEJ5VXNlciIsImFsbCIsImdldEdyb3VwVXNlcnNCeVJlYWN0aW9uIiwicGFyYW1zIiwiZmlsdGVycyIsImdyb3VwSWQiLCJncm91cERvY0lkIiwiZmlsdGVyU3RyIiwibWFwIiwiZmlsdGVyIiwiY29uZGl0aW9uYWwiLCJxdWVyeVZhbHVlIiwiZmlsdGVyQ29uZCIsImNvbmNhdCIsImpvaW4iLCJnZXRSZWFjdGlvbnNCeUl0ZW0iLCJnZXRJdGVtc0J5UmVhY3Rpb24iLCJoYXNSZWFjdGlvbiIsImRpcmVjdGlvbiIsImZvcm1hdERpcmVjdGlvbiIsIml0ZW1EaXJlY3Rpb24iLCJyZWFjdGlvbnMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBY0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxhQUFxQixHQUFHLFdBQTlCOztBQUVPLElBQU1DLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBdUIsR0FBbUM7QUFBQSxNQUFsQ0MsT0FBa0MsdUVBQVAsRUFBTztBQUFBLHNCQUlqRUEsT0FKaUUsQ0FFbkVDLElBRm1FO0FBQUEsTUFFbkVBLElBRm1FLDhCQUU1RCxDQUY0RDtBQUFBLG9CQUlqRUQsT0FKaUUsQ0FHbkVFLEVBSG1FO0FBQUEsTUFHbkVBLEVBSG1FLDRCQUc5RCxFQUg4RDtBQU1yRSxTQUFPO0FBQ0xDLElBQUFBLEtBQUssRUFBRSxzQkFBU0YsSUFBVCxFQUFlQyxFQUFmO0FBREYsR0FBUDtBQUdELENBVE07Ozs7QUFXQSxJQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUN6QkMsT0FEeUIsRUFFekJDLE1BRnlCLEVBTUM7QUFBQSxNQUgxQkMsUUFHMEIsdUVBSFAsT0FHTztBQUFBLE1BRjFCQyxRQUUwQix1RUFGRCxFQUVDO0FBQUEsTUFEMUJDLGNBQzBCLHVFQURBLEtBQ0E7QUFDMUIsTUFBTUMsTUFBYyxHQUFHLGFBQXZCO0FBRDBCLE1BRW5CQyxRQUZtQixHQUVZTixPQUZaLENBRW5CTSxRQUZtQjtBQUFB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V0FHRSxVQUFDdkMsS0FBRDtBQUFBLFdBQWtCLHNCQUFTO0FBQ2hDdEMsTUFBQUEsTUFBTSxFQUFOQSxNQURnQztBQUVoQ0ksTUFBQUEsUUFBUSxFQUFFaEIsYUFGc0I7QUFHaENpQixNQUFBQSxLQUFLLEVBQUU7QUFIeUIsS0FBVCxFQUl0QmlDLEtBSnNCLEVBSWYzQyxPQUplLEVBSU5ZLElBSk0sQ0FJRDtBQUFBLGFBQU0sS0FBTjtBQUFBLEtBSkMsQ0FBbEI7QUFBQSxHQUhGLENBQVA7QUFRRCxDQTdCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkLCBwYXJzZU51bSwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcbmltcG9ydCB7RWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvY3Vyc29yJztcblxuaW1wb3J0IHtcbiAgQXBpQ29udGV4dCxcbiAgUXVlcnlGaWx0ZXIsXG4gIFJlYWN0aW9uRGlyZWN0aW9uLFxuICBSZWFjdGlvbk9wdGlvbnMsXG4gIFJlYWN0aW9uVHlwZSxcbiAgVXNlclJlYWN0aW9uUXVlcnksXG4gIFVzZXJUeXBlXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7Z2V0TGltaXQsIGxvZ0Vycm9yLCBsb2dFeGNlcHRpb24sIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdyZWFjdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgcGFyc2VSZWFjdGlvbk9wdGlvbnMgPSAob3B0aW9uczogUmVhY3Rpb25PcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGZyb20gPSAwLFxuICAgIHRvID0gMzBcbiAgfSA9IG9wdGlvbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBsaW1pdDogZ2V0TGltaXQoZnJvbSwgdG8pXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYWRkUmVhY3Rpb24gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICBpdGVtVHlwZTogc3RyaW5nID0gJ3VzZXJzJyxcbiAgcmVhY3Rpb246IFJlYWN0aW9uVHlwZSA9IHt9LFxuICBhbGxvd0R1cGxpY2F0ZTogYm9vbGVhbiA9IGZhbHNlXG4pOiBQcm9taXNlPFJlYWN0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRSZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcblxuICBpZighc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgbmFtZTogaXRlbU5hbWUgPSAnbGlrZScsXG4gICAgdmFsdWU6IGl0ZW1WYWx1ZVxuICB9ID0gcmVhY3Rpb247XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VJZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRJdGVtVHlwZTogYW55ID0gcGFyc2VDaGFyKGl0ZW1UeXBlLCAzMik7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1OYW1lLCAzMik7XG4gIGNvbnN0IGZvcm1hdFZhbHVlOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhpdGVtVmFsdWUsIDMyKTtcbiAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gdXNlRGIoZGF0YWJhc2UpLmNvbGxlY3Rpb24oJ2hhc1JlYWN0aW9ucycpO1xuICBjb25zdCB0eXBlRG9jSWQ6IHN0cmluZyA9IGAke2Zvcm1hdEl0ZW1UeXBlfS8ke2Zvcm1hdEl0ZW1JZH1gO1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHJlYWN0aW9uLSR7Zm9ybWF0SXRlbUlkfS0ke3Nlc3Npb25JZH1gKTtcbiAgY29uc3QgZWRnZTogUmVhY3Rpb25UeXBlID0ge1xuICAgIF9mcm9tOiBzZXNzaW9uRG9jSWQsXG4gICAgX2tleTogZWRnZUlkLFxuICAgIF90bzogdHlwZURvY0lkLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpLFxuICAgIG5hbWU6IGZvcm1hdFJlYWN0aW9uTmFtZSxcbiAgICB0eXBlOiBmb3JtYXRJdGVtVHlwZSxcbiAgICB2YWx1ZTogaXRlbVZhbHVlICE9PSB1bmRlZmluZWQgPyBmb3JtYXRWYWx1ZSA6IHVuZGVmaW5lZFxuICB9O1xuXG4gIC8vIENoZWNrIGZvciBkdXBsaWNhdGVzIGlmIG5vdCBhbGxvd2VkXG4gIGlmKCFhbGxvd0R1cGxpY2F0ZSkge1xuICAgIC8vIFF1ZXJ5XG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgciBJTiBoYXNSZWFjdGlvbnNcbiAgICAgIEZJTFRFUiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfSAmJiByLl90byA9PSAke3R5cGVEb2NJZH0gJiYgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHJgO1xuXG4gICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC50aGVuKChyZWFjdGlvbikgPT4ge1xuICAgICAgICBpZighIXJlYWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHJlYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwge3JldHVybk5ldzogdHJ1ZX0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdhZGRSZWFjdGlvbjo6ZWRnZScsIGVkZ2UpO1xuICAgICAgICAgIHJldHVybiBlZGdlO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnYWRkUmVhY3Rpb246OmVycm9yJywgZXJyb3IpO1xuICAgICAgICByZXR1cm4gbG9nRXJyb3Ioe1xuICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwge3JldHVybk5ldzogdHJ1ZX0pLnRoZW4oKCkgPT4gZWRnZSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlUmVhY3Rpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgcmVhY3Rpb25JZDogc3RyaW5nKTogUHJvbWlzZTxSZWFjdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAncmVtb3ZlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0U2Vzc2lvbklkOiBzdHJpbmcgPSBgdXNlcnMvJHtwYXJzZUlkKHNlc3Npb25JZCl9YDtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25JZDogc3RyaW5nID0gYGhhc1JlYWN0aW9ucy8ke3BhcnNlSWQocmVhY3Rpb25JZCl9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCByID0gRE9DVU1FTlQoJHtmb3JtYXRSZWFjdGlvbklkfSlcbiAgICBGSUxURVIgci5fZnJvbSA9PSAke2Zvcm1hdFNlc3Npb25JZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25zXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlUmVhY3Rpb25CeUl0ZW0gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICBpdGVtVHlwZTogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFjdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAncmVtb3ZlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0U2Vzc2lvbklkOiBzdHJpbmcgPSBgdXNlcnMvJHtwYXJzZUlkKHNlc3Npb25JZCl9YDtcbiAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtVHlwZSwgMzIpO1xuICBjb25zdCBmb3JtYXRJdGVtRG9jSWQ6IHN0cmluZyA9IGAke2Zvcm1hdEl0ZW1UeXBlfS8ke3BhcnNlSWQoaXRlbUlkKX1gO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUsIDMyKTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiByIElOIGhhc1JlYWN0aW9uc1xuICAgIEZJTFRFUiByLl9mcm9tID09ICR7Zm9ybWF0U2Vzc2lvbklkfVxuICAgICAgJiYgci5fdG8gPT0gJHtmb3JtYXRJdGVtRG9jSWR9XG4gICAgICAmJiByLnR5cGUgPT0gJHtmb3JtYXRJdGVtVHlwZX1cbiAgICAgICYmIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25zXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUmVhY3Rpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgcmVhY3Rpb246IFJlYWN0aW9uVHlwZSA9IHt9KTogUHJvbWlzZTxSZWFjdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlkOiBpdGVtSWQsXG4gICAgbmFtZTogaXRlbU5hbWUsXG4gICAgdHlwZTogaXRlbVR5cGUsXG4gICAgdmFsdWU6IGl0ZW1WYWx1ZVxuICB9ID0gcmVhY3Rpb247XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdE5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtTmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXRUeXBlOiBhbnkgPSBwYXJzZUNoYXIoaXRlbVR5cGUsIDMyKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKGl0ZW1WYWx1ZSwgMzIpO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHJlYWN0aW9uLSR7Zm9ybWF0SWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCB1cGRhdGU6IFJlYWN0aW9uVHlwZSA9IHtcbiAgICBuYW1lOiBmb3JtYXROYW1lLFxuICAgIHR5cGU6IGZvcm1hdFR5cGUsXG4gICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gIH07XG4gIGNvbnN0IGluc2VydDogUmVhY3Rpb25UeXBlID0ge1xuICAgIC4uLnVwZGF0ZSxcbiAgICBfa2V5OiBlZGdlSWQsXG4gICAgYWRkZWQ6IERhdGUubm93KClcbiAgfTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCAke3tfa2V5OiBmb3JtYXRJZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25Db3VudCA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRSZWFjdGlvbkNvdW50JztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VJZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IGFueSA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IGFueSA9IHBhcnNlQ2hhcihpdGVtVHlwZSwgMzIpO1xuICBjb25zdCBpdGVtRG9jSWQ6IHN0cmluZyA9IGAke2Zvcm1hdEl0ZW1UeXBlfS8ke2Zvcm1hdEl0ZW1JZH1gO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGksIHIgSU4gSU5CT1VORCAke2l0ZW1Eb2NJZH0gaGFzUmVhY3Rpb25zXG4gICAgRklMVEVSIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX0gJiYgci50eXBlID09ICR7Zm9ybWF0SXRlbVR5cGV9XG4gICAgQ09MTEVDVCBXSVRIIENPVU5UIElOVE8gY291bnRcbiAgICBSRVRVUk4gY291bnRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gdW5kZWZpbmVkKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25Db3VudEJ5VXNlciA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9uc0J5VXNlcic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogYW55ID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXRJdGVtVHlwZTogYW55ID0gcGFyc2VDaGFyKGl0ZW1UeXBlLCAzMik7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGl0ZW1Eb2NJZDogc3RyaW5nID0gYCR7Zm9ybWF0SXRlbVR5cGV9LyR7Zm9ybWF0SXRlbUlkfWA7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgaSwgciBJTiBJTkJPVU5EICR7aXRlbURvY0lkfSBoYXNSZWFjdGlvbnNcbiAgICAgIEZJTFRFUiByLm5hbWUgPT0gJHtmb3JtYXRSZWFjdGlvbk5hbWV9ICYmIHIuX2Zyb20gPT0gJHtzZXNzaW9uRG9jSWR9XG4gICAgICBDT0xMRUNUIHJlYWN0aW9uVmFsdWUgPSByLnZhbHVlIElOVE8gcmVhY3Rpb25JdGVtc1xuICAgICAgUkVUVVJOIE1FUkdFKHIsIHtjb3VudDogTEVOR1RIKHJlYWN0aW9uSXRlbXNbKl0uci52YWx1ZSl9KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0R3JvdXBVc2Vyc0J5UmVhY3Rpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgcGFyYW1zOiBVc2VyUmVhY3Rpb25RdWVyeSA9IHt9KTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFVzZXJzQnlSZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcblxuICBpZighc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCB7ZmlsdGVycyA9IFtdLCBpZDogZ3JvdXBJZCwgdmFsdWV9OiBVc2VyUmVhY3Rpb25RdWVyeSA9IHBhcmFtcztcbiAgY29uc3QgcmVhY3Rpb24gPSBwYXJzZUNoYXIodmFsdWUsIDMyKTtcbiAgY29uc3QgZ3JvdXBEb2NJZCA9IGBncm91cHMvJHtwYXJzZUlkKGdyb3VwSWQpfWA7XG4gIGNvbnN0IGZpbHRlclN0cjogc3RyaW5nID0gZmlsdGVyc1xuICAgIC5tYXAoKGZpbHRlcjogUXVlcnlGaWx0ZXIpID0+IHtcbiAgICAgIGNvbnN0IHtjb25kaXRpb25hbCwgbmFtZSwgdmFsdWU6IHF1ZXJ5VmFsdWV9OiBRdWVyeUZpbHRlciA9IGZpbHRlcjtcbiAgICAgIGxldCBmaWx0ZXJDb25kOiBzdHJpbmcgPSBjb25kaXRpb25hbDtcblxuICAgICAgaWYoY29uZGl0aW9uYWwgIT09ICc+PScgJiYgY29uZGl0aW9uYWwgIT09ICc8PScgJiYgY29uZGl0aW9uYWwgIT09ICc+JyAmJiBjb25kaXRpb25hbCAhPT0gJzwnKSB7XG4gICAgICAgIGZpbHRlckNvbmQgPSAnPT0nO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2gobmFtZSkge1xuICAgICAgICBjYXNlICdhZGRlZCc6XG4gICAgICAgICAgcmV0dXJuIGByLmFkZGVkICR7ZmlsdGVyQ29uZH0gJHtwYXJzZU51bShxdWVyeVZhbHVlKX1gO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9KVxuICAgIC5jb25jYXQoW1xuICAgICAgYHIudmFsdWUgPT0gXCIke3JlYWN0aW9ufVwiYCxcbiAgICAgICd1Ll9pZCA9PSByLl9mcm9tJ1xuICAgIF0pXG4gICAgLmpvaW4oJyAmJiAnKTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgZywgciBJTiBJTkJPVU5EIFwiJHtncm91cERvY0lkfVwiIGhhc1JlYWN0aW9uc1xuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiAgJHtmaWx0ZXJTdHJ9XG4gICAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25zQnlJdGVtID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtSWQ6IHN0cmluZyxcbiAgaXRlbVR5cGU6IHN0cmluZyxcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFJlYWN0aW9uT3B0aW9uc1xuKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFVzZXJzQnlSZWFjdGlvbnMnO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdEl0ZW1UeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbVR5cGUsIDMyKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIocmVhY3Rpb25OYW1lLCAzMik7XG4gIGNvbnN0IGl0ZW1Eb2NJZCA9IGAke2Zvcm1hdEl0ZW1UeXBlfS8ke2Zvcm1hdEl0ZW1JZH1gO1xuICBjb25zdCB7bGltaXR9ID0gcGFyc2VSZWFjdGlvbk9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBpLCByIElOIElOQk9VTkQgXCIke2l0ZW1Eb2NJZH1cIiBoYXNSZWFjdGlvbnNcbiAgICBGSUxURVIgci5uYW1lID09IFwiJHtmb3JtYXRSZWFjdGlvbk5hbWV9XCJcbiAgICAke2xpbWl0LmFxbH1cbiAgICBSRVRVUk4gTUVSR0UoaSwge3JlYWN0aW9uOiByfWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SXRlbXNCeVJlYWN0aW9uID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtSWQ6IHN0cmluZyxcbiAgaXRlbVR5cGU6IHN0cmluZyxcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFJlYWN0aW9uT3B0aW9uc1xuKTogUHJvbWlzZTxSZWFjdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRVc2VyUmVhY3Rpb25zQnlSZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtVHlwZSwgMzIpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUsIDMyKTtcbiAgY29uc3QgaXRlbURvY0lkID0gYCR7Zm9ybWF0SXRlbVR5cGV9LyR7Zm9ybWF0SXRlbUlkfWA7XG4gIGNvbnN0IHtsaW1pdH0gPSBwYXJzZVJlYWN0aW9uT3B0aW9ucyhvcHRpb25zKTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdSwgciBJTiBPVVRCT1VORCBcIiR7aXRlbURvY0lkfVwiIGhhc1JlYWN0aW9uc1xuICAgIEZJTFRFUiByLm5hbWUgPT0gJHtmb3JtYXRSZWFjdGlvbk5hbWV9XG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIE1FUkdFKHUsIHtyZWFjdGlvbjogcn0pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gW10pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nLFxuICBkaXJlY3Rpb246IFJlYWN0aW9uRGlyZWN0aW9uID0gJ09VVEJPVU5EJ1xuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9uc0J5VXNlcic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdEl0ZW1UeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbVR5cGUsIDMyKTtcbiAgY29uc3QgZm9ybWF0RGlyZWN0aW9uID0gZGlyZWN0aW9uID09PSAnT1VUQk9VTkQnID8gJ09VVEJPVU5EJyA6ICdJTkJPVU5EJztcbiAgY29uc3QgaXRlbURpcmVjdGlvbjogc3RyaW5nID0gZGlyZWN0aW9uID09PSAnT1VUQk9VTkQnID8gJ3IuX3RvJyA6ICdyLl9mcm9tJztcbiAgY29uc3QgaXRlbURvY0lkOiBzdHJpbmcgPSBgJHtmb3JtYXRJdGVtVHlwZX0vJHtmb3JtYXRJdGVtSWR9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgaSwgciBJTiAke2Zvcm1hdERpcmVjdGlvbn0gXCIke3Nlc3Npb25Eb2NJZH1cIiBoYXNSZWFjdGlvbnNcbiAgICBGSUxURVIgci5uYW1lID09IFwiJHtyZWFjdGlvbk5hbWV9XCIgJiYgJHtpdGVtRGlyZWN0aW9ufSA9PSBcIiR7aXRlbURvY0lkfVwiXG4gICAgUkVUVVJOIE1FUkdFKGksIHtyZWFjdGlvbjogcn0pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChyZWFjdGlvbnMgPSBbXSkgPT4gISFyZWFjdGlvbnMubGVuZ3RoKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gZmFsc2UpKTtcbn07XG4iXX0=
|
package/lib/data/s3.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const s3Get: (params:
|
|
3
|
-
export declare const s3Head: (params:
|
|
4
|
-
export declare const s3Put: (params:
|
|
5
|
-
export declare const s3Delete: (params:
|
|
6
|
-
export declare const s3DeleteList: (params:
|
|
1
|
+
import { DeleteObjectOutput, DeleteObjectRequest, DeleteObjectsOutput, DeleteObjectsRequest, GetObjectOutput, GetObjectRequest, HeadObjectOutput, HeadObjectRequest, PutObjectOutput, PutObjectRequest } from 'aws-sdk/clients/s3';
|
|
2
|
+
export declare const s3Get: (params: GetObjectRequest) => Promise<GetObjectOutput>;
|
|
3
|
+
export declare const s3Head: (params: HeadObjectRequest) => Promise<HeadObjectOutput>;
|
|
4
|
+
export declare const s3Put: (params: PutObjectRequest) => Promise<PutObjectOutput>;
|
|
5
|
+
export declare const s3Delete: (params: DeleteObjectRequest) => Promise<DeleteObjectOutput>;
|
|
6
|
+
export declare const s3DeleteList: (params: DeleteObjectsRequest) => Promise<DeleteObjectsOutput>;
|
|
7
7
|
export declare const s3GetSignedUrl: (params: any) => string;
|
package/lib/data/s3.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.object.to-string");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.promise");
|
|
8
|
+
|
|
3
9
|
Object.defineProperty(exports, "__esModule", {
|
|
4
10
|
value: true
|
|
5
11
|
});
|
|
@@ -9,7 +15,9 @@ var _awsSdk = _interopRequireWildcard(require("aws-sdk"));
|
|
|
9
15
|
|
|
10
16
|
var _config = require("../config");
|
|
11
17
|
|
|
12
|
-
function
|
|
18
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
|
19
|
+
|
|
20
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
21
|
|
|
14
22
|
/**
|
|
15
23
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
@@ -144,4 +152,4 @@ var s3GetSignedUrl = function s3GetSignedUrl(params) {
|
|
|
144
152
|
};
|
|
145
153
|
|
|
146
154
|
exports.s3GetSignedUrl = s3GetSignedUrl;
|
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
155
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3MzLnRzIl0sIm5hbWVzIjpbInMzR2V0IiwicGFyYW1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhd3MiLCJjb25maWciLCJ1cGRhdGUiLCJDb25maWciLCJnZXQiLCJzMyIsIlMzIiwiQnVja2V0IiwiZ2V0T2JqZWN0IiwiZXJyb3IiLCJvdXRwdXQiLCJzM0hlYWQiLCJoZWFkT2JqZWN0IiwiczNQdXQiLCJTdG9yYWdlQ2xhc3MiLCJwdXRPYmplY3QiLCJzM0RlbGV0ZSIsImRlbGV0ZU9iamVjdCIsInMzRGVsZXRlTGlzdCIsImRlbGV0ZU9iamVjdHMiLCJzM0dldFNpZ25lZFVybCIsImdldFNpZ25lZFVybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUlBOztBQWNBOzs7Ozs7QUFsQkE7QUFDQTtBQUNBO0FBQ0E7QUFpQkE7QUFDQTtBQUVPLElBQU1BLEtBQUssR0FBRyxTQUFSQSxLQUFRLENBQUNDLE1BQUQ7QUFBQSxTQUNuQixJQUFJQyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQy9CQyx1QkFBSUMsTUFBSixDQUFXQyxNQUFYLENBQWtCQyxlQUFPQyxHQUFQLENBQVcsS0FBWCxDQUFsQjs7QUFDQSxRQUFNQyxFQUFNLEdBQUcsSUFBSUMsVUFBSixFQUFmOztBQUVBLFFBQUcsQ0FBQ1YsTUFBTSxDQUFDVyxNQUFYLEVBQW1CO0FBQ2pCWCxNQUFBQSxNQUFNLENBQUNXLE1BQVAsR0FBZ0JKLGVBQU9DLEdBQVAsQ0FBVyxZQUFYLENBQWhCO0FBQ0Q7O0FBRURDLElBQUFBLEVBQUUsQ0FBQ0csU0FBSCxDQUFhWixNQUFiLEVBQXFCLFVBQUNhLEtBQUQsRUFBZUMsTUFBZixFQUEyQztBQUM5RCxVQUFHRCxLQUFILEVBQVU7QUFDUixlQUFPVixNQUFNLENBQUNVLEtBQUQsQ0FBYjtBQUNEOztBQUVELGFBQU9YLE9BQU8sQ0FBQ1ksTUFBRCxDQUFkO0FBQ0QsS0FORDtBQU9ELEdB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QkMsZUFBT0MsR0FBUCxDQUFXLEtBQVgsQ0FBbEI7O0FBQ0EsUUFBTUMsRUFBTSxHQUFHLElBQUlDLFVBQUosRUFBZjs7QUFFQSxRQUFHLENBQUNWLE1BQU0sQ0FBQ1csTUFBWCxFQUFtQjtBQUNqQlgsTUFBQUEsTUFBTSxDQUFDVyxNQUFQLEdBQWdCSixlQUFPQyxHQUFQLENBQVcsWUFBWCxDQUFoQjtBQUNEOztBQUVEQyxJQUFBQSxFQUFFLENBQUNjLGFBQUgsQ0FBaUJ2QixNQUFqQixFQUF5QixVQUFDYSxLQUFELEVBQWVDLE1BQWYsRUFBK0M7QUFDdEUsVUFBR0QsS0FBSCxFQUFVO0FBQ1IsZUFBT1YsTUFBTSxDQUFDVSxLQUFELENBQWI7QUFDRDs7QUFDRCxhQUFPWCxPQUFPLENBQUNZLE1BQUQsQ0FBZDtBQUNELEtBTEQ7QUFNRCxHQWRELENBRDBCO0FBQUEsQ0FBckI7Ozs7QUFpQkEsSUFBTVUsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFDeEIsTUFBRCxFQUF5QjtBQUNyREkscUJBQUlDLE1BQUosQ0FBV0MsTUFBWCxDQUFrQkMsZUFBT0MsR0FBUCxDQUFXLEtBQVgsQ0FBbEI7O0FBQ0EsTUFBTUMsRUFBTSxHQUFHLElBQUlDLFVBQUosRUFBZjs7QUFFQSxNQUFHLENBQUNWLE1BQU0sQ0FBQ1csTUFBWCxFQUFtQjtBQUNqQlgsSUFBQUEsTUFBTSxDQUFDVyxNQUFQLEdBQWdCSixlQUFPQyxHQUFQLENBQVcsWUFBWCxDQUFoQjtBQUNEOztBQUVELFNBQU9DLEVBQUUsQ0FBQ2dCLFlBQUgsQ0FBZ0IsV0FBaEIsRUFBNkJ6QixNQUE3QixDQUFQO0FBQ0QsQ0FUTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgYXdzLCB7UzN9IGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHtcbiAgRGVsZXRlT2JqZWN0T3V0cHV0LFxuICBEZWxldGVPYmplY3RSZXF1ZXN0LFxuICBEZWxldGVPYmplY3RzT3V0cHV0LFxuICBEZWxldGVPYmplY3RzUmVxdWVzdCxcbiAgR2V0T2JqZWN0T3V0cHV0LFxuICBHZXRPYmplY3RSZXF1ZXN0LFxuICBIZWFkT2JqZWN0T3V0cHV0LFxuICBIZWFkT2JqZWN0UmVxdWVzdCxcbiAgUHV0T2JqZWN0T3V0cHV0LFxuICBQdXRPYmplY3RSZXF1ZXN0XG59IGZyb20gJ2F3cy1zZGsvY2xpZW50cy9zMyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuXG4vLyBBV1MgUzNcbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdzMyc7XG5cbmV4cG9ydCBjb25zdCBzM0dldCA9IChwYXJhbXM6IEdldE9iamVjdFJlcXVlc3QpOiBQcm9taXNlPEdldE9iamVjdE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgICBjb25zdCBzMzogUzMgPSBuZXcgUzMoKTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLkJ1Y2tldCcpO1xuICAgIH1cblxuICAgIHMzLmdldE9iamVjdChwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogR2V0T2JqZWN0T3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBzM0hlYWQgPSAocGFyYW1zOiBIZWFkT2JqZWN0UmVxdWVzdCk6IFByb21pc2U8SGVhZE9iamVjdE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgICBjb25zdCBzMzogUzMgPSBuZXcgUzMoKTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLkJ1Y2tldCcpO1xuICAgIH1cblxuICAgIHMzLmhlYWRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IEhlYWRPYmplY3RPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cblxuZXhwb3J0IGNvbnN0IHMzUHV0ID0gKHBhcmFtczogUHV0T2JqZWN0UmVxdWVzdCk6IFByb21pc2U8UHV0T2JqZWN0T3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzID0gbmV3IGF3cy5TMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgaWYoIXBhcmFtcy5TdG9yYWdlQ2xhc3MpIHtcbiAgICAgIHBhcmFtcy5TdG9yYWdlQ2xhc3MgPSAnUkVEVUNFRF9SRURVTkRBTkNZJztcbiAgICB9XG5cbiAgICBzMy5wdXRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IFB1dE9iamVjdE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlID0gKHBhcmFtczogRGVsZXRlT2JqZWN0UmVxdWVzdCk6IFByb21pc2U8RGVsZXRlT2JqZWN0T3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZGVsZXRlT2JqZWN0KHBhcmFtcywgKGVycm9yLCBvdXRwdXQ6IERlbGV0ZU9iamVjdE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlTGlzdCA9IChwYXJhbXM6IERlbGV0ZU9iamVjdHNSZXF1ZXN0KTogUHJvbWlzZTxEZWxldGVPYmplY3RzT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZGVsZXRlT2JqZWN0cyhwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogRGVsZXRlT2JqZWN0c091dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzR2V0U2lnbmVkVXJsID0gKHBhcmFtczogYW55KTogc3RyaW5nID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBzMzogUzMgPSBuZXcgUzMoKTtcblxuICBpZighcGFyYW1zLkJ1Y2tldCkge1xuICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gIH1cblxuICByZXR1cm4gczMuZ2V0U2lnbmVkVXJsKCdnZXRPYmplY3QnLCBwYXJhbXMpO1xufTtcbiJdfQ==
|
package/lib/data/search.js
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.symbol");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.array.concat");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.array.filter");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.array.for-each");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.array.iterator");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.array.map");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.array.slice");
|
|
16
|
+
|
|
17
|
+
require("core-js/modules/es.function.name");
|
|
18
|
+
|
|
19
|
+
require("core-js/modules/es.object.define-properties");
|
|
20
|
+
|
|
21
|
+
require("core-js/modules/es.object.define-property");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/es.object.freeze");
|
|
24
|
+
|
|
25
|
+
require("core-js/modules/es.object.get-own-property-descriptor");
|
|
26
|
+
|
|
27
|
+
require("core-js/modules/es.object.get-own-property-descriptors");
|
|
28
|
+
|
|
29
|
+
require("core-js/modules/es.object.keys");
|
|
30
|
+
|
|
31
|
+
require("core-js/modules/es.object.to-string");
|
|
32
|
+
|
|
33
|
+
require("core-js/modules/es.promise");
|
|
34
|
+
|
|
35
|
+
require("core-js/modules/es.regexp.exec");
|
|
36
|
+
|
|
37
|
+
require("core-js/modules/es.string.iterator");
|
|
38
|
+
|
|
39
|
+
require("core-js/modules/es.string.split");
|
|
40
|
+
|
|
41
|
+
require("core-js/modules/web.dom-collections.for-each");
|
|
42
|
+
|
|
43
|
+
require("core-js/modules/web.dom-collections.iterator");
|
|
44
|
+
|
|
3
45
|
Object.defineProperty(exports, "__esModule", {
|
|
4
46
|
value: true
|
|
5
47
|
});
|
|
@@ -19,7 +61,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
19
61
|
|
|
20
62
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
21
63
|
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
64
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
23
65
|
|
|
24
66
|
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; }
|
|
25
67
|
|
|
@@ -73,7 +115,7 @@ var getSearchList = function getSearchList(context, query, from, to) {
|
|
|
73
115
|
var collectionIdList = itemId.split('/');
|
|
74
116
|
var collection = collectionIdList[0];
|
|
75
117
|
var name = collection === 'users' ? (0, _users.getDisplayName)(item) : itemName;
|
|
76
|
-
return _objectSpread({}, item, {
|
|
118
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
77
119
|
name: name
|
|
78
120
|
});
|
|
79
121
|
});
|
|
@@ -93,7 +135,7 @@ var getSearchList = function getSearchList(context, query, from, to) {
|
|
|
93
135
|
var collectionIdList = itemId.split('/');
|
|
94
136
|
var collection = collectionIdList[0];
|
|
95
137
|
var name = collection === 'users' ? (0, _users.getDisplayName)(item) : itemName;
|
|
96
|
-
return _objectSpread({}, item, {
|
|
138
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
97
139
|
name: name
|
|
98
140
|
});
|
|
99
141
|
});
|
|
@@ -110,4 +152,4 @@ var getSearchList = function getSearchList(context, query, from, to) {
|
|
|
110
152
|
};
|
|
111
153
|
|
|
112
154
|
exports.getSearchList = getSearchList;
|
|
113
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
155
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3NlYXJjaC50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiZ2V0U2VhcmNoTGlzdCIsImNvbnRleHQiLCJxdWVyeSIsImZyb20iLCJ0byIsImFjdGlvbiIsImRhdGFiYXNlIiwiaXNTdHJpbmciLCJmaWVsZHMiLCJjb2xsZWN0aW9uIiwiZmllbGQiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwib2JqIiwicXJ5IiwidXNlclFyeSIsImFxbCIsInRoZW4iLCJjdXJzb3IiLCJyZXN1bHRzIiwibGlzdCIsIml0ZW0iLCJpdGVtSWQiLCJfaWQiLCJpdGVtTmFtZSIsIm5hbWUiLCJjb2xsZWN0aW9uSWRMaXN0Iiwic3BsaXQiLCJsaW1pdCIsImFxbFFyeSIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCIsInZhbHVlIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlBOztBQUdBOztBQUNBOztBQUtBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsYUFBcUIsR0FBRyxRQUE5Qjs7QUFFTyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLE9BQUQsRUFBc0JDLEtBQXRCLEVBQXFDQyxJQUFyQyxFQUFtREMsRUFBbkQsRUFBdUY7QUFDbEgsTUFBTUMsTUFBYyxHQUFHLFNBQXZCO0FBRGtILE1BRTNHQyxRQUYyRyxHQUUvRkwsT0FGK0YsQ0FFM0dLLFFBRjJHO0FBR2xILE1BQU1DLFFBQWlCLEdBQUcsSUFBMUI7O0FBRUEsTUFBR0EsUUFBSCxFQUFhO0FBQ1gsUUFBTUMsTUFBYSxHQUFHLENBQ3BCO0FBQUNDLE1BQUFBLFVBQVUsRUFBRSxPQUFiO0FBQXNCQyxNQUFBQSxLQUFLLEVBQUU7QUFBN0IsS0FEb0IsRUFFcEI7QUFBQ0QsTUFBQUEsVUFBVSxFQUFFLE9BQWI7QUFBc0JDLE1BQUFBLEtBQUssRUFBRTtBQUE3QixLQUZvQixFQUdwQjtBQUFDRCxNQUFBQSxVQUFVLEVBQUUsT0FBYjtBQUFzQkMsTUFBQUEsS0FBSyxFQUFFO0FBQTdCLEtBSG9CLEVBSXBCO0FBQUNELE1BQUFBLFVBQVUsRUFBRSxPQUFiO0FBQXNCQyxNQUFBQSxLQUFLLEVBQUU7QUFBN0IsS0FKb0IsRUFLcEI7QUFBQ0QsTUFBQUEsVUFBVSxFQUFFLE9BQWI7QUFBc0JDLE1BQUFBLEtBQUssRUFBRTtBQUE3QixLQUxvQixDQUF0QjtBQVFBLFdBQU9DLE9BQU8sQ0FBQ0MsR0FBUixDQUFZSixNQUFNLENBQUNLLEdBQVAsQ0FBVyxVQUFDQyxHQUFELEVBQVM7QUFDckMsVUFBTUMsR0FBVyxvQkFBYWIsS0FBYixDQUFqQjtBQUNBLFVBQU1jLE9BQWlCLE9BQUdDLGFBQUgscUJBQTJCSCxHQUFHLENBQUNMLFVBQS9CLEVBQThDSyxHQUFHLENBQUNKLEtBQWxELEVBQTRESyxHQUE1RCxDQUF2QjtBQUNBLGFBQU8sa0JBQU1ULFFBQU4sRUFBZ0JKLEtBQWhCLENBQXNCYyxPQUF0QixFQUErQkUsSUFBL0IsQ0FBb0MsVUFBQ0MsTUFBRDtBQUFBLGVBQXlCQSxNQUFNLENBQUNQLEdBQVAsRUFBekI7QUFBQSxPQUFwQyxDQUFQO0FBQ0QsS0FKa0IsQ0FBWixFQUtKTSxJQUxJLENBS0MsVUFBQ0UsT0FBRCxFQUFhO0FBQ2pCLFVBQU1DLElBQUksR0FBRyx3QkFBTyx5QkFBUUQsT0FBUixDQUFQLEVBQXlCLE1BQXpCLENBQWI7QUFFQSxhQUFPQyxJQUFJLENBQUNSLEdBQUwsQ0FBUyxVQUFDUyxJQUFELEVBQW9CO0FBQUEsWUFDdEJDLE1BRHNCLEdBQ0lELElBREosQ0FDM0JFLEdBRDJCO0FBQUEsWUFDUkMsUUFEUSxHQUNJSCxJQURKLENBQ2RJLElBRGM7QUFFbEMsWUFBTUMsZ0JBQTBCLEdBQUdKLE1BQU0sQ0FBQ0ssS0FBUCxDQUFhLEdBQWIsQ0FBbkM7QUFDQSxZQUFNbkIsVUFBa0IsR0FBR2tCLGdCQUFnQixDQUFDLENBQUQsQ0FBM0M7QUFDQSxZQUFNRCxJQUFZLEdBQUdqQixVQUFVLEtBQUssT0FBZixHQUF5QiwyQkFBZWEsSUFBZixDQUF6QixHQUFnREcsUUFBckU7QUFFQSwrQ0FBV0gsSUFBWDtBQUFpQkksVUFBQUEsSUFBSSxFQUFKQTtBQUFqQjtBQUNELE9BUE0sQ0FBUDtBQVFELEtBaEJJLENBQVA7QUFpQkQ7O0FBRUQsTUFBTUcsS0FBb0IsR0FBRyxxQkFBUzFCLElBQVQsRUFBZUMsRUFBZixDQUE3QjtBQUNBLE1BQU0wQixNQUFjLHlEQUNPNUIsS0FEUCx5QkFFWjJCLEtBQUssQ0FBQ1osR0FGTSx1QkFBcEI7QUFLQSxTQUFPLGtCQUFNWCxRQUFOLEVBQWdCSixLQUFoQixDQUFzQjRCLE1BQXRCLEVBQ0paLElBREksQ0FDQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQ1AsR0FBUCxFQUF6QjtBQUFBLEdBREQsRUFFSk0sSUFGSSxDQUVDO0FBQUEsUUFBQ0csSUFBRCx1RUFBb0IsRUFBcEI7QUFBQSxXQUEyQkEsSUFBSSxDQUFDUixHQUFMLENBQVMsWUFBZTtBQUFBLFVBQWRTLElBQWMsdUVBQVAsRUFBTztBQUFBLFVBQzNDQyxNQUQyQyxHQUNqQkQsSUFEaUIsQ0FDaERFLEdBRGdEO0FBQUEsVUFDN0JDLFFBRDZCLEdBQ2pCSCxJQURpQixDQUNuQ0ksSUFEbUM7QUFFdkQsVUFBTUMsZ0JBQTBCLEdBQUdKLE1BQU0sQ0FBQ0ssS0FBUCxDQUFhLEdBQWIsQ0FBbkM7QUFDQSxVQUFNbkIsVUFBa0IsR0FBR2tCLGdCQUFnQixDQUFDLENBQUQsQ0FBM0M7QUFDQSxVQUFNRCxJQUFZLEdBQUdqQixVQUFVLEtBQUssT0FBZixHQUF5QiwyQkFBZWEsSUFBZixDQUF6QixHQUFnREcsUUFBckU7QUFFQSw2Q0FBV0gsSUFBWDtBQUFpQkksUUFBQUEsSUFBSSxFQUFKQTtBQUFqQjtBQUNELEtBUGdDLENBQTNCO0FBQUEsR0FGRCxXQVVFLFVBQUNLLEtBQUQ7QUFBQSxXQUFrQix5QkFBYTtBQUNwQzFCLE1BQUFBLE1BQU0sRUFBTkEsTUFEb0M7QUFFcEMyQixNQUFBQSxRQUFRLEVBQUVqQyxhQUYwQjtBQUdwQ2tDLE1BQUFBLEtBQUssRUFBRSxVQUg2QjtBQUlwQ0MsTUFBQUEsS0FBSyxFQUFFSCxLQUFLLENBQUNJO0FBSnVCLEtBQWIsRUFLdEJsQyxPQUxzQixFQUtiaUIsSUFMYSxDQUtSO0FBQUEsYUFBTSxJQUFOO0FBQUEsS0FMUSxDQUFsQjtBQUFBLEdBVkYsQ0FBUDtBQWdCRCxDQXZETSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2N1cnNvcic7XG5pbXBvcnQgZmxhdHRlbiBmcm9tICdsb2Rhc2gvZmxhdHRlbic7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xuXG5pbXBvcnQge0FyYW5nb0RCTGltaXR9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQge1VzZXJUeXBlfSBmcm9tICcuLi90eXBlcy91c2Vycyc7XG5pbXBvcnQge2dldExpbWl0LCBsb2dFeGNlcHRpb24sIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2dldERpc3BsYXlOYW1lfSBmcm9tICcuL3VzZXJzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3NlYXJjaCc7XG5cbmV4cG9ydCBjb25zdCBnZXRTZWFyY2hMaXN0ID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHF1ZXJ5OiBzdHJpbmcsIGZyb206IG51bWJlciwgdG86IG51bWJlcik6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRMaXN0JztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzU3RyaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICBpZihpc1N0cmluZykge1xuICAgIGNvbnN0IGZpZWxkczogYW55W10gPSBbXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdmaXJzdCd9LFxuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAnbGFzdCd9LFxuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAnZW1haWwnfSxcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ3VzZXJuYW1lJ30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICduYW1lJ31cbiAgICBdO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGZpZWxkcy5tYXAoKG9iaikgPT4ge1xuICAgICAgY29uc3QgcXJ5OiBzdHJpbmcgPSBgcHJlZml4OiR7cXVlcnl9YDtcbiAgICAgIGNvbnN0IHVzZXJRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB1IElOIEZVTExURVhUKCR7b2JqLmNvbGxlY3Rpb259LCAke29iai5maWVsZH0sICR7cXJ5fSwgNTApIFJFVFVSTiB1YDtcbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkodXNlclFyeSkudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKTtcbiAgICB9KSlcbiAgICAgIC50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB1bmlxQnkoZmxhdHRlbihyZXN1bHRzKSwgJ19rZXknKTtcblxuICAgICAgICByZXR1cm4gbGlzdC5tYXAoKGl0ZW06IFVzZXJUeXBlKSA9PiB7XG4gICAgICAgICAgY29uc3Qge19pZDogaXRlbUlkLCBuYW1lOiBpdGVtTmFtZX0gPSBpdGVtO1xuICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb25JZExpc3Q6IHN0cmluZ1tdID0gaXRlbUlkLnNwbGl0KCcvJyk7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbjogc3RyaW5nID0gY29sbGVjdGlvbklkTGlzdFswXTtcbiAgICAgICAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSBjb2xsZWN0aW9uID09PSAndXNlcnMnID8gZ2V0RGlzcGxheU5hbWUoaXRlbSkgOiBpdGVtTmFtZTtcblxuICAgICAgICAgIHJldHVybiB7Li4uaXRlbSwgbmFtZX07XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICAgICAgRklMVEVSIHUucGhvbmUgPT0gXCIke3F1ZXJ5fVwiXG4gICAgICAgICR7bGltaXQuYXFsfVxuICAgICAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigobGlzdDogVXNlclR5cGVbXSA9IFtdKSA9PiBsaXN0Lm1hcCgoaXRlbSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCB7X2lkOiBpdGVtSWQsIG5hbWU6IGl0ZW1OYW1lfSA9IGl0ZW07XG4gICAgICBjb25zdCBjb2xsZWN0aW9uSWRMaXN0OiBzdHJpbmdbXSA9IGl0ZW1JZC5zcGxpdCgnLycpO1xuICAgICAgY29uc3QgY29sbGVjdGlvbjogc3RyaW5nID0gY29sbGVjdGlvbklkTGlzdFswXTtcbiAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGNvbGxlY3Rpb24gPT09ICd1c2VycycgPyBnZXREaXNwbGF5TmFtZShpdGVtKSA6IGl0ZW1OYW1lO1xuXG4gICAgICByZXR1cm4gey4uLml0ZW0sIG5hbWV9O1xuICAgIH0pKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJyxcbiAgICAgIHZhbHVlOiBlcnJvci5tZXNzYWdlXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuIl19
|
package/lib/data/sms.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.object.to-string");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.promise");
|
|
6
|
+
|
|
3
7
|
Object.defineProperty(exports, "__esModule", {
|
|
4
8
|
value: true
|
|
5
9
|
});
|
|
@@ -76,4 +80,4 @@ var sendSmsTemplate = function sendSmsTemplate(templateName, smsParams) {
|
|
|
76
80
|
};
|
|
77
81
|
|
|
78
82
|
exports.sendSmsTemplate = sendSmsTemplate;
|
|
79
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3Ntcy50cyJdLCJuYW1lcyI6WyJzZW5kU21zIiwicGFyYW1zIiwiYXBwIiwiY29udGVudCIsInVzZXIiLCJjb3VudHJ5IiwicGhvbmUiLCJ0ZW1wbGF0ZUNvbnRlbnQiLCJ0d2lsaW8iLCJDb25maWciLCJnZXQiLCJjZmciLCJib2R5IiwiZnJvbSIsInRvIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZW5kTWVzc2FnZSIsImVycm9yIiwiZGF0YSIsIkVycm9yIiwiZXJyb3JfbWVzc2FnZSIsInNlbmRTbXNUZW1wbGF0ZSIsInRlbXBsYXRlTmFtZSIsInNtc1BhcmFtcyIsInZhcnMiLCJmcyIsInJlYWRGaWxlU3luYyIsInRleHQiLCJ0aGVuIiwicmVzIiwic3RhdHVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUlBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOzs7O0FBVkE7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUVBO0FBQ08sSUFBTUEsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFnQztBQUFBLG9CQUtqREEsTUFMaUQsQ0FFbkRDLEdBRm1EO0FBQUEsTUFFbkRBLEdBRm1ELDRCQUU3QyxFQUY2QztBQUFBLE1BR25EQyxPQUhtRCxHQUtqREYsTUFMaUQsQ0FHbkRFLE9BSG1EO0FBQUEscUJBS2pERixNQUxpRCxDQUluREcsSUFKbUQ7QUFBQSxNQUluREEsSUFKbUQsNkJBSTVDLEVBSjRDO0FBT3JELE1BQU1DLE9BQU8sR0FBR0QsSUFBSSxDQUFDQyxPQUFMLElBQWdCLElBQWhDO0FBQ0EsTUFBTUMsS0FBSyxHQUFHLHVCQUFXRixJQUFJLENBQUNFLEtBQWhCLEVBQXVCRCxPQUF2QixDQUFkO0FBQ0EsTUFBTUUsZUFBdUIsR0FBRyx3QkFBWUwsR0FBWixFQUFpQkMsT0FBakIsQ0FBaEM7QUFFQSxNQUFNSyxNQUFXLEdBQUcsd0JBQVVDLGVBQU9DLEdBQVAsQ0FBVyxZQUFYLENBQVYsRUFBb0NELGVBQU9DLEdBQVAsQ0FBVyxjQUFYLENBQXBDLENBQXBCO0FBQ0EsTUFBTUMsR0FBc0IsR0FBRztBQUM3QkMsSUFBQUEsSUFBSSxFQUFFTCxlQUR1QjtBQUU3Qk0sSUFBQUEsSUFBSSxFQUFFSixlQUFPQyxHQUFQLENBQVcsZUFBWCxDQUZ1QjtBQUc3QkksSUFBQUEsRUFBRSxFQUFFUjtBQUh5QixHQUEvQjtBQU1BLFNBQU8sSUFBSVMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUN0Q1QsSUFBQUEsTUFBTSxDQUFDVSxXQUFQLENBQW1CUCxHQUFuQixFQUF3QixVQUFDUSxLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDdkMsVUFBR0QsS0FBSCxFQUFVO0FBQ1JGLFFBQUFBLE1BQU0sQ0FBQyxJQUFJSSxLQUFKLENBQVVGLEtBQUssQ0FBQ0csYUFBaEIsQ0FBRCxDQUFOO0FBQ0QsT0FGRCxNQUVPO0FBQ0xOLFFBQUFBLE9BQU8sQ0FBQ0ksSUFBRCxDQUFQO0FBQ0Q7QUFDRixLQU5EO0FBT0QsR0FSTSxDQUFQO0FBU0QsQ0EzQk07Ozs7QUE2QkEsSUFBTUcsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxZQUFELEVBQXVCQyxTQUF2QixFQUFzRTtBQUFBLE1BQzVGdkIsR0FENEYsR0FDekV1QixTQUR5RSxDQUM1RnZCLEdBRDRGO0FBQUEsTUFDdkZFLElBRHVGLEdBQ3pFcUIsU0FEeUUsQ0FDdkZyQixJQUR1RjtBQUFBLE1BQ2pGc0IsSUFEaUYsR0FDekVELFNBRHlFLENBQ2pGQyxJQURpRjs7QUFFbkcsTUFBSTtBQUNGLFFBQU1OLElBQUksR0FBR08sZUFBR0MsWUFBSCwyQkFBbUNKLFlBQW5DLFdBQXVELE1BQXZELENBQWI7O0FBQ0EsUUFBTUssSUFBSSxHQUFHLHdCQUFZM0IsR0FBWixFQUFpQmtCLElBQWpCLEVBQXVCTSxJQUF2QixDQUFiO0FBQ0EsUUFBTXpCLE1BQU0sR0FBRztBQUFDQyxNQUFBQSxHQUFHLEVBQUhBLEdBQUQ7QUFBTTJCLE1BQUFBLElBQUksRUFBSkEsSUFBTjtBQUFZekIsTUFBQUEsSUFBSSxFQUFKQTtBQUFaLEtBQWY7QUFFQSxXQUFPSixPQUFPLENBQUNDLE1BQUQsQ0FBUCxDQUNKNkIsSUFESSxDQUNDLFVBQUNDLEdBQUQ7QUFBQSxhQUFTQSxHQUFHLENBQUNDLE1BQUosS0FBZSxRQUF4QjtBQUFBLEtBREQsV0FFRSxVQUFDYixLQUFELEVBQWtCO0FBQ3ZCLFlBQU1BLEtBQU47QUFDRCxLQUpJLENBQVA7QUFLRCxHQVZELENBVUUsT0FBTUEsS0FBTixFQUFhO0FBQ2IsV0FBT0osT0FBTyxDQUFDRSxNQUFSLENBQWVFLEtBQWYsQ0FBUDtBQUNEO0FBQ0YsQ0FmTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3BhcnNlUGhvbmV9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHR3aWxpb1NkayBmcm9tICd0d2lsaW8nO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7U01TUGFyYW1zVHlwZSwgVHdpbGlvT3B0aW9uc1R5cGV9IGZyb20gJy4uL3R5cGVzL25vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHthcHBUZW1wbGF0ZX0gZnJvbSAnLi9lbWFpbCc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdzbXMnO1xuXG4vLyBUd2lsaW9cbmV4cG9ydCBjb25zdCBzZW5kU21zID0gKHBhcmFtczogU01TUGFyYW1zVHlwZSk6IGFueSA9PiB7XG4gIGNvbnN0IHtcbiAgICBhcHAgPSB7fSxcbiAgICBjb250ZW50LFxuICAgIHVzZXIgPSB7fVxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGNvdW50cnkgPSB1c2VyLmNvdW50cnkgfHwgJ1VTJztcbiAgY29uc3QgcGhvbmUgPSBwYXJzZVBob25lKHVzZXIucGhvbmUsIGNvdW50cnkpO1xuICBjb25zdCB0ZW1wbGF0ZUNvbnRlbnQ6IHN0cmluZyA9IGFwcFRlbXBsYXRlKGFwcCwgY29udGVudCk7XG5cbiAgY29uc3QgdHdpbGlvOiBhbnkgPSB0d2lsaW9TZGsoQ29uZmlnLmdldCgndHdpbGlvLnNpZCcpLCBDb25maWcuZ2V0KCd0d2lsaW8udG9rZW4nKSk7XG4gIGNvbnN0IGNmZzogVHdpbGlvT3B0aW9uc1R5cGUgPSB7XG4gICAgYm9keTogdGVtcGxhdGVDb250ZW50LFxuICAgIGZyb206IENvbmZpZy5nZXQoJ3R3aWxpby5udW1iZXInKSxcbiAgICB0bzogcGhvbmVcbiAgfTtcblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHR3aWxpby5zZW5kTWVzc2FnZShjZmcsIChlcnJvciwgZGF0YSkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihlcnJvci5lcnJvcl9tZXNzYWdlKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKGRhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZW5kU21zVGVtcGxhdGUgPSAodGVtcGxhdGVOYW1lOiBzdHJpbmcsIHNtc1BhcmFtczogU01TUGFyYW1zVHlwZSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCB7YXBwLCB1c2VyLCB2YXJzfSA9IHNtc1BhcmFtcztcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gZnMucmVhZEZpbGVTeW5jKGAuL3RlbXBsYXRlcy9zbXMvJHt0ZW1wbGF0ZU5hbWV9LnR4dGAsICd1dGY4Jyk7XG4gICAgY29uc3QgdGV4dCA9IGFwcFRlbXBsYXRlKGFwcCwgZGF0YSwgdmFycyk7XG4gICAgY29uc3QgcGFyYW1zID0ge2FwcCwgdGV4dCwgdXNlcn07XG5cbiAgICByZXR1cm4gc2VuZFNtcyhwYXJhbXMpXG4gICAgICAudGhlbigocmVzKSA9PiByZXMuc3RhdHVzID09PSAncXVldWVkJylcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICB9XG59O1xuIl19
|
|
@@ -4,4 +4,4 @@ export declare const getPlanList: (context: ApiContext, from?: number, to?: numb
|
|
|
4
4
|
export declare const getSubscription: (context: ApiContext) => Promise<PaymentSubscription>;
|
|
5
5
|
export declare const addPlan: (context: ApiContext, item: PaymentPlan) => Promise<PaymentPlan>;
|
|
6
6
|
export declare const addSubscription: (context: ApiContext, item: any) => Promise<PaymentSubscription>;
|
|
7
|
-
export declare const deleteSubscription: (context: ApiContext
|
|
7
|
+
export declare const deleteSubscription: (context: ApiContext) => Promise<boolean>;
|