@nlabs/reaktor 0.1.0 → 0.1.2

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 (112) hide show
  1. package/package.json +13 -13
  2. package/src/config.ts +8 -2
  3. package/src/data/conversations.ts +2 -4
  4. package/src/data/email.ts +3 -4
  5. package/src/data/files.ts +2 -2
  6. package/src/data/images.ts +5 -5
  7. package/src/data/posts.ts +239 -167
  8. package/src/data/users.ts +0 -2
  9. package/src/types/apps.ts +0 -1
  10. package/src/types/auth.ts +1 -0
  11. package/src/types/files.ts +0 -2
  12. package/src/types/groups.ts +0 -1
  13. package/src/types/images.ts +0 -1
  14. package/src/types/locations.ts +0 -1
  15. package/src/types/payments.ts +0 -5
  16. package/src/types/posts.ts +13 -4
  17. package/src/types/tags.ts +0 -1
  18. package/src/utils/auth.ts +35 -2
  19. package/src/utils/graphql.ts +7 -0
  20. package/src/utils/index.ts +1 -0
  21. package/lib/config.d.ts +0 -21
  22. package/lib/config.js +0 -127
  23. package/lib/data/conversations.d.ts +0 -6
  24. package/lib/data/conversations.js +0 -201
  25. package/lib/data/dynamodb.d.ts +0 -8
  26. package/lib/data/dynamodb.js +0 -139
  27. package/lib/data/email.d.ts +0 -7
  28. package/lib/data/email.js +0 -164
  29. package/lib/data/files.d.ts +0 -16
  30. package/lib/data/files.js +0 -407
  31. package/lib/data/groups.d.ts +0 -13
  32. package/lib/data/groups.js +0 -354
  33. package/lib/data/images.d.ts +0 -12
  34. package/lib/data/images.js +0 -668
  35. package/lib/data/index.d.ts +0 -19
  36. package/lib/data/index.js +0 -24
  37. package/lib/data/ios.d.ts +0 -6
  38. package/lib/data/ios.js +0 -302
  39. package/lib/data/locations.d.ts +0 -3
  40. package/lib/data/locations.js +0 -132
  41. package/lib/data/messages.d.ts +0 -9
  42. package/lib/data/messages.js +0 -248
  43. package/lib/data/notifications.d.ts +0 -5
  44. package/lib/data/notifications.js +0 -42
  45. package/lib/data/payments.d.ts +0 -11
  46. package/lib/data/payments.js +0 -748
  47. package/lib/data/posts.d.ts +0 -14
  48. package/lib/data/posts.js +0 -458
  49. package/lib/data/reactions.d.ts +0 -6
  50. package/lib/data/reactions.js +0 -218
  51. package/lib/data/s3.d.ts +0 -6
  52. package/lib/data/s3.js +0 -103
  53. package/lib/data/search.d.ts +0 -3
  54. package/lib/data/search.js +0 -98
  55. package/lib/data/sms.d.ts +0 -3
  56. package/lib/data/sms.js +0 -59
  57. package/lib/data/subscription.d.ts +0 -7
  58. package/lib/data/subscription.js +0 -284
  59. package/lib/data/tags.d.ts +0 -14
  60. package/lib/data/tags.js +0 -304
  61. package/lib/data/users.d.ts +0 -12
  62. package/lib/data/users.js +0 -312
  63. package/lib/index.d.ts +0 -3
  64. package/lib/index.js +0 -8
  65. package/lib/types/apps.d.ts +0 -44
  66. package/lib/types/apps.js +0 -2
  67. package/lib/types/arangodb.d.ts +0 -17
  68. package/lib/types/arangodb.js +0 -2
  69. package/lib/types/auth.d.ts +0 -9
  70. package/lib/types/auth.js +0 -2
  71. package/lib/types/conversations.d.ts +0 -6
  72. package/lib/types/conversations.js +0 -2
  73. package/lib/types/email.d.ts +0 -12
  74. package/lib/types/email.js +0 -2
  75. package/lib/types/files.d.ts +0 -28
  76. package/lib/types/files.js +0 -2
  77. package/lib/types/google.d.ts +0 -27
  78. package/lib/types/google.js +0 -2
  79. package/lib/types/groups.d.ts +0 -22
  80. package/lib/types/groups.js +0 -2
  81. package/lib/types/images.d.ts +0 -25
  82. package/lib/types/images.js +0 -2
  83. package/lib/types/index.d.ts +0 -17
  84. package/lib/types/index.js +0 -22
  85. package/lib/types/locations.d.ts +0 -21
  86. package/lib/types/locations.js +0 -2
  87. package/lib/types/messages.d.ts +0 -12
  88. package/lib/types/messages.js +0 -2
  89. package/lib/types/notifications.d.ts +0 -19
  90. package/lib/types/notifications.js +0 -2
  91. package/lib/types/payments.d.ts +0 -119
  92. package/lib/types/payments.js +0 -2
  93. package/lib/types/posts.d.ts +0 -20
  94. package/lib/types/posts.js +0 -2
  95. package/lib/types/reactions.d.ts +0 -4
  96. package/lib/types/reactions.js +0 -2
  97. package/lib/types/tags.d.ts +0 -10
  98. package/lib/types/tags.js +0 -2
  99. package/lib/types/users.d.ts +0 -78
  100. package/lib/types/users.js +0 -2
  101. package/lib/utils/analytics.d.ts +0 -3
  102. package/lib/utils/analytics.js +0 -47
  103. package/lib/utils/arangodb.d.ts +0 -9
  104. package/lib/utils/arangodb.js +0 -98
  105. package/lib/utils/auth.d.ts +0 -2
  106. package/lib/utils/auth.js +0 -43
  107. package/lib/utils/index.d.ts +0 -5
  108. package/lib/utils/index.js +0 -10
  109. package/lib/utils/objects.d.ts +0 -3
  110. package/lib/utils/objects.js +0 -34
  111. package/lib/utils/redis.d.ts +0 -1
  112. package/lib/utils/redis.js +0 -15
