@nlabs/reaktor 0.1.11 → 0.1.13
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 +6 -7
- package/lib/data/conversations.js +9 -9
- package/lib/data/dynamodb.js +8 -8
- package/lib/data/email.js +9 -9
- package/lib/data/files.js +10 -10
- package/lib/data/groups.js +14 -14
- package/lib/data/images.js +24 -24
- package/lib/data/ios.js +5 -5
- package/lib/data/locations.js +8 -8
- package/lib/data/messages.js +12 -12
- package/lib/data/payments.js +17 -17
- package/lib/data/posts.js +22 -22
- package/lib/data/reactions.js +7 -7
- package/lib/data/s3.js +8 -8
- package/lib/data/search.js +4 -4
- package/lib/data/sms.js +5 -5
- package/lib/data/subscription.js +12 -12
- package/lib/data/tags.js +18 -18
- package/lib/data/users.js +17 -17
- package/lib/utils/arangodb.d.ts +0 -1
- package/lib/utils/arangodb.js +8 -17
- package/lib/utils/auth.d.ts +0 -2
- package/lib/utils/auth.js +5 -54
- package/lib/utils/graphql.js +3 -3
- package/lib/utils/objects.js +5 -5
- package/lib/utils/redis.js +1 -1
- package/package.json +14 -14
package/lib/data/users.js
CHANGED
|
@@ -15,9 +15,9 @@ var stripe = _interopRequireWildcard(require("stripe"));
|
|
|
15
15
|
|
|
16
16
|
var _utils2 = require("../utils");
|
|
17
17
|
|
|
18
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj
|
|
18
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
|
|
19
19
|
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
21
|
|
|
22
22
|
function _templateObject8() {
|
|
23
23
|
var data = _taggedTemplateLiteral(["FOR u, r IN INBOUND ", " hasRelation\n FILTER r._from == ", "\n LIMIT 1\n RETURN r"]);
|
|
@@ -60,7 +60,7 @@ function _templateObject5() {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
function _templateObject4() {
|
|
63
|
-
var data = _taggedTemplateLiteral(["FOR u IN users\n
|
|
63
|
+
var data = _taggedTemplateLiteral(["FOR u IN users\n FILTER u._key == ", "\n LIMIT 1\n RETURN u"]);
|
|
64
64
|
|
|
65
65
|
_templateObject4 = function _templateObject4() {
|
|
66
66
|
return data;
|
|
@@ -155,7 +155,7 @@ var deleteUser = function deleteUser(context, userId) {
|
|
|
155
155
|
}).then(function () {
|
|
156
156
|
return user;
|
|
157
157
|
});
|
|
158
|
-
})
|
|
158
|
+
})["catch"](function (error) {
|
|
159
159
|
throw error;
|
|
160
160
|
});
|
|
161
161
|
};
|
|
@@ -185,7 +185,7 @@ var deactivateUser = function deactivateUser(context, userId) {
|
|
|
185
185
|
var aqlQry = (0, _arangojs.aql)(_templateObject3(), userId, updated);
|
|
186
186
|
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
187
187
|
return cursor.next();
|
|
188
|
-
})
|
|
188
|
+
})["catch"](function (error) {
|
|
189
189
|
throw error;
|
|
190
190
|
});
|
|
191
191
|
};
|
|
@@ -203,7 +203,7 @@ var getSessionUser = function getSessionUser(context) {
|
|
|
203
203
|
}).then(function () {
|
|
204
204
|
var user = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
205
205
|
return user;
|
|
206
|
-
})
|
|
206
|
+
})["catch"](function (error) {
|
|
207
207
|
return (0, _utils2.logError)({
|
|
208
208
|
action: action,
|
|
209
209
|
category: eventCategory,
|
|
@@ -225,7 +225,7 @@ var getUser = function getUser(context, userId) {
|
|
|
225
225
|
}).then(function () {
|
|
226
226
|
var user = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
227
227
|
return user;
|
|
228
|
-
})
|
|
228
|
+
})["catch"](function (error) {
|
|
229
229
|
return (0, _utils2.logError)({
|
|
230
230
|
action: action,
|
|
231
231
|
category: eventCategory,
|
|
@@ -246,7 +246,7 @@ var getUserList = function getUserList(context) {
|
|
|
246
246
|
var aqlQry = "FOR u IN users\n ".concat(limit.aql, "\n SORT u.username\n RETURN u");
|
|
247
247
|
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
248
248
|
return cursor.all();
|
|
249
|
-
})
|
|
249
|
+
})["catch"](function (error) {
|
|
250
250
|
return (0, _utils2.logError)({
|
|
251
251
|
action: action,
|
|
252
252
|
category: eventCategory,
|
|
@@ -285,10 +285,10 @@ var addUserRelation = function addUserRelation(context, userId, value) {
|
|
|
285
285
|
var edgeCollection = db.edgeCollection('hasRelation');
|
|
286
286
|
return edgeCollection.save(edge, "users/".concat(sessionId), "users/".concat(formatUserId)).then(function () {
|
|
287
287
|
return edgeCollection.edge(edgeId);
|
|
288
|
-
})
|
|
288
|
+
})["catch"](function (error) {
|
|
289
289
|
throw error;
|
|
290
290
|
});
|
|
291
|
-
})
|
|
291
|
+
})["catch"](function (error) {
|
|
292
292
|
return (0, _utils2.logError)({
|
|
293
293
|
action: action,
|
|
294
294
|
category: eventCategory,
|
|
@@ -313,7 +313,7 @@ var deleteUserRelation = function deleteUserRelation(context, userId, value) {
|
|
|
313
313
|
}).then(function () {
|
|
314
314
|
var relation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
315
315
|
return relation;
|
|
316
|
-
})
|
|
316
|
+
})["catch"](function (error) {
|
|
317
317
|
return (0, _utils2.logError)({
|
|
318
318
|
action: action,
|
|
319
319
|
category: eventCategory,
|
|
@@ -335,7 +335,7 @@ var getUsersByRelations = function getUsersByRelations(context, userId, type, fr
|
|
|
335
335
|
var aqlQry = "FOR u, r IN INBOUND \"".concat("users/".concat(formatUserId), "\" hasRelation\n FILTER r.type == \"", formatType, "\"\n ").concat(limit.aql, "\n RETURN u");
|
|
336
336
|
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
337
337
|
return cursor.all();
|
|
338
|
-
})
|
|
338
|
+
})["catch"](function (error) {
|
|
339
339
|
return (0, _utils2.logError)({
|
|
340
340
|
action: action,
|
|
341
341
|
category: eventCategory,
|
|
@@ -356,7 +356,7 @@ var getRelationsByUser = function getRelationsByUser(context, userId) {
|
|
|
356
356
|
var aqlQry = (0, _arangojs.aql)(_templateObject7(), "users/".concat(formatUserId), "users/".concat(sessionId));
|
|
357
357
|
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
358
358
|
return cursor.all();
|
|
359
|
-
})
|
|
359
|
+
})["catch"](function (error) {
|
|
360
360
|
return (0, _utils2.logError)({
|
|
361
361
|
action: action,
|
|
362
362
|
category: eventCategory,
|
|
@@ -377,7 +377,7 @@ var getRelationship = function getRelationship(context, userId) {
|
|
|
377
377
|
var aqlQry = (0, _arangojs.aql)(_templateObject8(), "users/".concat(formatUserId), "users/".concat(sessionId));
|
|
378
378
|
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
379
379
|
return cursor.next();
|
|
380
|
-
})
|
|
380
|
+
})["catch"](function (error) {
|
|
381
381
|
return (0, _utils2.logError)({
|
|
382
382
|
action: action,
|
|
383
383
|
category: eventCategory,
|
|
@@ -400,11 +400,11 @@ var getDisplayName = function getDisplayName() {
|
|
|
400
400
|
username = _user$username === void 0 ? '' : _user$username;
|
|
401
401
|
var fullname = [first, last].join(' ').trim();
|
|
402
402
|
|
|
403
|
-
if (!(0, _isEmpty
|
|
403
|
+
if (!(0, _isEmpty["default"])(name)) {
|
|
404
404
|
return name;
|
|
405
405
|
} else if (fullname !== '') {
|
|
406
406
|
return fullname;
|
|
407
|
-
} else if (!(0, _isEmpty
|
|
407
|
+
} else if (!(0, _isEmpty["default"])(username)) {
|
|
408
408
|
return username;
|
|
409
409
|
}
|
|
410
410
|
|
|
@@ -412,4 +412,4 @@ var getDisplayName = function getDisplayName() {
|
|
|
412
412
|
};
|
|
413
413
|
|
|
414
414
|
exports.getDisplayName = getDisplayName;
|
|
415
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3VzZXJzLnRzIl0sIm5hbWVzIjpbImV2ZW50Q2F0ZWdvcnkiLCJhZGRVc2VyIiwiY29udGV4dCIsInVzZXIiLCJkYXRhYmFzZSIsImVtYWlsIiwicGhvbmUiLCJzdWIiLCJ1c2VybmFtZSIsImluc2VydCIsIl9rZXkiLCJhZGRlZCIsIkRhdGUiLCJub3ciLCJ1bmRlZmluZWQiLCJtb2RpZmllZCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsIm5leHQiLCJkZWxldGVVc2VyIiwidXNlcklkIiwiYWN0aW9uIiwic2Vzc2lvbklkIiwic2Vzc2lvblR5cGUiLCJ1c2VyVHlwZSIsImlzQWRtaW4iLCJjYXRlZ29yeSIsImxhYmVsIiwidmFsdWUiLCJzdHJpcGUiLCJjdXN0b21lcnMiLCJkZWwiLCJzdHJpcGVDdXN0b21lcklkIiwiYWNjb3VudHMiLCJzdHJpcGVBY2NvdW50SWQiLCJjYXRjaCIsImVycm9yIiwiZGVhY3RpdmF0ZVVzZXIiLCJ1cGRhdGVkIiwiZ2V0U2Vzc2lvblVzZXIiLCJnZXRVc2VyIiwiZm9ybWF0VXNlcklkIiwiZ2V0VXNlckxpc3QiLCJmcm9tIiwidG8iLCJsaW1pdCIsImFsbCIsImFkZFVzZXJSZWxhdGlvbiIsImZvcm1hdFZhbHVlIiwiZGIiLCJyZWxhdGlvbiIsImVkZ2VJZCIsImVkZ2UiLCJlZGdlQ29sbGVjdGlvbiIsInNhdmUiLCJkZWxldGVVc2VyUmVsYXRpb24iLCJnZXRVc2Vyc0J5UmVsYXRpb25zIiwidHlwZSIsImZvcm1hdFR5cGUiLCJnZXRSZWxhdGlvbnNCeVVzZXIiLCJnZXRSZWxhdGlvbnNoaXAiLCJnZXREaXNwbGF5TmFtZSIsImZpcnN0IiwibGFzdCIsIm5hbWUiLCJmdWxsbmFtZSIsImpvaW4iLCJ0cmltIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBSUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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LEdBRkYsQ0FBUDtBQU9ELENBaEJNOzs7O0FBa0JBLElBQU02QyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLEdBQWlDO0FBQUEsTUFBaEM3RCxJQUFnQyx1RUFBZixFQUFlO0FBQUEsTUFDdEQ4RCxLQURzRCxHQUNiOUQsSUFEYSxDQUN0RDhELEtBRHNEO0FBQUEsTUFDL0NDLElBRCtDLEdBQ2IvRCxJQURhLENBQy9DK0QsSUFEK0M7QUFBQSxtQkFDYi9ELElBRGEsQ0FDekNnRSxJQUR5QztBQUFBLE1BQ3pDQSxJQUR5QywyQkFDbEMsRUFEa0M7QUFBQSx1QkFDYmhFLElBRGEsQ0FDOUJLLFFBRDhCO0FBQUEsTUFDOUJBLFFBRDhCLCtCQUNuQixFQURtQjtBQUU3RCxNQUFNNEQsUUFBZ0IsR0FBSSxDQUFDSCxLQUFELEVBQVFDLElBQVIsQ0FBRCxDQUFnQkcsSUFBaEIsQ0FBcUIsR0FBckIsRUFBMEJDLElBQTFCLEVBQXpCOztBQUVBLE1BQUcsQ0FBQyxzQkFBUUgsSUFBUixDQUFKLEVBQW1CO0FBQ2pCLFdBQU9BLElBQVA7QUFDRCxHQUZELE1BRU8sSUFBR0MsUUFBUSxLQUFLLEVBQWhCLEVBQW9CO0FBQ3pCLFdBQU9BLFFBQVA7QUFDRCxHQUZNLE1BRUEsSUFBRyxDQUFDLHNCQUFRNUQsUUFBUixDQUFKLEVBQXVCO0FBQzVCLFdBQU9BLFFBQVA7QUFDRDs7QUFFRCxTQUFPLFNBQVA7QUFDRCxDQWJNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUVtYWlsLCBwYXJzZUlkLCBwYXJzZVVzZXJuYW1lLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgRGF0YWJhc2UsIEVkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2FxbC1xdWVyeSc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2N1cnNvcic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgKiBhcyBzdHJpcGUgZnJvbSAnc3RyaXBlJztcblxuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7VXNlclJlbGF0aW9uVHlwZSwgVXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzJztcbmltcG9ydCB7Z2V0TGltaXQsIGxvZ0Vycm9yLCBsb2dFeGNlcHRpb24sIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICd1c2Vycyc7XG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXI6IFVzZXJUeXBlKTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3Qge2VtYWlsLCBwaG9uZSwgc3ViLCB1c2VybmFtZX0gPSB1c2VyO1xuXG4gIC8vIEFkZCBuZXcgdXNlciBwcm9wZXJ0aWVzXG4gIGNvbnN0IGluc2VydDogVXNlclR5cGUgPSB7XG4gICAgX2tleTogY3JlYXRlSGFzaChzdWIsIG51bGwpLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpLFxuICAgIGVtYWlsOiBlbWFpbCAhPT0gdW5kZWZpbmVkID8gcGFyc2VFbWFpbChlbWFpbCkgOiB1bmRlZmluZWQsXG4gICAgbW9kaWZpZWQ6IERhdGUubm93KCksXG4gICAgcGhvbmU6IHBob25lICE9PSB1bmRlZmluZWQgPyBwYXJzZVZhckNoYXIocGhvbmUsIDE1KSA6IHVuZGVmaW5lZCxcbiAgICBzdWI6IHBhcnNlVmFyQ2hhcihzdWIsIDMyKSxcbiAgICB1c2VybmFtZTogcGFyc2VVc2VybmFtZSh1c2VybmFtZSlcbiAgfTtcblxuICAvLyBBZGQgbmV3IHVzZXIgaW4gQXJhbmdvREJcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHVzZXJzIFJFVFVSTiBORVdgO1xuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSkudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZCwgdXNlclR5cGU6IHNlc3Npb25UeXBlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzQWRtaW46IGJvb2xlYW4gPSBzZXNzaW9uVHlwZSA+IDI7XG5cbiAgaWYoIWlzQWRtaW4gJiYgKHNlc3Npb25JZCAhPT0gdXNlcklkKSkge1xuICAgIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSBJTiB1c2Vyc1xuICAgICAgRklMVEVSIHUuX2tleSA9PSAke3VzZXJJZH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFTU9WRSB1IElOIHVzZXJzXG4gICAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigodXNlcjogVXNlclR5cGUgPSB7fSkgPT4gc3RyaXBlLmN1c3RvbWVycy5kZWwodXNlci5zdHJpcGVDdXN0b21lcklkKVxuICAgICAgLnRoZW4oKCkgPT4gc3RyaXBlLmFjY291bnRzLmRlbCh1c2VyLnN0cmlwZUFjY291bnRJZCkpXG4gICAgICAudGhlbigoKSA9PiB1c2VyKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVhY3RpdmF0ZVVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZSc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWQsIHVzZXJUeXBlOiBzZXNzaW9uVHlwZX0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluOiBib29sZWFuID0gc2Vzc2lvblR5cGUgPiAyO1xuXG4gIGlmKCFpc0FkbWluICYmIChzZXNzaW9uSWQgIT09IHVzZXJJZCkpIHtcbiAgICBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWQ6IFVzZXJUeXBlID0ge1xuICAgIHVzZXJUeXBlOiAwXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFICR7dXNlcklkfSBXSVRIICR7dXBkYXRlZH0gSU4gdXNlcnMgTElNSVQgMSBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2Vzc2lvblVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0U2Vzc2lvblVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgdS5fa2V5ID09ICR7c2Vzc2lvbklkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIgPSB7fSkgPT4gdXNlcilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgdS5fa2V5ID09ICR7Zm9ybWF0VXNlcklkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIgPSB7fSkgPT4gdXNlcilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckxpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgZnJvbTogbnVtYmVyID0gMCwgdG86IG51bWJlciA9IDE1KTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuXG4gIC8vIEdldCBkYXRhIGZyb20gZGF0YWJhc2VcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICAke2xpbWl0LmFxbH1cbiAgICBTT1JUIHUudXNlcm5hbWVcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVXNlclJlbGF0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZCwgdmFsdWUpOiBQcm9taXNlPFVzZXJSZWxhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkUmVsYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRWYWx1ZTogc3RyaW5nID0gcGFyc2VDaGFyKHZhbHVlLCAzMik7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiByIElOIGhhc1JlbGF0aW9uXG4gICAgRklMVEVSIHIudmFsdWUgPT0gJHtmb3JtYXRWYWx1ZX0gJiYgci5fZnJvbSA9PSAke3Nlc3Npb25JZH0gJiYgci5fdG8gPT0gJHtmb3JtYXRVc2VySWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiByYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChyZWxhdGlvbjogVXNlclJlbGF0aW9uVHlwZSkgPT4ge1xuICAgICAgLy8gSWYgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gdXNlcnMgd2l0aCB0aGUgdmFsdWUgZXhpc3RzLCBqdXN0IHJldHVyblxuICAgICAgaWYocmVsYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHJlbGF0aW9uO1xuICAgICAgfVxuXG4gICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSB0aGUgbmV3IHJlbGF0aW9uc2hpcFxuICAgICAgY29uc3QgZWRnZUlkID0gY3JlYXRlSGFzaChgcmVsYXRpb24tJHtzZXNzaW9uSWR9LSR7Zm9ybWF0VXNlcklkfS0ke2Zvcm1hdFZhbHVlfWApO1xuICAgICAgY29uc3QgZWRnZSA9IHtcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gICAgICB9O1xuICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGIuZWRnZUNvbGxlY3Rpb24oJ2hhc1JlbGF0aW9uJykgYXMgYW55O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCBgdXNlcnMvJHtzZXNzaW9uSWR9YCwgYHVzZXJzLyR7Zm9ybWF0VXNlcklkfWApXG4gICAgICAgIC50aGVuKCgpID0+IGVkZ2VDb2xsZWN0aW9uLmVkZ2UoZWRnZUlkKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVVc2VyUmVsYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJSZWxhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVsYXRpb25zQnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlQ2hhcih2YWx1ZSwgMzIpO1xuICBjb25zdCBhcWxRcnkgPSBgRk9SIHUsIHIgSU4gSU5CT1VORCBcIiR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9XCIgaGFzUmVsYXRpb25cbiAgICBGSUxURVIgci5fZnJvbSA9PSBcIiR7YHVzZXJzLyR7c2Vzc2lvbklkfWB9XCIgJiYgci52YWx1ZSA9PSBcIiR7Zm9ybWF0VmFsdWV9XCJcbiAgICBSRU1PVkUgciBJTiBoYXNSZWxhdGlvblxuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChyZWxhdGlvbiA9IHt9KSA9PiByZWxhdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2Vyc0J5UmVsYXRpb25zID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB1c2VySWQ6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBmcm9tOiBudW1iZXIsXG4gIHRvOiBudW1iZXJcbik6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRVc2Vyc0J5UmVsYXRpb25zJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRUeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIodHlwZSwgMzIpO1xuICBjb25zdCBsaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUsIHIgSU4gSU5CT1VORCBcIiR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9XCIgaGFzUmVsYXRpb25cbiAgICBGSUxURVIgci50eXBlID09IFwiJHtmb3JtYXRUeXBlfVwiXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVsYXRpb25zQnlVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyUmVsYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVsYXRpb25zQnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSwgciBJTiBJTkJPVU5EICR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9IGhhc1JlbGF0aW9uXG4gICAgICBGSUxURVIgci5fZnJvbSA9PSAke2B1c2Vycy8ke3Nlc3Npb25JZH1gfVxuICAgICAgUkVUVVJOIHJgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVsYXRpb25zaGlwID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyUmVsYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlbGF0aW9uc2hpcCc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUsIHIgSU4gSU5CT1VORCAke2B1c2Vycy8ke2Zvcm1hdFVzZXJJZH1gfSBoYXNSZWxhdGlvblxuICAgICAgRklMVEVSIHIuX2Zyb20gPT0gJHtgdXNlcnMvJHtzZXNzaW9uSWR9YH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiByYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREaXNwbGF5TmFtZSA9ICh1c2VyOiBVc2VyVHlwZSA9IHt9KTogc3RyaW5nID0+IHtcbiAgY29uc3Qge2ZpcnN0LCBsYXN0LCBuYW1lID0gJycsIHVzZXJuYW1lID0gJyd9ID0gdXNlcjtcbiAgY29uc3QgZnVsbG5hbWU6IHN0cmluZyA9IChbZmlyc3QsIGxhc3RdKS5qb2luKCcgJykudHJpbSgpO1xuXG4gIGlmKCFpc0VtcHR5KG5hbWUpKSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH0gZWxzZSBpZihmdWxsbmFtZSAhPT0gJycpIHtcbiAgICByZXR1cm4gZnVsbG5hbWU7XG4gIH0gZWxzZSBpZighaXNFbXB0eSh1c2VybmFtZSkpIHtcbiAgICByZXR1cm4gdXNlcm5hbWU7XG4gIH1cblxuICByZXR1cm4gJ1Vua25vd24nO1xufTtcbiJdfQ==
|
|
415
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3VzZXJzLnRzIl0sIm5hbWVzIjpbImV2ZW50Q2F0ZWdvcnkiLCJhZGRVc2VyIiwiY29udGV4dCIsInVzZXIiLCJkYXRhYmFzZSIsImVtYWlsIiwicGhvbmUiLCJzdWIiLCJ1c2VybmFtZSIsImluc2VydCIsIl9rZXkiLCJhZGRlZCIsIkRhdGUiLCJub3ciLCJ1bmRlZmluZWQiLCJtb2RpZmllZCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsIm5leHQiLCJkZWxldGVVc2VyIiwidXNlcklkIiwiYWN0aW9uIiwic2Vzc2lvbklkIiwic2Vzc2lvblR5cGUiLCJ1c2VyVHlwZSIsImlzQWRtaW4iLCJjYXRlZ29yeSIsImxhYmVsIiwidmFsdWUiLCJzdHJpcGUiLCJjdXN0b21lcnMiLCJkZWwiLCJzdHJpcGVDdXN0b21lcklkIiwiYWNjb3VudHMiLCJzdHJpcGVBY2NvdW50SWQiLCJlcnJvciIsImRlYWN0aXZhdGVVc2VyIiwidXBkYXRlZCIsImdldFNlc3Npb25Vc2VyIiwiZ2V0VXNlciIsImZvcm1hdFVzZXJJZCIsImdldFVzZXJMaXN0IiwiZnJvbSIsInRvIiwibGltaXQiLCJhbGwiLCJhZGRVc2VyUmVsYXRpb24iLCJmb3JtYXRWYWx1ZSIsImRiIiwicmVsYXRpb24iLCJlZGdlSWQiLCJlZGdlIiwiZWRnZUNvbGxlY3Rpb24iLCJzYXZlIiwiZGVsZXRlVXNlclJlbGF0aW9uIiwiZ2V0VXNlcnNCeVJlbGF0aW9ucyIsInR5cGUiLCJmb3JtYXRUeXBlIiwiZ2V0UmVsYXRpb25zQnlVc2VyIiwiZ2V0UmVsYXRpb25zaGlwIiwiZ2V0RGlzcGxheU5hbWUiLCJmaXJzdCIsImxhc3QiLCJuYW1lIiwiZnVsbG5hbWUiLCJqb2luIiwidHJpbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBOztBQUNBOztBQUdBOztBQUNBOztBQUlBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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RDZELEtBRHNEO0FBQUEsTUFDL0NDLElBRCtDLEdBQ2I5RCxJQURhLENBQy9DOEQsSUFEK0M7QUFBQSxtQkFDYjlELElBRGEsQ0FDekMrRCxJQUR5QztBQUFBLE1BQ3pDQSxJQUR5QywyQkFDbEMsRUFEa0M7QUFBQSx1QkFDYi9ELElBRGEsQ0FDOUJLLFFBRDhCO0FBQUEsTUFDOUJBLFFBRDhCLCtCQUNuQixFQURtQjtBQUU3RCxNQUFNMkQsUUFBZ0IsR0FBSSxDQUFDSCxLQUFELEVBQVFDLElBQVIsQ0FBRCxDQUFnQkcsSUFBaEIsQ0FBcUIsR0FBckIsRUFBMEJDLElBQTFCLEVBQXpCOztBQUVBLE1BQUcsQ0FBQyx5QkFBUUgsSUFBUixDQUFKLEVBQW1CO0FBQ2pCLFdBQU9BLElBQVA7QUFDRCxHQUZELE1BRU8sSUFBR0MsUUFBUSxLQUFLLEVBQWhCLEVBQW9CO0FBQ3pCLFdBQU9BLFFBQVA7QUFDRCxHQUZNLE1BRUEsSUFBRyxDQUFDLHlCQUFRM0QsUUFBUixDQUFKLEVBQXVCO0FBQzVCLFdBQU9BLFFBQVA7QUFDRDs7QUFFRCxTQUFPLFNBQVA7QUFDRCxDQWJNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUVtYWlsLCBwYXJzZUlkLCBwYXJzZVVzZXJuYW1lLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgRGF0YWJhc2UsIEVkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2FxbC1xdWVyeSc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2N1cnNvcic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgKiBhcyBzdHJpcGUgZnJvbSAnc3RyaXBlJztcblxuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7VXNlclJlbGF0aW9uVHlwZSwgVXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzJztcbmltcG9ydCB7Z2V0TGltaXQsIGxvZ0Vycm9yLCBsb2dFeGNlcHRpb24sIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICd1c2Vycyc7XG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXI6IFVzZXJUeXBlKTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3Qge2VtYWlsLCBwaG9uZSwgc3ViLCB1c2VybmFtZX0gPSB1c2VyO1xuXG4gIC8vIEFkZCBuZXcgdXNlciBwcm9wZXJ0aWVzXG4gIGNvbnN0IGluc2VydDogVXNlclR5cGUgPSB7XG4gICAgX2tleTogY3JlYXRlSGFzaChzdWIsIG51bGwpLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpLFxuICAgIGVtYWlsOiBlbWFpbCAhPT0gdW5kZWZpbmVkID8gcGFyc2VFbWFpbChlbWFpbCkgOiB1bmRlZmluZWQsXG4gICAgbW9kaWZpZWQ6IERhdGUubm93KCksXG4gICAgcGhvbmU6IHBob25lICE9PSB1bmRlZmluZWQgPyBwYXJzZVZhckNoYXIocGhvbmUsIDE1KSA6IHVuZGVmaW5lZCxcbiAgICBzdWI6IHBhcnNlVmFyQ2hhcihzdWIsIDMyKSxcbiAgICB1c2VybmFtZTogcGFyc2VVc2VybmFtZSh1c2VybmFtZSlcbiAgfTtcblxuICAvLyBBZGQgbmV3IHVzZXIgaW4gQXJhbmdvREJcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHVzZXJzIFJFVFVSTiBORVdgO1xuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSkudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZCwgdXNlclR5cGU6IHNlc3Npb25UeXBlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzQWRtaW46IGJvb2xlYW4gPSBzZXNzaW9uVHlwZSA+IDI7XG5cbiAgaWYoIWlzQWRtaW4gJiYgKHNlc3Npb25JZCAhPT0gdXNlcklkKSkge1xuICAgIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSBJTiB1c2Vyc1xuICAgICAgRklMVEVSIHUuX2tleSA9PSAke3VzZXJJZH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFTU9WRSB1IElOIHVzZXJzXG4gICAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigodXNlcjogVXNlclR5cGUgPSB7fSkgPT4gc3RyaXBlLmN1c3RvbWVycy5kZWwodXNlci5zdHJpcGVDdXN0b21lcklkKVxuICAgICAgLnRoZW4oKCkgPT4gc3RyaXBlLmFjY291bnRzLmRlbCh1c2VyLnN0cmlwZUFjY291bnRJZCkpXG4gICAgICAudGhlbigoKSA9PiB1c2VyKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVhY3RpdmF0ZVVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZSc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWQsIHVzZXJUeXBlOiBzZXNzaW9uVHlwZX0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluOiBib29sZWFuID0gc2Vzc2lvblR5cGUgPiAyO1xuXG4gIGlmKCFpc0FkbWluICYmIChzZXNzaW9uSWQgIT09IHVzZXJJZCkpIHtcbiAgICBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWQ6IFVzZXJUeXBlID0ge1xuICAgIHVzZXJUeXBlOiAwXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFICR7dXNlcklkfSBXSVRIICR7dXBkYXRlZH0gSU4gdXNlcnMgTElNSVQgMSBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2Vzc2lvblVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0U2Vzc2lvblVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgRklMVEVSIHUuX2tleSA9PSAke3Nlc3Npb25JZH1cbiAgTElNSVQgMVxuICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIgPSB7fSkgPT4gdXNlcilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgdS5fa2V5ID09ICR7Zm9ybWF0VXNlcklkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIgPSB7fSkgPT4gdXNlcilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckxpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgZnJvbTogbnVtYmVyID0gMCwgdG86IG51bWJlciA9IDE1KTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuXG4gIC8vIEdldCBkYXRhIGZyb20gZGF0YWJhc2VcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICAke2xpbWl0LmFxbH1cbiAgICBTT1JUIHUudXNlcm5hbWVcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVXNlclJlbGF0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZCwgdmFsdWUpOiBQcm9taXNlPFVzZXJSZWxhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkUmVsYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRWYWx1ZTogc3RyaW5nID0gcGFyc2VDaGFyKHZhbHVlLCAzMik7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiByIElOIGhhc1JlbGF0aW9uXG4gICAgRklMVEVSIHIudmFsdWUgPT0gJHtmb3JtYXRWYWx1ZX0gJiYgci5fZnJvbSA9PSAke3Nlc3Npb25JZH0gJiYgci5fdG8gPT0gJHtmb3JtYXRVc2VySWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiByYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChyZWxhdGlvbjogVXNlclJlbGF0aW9uVHlwZSkgPT4ge1xuICAgICAgLy8gSWYgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gdXNlcnMgd2l0aCB0aGUgdmFsdWUgZXhpc3RzLCBqdXN0IHJldHVyblxuICAgICAgaWYocmVsYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHJlbGF0aW9uO1xuICAgICAgfVxuXG4gICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSB0aGUgbmV3IHJlbGF0aW9uc2hpcFxuICAgICAgY29uc3QgZWRnZUlkID0gY3JlYXRlSGFzaChgcmVsYXRpb24tJHtzZXNzaW9uSWR9LSR7Zm9ybWF0VXNlcklkfS0ke2Zvcm1hdFZhbHVlfWApO1xuICAgICAgY29uc3QgZWRnZSA9IHtcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gICAgICB9O1xuICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGIuZWRnZUNvbGxlY3Rpb24oJ2hhc1JlbGF0aW9uJykgYXMgYW55O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCBgdXNlcnMvJHtzZXNzaW9uSWR9YCwgYHVzZXJzLyR7Zm9ybWF0VXNlcklkfWApXG4gICAgICAgIC50aGVuKCgpID0+IGVkZ2VDb2xsZWN0aW9uLmVkZ2UoZWRnZUlkKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVVc2VyUmVsYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJSZWxhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVsYXRpb25zQnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlQ2hhcih2YWx1ZSwgMzIpO1xuICBjb25zdCBhcWxRcnkgPSBgRk9SIHUsIHIgSU4gSU5CT1VORCBcIiR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9XCIgaGFzUmVsYXRpb25cbiAgICBGSUxURVIgci5fZnJvbSA9PSBcIiR7YHVzZXJzLyR7c2Vzc2lvbklkfWB9XCIgJiYgci52YWx1ZSA9PSBcIiR7Zm9ybWF0VmFsdWV9XCJcbiAgICBSRU1PVkUgciBJTiBoYXNSZWxhdGlvblxuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChyZWxhdGlvbiA9IHt9KSA9PiByZWxhdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2Vyc0J5UmVsYXRpb25zID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB1c2VySWQ6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBmcm9tOiBudW1iZXIsXG4gIHRvOiBudW1iZXJcbik6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRVc2Vyc0J5UmVsYXRpb25zJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRUeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIodHlwZSwgMzIpO1xuICBjb25zdCBsaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUsIHIgSU4gSU5CT1VORCBcIiR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9XCIgaGFzUmVsYXRpb25cbiAgICBGSUxURVIgci50eXBlID09IFwiJHtmb3JtYXRUeXBlfVwiXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVsYXRpb25zQnlVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyUmVsYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVsYXRpb25zQnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSwgciBJTiBJTkJPVU5EICR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9IGhhc1JlbGF0aW9uXG4gICAgICBGSUxURVIgci5fZnJvbSA9PSAke2B1c2Vycy8ke3Nlc3Npb25JZH1gfVxuICAgICAgUkVUVVJOIHJgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVsYXRpb25zaGlwID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyUmVsYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlbGF0aW9uc2hpcCc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUsIHIgSU4gSU5CT1VORCAke2B1c2Vycy8ke2Zvcm1hdFVzZXJJZH1gfSBoYXNSZWxhdGlvblxuICAgICAgRklMVEVSIHIuX2Zyb20gPT0gJHtgdXNlcnMvJHtzZXNzaW9uSWR9YH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiByYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREaXNwbGF5TmFtZSA9ICh1c2VyOiBVc2VyVHlwZSA9IHt9KTogc3RyaW5nID0+IHtcbiAgY29uc3Qge2ZpcnN0LCBsYXN0LCBuYW1lID0gJycsIHVzZXJuYW1lID0gJyd9ID0gdXNlcjtcbiAgY29uc3QgZnVsbG5hbWU6IHN0cmluZyA9IChbZmlyc3QsIGxhc3RdKS5qb2luKCcgJykudHJpbSgpO1xuXG4gIGlmKCFpc0VtcHR5KG5hbWUpKSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH0gZWxzZSBpZihmdWxsbmFtZSAhPT0gJycpIHtcbiAgICByZXR1cm4gZnVsbG5hbWU7XG4gIH0gZWxzZSBpZighaXNFbXB0eSh1c2VybmFtZSkpIHtcbiAgICByZXR1cm4gdXNlcm5hbWU7XG4gIH1cblxuICByZXR1cm4gJ1Vua25vd24nO1xufTtcbiJdfQ==
|
package/lib/utils/arangodb.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Database } from 'arangojs';
|
|
2
2
|
import { ArangoDBLimit, ArangoDBPathObject, RangeType } from '../types/arangodb';
|
|
3
|
-
export declare const db: Database;
|
|
4
3
|
export declare const useDb: (database: string) => Database;
|
|
5
4
|
export declare const dbPathObjItem: (pathSet: any) => ArangoDBPathObject;
|
|
6
5
|
export declare const dbPathObjJSON: (json: any) => ArangoDBPathObject;
|
package/lib/utils/arangodb.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getRange = exports.getLimit = exports.dbPathObjList = exports.dbPathObjJSON = exports.dbPathObjItem = exports.useDb =
|
|
6
|
+
exports.getRange = exports.getLimit = exports.dbPathObjList = exports.dbPathObjJSON = exports.dbPathObjItem = exports.useDb = void 0;
|
|
7
7
|
|
|
8
8
|
var _utils = require("@nlabs/utils");
|
|
9
9
|
|
|
@@ -16,24 +16,15 @@ var _config = require("../config");
|
|
|
16
16
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
17
17
|
*/
|
|
18
18
|
// Create database
|
|
19
|
-
var database = new _arangojs.Database({
|
|
20
|
-
url: _config.Config.get('arangodb.apiUrl')
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
var environment = _config.Config.get('environment');
|
|
24
|
-
|
|
25
|
-
var suffix = environment === 'dev' ? '-dev' : '';
|
|
26
|
-
database.useDatabase("".concat(_config.Config.get('arangodb.database')).concat(suffix));
|
|
27
|
-
database.useBasicAuth(_config.Config.get('arangodb.username'), _config.Config.get('arangodb.password')); // ArangoDB Utils
|
|
28
|
-
|
|
29
|
-
var db = database;
|
|
30
|
-
exports.db = db;
|
|
31
|
-
|
|
32
19
|
var useDb = function useDb(database) {
|
|
33
20
|
var db = new _arangojs.Database({
|
|
34
|
-
url: _config.Config.get('arangodb.
|
|
21
|
+
url: _config.Config.get('arangodb.url')
|
|
35
22
|
});
|
|
36
|
-
|
|
23
|
+
|
|
24
|
+
var environment = _config.Config.get('environment');
|
|
25
|
+
|
|
26
|
+
var suffix = environment === 'dev' ? '-dev' : '';
|
|
27
|
+
db.useDatabase("".concat(database).concat(suffix));
|
|
37
28
|
db.useBasicAuth(_config.Config.get('arangodb.username'), _config.Config.get('arangodb.password'));
|
|
38
29
|
return db;
|
|
39
30
|
};
|
|
@@ -128,4 +119,4 @@ var getRange = function getRange(from, to) {
|
|
|
128
119
|
};
|
|
129
120
|
|
|
130
121
|
exports.getRange = getRange;
|
|
131
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hcmFuZ29kYi50cyJdLCJuYW1lcyI6WyJ1c2VEYiIsImRhdGFiYXNlIiwiZGIiLCJEYXRhYmFzZSIsInVybCIsIkNvbmZpZyIsImdldCIsImVudmlyb25tZW50Iiwic3VmZml4IiwidXNlRGF0YWJhc2UiLCJ1c2VCYXNpY0F1dGgiLCJkYlBhdGhPYmpJdGVtIiwicGF0aFNldCIsInJvdXRlS2V5IiwiY29sbGVjdGlvbiIsInJlcGxhY2UiLCJrZXlzIiwicHJvcHMiLCJkYlBhdGhPYmpKU09OIiwianNvbiIsImNvbGxlY3Rpb25LZXlzIiwiT2JqZWN0IiwiaXRlbU9iaiIsImRiUGF0aE9iakxpc3QiLCJyYW5nZXMiLCJnZXRMaW1pdCIsInN0YXJ0IiwidG8iLCJudW0iLCJhcWwiLCJnZXRSYW5nZSIsImZyb20iLCJ1cGRhdGVkRnJvbSIsInVwZGF0ZWRUbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBOztBQUNBOztBQUVBOztBQVBBOzs7O0FBVUE7QUFDTyxJQUFNQSxLQUFLLEdBQUcsU0FBUkEsS0FBUSxDQUFDQyxRQUFELEVBQWdDO0FBQ25ELE1BQU1DLEVBQUUsR0FBRyxJQUFJQyxrQkFBSixDQUFhO0FBQUNDLElBQUFBLEdBQUcsRUFBRUMsZUFBT0MsR0FBUCxDQUFXLGNBQVg7QUFBTixHQUFiLENBQVg7O0FBQ0EsTUFBTUMsV0FBbUIsR0FBR0YsZUFBT0MsR0FBUCxDQUFXLGFBQVgsQ0FBNUI7O0FBQ0EsTUFBTUUsTUFBYyxHQUFHRCxXQUFXLEtBQUssS0FBaEIsR0FBd0IsTUFBeEIsR0FBaUMsRUFBeEQ7QUFFQUwsRUFBQUEsRUFBRSxDQUFDTyxXQUFILFdBQWtCUixRQUFsQixTQUE2Qk8sTUFBN0I7QUFDQU4sRUFBQUEsRUFBRSxDQUFDUSxZQUFILENBQWdCTCxlQUFPQyxHQUFQLENBQVcsbUJBQVgsQ0FBaEIsRUFBaURELGVBQU9DLEdBQVAsQ0FBVyxtQkFBWCxDQUFqRDtBQUVBLFNBQU9KLEVBQVA7QUFDRCxDQVRN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QUFTLEdBQUcsRUFBWjtBQUNEOztBQUVELE1BQUdELFdBQVcsR0FBRyxDQUFqQixFQUFvQjtBQUNsQkEsSUFBQUEsV0FBVyxHQUFHLENBQWQ7QUFDRDs7QUFDRCxNQUFHQSxXQUFXLEdBQUdDLFNBQWpCLEVBQTRCO0FBQzFCRCxJQUFBQSxXQUFXLEdBQUdDLFNBQWQ7QUFDRDs7QUFFRCxTQUFPO0FBQUNGLElBQUFBLElBQUksRUFBRUMsV0FBUDtBQUFvQkwsSUFBQUEsRUFBRSxFQUFFTTtBQUF4QixHQUFQO0FBQ0QsQ0FuQk0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7RGF0YWJhc2V9IGZyb20gJ2FyYW5nb2pzJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge0FyYW5nb0RCTGltaXQsIEFyYW5nb0RCUGF0aE9iamVjdCwgUmFuZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYic7XG5cbi8vIENyZWF0ZSBkYXRhYmFzZVxuZXhwb3J0IGNvbnN0IHVzZURiID0gKGRhdGFiYXNlOiBzdHJpbmcpOiBEYXRhYmFzZSA9PiB7XG4gIGNvbnN0IGRiID0gbmV3IERhdGFiYXNlKHt1cmw6IENvbmZpZy5nZXQoJ2FyYW5nb2RiLnVybCcpfSk7XG4gIGNvbnN0IGVudmlyb25tZW50OiBzdHJpbmcgPSBDb25maWcuZ2V0KCdlbnZpcm9ubWVudCcpO1xuICBjb25zdCBzdWZmaXg6IHN0cmluZyA9IGVudmlyb25tZW50ID09PSAnZGV2JyA/ICctZGV2JyA6ICcnO1xuXG4gIGRiLnVzZURhdGFiYXNlKGAke2RhdGFiYXNlfSR7c3VmZml4fWApO1xuICBkYi51c2VCYXNpY0F1dGgoQ29uZmlnLmdldCgnYXJhbmdvZGIudXNlcm5hbWUnKSwgQ29uZmlnLmdldCgnYXJhbmdvZGIucGFzc3dvcmQnKSk7XG5cbiAgcmV0dXJuIGRiO1xufTtcblxuZXhwb3J0IGNvbnN0IGRiUGF0aE9iakl0ZW0gPSAocGF0aFNldCk6IEFyYW5nb0RCUGF0aE9iamVjdCA9PiB7XG4gIGNvbnN0IHJvdXRlS2V5OiBzdHJpbmcgPSBwYXRoU2V0WzBdO1xuICBjb25zdCBjb2xsZWN0aW9uOiBzdHJpbmcgPSByb3V0ZUtleS5yZXBsYWNlKCdCeUlkJywgJycpO1xuICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IHBhdGhTZXRbMV07XG4gIGNvbnN0IHByb3BzOiBhbnkgPSBwYXRoU2V0WzJdO1xuXG4gIHJldHVybiB7XG4gICAgY29sbGVjdGlvbixcbiAgICBrZXlzLFxuICAgIHByb3BzLFxuICAgIHJvdXRlS2V5XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGJQYXRoT2JqSlNPTiA9IChqc29uKTogQXJhbmdvREJQYXRoT2JqZWN0ID0+IHtcbiAgY29uc3QgY29sbGVjdGlvbktleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoanNvbik7XG4gIGNvbnN0IHJvdXRlS2V5OiBzdHJpbmcgPSBjb2xsZWN0aW9uS2V5c1swXTtcbiAgY29uc3QgY29sbGVjdGlvbjogc3RyaW5nID0gcm91dGVLZXkucmVwbGFjZSgnQnlJZCcsICcnKTtcbiAgY29uc3QgaXRlbU9iajogYW55ID0ganNvbltyb3V0ZUtleV07XG4gIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoaXRlbU9iaik7XG5cbiAgcmV0dXJuIHtcbiAgICBjb2xsZWN0aW9uLFxuICAgIGl0ZW1PYmosXG4gICAga2V5cyxcbiAgICByb3V0ZUtleVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRiUGF0aE9iakxpc3QgPSAocGF0aFNldCk6IEFyYW5nb0RCUGF0aE9iamVjdCA9PiB7XG4gIGNvbnN0IHJvdXRlS2V5OiBzdHJpbmcgPSBwYXRoU2V0WzBdO1xuICBjb25zdCByYW5nZXM6IGFueSA9IHBhdGhTZXRbMV07XG4gIGNvbnN0IHByb3BzOiBhbnkgPSBwYXRoU2V0WzJdO1xuXG4gIHJldHVybiB7XG4gICAgcHJvcHMsXG4gICAgcmFuZ2VzLFxuICAgIHJvdXRlS2V5XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TGltaXQgPSAoc3RhcnQ6IG51bWJlciA9IDAsIHRvOiBudW1iZXIgPSAzMCk6IEFyYW5nb0RCTGltaXQgPT4ge1xuICBsZXQgbnVtID0gcGFyc2VOdW0odG8pIC0gcGFyc2VOdW0oc3RhcnQpO1xuXG4gIGlmKG51bSA+IDUwKSB7XG4gICAgbnVtID0gNTA7XG4gIH1cblxuICByZXR1cm4ge2FxbDogYExJTUlUICR7c3RhcnR9LCAke251bX1gLCBudW0sIHN0YXJ0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSYW5nZSA9IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpOiBSYW5nZVR5cGUgPT4ge1xuICBsZXQgdXBkYXRlZEZyb206IG51bWJlciA9IGZyb20gfHwgMDtcbiAgbGV0IHVwZGF0ZWRUbzogbnVtYmVyID0gdG8gfHwgMTU7XG4gIHVwZGF0ZWRUbyA9IHVwZGF0ZWRUbyAtIDE7XG5cbiAgaWYodXBkYXRlZFRvIDwgMCkge1xuICAgIHVwZGF0ZWRUbyA9IDA7XG4gIH0gZWxzZSBpZih0byA+IDUwKSB7XG4gICAgdXBkYXRlZFRvID0gNTA7XG4gIH1cblxuICBpZih1cGRhdGVkRnJvbSA8IDApIHtcbiAgICB1cGRhdGVkRnJvbSA9IDA7XG4gIH1cbiAgaWYodXBkYXRlZEZyb20gPiB1cGRhdGVkVG8pIHtcbiAgICB1cGRhdGVkRnJvbSA9IHVwZGF0ZWRUbztcbiAgfVxuXG4gIHJldHVybiB7ZnJvbTogdXBkYXRlZEZyb20sIHRvOiB1cGRhdGVkVG99O1xufTtcbiJdfQ==
|
package/lib/utils/auth.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { ApiContext } from '../types/auth';
|
|
2
1
|
export declare const parseJsonData: (data: any) => any;
|
|
3
2
|
export declare const getLambdaData: (data: any) => {
|
|
4
3
|
body: any;
|
|
5
4
|
context: any;
|
|
6
5
|
};
|
|
7
|
-
export declare const parseContext: (appId: string, data: any) => ApiContext;
|
package/lib/utils/auth.js
CHANGED
|
@@ -3,15 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
var _utils = require("@nlabs/utils");
|
|
6
|
+
exports.getLambdaData = exports.parseJsonData = void 0;
|
|
9
7
|
|
|
10
8
|
var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
|
|
11
9
|
|
|
12
10
|
var _isString = _interopRequireDefault(require("lodash/isString"));
|
|
13
11
|
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
13
|
|
|
16
14
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
17
15
|
|
|
@@ -28,7 +26,7 @@ var parseJsonData = function parseJsonData(data) {
|
|
|
28
26
|
exports.parseJsonData = parseJsonData;
|
|
29
27
|
|
|
30
28
|
var getLambdaData = function getLambdaData(data) {
|
|
31
|
-
if ((0, _isPlainObject
|
|
29
|
+
if ((0, _isPlainObject["default"])(data)) {
|
|
32
30
|
var queryData = data.body || data['body-json'];
|
|
33
31
|
var requestContext = data.requestContext,
|
|
34
32
|
isOffline = data.isOffline;
|
|
@@ -40,7 +38,7 @@ var getLambdaData = function getLambdaData(data) {
|
|
|
40
38
|
isOffline: isOffline
|
|
41
39
|
}
|
|
42
40
|
};
|
|
43
|
-
} else if ((0, _isString
|
|
41
|
+
} else if ((0, _isString["default"])(data)) {
|
|
44
42
|
return {
|
|
45
43
|
body: parseJsonData(data),
|
|
46
44
|
context: {}
|
|
@@ -54,51 +52,4 @@ var getLambdaData = function getLambdaData(data) {
|
|
|
54
52
|
};
|
|
55
53
|
|
|
56
54
|
exports.getLambdaData = getLambdaData;
|
|
57
|
-
|
|
58
|
-
var parseContext = function parseContext(appId, data) {
|
|
59
|
-
var _data$authorizer = data.authorizer,
|
|
60
|
-
authorizer = _data$authorizer === void 0 ? {} : _data$authorizer,
|
|
61
|
-
identity = data.identity,
|
|
62
|
-
isOffline = data.isOffline;
|
|
63
|
-
var claims = authorizer.claims;
|
|
64
|
-
|
|
65
|
-
if (claims) {
|
|
66
|
-
var username = claims['cognito:username'],
|
|
67
|
-
email = claims.email,
|
|
68
|
-
sub = claims.sub,
|
|
69
|
-
_claims$userType = claims.userType,
|
|
70
|
-
userType = _claims$userType === void 0 ? 'default' : _claims$userType;
|
|
71
|
-
var ipAddress = identity.sourceIp;
|
|
72
|
-
var userId = (0, _utils.createHash)(sub, null);
|
|
73
|
-
return {
|
|
74
|
-
appId: appId,
|
|
75
|
-
database: appId,
|
|
76
|
-
email: email,
|
|
77
|
-
ipAddress: ipAddress,
|
|
78
|
-
sub: sub,
|
|
79
|
-
userId: userId,
|
|
80
|
-
userType: userType,
|
|
81
|
-
username: username
|
|
82
|
-
};
|
|
83
|
-
} else if (isOffline) {
|
|
84
|
-
var _sub = 'a54224df-b74e-4398-a4ad-8be991c1f1ed';
|
|
85
|
-
|
|
86
|
-
var _userId = (0, _utils.createHash)(_sub, null);
|
|
87
|
-
|
|
88
|
-
return {
|
|
89
|
-
appId: appId,
|
|
90
|
-
database: appId,
|
|
91
|
-
email: 'test@nitrogenlabs.com',
|
|
92
|
-
ipAddress: '1.1.1.1',
|
|
93
|
-
sub: _sub,
|
|
94
|
-
userId: _userId,
|
|
95
|
-
userType: 1,
|
|
96
|
-
username: 'tester'
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return null;
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
exports.parseContext = parseContext;
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hdXRoLnRzIl0sIm5hbWVzIjpbInBhcnNlSnNvbkRhdGEiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiZXJyb3IiLCJnZXRMYW1iZGFEYXRhIiwicXVlcnlEYXRhIiwiYm9keSIsInJlcXVlc3RDb250ZXh0IiwiaXNPZmZsaW5lIiwiY29udGV4dCIsInBhcnNlQ29udGV4dCIsImFwcElkIiwiYXV0aG9yaXplciIsImlkZW50aXR5IiwiY2xhaW1zIiwidXNlcm5hbWUiLCJlbWFpbCIsInN1YiIsInVzZXJUeXBlIiwiaXBBZGRyZXNzIiwic291cmNlSXAiLCJ1c2VySWQiLCJkYXRhYmFzZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBOztBQUNBOztBQUNBOzs7Ozs7OztBQUlPLElBQU1BLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ0MsSUFBRCxFQUFlO0FBQzFDLE1BQUk7QUFDRixXQUFPQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0YsSUFBWCxDQUFQO0FBQ0QsR0FGRCxDQUVFLE9BQU1HLEtBQU4sRUFBYTtBQUNiLFdBQU9ILElBQVA7QUFDRDtBQUNGLENBTk07Ozs7QUFRQSxJQUFNSSxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNKLElBQUQsRUFBZTtBQUMxQyxNQUFHLDRCQUFjQSxJQUFkLENBQUgsRUFBd0I7QUFDdEIsUUFBTUssU0FBUyxHQUFHTCxJQUFJLENBQUNNLElBQUwsSUFBYU4sSUFBSSxDQUFDLFdBQUQsQ0FBbkM7QUFEc0IsUUFFZk8sY0FGZSxHQUVjUCxJQUZkLENBRWZPLGNBRmU7QUFBQSxRQUVDQyxTQUZELEdBRWNSLElBRmQsQ0FFQ1EsU0FGRDtBQUl0QixXQUFPO0FBQ0xGLE1BQUFBLElBQUksRUFBRUQsU0FBUyxHQUFHTixhQUFhLENBQUNNLFNBQUQsQ0FBaEIsR0FBOEJMLElBRHhDO0FBRUxTLE1BQUFBLE9BQU8sRUFBRUYsY0FBYyxxQkFBT0EsY0FBUDtBQUF1QkMsUUFBQUEsU0FBUyxFQUFUQTtBQUF2QixXQUFvQztBQUFDQSxRQUFBQSxTQUFTLEVBQVRBO0FBQUQ7QUFGdEQsS0FBUDtBQUlELEdBUkQsTUFRTyxJQUFHLHVCQUFTUixJQUFULENBQUgsRUFBbUI7QUFDeEIsV0FBTztBQUNMTSxNQUFBQSxJQUFJLEVBQUVQLGFBQWEsQ0FBQ0MsSUFBRCxDQURkO0FBRUxTLE1BQUFBLE9BQU8sRUFBRTtBQUZKLEtBQVA7QUFJRDs7QUFFRCxTQUFPO0FBQ0xILElBQUFBLElBQUksRUFBRSxFQUREO0FBRUxHLElBQUFBLE9BQU8sRUFBRTtBQUZKLEdBQVA7QUFJRCxDQXBCTTs7OztBQXNCQSxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFDQyxLQUFELEVBQWdCWCxJQUFoQixFQUEwQztBQUFBLHlCQUNyQkEsSUFEcUIsQ0FDN0RZLFVBRDZEO0FBQUEsTUFDN0RBLFVBRDZELGlDQUNoRCxFQURnRDtBQUFBLE1BQzVDQyxRQUQ0QyxHQUNyQmIsSUFEcUIsQ0FDNUNhLFFBRDRDO0FBQUEsTUFDbENMLFNBRGtDLEdBQ3JCUixJQURxQixDQUNsQ1EsU0FEa0M7QUFBQSxNQUU3RE0sTUFGNkQsR0FFbkRGLFVBRm1ELENBRTdERSxNQUY2RDs7QUFJcEUsTUFBR0EsTUFBSCxFQUFXO0FBQUEsUUFDb0JDLFFBRHBCLEdBQ2tFRCxNQURsRSxDQUNELGtCQURDO0FBQUEsUUFDOEJFLEtBRDlCLEdBQ2tFRixNQURsRSxDQUM4QkUsS0FEOUI7QUFBQSxRQUNxQ0MsR0FEckMsR0FDa0VILE1BRGxFLENBQ3FDRyxHQURyQztBQUFBLDJCQUNrRUgsTUFEbEUsQ0FDMENJLFFBRDFDO0FBQUEsUUFDMENBLFFBRDFDLGlDQUNxRCxTQURyRDtBQUFBLFFBRVFDLFNBRlIsR0FFcUJOLFFBRnJCLENBRUZPLFFBRkU7QUFHVCxRQUFNQyxNQUFjLEdBQUcsdUJBQVdKLEdBQVgsRUFBZ0IsSUFBaEIsQ0FBdkI7QUFDQSxXQUFPO0FBQUNOLE1BQUFBLEtBQUssRUFBTEEsS0FBRDtBQUFRVyxNQUFBQSxRQUFRLEVBQUVYLEtBQWxCO0FBQXlCSyxNQUFBQSxLQUFLLEVBQUxBLEtBQXpCO0FBQWdDRyxNQUFBQSxTQUFTLEVBQVRBLFNBQWhDO0FBQTJDRixNQUFBQSxHQUFHLEVBQUhBLEdBQTNDO0FBQWdESSxNQUFBQSxNQUFNLEVBQU5BLE1BQWhEO0FBQXdESCxNQUFBQSxRQUFRLEVBQVJBLFFBQXhEO0FBQWtFSCxNQUFBQSxRQUFRLEVBQVJBO0FBQWxFLEtBQVA7QUFDRCxHQUxELE1BS08sSUFBR1AsU0FBSCxFQUFjO0FBQ25CLFFBQU1TLElBQVcsR0FBRyxzQ0FBcEI7O0FBQ0EsUUFBTUksT0FBYyxHQUFHLHVCQUFXSixJQUFYLEVBQWdCLElBQWhCLENBQXZCOztBQUVBLFdBQU87QUFDTE4sTUFBQUEsS0FBSyxFQUFMQSxLQURLO0FBRUxXLE1BQUFBLFFBQVEsRUFBRVgsS0FGTDtBQUdMSyxNQUFBQSxLQUFLLEVBQUUsdUJBSEY7QUFJTEcsTUFBQUEsU0FBUyxFQUFFLFNBSk47QUFLTEYsTUFBQUEsR0FBRyxFQUFIQSxJQUxLO0FBTUxJLE1BQUFBLE1BQU0sRUFBTkEsT0FOSztBQU9MSCxNQUFBQSxRQUFRLEVBQUUsQ0FQTDtBQVFMSCxNQUFBQSxRQUFRLEVBQUU7QUFSTCxLQUFQO0FBVUQ7O0FBRUQsU0FBTyxJQUFQO0FBQ0QsQ0ExQk0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNofSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IGlzUGxhaW5PYmplY3QgZnJvbSAnbG9kYXNoL2lzUGxhaW5PYmplY3QnO1xuaW1wb3J0IGlzU3RyaW5nIGZyb20gJ2xvZGFzaC9pc1N0cmluZyc7XG5cbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUpzb25EYXRhID0gKGRhdGEpOiBhbnkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMYW1iZGFEYXRhID0gKGRhdGE6IGFueSkgPT4ge1xuICBpZihpc1BsYWluT2JqZWN0KGRhdGEpKSB7XG4gICAgY29uc3QgcXVlcnlEYXRhID0gZGF0YS5ib2R5IHx8IGRhdGFbJ2JvZHktanNvbiddO1xuICAgIGNvbnN0IHtyZXF1ZXN0Q29udGV4dCwgaXNPZmZsaW5lfSA9IGRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYm9keTogcXVlcnlEYXRhID8gcGFyc2VKc29uRGF0YShxdWVyeURhdGEpIDogZGF0YSxcbiAgICAgIGNvbnRleHQ6IHJlcXVlc3RDb250ZXh0ID8gey4uLnJlcXVlc3RDb250ZXh0LCBpc09mZmxpbmV9IDoge2lzT2ZmbGluZX1cbiAgICB9O1xuICB9IGVsc2UgaWYoaXNTdHJpbmcoZGF0YSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm9keTogcGFyc2VKc29uRGF0YShkYXRhKSxcbiAgICAgIGNvbnRleHQ6IHt9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYm9keToge30sXG4gICAgY29udGV4dDoge31cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRleHQgPSAoYXBwSWQ6IHN0cmluZywgZGF0YTogYW55KTogQXBpQ29udGV4dCA9PiB7XG4gIGNvbnN0IHthdXRob3JpemVyID0ge30sIGlkZW50aXR5LCBpc09mZmxpbmV9ID0gZGF0YTtcbiAgY29uc3Qge2NsYWltc30gPSBhdXRob3JpemVyO1xuXG4gIGlmKGNsYWltcykge1xuICAgIGNvbnN0IHtbJ2NvZ25pdG86dXNlcm5hbWUnXTogdXNlcm5hbWUsIGVtYWlsLCBzdWIsIHVzZXJUeXBlID0gJ2RlZmF1bHQnfSA9IGNsYWltcztcbiAgICBjb25zdCB7c291cmNlSXA6IGlwQWRkcmVzc30gPSBpZGVudGl0eTtcbiAgICBjb25zdCB1c2VySWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goc3ViLCBudWxsKTtcbiAgICByZXR1cm4ge2FwcElkLCBkYXRhYmFzZTogYXBwSWQsIGVtYWlsLCBpcEFkZHJlc3MsIHN1YiwgdXNlcklkLCB1c2VyVHlwZSwgdXNlcm5hbWV9O1xuICB9IGVsc2UgaWYoaXNPZmZsaW5lKSB7XG4gICAgY29uc3Qgc3ViOiBzdHJpbmcgPSAnYTU0MjI0ZGYtYjc0ZS00Mzk4LWE0YWQtOGJlOTkxYzFmMWVkJztcbiAgICBjb25zdCB1c2VySWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goc3ViLCBudWxsKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhcHBJZCxcbiAgICAgIGRhdGFiYXNlOiBhcHBJZCxcbiAgICAgIGVtYWlsOiAndGVzdEBuaXRyb2dlbmxhYnMuY29tJyxcbiAgICAgIGlwQWRkcmVzczogJzEuMS4xLjEnLFxuICAgICAgc3ViLFxuICAgICAgdXNlcklkLFxuICAgICAgdXNlclR5cGU6IDEsXG4gICAgICB1c2VybmFtZTogJ3Rlc3RlcidcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuIl19
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hdXRoLnRzIl0sIm5hbWVzIjpbInBhcnNlSnNvbkRhdGEiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiZXJyb3IiLCJnZXRMYW1iZGFEYXRhIiwicXVlcnlEYXRhIiwiYm9keSIsInJlcXVlc3RDb250ZXh0IiwiaXNPZmZsaW5lIiwiY29udGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBOztBQUNBOzs7Ozs7OztBQUVPLElBQU1BLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ0MsSUFBRCxFQUFlO0FBQzFDLE1BQUk7QUFDRixXQUFPQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0YsSUFBWCxDQUFQO0FBQ0QsR0FGRCxDQUVFLE9BQU1HLEtBQU4sRUFBYTtBQUNiLFdBQU9ILElBQVA7QUFDRDtBQUNGLENBTk07Ozs7QUFRQSxJQUFNSSxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNKLElBQUQsRUFBZTtBQUMxQyxNQUFHLCtCQUFjQSxJQUFkLENBQUgsRUFBd0I7QUFDdEIsUUFBTUssU0FBUyxHQUFHTCxJQUFJLENBQUNNLElBQUwsSUFBYU4sSUFBSSxDQUFDLFdBQUQsQ0FBbkM7QUFEc0IsUUFFZk8sY0FGZSxHQUVjUCxJQUZkLENBRWZPLGNBRmU7QUFBQSxRQUVDQyxTQUZELEdBRWNSLElBRmQsQ0FFQ1EsU0FGRDtBQUl0QixXQUFPO0FBQ0xGLE1BQUFBLElBQUksRUFBRUQsU0FBUyxHQUFHTixhQUFhLENBQUNNLFNBQUQsQ0FBaEIsR0FBOEJMLElBRHhDO0FBRUxTLE1BQUFBLE9BQU8sRUFBRUYsY0FBYyxxQkFBT0EsY0FBUDtBQUF1QkMsUUFBQUEsU0FBUyxFQUFUQTtBQUF2QixXQUFvQztBQUFDQSxRQUFBQSxTQUFTLEVBQVRBO0FBQUQ7QUFGdEQsS0FBUDtBQUlELEdBUkQsTUFRTyxJQUFHLDBCQUFTUixJQUFULENBQUgsRUFBbUI7QUFDeEIsV0FBTztBQUNMTSxNQUFBQSxJQUFJLEVBQUVQLGFBQWEsQ0FBQ0MsSUFBRCxDQURkO0FBRUxTLE1BQUFBLE9BQU8sRUFBRTtBQUZKLEtBQVA7QUFJRDs7QUFFRCxTQUFPO0FBQ0xILElBQUFBLElBQUksRUFBRSxFQUREO0FBRUxHLElBQUFBLE9BQU8sRUFBRTtBQUZKLEdBQVA7QUFJRCxDQXBCTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICdsb2Rhc2gvaXNQbGFpbk9iamVjdCc7XG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoL2lzU3RyaW5nJztcblxuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkRhdGEgPSAoZGF0YSk6IGFueSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldExhbWJkYURhdGEgPSAoZGF0YTogYW55KSA9PiB7XG4gIGlmKGlzUGxhaW5PYmplY3QoZGF0YSkpIHtcbiAgICBjb25zdCBxdWVyeURhdGEgPSBkYXRhLmJvZHkgfHwgZGF0YVsnYm9keS1qc29uJ107XG4gICAgY29uc3Qge3JlcXVlc3RDb250ZXh0LCBpc09mZmxpbmV9ID0gZGF0YTtcblxuICAgIHJldHVybiB7XG4gICAgICBib2R5OiBxdWVyeURhdGEgPyBwYXJzZUpzb25EYXRhKHF1ZXJ5RGF0YSkgOiBkYXRhLFxuICAgICAgY29udGV4dDogcmVxdWVzdENvbnRleHQgPyB7Li4ucmVxdWVzdENvbnRleHQsIGlzT2ZmbGluZX0gOiB7aXNPZmZsaW5lfVxuICAgIH07XG4gIH0gZWxzZSBpZihpc1N0cmluZyhkYXRhKSkge1xuICAgIHJldHVybiB7XG4gICAgICBib2R5OiBwYXJzZUpzb25EYXRhKGRhdGEpLFxuICAgICAgY29udGV4dDoge31cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBib2R5OiB7fSxcbiAgICBjb250ZXh0OiB7fVxuICB9O1xufTtcbiJdfQ==
|
package/lib/utils/graphql.js
CHANGED
|
@@ -7,13 +7,13 @@ exports.getGqlFields = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _graphqlFields = _interopRequireDefault(require("graphql-fields"));
|
|
9
9
|
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
11
|
|
|
12
12
|
var getGqlFields = function getGqlFields(info) {
|
|
13
|
-
var fields = (0, _graphqlFields
|
|
13
|
+
var fields = (0, _graphqlFields["default"])(info);
|
|
14
14
|
var methodName = Object.keys(fields)[0];
|
|
15
15
|
return Object.keys(fields[methodName]);
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
exports.getGqlFields = getGqlFields;
|
|
19
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9ncmFwaHFsLnRzIl0sIm5hbWVzIjpbImdldEdxbEZpZWxkcyIsImluZm8iLCJmaWVsZHMiLCJtZXRob2ROYW1lIiwiT2JqZWN0Iiwia2V5cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRU8sSUFBTUEsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsSUFBRCxFQUFVO0FBQ3BDLE1BQU1DLE1BQU0sR0FBRywrQkFBY0QsSUFBZCxDQUFmO0FBQ0EsTUFBTUUsVUFBa0IsR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVlILE1BQVosRUFBb0IsQ0FBcEIsQ0FBM0I7QUFDQSxTQUFPRSxNQUFNLENBQUNDLElBQVAsQ0FBWUgsTUFBTSxDQUFDQyxVQUFELENBQWxCLENBQVA7QUFDRCxDQUpNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdyYXBocWxGaWVsZHMgZnJvbSAnZ3JhcGhxbC1maWVsZHMnO1xuXG5leHBvcnQgY29uc3QgZ2V0R3FsRmllbGRzID0gKGluZm8pID0+IHtcbiAgY29uc3QgZmllbGRzID0gZ3JhcGhxbEZpZWxkcyhpbmZvKTtcbiAgY29uc3QgbWV0aG9kTmFtZTogc3RyaW5nID0gT2JqZWN0LmtleXMoZmllbGRzKVswXTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGZpZWxkc1ttZXRob2ROYW1lXSk7XG59OyJdfQ==
|
package/lib/utils/objects.js
CHANGED
|
@@ -11,7 +11,7 @@ var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
|
|
|
11
11
|
|
|
12
12
|
var _mapValues = _interopRequireDefault(require("lodash/mapValues"));
|
|
13
13
|
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
@@ -25,12 +25,12 @@ exports.defaultObject = defaultObject;
|
|
|
25
25
|
|
|
26
26
|
var lowerCaseKeys = function lowerCaseKeys() {
|
|
27
27
|
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
28
|
-
var newObj = (0, _cloneDeep
|
|
29
|
-
(0, _mapValues
|
|
28
|
+
var newObj = (0, _cloneDeep["default"])(obj);
|
|
29
|
+
(0, _mapValues["default"])(obj, function (value) {
|
|
30
30
|
var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
31
31
|
var updatedValue;
|
|
32
32
|
|
|
33
|
-
if ((0, _isPlainObject
|
|
33
|
+
if ((0, _isPlainObject["default"])(value)) {
|
|
34
34
|
updatedValue = lowerCaseKeys(value);
|
|
35
35
|
} else {
|
|
36
36
|
updatedValue = value;
|
|
@@ -51,4 +51,4 @@ var toQueryString = function toQueryString() {
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
exports.toQueryString = toQueryString;
|
|
54
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vYmplY3RzLnRzIl0sIm5hbWVzIjpbImRlZmF1bHRPYmplY3QiLCJpdGVtIiwibG93ZXJDYXNlS2V5cyIsIm9iaiIsIm5ld09iaiIsInZhbHVlIiwia2V5IiwidXBkYXRlZFZhbHVlIiwidG9Mb3dlckNhc2UiLCJ0b1F1ZXJ5U3RyaW5nIiwianNvbiIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUE7O0FBQ0E7O0FBQ0E7Ozs7QUFOQTs7OztBQVFPLElBQU1BLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ0MsSUFBRDtBQUFBLFNBQXVCQSxJQUFJLElBQUksRUFBL0I7QUFBQSxDQUF0Qjs7OztBQUVBLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsR0FBc0I7QUFBQSxNQUFyQkMsR0FBcUIsdUVBQWYsRUFBZTtBQUNqRCxNQUFNQyxNQUFNLEdBQUcsMkJBQVVELEdBQVYsQ0FBZjtBQUVBLDZCQUFVQSxHQUFWLEVBQWUsVUFBQ0UsS0FBRCxFQUFrQztBQUFBLFFBQXJCQyxHQUFxQix1RUFBUCxFQUFPO0FBQy9DLFFBQUlDLFlBQUo7O0FBRUEsUUFBRywrQkFBY0YsS0FBZCxDQUFILEVBQXlCO0FBQ3ZCRSxNQUFBQSxZQUFZLEdBQUdMLGFBQWEsQ0FBQ0csS0FBRCxDQUE1QjtBQUNELEtBRkQsTUFFTztBQUNMRSxNQUFBQSxZQUFZLEdBQUdGLEtBQWY7QUFDRDs7QUFFREQsSUFBQUEsTUFBTSxDQUFDRSxHQUFHLENBQUNFLFdBQUosRUFBRCxDQUFOLEdBQTRCRCxZQUE1QjtBQUNELEdBVkQ7QUFZQSxTQUFPSCxNQUFQO0FBQ0QsQ0FoQk07Ozs7QUFrQkEsSUFBTUssYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixHQUE0QjtBQUFBLE1BQTNCQyxJQUEyQix1RUFBZixFQUFlO0FBQ3ZELFNBQU9DLE1BQU0sQ0FDVkMsSUFESSxDQUNDRixJQURELEVBRUpHLEdBRkksQ0FFQSxVQUFDUCxHQUFEO0FBQUEscUJBQW9CUSxrQkFBa0IsQ0FBQ1IsR0FBRCxDQUF0QyxjQUErQ1Esa0JBQWtCLENBQUNKLElBQUksQ0FBQ0osR0FBRCxDQUFMLENBQWpFO0FBQUEsR0FGQSxFQUdKUyxJQUhJLENBR0MsR0FIRCxDQUFQO0FBSUQsQ0FMTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IGlzUGxhaW5PYmplY3QgZnJvbSAnbG9kYXNoL2lzUGxhaW5PYmplY3QnO1xuaW1wb3J0IG1hcFZhbHVlcyBmcm9tICdsb2Rhc2gvbWFwVmFsdWVzJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRPYmplY3QgPSAoaXRlbTogb2JqZWN0KTogYW55ID0+IGl0ZW0gfHwge307XG5cbmV4cG9ydCBjb25zdCBsb3dlckNhc2VLZXlzID0gKG9iaiA9IHt9KTogb2JqZWN0ID0+IHtcbiAgY29uc3QgbmV3T2JqID0gY2xvbmVEZWVwKG9iaik7XG5cbiAgbWFwVmFsdWVzKG9iaiwgKHZhbHVlOiBhbnksIGtleTogc3RyaW5nID0gJycpID0+IHtcbiAgICBsZXQgdXBkYXRlZFZhbHVlOiBhbnk7XG5cbiAgICBpZihpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgdXBkYXRlZFZhbHVlID0gbG93ZXJDYXNlS2V5cyh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVwZGF0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIG5ld09ialtrZXkudG9Mb3dlckNhc2UoKV0gPSB1cGRhdGVkVmFsdWU7XG4gIH0pO1xuXG4gIHJldHVybiBuZXdPYmo7XG59O1xuXG5leHBvcnQgY29uc3QgdG9RdWVyeVN0cmluZyA9IChqc29uOiBhbnkgPSB7fSk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBPYmplY3RcbiAgICAua2V5cyhqc29uKVxuICAgIC5tYXAoKGtleTogc3RyaW5nKSA9PiBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5KX09JHtlbmNvZGVVUklDb21wb25lbnQoanNvbltrZXldKX1gKVxuICAgIC5qb2luKCcmJyk7XG59O1xuIl19
|
package/lib/utils/redis.js
CHANGED
|
@@ -11,7 +11,7 @@ var tp = _interopRequireWildcard(require("typed-promisify"));
|
|
|
11
11
|
|
|
12
12
|
var _config = require("../config");
|
|
13
13
|
|
|
14
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj
|
|
14
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/reaktor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Reaktor",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./lib/index.d.js",
|
|
@@ -34,43 +34,43 @@
|
|
|
34
34
|
"update": "lex update -i"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@nlabs/arkhamjs": "^3.
|
|
37
|
+
"@nlabs/arkhamjs": "^3.13.1",
|
|
38
38
|
"@nlabs/rip-hunter": "^2.0.2",
|
|
39
39
|
"@nlabs/utils": "^1.2.2",
|
|
40
40
|
"apn": "^2.2.0",
|
|
41
|
-
"arangojs": "^6.
|
|
42
|
-
"aws-sdk": "^2.
|
|
43
|
-
"file-type": "^10.
|
|
41
|
+
"arangojs": "^6.10.0",
|
|
42
|
+
"aws-sdk": "^2.436.0",
|
|
43
|
+
"file-type": "^10.10.0",
|
|
44
44
|
"gm": "^1.23.1",
|
|
45
|
-
"google-libphonenumber": "^3.
|
|
46
|
-
"googleapis": "^39.
|
|
47
|
-
"graphql": "^14.2.
|
|
45
|
+
"google-libphonenumber": "^3.2.2",
|
|
46
|
+
"googleapis": "^39.2.0",
|
|
47
|
+
"graphql": "^14.2.1",
|
|
48
48
|
"graphql-errors": "^2.1.0",
|
|
49
49
|
"graphql-fields": "^2.0.3",
|
|
50
50
|
"hiredis": "^0.5.0",
|
|
51
|
-
"lodash": "^4.17.
|
|
51
|
+
"lodash": "^4.17.11",
|
|
52
52
|
"luxon": "^1.12.0",
|
|
53
53
|
"node-yelp": "0.0.3",
|
|
54
54
|
"numeral": "^2.0.6",
|
|
55
55
|
"redis": "^2.8.0",
|
|
56
|
-
"request-promise": "^4.2.
|
|
56
|
+
"request-promise": "^4.2.4",
|
|
57
57
|
"stripe": "^6.28.0",
|
|
58
58
|
"to": "^0.2.9",
|
|
59
59
|
"twilio": "^3.30.0",
|
|
60
60
|
"typed-promisify": "^0.4.0",
|
|
61
|
-
"universal-analytics": "^0.4.
|
|
61
|
+
"universal-analytics": "^0.4.20",
|
|
62
62
|
"update": "^0.7.4"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@types/graphql": "^14.2.0",
|
|
66
66
|
"@types/history": "^4.6.2",
|
|
67
67
|
"@types/jest": "^24.0.11",
|
|
68
|
-
"@types/luxon": "^1.
|
|
69
|
-
"@types/node": "^11.
|
|
68
|
+
"@types/luxon": "^1.12.0",
|
|
69
|
+
"@types/node": "^11.13.0",
|
|
70
70
|
"@types/twilio": "^0.0.10",
|
|
71
71
|
"eslint": "^5.16.0",
|
|
72
72
|
"eslint-config-styleguidejs": "^1.0.10",
|
|
73
|
-
"graphql-tools": "^4.0.
|
|
73
|
+
"graphql-tools": "^4.0.4",
|
|
74
74
|
"source-map-loader": "^0.2.4",
|
|
75
75
|
"typescript": "^3.4.1"
|
|
76
76
|
}
|