@nlabs/reaktor 0.1.12 → 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.
Files changed (50) hide show
  1. package/lib/config.js +138 -0
  2. package/lib/data/conversations.js +228 -0
  3. package/lib/data/dynamodb.js +172 -0
  4. package/lib/data/email.js +194 -0
  5. package/lib/data/files.js +463 -0
  6. package/lib/data/groups.js +401 -0
  7. package/lib/data/images.js +841 -0
  8. package/lib/data/index.js +234 -0
  9. package/lib/data/ios.js +327 -0
  10. package/lib/data/locations.js +148 -0
  11. package/lib/data/messages.js +281 -0
  12. package/lib/data/notifications.js +59 -0
  13. package/lib/data/payments.js +798 -0
  14. package/lib/data/posts.js +637 -0
  15. package/lib/data/reactions.js +243 -0
  16. package/lib/data/s3.js +133 -0
  17. package/lib/data/search.js +111 -0
  18. package/lib/data/sms.js +79 -0
  19. package/lib/data/subscription.js +311 -0
  20. package/lib/data/tags.js +343 -0
  21. package/lib/data/users.js +415 -0
  22. package/lib/index.js +42 -0
  23. package/lib/types/apps.js +2 -0
  24. package/lib/types/arangodb.js +2 -0
  25. package/lib/types/auth.js +2 -0
  26. package/lib/types/conversations.js +2 -0
  27. package/lib/types/email.js +2 -0
  28. package/lib/types/files.js +2 -0
  29. package/lib/types/google.js +2 -0
  30. package/lib/types/groups.js +2 -0
  31. package/lib/types/images.js +2 -0
  32. package/lib/types/index.js +210 -0
  33. package/lib/types/locations.js +2 -0
  34. package/lib/types/messages.js +2 -0
  35. package/lib/types/notifications.js +2 -0
  36. package/lib/types/payments.js +2 -0
  37. package/lib/types/posts.js +2 -0
  38. package/lib/types/reactions.js +2 -0
  39. package/lib/types/tags.js +2 -0
  40. package/lib/types/users.js +2 -0
  41. package/lib/utils/analytics.js +59 -0
  42. package/lib/utils/arangodb.d.ts +0 -1
  43. package/lib/utils/arangodb.js +122 -0
  44. package/lib/utils/auth.d.ts +0 -2
  45. package/lib/utils/auth.js +55 -0
  46. package/lib/utils/graphql.js +19 -0
  47. package/lib/utils/index.js +78 -0
  48. package/lib/utils/objects.js +54 -0
  49. package/lib/utils/redis.js +28 -0
  50. package/package.json +1 -1
