@nlabs/reaktor 0.3.0 → 0.4.0

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 (56) hide show
  1. package/lib/config.js +153 -0
  2. package/lib/data/conversations.js +311 -0
  3. package/lib/data/dynamodb.js +206 -0
  4. package/lib/data/email.js +222 -0
  5. package/lib/data/files.js +525 -0
  6. package/lib/data/groups.js +435 -0
  7. package/lib/data/images.d.ts +3 -2
  8. package/lib/data/images.js +1051 -0
  9. package/lib/data/index.js +266 -0
  10. package/lib/data/ios.js +355 -0
  11. package/lib/data/locations.js +172 -0
  12. package/lib/data/messages.js +299 -0
  13. package/lib/data/notifications.d.ts +2 -2
  14. package/lib/data/notifications.js +59 -0
  15. package/lib/data/payments.js +771 -0
  16. package/lib/data/posts.d.ts +1 -1
  17. package/lib/data/posts.js +766 -0
  18. package/lib/data/reactions.js +529 -0
  19. package/lib/data/s3.js +155 -0
  20. package/lib/data/search.js +155 -0
  21. package/lib/data/sms.js +83 -0
  22. package/lib/data/subscription.js +337 -0
  23. package/lib/data/tags.js +397 -0
  24. package/lib/data/users.d.ts +7 -4
  25. package/lib/data/users.js +470 -0
  26. package/lib/data/websockets.js +250 -0
  27. package/lib/index.js +45 -0
  28. package/lib/types/apps.js +2 -0
  29. package/lib/types/arangodb.js +2 -0
  30. package/lib/types/auth.js +2 -0
  31. package/lib/types/conversations.d.ts +2 -0
  32. package/lib/types/conversations.js +2 -0
  33. package/lib/types/email.js +2 -0
  34. package/lib/types/files.js +2 -0
  35. package/lib/types/google.js +2 -0
  36. package/lib/types/groups.js +2 -0
  37. package/lib/types/images.js +2 -0
  38. package/lib/types/index.js +227 -0
  39. package/lib/types/locations.js +2 -0
  40. package/lib/types/messages.js +2 -0
  41. package/lib/types/notifications.js +2 -0
  42. package/lib/types/payments.js +2 -0
  43. package/lib/types/posts.js +2 -0
  44. package/lib/types/reactions.d.ts +2 -0
  45. package/lib/types/reactions.js +2 -0
  46. package/lib/types/tags.js +2 -0
  47. package/lib/types/users.d.ts +1 -0
  48. package/lib/types/users.js +2 -0
  49. package/lib/utils/analytics.js +83 -0
  50. package/lib/utils/arangodb.js +143 -0
  51. package/lib/utils/auth.js +75 -0
  52. package/lib/utils/graphql.js +21 -0
  53. package/lib/utils/index.js +84 -0
  54. package/lib/utils/objects.js +62 -0
  55. package/lib/utils/redis.js +36 -0
  56. package/package.json +30 -30
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.concat");
4
+
5
+ require("core-js/modules/es.array.filter");
6
+
7
+ require("core-js/modules/es.array.find");
8
+
9
+ require("core-js/modules/es.array.find-index");
10
+
11
+ require("core-js/modules/es.array.join");
12
+
13
+ require("core-js/modules/es.array.slice");
14
+
15
+ require("core-js/modules/es.date.now");
16
+
17
+ require("core-js/modules/es.date.to-string");
18
+
19
+ require("core-js/modules/es.object.define-properties");
20
+
21
+ require("core-js/modules/es.object.freeze");
22
+
23
+ Object.defineProperty(exports, "__esModule", {
24
+ value: true
25
+ });
26
+ exports.addLocation = void 0;
27
+
28
+ var _ripHunter = require("@nlabs/rip-hunter");
29
+
30
+ var _utils = require("@nlabs/utils");
31
+
32
+ var _arangojs = require("arangojs");
33
+
34
+ var _get = _interopRequireDefault(require("lodash/get"));
35
+
36
+ var _config = require("../config");
37
+
38
+ var _utils2 = require("../utils");
39
+
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
41
+
42
+ function _templateObject() {
43
+ var data = _taggedTemplateLiteral(["UPSERT {googleId: ", "}\n INSERT ", "\n UPDATE ", "\n IN locations RETURN NEW"]);
44
+
45
+ _templateObject = function _templateObject() {
46
+ return data;
47
+ };
48
+
49
+ return data;
50
+ }
51
+
52
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
53
+
54
+ var eventCategory = 'locations';
55
+
56
+ var addLocation = function addLocation(context, location) {
57
+ var action = 'add';
58
+ var database = context.database,
59
+ sessionId = context.userId;
60
+ var address = location.address,
61
+ itemId = location.itemId,
62
+ itemType = location.itemType;
63
+
64
+ var geocodeUrl = _config.Config.get('google.geocode.url');
65
+
66
+ var params = {
67
+ address: address,
68
+ key: _config.Config.get('google.geocode.key')
69
+ };
70
+ var url = "".concat(geocodeUrl, "?").concat((0, _ripHunter.queryString)(params));
71
+ return (0, _ripHunter.get)(url).then(function (json) {
72
+ var _json$results = json.results,
73
+ results = _json$results === void 0 ? [] : _json$results,
74
+ _json$status = json.status,
75
+ status = _json$status === void 0 ? '' : _json$status;
76
+
77
+ if (status === 'OK' && results.length) {
78
+ var geodata = results[0];
79
+ var addressComponents = (0, _get["default"])(geodata, 'address_components');
80
+
81
+ var getFieldVal = function getFieldVal(name) {
82
+ var _ref = addressComponents.find(function (addressField) {
83
+ var types = addressField.types || [];
84
+ return types.findIndex(function (fieldType) {
85
+ return fieldType === name;
86
+ }) >= 0;
87
+ }) || {},
88
+ _ref$short_name = _ref.short_name,
89
+ shortName = _ref$short_name === void 0 ? '' : _ref$short_name;
90
+
91
+ return shortName;
92
+ }; // Street
93
+
94
+
95
+ var streetNumber = getFieldVal('street_number');
96
+ var route = getFieldVal('route'); // Location
97
+
98
+ var now = Date.now(); // Item
99
+
100
+ var formatItemType = (0, _utils.parseChar)(itemType).toLowerCase();
101
+ var formatItemId = (0, _utils.parseId)(itemId);
102
+ var googleId = (0, _get["default"])(geodata, 'place_id');
103
+ var update = {};
104
+ var insert = {
105
+ _key: (0, _utils.createHash)("post-".concat(sessionId)),
106
+ added: now,
107
+ city: getFieldVal('locality'),
108
+ country: getFieldVal('country'),
109
+ formatted: (0, _get["default"])(geodata, 'formatted_address'),
110
+ googleId: googleId,
111
+ latitude: (0, _get["default"])(geodata, 'geometry.location.lat'),
112
+ longitude: (0, _get["default"])(geodata, 'geometry.location.lng'),
113
+ state: getFieldVal('administrative_area_level_1'),
114
+ street: [streetNumber, route].filter(function (obj) {
115
+ return obj;
116
+ }).join(' '),
117
+ zip: getFieldVal('postal_code')
118
+ };
119
+ var aqlQry = (0, _arangojs.aql)(_templateObject(), googleId, insert, update);
120
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
121
+ return cursor.next();
122
+ }).then(function () {
123
+ var updatedLocation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
124
+ var itemDocId;
125
+ var updatedLocationKey = updatedLocation._key;
126
+
127
+ switch (formatItemType) {
128
+ case 'posts':
129
+ itemDocId = "posts/".concat(formatItemId);
130
+ break;
131
+
132
+ default:
133
+ itemDocId = '';
134
+ } // If there is a valid item doc id, create an edge
135
+
136
+
137
+ if (itemDocId) {
138
+ var edgeCollection = (0, _utils2.useDb)(database).collection('hasLocation');
139
+ var locationId = updatedLocationKey;
140
+ var locationDocId = "locations/".concat(locationId);
141
+ var edgeId = (0, _utils.createHash)("hasLocation-".concat(locationId, "-").concat(sessionId));
142
+ var edge = {
143
+ _from: itemDocId,
144
+ _key: edgeId,
145
+ _to: locationDocId
146
+ };
147
+ return edgeCollection.save(edge, {
148
+ returnNew: true
149
+ }).then(function () {
150
+ return updatedLocation;
151
+ });
152
+ } // Otherwise just return the new location
153
+
154
+
155
+ return updatedLocation;
156
+ })["catch"](function (error) {
157
+ return (0, _utils2.logError)({
158
+ action: action,
159
+ category: eventCategory,
160
+ label: 'db_error'
161
+ }, error, context).then(function () {
162
+ return null;
163
+ });
164
+ });
165
+ }
166
+
167
+ return {};
168
+ });
169
+ };
170
+
171
+ exports.addLocation = addLocation;
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2xvY2F0aW9ucy50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiYWRkTG9jYXRpb24iLCJjb250ZXh0IiwibG9jYXRpb24iLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImFkZHJlc3MiLCJpdGVtSWQiLCJpdGVtVHlwZSIsImdlb2NvZGVVcmwiLCJDb25maWciLCJnZXQiLCJwYXJhbXMiLCJrZXkiLCJ1cmwiLCJ0aGVuIiwianNvbiIsInJlc3VsdHMiLCJzdGF0dXMiLCJsZW5ndGgiLCJnZW9kYXRhIiwiYWRkcmVzc0NvbXBvbmVudHMiLCJnZXRGaWVsZFZhbCIsIm5hbWUiLCJmaW5kIiwiYWRkcmVzc0ZpZWxkIiwidHlwZXMiLCJmaW5kSW5kZXgiLCJmaWVsZFR5cGUiLCJzaG9ydF9uYW1lIiwic2hvcnROYW1lIiwic3RyZWV0TnVtYmVyIiwicm91dGUiLCJub3ciLCJEYXRlIiwiZm9ybWF0SXRlbVR5cGUiLCJ0b0xvd2VyQ2FzZSIsImZvcm1hdEl0ZW1JZCIsImdvb2dsZUlkIiwidXBkYXRlIiwiaW5zZXJ0IiwiX2tleSIsImFkZGVkIiwiY2l0eSIsImNvdW50cnkiLCJmb3JtYXR0ZWQiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInN0YXRlIiwic3RyZWV0IiwiZmlsdGVyIiwib2JqIiwiam9pbiIsInppcCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwiY3Vyc29yIiwibmV4dCIsInVwZGF0ZWRMb2NhdGlvbiIsIml0ZW1Eb2NJZCIsInVwZGF0ZWRMb2NhdGlvbktleSIsImVkZ2VDb2xsZWN0aW9uIiwiY29sbGVjdGlvbiIsImxvY2F0aW9uSWQiLCJsb2NhdGlvbkRvY0lkIiwiZWRnZUlkIiwiZWRnZSIsIl9mcm9tIiwiX3RvIiwic2F2ZSIsInJldHVybk5ldyIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7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RUFBYztBQUNaLGNBQU1FLGNBQThCLEdBQUcsbUJBQU0zRCxRQUFOLEVBQWdCNEQsVUFBaEIsQ0FBMkIsYUFBM0IsQ0FBdkM7QUFDQSxjQUFNQyxVQUFrQixHQUFHSCxrQkFBM0I7QUFDQSxjQUFNSSxhQUFxQix1QkFBZ0JELFVBQWhCLENBQTNCO0FBQ0EsY0FBTUUsTUFBTSxHQUFHLDZDQUEwQkYsVUFBMUIsY0FBd0M1RCxTQUF4QyxFQUFmO0FBQ0EsY0FBTStELElBQVMsR0FBRztBQUFDQyxZQUFBQSxLQUFLLEVBQUVSLFNBQVI7QUFBbUJuQixZQUFBQSxJQUFJLEVBQUV5QixNQUF6QjtBQUFpQ0csWUFBQUEsR0FBRyxFQUFFSjtBQUF0QyxXQUFsQjtBQUVBLGlCQUFPSCxjQUFjLENBQUNRLElBQWYsQ0FBb0JILElBQXBCLEVBQTBCO0FBQUNJLFlBQUFBLFNBQVMsRUFBRTtBQUFaLFdBQTFCLEVBQTZDeEQsSUFBN0MsQ0FBa0Q7QUFBQSxtQkFBTTRDLGVBQU47QUFBQSxXQUFsRCxDQUFQO0FBQ0QsU0FyQjJDLENBdUI1Qzs7O0FBQ0EsZUFBT0EsZUFBUDtBQUNELE9BM0JJLFdBNEJFLFVBQUNhLEtBQUQ7QUFBQSxlQUFrQixzQkFBUztBQUNoQ3RFLFVBQUFBLE1BQU0sRUFBTkEsTUFEZ0M7QUFFaEN1RSxVQUFBQSxRQUFRLEVBQUUzRSxhQUZzQjtBQUdoQzRFLFVBQUFBLEtBQUssRUFBRTtBQUh5QixTQUFULEVBSXRCRixLQUpzQixFQUlmeEUsT0FKZSxFQUlOZSxJQUpNLENBSUQ7QUFBQSxpQkFBTSxJQUFOO0FBQUEsU0FKQyxDQUFsQjtBQUFBLE9BNUJGLENBQVA7QUFpQ0Q7O0FBRUQsV0FBTyxFQUFQO0FBQ0QsR0FsRkksQ0FBUDtBQW1GRCxDQTlGTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2dldCBhcyBodHRwR2V0LCBxdWVyeVN0cmluZ30gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUNoYXIsIHBhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcbmltcG9ydCB7RWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvY3Vyc29yJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7R29vZ2xlTWFwc0FkZHJlc3NUeXBlfSBmcm9tICcuLi90eXBlcy9nb29nbGUnO1xuaW1wb3J0IHtMb2NhdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzL2xvY2F0aW9ucyc7XG5pbXBvcnQge2xvZ0Vycm9yLCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnbG9jYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IGFkZExvY2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBQcm9taXNlPExvY2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGQnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHthZGRyZXNzLCBpdGVtSWQsIGl0ZW1UeXBlfSA9IGxvY2F0aW9uO1xuICBjb25zdCBnZW9jb2RlVXJsOiBzdHJpbmcgPSBDb25maWcuZ2V0KCdnb29nbGUuZ2VvY29kZS51cmwnKTtcbiAgY29uc3QgcGFyYW1zOiBvYmplY3QgPSB7XG4gICAgYWRkcmVzcyxcbiAgICBrZXk6IENvbmZpZy5nZXQoJ2dvb2dsZS5nZW9jb2RlLmtleScpXG4gIH07XG4gIGNvbnN0IHVybDogc3RyaW5nID0gYCR7Z2VvY29kZVVybH0/JHtxdWVyeVN0cmluZyhwYXJhbXMpfWA7XG5cbiAgcmV0dXJuIGh0dHBHZXQodXJsKVxuICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICBjb25zdCB7cmVzdWx0cyA9IFtdLCBzdGF0dXMgPSAnJ30gPSBqc29uO1xuXG4gICAgICBpZihzdGF0dXMgPT09ICdPSycgJiYgcmVzdWx0cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZ2VvZGF0YTogb2JqZWN0ID0gcmVzdWx0c1swXTtcbiAgICAgICAgY29uc3QgYWRkcmVzc0NvbXBvbmVudHM6IEdvb2dsZU1hcHNBZGRyZXNzVHlwZVtdID0gZ2V0KGdlb2RhdGEsICdhZGRyZXNzX2NvbXBvbmVudHMnKTtcbiAgICAgICAgY29uc3QgZ2V0RmllbGRWYWwgPSAobmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgICAgICBjb25zdCB7c2hvcnRfbmFtZTogc2hvcnROYW1lID0gJyd9ID0gYWRkcmVzc0NvbXBvbmVudHMuZmluZCgoYWRkcmVzc0ZpZWxkOiBHb29nbGVNYXBzQWRkcmVzc1R5cGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gYWRkcmVzc0ZpZWxkLnR5cGVzIHx8IFtdO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVzLmZpbmRJbmRleCgoZmllbGRUeXBlOiBzdHJpbmcpID0+IGZpZWxkVHlwZSA9PT0gbmFtZSkgPj0gMDtcbiAgICAgICAgICB9KSB8fCB7fTtcblxuICAgICAgICAgIHJldHVybiBzaG9ydE5hbWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gU3RyZWV0XG4gICAgICAgIGNvbnN0IHN0cmVldE51bWJlcjogc3RyaW5nID0gZ2V0RmllbGRWYWwoJ3N0cmVldF9udW1iZXInKTtcbiAgICAgICAgY29uc3Qgcm91dGU6IHN0cmluZyA9IGdldEZpZWxkVmFsKCdyb3V0ZScpO1xuXG4gICAgICAgIC8vIExvY2F0aW9uXG4gICAgICAgIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBJdGVtXG4gICAgICAgIGNvbnN0IGZvcm1hdEl0ZW1UeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbVR5cGUpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VJZChpdGVtSWQpO1xuICAgICAgICBjb25zdCBnb29nbGVJZDogc3RyaW5nID0gZ2V0KGdlb2RhdGEsICdwbGFjZV9pZCcpO1xuICAgICAgICBjb25zdCB1cGRhdGU6IExvY2F0aW9uVHlwZSA9IHt9O1xuICAgICAgICBjb25zdCBpbnNlcnQ6IExvY2F0aW9uVHlwZSA9IHtcbiAgICAgICAgICBfa2V5OiBjcmVhdGVIYXNoKGBwb3N0LSR7c2Vzc2lvbklkfWApLFxuICAgICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgICAgY2l0eTogZ2V0RmllbGRWYWwoJ2xvY2FsaXR5JyksXG4gICAgICAgICAgY291bnRyeTogZ2V0RmllbGRWYWwoJ2NvdW50cnknKSxcbiAgICAgICAgICBmb3JtYXR0ZWQ6IGdldChnZW9kYXRhLCAnZm9ybWF0dGVkX2FkZHJlc3MnKSxcbiAgICAgICAgICBnb29nbGVJZCxcbiAgICAgICAgICBsYXRpdHVkZTogZ2V0KGdlb2RhdGEsICdnZW9tZXRyeS5sb2NhdGlvbi5sYXQnKSxcbiAgICAgICAgICBsb25naXR1ZGU6IGdldChnZW9kYXRhLCAnZ2VvbWV0cnkubG9jYXRpb24ubG5nJyksXG4gICAgICAgICAgc3RhdGU6IGdldEZpZWxkVmFsKCdhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEnKSxcbiAgICAgICAgICBzdHJlZXQ6IFtzdHJlZXROdW1iZXIsIHJvdXRlXS5maWx0ZXIoKG9iaikgPT4gb2JqKS5qb2luKCcgJyksXG4gICAgICAgICAgemlwOiBnZXRGaWVsZFZhbCgncG9zdGFsX2NvZGUnKVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7Z29vZ2xlSWQ6ICR7Z29vZ2xlSWR9fVxuICAgICAgICAgICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgICAgICAgICAgVVBEQVRFICR7dXBkYXRlfVxuICAgICAgICAgICAgSU4gbG9jYXRpb25zIFJFVFVSTiBORVdgO1xuXG4gICAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAgIC50aGVuKCh1cGRhdGVkTG9jYXRpb246IExvY2F0aW9uVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgICBsZXQgaXRlbURvY0lkOiBzdHJpbmc7XG4gICAgICAgICAgICBjb25zdCB7X2tleTogdXBkYXRlZExvY2F0aW9uS2V5fSA9IHVwZGF0ZWRMb2NhdGlvbjtcblxuICAgICAgICAgICAgc3dpdGNoKGZvcm1hdEl0ZW1UeXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ3Bvc3RzJzpcbiAgICAgICAgICAgICAgICBpdGVtRG9jSWQgPSBgcG9zdHMvJHtmb3JtYXRJdGVtSWR9YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpdGVtRG9jSWQgPSAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSB2YWxpZCBpdGVtIGRvYyBpZCwgY3JlYXRlIGFuIGVkZ2VcbiAgICAgICAgICAgIGlmKGl0ZW1Eb2NJZCkge1xuICAgICAgICAgICAgICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZSkuY29sbGVjdGlvbignaGFzTG9jYXRpb24nKTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25JZDogc3RyaW5nID0gdXBkYXRlZExvY2F0aW9uS2V5O1xuICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbkRvY0lkOiBzdHJpbmcgPSBgbG9jYXRpb25zLyR7bG9jYXRpb25JZH1gO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlSWQgPSBjcmVhdGVIYXNoKGBoYXNMb2NhdGlvbi0ke2xvY2F0aW9uSWR9LSR7c2Vzc2lvbklkfWApO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlOiBhbnkgPSB7X2Zyb206IGl0ZW1Eb2NJZCwgX2tleTogZWRnZUlkLCBfdG86IGxvY2F0aW9uRG9jSWR9O1xuXG4gICAgICAgICAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IHVwZGF0ZWRMb2NhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHJldHVybiB0aGUgbmV3IGxvY2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZExvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9KTtcbn07XG4iXX0=
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol");
4
+
5
+ require("core-js/modules/es.array.concat");
6
+
7
+ require("core-js/modules/es.array.filter");
8
+
9
+ require("core-js/modules/es.array.for-each");
10
+
11
+ require("core-js/modules/es.array.slice");
12
+
13
+ require("core-js/modules/es.date.now");
14
+
15
+ require("core-js/modules/es.date.to-string");
16
+
17
+ require("core-js/modules/es.object.define-properties");
18
+
19
+ require("core-js/modules/es.object.define-property");
20
+
21
+ require("core-js/modules/es.object.freeze");
22
+
23
+ require("core-js/modules/es.object.get-own-property-descriptor");
24
+
25
+ require("core-js/modules/es.object.get-own-property-descriptors");
26
+
27
+ require("core-js/modules/es.object.keys");
28
+
29
+ require("core-js/modules/web.dom-collections.for-each");
30
+
31
+ Object.defineProperty(exports, "__esModule", {
32
+ value: true
33
+ });
34
+ exports.cleanMessages = exports.getMessage = exports.deleteMessage = exports.unsaveMessage = exports.saveMessage = exports.updateMessage = exports.getMessageList = void 0;
35
+
36
+ var _utils = require("@nlabs/utils");
37
+
38
+ var _arangojs = require("arangojs");
39
+
40
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
41
+
42
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
43
+
44
+ var _utils2 = require("../utils");
45
+
46
+ var _conversations = require("./conversations");
47
+
48
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
49
+
50
+ function _templateObject6() {
51
+ 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"]);
52
+
53
+ _templateObject6 = function _templateObject6() {
54
+ return data;
55
+ };
56
+
57
+ return data;
58
+ }
59
+
60
+ function _templateObject5() {
61
+ var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m._key == ", " && m.to == ", " && m.from == ", "\n REMOVE m IN messages\n RETURN OLD"]);
62
+
63
+ _templateObject5 = function _templateObject5() {
64
+ return data;
65
+ };
66
+
67
+ return data;
68
+ }
69
+
70
+ function _templateObject4() {
71
+ 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"]);
72
+
73
+ _templateObject4 = function _templateObject4() {
74
+ return data;
75
+ };
76
+
77
+ return data;
78
+ }
79
+
80
+ function _templateObject3() {
81
+ 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"]);
82
+
83
+ _templateObject3 = function _templateObject3() {
84
+ return data;
85
+ };
86
+
87
+ return data;
88
+ }
89
+
90
+ function _templateObject2() {
91
+ var data = _taggedTemplateLiteral(["UPSERT {_key: ", ", convoId: ", ", userId: ", "}\n INSERT ", "\n UPDATE ", " IN messages\n RETURN NEW"]);
92
+
93
+ _templateObject2 = function _templateObject2() {
94
+ return data;
95
+ };
96
+
97
+ return data;
98
+ }
99
+
100
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
101
+
102
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
103
+
104
+ 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; }
105
+
106
+ function _templateObject() {
107
+ var data = _taggedTemplateLiteral(["FOR e IN hasConversations\n FILTER e._from == ", " && e._to == ", "\n LIMIT 1\n RETURN e"]);
108
+
109
+ _templateObject = function _templateObject() {
110
+ return data;
111
+ };
112
+
113
+ return data;
114
+ }
115
+
116
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
117
+
118
+ // const eventCategory: string = 'messages';
119
+ var getMessageList = function getMessageList(context, convoId, from, to) {
120
+ var database = context.database,
121
+ sessionId = context.userId;
122
+ var formatConvoId = (0, _utils.parseId)(convoId);
123
+ var sessionDocId = "users/".concat(sessionId);
124
+ var convoDocId = "conversations/".concat(formatConvoId);
125
+ var convoQry = (0, _arangojs.aql)(_templateObject(), sessionDocId, convoDocId);
126
+ return (0, _utils2.useDb)(database).query(convoQry).then(function (cursor) {
127
+ return cursor.all();
128
+ }).then(function (conversations) {
129
+ if (!conversations.length) {
130
+ return [];
131
+ }
132
+
133
+ var limit = (0, _utils2.getLimit)(from, to);
134
+ var aqlQry = "FOR m IN messages\n FILTER m.convoId == \"".concat(formatConvoId, "\"\n SORT m.added DESC\n ").concat(limit.aql, "\n SORT m.added ASC\n LET user = FIRST(\n FOR u IN users\n FILTER u._key == m.userId\n LIMIT 1\n RETURN u\n )\n RETURN MERGE(m, {user: user})");
135
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
136
+ return cursor.all();
137
+ })["catch"](function (error) {
138
+ throw error;
139
+ });
140
+ });
141
+ };
142
+
143
+ exports.getMessageList = getMessageList;
144
+
145
+ var updateMessage = function updateMessage(context, message) {
146
+ var database = context.database,
147
+ sessionId = context.userId;
148
+ var convoId = message.convoId,
149
+ files = message.files,
150
+ images = message.images,
151
+ _message$msgId = message.msgId,
152
+ msgId = _message$msgId === void 0 ? (0, _utils.createHash)("message-".concat(sessionId)) : _message$msgId;
153
+ var formatConvoId = (0, _utils.parseId)(convoId);
154
+
155
+ if (formatConvoId === '') {
156
+ throw new Error('required_convoId');
157
+ }
158
+
159
+ var now = Date.now();
160
+ var update = {
161
+ content: (0, _utils.parseVarChar)(message.content, 640),
162
+ files: files || [],
163
+ images: images || [],
164
+ modified: now
165
+ };
166
+ var formatMsgId = (0, _utils.parseId)(msgId);
167
+
168
+ var insert = _objectSpread(_objectSpread({}, (0, _cloneDeep["default"])(update)), {}, {
169
+ _key: formatMsgId,
170
+ added: now,
171
+ convoId: formatConvoId,
172
+ userId: sessionId
173
+ });
174
+
175
+ var aqlQry = (0, _arangojs.aql)(_templateObject2(), formatMsgId, formatConvoId, sessionId, insert, update);
176
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
177
+ return cursor.next();
178
+ })["catch"](function (error) {
179
+ throw error;
180
+ });
181
+ };
182
+
183
+ exports.updateMessage = updateMessage;
184
+
185
+ var saveMessage = function saveMessage(context, msgId, convoId) {
186
+ var database = context.database,
187
+ sessionId = context.userId;
188
+ var formatId = (0, _utils.parseId)(msgId);
189
+ return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
190
+ var conversationKey = conversation._key;
191
+ var aqlQry = (0, _arangojs.aql)(_templateObject3(), formatId, conversationKey, sessionId);
192
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
193
+ return cursor.next();
194
+ }).then(function () {
195
+ var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
196
+
197
+ if (!(0, _isEmpty["default"])(message)) {// Broadcast to message box
198
+ // const msg: MessageType = Messages.getMessageObject(message);
199
+ // io.to(message.toId).emit('message_save', msg);
200
+ }
201
+
202
+ return message;
203
+ })["catch"](function (error) {
204
+ throw error;
205
+ });
206
+ });
207
+ };
208
+
209
+ exports.saveMessage = saveMessage;
210
+
211
+ var unsaveMessage = function unsaveMessage(context, msgId, convoId) {
212
+ var database = context.database,
213
+ sessionId = context.userId;
214
+ var formatId = (0, _utils.parseId)(msgId);
215
+ return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
216
+ var conversationKey = conversation._key;
217
+ var aqlQry = (0, _arangojs.aql)(_templateObject4(), formatId, conversationKey, sessionId);
218
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
219
+ return cursor.next();
220
+ }).then(function () {
221
+ var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
222
+
223
+ if (!(0, _isEmpty["default"])(message)) {// Broadcast to message box
224
+ // const msg: MessageType = Messages.getMessageObject(message);
225
+ // io.to(message.id).emit('message_unsave', msg);
226
+ }
227
+
228
+ return message;
229
+ })["catch"](function (error) {
230
+ throw error;
231
+ });
232
+ });
233
+ };
234
+
235
+ exports.unsaveMessage = unsaveMessage;
236
+
237
+ var deleteMessage = function deleteMessage(context, msgId, convoId) {
238
+ var database = context.database,
239
+ sessionId = context.userId;
240
+ var formatId = (0, _utils.parseId)(msgId);
241
+ return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
242
+ var conversationKey = conversation._key;
243
+ var aqlQry = (0, _arangojs.aql)(_templateObject5(), formatId, conversationKey, sessionId);
244
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
245
+ return cursor.next();
246
+ }).then(function () {
247
+ var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
248
+
249
+ if (!(0, _isEmpty["default"])(message)) {// Broadcast to message box
250
+ // const msg: MessageType = Messages.getMessageObject(message);
251
+ // io.to(message.toId).emit('message_delete', msg);
252
+ }
253
+
254
+ return message;
255
+ })["catch"](function (error) {
256
+ throw error;
257
+ });
258
+ });
259
+ };
260
+
261
+ exports.deleteMessage = deleteMessage;
262
+
263
+ var getMessage = function getMessage(data) {
264
+ var added = data.added,
265
+ content = data.content,
266
+ convoId = data.convoId,
267
+ files = data.files,
268
+ msgId = data._key,
269
+ read = data.read,
270
+ saved = data.saved,
271
+ userId = data.userId;
272
+ return {
273
+ added: added,
274
+ content: content,
275
+ convoId: convoId,
276
+ files: files,
277
+ msgId: msgId,
278
+ read: read,
279
+ saved: saved,
280
+ userId: userId
281
+ };
282
+ };
283
+
284
+ exports.getMessage = getMessage;
285
+
286
+ var cleanMessages = function cleanMessages(database) {
287
+ // Remove all messages that are over 60 days and not saved
288
+ var aqlQry = (0, _arangojs.aql)(_templateObject6());
289
+ return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
290
+ return cursor.all();
291
+ }).then(function (list) {
292
+ return list.length;
293
+ })["catch"](function (error) {
294
+ throw error;
295
+ });
296
+ };
297
+
298
+ exports.cleanMessages = cleanMessages;
299
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbImdldE1lc3NhZ2VMaXN0IiwiY29udGV4dCIsImNvbnZvSWQiLCJmcm9tIiwidG8iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImZvcm1hdENvbnZvSWQiLCJzZXNzaW9uRG9jSWQiLCJjb252b0RvY0lkIiwiY29udm9RcnkiLCJhcWwiLCJxdWVyeSIsInRoZW4iLCJjdXJzb3IiLCJhbGwiLCJjb252ZXJzYXRpb25zIiwibGVuZ3RoIiwibGltaXQiLCJhcWxRcnkiLCJlcnJvciIsInVwZGF0ZU1lc3NhZ2UiLCJtZXNzYWdlIiwiZmlsZXMiLCJpbWFnZXMiLCJtc2dJZCIsIkVycm9yIiwibm93IiwiRGF0ZSIsInVwZGF0ZSIsImNvbnRlbnQiLCJtb2RpZmllZCIsImZvcm1hdE1zZ0lkIiwiaW5zZXJ0IiwiX2tleSIsImFkZGVkIiwibmV4dCIsInNhdmVNZXNzYWdlIiwiZm9ybWF0SWQiLCJjb252ZXJzYXRpb24iLCJjb252ZXJzYXRpb25LZXkiLCJ1bnNhdmVNZXNzYWdlIiwiZGVsZXRlTWVzc2FnZSIsImdldE1lc3NhZ2UiLCJkYXRhIiwicmVhZCIsInNhdmVkIiwiY2xlYW5NZXNzYWdlcyIsImxpc3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBTUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBO0FBRU8sSUFBTUEsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUM1QkMsT0FENEIsRUFFNUJDLE9BRjRCLEVBRzVCQyxJQUg0QixFQUk1QkMsRUFKNEIsRUFLRDtBQUFBLE1BQ3BCQyxRQURvQixHQUNXSixPQURYLENBQ3BCSSxRQURvQjtBQUFBLE1BQ0ZDLFNBREUsR0FDV0wsT0FEWCxD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TUFRMURDLEtBUjBELEdBVXhERixJQVZ3RCxDQVExREUsS0FSMEQ7QUFBQSxNQVMxRHhDLE1BVDBELEdBVXhEc0MsSUFWd0QsQ0FTMUR0QyxNQVQwRDtBQVk1RCxTQUFPO0FBQ0w2QixJQUFBQSxLQUFLLEVBQUxBLEtBREs7QUFFTEwsSUFBQUEsT0FBTyxFQUFQQSxPQUZLO0FBR0w3QixJQUFBQSxPQUFPLEVBQVBBLE9BSEs7QUFJTHNCLElBQUFBLEtBQUssRUFBTEEsS0FKSztBQUtMRSxJQUFBQSxLQUFLLEVBQUxBLEtBTEs7QUFNTG9CLElBQUFBLElBQUksRUFBSkEsSUFOSztBQU9MQyxJQUFBQSxLQUFLLEVBQUxBLEtBUEs7QUFRTHhDLElBQUFBLE1BQU0sRUFBTkE7QUFSSyxHQUFQO0FBVUQsQ0F0Qk07Ozs7QUF3QkEsSUFBTXlDLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQzNDLFFBQUQsRUFBdUM7QUFDbEU7QUFDQSxNQUFNZSxNQUFNLE9BQUdSLGFBQUgscUJBQVo7QUFLQSxTQUFPLG1CQUFNUCxRQUFOLEVBQWdCUSxLQUFoQixDQUFzQk8sTUFBdEIsRUFDSk4sSUFESSxDQUNDLFVBQUNDLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDQyxHQUFQLEVBQXpCO0FBQUEsR0FERCxFQUVKRixJQUZJLENBRUMsVUFBQ21DLElBQUQ7QUFBQSxXQUF5QkEsSUFBSSxDQUFDL0IsTUFBOUI7QUFBQSxHQUZELFdBR0UsVUFBQ0csS0FBRCxFQUFrQjtBQUN2QixVQUFNQSxLQUFOO0FBQ0QsR0FMSSxDQUFQO0FBTUQsQ0FiTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlVmFyQ2hhcn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvY3Vyc29yJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGInO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucyc7XG5pbXBvcnQge01lc3NhZ2VJbnB1dFR5cGUsIE1lc3NhZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9tZXNzYWdlcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtnZXRDb252ZXJzYXRpb259IGZyb20gJy4vY29udmVyc2F0aW9ucyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdtZXNzYWdlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRNZXNzYWdlTGlzdCA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udm9JZDogc3RyaW5nLFxuICBmcm9tOiBudW1iZXIsXG4gIHRvOiBudW1iZXJcbik6IFByb21pc2U8TWVzc2FnZVR5cGVbXT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7Zm9ybWF0Q29udm9JZH1gO1xuXG4gIGNvbnN0IGNvbnZvUXJ5ID0gYXFsYEZPUiBlIElOIGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgZS5fZnJvbSA9PSAke3Nlc3Npb25Eb2NJZH0gJiYgZS5fdG8gPT0gJHtjb252b0RvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gZWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShjb252b1FyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb25zKSA9PiB7XG4gICAgICBpZighY29udmVyc2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgICAgIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgICAgRklMVEVSIG0uY29udm9JZCA9PSBcIiR7Zm9ybWF0Q29udm9JZH1cIlxuICAgICAgICAgIFNPUlQgbS5hZGRlZCBERVNDXG4gICAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgICAgU09SVCBtLmFkZGVkIEFTQ1xuICAgICAgICAgIExFVCB1c2VyID0gRklSU1QoXG4gICAgICAgICAgICBGT1IgdSBJTiB1c2Vyc1xuICAgICAgICAgICAgRklMVEVSIHUuX2tleSA9PSBtLnVzZXJJZFxuICAgICAgICAgICAgTElNSVQgMVxuICAgICAgICAgICAgUkVUVVJOIHVcbiAgICAgICAgICApXG4gICAgICAgICAgUkVUVVJOIE1FUkdFKG0sIHt1c2VyOiB1c2VyfSlgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlOiBNZXNzYWdlSW5wdXRUeXBlKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBjb252b0lkLFxuICAgIGZpbGVzLFxuICAgIGltYWdlcyxcbiAgICBtc2dJZCA9IGNyZWF0ZUhhc2goYG1lc3NhZ2UtJHtzZXNzaW9uSWR9YClcbiAgfSA9IG1lc3NhZ2U7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG5cbiAgaWYoZm9ybWF0Q29udm9JZCA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlcXVpcmVkX2NvbnZvSWQnKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdXBkYXRlOiBNZXNzYWdlVHlwZSA9IHtcbiAgICBjb250ZW50OiBwYXJzZVZhckNoYXIobWVzc2FnZS5jb250ZW50LCA2NDApLFxuICAgIGZpbGVzOiBmaWxlcyB8fCBbXSxcbiAgICBpbWFnZXM6IGltYWdlcyB8fCBbXSxcbiAgICBtb2RpZmllZDogbm93XG4gIH07XG4gIGNvbnN0IGZvcm1hdE1zZ0lkOiBzdHJpbmcgPSBwYXJzZUlkKG1zZ0lkKTtcbiAgY29uc3QgaW5zZXJ0OiBNZXNzYWdlVHlwZSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRNc2dJZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGNvbnZvSWQ6IGZvcm1hdENvbnZvSWQsXG4gICAgdXNlcklkOiBzZXNzaW9uSWRcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7Zm9ybWF0TXNnSWR9LCBjb252b0lkOiAke2Zvcm1hdENvbnZvSWR9LCB1c2VySWQ6ICR7c2Vzc2lvbklkfX1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfSBJTiBtZXNzYWdlc1xuICAgIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBBUFBFTkQobS5zYXZlZCwgJHtzZXNzaW9uSWR9LCB0cnVlKX0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICBpZighaXNFbXB0eShtZXNzYWdlKSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtc2c6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9zYXZlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdW5zYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgICAgVVBEQVRFIG0gV0lUSCB7c2F2ZWQ6IFJFTU9WRV9WQUxVRShtLnNhdmVkLCAke3Nlc3Npb25JZH0pfSBJTiBtZXNzYWdlc1xuICAgICAgICAgIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgaWYoIWlzRW1wdHkobWVzc2FnZSkpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbXNnOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLmlkKS5lbWl0KCdtZXNzYWdlX3Vuc2F2ZScsIG1zZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbXNnSWQ6IHN0cmluZywgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1zZ0lkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGNvbnZvSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgRklMVEVSIG0uX2tleSA9PSAke2Zvcm1hdElkfSAmJiBtLnRvID09ICR7Y29udmVyc2F0aW9uS2V5fSAmJiBtLmZyb20gPT0gJHtzZXNzaW9uSWR9XG4gICAgICAgIFJFTU9WRSBtIElOIG1lc3NhZ2VzXG4gICAgICAgIFJFVFVSTiBPTERgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgaWYoIWlzRW1wdHkobWVzc2FnZSkpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbXNnOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLnRvSWQpLmVtaXQoJ21lc3NhZ2VfZGVsZXRlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVzc2FnZSA9IChkYXRhOiBNZXNzYWdlVHlwZSk6IE1lc3NhZ2VUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIGFkZGVkLFxuICAgIGNvbnRlbnQsXG4gICAgY29udm9JZCxcbiAgICBmaWxlcyxcbiAgICBfa2V5OiBtc2dJZCxcbiAgICByZWFkLFxuICAgIHNhdmVkLFxuICAgIHVzZXJJZFxuICB9ID0gZGF0YTtcblxuICByZXR1cm4ge1xuICAgIGFkZGVkLFxuICAgIGNvbnRlbnQsXG4gICAgY29udm9JZCxcbiAgICBmaWxlcyxcbiAgICBtc2dJZCxcbiAgICByZWFkLFxuICAgIHNhdmVkLFxuICAgIHVzZXJJZFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFuTWVzc2FnZXMgPSAoZGF0YWJhc2U6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIC8vIFJlbW92ZSBhbGwgbWVzc2FnZXMgdGhhdCBhcmUgb3ZlciA2MCBkYXlzIGFuZCBub3Qgc2F2ZWRcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICBGSUxURVIgbS5hZGRlZCA8IERBVEVfVElNRVNUQU1QKERBVEVfU1VCVFJBQ1QoREFURV9OT1coKSwgNjAsICdkYXknKSkgJiYgTEVOR1RIKG0uc2F2ZWQpID4gMFxuICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLnRoZW4oKGxpc3Q6IE1lc3NhZ2VUeXBlW10pID0+IGxpc3QubGVuZ3RoKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { Provider, Responses } from 'apn';
1
+ import { Responses } from 'apn';
2
2
  import { NotificationType } from '../types/notifications';
