@nlabs/reaktor 0.1.1 → 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.
- package/package.json +5 -5
- package/src/config.ts +8 -2
- package/src/data/posts.ts +79 -60
- package/src/types/posts.ts +1 -0
- package/lib/config.d.ts +0 -21
- package/lib/config.js +0 -127
- package/lib/data/conversations.d.ts +0 -6
- package/lib/data/conversations.js +0 -197
- package/lib/data/dynamodb.d.ts +0 -8
- package/lib/data/dynamodb.js +0 -139
- package/lib/data/email.d.ts +0 -7
- package/lib/data/email.js +0 -163
- package/lib/data/files.d.ts +0 -16
- package/lib/data/files.js +0 -406
- package/lib/data/groups.d.ts +0 -13
- package/lib/data/groups.js +0 -354
- package/lib/data/images.d.ts +0 -12
- package/lib/data/images.js +0 -667
- package/lib/data/index.d.ts +0 -19
- package/lib/data/index.js +0 -24
- package/lib/data/ios.d.ts +0 -6
- package/lib/data/ios.js +0 -302
- package/lib/data/locations.d.ts +0 -3
- package/lib/data/locations.js +0 -132
- package/lib/data/messages.d.ts +0 -9
- package/lib/data/messages.js +0 -248
- package/lib/data/notifications.d.ts +0 -5
- package/lib/data/notifications.js +0 -42
- package/lib/data/payments.d.ts +0 -11
- package/lib/data/payments.js +0 -748
- package/lib/data/posts.d.ts +0 -16
- package/lib/data/posts.js +0 -540
- package/lib/data/reactions.d.ts +0 -6
- package/lib/data/reactions.js +0 -218
- package/lib/data/s3.d.ts +0 -6
- package/lib/data/s3.js +0 -103
- package/lib/data/search.d.ts +0 -3
- package/lib/data/search.js +0 -98
- package/lib/data/sms.d.ts +0 -3
- package/lib/data/sms.js +0 -59
- package/lib/data/subscription.d.ts +0 -7
- package/lib/data/subscription.js +0 -284
- package/lib/data/tags.d.ts +0 -14
- package/lib/data/tags.js +0 -304
- package/lib/data/users.d.ts +0 -12
- package/lib/data/users.js +0 -310
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -8
- package/lib/types/apps.d.ts +0 -43
- package/lib/types/apps.js +0 -2
- package/lib/types/arangodb.d.ts +0 -17
- package/lib/types/arangodb.js +0 -2
- package/lib/types/auth.d.ts +0 -10
- package/lib/types/auth.js +0 -2
- package/lib/types/conversations.d.ts +0 -6
- package/lib/types/conversations.js +0 -2
- package/lib/types/email.d.ts +0 -12
- package/lib/types/email.js +0 -2
- package/lib/types/files.d.ts +0 -26
- package/lib/types/files.js +0 -2
- package/lib/types/google.d.ts +0 -27
- package/lib/types/google.js +0 -2
- package/lib/types/groups.d.ts +0 -21
- package/lib/types/groups.js +0 -2
- package/lib/types/images.d.ts +0 -24
- package/lib/types/images.js +0 -2
- package/lib/types/index.d.ts +0 -17
- package/lib/types/index.js +0 -22
- package/lib/types/locations.d.ts +0 -20
- package/lib/types/locations.js +0 -2
- package/lib/types/messages.d.ts +0 -12
- package/lib/types/messages.js +0 -2
- package/lib/types/notifications.d.ts +0 -19
- package/lib/types/notifications.js +0 -2
- package/lib/types/payments.d.ts +0 -114
- package/lib/types/payments.js +0 -2
- package/lib/types/posts.d.ts +0 -27
- package/lib/types/posts.js +0 -2
- package/lib/types/reactions.d.ts +0 -4
- package/lib/types/reactions.js +0 -2
- package/lib/types/tags.d.ts +0 -9
- package/lib/types/tags.js +0 -2
- package/lib/types/users.d.ts +0 -78
- package/lib/types/users.js +0 -2
- package/lib/utils/analytics.d.ts +0 -3
- package/lib/utils/analytics.js +0 -47
- package/lib/utils/arangodb.d.ts +0 -9
- package/lib/utils/arangodb.js +0 -98
- package/lib/utils/auth.d.ts +0 -7
- package/lib/utils/auth.js +0 -80
- package/lib/utils/graphql.d.ts +0 -1
- package/lib/utils/graphql.js +0 -7
- package/lib/utils/index.d.ts +0 -6
- package/lib/utils/index.js +0 -11
- package/lib/utils/objects.d.ts +0 -3
- package/lib/utils/objects.js +0 -34
- package/lib/utils/redis.d.ts +0 -1
- package/lib/utils/redis.js +0 -15
package/lib/data/reactions.js
DELETED
|
@@ -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=
|
package/lib/data/search.d.ts
DELETED
package/lib/data/search.js
DELETED
|
@@ -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
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>;
|