@@ -0,0 +1,243 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.postReaction = exports.getUsersByReaction = exports.getReactionsByUser = exports.getGroupReactions = exports.addGroupReaction = void 0;
7
+
8
+ var _utils = require("@nlabs/utils");
9
+
10
+ var _arangojs = require("arangojs");
11
+
12
+ var _utils2 = require("../utils");
13
+
14
+ function _templateObject4() {
15
+ var data = _taggedTemplateLiteral(["LET reactions = (\n FOR post, r IN INBOUND p._id reactions\n COLLECT reactionName = r.value INTO reactionItems\n RETURN {id: p._id, type: reactionName, count: LENGTH(reactionItems[*].r.value)}\n )\n RETURN reactions"]);
16
+
17
+ _templateObject4 = function _templateObject4() {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
24
+ function _templateObject3() {
25
+ var data = _taggedTemplateLiteral(["FOR p, r IN INBOUND ", " reaction\n FILTER r.type == \"posts\" && r._from == ", "\n REMOVE r IN reactions\n RETURN r"]);
26
+
27
+ _templateObject3 = function _templateObject3() {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ function _templateObject2() {
35
+ var data = _taggedTemplateLiteral(["FOR g, r IN INBOUND ", " hasReaction\n FILTER r._from == ", "\n COLLECT reactionName = r.value INTO reactionItems\n RETURN {value: reactionName, count: LENGTH(reactionItems[*].r.value)}"]);
36
+
37
+ _templateObject2 = function _templateObject2() {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
43
+
44
+ function _templateObject() {
45
+ var data = _taggedTemplateLiteral(["FOR g, r IN INBOUND ", " hasReaction\n COLLECT reactionName = r.value INTO reactionItems\n RETURN {value: reactionName, count: LENGTH(reactionItems[*].r.value)}"]);
46
+
47
+ _templateObject = function _templateObject() {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
55
+
56
+ var eventCategory = 'reactions';
57
+
58
+ var addGroupReaction = function addGroupReaction(context) {
59
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
60
+ var action = 'reaction';
61
+ var database = context.database,
62
+ sessionId = context.userId;
63
+
64
+ if (!sessionId) {
65
+ return (0, _utils2.logException)({
66
+ action: action,
67
+ category: eventCategory,
68
+ label: 'unauthorized',
69
+ value: 'invalid_session'
70
+ }, context).then(function () {
71
+ return null;
72
+ });
73
+ }
74
+
75
+ var itemId = params.id,
76
+ _params$value = params.value,
77
+ itemValue = _params$value === void 0 ? 'like' : _params$value;
78
+ var formatItemId = (0, _utils.parseId)(itemId);
79
+ var formatValue = (0, _utils.parseChar)(itemValue, 32);
80
+ var edgeCollection = (0, _utils2.useDb)(database).edgeCollection('hasReaction'); // Remove existing likes
81
+
82
+ var groupDocId = "groups/".concat(formatItemId);
83
+ var userDocId = "users/".concat(sessionId);
84
+ var edgeId = (0, _utils.createHash)("reaction-".concat(formatItemId, "-").concat(sessionId));
85
+ var edge = {
86
+ _key: edgeId,
87
+ added: Date.now(),
88
+ type: 'group',
89
+ value: formatValue
90
+ };
91
+ return edgeCollection.save(edge, userDocId, groupDocId).then(function () {
92
+ return true;
93
+ });
94
+ };
95
+
96
+ exports.addGroupReaction = addGroupReaction;
97
+
98
+ var getGroupReactions = function getGroupReactions(context) {
99
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
100
+ var action = 'getReactions';
101
+ var database = context.database;
102
+ var groupId = params.id;
103
+ var groupDocId = "groups/".concat((0, _utils.parseId)(groupId)); // Query
104
+
105
+ var aqlQry = (0, _arangojs.aql)(_templateObject(), groupDocId);
106
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
107
+ return cursor.all();
108
+ })["catch"](function (error) {
109
+ return (0, _utils2.logError)({
110
+ action: action,
111
+ category: eventCategory,
112
+ label: 'db_error'
113
+ }, error, context).then(function () {
114
+ return null;
115
+ });
116
+ });
117
+ };
118
+
119
+ exports.getGroupReactions = getGroupReactions;
120
+
121
+ var getReactionsByUser = function getReactionsByUser(context, groupId) {
122
+ var action = 'getReactionsByUser';
123
+ var database = context.database,
124
+ sessionId = context.userId;
125
+ var groupDocId = "groups/".concat((0, _utils.parseId)(groupId));
126
+ var userDocId = "users/".concat(sessionId); // Query
127
+
128
+ var aqlQry = (0, _arangojs.aql)(_templateObject2(), groupDocId, userDocId);
129
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
130
+ return cursor.all();
131
+ })["catch"](function (error) {
132
+ return (0, _utils2.logError)({
133
+ action: action,
134
+ category: eventCategory,
135
+ label: 'db_error'
136
+ }, error, context).then(function () {
137
+ return null;
138
+ });
139
+ });
140
+ };
141
+
142
+ exports.getReactionsByUser = getReactionsByUser;
143
+
144
+ var getUsersByReaction = function getUsersByReaction(context) {
145
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
146
+ var action = 'getUsersByReaction';
147
+ var database = context.database,
148
+ sessionId = context.userId;
149
+
150
+ if (!sessionId) {
151
+ return (0, _utils2.logException)({
152
+ action: action,
153
+ category: eventCategory,
154
+ label: 'unauthorized',
155
+ value: 'invalid_session'
156
+ }, context).then(function () {
157
+ return null;
158
+ });
159
+ }
160
+
161
+ var _params$filters = params.filters,
162
+ filters = _params$filters === void 0 ? [] : _params$filters,
163
+ groupId = params.id,
164
+ value = params.value;
165
+ var reaction = (0, _utils.parseChar)(value, 32);
166
+ var groupDocId = "groups/".concat((0, _utils.parseId)(groupId));
167
+ var filterStr = filters.map(function (filter) {
168
+ var conditional = filter.conditional,
169
+ name = filter.name,
170
+ queryValue = filter.value;
171
+ var filterCond = conditional;
172
+
173
+ if (conditional !== '>=' && conditional !== '<=' && conditional !== '>' && conditional !== '<') {
174
+ filterCond = '==';
175
+ }
176
+
177
+ switch (name) {
178
+ case 'added':
179
+ return "r.added ".concat(filterCond, " ").concat((0, _utils.parseNum)(queryValue));
180
+
181
+ default:
182
+ return '';
183
+ }
184
+ }).concat(["r.value == \"".concat(reaction, "\""), 'u._id == r._from']).join(' && '); // Query
185
+
186
+ var aqlQry = "FOR g, r IN INBOUND \"".concat(groupDocId, "\" hasReaction\n FOR u IN users\n FILTER ").concat(filterStr, "\n RETURN u");
187
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
188
+ return cursor.all();
189
+ })["catch"](function (error) {
190
+ return (0, _utils2.logError)({
191
+ action: action,
192
+ category: eventCategory,
193
+ label: 'db_error'
194
+ }, error, context).then(function () {
195
+ return null;
196
+ });
197
+ });
198
+ };
199
+
200
+ exports.getUsersByReaction = getUsersByReaction;
201
+
202
+ var postReaction = function postReaction(context, postId) {
203
+ var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'like';
204
+ var database = context.database,
205
+ sessionId = context.userId;
206
+ var formatItemId = (0, _utils.parseId)(postId);
207
+ var db = (0, _utils2.useDb)(database);
208
+ var edgeCollection = db.edgeCollection('reactions');
209
+ var now = Date.now(); // Remove existing reaction to post
210
+
211
+ var postDocId = "posts/".concat(formatItemId);
212
+ var userDocId = "users/".concat(sessionId);
213
+ var aqlQry = (0, _arangojs.aql)(_templateObject3(), postDocId, userDocId);
214
+ return db.query(aqlQry).then(function () {
215
+ var edgeId = (0, _utils.createHash)("reaction-".concat(postId, "-").concat(sessionId));
216
+ var edge = {
217
+ _key: edgeId,
218
+ added: now,
219
+ type: 'posts',
220
+ value: type
221
+ };
222
+ return edgeCollection.save(edge, userDocId, postDocId).then(function () {
223
+ var reactionAqlQry = (0, _arangojs.aql)(_templateObject4());
224
+ return db.query(reactionAqlQry).then(function (cursor) {
225
+ return cursor.next();
226
+ }).then(function () {
227
+ var result = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
228
+ reactions: []
229
+ };
230
+ return result;
231
+ })["catch"](function (error) {
232
+ throw error;
233
+ });
234
+ })["catch"](function (error) {
235
+ throw error;
236
+ });
237
+ })["catch"](function (error) {
238
+ throw error;
239
+ });
240
+ };
241
+
242
+ exports.postReaction = postReaction;
243
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3JlYWN0aW9ucy50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiYWRkR3JvdXBSZWFjdGlvbiIsImNvbnRleHQiLCJwYXJhbXMiLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImNhdGVnb3J5IiwibGFiZWwiLCJ2YWx1ZSIsInRoZW4iLCJpdGVtSWQiLCJpZCIsIml0ZW1WYWx1ZSIsImZvcm1hdEl0ZW1JZCIsImZvcm1hdFZhbHVlIiwiZWRnZUNvbGxlY3Rpb24iLCJncm91cERvY0lkIiwidXNlckRvY0lkIiwiZWRnZUlkIiwiZWRnZSIsIl9rZXkiLCJhZGRlZCIsIkRhdGUiLCJub3ciLCJ0eXBlIiwic2F2ZSIsImdldEdyb3VwUmVhY3Rpb25zIiwiZ3JvdXBJZCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwiY3Vyc29yIiwiYWxsIiwiZXJyb3IiLCJnZXRSZWFjdGlvbnNCeVVzZXIiLCJnZXRVc2Vyc0J5UmVhY3Rpb24iLCJmaWx0ZXJzIiwicmVhY3Rpb24iLCJmaWx0ZXJTdHIiLCJtYXAiLCJmaWx0ZXIiLCJjb25kaXRpb25hbCIsIm5hbWUiLCJxdWVyeVZhbHVlIiwiZmlsdGVyQ29uZCIsImNvbmNhdCIsImpvaW4iLCJwb3N0UmVhY3Rpb24iLCJwb3N0SWQiLCJkYiIsInBvc3REb2NJZCIsInJlYWN0aW9uQXFsUXJ5IiwibmV4dCIsInJlc3VsdCIsInJlYWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUtBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGFBQXFCLEdBQUcsV0FBOUI7O0FBRU8sSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDQyxPQUFELEVBQTBFO0FBQUEsTUFBcERDLE1BQW9ELHVFQUF6QixFQUF5QjtBQUN4RyxNQUFNQyxNQUFjLEdBQUcsVUFBdkI7QUFEd0csTUFFakdDLFFB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LCBwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsLCBEYXRhYmFzZSwgRWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvYXFsLXF1ZXJ5JztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvY3Vyc29yJztcblxuaW1wb3J0IHtBcGlDb250ZXh0LCBRdWVyeUZpbHRlciwgUmVhY3Rpb25UeXBlLCBVc2VyUmVhY3Rpb25RdWVyeSwgVXNlclJlYWN0aW9uVHlwZSwgVXNlclR5cGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbiwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3JlYWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBhZGRHcm91cFJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uVHlwZSA9IHt9KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ3JlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IHtpZDogaXRlbUlkLCB2YWx1ZTogaXRlbVZhbHVlID0gJ2xpa2UnfSA9IHBhcmFtcztcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFZhbHVlOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbVZhbHVlLCAzMik7XG4gIGNvbnN0IGVkZ2VDb2xsZWN0aW9uID0gdXNlRGIoZGF0YWJhc2UpLmVkZ2VDb2xsZWN0aW9uKCdoYXNSZWFjdGlvbicpO1xuXG4gIC8vIFJlbW92ZSBleGlzdGluZyBsaWtlc1xuICBjb25zdCBncm91cERvY0lkOiBzdHJpbmcgPSBgZ3JvdXBzLyR7Zm9ybWF0SXRlbUlkfWA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcmVhY3Rpb24tJHtmb3JtYXRJdGVtSWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCBlZGdlOiBhbnkgPSB7XG4gICAgX2tleTogZWRnZUlkLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpLFxuICAgIHR5cGU6ICdncm91cCcsXG4gICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gIH07XG5cbiAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwgdXNlckRvY0lkLCBncm91cERvY0lkKS50aGVuKCgpID0+IHRydWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdyb3VwUmVhY3Rpb25zID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uVHlwZSA9IHt9KTogUHJvbWlzZTxVc2VyUmVhY3Rpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9ucyc7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCB7aWQ6IGdyb3VwSWR9OiBVc2VyUmVhY3Rpb25UeXBlID0gcGFyYW1zO1xuICBjb25zdCBncm91cERvY0lkOiBzdHJpbmcgPSBgZ3JvdXBzLyR7cGFyc2VJZChncm91cElkKX1gO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGcsIHIgSU4gSU5CT1VORCAke2dyb3VwRG9jSWR9IGhhc1JlYWN0aW9uXG4gICAgICBDT0xMRUNUIHJlYWN0aW9uTmFtZSA9IHIudmFsdWUgSU5UTyByZWFjdGlvbkl0ZW1zXG4gICAgICBSRVRVUk4ge3ZhbHVlOiByZWFjdGlvbk5hbWUsIGNvdW50OiBMRU5HVEgocmVhY3Rpb25JdGVtc1sqXS5yLnZhbHVlKX1gO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25zQnlVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGdyb3VwSWQ6IHN0cmluZyk6IFByb21pc2U8VXNlclJlYWN0aW9uVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9uc0J5VXNlcic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZ3JvdXBEb2NJZDogc3RyaW5nID0gYGdyb3Vwcy8ke3BhcnNlSWQoZ3JvdXBJZCl9YDtcbiAgY29uc3QgdXNlckRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBnLCByIElOIElOQk9VTkQgJHtncm91cERvY0lkfSBoYXNSZWFjdGlvblxuICAgICAgRklMVEVSIHIuX2Zyb20gPT0gJHt1c2VyRG9jSWR9XG4gICAgICBDT0xMRUNUIHJlYWN0aW9uTmFtZSA9IHIudmFsdWUgSU5UTyByZWFjdGlvbkl0ZW1zXG4gICAgICBSRVRVUk4ge3ZhbHVlOiByZWFjdGlvbk5hbWUsIGNvdW50OiBMRU5HVEgocmVhY3Rpb25JdGVtc1sqXS5yLnZhbHVlKX1gO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlcnNCeVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uUXVlcnkgPSB7fSk6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRVc2Vyc0J5UmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qge2ZpbHRlcnMgPSBbXSwgaWQ6IGdyb3VwSWQsIHZhbHVlfTogVXNlclJlYWN0aW9uUXVlcnkgPSBwYXJhbXM7XG4gIGNvbnN0IHJlYWN0aW9uID0gcGFyc2VDaGFyKHZhbHVlLCAzMik7XG4gIGNvbnN0IGdyb3VwRG9jSWQgPSBgZ3JvdXBzLyR7cGFyc2VJZChncm91cElkKX1gO1xuICBjb25zdCBmaWx0ZXJTdHI6IHN0cmluZyA9IGZpbHRlcnNcbiAgICAubWFwKChmaWx0ZXI6IFF1ZXJ5RmlsdGVyKSA9PiB7XG4gICAgICBjb25zdCB7Y29uZGl0aW9uYWwsIG5hbWUsIHZhbHVlOiBxdWVyeVZhbHVlfTogUXVlcnlGaWx0ZXIgPSBmaWx0ZXI7XG4gICAgICBsZXQgZmlsdGVyQ29uZDogc3RyaW5nID0gY29uZGl0aW9uYWw7XG5cbiAgICAgIGlmKGNvbmRpdGlvbmFsICE9PSAnPj0nICYmIGNvbmRpdGlvbmFsICE9PSAnPD0nICYmIGNvbmRpdGlvbmFsICE9PSAnPicgJiYgY29uZGl0aW9uYWwgIT09ICc8Jykge1xuICAgICAgICBmaWx0ZXJDb25kID0gJz09JztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoKG5hbWUpIHtcbiAgICAgICAgY2FzZSAnYWRkZWQnOlxuICAgICAgICAgIHJldHVybiBgci5hZGRlZCAke2ZpbHRlckNvbmR9ICR7cGFyc2VOdW0ocXVlcnlWYWx1ZSl9YDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfSlcbiAgICAuY29uY2F0KFtcbiAgICAgIGByLnZhbHVlID09IFwiJHtyZWFjdGlvbn1cImAsXG4gICAgICAndS5faWQgPT0gci5fZnJvbSdcbiAgICBdKVxuICAgIC5qb2luKCcgJiYgJyk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGcsIHIgSU4gSU5CT1VORCBcIiR7Z3JvdXBEb2NJZH1cIiBoYXNSZWFjdGlvblxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiAgJHtmaWx0ZXJTdHJ9XG4gICAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cblxuZXhwb3J0IGNvbnN0IHBvc3RSZWFjdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBwb3N0SWQ6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ2xpa2UnKTogUHJvbWlzZTxSZWFjdGlvblR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQocG9zdElkKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2UpO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSBkYi5lZGdlQ29sbGVjdGlvbigncmVhY3Rpb25zJyk7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcblxuICAvLyBSZW1vdmUgZXhpc3RpbmcgcmVhY3Rpb24gdG8gcG9zdFxuICBjb25zdCBwb3N0RG9jSWQ6IHN0cmluZyA9IGBwb3N0cy8ke2Zvcm1hdEl0ZW1JZH1gO1xuICBjb25zdCB1c2VyRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBwLCByIElOIElOQk9VTkQgJHtwb3N0RG9jSWR9IHJlYWN0aW9uXG4gICAgRklMVEVSIHIudHlwZSA9PSBcInBvc3RzXCIgJiYgci5fZnJvbSA9PSAke3VzZXJEb2NJZH1cbiAgICBSRU1PVkUgciBJTiByZWFjdGlvbnNcbiAgICBSRVRVUk4gcmA7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoKSA9PiB7XG4gICAgICBjb25zdCBlZGdlSWQgPSBjcmVhdGVIYXNoKGByZWFjdGlvbi0ke3Bvc3RJZH0tJHtzZXNzaW9uSWR9YCk7XG4gICAgICBjb25zdCBlZGdlOiBhbnkgPSB7XG4gICAgICAgIF9rZXk6IGVkZ2VJZCxcbiAgICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgICAgdHlwZTogJ3Bvc3RzJyxcbiAgICAgICAgdmFsdWU6IHR5cGVcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHVzZXJEb2NJZCwgcG9zdERvY0lkKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVhY3Rpb25BcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCByZWFjdGlvbnMgPSAoXG4gICAgICAgICAgICBGT1IgcG9zdCwgciBJTiBJTkJPVU5EIHAuX2lkIHJlYWN0aW9uc1xuICAgICAgICAgICAgQ09MTEVDVCByZWFjdGlvbk5hbWUgPSByLnZhbHVlIElOVE8gcmVhY3Rpb25JdGVtc1xuICAgICAgICAgICAgUkVUVVJOIHtpZDogcC5faWQsIHR5cGU6IHJlYWN0aW9uTmFtZSwgY291bnQ6IExFTkdUSChyZWFjdGlvbkl0ZW1zWypdLnIudmFsdWUpfVxuICAgICAgICAgIClcbiAgICAgICAgICBSRVRVUk4gcmVhY3Rpb25zYDtcblxuICAgICAgICAgIHJldHVybiBkYi5xdWVyeShyZWFjdGlvbkFxbFFyeSlcbiAgICAgICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdCA9IHtyZWFjdGlvbnM6IFtdfSkgPT4gcmVzdWx0KVxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuIl19
package/lib/data/s3.js ADDED
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.s3DeleteList = exports.s3Delete = exports.s3Put = exports.s3Head = exports.s3Get = void 0;
7
+
8
+ var _awsSdk = _interopRequireWildcard(require("aws-sdk"));
9
+
10
+ var _config = require("../config");
11
+
12
+ 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; } }
13
+
14
+ /**
15
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
16
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
17
+ */
18
+ // AWS S3
19
+ // const eventCategory: string = 's3';
20
+ var s3Get = function s3Get(params) {
21
+ return new Promise(function (resolve, reject) {
22
+ _awsSdk["default"].config.update(_config.Config.get('aws'));
23
+
24
+ var s3 = new _awsSdk.S3();
25
+
26
+ if (!params.Bucket) {
27
+ params.Bucket = _config.Config.get('aws.Bucket');
28
+ }
29
+
30
+ s3.getObject(params, function (error, output) {
31
+ if (error) {
32
+ return reject(error);
33
+ }
34
+
35
+ return resolve(output);
36
+ });
37
+ });
38
+ };
39
+
40
+ exports.s3Get = s3Get;
41
+
42
+ var s3Head = function s3Head(params) {
43
+ return new Promise(function (resolve, reject) {
44
+ _awsSdk["default"].config.update(_config.Config.get('aws'));
45
+
46
+ var s3 = new _awsSdk.S3();
47
+
48
+ if (!params.Bucket) {
49
+ params.Bucket = _config.Config.get('aws.Bucket');
50
+ }
51
+
52
+ s3.headObject(params, function (error, output) {
53
+ if (error) {
54
+ return reject(error);
55
+ }
56
+
57
+ return resolve(output);
58
+ });
59
+ });
60
+ };
61
+
62
+ exports.s3Head = s3Head;
63
+
64
+ var s3Put = function s3Put(params) {
65
+ return new Promise(function (resolve, reject) {
66
+ _awsSdk["default"].config.update(_config.Config.get('aws'));
67
+
68
+ var s3 = new _awsSdk["default"].S3();
69
+
70
+ if (!params.Bucket) {
71
+ params.Bucket = _config.Config.get('aws.Bucket');
72
+ }
73
+
74
+ if (!params.StorageClass) {
75
+ params.StorageClass = 'REDUCED_REDUNDANCY';
76
+ }
77
+
78
+ s3.putObject(params, function (error, output) {
79
+ if (error) {
80
+ return reject(error);
81
+ }
82
+
83
+ return resolve(output);
84
+ });
85
+ });
86
+ };
87
+
88
+ exports.s3Put = s3Put;
89
+
90
+ var s3Delete = function s3Delete(params) {
91
+ return new Promise(function (resolve, reject) {
92
+ _awsSdk["default"].config.update(_config.Config.get('aws'));
93
+
94
+ var s3 = new _awsSdk.S3();
95
+
96
+ if (!params.Bucket) {
97
+ params.Bucket = _config.Config.get('aws.Bucket');
98
+ }
99
+
100
+ s3.deleteObject(params, function (error, output) {
101
+ if (error) {
102
+ return reject(error);
103
+ }
104
+
105
+ return resolve(output);
106
+ });
107
+ });
108
+ };
109
+
110
+ exports.s3Delete = s3Delete;
111
+
112
+ var s3DeleteList = function s3DeleteList(params) {
113
+ return new Promise(function (resolve, reject) {
114
+ _awsSdk["default"].config.update(_config.Config.get('aws'));
115
+
116
+ var s3 = new _awsSdk.S3();
117
+
118
+ if (!params.Bucket) {
119
+ params.Bucket = _config.Config.get('aws.Bucket');
120
+ }
121
+
122
+ s3.deleteObjects(params, function (error, output) {
123
+ if (error) {
124
+ return reject(error);
125
+ }
126
+
127
+ return resolve(output);
128
+ });
129
+ });
130
+ };
131
+
132
+ exports.s3DeleteList = s3DeleteList;
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3MzLnRzIl0sIm5hbWVzIjpbInMzR2V0IiwicGFyYW1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhd3MiLCJjb25maWciLCJ1cGRhdGUiLCJDb25maWciLCJnZXQiLCJzMyIsIlMzIiwiQnVja2V0IiwiZ2V0T2JqZWN0IiwiZXJyb3IiLCJvdXRwdXQiLCJzM0hlYWQiLCJoZWFkT2JqZWN0IiwiczNQdXQiLCJTdG9yYWdlQ2xhc3MiLCJwdXRPYmplY3QiLCJzM0RlbGV0ZSIsImRlbGV0ZU9iamVjdCIsInMzRGVsZXRlTGlzdCIsImRlbGV0ZU9iamVjdHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQTs7QUFjQTs7OztBQWxCQTs7OztBQW9CQTtBQUNBO0FBRU8sSUFBTUEsS0FBSyxHQUFHLFNBQVJBLEtBQVEsQ0FBQ0MsTUFBRDtBQUFBLFNBQ25CLElBQUlDLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBcUI7QUFDL0JDLHVCQUFJQyxNQUFKLENBQVdDLE1BQVgsQ0FBa0JDLGVBQU9DLEdBQVAsQ0FBVyxLQUFYLENBQWxCOztBQUNBLFFBQU1DLEVBQU0sR0FBRyxJQUFJQyxVQUFKLEVBQWY7O0FBRUEsUUFBRyxDQUFDVixNQUFNLENBQUNXLE1BQVgsRUFBbUI7QUFDakJYLE1BQUFBLE1BQU0sQ0FBQ1csTUFBUCxHQUFnQkosZUFBT0MsR0FBUCxDQUFXLFlBQVgsQ0FBaEI7QUFDRDs7QUFFREMsSUFBQUEsRUFBRSxDQUFDRyxTQUFILENBQWFaLE1BQWIsRUFBcUIsVUFBQ2EsS0FBRCxFQUFlQyxNQUFmLEVBQTJDO0FBQzlELFVBQUdELEtBQUgsRUFBVTtBQUNSLGVBQU9WLE1BQU0sQ0FBQ1UsS0FBRCxDQUFiO0FBQ0Q7O0FBRUQsYUFBT1gsT0FBTyxDQUFDWSxNQUFELENBQWQ7QUFDRCxLQU5EO0FBT0QsR0FmRCxDQURtQjtBQUFBLENBQWQ7Ozs7QUFrQkEsSUFBTUMsTUFBTSxHQUFHLFNBQVRBLE1B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SUFBSUMsVUFBSixFQUFmOztBQUVBLFFBQUcsQ0FBQ1YsTUFBTSxDQUFDVyxNQUFYLEVBQW1CO0FBQ2pCWCxNQUFBQSxNQUFNLENBQUNXLE1BQVAsR0FBZ0JKLGVBQU9DLEdBQVAsQ0FBVyxZQUFYLENBQWhCO0FBQ0Q7O0FBRURDLElBQUFBLEVBQUUsQ0FBQ2MsYUFBSCxDQUFpQnZCLE1BQWpCLEVBQXlCLFVBQUNhLEtBQUQsRUFBZUMsTUFBZixFQUErQztBQUN0RSxVQUFHRCxLQUFILEVBQVU7QUFDUixlQUFPVixNQUFNLENBQUNVLEtBQUQsQ0FBYjtBQUNEOztBQUNELGFBQU9YLE9BQU8sQ0FBQ1ksTUFBRCxDQUFkO0FBQ0QsS0FMRDtBQU1ELEdBZEQsQ0FEMEI7QUFBQSxDQUFyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgYXdzLCB7UzN9IGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHtcbiAgRGVsZXRlT2JqZWN0T3V0cHV0LFxuICBEZWxldGVPYmplY3RSZXF1ZXN0LFxuICBEZWxldGVPYmplY3RzT3V0cHV0LFxuICBEZWxldGVPYmplY3RzUmVxdWVzdCxcbiAgR2V0T2JqZWN0T3V0cHV0LFxuICBHZXRPYmplY3RSZXF1ZXN0LFxuICBIZWFkT2JqZWN0T3V0cHV0LFxuICBIZWFkT2JqZWN0UmVxdWVzdCxcbiAgUHV0T2JqZWN0T3V0cHV0LFxuICBQdXRPYmplY3RSZXF1ZXN0XG59IGZyb20gJ2F3cy1zZGsvY2xpZW50cy9zMyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuXG4vLyBBV1MgUzNcbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdzMyc7XG5cbmV4cG9ydCBjb25zdCBzM0dldCA9IChwYXJhbXM6IEdldE9iamVjdFJlcXVlc3QpOiBQcm9taXNlPEdldE9iamVjdE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgICBjb25zdCBzMzogUzMgPSBuZXcgUzMoKTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLkJ1Y2tldCcpO1xuICAgIH1cblxuICAgIHMzLmdldE9iamVjdChwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogR2V0T2JqZWN0T3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBzM0hlYWQgPSAocGFyYW1zOiBIZWFkT2JqZWN0UmVxdWVzdCk6IFByb21pc2U8SGVhZE9iamVjdE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgICBjb25zdCBzMzogUzMgPSBuZXcgUzMoKTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLkJ1Y2tldCcpO1xuICAgIH1cblxuICAgIHMzLmhlYWRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IEhlYWRPYmplY3RPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cblxuZXhwb3J0IGNvbnN0IHMzUHV0ID0gKHBhcmFtczogUHV0T2JqZWN0UmVxdWVzdCk6IFByb21pc2U8UHV0T2JqZWN0T3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzID0gbmV3IGF3cy5TMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgaWYoIXBhcmFtcy5TdG9yYWdlQ2xhc3MpIHtcbiAgICAgIHBhcmFtcy5TdG9yYWdlQ2xhc3MgPSAnUkVEVUNFRF9SRURVTkRBTkNZJztcbiAgICB9XG5cbiAgICBzMy5wdXRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IFB1dE9iamVjdE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlID0gKHBhcmFtczogRGVsZXRlT2JqZWN0UmVxdWVzdCk6IFByb21pc2U8RGVsZXRlT2JqZWN0T3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZGVsZXRlT2JqZWN0KHBhcmFtcywgKGVycm9yLCBvdXRwdXQ6IERlbGV0ZU9iamVjdE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlTGlzdCA9IChwYXJhbXM6IERlbGV0ZU9iamVjdHNSZXF1ZXN0KTogUHJvbWlzZTxEZWxldGVPYmplY3RzT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZGVsZXRlT2JqZWN0cyhwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogRGVsZXRlT2JqZWN0c091dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcbiJdfQ==
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getSearchList = void 0;
7
+
8
+ var _arangojs = require("arangojs");
9
+
10
+ var _flatten = _interopRequireDefault(require("lodash/flatten"));
11
+
12
+ var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
13
+
14
+ var _utils = require("../utils");
15
+
16
+ var _users = require("./users");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ 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; }
21
+
22
+ 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; }
23
+
24
+ function _templateObject() {
25
+ var data = _taggedTemplateLiteral(["FOR u IN FULLTEXT(", ", ", ", ", ", 50) RETURN u"]);
26
+
27
+ _templateObject = function _templateObject() {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
35
+
36
+ var eventCategory = 'search';
37
+
38
+ var getSearchList = function getSearchList(context, query, from, to) {
39
+ var action = 'getList';
40
+ var database = context.database;
41
+ var isString = true;
42
+
43
+ if (isString) {
44
+ var fields = [{
45
+ collection: 'users',
46
+ field: 'first'
47
+ }, {
48
+ collection: 'users',
49
+ field: 'last'
50
+ }, {
51
+ collection: 'users',
52
+ field: 'email'
53
+ }, {
54
+ collection: 'users',
55
+ field: 'username'
56
+ }, {
57
+ collection: 'users',
58
+ field: 'name'
59
+ }];
60
+ return Promise.all(fields.map(function (obj) {
61
+ var qry = "prefix:".concat(query);
62
+ var userQry = (0, _arangojs.aql)(_templateObject(), obj.collection, obj.field, qry);
63
+ return (0, _utils.useDb)(database).query(userQry).then(function (cursor) {
64
+ return cursor.all();
65
+ });
66
+ })).then(function (results) {
67
+ var list = (0, _uniqBy["default"])((0, _flatten["default"])(results), '_key');
68
+ return list.map(function (item) {
69
+ var itemId = item._id,
70
+ itemName = item.name;
71
+ var collectionIdList = itemId.split('/');
72
+ var collection = collectionIdList[0];
73
+ var name = collection === 'users' ? (0, _users.getDisplayName)(item) : itemName;
74
+ return _objectSpread({}, item, {
75
+ name: name
76
+ });
77
+ });
78
+ });
79
+ }
80
+
81
+ var limit = (0, _utils.getLimit)(from, to);
82
+ var aqlQry = "FOR u IN users\n FILTER u.phone == \"".concat(query, "\"\n ").concat(limit.aql, "\n RETURN u");
83
+ return (0, _utils.useDb)(database).query(aqlQry).then(function (cursor) {
84
+ return cursor.all();
85
+ }).then(function () {
86
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
87
+ return list.map(function () {
88
+ var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
89
+ var itemId = item._id,
90
+ itemName = item.name;
91
+ var collectionIdList = itemId.split('/');
92
+ var collection = collectionIdList[0];
93
+ var name = collection === 'users' ? (0, _users.getDisplayName)(item) : itemName;
94
+ return _objectSpread({}, item, {
95
+ name: name
96
+ });
97
+ });
98
+ })["catch"](function (error) {
99
+ return (0, _utils.logException)({
100
+ action: action,
101
+ category: eventCategory,
102
+ label: 'db_error',
103
+ value: error.message
104
+ }, context).then(function () {
105
+ return null;
106
+ });
107
+ });
108
+ };
109
+
110
+ exports.getSearchList = getSearchList;
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3NlYXJjaC50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiZ2V0U2VhcmNoTGlzdCIsImNvbnRleHQiLCJxdWVyeSIsImZyb20iLCJ0byIsImFjdGlvbiIsImRhdGFiYXNlIiwiaXNTdHJpbmciLCJmaWVsZHMiLCJjb2xsZWN0aW9uIiwiZmllbGQiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwib2JqIiwicXJ5IiwidXNlclFyeSIsImFxbCIsInRoZW4iLCJjdXJzb3IiLCJyZXN1bHRzIiwibGlzdCIsIml0ZW0iLCJpdGVtSWQiLCJfaWQiLCJpdGVtTmFtZSIsIm5hbWUiLCJjb2xsZWN0aW9uSWRMaXN0Iiwic3BsaXQiLCJsaW1pdCIsImFxbFFyeSIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCIsInZhbHVlIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBOztBQUdBOztBQUNBOztBQUtBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGFBQXFCLEdBQUcsUUFBOUI7O0FBRU8sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxPQUFELEVBQXNCQyxLQUF0QixFQUFxQ0MsSUFBckMsRUFBbURDLEVBQW5ELEVBQXVGO0FBQ2xILE1BQU1DLE1BQWMsR0FBRyxTQUF2QjtBQURrSCxNQUUzR0MsUUFGMkcsR0FFL0ZMLE9BRitGLENBRTNHSyxRQUYyRztBQUdsSCxNQUFNQyxRQUFpQixHQUFHLElBQTFCOztBQUVBLE1BQUdBLFFBQUgsRUFBYTtBQUNYLFFBQU1DLE1BQWEsR0FBRyxDQUNwQjtBQUFDQyxNQUFBQSxVQUFVLEVBQUUsT0FBYjtBQUFzQkMsTUFBQUEsS0FBSyxFQUFFO0FBQTdCLEtBRG9CLEVBRXBCO0FBQUNELE1BQUFBLFVBQVUsRUFBRSxPQUFiO0FBQXNCQyxNQUFBQSxLQUFLLEVBQUU7QUFBN0IsS0FGb0IsRUFHcEI7QUFBQ0QsTUFBQUEsVUFBVSxFQUFFLE9BQWI7QUFB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QSxLQUFLLEVBQUUsVUFINkI7QUFJcENDLE1BQUFBLEtBQUssRUFBRUgsS0FBSyxDQUFDSTtBQUp1QixLQUFiLEVBS3RCbEMsT0FMc0IsRUFLYmlCLElBTGEsQ0FLUjtBQUFBLGFBQU0sSUFBTjtBQUFBLEtBTFEsQ0FBbEI7QUFBQSxHQVZGLENBQVA7QUFnQkQsQ0F2RE0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvYXFsLXF1ZXJ5JztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvY3Vyc29yJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB1bmlxQnkgZnJvbSAnbG9kYXNoL3VuaXFCeSc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGInO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7VXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzJztcbmltcG9ydCB7Z2V0TGltaXQsIGxvZ0V4Y2VwdGlvbiwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7Z2V0RGlzcGxheU5hbWV9IGZyb20gJy4vdXNlcnMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc2VhcmNoJztcblxuZXhwb3J0IGNvbnN0IGdldFNlYXJjaExpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldExpc3QnO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgaXNTdHJpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGlmKGlzU3RyaW5nKSB7XG4gICAgY29uc3QgZmllbGRzOiBhbnlbXSA9IFtcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ2ZpcnN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdsYXN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdlbWFpbCd9LFxuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAndXNlcm5hbWUnfSxcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ25hbWUnfVxuICAgIF07XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZmllbGRzLm1hcCgob2JqKSA9PiB7XG4gICAgICBjb25zdCBxcnk6IHN0cmluZyA9IGBwcmVmaXg6JHtxdWVyeX1gO1xuICAgICAgY29uc3QgdXNlclFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUgSU4gRlVMTFRFWFQoJHtvYmouY29sbGVjdGlvbn0sICR7b2JqLmZpZWxkfSwgJHtxcnl9LCA1MCkgUkVUVVJOIHVgO1xuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeSh1c2VyUXJ5KS50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpO1xuICAgIH0pKVxuICAgICAgLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHVuaXFCeShmbGF0dGVuKHJlc3VsdHMpLCAnX2tleScpO1xuXG4gICAgICAgIHJldHVybiBsaXN0Lm1hcCgoaXRlbTogVXNlclR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCB7X2lkOiBpdGVtSWQsIG5hbWU6IGl0ZW1OYW1lfSA9IGl0ZW07XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbklkTGlzdDogc3RyaW5nW10gPSBpdGVtSWQuc3BsaXQoJy8nKTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBzdHJpbmcgPSBjb2xsZWN0aW9uSWRMaXN0WzBdO1xuICAgICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGNvbGxlY3Rpb24gPT09ICd1c2VycycgPyBnZXREaXNwbGF5TmFtZShpdGVtKSA6IGl0ZW1OYW1lO1xuXG4gICAgICAgICAgcmV0dXJuIHsuLi5pdGVtLCBuYW1lfTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EQkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdSBJTiB1c2Vyc1xuICAgICAgICBGSUxURVIgdS5waG9uZSA9PSBcIiR7cXVlcnl9XCJcbiAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgIFJFVFVSTiB1YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0OiBVc2VyVHlwZVtdID0gW10pID0+IGxpc3QubWFwKChpdGVtID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHtfaWQ6IGl0ZW1JZCwgbmFtZTogaXRlbU5hbWV9ID0gaXRlbTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb25JZExpc3Q6IHN0cmluZ1tdID0gaXRlbUlkLnNwbGl0KCcvJyk7XG4gICAgICBjb25zdCBjb2xsZWN0aW9uOiBzdHJpbmcgPSBjb2xsZWN0aW9uSWRMaXN0WzBdO1xuICAgICAgY29uc3QgbmFtZTogc3RyaW5nID0gY29sbGVjdGlvbiA9PT0gJ3VzZXJzJyA/IGdldERpc3BsYXlOYW1lKGl0ZW0pIDogaXRlbU5hbWU7XG5cbiAgICAgIHJldHVybiB7Li4uaXRlbSwgbmFtZX07XG4gICAgfSkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InLFxuICAgICAgdmFsdWU6IGVycm9yLm1lc3NhZ2VcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXX0=
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sendSmsTemplate = exports.sendSms = void 0;
7
+
8
+ var _utils = require("@nlabs/utils");
9
+
10
+ var _fs = _interopRequireDefault(require("fs"));
11
+
12
+ var _twilio = _interopRequireDefault(require("twilio"));
13
+
14
+ var _config = require("../config");
15
+
16
+ var _email = require("./email");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ /**
21
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
22
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
23
+ */
24
+ // const eventCategory: string = 'sms';
25
+ // Twilio
26
+ var sendSms = function sendSms(params) {
27
+ var _params$app = params.app,
28
+ app = _params$app === void 0 ? {} : _params$app,
29
+ content = params.content,
30
+ _params$user = params.user,
31
+ user = _params$user === void 0 ? {} : _params$user;
32
+ var country = user.country || 'US';
33
+ var phone = (0, _utils.parsePhone)(user.phone, country);
34
+ var templateContent = (0, _email.appTemplate)(app, content);
35
+ var twilio = (0, _twilio["default"])(_config.Config.get('twilio.sid'), _config.Config.get('twilio.token'));
36
+ var cfg = {
37
+ body: templateContent,
38
+ from: _config.Config.get('twilio.number'),
39
+ to: phone
40
+ };
41
+ return new Promise(function (resolve, reject) {
42
+ twilio.sendMessage(cfg, function (error, data) {
43
+ if (error) {
44
+ reject(new Error(error.error_message));
45
+ } else {
46
+ resolve(data);
47
+ }
48
+ });
49
+ });
50
+ };
51
+
52
+ exports.sendSms = sendSms;
53
+
54
+ var sendSmsTemplate = function sendSmsTemplate(templateName, smsParams) {
55
+ var app = smsParams.app,
56
+ user = smsParams.user,
57
+ vars = smsParams.vars;
58
+
59
+ try {
60
+ var data = _fs["default"].readFileSync("./templates/sms/".concat(templateName, ".txt"), 'utf8');
61
+
62
+ var text = (0, _email.appTemplate)(app, data, vars);
63
+ var params = {
64
+ app: app,
65
+ text: text,
66
+ user: user
67
+ };
68
+ return sendSms(params).then(function (res) {
69
+ return res.status === 'queued';
70
+ })["catch"](function (error) {
71
+ throw error;
72
+ });
73
+ } catch (error) {
74
+ return Promise.reject(error);
75
+ }
76
+ };
77
+
78
+ exports.sendSmsTemplate = sendSmsTemplate;
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3Ntcy50cyJdLCJuYW1lcyI6WyJzZW5kU21zIiwicGFyYW1zIiwiYXBwIiwiY29udGVudCIsInVzZXIiLCJjb3VudHJ5IiwicGhvbmUiLCJ0ZW1wbGF0ZUNvbnRlbnQiLCJ0d2lsaW8iLCJDb25maWciLCJnZXQiLCJjZmciLCJib2R5IiwiZnJvbSIsInRvIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZW5kTWVzc2FnZSIsImVycm9yIiwiZGF0YSIsIkVycm9yIiwiZXJyb3JfbWVzc2FnZSIsInNlbmRTbXNUZW1wbGF0ZSIsInRlbXBsYXRlTmFtZSIsInNtc1BhcmFtcyIsInZhcnMiLCJmcyIsInJlYWRGaWxlU3luYyIsInRleHQiLCJ0aGVuIiwicmVzIiwic3RhdHVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBRUE7Ozs7QUFWQTs7OztBQVlBO0FBRUE7QUFDTyxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxNQUFELEVBQWdDO0FBQUEsb0JBS2pEQSxNQUxpRCxDQUVuREMsR0FGbUQ7QUFBQSxNQUVuREEsR0FGbUQsNEJBRTdDLEVBRjZDO0FBQUEsTUFHbkRDLE9BSG1ELEdBS2pERixNQUxpRCxDQUduREUsT0FIbUQ7QUFBQSxxQkFLakRGLE1BTGlELENBSW5ERyxJQUptRDtBQUFBLE1BSW5EQSxJQUptRCw2QkFJNUMsRUFKNEM7QUFPckQsTUFBTUMsT0FBTyxHQUFHRCxJQUFJLENBQUNDLE9BQUwsSUFBZ0IsSUFBaEM7QUFDQSxNQUFNQyxLQUFLLEdBQUcsdUJBQVdGLElBQUksQ0FBQ0UsS0FBaEIsRUFBdUJELE9BQXZCLENBQWQ7QUFDQSxNQUFNRSxlQUF1QixHQUFHLHdCQUFZTCxHQUFaLEVBQWlCQyxPQUFqQixDQUFoQztBQUVBLE1BQU1LLE1BQVcsR0FBRyx3QkFBVUMsZUFBT0MsR0FBUCxDQUFXLFlBQVgsQ0FBVixFQUFvQ0QsZUFBT0MsR0FBUCxDQUFXLGNBQVgsQ0FBcEMsQ0FBcEI7QUFDQSxNQUFNQyxHQUFzQixHQUFHO0FBQzdCQyxJQUFBQSxJQUFJLEVBQUVMLGVBRHVCO0FBRTdCTSxJQUFBQSxJQUFJLEVBQUVKLGVBQU9DLEdBQVAsQ0FBVyxlQUFYLENBRnVCO0FBRzdCSSxJQUFBQSxFQUFFLEVBQUVSO0FBSHlCLEdBQS9CO0FBTUEsU0FBTyxJQUFJUyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQ3RDVCxJQUFBQSxNQUFNLENBQUNVLFdBQVAsQ0FBbUJQLEdBQW5CLEVBQXdCLFVBQUNRLEtBQUQsRUFBUUMsSUFBUixFQUFpQjtBQUN2QyxVQUFHRCxLQUFILEVBQVU7QUFDUkYsUUFBQUEsTUFBTSxDQUFDLElBQUlJLEtBQUosQ0FBVUYsS0FBSyxDQUFDRyxhQUFoQixDQUFELENBQU47QUFDRCxPQUZELE1BRU87QUFDTE4sUUFBQUEsT0FBTyxDQUFDSSxJQUFELENBQVA7QUFDRDtBQUNGLEtBTkQ7QUFPRCxHQVJNLENBQVA7QUFTRCxDQTNCTTs7OztBQTZCQSxJQUFNRyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLFlBQUQsRUFBdUJDLFNBQXZCLEVBQXNFO0FBQUEsTUFDNUZ2QixHQUQ0RixHQUN6RXVCLFNBRHlFLENBQzVGdkIsR0FENEY7QUFBQSxNQUN2RkUsSUFEdUYsR0FDekVxQixTQUR5RSxDQUN2RnJCLElBRHVGO0FBQUEsTUFDakZzQixJQURpRixHQUN6RUQsU0FEeUUsQ0FDakZDLElBRGlGOztBQUVuRyxNQUFJO0FBQ0YsUUFBTU4sSUFBSSxHQUFHTyxlQUFHQyxZQUFILDJCQUFtQ0osWUFBbkMsV0FBdUQsTUFBdkQsQ0FBYjs7QUFDQSxRQUFNSyxJQUFJLEdBQUcsd0JBQVkzQixHQUFaLEVBQWlCa0IsSUFBakIsRUFBdUJNLElBQXZCLENBQWI7QUFDQSxRQUFNekIsTUFBTSxHQUFHO0FBQUNDLE1BQUFBLEdBQUcsRUFBSEEsR0FBRDtBQUFNMkIsTUFBQUEsSUFBSSxFQUFKQSxJQUFOO0FBQVl6QixNQUFBQSxJQUFJLEVBQUpBO0FBQVosS0FBZjtBQUVBLFdBQU9KLE9BQU8sQ0FBQ0MsTUFBRCxDQUFQLENBQ0o2QixJQURJLENBQ0MsVUFBQ0MsR0FBRDtBQUFBLGFBQVNBLEdBQUcsQ0FBQ0MsTUFBSixLQUFlLFFBQXhCO0FBQUEsS0FERCxXQUVFLFVBQUNiLEtBQUQsRUFBa0I7QUFDdkIsWUFBTUEsS0FBTjtBQUNELEtBSkksQ0FBUDtBQUtELEdBVkQsQ0FVRSxPQUFNQSxLQUFOLEVBQWE7QUFDYixXQUFPSixPQUFPLENBQUNFLE1BQVIsQ0FBZUUsS0FBZixDQUFQO0FBQ0Q7QUFDRixDQWZNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cGFyc2VQaG9uZX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgdHdpbGlvU2RrIGZyb20gJ3R3aWxpbyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtTTVNQYXJhbXNUeXBlLCBUd2lsaW9PcHRpb25zVHlwZX0gZnJvbSAnLi4vdHlwZXMvbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge2FwcFRlbXBsYXRlfSBmcm9tICcuL2VtYWlsJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3Ntcyc7XG5cbi8vIFR3aWxpb1xuZXhwb3J0IGNvbnN0IHNlbmRTbXMgPSAocGFyYW1zOiBTTVNQYXJhbXNUeXBlKTogYW55ID0+IHtcbiAgY29uc3Qge1xuICAgIGFwcCA9IHt9LFxuICAgIGNvbnRlbnQsXG4gICAgdXNlciA9IHt9XG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgY291bnRyeSA9IHVzZXIuY291bnRyeSB8fCAnVVMnO1xuICBjb25zdCBwaG9uZSA9IHBhcnNlUGhvbmUodXNlci5waG9uZSwgY291bnRyeSk7XG4gIGNvbnN0IHRlbXBsYXRlQ29udGVudDogc3RyaW5nID0gYXBwVGVtcGxhdGUoYXBwLCBjb250ZW50KTtcblxuICBjb25zdCB0d2lsaW86IGFueSA9IHR3aWxpb1NkayhDb25maWcuZ2V0KCd0d2lsaW8uc2lkJyksIENvbmZpZy5nZXQoJ3R3aWxpby50b2tlbicpKTtcbiAgY29uc3QgY2ZnOiBUd2lsaW9PcHRpb25zVHlwZSA9IHtcbiAgICBib2R5OiB0ZW1wbGF0ZUNvbnRlbnQsXG4gICAgZnJvbTogQ29uZmlnLmdldCgndHdpbGlvLm51bWJlcicpLFxuICAgIHRvOiBwaG9uZVxuICB9O1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHdpbGlvLnNlbmRNZXNzYWdlKGNmZywgKGVycm9yLCBkYXRhKSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKGVycm9yLmVycm9yX21lc3NhZ2UpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3Qgc2VuZFNtc1RlbXBsYXRlID0gKHRlbXBsYXRlTmFtZTogc3RyaW5nLCBzbXNQYXJhbXM6IFNNU1BhcmFtc1R5cGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3Qge2FwcCwgdXNlciwgdmFyc30gPSBzbXNQYXJhbXM7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhgLi90ZW1wbGF0ZXMvc21zLyR7dGVtcGxhdGVOYW1lfS50eHRgLCAndXRmOCcpO1xuICAgIGNvbnN0IHRleHQgPSBhcHBUZW1wbGF0ZShhcHAsIGRhdGEsIHZhcnMpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHthcHAsIHRleHQsIHVzZXJ9O1xuXG4gICAgcmV0dXJuIHNlbmRTbXMocGFyYW1zKVxuICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgfVxufTtcbiJdfQ==