@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.
- package/lib/config.js +153 -0
- package/lib/data/conversations.js +311 -0
- package/lib/data/dynamodb.js +206 -0
- package/lib/data/email.js +222 -0
- package/lib/data/files.js +525 -0
- package/lib/data/groups.js +435 -0
- package/lib/data/images.d.ts +3 -2
- package/lib/data/images.js +1051 -0
- package/lib/data/index.js +266 -0
- package/lib/data/ios.js +355 -0
- package/lib/data/locations.js +172 -0
- package/lib/data/messages.js +299 -0
- package/lib/data/notifications.d.ts +2 -2
- package/lib/data/notifications.js +59 -0
- package/lib/data/payments.js +771 -0
- package/lib/data/posts.d.ts +1 -1
- package/lib/data/posts.js +766 -0
- package/lib/data/reactions.js +529 -0
- package/lib/data/s3.js +155 -0
- package/lib/data/search.js +155 -0
- package/lib/data/sms.js +83 -0
- package/lib/data/subscription.js +337 -0
- package/lib/data/tags.js +397 -0
- package/lib/data/users.d.ts +7 -4
- package/lib/data/users.js +470 -0
- package/lib/data/websockets.js +250 -0
- package/lib/index.js +45 -0
- package/lib/types/apps.js +2 -0
- package/lib/types/arangodb.js +2 -0
- package/lib/types/auth.js +2 -0
- package/lib/types/conversations.d.ts +2 -0
- package/lib/types/conversations.js +2 -0
- package/lib/types/email.js +2 -0
- package/lib/types/files.js +2 -0
- package/lib/types/google.js +2 -0
- package/lib/types/groups.js +2 -0
- package/lib/types/images.js +2 -0
- package/lib/types/index.js +227 -0
- package/lib/types/locations.js +2 -0
- package/lib/types/messages.js +2 -0
- package/lib/types/notifications.js +2 -0
- package/lib/types/payments.js +2 -0
- package/lib/types/posts.js +2 -0
- package/lib/types/reactions.d.ts +2 -0
- package/lib/types/reactions.js +2 -0
- package/lib/types/tags.js +2 -0
- package/lib/types/users.d.ts +1 -0
- package/lib/types/users.js +2 -0
- package/lib/utils/analytics.js +83 -0
- package/lib/utils/arangodb.js +143 -0
- package/lib/utils/auth.js +75 -0
- package/lib/utils/graphql.js +21 -0
- package/lib/utils/index.js +84 -0
- package/lib/utils/objects.js +62 -0
- package/lib/utils/redis.js +36 -0
- package/package.json +30 -30
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.symbol");
|
|
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.date.to-string");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.object.define-properties");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.object.define-property");
|
|
16
|
+
|
|
17
|
+
require("core-js/modules/es.object.get-own-property-descriptor");
|
|
18
|
+
|
|
19
|
+
require("core-js/modules/es.object.get-own-property-descriptors");
|
|
20
|
+
|
|
21
|
+
require("core-js/modules/es.object.keys");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/es.object.to-string");
|
|
24
|
+
|
|
25
|
+
require("core-js/modules/es.parse-float");
|
|
26
|
+
|
|
27
|
+
require("core-js/modules/es.promise");
|
|
28
|
+
|
|
29
|
+
require("core-js/modules/es.regexp.to-string");
|
|
30
|
+
|
|
31
|
+
require("core-js/modules/web.dom-collections.for-each");
|
|
32
|
+
|
|
33
|
+
Object.defineProperty(exports, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
});
|
|
36
|
+
exports.dynamoDel = exports.dynamoPutList = exports.dynamoUpdate = exports.dynamoPut = exports.dynamoGetList = exports.parseDynamo = exports.dynamoGet = void 0;
|
|
37
|
+
|
|
38
|
+
var _awsSdk = _interopRequireWildcard(require("aws-sdk"));
|
|
39
|
+
|
|
40
|
+
var _config = require("../config");
|
|
41
|
+
|
|
42
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
|
43
|
+
|
|
44
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
45
|
+
|
|
46
|
+
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; }
|
|
47
|
+
|
|
48
|
+
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; }
|
|
49
|
+
|
|
50
|
+
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; }
|
|
51
|
+
|
|
52
|
+
// const eventCategory: string = 'dynamodb';
|
|
53
|
+
var dynamoGet = function dynamoGet(params) {
|
|
54
|
+
return new Promise(function (resolve, reject) {
|
|
55
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
56
|
+
|
|
57
|
+
var dynamodb = new _awsSdk.DynamoDB();
|
|
58
|
+
params.ConsistentRead = false;
|
|
59
|
+
dynamodb.getItem(params, function (error, results) {
|
|
60
|
+
if (error) {
|
|
61
|
+
return reject(error);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return resolve(results);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
exports.dynamoGet = dynamoGet;
|
|
70
|
+
|
|
71
|
+
var parseDynamo = function parseDynamo(results) {
|
|
72
|
+
var items = results.Items;
|
|
73
|
+
var data = [];
|
|
74
|
+
|
|
75
|
+
for (var idx = 0, len = items.length; idx < len; idx++) {
|
|
76
|
+
var tmp = items[idx];
|
|
77
|
+
var obj = {};
|
|
78
|
+
var key = void 0;
|
|
79
|
+
|
|
80
|
+
for (key in tmp) {
|
|
81
|
+
if (tmp.hasOwnProperty(key)) {
|
|
82
|
+
if (tmp[key].S) {
|
|
83
|
+
obj[key] = tmp[key].S.toString();
|
|
84
|
+
} else if (tmp[key].N) {
|
|
85
|
+
obj[key] = parseFloat(tmp[key].N);
|
|
86
|
+
} else {
|
|
87
|
+
obj[key] = tmp[key].B;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
data.push(obj);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return data;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
exports.parseDynamo = parseDynamo;
|
|
99
|
+
|
|
100
|
+
var dynamoGetList = function dynamoGetList(params, index) {
|
|
101
|
+
return new Promise(function (resolve, reject) {
|
|
102
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
103
|
+
|
|
104
|
+
var dynamodb = new _awsSdk.DynamoDB();
|
|
105
|
+
var consistentRead = params.ConsistentRead;
|
|
106
|
+
|
|
107
|
+
var updatedParams = _objectSpread({}, params);
|
|
108
|
+
|
|
109
|
+
if (index) {
|
|
110
|
+
updatedParams.ExclusiveStartKey = index;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (!consistentRead) {
|
|
114
|
+
updatedParams.ConsistentRead = false;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
dynamodb.query(updatedParams, function (error, output) {
|
|
118
|
+
if (error) {
|
|
119
|
+
return reject(error);
|
|
120
|
+
} // Save list of items
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
var list = parseDynamo(output);
|
|
124
|
+
var lastKey = output.LastEvaluatedKey;
|
|
125
|
+
|
|
126
|
+
if (lastKey !== undefined) {
|
|
127
|
+
// Save last index before looping
|
|
128
|
+
return dynamoGetList(params, lastKey);
|
|
129
|
+
} // Query complete, return final list
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
return resolve(list);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
exports.dynamoGetList = dynamoGetList;
|
|
138
|
+
|
|
139
|
+
var dynamoPut = function dynamoPut(params) {
|
|
140
|
+
return new Promise(function (resolve, reject) {
|
|
141
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
142
|
+
|
|
143
|
+
var dynamodb = new _awsSdk.DynamoDB();
|
|
144
|
+
dynamodb.putItem(params, function (error, output) {
|
|
145
|
+
if (error) {
|
|
146
|
+
return reject(error);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return resolve(output);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
exports.dynamoPut = dynamoPut;
|
|
155
|
+
|
|
156
|
+
var dynamoUpdate = function dynamoUpdate(params) {
|
|
157
|
+
return new Promise(function (resolve, reject) {
|
|
158
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
159
|
+
|
|
160
|
+
var dynamodb = new _awsSdk.DynamoDB();
|
|
161
|
+
dynamodb.updateItem(params, function (error, output) {
|
|
162
|
+
if (error) {
|
|
163
|
+
return reject(error);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return resolve(output);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
exports.dynamoUpdate = dynamoUpdate;
|
|
172
|
+
|
|
173
|
+
var dynamoPutList = function dynamoPutList(params) {
|
|
174
|
+
return new Promise(function (resolve, reject) {
|
|
175
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
176
|
+
|
|
177
|
+
var dynamodb = new _awsSdk.DynamoDB();
|
|
178
|
+
dynamodb.batchWriteItem(params, function (error, output) {
|
|
179
|
+
if (error) {
|
|
180
|
+
return reject(error);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return resolve(output);
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
exports.dynamoPutList = dynamoPutList;
|
|
189
|
+
|
|
190
|
+
var dynamoDel = function dynamoDel(params) {
|
|
191
|
+
return new Promise(function (resolve, reject) {
|
|
192
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
193
|
+
|
|
194
|
+
var dynamodb = new _awsSdk.DynamoDB();
|
|
195
|
+
dynamodb.deleteItem(params, function (error, output) {
|
|
196
|
+
if (error) {
|
|
197
|
+
return reject(error);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
return resolve(output);
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
exports.dynamoDel = dynamoDel;
|
|
206
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2R5bmFtb2RiLnRzIl0sIm5hbWVzIjpbImR5bmFtb0dldCIsInBhcmFtcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYXdzIiwiY29uZmlnIiwidXBkYXRlIiwiQ29uZmlnIiwiZ2V0IiwiZHluYW1vZGIiLCJEeW5hbW9EQiIsIkNvbnNpc3RlbnRSZWFkIiwiZ2V0SXRlbSIsImVycm9yIiwicmVzdWx0cyIsInBhcnNlRHluYW1vIiwiaXRlbXMiLCJJdGVtcyIsImRhdGEiLCJpZHgiLCJsZW4iLCJsZW5ndGgiLCJ0bXAiLCJvYmoiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsIlMiLCJ0b1N0cmluZyIsIk4iLCJwYXJzZUZsb2F0IiwiQiIsInB1c2giLCJkeW5hbW9HZXRMaXN0IiwiaW5kZXgiLCJjb25zaXN0ZW50UmVhZCIsInVwZGF0ZWRQYXJhbXMiLCJFeGNsdXNpdmVTdGFydEtleSIsInF1ZXJ5Iiwib3V0cHV0IiwibGlzdCIsImxhc3RLZXkiLCJMYXN0RXZhbHVhdGVkS2V5IiwidW5kZWZpbmVkIiwiZHluYW1vUHV0IiwicHV0SXRlbSIsImR5bmFtb1VwZGF0ZSIsInVwZGF0ZUl0ZW0iLCJkeW5hbW9QdXRMaXN0IiwiYmF0Y2hXcml0ZUl0ZW0iLCJkeW5hbW9EZWwiLCJkZWxldGVJdGVtIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7O0FBZ0JBOzs7Ozs7Ozs7Ozs7QUFFQTtBQUVPLElBQU1BLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQUNDLE1BQUQ7QUFBQSxTQUFrRCxJQUFJQyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQzFHQyx1QkFBSUMsTUFBSixDQUFXQyxNQUFYLENBQWtCQyxlQUFPQyxHQUFQLENBQVcsS0FBWCxDQUFsQjs7QUFDQSxRQUFNQyxRQUFrQixHQUFHLElBQUlDLGdCQUFKLEVBQTNCO0FBQ0FWLElBQUFBLE1B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Q0FBQ29DLE1BQUQsQ0FBZDtBQUNELEtBTEQ7QUFNRCxHQVZnRixDQUF4RDtBQUFBLENBQWxCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBhd3MsIHtEeW5hbW9EQn0gZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQge1xuICBCYXRjaFdyaXRlSXRlbUlucHV0LFxuICBCYXRjaFdyaXRlSXRlbU91dHB1dCxcbiAgRGVsZXRlSXRlbUlucHV0LFxuICBEZWxldGVJdGVtT3V0cHV0LFxuICBHZXRJdGVtSW5wdXQsXG4gIEdldEl0ZW1PdXRwdXQsXG4gIFB1dEl0ZW1JbnB1dCxcbiAgUHV0SXRlbU91dHB1dCxcbiAgUXVlcnlJbnB1dCxcbiAgUXVlcnlPdXRwdXQsXG4gIFVwZGF0ZUl0ZW1JbnB1dCxcbiAgVXBkYXRlSXRlbU91dHB1dFxufSBmcm9tICdhd3Mtc2RrL2NsaWVudHMvZHluYW1vZGInO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2R5bmFtb2RiJztcblxuZXhwb3J0IGNvbnN0IGR5bmFtb0dldCA9IChwYXJhbXM6IEdldEl0ZW1JbnB1dCk6IFByb21pc2U8R2V0SXRlbU91dHB1dD4gPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICBhd3MuY29uZmlnLnVwZGF0ZShDb25maWcuZ2V0KCdhd3MnKSk7XG4gIGNvbnN0IGR5bmFtb2RiOiBEeW5hbW9EQiA9IG5ldyBEeW5hbW9EQigpO1xuICBwYXJhbXMuQ29uc2lzdGVudFJlYWQgPSBmYWxzZTtcblxuICBkeW5hbW9kYi5nZXRJdGVtKHBhcmFtcywgKGVycm9yOiBFcnJvciwgcmVzdWx0czogR2V0SXRlbU91dHB1dCkgPT4ge1xuICAgIGlmKGVycm9yKSB7XG4gICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZShyZXN1bHRzKTtcbiAgfSk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlRHluYW1vID0gKHJlc3VsdHM6IFF1ZXJ5T3V0cHV0KTogYW55W10gPT4ge1xuICBjb25zdCB7SXRlbXM6IGl0ZW1zfSA9IHJlc3VsdHM7XG4gIGNvbnN0IGRhdGE6IGFueVtdID0gW107XG5cbiAgZm9yKGxldCBpZHg6IG51bWJlciA9IDAsIGxlbiA9IGl0ZW1zLmxlbmd0aDsgaWR4IDwgbGVuOyBpZHgrKykge1xuICAgIGNvbnN0IHRtcCA9IGl0ZW1zW2lkeF07XG4gICAgY29uc3Qgb2JqID0ge307XG4gICAgbGV0IGtleTtcblxuICAgIGZvcihrZXkgaW4gdG1wKSB7XG4gICAgICBpZih0bXAuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBpZih0bXBba2V5XS5TKSB7XG4gICAgICAgICAgb2JqW2tleV0gPSB0bXBba2V5XS5TLnRvU3RyaW5nKCk7XG4gICAgICAgIH0gZWxzZSBpZih0bXBba2V5XS5OKSB7XG4gICAgICAgICAgb2JqW2tleV0gPSBwYXJzZUZsb2F0KHRtcFtrZXldLk4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9ialtrZXldID0gdG1wW2tleV0uQjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRhdGEucHVzaChvYmopO1xuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59O1xuXG5leHBvcnQgY29uc3QgZHluYW1vR2V0TGlzdCA9IChwYXJhbXM6IFF1ZXJ5SW5wdXQsIGluZGV4KTogUHJvbWlzZTxHZXRJdGVtT3V0cHV0W10+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBkeW5hbW9kYjogRHluYW1vREIgPSBuZXcgRHluYW1vREIoKTtcbiAgY29uc3Qge0NvbnNpc3RlbnRSZWFkOiBjb25zaXN0ZW50UmVhZH0gPSBwYXJhbXM7XG4gIGNvbnN0IHVwZGF0ZWRQYXJhbXMgPSB7Li4ucGFyYW1zfTtcblxuICBpZihpbmRleCkge1xuICAgIHVwZGF0ZWRQYXJhbXMuRXhjbHVzaXZlU3RhcnRLZXkgPSBpbmRleDtcbiAgfVxuXG4gIGlmKCFjb25zaXN0ZW50UmVhZCkge1xuICAgIHVwZGF0ZWRQYXJhbXMuQ29uc2lzdGVudFJlYWQgPSBmYWxzZTtcbiAgfVxuXG4gIGR5bmFtb2RiLnF1ZXJ5KHVwZGF0ZWRQYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogUXVlcnlPdXRwdXQpID0+IHtcbiAgICBpZihlcnJvcikge1xuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgfVxuICAgIC8vIFNhdmUgbGlzdCBvZiBpdGVtc1xuICAgIGNvbnN0IGxpc3Q6IGFueVtdID0gcGFyc2VEeW5hbW8ob3V0cHV0KTtcbiAgICBjb25zdCB7TGFzdEV2YWx1YXRlZEtleTogbGFzdEtleX0gPSBvdXRwdXQ7XG5cbiAgICBpZihsYXN0S2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFNhdmUgbGFzdCBpbmRleCBiZWZvcmUgbG9vcGluZ1xuICAgICAgcmV0dXJuIGR5bmFtb0dldExpc3QocGFyYW1zLCBsYXN0S2V5KTtcbiAgICB9XG5cbiAgICAvLyBRdWVyeSBjb21wbGV0ZSwgcmV0dXJuIGZpbmFsIGxpc3RcbiAgICByZXR1cm4gcmVzb2x2ZShsaXN0KTtcbiAgfSk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGR5bmFtb1B1dCA9IChwYXJhbXM6IFB1dEl0ZW1JbnB1dCk6IFByb21pc2U8UHV0SXRlbU91dHB1dD4gPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICBhd3MuY29uZmlnLnVwZGF0ZShDb25maWcuZ2V0KCdhd3MnKSk7XG4gIGNvbnN0IGR5bmFtb2RiOiBEeW5hbW9EQiA9IG5ldyBEeW5hbW9EQigpO1xuXG4gIGR5bmFtb2RiLnB1dEl0ZW0ocGFyYW1zLCAoZXJyb3IsIG91dHB1dDogUHV0SXRlbU91dHB1dCkgPT4ge1xuICAgIGlmKGVycm9yKSB7XG4gICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgfSk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGR5bmFtb1VwZGF0ZSA9IChwYXJhbXM6IFVwZGF0ZUl0ZW1JbnB1dCk6IFByb21pc2U8VXBkYXRlSXRlbU91dHB1dD4gPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICBhd3MuY29uZmlnLnVwZGF0ZShDb25maWcuZ2V0KCdhd3MnKSk7XG4gIGNvbnN0IGR5bmFtb2RiOiBEeW5hbW9EQiA9IG5ldyBEeW5hbW9EQigpO1xuXG4gIGR5bmFtb2RiLnVwZGF0ZUl0ZW0ocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IFVwZGF0ZUl0ZW1PdXRwdXQpID0+IHtcbiAgICBpZihlcnJvcikge1xuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9QdXRMaXN0ID0gKHBhcmFtczogQmF0Y2hXcml0ZUl0ZW1JbnB1dCk6IFByb21pc2U8QmF0Y2hXcml0ZUl0ZW1PdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBhd3MuY29uZmlnLnVwZGF0ZShDb25maWcuZ2V0KCdhd3MnKSk7XG4gICAgY29uc3QgZHluYW1vZGI6IER5bmFtb0RCID0gbmV3IER5bmFtb0RCKCk7XG5cbiAgICBkeW5hbW9kYi5iYXRjaFdyaXRlSXRlbShwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogQmF0Y2hXcml0ZUl0ZW1PdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9EZWwgPSAocGFyYW1zOiBEZWxldGVJdGVtSW5wdXQpOiBQcm9taXNlPERlbGV0ZUl0ZW1PdXRwdXQ+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBkeW5hbW9kYjogRHluYW1vREIgPSBuZXcgRHluYW1vREIoKTtcblxuICBkeW5hbW9kYi5kZWxldGVJdGVtKHBhcmFtcywgKGVycm9yLCBvdXRwdXQ6IERlbGV0ZUl0ZW1PdXRwdXQpID0+IHtcbiAgICBpZihlcnJvcikge1xuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.array.concat");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.array.for-each");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.date.to-string");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.function.name");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.object.keys");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.object.to-string");
|
|
16
|
+
|
|
17
|
+
require("core-js/modules/es.promise");
|
|
18
|
+
|
|
19
|
+
require("core-js/modules/es.regexp.constructor");
|
|
20
|
+
|
|
21
|
+
require("core-js/modules/es.regexp.exec");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/es.regexp.to-string");
|
|
24
|
+
|
|
25
|
+
require("core-js/modules/es.string.replace");
|
|
26
|
+
|
|
27
|
+
require("core-js/modules/web.dom-collections.for-each");
|
|
28
|
+
|
|
29
|
+
Object.defineProperty(exports, "__esModule", {
|
|
30
|
+
value: true
|
|
31
|
+
});
|
|
32
|
+
exports.sendTemplate = exports.sendEmail = exports.sesSend = exports.appTemplate = void 0;
|
|
33
|
+
|
|
34
|
+
var _awsSdk = _interopRequireWildcard(require("aws-sdk"));
|
|
35
|
+
|
|
36
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
37
|
+
|
|
38
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
39
|
+
|
|
40
|
+
var _config = require("../config");
|
|
41
|
+
|
|
42
|
+
var _s = require("./s3");
|
|
43
|
+
|
|
44
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
45
|
+
|
|
46
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
|
47
|
+
|
|
48
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
52
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
53
|
+
*/
|
|
54
|
+
// const eventCategory: string = 'email';
|
|
55
|
+
var appTemplate = function appTemplate(app) {
|
|
56
|
+
var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
57
|
+
var vars = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
58
|
+
var updatedMessage = '';
|
|
59
|
+
|
|
60
|
+
if (!(0, _isEmpty["default"])(app)) {
|
|
61
|
+
updatedMessage = message.replace(/\[appName\]/g, app.name).replace(/\[appUrl\]/g, app.url).replace(/\[appEmail\]/g, app.email);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
Object.keys(vars).forEach(function (key) {
|
|
65
|
+
if (vars[key]) {
|
|
66
|
+
updatedMessage = message.replace(new RegExp("\\[".concat(key, "\\]"), 'g'), vars[key]);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return updatedMessage;
|
|
70
|
+
}; // AWS::SES
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
exports.appTemplate = appTemplate;
|
|
74
|
+
|
|
75
|
+
var sesSend = function sesSend(params) {
|
|
76
|
+
return new Promise(function (resolve, reject) {
|
|
77
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
78
|
+
|
|
79
|
+
var ses = new _awsSdk.SES();
|
|
80
|
+
ses.sendEmail(params, function (error, response) {
|
|
81
|
+
if (error) {
|
|
82
|
+
return reject(error);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return resolve(response);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
exports.sesSend = sesSend;
|
|
91
|
+
|
|
92
|
+
var sendEmail = function sendEmail(params) {
|
|
93
|
+
var _params$app = params.app,
|
|
94
|
+
app = _params$app === void 0 ? {} : _params$app,
|
|
95
|
+
html = params.html,
|
|
96
|
+
subject = params.subject,
|
|
97
|
+
_params$subTitle = params.subTitle,
|
|
98
|
+
subTitle = _params$subTitle === void 0 ? '' : _params$subTitle,
|
|
99
|
+
text = params.text,
|
|
100
|
+
_params$title = params.title,
|
|
101
|
+
title = _params$title === void 0 ? '' : _params$title,
|
|
102
|
+
_params$user = params.user,
|
|
103
|
+
user = _params$user === void 0 ? {} : _params$user;
|
|
104
|
+
var to = [user.email];
|
|
105
|
+
var promise;
|
|
106
|
+
var formatSubject = appTemplate(app, subject);
|
|
107
|
+
var formatSubTitle = appTemplate(app, subTitle);
|
|
108
|
+
var formatTitle = appTemplate(app, title);
|
|
109
|
+
var formatText = appTemplate(app, text);
|
|
110
|
+
var formatHtml = appTemplate(app, html);
|
|
111
|
+
var hasCustomEmail = app._key,
|
|
112
|
+
urlFacebook = app.urlFacebook,
|
|
113
|
+
urlTwitter = app.urlTwitter;
|
|
114
|
+
|
|
115
|
+
var parseTemplate = function parseTemplate(body) {
|
|
116
|
+
var templateBody = appTemplate(app, body || ''); // Links
|
|
117
|
+
|
|
118
|
+
var links = '';
|
|
119
|
+
var spacer = '<td width="5"><img width="1" height="1" border="0" title="" alt="" ' + 'src="https://box.reaktor.io/images/email/spacer.gif"/></td>';
|
|
120
|
+
|
|
121
|
+
if (urlFacebook) {
|
|
122
|
+
links = "<td width=\"30\"><a href=\"".concat(urlFacebook, "\"><img width=\"30\" height=\"30\" border=\"0\" ") + 'title="Facebook" alt="Facebook" src="https://box.reaktor.io/images/email/icon-facebook.png"/></a></td>';
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (urlTwitter) {
|
|
126
|
+
if (urlFacebook) {
|
|
127
|
+
links += spacer;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
links += "<td width=\"30\"><a href=\"".concat(urlTwitter, "\"><img width=\"30\" height=\"30\" border=\"0\" ") + 'title="Twitter" alt="Twitter" src="https://box.reaktor.io/images/email/icon-twitter.png"/></a></td>';
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (!links.length) {
|
|
134
|
+
links += spacer;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return templateBody.replace(/\[title\]/g, formatTitle).replace(/\[subTitle\]/g, formatSubTitle).replace(/\[subject\]/g, formatSubject).replace(/\[message\]/g, formatHtml).replace(/\[links\]/g, links);
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
if (hasCustomEmail) {
|
|
141
|
+
var s3Params = {
|
|
142
|
+
Bucket: null,
|
|
143
|
+
Key: 'apps/templates/email.html'
|
|
144
|
+
};
|
|
145
|
+
promise = (0, _s.s3Get)(s3Params).then(function (results) {
|
|
146
|
+
return parseTemplate(results.Body.toString());
|
|
147
|
+
});
|
|
148
|
+
} else {
|
|
149
|
+
promise = new Promise(function (resolve, reject) {
|
|
150
|
+
_fs["default"].readFile('./templates/email/layout.html', 'utf8', function (err, data) {
|
|
151
|
+
if (err) {
|
|
152
|
+
return reject(err);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return resolve(parseTemplate(data));
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return promise.then(function (parsedHtml) {
|
|
161
|
+
var emailParams = {
|
|
162
|
+
Destination: {
|
|
163
|
+
ToAddresses: to
|
|
164
|
+
},
|
|
165
|
+
Message: {
|
|
166
|
+
Body: {
|
|
167
|
+
Html: {
|
|
168
|
+
Data: parsedHtml
|
|
169
|
+
},
|
|
170
|
+
Text: {
|
|
171
|
+
Data: formatText
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
Subject: {
|
|
175
|
+
Data: formatSubject
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
Source: "\"".concat(app.supportName, "\" <noreply@").concat(_config.Config.get('app.url'), ">")
|
|
179
|
+
};
|
|
180
|
+
return sesSend(emailParams);
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
exports.sendEmail = sendEmail;
|
|
185
|
+
|
|
186
|
+
var sendTemplate = function sendTemplate(templateName, emailParams) {
|
|
187
|
+
var app = emailParams.app,
|
|
188
|
+
user = emailParams.user,
|
|
189
|
+
subject = emailParams.subject,
|
|
190
|
+
subTitle = emailParams.subTitle,
|
|
191
|
+
title = emailParams.title,
|
|
192
|
+
vars = emailParams.vars;
|
|
193
|
+
|
|
194
|
+
try {
|
|
195
|
+
var html = _fs["default"].readFileSync("./templates/email/".concat(templateName, ".html"), 'utf8');
|
|
196
|
+
|
|
197
|
+
var templateHtml = appTemplate(app, html, vars);
|
|
198
|
+
|
|
199
|
+
var text = _fs["default"].readFileSync("./templates/sms/".concat(templateName, ".txt"), 'utf8');
|
|
200
|
+
|
|
201
|
+
var templateText = appTemplate(app, text, vars);
|
|
202
|
+
var params = {
|
|
203
|
+
app: app,
|
|
204
|
+
html: templateHtml,
|
|
205
|
+
subTitle: subTitle,
|
|
206
|
+
subject: subject,
|
|
207
|
+
text: templateText,
|
|
208
|
+
title: title,
|
|
209
|
+
user: user
|
|
210
|
+
};
|
|
211
|
+
return sendEmail(params).then(function () {
|
|
212
|
+
return true;
|
|
213
|
+
})["catch"](function () {
|
|
214
|
+
return false;
|
|
215
|
+
});
|
|
216
|
+
} catch (error) {
|
|
217
|
+
return Promise.reject(error);
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
exports.sendTemplate = sendTemplate;
|
|
222
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2VtYWlsLnRzIl0sIm5hbWVzIjpbImFwcFRlbXBsYXRlIiwiYXBwIiwibWVzc2FnZSIsInZhcnMiLCJ1cGRhdGVkTWVzc2FnZSIsInJlcGxhY2UiLCJuYW1lIiwidXJsIiwiZW1haWwiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsIlJlZ0V4cCIsInNlc1NlbmQiLCJwYXJhbXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImF3cyIsImNvbmZpZyIsInVwZGF0ZSIsIkNvbmZpZyIsImdldCIsInNlcyIsIlNFUyIsInNlbmRFbWFpbCIsImVycm9yIiwicmVzcG9uc2UiLCJodG1sIiwic3ViamVjdCIsInN1YlRpdGxlIiwidGV4dCIsInRpdGxlIiwidXNlciIsInRvIiwicHJvbWlzZSIsImZvcm1hdFN1YmplY3QiLCJmb3JtYXRTdWJUaXRsZSIsImZvcm1hdFRpdGxlIiwiZm9ybWF0VGV4dCIsImZvcm1hdEh0bWwiLCJoYXNDdXN0b21FbWFpbCIsIl9rZXkiLCJ1cmxGYWNlYm9vayIsInVybFR3aXR0ZXIiLCJwYXJzZVRlbXBsYXRlIiwiYm9keSIsInRlbXBsYXRlQm9keSIsImxpbmtzIiwic3BhY2VyIiwibGVuZ3RoIiwiczNQYXJhbXMiLCJCdWNrZXQiLCJLZXkiLCJ0aGVuIiwicmVzdWx0cyIsIkJvZHkiLCJ0b1N0cmluZyIsImZzIiwicmVhZEZpbGUiLCJlcnIiLCJkYXRhIiwicGFyc2VkSHRtbCIsImVtYWlsUGFyYW1zIiwiRGVzdGluYXRpb24iLCJUb0FkZHJlc3NlcyIsIk1lc3NhZ2UiLCJIdG1sIiwiRGF0YSIsIlRleHQiLCJTdWJqZWN0IiwiU291cmNlIiwic3VwcG9ydE5hbWUiLCJzZW5kVGVtcGxhdGUiLCJ0ZW1wbGF0ZU5hbWUiLCJyZWFkRmlsZVN5bmMiLCJ0ZW1wbGF0ZUh0bWwiLCJ0ZW1wbGF0ZVRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztB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TUFBQUEsSUFBSSxFQUFFZ0QsWUFGTztBQUdiOUMsTUFBQUEsUUFBUSxFQUFSQSxRQUhhO0FBSWJELE1BQUFBLE9BQU8sRUFBUEEsT0FKYTtBQUtiRSxNQUFBQSxJQUFJLEVBQUU4QyxZQUxPO0FBTWI3QyxNQUFBQSxLQUFLLEVBQUxBLEtBTmE7QUFPYkMsTUFBQUEsSUFBSSxFQUFKQTtBQVBhLEtBQWY7QUFVQSxXQUFPUixTQUFTLENBQUNYLE1BQUQsQ0FBVCxDQUNKd0MsSUFESSxDQUNDO0FBQUEsYUFBTSxJQUFOO0FBQUEsS0FERCxXQUVFO0FBQUEsYUFBTSxLQUFOO0FBQUEsS0FGRixDQUFQO0FBR0QsR0FuQkQsQ0FtQkUsT0FBTTVCLEtBQU4sRUFBYTtBQUNiLFdBQU9YLE9BQU8sQ0FBQ0UsTUFBUixDQUFlUyxLQUFmLENBQVA7QUFDRDtBQUNGLENBekJNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBhd3MsIHtTRVN9IGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHtHZXRPYmplY3RSZXF1ZXN0fSBmcm9tICdhd3Mtc2RrL2NsaWVudHMvczMnO1xuaW1wb3J0IHtTZW5kRW1haWxSZXF1ZXN0LCBTZW5kRW1haWxSZXNwb25zZX0gZnJvbSAnYXdzLXNkay9jbGllbnRzL3Nlcyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7QXBwVHlwZX0gZnJvbSAnLi4vdHlwZXMvYXBwcyc7XG5pbXBvcnQge0VtYWlsVHlwZX0gZnJvbSAnLi4vdHlwZXMvZW1haWwnO1xuaW1wb3J0IHtzM0dldH0gZnJvbSAnLi9zMyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdlbWFpbCc7XG5cbmV4cG9ydCBjb25zdCBhcHBUZW1wbGF0ZSA9IChhcHA6IEFwcFR5cGUsIG1lc3NhZ2U6IHN0cmluZyA9ICcnLCB2YXJzID0ge30pOiBzdHJpbmcgPT4ge1xuICBsZXQgdXBkYXRlZE1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gIGlmKCFpc0VtcHR5KGFwcCkpIHtcbiAgICB1cGRhdGVkTWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXFxbYXBwTmFtZVxcXS9nLCBhcHAubmFtZSlcbiAgICAgIC5yZXBsYWNlKC9cXFthcHBVcmxcXF0vZywgYXBwLnVybClcbiAgICAgIC5yZXBsYWNlKC9cXFthcHBFbWFpbFxcXS9nLCBhcHAuZW1haWwpO1xuICB9XG5cbiAgT2JqZWN0LmtleXModmFycykuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICBpZih2YXJzW2tleV0pIHtcbiAgICAgIHVwZGF0ZWRNZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKG5ldyBSZWdFeHAoYFxcXFxbJHtrZXl9XFxcXF1gLCAnZycpLCB2YXJzW2tleV0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHVwZGF0ZWRNZXNzYWdlO1xufTtcblxuLy8gQVdTOjpTRVNcbmV4cG9ydCBjb25zdCBzZXNTZW5kID0gKHBhcmFtczogU2VuZEVtYWlsUmVxdWVzdCk6IFByb21pc2U8U2VuZEVtYWlsUmVzcG9uc2U+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBzZXM6IFNFUyA9IG5ldyBTRVMoKTtcblxuICBzZXMuc2VuZEVtYWlsKHBhcmFtcywgKGVycm9yOiBFcnJvciwgcmVzcG9uc2U6IFNlbmRFbWFpbFJlc3BvbnNlKSA9PiB7XG4gICAgaWYoZXJyb3IpIHtcbiAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlKHJlc3BvbnNlKTtcbiAgfSk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHNlbmRFbWFpbCA9IChwYXJhbXM6IEVtYWlsVHlwZSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCB7XG4gICAgYXBwID0ge30sXG4gICAgaHRtbCxcbiAgICBzdWJqZWN0LFxuICAgIHN1YlRpdGxlID0gJycsXG4gICAgdGV4dCxcbiAgICB0aXRsZSA9ICcnLFxuICAgIHVzZXIgPSB7fVxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHRvID0gW3VzZXIuZW1haWxdO1xuICBsZXQgcHJvbWlzZTtcblxuICBjb25zdCBmb3JtYXRTdWJqZWN0OiBzdHJpbmcgPSBhcHBUZW1wbGF0ZShhcHAsIHN1YmplY3QpO1xuICBjb25zdCBmb3JtYXRTdWJUaXRsZTogc3RyaW5nID0gYXBwVGVtcGxhdGUoYXBwLCBzdWJUaXRsZSk7XG4gIGNvbnN0IGZvcm1hdFRpdGxlOiBzdHJpbmcgPSBhcHBUZW1wbGF0ZShhcHAsIHRpdGxlKTtcbiAgY29uc3QgZm9ybWF0VGV4dDogc3RyaW5nID0gYXBwVGVtcGxhdGUoYXBwLCB0ZXh0KTtcbiAgY29uc3QgZm9ybWF0SHRtbDogc3RyaW5nID0gYXBwVGVtcGxhdGUoYXBwLCBodG1sKTtcbiAgY29uc3Qge19rZXk6IGhhc0N1c3RvbUVtYWlsLCB1cmxGYWNlYm9vaywgdXJsVHdpdHRlcn0gPSBhcHA7XG5cbiAgY29uc3QgcGFyc2VUZW1wbGF0ZSA9IChib2R5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZUJvZHk6IHN0cmluZyA9IGFwcFRlbXBsYXRlKGFwcCwgYm9keSB8fCAnJyk7XG5cbiAgICAvLyBMaW5rc1xuICAgIGxldCBsaW5rczogc3RyaW5nID0gJyc7XG4gICAgY29uc3Qgc3BhY2VyID0gJzx0ZCB3aWR0aD1cIjVcIj48aW1nIHdpZHRoPVwiMVwiIGhlaWdodD1cIjFcIiBib3JkZXI9XCIwXCIgdGl0bGU9XCJcIiBhbHQ9XCJcIiAnICtcbiAgICAgICdzcmM9XCJodHRwczovL2JveC5yZWFrdG9yLmlvL2ltYWdlcy9lbWFpbC9zcGFjZXIuZ2lmXCIvPjwvdGQ+JztcblxuICAgIGlmKHVybEZhY2Vib29rKSB7XG4gICAgICBsaW5rcyA9IGA8dGQgd2lkdGg9XCIzMFwiPjxhIGhyZWY9XCIke3VybEZhY2Vib29rfVwiPjxpbWcgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgYm9yZGVyPVwiMFwiIGAgK1xuICAgICAgICAndGl0bGU9XCJGYWNlYm9va1wiIGFsdD1cIkZhY2Vib29rXCIgc3JjPVwiaHR0cHM6Ly9ib3gucmVha3Rvci5pby9pbWFnZXMvZW1haWwvaWNvbi1mYWNlYm9vay5wbmdcIi8+PC9hPjwvdGQ+JztcbiAgICB9XG5cbiAgICBpZih1cmxUd2l0dGVyKSB7XG4gICAgICBpZih1cmxGYWNlYm9vaykge1xuICAgICAgICBsaW5rcyArPSBzcGFjZXI7XG4gICAgICB9XG5cbiAgICAgIGxpbmtzICs9IGA8dGQgd2lkdGg9XCIzMFwiPjxhIGhyZWY9XCIke3VybFR3aXR0ZXJ9XCI+PGltZyB3aWR0aD1cIjMwXCIgaGVpZ2h0PVwiMzBcIiBib3JkZXI9XCIwXCIgYCArXG4gICAgICAgICd0aXRsZT1cIlR3aXR0ZXJcIiBhbHQ9XCJUd2l0dGVyXCIgc3JjPVwiaHR0cHM6Ly9ib3gucmVha3Rvci5pby9pbWFnZXMvZW1haWwvaWNvbi10d2l0dGVyLnBuZ1wiLz48L2E+PC90ZD4nO1xuICAgIH1cblxuICAgIGlmKCFsaW5rcy5sZW5ndGgpIHtcbiAgICAgIGxpbmtzICs9IHNwYWNlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGVCb2R5LnJlcGxhY2UoL1xcW3RpdGxlXFxdL2csIGZvcm1hdFRpdGxlKVxuICAgICAgLnJlcGxhY2UoL1xcW3N1YlRpdGxlXFxdL2csIGZvcm1hdFN1YlRpdGxlKVxuICAgICAgLnJlcGxhY2UoL1xcW3N1YmplY3RcXF0vZywgZm9ybWF0U3ViamVjdClcbiAgICAgIC5yZXBsYWNlKC9cXFttZXNzYWdlXFxdL2csIGZvcm1hdEh0bWwpXG4gICAgICAucmVwbGFjZSgvXFxbbGlua3NcXF0vZywgbGlua3MpO1xuICB9O1xuXG4gIGlmKGhhc0N1c3RvbUVtYWlsKSB7XG4gICAgY29uc3QgczNQYXJhbXM6IEdldE9iamVjdFJlcXVlc3QgPSB7QnVja2V0OiBudWxsLCBLZXk6ICdhcHBzL3RlbXBsYXRlcy9lbWFpbC5odG1sJ307XG4gICAgcHJvbWlzZSA9IHMzR2V0KHMzUGFyYW1zKS50aGVuKChyZXN1bHRzKSA9PiBwYXJzZVRlbXBsYXRlKHJlc3VsdHMuQm9keS50b1N0cmluZygpKSk7XG4gIH0gZWxzZSB7XG4gICAgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGZzLnJlYWRGaWxlKCcuL3RlbXBsYXRlcy9lbWFpbC9sYXlvdXQuaHRtbCcsICd1dGY4JywgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICBpZihlcnIpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzb2x2ZShwYXJzZVRlbXBsYXRlKGRhdGEpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHByb21pc2UudGhlbigocGFyc2VkSHRtbDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZW1haWxQYXJhbXM6IFNlbmRFbWFpbFJlcXVlc3QgPSB7XG4gICAgICBEZXN0aW5hdGlvbjoge1RvQWRkcmVzc2VzOiB0b30sXG4gICAgICBNZXNzYWdlOiB7XG4gICAgICAgIEJvZHk6IHtcbiAgICAgICAgICBIdG1sOiB7RGF0YTogcGFyc2VkSHRtbH0sXG4gICAgICAgICAgVGV4dDoge0RhdGE6IGZvcm1hdFRleHR9XG4gICAgICAgIH0sXG4gICAgICAgIFN1YmplY3Q6IHtEYXRhOiBmb3JtYXRTdWJqZWN0fVxuICAgICAgfSxcbiAgICAgIFNvdXJjZTogYFwiJHthcHAuc3VwcG9ydE5hbWV9XCIgPG5vcmVwbHlAJHtDb25maWcuZ2V0KCdhcHAudXJsJyl9PmBcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNlc1NlbmQoZW1haWxQYXJhbXMpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZW5kVGVtcGxhdGUgPSAodGVtcGxhdGVOYW1lOiBzdHJpbmcsIGVtYWlsUGFyYW1zOiBFbWFpbFR5cGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3Qge2FwcCwgdXNlciwgc3ViamVjdCwgc3ViVGl0bGUsIHRpdGxlLCB2YXJzfTogRW1haWxUeXBlID0gZW1haWxQYXJhbXM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBodG1sOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoYC4vdGVtcGxhdGVzL2VtYWlsLyR7dGVtcGxhdGVOYW1lfS5odG1sYCwgJ3V0ZjgnKTtcbiAgICBjb25zdCB0ZW1wbGF0ZUh0bWw6IHN0cmluZyA9IGFwcFRlbXBsYXRlKGFwcCwgaHRtbCwgdmFycyk7XG4gICAgY29uc3QgdGV4dDogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGAuL3RlbXBsYXRlcy9zbXMvJHt0ZW1wbGF0ZU5hbWV9LnR4dGAsICd1dGY4Jyk7XG4gICAgY29uc3QgdGVtcGxhdGVUZXh0OiBzdHJpbmcgPSBhcHBUZW1wbGF0ZShhcHAsIHRleHQsIHZhcnMpO1xuXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgYXBwLFxuICAgICAgaHRtbDogdGVtcGxhdGVIdG1sLFxuICAgICAgc3ViVGl0bGUsXG4gICAgICBzdWJqZWN0LFxuICAgICAgdGV4dDogdGVtcGxhdGVUZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICB1c2VyXG4gICAgfTtcblxuICAgIHJldHVybiBzZW5kRW1haWwocGFyYW1zKVxuICAgICAgLnRoZW4oKCkgPT4gdHJ1ZSlcbiAgICAgIC5jYXRjaCgoKSA9PiBmYWxzZSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICB9XG59O1xuIl19
|