3
- export declare const getApnProvider: () => Provider;
3
+ export declare const getApnProvider: () => any;
4
4
  export declare const pushNotification: (deviceTokens: string[], note: NotificationType) => Promise<Responses>;
5
5
  export declare const clearBadges: (deviceTokens: string[]) => Promise<Responses>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.clearBadges = exports.pushNotification = exports.getApnProvider = void 0;
7
+
8
+ var _apn = require("apn");
9
+
10
+ var _config = require("../config");
11
+
12
+ /**
13
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
14
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
15
+ */
16
+ // const eventCategory: string = 'notifications';
17
+ // Push Notifications
18
+ var getApnProvider = function getApnProvider() {
19
+ return new _apn.Provider({
20
+ ca: _config.Config.get('app.apn.ca'),
21
+ cert: _config.Config.get('app.apn.cert'),
22
+ key: _config.Config.get('app.apn.key'),
23
+ production: _config.Config.get('environment') === 'prod'
24
+ });
25
+ };
26
+
27
+ exports.getApnProvider = getApnProvider;
28
+
29
+ var pushNotification = function pushNotification(deviceTokens, note) {
30
+ // Push notification to device
31
+ var provider = getApnProvider();
32
+ var notification = new _apn.Notification();
33
+ notification.topic = _config.Config.get('app.apn.id');
34
+ notification.alert = note.message;
35
+
36
+ if (note.data) {
37
+ notification.mutableContent = true;
38
+ notification.payload = note.data;
39
+ }
40
+
41
+ if (note.badge !== undefined) {
42
+ notification.badge = note.badge;
43
+ }
44
+
45
+ return provider.send(notification, deviceTokens);
46
+ };
47
+
48
+ exports.pushNotification = pushNotification;
49
+
50
+ var clearBadges = function clearBadges(deviceTokens) {
51
+ // Push notification to device
52
+ var provider = getApnProvider();
53
+ var notification = new _apn.Notification();
54
+ notification.badge = 0;
55
+ return provider.send(notification, deviceTokens);
56
+ };
57
+
58
+ exports.clearBadges = clearBadges;
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL25vdGlmaWNhdGlvbnMudHMiXSwibmFtZXMiOlsiZ2V0QXBuUHJvdmlkZXIiLCJQcm92aWRlciIsImNhIiwiQ29uZmlnIiwiZ2V0IiwiY2VydCIsImtleSIsInByb2R1Y3Rpb24iLCJwdXNoTm90aWZpY2F0aW9uIiwiZGV2aWNlVG9rZW5zIiwibm90ZSIsInByb3ZpZGVyIiwibm90aWZpY2F0aW9uIiwiQVBOTm90aWZpY2F0aW9uIiwidG9waWMiLCJhbGVydCIsIm1lc3NhZ2UiLCJkYXRhIiwibXV0YWJsZUNvbnRlbnQiLCJwYXlsb2FkIiwiYmFkZ2UiLCJ1bmRlZmluZWQiLCJzZW5kIiwiY2xlYXJCYWRnZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQTs7QUFFQTs7QUFOQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBRUE7QUFDTyxJQUFNQSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCO0FBQUEsU0FBZ0IsSUFBSUMsYUFBSixDQUFhO0FBQ3pEQyxJQUFBQSxFQUFFLEVBQUVDLGVBQU9DLEdBQVAsQ0FBVyxZQUFYLENBRHFEO0FBRXpEQyxJQUFBQSxJQUFJLEVBQUVGLGVBQU9DLEdBQVAsQ0FBVyxjQUFYLENBRm1EO0FBR3pERSxJQUFBQSxHQUFHLEVBQUVILGVBQU9DLEdBQVAsQ0FBVyxhQUFYLENBSG9EO0FBSXpERyxJQUFBQSxVQUFVLEVBQUVKLGVBQU9DLEdBQVAsQ0FBVyxhQUFYLE1BQThCO0FBSmUsR0FBYixDQUFoQjtBQUFBLENBQXZCOzs7O0FBT0EsSUFBTUksZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDQyxZQUFELEVBQXlCQyxJQUF6QixFQUF3RTtBQUN0RztBQUNBLE1BQU1DLFFBQWtCLEdBQUdYLGNBQWMsRUFBekM7QUFDQSxNQUFNWSxZQUE2QixHQUFHLElBQUlDLGlCQUFKLEVBQXRDO0FBQ0FELEVBQUFBLFlBQVksQ0FBQ0UsS0FBYixHQUFxQlgsZUFBT0MsR0FBUCxDQUFXLFlBQVgsQ0FBckI7QUFDQVEsRUFBQUEsWUFBWSxDQUFDRyxLQUFiLEdBQXFCTCxJQUFJLENBQUNNLE9BQTFCOztBQUVBLE1BQUdOLElBQUksQ0FBQ08sSUFBUixFQUFjO0FBQ1pMLElBQUFBLFlBQVksQ0FBQ00sY0FBYixHQUE4QixJQUE5QjtBQUNBTixJQUFBQSxZQUFZLENBQUNPLE9BQWIsR0FBdUJULElBQUksQ0FBQ08sSUFBNUI7QUFDRDs7QUFFRCxNQUFHUCxJQUFJLENBQUNVLEtBQUwsS0FBZUMsU0FBbEIsRUFBNkI7QUFDM0JULElBQUFBLFlBQVksQ0FBQ1EsS0FBYixHQUFxQlYsSUFBSSxDQUFDVSxLQUExQjtBQUNEOztBQUVELFNBQU9ULFFBQVEsQ0FBQ1csSUFBVCxDQUFjVixZQUFkLEVBQTRCSCxZQUE1QixDQUFQO0FBQ0QsQ0FqQk07Ozs7QUFtQkEsSUFBTWMsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ2QsWUFBRCxFQUFnRDtBQUN6RTtBQUNBLE1BQU1FLFFBQVEsR0FBR1gsY0FBYyxFQUEvQjtBQUNBLE1BQU1ZLFlBQVksR0FBRyxJQUFJQyxpQkFBSixFQUFyQjtBQUNBRCxFQUFBQSxZQUFZLENBQUNRLEtBQWIsR0FBcUIsQ0FBckI7QUFFQSxTQUFPVCxRQUFRLENBQUNXLElBQVQsQ0FBY1YsWUFBZCxFQUE0QkgsWUFBNUIsQ0FBUDtBQUNELENBUE0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtOb3RpZmljYXRpb24gYXMgQVBOTm90aWZpY2F0aW9uLCBQcm92aWRlciwgUmVzcG9uc2VzfSBmcm9tICdhcG4nO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvbm90aWZpY2F0aW9ucyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdub3RpZmljYXRpb25zJztcblxuLy8gUHVzaCBOb3RpZmljYXRpb25zXG5leHBvcnQgY29uc3QgZ2V0QXBuUHJvdmlkZXIgPSAoKTogUHJvdmlkZXIgPT4gbmV3IFByb3ZpZGVyKHtcbiAgY2E6IENvbmZpZy5nZXQoJ2FwcC5hcG4uY2EnKSxcbiAgY2VydDogQ29uZmlnLmdldCgnYXBwLmFwbi5jZXJ0JyksXG4gIGtleTogQ29uZmlnLmdldCgnYXBwLmFwbi5rZXknKSxcbiAgcHJvZHVjdGlvbjogQ29uZmlnLmdldCgnZW52aXJvbm1lbnQnKSA9PT0gJ3Byb2QnXG59KTtcblxuZXhwb3J0IGNvbnN0IHB1c2hOb3RpZmljYXRpb24gPSAoZGV2aWNlVG9rZW5zOiBzdHJpbmdbXSwgbm90ZTogTm90aWZpY2F0aW9uVHlwZSk6IFByb21pc2U8UmVzcG9uc2VzPiA9PiB7XG4gIC8vIFB1c2ggbm90aWZpY2F0aW9uIHRvIGRldmljZVxuICBjb25zdCBwcm92aWRlcjogUHJvdmlkZXIgPSBnZXRBcG5Qcm92aWRlcigpO1xuICBjb25zdCBub3RpZmljYXRpb246IEFQTk5vdGlmaWNhdGlvbiA9IG5ldyBBUE5Ob3RpZmljYXRpb24oKTtcbiAgbm90aWZpY2F0aW9uLnRvcGljID0gQ29uZmlnLmdldCgnYXBwLmFwbi5pZCcpO1xuICBub3RpZmljYXRpb24uYWxlcnQgPSBub3RlLm1lc3NhZ2U7XG5cbiAgaWYobm90ZS5kYXRhKSB7XG4gICAgbm90aWZpY2F0aW9uLm11dGFibGVDb250ZW50ID0gdHJ1ZTtcbiAgICBub3RpZmljYXRpb24ucGF5bG9hZCA9IG5vdGUuZGF0YTtcbiAgfVxuXG4gIGlmKG5vdGUuYmFkZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIG5vdGlmaWNhdGlvbi5iYWRnZSA9IG5vdGUuYmFkZ2U7XG4gIH1cblxuICByZXR1cm4gcHJvdmlkZXIuc2VuZChub3RpZmljYXRpb24sIGRldmljZVRva2Vucyk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJCYWRnZXMgPSAoZGV2aWNlVG9rZW5zOiBzdHJpbmdbXSk6IFByb21pc2U8UmVzcG9uc2VzPiA9PiB7XG4gIC8vIFB1c2ggbm90aWZpY2F0aW9uIHRvIGRldmljZVxuICBjb25zdCBwcm92aWRlciA9IGdldEFwblByb3ZpZGVyKCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbiA9IG5ldyBBUE5Ob3RpZmljYXRpb24oKTtcbiAgbm90aWZpY2F0aW9uLmJhZGdlID0gMDtcblxuICByZXR1cm4gcHJvdmlkZXIuc2VuZChub3RpZmljYXRpb24sIGRldmljZVRva2Vucyk7XG59O1xuIl19