@@ -1,218 +0,0 @@
1
- function _templateObject4() {
2
- 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"]);
3
-
4
- _templateObject4 = function _templateObject4() {
5
- return data;
6
- };
7
-
8
- return data;
9
- }
10
-
11
- function _templateObject3() {
12
- var data = _taggedTemplateLiteral(["FOR p, r IN INBOUND ", " reaction\n FILTER r.type == \"posts\" && r._from == ", "\n REMOVE r IN reactions\n RETURN r"]);
13
-
14
- _templateObject3 = function _templateObject3() {
15
- return data;
16
- };
17
-
18
- return data;
19
- }
20
-
21
- function _templateObject2() {
22
- 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)}"]);
23
-
24
- _templateObject2 = function _templateObject2() {
25
- return data;
26
- };
27
-
28
- return data;
29
- }
30
-
31
- function _templateObject() {
32
- 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)}"]);
33
-
34
- _templateObject = function _templateObject() {
35
- return data;
36
- };
37
-
38
- return data;
39
- }
40
-
41
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
42
-
43
- import { createHash, parseChar, parseId, parseNum } from '@nlabs/utils';
44
- import { aql } from 'arangojs';
45
- import { logError, logException, useDb } from '../utils';
46
- var eventCategory = 'reactions';
47
- export var addGroupReaction = function addGroupReaction(context) {
48
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
49
- var action = 'reaction';
50
- var database = context.database,
51
- sessionId = context.userId;
52
-
53
- if (!sessionId) {
54
- return logException({
55
- action: action,
56
- category: eventCategory,
57
- label: 'unauthorized',
58
- value: 'invalid_session'
59
- }, context).then(function () {
60
- return null;
61
- });
62
- }
63
-
64
- var itemId = params.id,
65
- _params$value = params.value,
66
- itemValue = _params$value === void 0 ? 'like' : _params$value;
67
- var formatItemId = parseId(itemId);
68
- var formatValue = parseChar(itemValue, 32);
69
- var edgeCollection = useDb(database).edgeCollection('hasReaction'); // Remove existing likes
70
-
71
- var groupDocId = "groups/".concat(formatItemId);
72
- var userDocId = "users/".concat(sessionId);
73
- var edgeId = createHash("reaction-".concat(formatItemId, "-").concat(sessionId));
74
- var edge = {
75
- _key: edgeId,
76
- added: Date.now(),
77
- type: 'group',
78
- value: formatValue
79
- };
80
- return edgeCollection.save(edge, userDocId, groupDocId).then(function () {
81
- return true;
82
- });
83
- };
84
- export var getGroupReactions = function getGroupReactions(context) {
85
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
86
- var action = 'getReactions';
87
- var database = context.database;
88
- var groupId = params.id;
89
- var groupDocId = "groups/".concat(parseId(groupId)); // Query
90
-
91
- var aqlQry = aql(_templateObject(), groupDocId);
92
- return useDb(database).query(aqlQry).then(function (cursor) {
93
- return cursor.all();
94
- }).catch(function (error) {
95
- return logError({
96
- action: action,
97
- category: eventCategory,
98
- label: 'db_error'
99
- }, error, context).then(function () {
100
- return null;
101
- });
102
- });
103
- };
104
- export var getReactionsByUser = function getReactionsByUser(context, groupId) {
105
- var action = 'getReactionsByUser';
106
- var database = context.database,
107
- sessionId = context.userId;
108
- var groupDocId = "groups/".concat(parseId(groupId));
109
- var userDocId = "users/".concat(sessionId); // Query
110
-
111
- var aqlQry = aql(_templateObject2(), groupDocId, userDocId);
112
- return useDb(database).query(aqlQry).then(function (cursor) {
113
- return cursor.all();
114
- }).catch(function (error) {
115
- return logError({
116
- action: action,
117
- category: eventCategory,
118
- label: 'db_error'
119
- }, error, context).then(function () {
120
- return null;
121
- });
122
- });
123
- };
124
- export var getUsersByReaction = function getUsersByReaction(context) {
125
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
126
- var action = 'getUsersByReaction';
127
- var database = context.database,
128
- sessionId = context.userId;
129
-
130
- if (!sessionId) {
131
- return logException({
132
- action: action,
133
- category: eventCategory,
134
- label: 'unauthorized',
135
- value: 'invalid_session'
136
- }, context).then(function () {
137
- return null;
138
- });
139
- }
140
-
141
- var _params$filters = params.filters,
142
- filters = _params$filters === void 0 ? [] : _params$filters,
143
- groupId = params.id,
144
- value = params.value;
145
- var reaction = parseChar(value, 32);
146
- var groupDocId = "groups/".concat(parseId(groupId));
147
- var filterStr = filters.map(function (filter) {
148
- var conditional = filter.conditional,
149
- name = filter.name,
150
- queryValue = filter.value;
151
- var filterCond = conditional;
152
-
153
- if (conditional !== '>=' && conditional !== '<=' && conditional !== '>' && conditional !== '<') {
154
- filterCond = '==';
155
- }
156
-
157
- switch (name) {
158
- case 'added':
159
- return "r.added ".concat(filterCond, " ").concat(parseNum(queryValue));
160
-
161
- default:
162
- return '';
163
- }
164
- }).concat(["r.value == \"".concat(reaction, "\""), 'u._id == r._from']).join(' && '); // Query
165
-
166
- var aqlQry = "FOR g, r IN INBOUND \"".concat(groupDocId, "\" hasReaction\n FOR u IN users\n FILTER ").concat(filterStr, "\n RETURN u");
167
- return useDb(database).query(aqlQry).then(function (cursor) {
168
- return cursor.all();
169
- }).catch(function (error) {
170
- return logError({
171
- action: action,
172
- category: eventCategory,
173
- label: 'db_error'
174
- }, error, context).then(function () {
175
- return null;
176
- });
177
- });
178
- };
179
- export var postReaction = function postReaction(context, postId) {
180
- var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'like';
181
- var database = context.database,
182
- sessionId = context.userId;
183
- var formatItemId = parseId(postId);
184
- var db = useDb(database);
185
- var edgeCollection = db.edgeCollection('reactions');
186
- var now = Date.now(); // Remove existing reaction to post
187
-
188
- var postDocId = "posts/".concat(formatItemId);
189
- var userDocId = "users/".concat(sessionId);
190
- var aqlQry = aql(_templateObject3(), postDocId, userDocId);
191
- return db.query(aqlQry).then(function () {
192
- var edgeId = createHash("reaction-".concat(postId, "-").concat(sessionId));
193
- var edge = {
194
- _key: edgeId,
195
- added: now,
196
- type: 'posts',
197
- value: type
198
- };
199
- return edgeCollection.save(edge, userDocId, postDocId).then(function () {
200
- var reactionAqlQry = aql(_templateObject4());
201
- return db.query(reactionAqlQry).then(function (cursor) {
202
- return cursor.next();
203
- }).then(function () {
204
- var result = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
205
- reactions: []
206
- };
207
- return result;
208
- }).catch(function (error) {
209
- throw error;
210
- });
211
- }).catch(function (error) {
212
- throw error;
213
- });
214
- }).catch(function (error) {
215
- throw error;
216
- });
217
- };
218
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3JlYWN0aW9ucy50cyJdLCJuYW1lcyI6WyJjcmVhdGVIYXNoIiwicGFyc2VDaGFyIiwicGFyc2VJZCIsInBhcnNlTnVtIiwiYXFsIiwibG9nRXJyb3IiLCJsb2dFeGNlcHRpb24iLCJ1c2VEYiIsImV2ZW50Q2F0ZWdvcnkiLCJhZGRHcm91cFJlYWN0aW9uIiwiY29udGV4dCIsInBhcmFtcyIsImFjdGlvbiIsImRhdGFiYXNlIiwic2Vzc2lvbklkIiwidXNlcklkIiwiY2F0ZWdvcnkiLCJsYWJlbCIsInZhbHVlIiwidGhlbiIsIml0ZW1JZCIsImlkIiwiaXRlbVZhbHVlIiwiZm9ybWF0SXRlbUlkIiwiZm9ybWF0VmFsdWUiLCJlZGdlQ29sbGVjdGlvbiIsImdyb3VwRG9jSWQiLCJ1c2VyRG9jSWQiLCJlZGdlSWQiLCJlZGdlIiwiX2tleSIsImFkZGVkIiwiRGF0ZSIsIm5vdyIsInR5cGUiLCJzYXZlIiwiZ2V0R3JvdXBSZWFjdGlvbnMiLCJncm91cElkIiwiYXFsUXJ5IiwicXVlcnkiLCJjdXJzb3IiLCJhbGwiLCJjYXRjaCIsImVycm9yIiwiZ2V0UmVhY3Rpb25zQnlVc2VyIiwiZ2V0VXNlcnNCeVJlYWN0aW9uIiwiZmlsdGVycyIsInJlYWN0aW9uIiwiZmlsdGVyU3RyIiwibWFwIiwiZmlsdGVyIiwiY29uZGl0aW9uYWwiLCJuYW1lIiwicXVlcnlWYWx1ZSIsImZpbHRlckNvbmQiLCJjb25jYXQiLCJqb2luIiwicG9zdFJlYWN0aW9uIiwicG9zdElkIiwiZGIiLCJwb3N0RG9jSWQiLCJyZWFjdGlvbkFxbFFyeSIsIm5leHQiLCJyZXN1bHQiLCJyZWFjdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLFNBQVFBLFVBQVIsRUFBb0JDLFNBQXBCLEVBQStCQyxPQUEvQixFQUF3Q0MsUUFBeEMsUUFBdUQsY0FBdkQ7QUFDQSxTQUFRQyxHQUFSLFFBQTRDLFVBQTVD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VCxFQUNKMUMsSUFESSxDQUNDLFVBQUNxQixNQUFEO0FBQUEsZUFBeUJBLE1BQU0sQ0FBQ3NCLElBQVAsRUFBekI7QUFBQSxPQURELEVBRUozQyxJQUZJLENBRUM7QUFBQSxZQUFDNEMsTUFBRCx1RUFBVTtBQUFDQyxVQUFBQSxTQUFTLEVBQUU7QUFBWixTQUFWO0FBQUEsZUFBOEJELE1BQTlCO0FBQUEsT0FGRCxFQUdKckIsS0FISSxDQUdFLFVBQUNDLEtBQUQsRUFBa0I7QUFDdkIsY0FBTUEsS0FBTjtBQUNELE9BTEksQ0FBUDtBQU1ELEtBZkksRUFnQkpELEtBaEJJLENBZ0JFLFVBQUNDLEtBQUQsRUFBa0I7QUFDdkIsWUFBTUEsS0FBTjtBQUNELEtBbEJJLENBQVA7QUFtQkQsR0E3QkksRUE4QkpELEtBOUJJLENBOEJFLFVBQUNDLEtBQUQsRUFBa0I7QUFDdkIsVUFBTUEsS0FBTjtBQUNELEdBaENJLENBQVA7QUFpQ0QsQ0FoRE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlQ2hhciwgcGFyc2VJZCwgcGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgRGF0YWJhc2UsIEVkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2FxbC1xdWVyeSc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2N1cnNvcic7XG5cbmltcG9ydCB7QXBpQ29udGV4dCwgUXVlcnlGaWx0ZXIsIFJlYWN0aW9uVHlwZSwgVXNlclJlYWN0aW9uUXVlcnksIFVzZXJSZWFjdGlvblR5cGUsIFVzZXJUeXBlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2xvZ0Vycm9yLCBsb2dFeGNlcHRpb24sIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdyZWFjdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgYWRkR3JvdXBSZWFjdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBwYXJhbXM6IFVzZXJSZWFjdGlvblR5cGUgPSB7fSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdyZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcblxuICBpZighc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCB7aWQ6IGl0ZW1JZCwgdmFsdWU6IGl0ZW1WYWx1ZSA9ICdsaWtlJ30gPSBwYXJhbXM7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VJZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRWYWx1ZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1WYWx1ZSwgMzIpO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbiA9IHVzZURiKGRhdGFiYXNlKS5lZGdlQ29sbGVjdGlvbignaGFzUmVhY3Rpb24nKTtcblxuICAvLyBSZW1vdmUgZXhpc3RpbmcgbGlrZXNcbiAgY29uc3QgZ3JvdXBEb2NJZDogc3RyaW5nID0gYGdyb3Vwcy8ke2Zvcm1hdEl0ZW1JZH1gO1xuICBjb25zdCB1c2VyRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHJlYWN0aW9uLSR7Zm9ybWF0SXRlbUlkfS0ke3Nlc3Npb25JZH1gKTtcbiAgY29uc3QgZWRnZTogYW55ID0ge1xuICAgIF9rZXk6IGVkZ2VJZCxcbiAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICB0eXBlOiAnZ3JvdXAnLFxuICAgIHZhbHVlOiBmb3JtYXRWYWx1ZVxuICB9O1xuXG4gIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHVzZXJEb2NJZCwgZ3JvdXBEb2NJZCkudGhlbigoKSA9PiB0cnVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHcm91cFJlYWN0aW9ucyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBwYXJhbXM6IFVzZXJSZWFjdGlvblR5cGUgPSB7fSk6IFByb21pc2U8VXNlclJlYWN0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRSZWFjdGlvbnMnO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3Qge2lkOiBncm91cElkfTogVXNlclJlYWN0aW9uVHlwZSA9IHBhcmFtcztcbiAgY29uc3QgZ3JvdXBEb2NJZDogc3RyaW5nID0gYGdyb3Vwcy8ke3BhcnNlSWQoZ3JvdXBJZCl9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBnLCByIElOIElOQk9VTkQgJHtncm91cERvY0lkfSBoYXNSZWFjdGlvblxuICAgICAgQ09MTEVDVCByZWFjdGlvbk5hbWUgPSByLnZhbHVlIElOVE8gcmVhY3Rpb25JdGVtc1xuICAgICAgUkVUVVJOIHt2YWx1ZTogcmVhY3Rpb25OYW1lLCBjb3VudDogTEVOR1RIKHJlYWN0aW9uSXRlbXNbKl0uci52YWx1ZSl9YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlYWN0aW9uc0J5VXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBncm91cElkOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJSZWFjdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRSZWFjdGlvbnNCeVVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGdyb3VwRG9jSWQ6IHN0cmluZyA9IGBncm91cHMvJHtwYXJzZUlkKGdyb3VwSWQpfWA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgZywgciBJTiBJTkJPVU5EICR7Z3JvdXBEb2NJZH0gaGFzUmVhY3Rpb25cbiAgICAgIEZJTFRFUiByLl9mcm9tID09ICR7dXNlckRvY0lkfVxuICAgICAgQ09MTEVDVCByZWFjdGlvbk5hbWUgPSByLnZhbHVlIElOVE8gcmVhY3Rpb25JdGVtc1xuICAgICAgUkVUVVJOIHt2YWx1ZTogcmVhY3Rpb25OYW1lLCBjb3VudDogTEVOR1RIKHJlYWN0aW9uSXRlbXNbKl0uci52YWx1ZSl9YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVzZXJzQnlSZWFjdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBwYXJhbXM6IFVzZXJSZWFjdGlvblF1ZXJ5ID0ge30pOiBQcm9taXNlPFVzZXJUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0VXNlcnNCeVJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IHtmaWx0ZXJzID0gW10sIGlkOiBncm91cElkLCB2YWx1ZX06IFVzZXJSZWFjdGlvblF1ZXJ5ID0gcGFyYW1zO1xuICBjb25zdCByZWFjdGlvbiA9IHBhcnNlQ2hhcih2YWx1ZSwgMzIpO1xuICBjb25zdCBncm91cERvY0lkID0gYGdyb3Vwcy8ke3BhcnNlSWQoZ3JvdXBJZCl9YDtcbiAgY29uc3QgZmlsdGVyU3RyOiBzdHJpbmcgPSBmaWx0ZXJzXG4gICAgLm1hcCgoZmlsdGVyOiBRdWVyeUZpbHRlcikgPT4ge1xuICAgICAgY29uc3Qge2NvbmRpdGlvbmFsLCBuYW1lLCB2YWx1ZTogcXVlcnlWYWx1ZX06IFF1ZXJ5RmlsdGVyID0gZmlsdGVyO1xuICAgICAgbGV0IGZpbHRlckNvbmQ6IHN0cmluZyA9IGNvbmRpdGlvbmFsO1xuXG4gICAgICBpZihjb25kaXRpb25hbCAhPT0gJz49JyAmJiBjb25kaXRpb25hbCAhPT0gJzw9JyAmJiBjb25kaXRpb25hbCAhPT0gJz4nICYmIGNvbmRpdGlvbmFsICE9PSAnPCcpIHtcbiAgICAgICAgZmlsdGVyQ29uZCA9ICc9PSc7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaChuYW1lKSB7XG4gICAgICAgIGNhc2UgJ2FkZGVkJzpcbiAgICAgICAgICByZXR1cm4gYHIuYWRkZWQgJHtmaWx0ZXJDb25kfSAke3BhcnNlTnVtKHF1ZXJ5VmFsdWUpfWA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH0pXG4gICAgLmNvbmNhdChbXG4gICAgICBgci52YWx1ZSA9PSBcIiR7cmVhY3Rpb259XCJgLFxuICAgICAgJ3UuX2lkID09IHIuX2Zyb20nXG4gICAgXSlcbiAgICAuam9pbignICYmICcpO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBnLCByIElOIElOQk9VTkQgXCIke2dyb3VwRG9jSWR9XCIgaGFzUmVhY3Rpb25cbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgICR7ZmlsdGVyU3RyfVxuICAgICAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBwb3N0UmVhY3Rpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgcG9zdElkOiBzdHJpbmcsIHR5cGU6IHN0cmluZyA9ICdsaWtlJyk6IFByb21pc2U8UmVhY3Rpb25UeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKHBvc3RJZCk7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlKTtcbiAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGIuZWRnZUNvbGxlY3Rpb24oJ3JlYWN0aW9ucycpO1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgLy8gUmVtb3ZlIGV4aXN0aW5nIHJlYWN0aW9uIHRvIHBvc3RcbiAgY29uc3QgcG9zdERvY0lkOiBzdHJpbmcgPSBgcG9zdHMvJHtmb3JtYXRJdGVtSWR9YDtcbiAgY29uc3QgdXNlckRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgcCwgciBJTiBJTkJPVU5EICR7cG9zdERvY0lkfSByZWFjdGlvblxuICAgIEZJTFRFUiByLnR5cGUgPT0gXCJwb3N0c1wiICYmIHIuX2Zyb20gPT0gJHt1c2VyRG9jSWR9XG4gICAgUkVNT1ZFIHIgSU4gcmVhY3Rpb25zXG4gICAgUkVUVVJOIHJgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc3QgZWRnZUlkID0gY3JlYXRlSGFzaChgcmVhY3Rpb24tJHtwb3N0SWR9LSR7c2Vzc2lvbklkfWApO1xuICAgICAgY29uc3QgZWRnZTogYW55ID0ge1xuICAgICAgICBfa2V5OiBlZGdlSWQsXG4gICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgIHR5cGU6ICdwb3N0cycsXG4gICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB1c2VyRG9jSWQsIHBvc3REb2NJZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlYWN0aW9uQXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgcmVhY3Rpb25zID0gKFxuICAgICAgICAgICAgRk9SIHBvc3QsIHIgSU4gSU5CT1VORCBwLl9pZCByZWFjdGlvbnNcbiAgICAgICAgICAgIENPTExFQ1QgcmVhY3Rpb25OYW1lID0gci52YWx1ZSBJTlRPIHJlYWN0aW9uSXRlbXNcbiAgICAgICAgICAgIFJFVFVSTiB7aWQ6IHAuX2lkLCB0eXBlOiByZWFjdGlvbk5hbWUsIGNvdW50OiBMRU5HVEgocmVhY3Rpb25JdGVtc1sqXS5yLnZhbHVlKX1cbiAgICAgICAgICApXG4gICAgICAgICAgUkVUVVJOIHJlYWN0aW9uc2A7XG5cbiAgICAgICAgICByZXR1cm4gZGIucXVlcnkocmVhY3Rpb25BcWxRcnkpXG4gICAgICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHQgPSB7cmVhY3Rpb25zOiBbXX0pID0+IHJlc3VsdClcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTsiXX0=
package/lib/data/s3.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { S3 } from 'aws-sdk';
2
- export declare const s3Get: (params: S3.GetObjectRequest) => Promise<S3.GetObjectOutput>;
3
- export declare const s3Head: (params: S3.HeadObjectRequest) => Promise<S3.HeadObjectOutput>;
4
- export declare const s3Put: (params: S3.PutObjectRequest) => Promise<S3.PutObjectOutput>;
5
- export declare const s3Delete: (params: S3.DeleteObjectRequest) => Promise<S3.DeleteObjectOutput>;
6
- export declare const s3DeleteList: (params: S3.DeleteObjectsRequest) => Promise<S3.DeleteObjectsOutput>;
package/lib/data/s3.js DELETED
@@ -1,103 +0,0 @@
1
- /**
2
- * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
- */
5
- import aws, { S3 } from 'aws-sdk';
6
- import { Config } from '../config'; // AWS S3
7
- // const eventCategory: string = 's3';
8
-
9
- export var s3Get = function s3Get(params) {
10
- return new Promise(function (resolve, reject) {
11
- aws.config.update(Config.get('aws'));
12
- var s3 = new S3();
13
-
14
- if (!params.Bucket) {
15
- params.Bucket = Config.get('aws.Bucket');
16
- }
17
-
18
- s3.getObject(params, function (error, output) {
19
- if (error) {
20
- return reject(error);
21
- }
22
-
23
- return resolve(output);
24
- });
25
- });
26
- };
27
- export var s3Head = function s3Head(params) {
28
- return new Promise(function (resolve, reject) {
29
- aws.config.update(Config.get('aws'));
30
- var s3 = new S3();
31
-
32
- if (!params.Bucket) {
33
- params.Bucket = Config.get('aws.Bucket');
34
- }
35
-
36
- s3.headObject(params, function (error, output) {
37
- if (error) {
38
- return reject(error);
39
- }
40
-
41
- return resolve(output);
42
- });
43
- });
44
- };
45
- export var s3Put = function s3Put(params) {
46
- return new Promise(function (resolve, reject) {
47
- aws.config.update(Config.get('aws'));
48
- var s3 = new aws.S3();
49
-
50
- if (!params.Bucket) {
51
- params.Bucket = Config.get('aws.Bucket');
52
- }
53
-
54
- if (!params.StorageClass) {
55
- params.StorageClass = 'REDUCED_REDUNDANCY';
56
- }
57
-
58
- s3.putObject(params, function (error, output) {
59
- if (error) {
60
- return reject(error);
61
- }
62
-
63
- return resolve(output);
64
- });
65
- });
66
- };
67
- export var s3Delete = function s3Delete(params) {
68
- return new Promise(function (resolve, reject) {
69
- aws.config.update(Config.get('aws'));
70
- var s3 = new S3();
71
-
72
- if (!params.Bucket) {
73
- params.Bucket = Config.get('aws.Bucket');
74
- }
75
-
76
- s3.deleteObject(params, function (error, output) {
77
- if (error) {
78
- return reject(error);
79
- }
80
-
81
- return resolve(output);
82
- });
83
- });
84
- };
85
- export var s3DeleteList = function s3DeleteList(params) {
86
- return new Promise(function (resolve, reject) {
87
- aws.config.update(Config.get('aws'));
88
- var s3 = new S3();
89
-
90
- if (!params.Bucket) {
91
- params.Bucket = Config.get('aws.Bucket');
92
- }
93
-
94
- s3.deleteObjects(params, function (error, output) {
95
- if (error) {
96
- return reject(error);
97
- }
98
-
99
- return resolve(output);
100
- });
101
- });
102
- };
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3MzLnRzIl0sIm5hbWVzIjpbImF3cyIsIlMzIiwiQ29uZmlnIiwiczNHZXQiLCJwYXJhbXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbmZpZyIsInVwZGF0ZSIsImdldCIsInMzIiwiQnVja2V0IiwiZ2V0T2JqZWN0IiwiZXJyb3IiLCJvdXRwdXQiLCJzM0hlYWQiLCJoZWFkT2JqZWN0IiwiczNQdXQiLCJTdG9yYWdlQ2xhc3MiLCJwdXRPYmplY3QiLCJzM0RlbGV0ZSIsImRlbGV0ZU9iamVjdCIsInMzRGVsZXRlTGlzdCIsImRlbGV0ZU9iamVjdHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBSUEsT0FBT0EsR0FBUCxJQUFhQyxFQUFiLFFBQXNCLFNBQXRCO0FBY0EsU0FBUUMsTUFBUixRQUFxQixXQUFyQixDLENBRUE7QUFDQTs7QUFFQSxPQUFPLElBQU1DLEtBQUssR0FBRyxTQUFSQSxLQUFRLENBQUNDLE1BQUQsRUFBd0Q7QUFDM0UsU0FBTyxJQUFJQyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQ3RDUCxJQUFBQSxHQUFHLENBQUNRLE1BQUosQ0FBV0MsTUFBWCxDQUFrQlAsTUFBTSxDQUFDUSxHQUFQLENBQVcsS0FBWCxDQUFsQjtBQUNBLFFBQU1DLEVBQU0sR0FBRyxJQUFJVixFQUFKLEVBQWY7O0FBRUEsUUFBRyxDQUFDRyxNQUFNLENBQUNRLE1BQVgsRUFBbUI7QUFDakJSLE1BQUFBLE1BQU0sQ0FBQ1EsTUFBUCxHQUFnQlYsTUFBTSxDQUFDUSxHQUFQLENBQVcsWUFBWCxDQUFoQjtBQUNEOztBQUVEQyxJQUFBQSxFQUFFLENBQUNFLFNBQUgsQ0FBYVQsTUFBYixFQUFxQixVQUFDVSxLQUFELEVBQWVDLE1BQWYsRUFBMkM7QUFDOUQsVUFBR0QsS0FBSCxFQUFVO0FBQ1IsZUFBT1AsTUFBTSxDQUFDTyxLQUFELENBQWI7QUFDRDs7QUFFRCxhQUFPUixPQUFPLENBQUNTLE1B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QSxZQUFlLENBQUNuQixNQUFELEVBQWdFO0FBQzFGLFNBQU8sSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUN0Q1AsSUFBQUEsR0FBRyxDQUFDUSxNQUFKLENBQVdDLE1BQVgsQ0FBa0JQLE1BQU0sQ0FBQ1EsR0FBUCxDQUFXLEtBQVgsQ0FBbEI7QUFDQSxRQUFNQyxFQUFNLEdBQUcsSUFBSVYsRUFBSixFQUFmOztBQUVBLFFBQUcsQ0FBQ0csTUFBTSxDQUFDUSxNQUFYLEVBQW1CO0FBQ2pCUixNQUFBQSxNQUFNLENBQUNRLE1BQVAsR0FBZ0JWLE1BQU0sQ0FBQ1EsR0FBUCxDQUFXLFlBQVgsQ0FBaEI7QUFDRDs7QUFFREMsSUFBQUEsRUFBRSxDQUFDYSxhQUFILENBQWlCcEIsTUFBakIsRUFBeUIsVUFBQ1UsS0FBRCxFQUFlQyxNQUFmLEVBQStDO0FBQ3RFLFVBQUdELEtBQUgsRUFBVTtBQUNSLGVBQU9QLE1BQU0sQ0FBQ08sS0FBRCxDQUFiO0FBQ0Q7O0FBQ0QsYUFBT1IsT0FBTyxDQUFDUyxNQUFELENBQWQ7QUFDRCxLQUxEO0FBTUQsR0FkTSxDQUFQO0FBZUQsQ0FoQk0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IGF3cywge1MzfSBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCB7XG4gIERlbGV0ZU9iamVjdE91dHB1dCxcbiAgRGVsZXRlT2JqZWN0UmVxdWVzdCxcbiAgRGVsZXRlT2JqZWN0c091dHB1dCxcbiAgRGVsZXRlT2JqZWN0c1JlcXVlc3QsXG4gIEdldE9iamVjdE91dHB1dCxcbiAgR2V0T2JqZWN0UmVxdWVzdCxcbiAgSGVhZE9iamVjdE91dHB1dCxcbiAgSGVhZE9iamVjdFJlcXVlc3QsXG4gIFB1dE9iamVjdE91dHB1dCxcbiAgUHV0T2JqZWN0UmVxdWVzdFxufSBmcm9tICdhd3Mtc2RrL2NsaWVudHMvczMnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcblxuLy8gQVdTIFMzXG4vLyBjb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnczMnO1xuXG5leHBvcnQgY29uc3QgczNHZXQgPSAocGFyYW1zOiBHZXRPYmplY3RSZXF1ZXN0KTogUHJvbWlzZTxHZXRPYmplY3RPdXRwdXQ+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBhd3MuY29uZmlnLnVwZGF0ZShDb25maWcuZ2V0KCdhd3MnKSk7XG4gICAgY29uc3QgczM6IFMzID0gbmV3IFMzKCk7XG5cbiAgICBpZighcGFyYW1zLkJ1Y2tldCkge1xuICAgICAgcGFyYW1zLkJ1Y2tldCA9IENvbmZpZy5nZXQoJ2F3cy5CdWNrZXQnKTtcbiAgICB9XG5cbiAgICBzMy5nZXRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IEdldE9iamVjdE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHMzSGVhZCA9IChwYXJhbXM6IEhlYWRPYmplY3RSZXF1ZXN0KTogUHJvbWlzZTxIZWFkT2JqZWN0T3V0cHV0PiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuaGVhZE9iamVjdChwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogSGVhZE9iamVjdE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzM1B1dCA9IChwYXJhbXM6IFB1dE9iamVjdFJlcXVlc3QpOiBQcm9taXNlPFB1dE9iamVjdE91dHB1dD4gPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgICBjb25zdCBzMyA9IG5ldyBhd3MuUzMoKTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLkJ1Y2tldCcpO1xuICAgIH1cblxuICAgIGlmKCFwYXJhbXMuU3RvcmFnZUNsYXNzKSB7XG4gICAgICBwYXJhbXMuU3RvcmFnZUNsYXNzID0gJ1JFRFVDRURfUkVEVU5EQU5DWSc7XG4gICAgfVxuXG4gICAgczMucHV0T2JqZWN0KHBhcmFtcywgKGVycm9yOiBFcnJvciwgb3V0cHV0OiBQdXRPYmplY3RPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgczNEZWxldGUgPSAocGFyYW1zOiBEZWxldGVPYmplY3RSZXF1ZXN0KTogUHJvbWlzZTxEZWxldGVPYmplY3RPdXRwdXQ+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBhd3MuY29uZmlnLnVwZGF0ZShDb25maWcuZ2V0KCdhd3MnKSk7XG4gICAgY29uc3QgczM6IFMzID0gbmV3IFMzKCk7XG5cbiAgICBpZighcGFyYW1zLkJ1Y2tldCkge1xuICAgICAgcGFyYW1zLkJ1Y2tldCA9IENvbmZpZy5nZXQoJ2F3cy5CdWNrZXQnKTtcbiAgICB9XG5cbiAgICBzMy5kZWxldGVPYmplY3QocGFyYW1zLCAoZXJyb3IsIG91dHB1dDogRGVsZXRlT2JqZWN0T3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlTGlzdCA9IChwYXJhbXM6IERlbGV0ZU9iamVjdHNSZXF1ZXN0KTogUHJvbWlzZTxEZWxldGVPYmplY3RzT3V0cHV0PiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZGVsZXRlT2JqZWN0cyhwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogRGVsZXRlT2JqZWN0c091dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcbn07XG4iXX0=
@@ -1,3 +0,0 @@
1
- import { ApiContext } from '../types/auth';
2
- import { UserType } from '../types/users';
3
- export declare const getSearchList: (context: ApiContext, query: string, from: number, to: number) => Promise<UserType[]>;
@@ -1,98 +0,0 @@
1
- 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; }
2
-
3
- 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; }
4
-
5
- function _templateObject() {
6
- var data = _taggedTemplateLiteral(["FOR u IN FULLTEXT(", ", ", ", ", ", 50) RETURN u"]);
7
-
8
- _templateObject = function _templateObject() {
9
- return data;
10
- };
11
-
12
- return data;
13
- }
14
-
15
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
16
-
17
- /**
18
- * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
19
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
20
- */
21
- import { aql } from 'arangojs';
22
- import flatten from 'lodash/flatten';
23
- import uniqBy from 'lodash/uniqBy';
24
- import { getLimit, logException, useDb } from '../utils';
25
- import { getDisplayName } from './users';
26
- var eventCategory = 'search';
27
- export var getSearchList = function getSearchList(context, query, from, to) {
28
- var action = 'getList';
29
- var database = context.database;
30
- var isString = true;
31
-
32
- if (isString) {
33
- var fields = [{
34
- collection: 'users',
35
- field: 'first'
36
- }, {
37
- collection: 'users',
38
- field: 'last'
39
- }, {
40
- collection: 'users',
41
- field: 'email'
42
- }, {
43
- collection: 'users',
44
- field: 'username'
45
- }, {
46
- collection: 'users',
47
- field: 'name'
48
- }];
49
- return Promise.all(fields.map(function (obj) {
50
- var qry = "prefix:".concat(query);
51
- var userQry = aql(_templateObject(), obj.collection, obj.field, qry);
52
- return useDb(database).query(userQry).then(function (cursor) {
53
- return cursor.all();
54
- });
55
- })).then(function (results) {
56
- var list = uniqBy(flatten(results), '_key');
57
- return list.map(function (item) {
58
- var itemId = item._id,
59
- itemName = item.name;
60
- var collectionIdList = itemId.split('/');
61
- var collection = collectionIdList[0];
62
- var name = collection === 'users' ? getDisplayName(item) : itemName;
63
- return _objectSpread({}, item, {
64
- name: name
65
- });
66
- });
67
- });
68
- }
69
-
70
- var limit = getLimit(from, to);
71
- var aqlQry = "FOR u IN users\n FILTER u.phone == \"".concat(query, "\"\n ").concat(limit.aql, "\n RETURN u");
72
- return useDb(database).query(aqlQry).then(function (cursor) {
73
- return cursor.all();
74
- }).then(function () {
75
- var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
76
- return list.map(function () {
77
- var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
78
- var itemId = item._id,
79
- itemName = item.name;
80
- var collectionIdList = itemId.split('/');
81
- var collection = collectionIdList[0];
82
- var name = collection === 'users' ? getDisplayName(item) : itemName;
83
- return _objectSpread({}, item, {
84
- name: name
85
- });
86
- });
87
- }).catch(function (error) {
88
- return logException({
89
- action: action,
90
- category: eventCategory,
91
- label: 'db_error',
92
- value: error.message
93
- }, context).then(function () {
94
- return null;
95
- });
96
- });
97
- };
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3NlYXJjaC50cyJdLCJuYW1lcyI6WyJhcWwiLCJmbGF0dGVuIiwidW5pcUJ5IiwiZ2V0TGltaXQiLCJsb2dFeGNlcHRpb24iLCJ1c2VEYiIsImdldERpc3BsYXlOYW1lIiwiZXZlbnRDYXRlZ29yeSIsImdldFNlYXJjaExpc3QiLCJjb250ZXh0IiwicXVlcnkiLCJmcm9tIiwidG8iLCJhY3Rpb24iLCJkYXRhYmFzZSIsImlzU3RyaW5nIiwiZmllbGRzIiwiY29sbGVjdGlvbiIsImZpZWxkIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsIm9iaiIsInFyeSIsInVzZXJRcnkiLCJ0aGVuIiwiY3Vyc29yIiwicmVzdWx0cyIsImxpc3QiLCJpdGVtIiwiaXRlbUlkIiwiX2lkIiwiaXRlbU5hbWUiLCJuYW1lIiwiY29sbGVjdGlvbklkTGlzdCIsInNwbGl0IiwibGltaXQiLCJhcWxRcnkiLCJjYXRjaCIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCIsInZhbHVlIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBSUEsU0FBUUEsR0FBUixRQUFrQixVQUFsQjtBQUdBLE9BQU9DLE9BQVAsTUFBb0IsZ0JBQXBCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixlQUFuQjtBQUtBLFNBQVFDLFFBQVIsRUFBa0JDLFlBQWxCLEVBQWdDQyxLQUFoQyxRQUE0QyxVQUE1QztBQUNBLFNBQVFDLGNBQVIsUUFBNkIsU0FBN0I7QUFFQSxJQUFNQyxhQUFxQixHQUFHLFFBQTlCO0FBRUEsT0FBTyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLE9BQUQsRUFBc0JDLEtBQXRCLEVBQXFDQyxJQUFyQyxFQUFtREMsRUFBbkQsRUFBdUY7QUFDbEgsTUFBTUMsTUFBYyxHQUFHLFNBQXZCO0FBRGtILE1BRTNHQyxRQUYyRyxHQUUvRkwsT0FGK0YsQ0FFM0dLLFFBRjJHO0FBR2xILE1BQU1DLFFBQWlCLEdBQUcsSUFB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QUQsQ0FBM0M7QUFDQSxVQUFNRCxJQUFZLEdBQUdoQixVQUFVLEtBQUssT0FBZixHQUF5QlgsY0FBYyxDQUFDdUIsSUFBRCxDQUF2QyxHQUFnREcsUUFBckU7QUFFQSwrQkFBV0gsSUFBWDtBQUFpQkksUUFBQUEsSUFBSSxFQUFKQTtBQUFqQjtBQUNELEtBUGdDLENBQTNCO0FBQUEsR0FGRCxFQVVKSyxLQVZJLENBVUUsVUFBQ0MsS0FBRDtBQUFBLFdBQWtCbkMsWUFBWSxDQUFDO0FBQ3BDUyxNQUFBQSxNQUFNLEVBQU5BLE1BRG9DO0FBRXBDMkIsTUFBQUEsUUFBUSxFQUFFakMsYUFGMEI7QUFHcENrQyxNQUFBQSxLQUFLLEVBQUUsVUFINkI7QUFJcENDLE1BQUFBLEtBQUssRUFBRUgsS0FBSyxDQUFDSTtBQUp1QixLQUFELEVBS2xDbEMsT0FMa0MsQ0FBWixDQUtiZ0IsSUFMYSxDQUtSO0FBQUEsYUFBTSxJQUFOO0FBQUEsS0FMUSxDQUFsQjtBQUFBLEdBVkYsQ0FBUDtBQWdCRCxDQXZETSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9hcWwtcXVlcnknO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9jdXJzb3InO1xuaW1wb3J0IGZsYXR0ZW4gZnJvbSAnbG9kYXNoL2ZsYXR0ZW4nO1xuaW1wb3J0IHVuaXFCeSBmcm9tICdsb2Rhc2gvdW5pcUJ5JztcblxuaW1wb3J0IHtBcmFuZ29EQkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYic7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHtVc2VyVHlwZX0gZnJvbSAnLi4vdHlwZXMvdXNlcnMnO1xuaW1wb3J0IHtnZXRMaW1pdCwgbG9nRXhjZXB0aW9uLCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtnZXREaXNwbGF5TmFtZX0gZnJvbSAnLi91c2Vycyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdzZWFyY2gnO1xuXG5leHBvcnQgY29uc3QgZ2V0U2VhcmNoTGlzdCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBxdWVyeTogc3RyaW5nLCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpOiBQcm9taXNlPFVzZXJUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0TGlzdCc7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCBpc1N0cmluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgaWYoaXNTdHJpbmcpIHtcbiAgICBjb25zdCBmaWVsZHM6IGFueVtdID0gW1xuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAnZmlyc3QnfSxcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ2xhc3QnfSxcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ2VtYWlsJ30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICd1c2VybmFtZSd9LFxuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAnbmFtZSd9XG4gICAgXTtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChmaWVsZHMubWFwKChvYmopID0+IHtcbiAgICAgIGNvbnN0IHFyeTogc3RyaW5nID0gYHByZWZpeDoke3F1ZXJ5fWA7XG4gICAgICBjb25zdCB1c2VyUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSBJTiBGVUxMVEVYVCgke29iai5jb2xsZWN0aW9ufSwgJHtvYmouZmllbGR9LCAke3FyeX0sIDUwKSBSRVRVUk4gdWA7XG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KHVzZXJRcnkpLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSk7XG4gICAgfSkpXG4gICAgICAudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgICBjb25zdCBsaXN0ID0gdW5pcUJ5KGZsYXR0ZW4ocmVzdWx0cyksICdfa2V5Jyk7XG5cbiAgICAgICAgcmV0dXJuIGxpc3QubWFwKChpdGVtOiBVc2VyVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtfaWQ6IGl0ZW1JZCwgbmFtZTogaXRlbU5hbWV9ID0gaXRlbTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uSWRMaXN0OiBzdHJpbmdbXSA9IGl0ZW1JZC5zcGxpdCgnLycpO1xuICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb246IHN0cmluZyA9IGNvbGxlY3Rpb25JZExpc3RbMF07XG4gICAgICAgICAgY29uc3QgbmFtZTogc3RyaW5nID0gY29sbGVjdGlvbiA9PT0gJ3VzZXJzJyA/IGdldERpc3BsYXlOYW1lKGl0ZW0pIDogaXRlbU5hbWU7XG5cbiAgICAgICAgICByZXR1cm4gey4uLml0ZW0sIG5hbWV9O1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgY29uc3QgbGltaXQ6IEFyYW5nb0RCTGltaXQgPSBnZXRMaW1pdChmcm9tLCB0byk7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiB1IElOIHVzZXJzXG4gICAgICAgIEZJTFRFUiB1LnBob25lID09IFwiJHtxdWVyeX1cIlxuICAgICAgICAke2xpbWl0LmFxbH1cbiAgICAgICAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLnRoZW4oKGxpc3Q6IFVzZXJUeXBlW10gPSBbXSkgPT4gbGlzdC5tYXAoKGl0ZW0gPSB7fSkgPT4ge1xuICAgICAgY29uc3Qge19pZDogaXRlbUlkLCBuYW1lOiBpdGVtTmFtZX0gPSBpdGVtO1xuICAgICAgY29uc3QgY29sbGVjdGlvbklkTGlzdDogc3RyaW5nW10gPSBpdGVtSWQuc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb246IHN0cmluZyA9IGNvbGxlY3Rpb25JZExpc3RbMF07XG4gICAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSBjb2xsZWN0aW9uID09PSAndXNlcnMnID8gZ2V0RGlzcGxheU5hbWUoaXRlbSkgOiBpdGVtTmFtZTtcblxuICAgICAgcmV0dXJuIHsuLi5pdGVtLCBuYW1lfTtcbiAgICB9KSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcicsXG4gICAgICB2YWx1ZTogZXJyb3IubWVzc2FnZVxuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcbiJdfQ==
package/lib/data/sms.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { SMSParamsType } from '../types/notifications';
2
- export declare const sendSms: (params: SMSParamsType) => any;
3
- export declare const sendSmsTemplate: (templateName: string, smsParams: SMSParamsType) => Promise<boolean>;
package/lib/data/sms.js DELETED
@@ -1,59 +0,0 @@
1
- /**
2
- * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
- */
5
- import { parsePhone } from '@nlabs/utils';
6
- import fs from 'fs';
7
- import twilioSdk from 'twilio';
8
- import { Config } from '../config';
9
- import { appTemplate } from './email'; // const eventCategory: string = 'sms';
10
- // Twilio
11
-
12
- export var sendSms = function sendSms(params) {
13
- var _params$app = params.app,
14
- app = _params$app === void 0 ? {} : _params$app,
15
- content = params.content,
16
- _params$user = params.user,
17
- user = _params$user === void 0 ? {} : _params$user;
18
- var country = user.country || 'US';
19
- var phone = parsePhone(user.phone, country);
20
- var templateContent = appTemplate(app, content);
21
- var twilio = twilioSdk(Config.get('twilio.sid'), Config.get('twilio.token'));
22
- var cfg = {
23
- body: templateContent,
24
- from: Config.get('twilio.number'),
25
- to: phone
26
- };
27
- return new Promise(function (resolve, reject) {
28
- twilio.sendMessage(cfg, function (error, data) {
29
- if (error) {
30
- reject(new Error(error.error_message));
31
- } else {
32
- resolve(data);
33
- }
34
- });
35
- });
36
- };
37
- export var sendSmsTemplate = function sendSmsTemplate(templateName, smsParams) {
38
- var app = smsParams.app,
39
- user = smsParams.user,
40
- vars = smsParams.vars;
41
-
42
- try {
43
- var data = fs.readFileSync("./templates/sms/".concat(templateName, ".txt"), 'utf8');
44
- var text = appTemplate(app, data, vars);
45
- var params = {
46
- app: app,
47
- text: text,
48
- user: user
49
- };
50
- return sendSms(params).then(function (res) {
51
- return res.status === 'queued';
52
- }).catch(function (error) {
53
- throw error;
54
- });
55
- } catch (error) {
56
- return Promise.reject(error);
57
- }
58
- };
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3Ntcy50cyJdLCJuYW1lcyI6WyJwYXJzZVBob25lIiwiZnMiLCJ0d2lsaW9TZGsiLCJDb25maWciLCJhcHBUZW1wbGF0ZSIsInNlbmRTbXMiLCJwYXJhbXMiLCJhcHAiLCJjb250ZW50IiwidXNlciIsImNvdW50cnkiLCJwaG9uZSIsInRlbXBsYXRlQ29udGVudCIsInR3aWxpbyIsImdldCIsImNmZyIsImJvZHkiLCJmcm9tIiwidG8iLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNlbmRNZXNzYWdlIiwiZXJyb3IiLCJkYXRhIiwiRXJyb3IiLCJlcnJvcl9tZXNzYWdlIiwic2VuZFNtc1RlbXBsYXRlIiwidGVtcGxhdGVOYW1lIiwic21zUGFyYW1zIiwidmFycyIsInJlYWRGaWxlU3luYyIsInRleHQiLCJ0aGVuIiwicmVzIiwic3RhdHVzIiwiY2F0Y2giXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBSUEsU0FBUUEsVUFBUixRQUF5QixjQUF6QjtBQUNBLE9BQU9DLEVBQVAsTUFBZSxJQUFmO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixRQUF0QjtBQUVBLFNBQVFDLE1BQVIsUUFBcUIsV0FBckI7QUFFQSxTQUFRQyxXQUFSLFFBQTBCLFNBQTFCLEMsQ0FFQTtBQUVBOztBQUNBLE9BQU8sSUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFnQztBQUFBLG9CQUtqREEsTUFMaUQsQ0FFbkRDLEdBRm1EO0FBQUEsTUFFbkRBLEdBRm1ELDRCQUU3QyxFQUY2QztBQUFBLE1BR25EQyxPQUhtRCxHQUtqREYsTUFMaUQsQ0FHbkRFLE9BSG1EO0FBQUEscUJBS2pERixNQUxpRCxDQUluREcsSUFKbUQ7QUFBQSxNQUluREEsSUFKbUQsNkJBSTVDLEVBSjRDO0FBT3JELE1BQU1DLE9BQU8sR0FBR0QsSUFBSSxDQUFDQyxPQUFMLElBQWdCLElBQWhDO0FBQ0EsTUFBTUMsS0FBSyxHQUFHWCxVQUFVLENBQUNTLElBQUksQ0FBQ0UsS0FBTixFQUFhRCxPQUFiLENBQXhCO0FBQ0EsTUFBTUUsZUFBdUIsR0FBR1IsV0FBVyxDQUFDRyxHQUFELEVBQU1DLE9BQU4sQ0FBM0M7QUFFQSxNQUFNSyxNQUFXLEdBQUdYLFNBQVMsQ0FBQ0MsTUFBTSxDQUFDVyxHQUFQLENBQVcsWUFBWCxDQUFELEVBQTJCWCxNQUFNLENBQUNXLEdBQVAsQ0FBVyxjQUFYLENBQTNCLENBQTdCO0FBQ0EsTUFBTUMsR0FBc0IsR0FBRztBQUM3QkMsSUFBQUEsSUFBSSxFQUFFSixlQUR1QjtBQUU3QkssSUFBQUEsSUFBSSxFQUFFZCxNQUFNLENBQUNXLEdBQVAsQ0FBVyxlQUFYLENBRnVCO0FBRzdCSSxJQUFBQSxFQUFFLEVBQUVQO0FBSHlCLEdBQS9CO0FBTUEsU0FBTyxJQUFJUSxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQ3RDUixJQUFBQSxNQUFNLENBQUNTLFdBQVAsQ0FBbUJQLEdBQW5CLEVBQXdCLFVBQUNRLEtBQUQsRUFBUUMsSUFBUixFQUFpQjtBQUN2QyxVQUFHRCxLQUFILEVBQVU7QUFDUkYsUUFBQUEsTUFBTSxDQUFDLElBQUlJLEtBQUosQ0FBVUYsS0FBSyxDQUFDRyxhQUFoQixDQUFELENBQU47QUFDRCxPQUZELE1BRU87QUFDTE4sUUFBQUEsT0FBTyxDQUFDSSxJQUFELENBQVA7QUFDRDtBQUNGLEtBTkQ7QUFPRCxHQVJNLENBQVA7QUFTRCxDQTNCTTtBQTZCUCxPQUFPLElBQU1HLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsWUFBRCxFQUF1QkMsU0FBdkIsRUFBc0U7QUFBQSxNQUM1RnRCLEdBRDRGLEdBQ3pFc0IsU0FEeUUsQ0FDNUZ0QixHQUQ0RjtBQUFBLE1BQ3ZGRSxJQUR1RixHQUN6RW9CLFNBRHlFLENBQ3ZGcEIsSUFEdUY7QUFBQSxNQUNqRnFCLElBRGlGLEdBQ3pFRCxTQUR5RSxDQUNqRkMsSUFEaUY7O0FBRW5HLE1BQUk7QUFDRixRQUFNTixJQUFJLEdBQUd2QixFQUFFLENBQUM4QixZQUFILDJCQUFtQ0gsWUFBbkMsV0FBdUQsTUFBdkQsQ0FBYjtBQUNBLFFBQU1JLElBQUksR0FBRzVCLFdBQVcsQ0FBQ0csR0FBRCxFQUFNaUIsSUFBTixFQUFZTSxJQUFaLENBQXhCO0FBQ0EsUUFBTXhCLE1BQU0sR0FBRztBQUFDQyxNQUFBQSxHQUFHLEVBQUhBLEdBQUQ7QUFBTXlCLE1BQUFBLElBQUksRUFBSkEsSUFBTjtBQUFZdkIsTUFBQUEsSUFBSSxFQUFKQTtBQUFaLEtBQWY7QUFFQSxXQUFPSixPQUFPLENBQUNDLE1BQUQsQ0FBUCxDQUNKMkIsSUFESSxDQUNDLFVBQUNDLEdBQUQ7QUFBQSxhQUFTQSxHQUFHLENBQUNDLE1BQUosS0FBZSxRQUF4QjtBQUFBLEtBREQsRUFFSkMsS0FGSSxDQUVFLFVBQUNiLEtBQUQsRUFBa0I7QUFDdkIsWUFBTUEsS0FBTjtBQUNELEtBSkksQ0FBUDtBQUtELEdBVkQsQ0FVRSxPQUFNQSxLQUFOLEVBQWE7QUFDYixXQUFPSixPQUFPLENBQUNFLE1BQVIsQ0FBZUUsS0FBZixDQUFQO0FBQ0Q7QUFDRixDQWZNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cGFyc2VQaG9uZX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgdHdpbGlvU2RrIGZyb20gJ3R3aWxpbyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtTTVNQYXJhbXNUeXBlLCBUd2lsaW9PcHRpb25zVHlwZX0gZnJvbSAnLi4vdHlwZXMvbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge2FwcFRlbXBsYXRlfSBmcm9tICcuL2VtYWlsJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3Ntcyc7XG5cbi8vIFR3aWxpb1xuZXhwb3J0IGNvbnN0IHNlbmRTbXMgPSAocGFyYW1zOiBTTVNQYXJhbXNUeXBlKTogYW55ID0+IHtcbiAgY29uc3Qge1xuICAgIGFwcCA9IHt9LFxuICAgIGNvbnRlbnQsXG4gICAgdXNlciA9IHt9XG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgY291bnRyeSA9IHVzZXIuY291bnRyeSB8fCAnVVMnO1xuICBjb25zdCBwaG9uZSA9IHBhcnNlUGhvbmUodXNlci5waG9uZSwgY291bnRyeSk7XG4gIGNvbnN0IHRlbXBsYXRlQ29udGVudDogc3RyaW5nID0gYXBwVGVtcGxhdGUoYXBwLCBjb250ZW50KTtcblxuICBjb25zdCB0d2lsaW86IGFueSA9IHR3aWxpb1NkayhDb25maWcuZ2V0KCd0d2lsaW8uc2lkJyksIENvbmZpZy5nZXQoJ3R3aWxpby50b2tlbicpKTtcbiAgY29uc3QgY2ZnOiBUd2lsaW9PcHRpb25zVHlwZSA9IHtcbiAgICBib2R5OiB0ZW1wbGF0ZUNvbnRlbnQsXG4gICAgZnJvbTogQ29uZmlnLmdldCgndHdpbGlvLm51bWJlcicpLFxuICAgIHRvOiBwaG9uZVxuICB9O1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHdpbGlvLnNlbmRNZXNzYWdlKGNmZywgKGVycm9yLCBkYXRhKSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKGVycm9yLmVycm9yX21lc3NhZ2UpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3Qgc2VuZFNtc1RlbXBsYXRlID0gKHRlbXBsYXRlTmFtZTogc3RyaW5nLCBzbXNQYXJhbXM6IFNNU1BhcmFtc1R5cGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3Qge2FwcCwgdXNlciwgdmFyc30gPSBzbXNQYXJhbXM7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhgLi90ZW1wbGF0ZXMvc21zLyR7dGVtcGxhdGVOYW1lfS50eHRgLCAndXRmOCcpO1xuICAgIGNvbnN0IHRleHQgPSBhcHBUZW1wbGF0ZShhcHAsIGRhdGEsIHZhcnMpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHthcHAsIHRleHQsIHVzZXJ9O1xuXG4gICAgcmV0dXJuIHNlbmRTbXMocGFyYW1zKVxuICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgfVxufTtcbiJdfQ==
@@ -1,7 +0,0 @@
1
- import { ApiContext } from '../types/auth';
2
- import { PaymentPlan, PaymentSubscription } from '../types/payments';
3
- export declare const getPlanList: (context: ApiContext, from?: number, to?: number) => Promise<PaymentPlan[]>;
4
- export declare const getSubscription: (context: ApiContext) => Promise<PaymentSubscription>;
5
- export declare const addPlan: (context: ApiContext, item: PaymentPlan) => Promise<PaymentPlan>;
6
- export declare const addSubscription: (context: ApiContext, item: any) => Promise<PaymentSubscription>;
7
- export declare const deleteSubscription: (context: ApiContext, endDate: number) => Promise<boolean>;