@nlabs/reaktor 0.1.2 → 0.1.4
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/.DS_Store +0 -0
- package/.eslintrc +18 -0
- package/lib/config.d.ts +21 -0
- package/lib/config.js +130 -0
- package/lib/data/conversations.d.ts +6 -0
- package/lib/data/conversations.js +197 -0
- package/lib/data/dynamodb.d.ts +8 -0
- package/lib/data/dynamodb.js +139 -0
- package/lib/data/email.d.ts +7 -0
- package/lib/data/email.js +163 -0
- package/lib/data/files.d.ts +16 -0
- package/lib/data/files.js +406 -0
- package/lib/data/groups.d.ts +13 -0
- package/lib/data/groups.js +354 -0
- package/lib/data/images.d.ts +12 -0
- package/lib/data/images.js +667 -0
- package/{src/data/index.ts → lib/data/index.d.ts} +1 -5
- package/lib/data/index.js +24 -0
- package/lib/data/ios.d.ts +6 -0
- package/lib/data/ios.js +302 -0
- package/lib/data/locations.d.ts +3 -0
- package/lib/data/locations.js +132 -0
- package/lib/data/messages.d.ts +9 -0
- package/lib/data/messages.js +248 -0
- package/lib/data/notifications.d.ts +5 -0
- package/lib/data/notifications.js +42 -0
- package/lib/data/payments.d.ts +11 -0
- package/lib/data/payments.js +748 -0
- package/lib/data/posts.d.ts +22 -0
- package/lib/data/posts.js +579 -0
- package/lib/data/reactions.d.ts +6 -0
- package/lib/data/reactions.js +218 -0
- package/lib/data/s3.d.ts +6 -0
- package/lib/data/s3.js +103 -0
- package/lib/data/search.d.ts +3 -0
- package/lib/data/search.js +98 -0
- package/lib/data/sms.d.ts +3 -0
- package/lib/data/sms.js +59 -0
- package/lib/data/subscription.d.ts +7 -0
- package/lib/data/subscription.js +284 -0
- package/lib/data/tags.d.ts +14 -0
- package/lib/data/tags.js +304 -0
- package/lib/data/users.d.ts +12 -0
- package/lib/data/users.js +310 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +8 -0
- package/lib/types/apps.d.ts +43 -0
- package/lib/types/apps.js +2 -0
- package/lib/types/arangodb.d.ts +17 -0
- package/lib/types/arangodb.js +2 -0
- package/lib/types/auth.d.ts +10 -0
- package/lib/types/auth.js +2 -0
- package/lib/types/conversations.d.ts +6 -0
- package/lib/types/conversations.js +2 -0
- package/lib/types/email.d.ts +12 -0
- package/lib/types/email.js +2 -0
- package/lib/types/files.d.ts +26 -0
- package/lib/types/files.js +2 -0
- package/lib/types/google.d.ts +27 -0
- package/lib/types/google.js +2 -0
- package/lib/types/groups.d.ts +21 -0
- package/lib/types/groups.js +2 -0
- package/lib/types/images.d.ts +24 -0
- package/lib/types/images.js +2 -0
- package/{src/types/index.ts → lib/types/index.d.ts} +0 -4
- package/lib/types/index.js +22 -0
- package/lib/types/locations.d.ts +20 -0
- package/lib/types/locations.js +2 -0
- package/lib/types/messages.d.ts +12 -0
- package/lib/types/messages.js +2 -0
- package/lib/types/notifications.d.ts +19 -0
- package/lib/types/notifications.js +2 -0
- package/lib/types/payments.d.ts +114 -0
- package/lib/types/payments.js +2 -0
- package/lib/types/posts.d.ts +28 -0
- package/lib/types/posts.js +2 -0
- package/lib/types/reactions.d.ts +4 -0
- package/lib/types/reactions.js +2 -0
- package/lib/types/tags.d.ts +9 -0
- package/lib/types/tags.js +2 -0
- package/lib/types/users.d.ts +78 -0
- package/lib/types/users.js +2 -0
- package/lib/utils/analytics.d.ts +3 -0
- package/lib/utils/analytics.js +47 -0
- package/lib/utils/arangodb.d.ts +9 -0
- package/lib/utils/arangodb.js +98 -0
- package/lib/utils/auth.d.ts +7 -0
- package/lib/utils/auth.js +80 -0
- package/lib/utils/graphql.d.ts +1 -0
- package/lib/utils/graphql.js +7 -0
- package/{src/utils/index.ts → lib/utils/index.d.ts} +0 -4
- package/lib/utils/index.js +11 -0
- package/lib/utils/objects.d.ts +3 -0
- package/lib/utils/objects.js +34 -0
- package/lib/utils/redis.d.ts +1 -0
- package/lib/utils/redis.js +15 -0
- package/package.json +8 -7
- package/.vscode/extensions.json +0 -15
- package/.vscode/settings.json +0 -82
- package/lex.config.js +0 -4
- package/src/config.ts +0 -127
- package/src/data/conversations.ts +0 -181
- package/src/data/dynamodb.ts +0 -157
- package/src/data/email.ts +0 -163
- package/src/data/files.ts +0 -352
- package/src/data/groups.ts +0 -308
- package/src/data/images.ts +0 -606
- package/src/data/ios.ts +0 -249
- package/src/data/locations.ts +0 -114
- package/src/data/messages.ts +0 -237
- package/src/data/notifications.ts +0 -48
- package/src/data/payments.ts +0 -675
- package/src/data/posts.ts +0 -580
- package/src/data/reactions.ts +0 -186
- package/src/data/s3.ts +0 -117
- package/src/data/search.ts +0 -74
- package/src/data/sms.ts +0 -60
- package/src/data/subscription.ts +0 -228
- package/src/data/tags.ts +0 -230
- package/src/data/users.ts +0 -254
- package/src/index.ts +0 -7
- package/src/types/apps.ts +0 -56
- package/src/types/arangodb.ts +0 -23
- package/src/types/auth.ts +0 -20
- package/src/types/conversations.ts +0 -11
- package/src/types/email.ts +0 -17
- package/src/types/files.ts +0 -31
- package/src/types/google.ts +0 -37
- package/src/types/groups.ts +0 -27
- package/src/types/images.ts +0 -32
- package/src/types/locations.ts +0 -24
- package/src/types/messages.ts +0 -16
- package/src/types/notifications.ts +0 -26
- package/src/types/payments.ts +0 -129
- package/src/types/posts.ts +0 -34
- package/src/types/reactions.ts +0 -8
- package/src/types/tags.ts +0 -13
- package/src/types/users.ts +0 -89
- package/src/utils/analytics.ts +0 -41
- package/src/utils/arangodb.ts +0 -100
- package/src/utils/auth.ts +0 -61
- package/src/utils/graphql.ts +0 -7
- package/src/utils/objects.ts +0 -34
- package/src/utils/redis.ts +0 -17
- package/tsconfig.json +0 -45
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
function _templateObject5() {
|
|
2
|
+
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && LENGTH(m.saved) > 0\n REMOVE m IN messages\n RETURN OLD"]);
|
|
3
|
+
|
|
4
|
+
_templateObject5 = function _templateObject5() {
|
|
5
|
+
return data;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
return data;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function _templateObject4() {
|
|
12
|
+
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m._key == ", " && m.to == ", " && m.from == ", "\n REMOVE m IN messages\n RETURN OLD"]);
|
|
13
|
+
|
|
14
|
+
_templateObject4 = function _templateObject4() {
|
|
15
|
+
return data;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function _templateObject3() {
|
|
22
|
+
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m._key == ", " && m.to == ", "\n UPDATE m WITH {saved: REMOVE_VALUE(m.saved, ", ")} IN messages\n RETURN NEW"]);
|
|
23
|
+
|
|
24
|
+
_templateObject3 = function _templateObject3() {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function _templateObject2() {
|
|
32
|
+
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m._key == ", " && m.to == ", "\n UPDATE m WITH {saved: APPEND(m.saved, ", ", true)} IN messages\n RETURN NEW"]);
|
|
33
|
+
|
|
34
|
+
_templateObject2 = function _templateObject2() {
|
|
35
|
+
return data;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function _templateObject() {
|
|
42
|
+
var data = _taggedTemplateLiteral(["UPSERT {_key: ", ", to: ", "}\n INSERT ", "\n UPDATE ", "\n IN messages RETURN NEW"]);
|
|
43
|
+
|
|
44
|
+
_templateObject = function _templateObject() {
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
52
|
+
|
|
53
|
+
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; }
|
|
54
|
+
|
|
55
|
+
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; }
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
59
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
60
|
+
*/
|
|
61
|
+
import { createHash, parseId, parseVarChar } from '@nlabs/utils';
|
|
62
|
+
import { aql } from 'arangojs';
|
|
63
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
64
|
+
import isEmpty from 'lodash/isEmpty';
|
|
65
|
+
import { getLimit, useDb } from '../utils';
|
|
66
|
+
import { getConversation } from './conversations'; // const eventCategory: string = 'messages';
|
|
67
|
+
|
|
68
|
+
export var getMessageList = function getMessageList(context, convoId, from, to) {
|
|
69
|
+
var database = context.database;
|
|
70
|
+
var formatConvoId = parseId(convoId);
|
|
71
|
+
return getConversation(context, formatConvoId).then(function (conversation) {
|
|
72
|
+
var conversationKey = conversation._key;
|
|
73
|
+
var limit = getLimit(from, to);
|
|
74
|
+
var aqlQry = "FOR m IN messages\n FILTER m.to == \"".concat(conversationKey, "\"\n ").concat(limit.aql, "\n SORT m.added\n RETURN m");
|
|
75
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
76
|
+
return cursor.all();
|
|
77
|
+
}).catch(function (error) {
|
|
78
|
+
throw error;
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
export var updateMessage = function updateMessage(context, message) {
|
|
83
|
+
var database = context.database,
|
|
84
|
+
sessionId = context.userId;
|
|
85
|
+
var files = message.files,
|
|
86
|
+
messageId = message.id,
|
|
87
|
+
toId = message.toId;
|
|
88
|
+
var formatToId = parseId(toId);
|
|
89
|
+
|
|
90
|
+
if (formatToId === '') {
|
|
91
|
+
throw new Error('required_to');
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return getConversation(context, formatToId).then(function (conversation) {
|
|
95
|
+
var conversationKey = conversation._key;
|
|
96
|
+
var now = new Date().getTime();
|
|
97
|
+
var update = {
|
|
98
|
+
content: parseVarChar(message.content, 640),
|
|
99
|
+
files: files || [],
|
|
100
|
+
fromId: sessionId,
|
|
101
|
+
modified: now,
|
|
102
|
+
toId: formatToId
|
|
103
|
+
};
|
|
104
|
+
var formatId = parseId(messageId);
|
|
105
|
+
var updatedId = formatId === '' ? createHash("message-".concat(sessionId)) : formatId;
|
|
106
|
+
|
|
107
|
+
var insert = _objectSpread({}, cloneDeep(update), {
|
|
108
|
+
_key: updatedId,
|
|
109
|
+
added: now
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
var aqlQry = aql(_templateObject(), updatedId, conversationKey, insert, update);
|
|
113
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
114
|
+
return cursor.next();
|
|
115
|
+
}).then(function () {
|
|
116
|
+
var updatedMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
117
|
+
return (// const {
|
|
118
|
+
// _key: msgId,
|
|
119
|
+
// added: msgAdded,
|
|
120
|
+
// content: msgContent,
|
|
121
|
+
// files: msgFiles,
|
|
122
|
+
// fromId: msgFromId,
|
|
123
|
+
// read: msgRead,
|
|
124
|
+
// saved: msgSaved,
|
|
125
|
+
// toId: msgToId
|
|
126
|
+
// } = updatedMessage;
|
|
127
|
+
// Broadcast to message box
|
|
128
|
+
// if(io) {
|
|
129
|
+
// const msg: MessageType = {
|
|
130
|
+
// added: msgAdded,
|
|
131
|
+
// content: msgContent,
|
|
132
|
+
// files: msgFiles,
|
|
133
|
+
// fromId: msgFromId,
|
|
134
|
+
// id: msgId,
|
|
135
|
+
// read: msgRead,
|
|
136
|
+
// saved: msgSaved,
|
|
137
|
+
// toId: msgToId
|
|
138
|
+
// };
|
|
139
|
+
// io.to(msgToId).emit('message_update', msg);
|
|
140
|
+
// }
|
|
141
|
+
updatedMessage
|
|
142
|
+
);
|
|
143
|
+
}).catch(function (error) {
|
|
144
|
+
throw error;
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
export var saveMessage = function saveMessage(context, msgId, convoId) {
|
|
149
|
+
var database = context.database,
|
|
150
|
+
sessionId = context.userId;
|
|
151
|
+
var formatId = parseId(msgId);
|
|
152
|
+
return getConversation(context, convoId).then(function (conversation) {
|
|
153
|
+
var conversationKey = conversation._key;
|
|
154
|
+
var aqlQry = aql(_templateObject2(), formatId, conversationKey, sessionId);
|
|
155
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
156
|
+
return cursor.next();
|
|
157
|
+
}).then(function () {
|
|
158
|
+
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
159
|
+
|
|
160
|
+
if (!isEmpty(message)) {// Broadcast to message box
|
|
161
|
+
// const msg: MessageType = Messages.getMessageObject(message);
|
|
162
|
+
// io.to(message.toId).emit('message_save', msg);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return message;
|
|
166
|
+
}).catch(function (error) {
|
|
167
|
+
throw error;
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
};
|
|
171
|
+
export var unsaveMessage = function unsaveMessage(context, msgId, convoId) {
|
|
172
|
+
var database = context.database,
|
|
173
|
+
sessionId = context.userId;
|
|
174
|
+
var formatId = parseId(msgId);
|
|
175
|
+
return getConversation(context, convoId).then(function (conversation) {
|
|
176
|
+
var conversationKey = conversation._key;
|
|
177
|
+
var aqlQry = aql(_templateObject3(), formatId, conversationKey, sessionId);
|
|
178
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
179
|
+
return cursor.next();
|
|
180
|
+
}).then(function () {
|
|
181
|
+
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
182
|
+
|
|
183
|
+
if (!isEmpty(message)) {// Broadcast to message box
|
|
184
|
+
// const msg: MessageType = Messages.getMessageObject(message);
|
|
185
|
+
// io.to(message.id).emit('message_unsave', msg);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return message;
|
|
189
|
+
}).catch(function (error) {
|
|
190
|
+
throw error;
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
export var deleteMessage = function deleteMessage(context, msgId, convoId) {
|
|
195
|
+
var database = context.database,
|
|
196
|
+
sessionId = context.userId;
|
|
197
|
+
var formatId = parseId(msgId);
|
|
198
|
+
return getConversation(context, convoId).then(function (conversation) {
|
|
199
|
+
var conversationKey = conversation._key;
|
|
200
|
+
var aqlQry = aql(_templateObject4(), formatId, conversationKey, sessionId);
|
|
201
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
202
|
+
return cursor.next();
|
|
203
|
+
}).then(function () {
|
|
204
|
+
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
205
|
+
|
|
206
|
+
if (!isEmpty(message)) {// Broadcast to message box
|
|
207
|
+
// const msg: MessageType = Messages.getMessageObject(message);
|
|
208
|
+
// io.to(message.toId).emit('message_delete', msg);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
return message;
|
|
212
|
+
}).catch(function (error) {
|
|
213
|
+
throw error;
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
export var getMessage = function getMessage(data) {
|
|
218
|
+
var msgAdded = data.added,
|
|
219
|
+
msgContent = data.content,
|
|
220
|
+
msgFiles = data.files,
|
|
221
|
+
msgFromId = data.fromId,
|
|
222
|
+
msgId = data._key,
|
|
223
|
+
msgRead = data.read,
|
|
224
|
+
msgSaved = data.saved,
|
|
225
|
+
msgToId = data.toId;
|
|
226
|
+
return {
|
|
227
|
+
added: msgAdded,
|
|
228
|
+
content: msgContent,
|
|
229
|
+
files: msgFiles,
|
|
230
|
+
fromId: msgFromId,
|
|
231
|
+
id: msgId,
|
|
232
|
+
read: msgRead,
|
|
233
|
+
saved: msgSaved,
|
|
234
|
+
toId: msgToId
|
|
235
|
+
};
|
|
236
|
+
};
|
|
237
|
+
export var cleanMessages = function cleanMessages(database) {
|
|
238
|
+
// Remove all messages that are over 60 days and not saved
|
|
239
|
+
var aqlQry = aql(_templateObject5());
|
|
240
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
241
|
+
return cursor.all();
|
|
242
|
+
}).then(function (list) {
|
|
243
|
+
return list.length;
|
|
244
|
+
}).catch(function (error) {
|
|
245
|
+
throw error;
|
|
246
|
+
});
|
|
247
|
+
};
|
|
248
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbImNyZWF0ZUhhc2giLCJwYXJzZUlkIiwicGFyc2VWYXJDaGFyIiwiYXFsIiwiY2xvbmVEZWVwIiwiaXNFbXB0eSIsImdldExpbWl0IiwidXNlRGIiLCJnZXRDb252ZXJzYXRpb24iLCJnZXRNZXNzYWdlTGlzdCIsImNvbnRleHQiLCJjb252b0lkIiwiZnJvbSIsInRvIiwiZGF0YWJhc2UiLCJmb3JtYXRDb252b0lkIiwidGhlbiIsImNvbnZlcnNhdGlvbiIsImNvbnZlcnNhdGlvbktleSIsIl9rZXkiLCJsaW1pdCIsImFxbFFyeSIsInF1ZXJ5IiwiY3Vyc29yIiwiYWxsIiwiY2F0Y2giLCJlcnJvciIsInVwZGF0ZU1lc3NhZ2UiLCJtZXNzYWdlIiwic2Vzc2lvbklkIiwidXNlcklkIiwiZmlsZXMiLCJtZXNzYWdlSWQiLCJpZCIsInRvSWQiLCJmb3JtYXRUb0lkIiwiRXJyb3IiLCJub3ciLCJEYXRlIiwiZ2V0VGltZSIsInVwZGF0ZSIsImNvbnRlbnQiLCJmcm9tSWQiLCJtb2RpZmllZCIsImZvcm1hdElkIiwidXBkYXRlZElkIiwiaW5zZXJ0IiwiYWRkZWQiLCJuZXh0IiwidXBkYXRlZE1lc3NhZ2UiLCJzYXZlTWVzc2FnZSIsIm1zZ0lkIiwidW5zYXZlTWVzc2FnZSIsImRlbGV0ZU1lc3NhZ2UiLCJnZXRNZXNzYWdlIiwiZGF0YSIsIm1zZ0FkZGVkIiwibXNnQ29udGVudCIsIm1zZ0ZpbGVzIiwibXNnRnJvbUlkIiwibXNnUmVhZCIsInJlYWQiLCJtc2dTYXZlZCIsInNhdmVkIiwibXNnVG9JZCIsImNsZWFuTWVzc2FnZXMiLCJsaXN0IiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBSUEsU0FBUUEsVUFBUixFQUFvQkMsT0FBcEIsRUFBNkJDLFlBQTdCLFFBQWdELGNBQWhE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QSxJQUFJLEVBQUU4QjtBQVJELEdBQVA7QUFVRCxDQXRCTTtBQXdCUCxPQUFPLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ25ELFFBQUQsRUFBdUM7QUFDbEU7QUFDQSxNQUFNTyxNQUFNLEdBQUdsQixHQUFILG9CQUFaO0FBS0EsU0FBT0ksS0FBSyxDQUFDTyxRQUFELENBQUwsQ0FBZ0JRLEtBQWhCLENBQXNCRCxNQUF0QixFQUNKTCxJQURJLENBQ0MsVUFBQ08sTUFBRDtBQUFBLFdBQXlCQSxNQUFNLENBQUNDLEdBQVAsRUFBekI7QUFBQSxHQURELEVBRUpSLElBRkksQ0FFQyxVQUFDa0QsSUFBRDtBQUFBLFdBQXlCQSxJQUFJLENBQUNDLE1BQTlCO0FBQUEsR0FGRCxFQUdKMUMsS0FISSxDQUdFLFVBQUNDLEtBQUQsRUFBa0I7QUFDdkIsVUFBTUEsS0FBTjtBQUNELEdBTEksQ0FBUDtBQU1ELENBYk0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUlkLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9hcWwtcXVlcnknO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcblxuaW1wb3J0IHtBcmFuZ29EQkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYic7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHtDb252ZXJzYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9jb252ZXJzYXRpb25zJztcbmltcG9ydCB7TWVzc2FnZVR5cGV9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2VzJztcbmltcG9ydCB7Z2V0TGltaXQsIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2dldENvbnZlcnNhdGlvbn0gZnJvbSAnLi9jb252ZXJzYXRpb25zJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGNvbnN0IGdldE1lc3NhZ2VMaXN0ID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZywgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogUHJvbWlzZTxNZXNzYWdlVHlwZVtdPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252b0lkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZvSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgZm9ybWF0Q29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGxpbWl0OiBBcmFuZ29EQkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICAgICAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBGSUxURVIgbS50byA9PSBcIiR7Y29udmVyc2F0aW9uS2V5fVwiXG4gICAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgICAgU09SVCBtLmFkZGVkXG4gICAgICAgICAgUkVUVVJOIG1gO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVNZXNzYWdlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtmaWxlcywgaWQ6IG1lc3NhZ2VJZCwgdG9JZH0gPSBtZXNzYWdlO1xuICBjb25zdCBmb3JtYXRUb0lkOiBzdHJpbmcgPSBwYXJzZUlkKHRvSWQpO1xuXG4gIGlmKGZvcm1hdFRvSWQgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdyZXF1aXJlZF90bycpO1xuICB9XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBmb3JtYXRUb0lkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICAgICAgY29uc3QgdXBkYXRlOiBNZXNzYWdlVHlwZSA9IHtcbiAgICAgICAgY29udGVudDogcGFyc2VWYXJDaGFyKG1lc3NhZ2UuY29udGVudCwgNjQwKSxcbiAgICAgICAgZmlsZXM6IGZpbGVzIHx8IFtdLFxuICAgICAgICBmcm9tSWQ6IHNlc3Npb25JZCxcbiAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgICAgdG9JZDogZm9ybWF0VG9JZFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1lc3NhZ2VJZCk7XG4gICAgICBjb25zdCB1cGRhdGVkSWQ6IHN0cmluZyA9IGZvcm1hdElkID09PSAnJyA/IGNyZWF0ZUhhc2goYG1lc3NhZ2UtJHtzZXNzaW9uSWR9YCkgOiBmb3JtYXRJZDtcbiAgICAgIGNvbnN0IGluc2VydDogTWVzc2FnZVR5cGUgPSB7XG4gICAgICAgIC4uLmNsb25lRGVlcCh1cGRhdGUpLFxuICAgICAgICBfa2V5OiB1cGRhdGVkSWQsXG4gICAgICAgIGFkZGVkOiBub3dcbiAgICAgIH07XG4gICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7X2tleTogJHt1cGRhdGVkSWR9LCB0bzogJHtjb252ZXJzYXRpb25LZXl9fVxuICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgICAgICBVUERBVEUgJHt1cGRhdGV9XG4gICAgICAgICAgSU4gbWVzc2FnZXMgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKHVwZGF0ZWRNZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHt9KSA9PlxuICAgICAgICAgIC8vIGNvbnN0IHtcbiAgICAgICAgICAvLyAgIF9rZXk6IG1zZ0lkLFxuICAgICAgICAgIC8vICAgYWRkZWQ6IG1zZ0FkZGVkLFxuICAgICAgICAgIC8vICAgY29udGVudDogbXNnQ29udGVudCxcbiAgICAgICAgICAvLyAgIGZpbGVzOiBtc2dGaWxlcyxcbiAgICAgICAgICAvLyAgIGZyb21JZDogbXNnRnJvbUlkLFxuICAgICAgICAgIC8vICAgcmVhZDogbXNnUmVhZCxcbiAgICAgICAgICAvLyAgIHNhdmVkOiBtc2dTYXZlZCxcbiAgICAgICAgICAvLyAgIHRvSWQ6IG1zZ1RvSWRcbiAgICAgICAgICAvLyB9ID0gdXBkYXRlZE1lc3NhZ2U7XG5cbiAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAvLyBpZihpbykge1xuICAgICAgICAgIC8vICAgY29uc3QgbXNnOiBNZXNzYWdlVHlwZSA9IHtcbiAgICAgICAgICAvLyAgICAgYWRkZWQ6IG1zZ0FkZGVkLFxuICAgICAgICAgIC8vICAgICBjb250ZW50OiBtc2dDb250ZW50LFxuICAgICAgICAgIC8vICAgICBmaWxlczogbXNnRmlsZXMsXG4gICAgICAgICAgLy8gICAgIGZyb21JZDogbXNnRnJvbUlkLFxuICAgICAgICAgIC8vICAgICBpZDogbXNnSWQsXG4gICAgICAgICAgLy8gICAgIHJlYWQ6IG1zZ1JlYWQsXG4gICAgICAgICAgLy8gICAgIHNhdmVkOiBtc2dTYXZlZCxcbiAgICAgICAgICAvLyAgICAgdG9JZDogbXNnVG9JZFxuICAgICAgICAgIC8vICAgfTtcblxuICAgICAgICAgIC8vICAgaW8udG8obXNnVG9JZCkuZW1pdCgnbWVzc2FnZV91cGRhdGUnLCBtc2cpO1xuICAgICAgICAgIC8vIH1cblxuICAgICAgICAgIHVwZGF0ZWRNZXNzYWdlXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBzYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBBUFBFTkQobS5zYXZlZCwgJHtzZXNzaW9uSWR9LCB0cnVlKX0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICBpZighaXNFbXB0eShtZXNzYWdlKSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtc2c6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9zYXZlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCB1bnNhdmVNZXNzYWdlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG1zZ0lkOiBzdHJpbmcsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChtc2dJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252b0lkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH0gJiYgbS50byA9PSAke2NvbnZlcnNhdGlvbktleX1cbiAgICAgICAgICBVUERBVEUgbSBXSVRIIHtzYXZlZDogUkVNT1ZFX1ZBTFVFKG0uc2F2ZWQsICR7c2Vzc2lvbklkfSl9IElOIG1lc3NhZ2VzXG4gICAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICBpZighaXNFbXB0eShtZXNzYWdlKSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtc2c6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UuaWQpLmVtaXQoJ21lc3NhZ2VfdW5zYXZlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9ICYmIG0uZnJvbSA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICBpZighaXNFbXB0eShtZXNzYWdlKSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtc2c6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9kZWxldGUnLCBtc2cpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNZXNzYWdlID0gKGRhdGE6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgYWRkZWQ6IG1zZ0FkZGVkLFxuICAgIGNvbnRlbnQ6IG1zZ0NvbnRlbnQsXG4gICAgZmlsZXM6IG1zZ0ZpbGVzLFxuICAgIGZyb21JZDogbXNnRnJvbUlkLFxuICAgIF9rZXk6IG1zZ0lkLFxuICAgIHJlYWQ6IG1zZ1JlYWQsXG4gICAgc2F2ZWQ6IG1zZ1NhdmVkLFxuICAgIHRvSWQ6IG1zZ1RvSWRcbiAgfSA9IGRhdGE7XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRlZDogbXNnQWRkZWQsXG4gICAgY29udGVudDogbXNnQ29udGVudCxcbiAgICBmaWxlczogbXNnRmlsZXMsXG4gICAgZnJvbUlkOiBtc2dGcm9tSWQsXG4gICAgaWQ6IG1zZ0lkLFxuICAgIHJlYWQ6IG1zZ1JlYWQsXG4gICAgc2F2ZWQ6IG1zZ1NhdmVkLFxuICAgIHRvSWQ6IG1zZ1RvSWRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbGVhbk1lc3NhZ2VzID0gKGRhdGFiYXNlOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICAvLyBSZW1vdmUgYWxsIG1lc3NhZ2VzIHRoYXQgYXJlIG92ZXIgNjAgZGF5cyBhbmQgbm90IHNhdmVkXG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgRklMVEVSIG0uYWRkZWQgPCBEQVRFX1RJTUVTVEFNUChEQVRFX1NVQlRSQUNUKERBVEVfTk9XKCksIDYwLCAnZGF5JykpICYmIExFTkdUSChtLnNhdmVkKSA+IDBcbiAgICAgIFJFTU9WRSBtIElOIG1lc3NhZ2VzXG4gICAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0OiBNZXNzYWdlVHlwZVtdKSA9PiBsaXN0Lmxlbmd0aClcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Provider, Responses } from 'apn';
|
|
2
|
+
import { NotificationType } from '../types/notifications';
|
|
3
|
+
export declare const getAPNProvider: () => Provider;
|
|
4
|
+
export declare const pushNotification: (deviceTokens: string[], note: NotificationType) => Promise<Responses>;
|
|
5
|
+
export declare const clearBadges: (deviceTokens: string[]) => Promise<Responses>;
|
|
@@ -0,0 +1,42 @@
|
|
|
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 { Notification as APNNotification, Provider } from 'apn';
|
|
6
|
+
import { Config } from '../config';
|
|
7
|
+
// const eventCategory: string = 'notifications';
|
|
8
|
+
// Push Notifications
|
|
9
|
+
export var getAPNProvider = function getAPNProvider() {
|
|
10
|
+
return new Provider({
|
|
11
|
+
ca: Config.get('app.apn.ca'),
|
|
12
|
+
cert: Config.get('app.apn.cert'),
|
|
13
|
+
key: Config.get('app.apn.key'),
|
|
14
|
+
production: Config.get('environment') === 'production'
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
export var pushNotification = function pushNotification(deviceTokens, note) {
|
|
18
|
+
// Push notification to device
|
|
19
|
+
var provider = getAPNProvider();
|
|
20
|
+
var notification = new APNNotification();
|
|
21
|
+
notification.topic = Config.get('app.apn.id');
|
|
22
|
+
notification.alert = note.message;
|
|
23
|
+
|
|
24
|
+
if (note.data) {
|
|
25
|
+
notification.mutableContent = true;
|
|
26
|
+
notification.payload = note.data;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (note.badge !== undefined) {
|
|
30
|
+
notification.badge = note.badge;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return provider.send(notification, deviceTokens);
|
|
34
|
+
};
|
|
35
|
+
export var clearBadges = function clearBadges(deviceTokens) {
|
|
36
|
+
// Push notification to device
|
|
37
|
+
var provider = getAPNProvider();
|
|
38
|
+
var notification = new APNNotification();
|
|
39
|
+
notification.badge = 0;
|
|
40
|
+
return provider.send(notification, deviceTokens);
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL25vdGlmaWNhdGlvbnMudHMiXSwibmFtZXMiOlsiTm90aWZpY2F0aW9uIiwiQVBOTm90aWZpY2F0aW9uIiwiUHJvdmlkZXIiLCJDb25maWciLCJnZXRBUE5Qcm92aWRlciIsImNhIiwiZ2V0IiwiY2VydCIsImtleSIsInByb2R1Y3Rpb24iLCJwdXNoTm90aWZpY2F0aW9uIiwiZGV2aWNlVG9rZW5zIiwibm90ZSIsInByb3ZpZGVyIiwibm90aWZpY2F0aW9uIiwidG9waWMiLCJhbGVydCIsIm1lc3NhZ2UiLCJkYXRhIiwibXV0YWJsZUNvbnRlbnQiLCJwYXlsb2FkIiwiYmFkZ2UiLCJ1bmRlZmluZWQiLCJzZW5kIiwiY2xlYXJCYWRnZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBSUEsU0FBUUEsWUFBWSxJQUFJQyxlQUF4QixFQUF5Q0MsUUFBekMsUUFBbUUsS0FBbkU7QUFFQSxTQUFRQyxNQUFSLFFBQXFCLFdBQXJCO0FBR0E7QUFFQTtBQUNBLE9BQU8sSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixHQUFnQjtBQUM1QyxTQUFPLElBQUlGLFFBQUosQ0FBYTtBQUNsQkcsSUFBQUEsRUFBRSxFQUFFRixNQUFNLENBQUNHLEdBQVAsQ0FBVyxZQUFYLENBRGM7QUFFbEJDLElBQUFBLElBQUksRUFBRUosTUFBTSxDQUFDRyxHQUFQLENBQVcsY0FBWCxDQUZZO0FBR2xCRSxJQUFBQSxHQUFHLEVBQUVMLE1BQU0sQ0FBQ0csR0FBUCxDQUFXLGFBQVgsQ0FIYTtBQUlsQkcsSUFBQUEsVUFBVSxFQUFFTixNQUFNLENBQUNHLEdBQVAsQ0FBVyxhQUFYLE1BQThCO0FBSnhCLEdBQWIsQ0FBUDtBQU1ELENBUE07QUFTUCxPQUFPLElBQU1JLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQ0MsWUFBRCxFQUF5QkMsSUFBekIsRUFBd0U7QUFDdEc7QUFDQSxNQUFNQyxRQUFrQixHQUFHVCxjQUFjLEVBQXpDO0FBQ0EsTUFBTVUsWUFBNkIsR0FBRyxJQUFJYixlQUFKLEVBQXRDO0FBQ0FhLEVBQUFBLFlBQVksQ0FBQ0MsS0FBYixHQUFxQlosTUFBTSxDQUFDRyxHQUFQLENBQVcsWUFBWCxDQUFyQjtBQUNBUSxFQUFBQSxZQUFZLENBQUNFLEtBQWIsR0FBcUJKLElBQUksQ0FBQ0ssT0FBMUI7O0FBRUEsTUFBR0wsSUFBSSxDQUFDTSxJQUFSLEVBQWM7QUFDWkosSUFBQUEsWUFBWSxDQUFDSyxjQUFiLEdBQThCLElBQTlCO0FBQ0FMLElBQUFBLFlBQVksQ0FBQ00sT0FBYixHQUF1QlIsSUFBSSxDQUFDTSxJQUE1QjtBQUNEOztBQUVELE1BQUdOLElBQUksQ0FBQ1MsS0FBTCxLQUFlQyxTQUFsQixFQUE2QjtBQUMzQlIsSUFBQUEsWUFBWSxDQUFDTyxLQUFiLEdBQXFCVCxJQUFJLENBQUNTLEtBQTFCO0FBQ0Q7O0FBRUQsU0FBT1IsUUFBUSxDQUFDVSxJQUFULENBQWNULFlBQWQsRUFBNEJILFlBQTVCLENBQVA7QUFDRCxDQWpCTTtBQW1CUCxPQUFPLElBQU1hLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNiLFlBQUQsRUFBZ0Q7QUFDekU7QUFDQSxNQUFNRSxRQUFRLEdBQUdULGNBQWMsRUFBL0I7QUFDQSxNQUFNVSxZQUFZLEdBQUcsSUFBSWIsZUFBSixFQUFyQjtBQUNBYSxFQUFBQSxZQUFZLENBQUNPLEtBQWIsR0FBcUIsQ0FBckI7QUFFQSxTQUFPUixRQUFRLENBQUNVLElBQVQsQ0FBY1QsWUFBZCxFQUE0QkgsWUFBNUIsQ0FBUDtBQUNELENBUE0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtOb3RpZmljYXRpb24gYXMgQVBOTm90aWZpY2F0aW9uLCBQcm92aWRlciwgUmVzcG9uc2VzfSBmcm9tICdhcG4nO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvbm90aWZpY2F0aW9ucyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdub3RpZmljYXRpb25zJztcblxuLy8gUHVzaCBOb3RpZmljYXRpb25zXG5leHBvcnQgY29uc3QgZ2V0QVBOUHJvdmlkZXIgPSAoKTogUHJvdmlkZXIgPT4ge1xuICByZXR1cm4gbmV3IFByb3ZpZGVyKHtcbiAgICBjYTogQ29uZmlnLmdldCgnYXBwLmFwbi5jYScpLFxuICAgIGNlcnQ6IENvbmZpZy5nZXQoJ2FwcC5hcG4uY2VydCcpLFxuICAgIGtleTogQ29uZmlnLmdldCgnYXBwLmFwbi5rZXknKSxcbiAgICBwcm9kdWN0aW9uOiBDb25maWcuZ2V0KCdlbnZpcm9ubWVudCcpID09PSAncHJvZHVjdGlvbidcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcHVzaE5vdGlmaWNhdGlvbiA9IChkZXZpY2VUb2tlbnM6IHN0cmluZ1tdLCBub3RlOiBOb3RpZmljYXRpb25UeXBlKTogUHJvbWlzZTxSZXNwb25zZXM+ID0+IHtcbiAgLy8gUHVzaCBub3RpZmljYXRpb24gdG8gZGV2aWNlXG4gIGNvbnN0IHByb3ZpZGVyOiBQcm92aWRlciA9IGdldEFQTlByb3ZpZGVyKCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbjogQVBOTm90aWZpY2F0aW9uID0gbmV3IEFQTk5vdGlmaWNhdGlvbigpO1xuICBub3RpZmljYXRpb24udG9waWMgPSBDb25maWcuZ2V0KCdhcHAuYXBuLmlkJyk7XG4gIG5vdGlmaWNhdGlvbi5hbGVydCA9IG5vdGUubWVzc2FnZTtcblxuICBpZihub3RlLmRhdGEpIHtcbiAgICBub3RpZmljYXRpb24ubXV0YWJsZUNvbnRlbnQgPSB0cnVlO1xuICAgIG5vdGlmaWNhdGlvbi5wYXlsb2FkID0gbm90ZS5kYXRhO1xuICB9XG5cbiAgaWYobm90ZS5iYWRnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbm90aWZpY2F0aW9uLmJhZGdlID0gbm90ZS5iYWRnZTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlci5zZW5kKG5vdGlmaWNhdGlvbiwgZGV2aWNlVG9rZW5zKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbGVhckJhZGdlcyA9IChkZXZpY2VUb2tlbnM6IHN0cmluZ1tdKTogUHJvbWlzZTxSZXNwb25zZXM+ID0+IHtcbiAgLy8gUHVzaCBub3RpZmljYXRpb24gdG8gZGV2aWNlXG4gIGNvbnN0IHByb3ZpZGVyID0gZ2V0QVBOUHJvdmlkZXIoKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uID0gbmV3IEFQTk5vdGlmaWNhdGlvbigpO1xuICBub3RpZmljYXRpb24uYmFkZ2UgPSAwO1xuXG4gIHJldHVybiBwcm92aWRlci5zZW5kKG5vdGlmaWNhdGlvbiwgZGV2aWNlVG9rZW5zKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ApiContext, PaymentBankAccount, PaymentCardType, PaymentCharge, PaymentTransfer, UserType } from '../types';
|
|
2
|
+
export declare const addCustomerAccount: (context: ApiContext) => Promise<boolean>;
|
|
3
|
+
export declare const addPaymentAccountBank: (context: ApiContext, bankAccount: PaymentBankAccount) => Promise<boolean>;
|
|
4
|
+
export declare const addPaymentAccountCard: (context: ApiContext, card: PaymentCardType, requestData: any) => Promise<UserType>;
|
|
5
|
+
export declare const addCreditCard: (context: ApiContext, card: PaymentCardType) => Promise<PaymentCardType>;
|
|
6
|
+
export declare const updateCreditCard: (context: ApiContext, card: PaymentCardType) => Promise<PaymentCardType>;
|
|
7
|
+
export declare const getCreditCards: (context: ApiContext) => Promise<PaymentCardType[]>;
|
|
8
|
+
export declare const deleteCreditCard: (context: ApiContext, cardId: string) => Promise<boolean>;
|
|
9
|
+
export declare const deletePaymentAccountBank: (context: ApiContext, bankId: string) => Promise<boolean>;
|
|
10
|
+
export declare const createPaymentTransfer: (context: ApiContext, transfer: PaymentTransfer) => Promise<PaymentTransfer>;
|
|
11
|
+
export declare const createPaymentHold: (context: ApiContext, payment: PaymentCharge) => Promise<PaymentCharge>;
|