@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
package/lib/config.js
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.concat");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.array.iterator");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.object.define-property");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.object.to-string");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/web.dom-collections.iterator");
|
|
12
|
+
|
|
13
|
+
Object.defineProperty(exports, "__esModule", {
|
|
14
|
+
value: true
|
|
15
|
+
});
|
|
16
|
+
exports.Config = void 0;
|
|
17
|
+
|
|
18
|
+
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
19
|
+
|
|
20
|
+
var _merge = _interopRequireDefault(require("lodash/merge"));
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
|
+
|
|
24
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
25
|
+
|
|
26
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
27
|
+
|
|
28
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
var appPackage = require('../package.json');
|
|
33
|
+
|
|
34
|
+
var _process$env = process.env,
|
|
35
|
+
_process$env$arangodb = _process$env.arangodbDatabase,
|
|
36
|
+
arangodbDatabase = _process$env$arangodb === void 0 ? 'reaktor' : _process$env$arangodb,
|
|
37
|
+
arangodbPassword = _process$env.arangodbPassword,
|
|
38
|
+
_process$env$arangodb2 = _process$env.arangodbPort,
|
|
39
|
+
arangodbPort = _process$env$arangodb2 === void 0 ? '8529' : _process$env$arangodb2,
|
|
40
|
+
_process$env$arangodb3 = _process$env.arangodbUrl,
|
|
41
|
+
arangodbUrl = _process$env$arangodb3 === void 0 ? 'db.reaktor.io' : _process$env$arangodb3,
|
|
42
|
+
_process$env$arangodb4 = _process$env.arangodbUsername,
|
|
43
|
+
arangodbUsername = _process$env$arangodb4 === void 0 ? 'reaktor' : _process$env$arangodb4;
|
|
44
|
+
|
|
45
|
+
var Config = /*#__PURE__*/function () {
|
|
46
|
+
function Config() {
|
|
47
|
+
_classCallCheck(this, Config);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
_createClass(Config, null, [{
|
|
51
|
+
key: "get",
|
|
52
|
+
value: function get(path) {
|
|
53
|
+
var environment = process.env.stage || 'dev';
|
|
54
|
+
var configValues = (0, _merge["default"])(this.values["default"], this.values[environment], {
|
|
55
|
+
environment: environment
|
|
56
|
+
});
|
|
57
|
+
return (0, _get2["default"])(configValues, path);
|
|
58
|
+
}
|
|
59
|
+
}]);
|
|
60
|
+
|
|
61
|
+
return Config;
|
|
62
|
+
}();
|
|
63
|
+
|
|
64
|
+
exports.Config = Config;
|
|
65
|
+
|
|
66
|
+
_defineProperty(Config, "values", {
|
|
67
|
+
"default": {
|
|
68
|
+
app: {
|
|
69
|
+
name: 'reaktor',
|
|
70
|
+
url: 'reaktor.io',
|
|
71
|
+
version: appPackage.version
|
|
72
|
+
},
|
|
73
|
+
arangodb: {
|
|
74
|
+
database: arangodbDatabase,
|
|
75
|
+
dump: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangodump',
|
|
76
|
+
password: arangodbPassword,
|
|
77
|
+
port: arangodbPort,
|
|
78
|
+
restore: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangorestore',
|
|
79
|
+
url: "".concat(arangodbUrl, ":").concat(arangodbPort),
|
|
80
|
+
username: arangodbUsername
|
|
81
|
+
},
|
|
82
|
+
aws: {
|
|
83
|
+
Bucket: 'dev.reaktor.io',
|
|
84
|
+
accessKeyId: 'AKIAJIYDT3EA2ZFMTJNA',
|
|
85
|
+
maxRetries: 3,
|
|
86
|
+
region: 'us-east-1',
|
|
87
|
+
secretAccessKey: 'bUssQRtJTZC7geF9RDH5KCn8CalVnf2VT34yqS+9',
|
|
88
|
+
signatureVersion: 'v4'
|
|
89
|
+
},
|
|
90
|
+
giphy: {
|
|
91
|
+
key: 'dc6zaTOxFJmzC'
|
|
92
|
+
},
|
|
93
|
+
google: {
|
|
94
|
+
analytics: {
|
|
95
|
+
accountId: '78158717',
|
|
96
|
+
trackingId: 'UA-78158717-1'
|
|
97
|
+
},
|
|
98
|
+
geocode: {
|
|
99
|
+
key: 'AIzaSyBwjmpBjWhiJoBCZiYzRurM9m4WnCxslv0',
|
|
100
|
+
url: 'https://maps.googleapis.com/maps/api/geocode/json'
|
|
101
|
+
},
|
|
102
|
+
key: 'AIzaSyC3_f2Us3y0qjbyMJ-4t5ObtCzfq_FHIgQ'
|
|
103
|
+
},
|
|
104
|
+
image: {
|
|
105
|
+
imgQuality: 90,
|
|
106
|
+
imgSize: 1500,
|
|
107
|
+
thmQuality: 80,
|
|
108
|
+
thmSize: 150
|
|
109
|
+
},
|
|
110
|
+
redis: {
|
|
111
|
+
host: '127.0.0.1',
|
|
112
|
+
port: 6379
|
|
113
|
+
},
|
|
114
|
+
stripe: {
|
|
115
|
+
token: 'sk_test_LS956be57YUXTB5a4sLGb5BQ'
|
|
116
|
+
},
|
|
117
|
+
twilio: {
|
|
118
|
+
number: '+15005550006',
|
|
119
|
+
sid: 'AC6bd7f513cbed2e5134c650be06cc732e',
|
|
120
|
+
token: '520ae739e761bab759b147f1ad28278f'
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
dev: {
|
|
124
|
+
aws: {
|
|
125
|
+
Bucket: 'dev.reaktor.io'
|
|
126
|
+
},
|
|
127
|
+
redis: {
|
|
128
|
+
host: 'nl-redis.ehcvnt.ng.0001.use1.cache.amazonaws.com'
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
prod: {
|
|
132
|
+
arangodb: {
|
|
133
|
+
dump: '/usr/bin/arangodump',
|
|
134
|
+
restore: '/usr/bin/arangorestore'
|
|
135
|
+
},
|
|
136
|
+
aws: {
|
|
137
|
+
Bucket: 'box.reaktor.io'
|
|
138
|
+
},
|
|
139
|
+
redis: {
|
|
140
|
+
host: 'nl-redis.ehcvnt.ng.0001.use1.cache.amazonaws.com'
|
|
141
|
+
},
|
|
142
|
+
stripe: {
|
|
143
|
+
token: 'sk_live_bElZl8RLhMCJy33KG4lyLD4o'
|
|
144
|
+
},
|
|
145
|
+
twilio: {
|
|
146
|
+
number: '+18554165227',
|
|
147
|
+
sid: 'AC90b0528a911e652d643329a4d7b4d2c7',
|
|
148
|
+
token: 'a7941d173bd4846d0966a186e9865b72'
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
test: {}
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOlsiYXBwUGFja2FnZSIsInJlcXVpcmUiLCJwcm9jZXNzIiwiZW52IiwiYXJhbmdvZGJEYXRhYmFzZSIsImFyYW5nb2RiUGFzc3dvcmQiLCJhcmFuZ29kYlBvcnQiLCJhcmFuZ29kYlVybCIsImFyYW5nb2RiVXNlcm5hbWUiLCJDb25maWciLCJwYXRoIiwiZW52aXJvbm1lbnQiLCJzdGFnZSIsImNvbmZpZ1ZhbHVlcyIsInZhbHVlcyIsImFwcCIsIm5hbWUiLCJ1cmwiLCJ2ZXJzaW9uIiwiYXJhbmdvZGIiLCJkYXRhYmFzZSIsImR1bXAiLCJwYXNzd29yZCIsInBvcnQiLCJyZXN0b3JlIiwidXNlcm5hbWUiLCJhd3MiLCJCdWNrZXQiLCJhY2Nlc3NLZXlJZCIsIm1heFJldHJpZXMiLCJyZWdpb24iLCJzZWNyZXRBY2Nlc3NLZXkiLCJzaWduYXR1cmVWZXJzaW9uIiwiZ2lwaHkiLCJrZXkiLCJnb29nbGUiLCJhbmFseXRpY3MiLCJhY2NvdW50SWQiLCJ0cmFja2luZ0lkIiwiZ2VvY29kZSIsImltYWdlIiwiaW1nUXVhbGl0eSIsImltZ1NpemUiLCJ0aG1RdWFsaXR5IiwidGhtU2l6ZSIsInJlZGlzIiwiaG9zdCIsInN0cmlwZSIsInRva2VuIiwidHdpbGlvIiwibnVtYmVyIiwic2lkIiwiZGV2IiwicHJvZCIsInRlc3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7O0FBQ0E7Ozs7Ozs7Ozs7OztBQXFCQSxJQUFNQSxVQUFlLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUEvQjs7bUJBUUlDLE9BQU8sQ0FBQ0MsRzt5Q0FMVkMsZ0I7SUFBQUEsZ0Isc0NBQW1CLFM7SUFDbkJDLGdCLGdCQUFBQSxnQjswQ0FDQUMsWTtJQUFBQSxZLHVDQUFlLE07MENBQ2ZDLFc7SUFBQUEsVyx1Q0FBYyxlOzBDQUNkQyxnQjtJQUFBQSxnQix1Q0FBbUIsUzs7SUFHUkMsTTs7Ozs7Ozt3QkEwRkFDLEksRUFBOEI7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QURMLEtBTEQ7QUFRSmtCLElBQUFBLEtBQUssRUFBRTtBQUNMQyxNQUFBQSxJQUFJLEVBQUU7QUFERCxLQVJIO0FBV0pDLElBQUFBLE1BQU0sRUFBRTtBQUNOQyxNQUFBQSxLQUFLLEVBQUU7QUFERCxLQVhKO0FBY0pDLElBQUFBLE1BQU0sRUFBRTtBQUNOQyxNQUFBQSxNQUFNLEVBQUUsY0FERjtBQUVOQyxNQUFBQSxHQUFHLEVBQUUsb0NBRkM7QUFHTkgsTUFBQUEsS0FBSyxFQUFFO0FBSEQ7QUFkSixHQWpFbUI7QUFxRnpCTSxFQUFBQSxJQUFJLEVBQUU7QUFyRm1CLEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZyB7XG4gIHJlYWRvbmx5IGFwcD86IG9iamVjdDtcbiAgcmVhZG9ubHkgYXJhbmdvZGI/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGF3cz86IG9iamVjdDtcbiAgcmVhZG9ubHkgZ2lwaHk/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGdvb2dsZT86IG9iamVjdDtcbiAgcmVhZG9ubHkgaW1hZ2U/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IHJlZGlzPzogb2JqZWN0O1xuICByZWFkb25seSBzdHJpcGU/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IHR3aWxpbz86IG9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZDb25maWcge1xuICByZWFkb25seSBkZWZhdWx0OiBBcHBDb25maWc7XG4gIHJlYWRvbmx5IGRldjogQXBwQ29uZmlnO1xuICByZWFkb25seSBwcm9kOiBBcHBDb25maWc7XG4gIHJlYWRvbmx5IHRlc3Q6IEFwcENvbmZpZztcbn1cblxuY29uc3QgYXBwUGFja2FnZTogYW55ID0gcmVxdWlyZSgnLi4vcGFja2FnZS5qc29uJyk7XG5cbmNvbnN0IHtcbiAgYXJhbmdvZGJEYXRhYmFzZSA9ICdyZWFrdG9yJyxcbiAgYXJhbmdvZGJQYXNzd29yZCxcbiAgYXJhbmdvZGJQb3J0ID0gJzg1MjknLFxuICBhcmFuZ29kYlVybCA9ICdkYi5yZWFrdG9yLmlvJyxcbiAgYXJhbmdvZGJVc2VybmFtZSA9ICdyZWFrdG9yJ1xufSA9IHByb2Nlc3MuZW52O1xuXG5leHBvcnQgY2xhc3MgQ29uZmlnIHtcbiAgc3RhdGljIHZhbHVlczogRW52Q29uZmlnID0ge1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGFwcDoge1xuICAgICAgICBuYW1lOiAncmVha3RvcicsXG4gICAgICAgIHVybDogJ3JlYWt0b3IuaW8nLFxuICAgICAgICB2ZXJzaW9uOiBhcHBQYWNrYWdlLnZlcnNpb25cbiAgICAgIH0sXG4gICAgICBhcmFuZ29kYjoge1xuICAgICAgICBkYXRhYmFzZTogYXJhbmdvZGJEYXRhYmFzZSxcbiAgICAgICAgZHVtcDogJy9BcHBsaWNhdGlvbnMvQXJhbmdvREItQ0xJLmFwcC9Db250ZW50cy9NYWNPUy9hcmFuZ29kdW1wJyxcbiAgICAgICAgcGFzc3dvcmQ6IGFyYW5nb2RiUGFzc3dvcmQsXG4gICAgICAgIHBvcnQ6IGFyYW5nb2RiUG9ydCxcbiAgICAgICAgcmVzdG9yZTogJy9BcHBsaWNhdGlvbnMvQXJhbmdvREItQ0xJLmFwcC9Db250ZW50cy9NYWNPUy9hcmFuZ29yZXN0b3JlJyxcbiAgICAgICAgdXJsOiBgJHthcmFuZ29kYlVybH06JHthcmFuZ29kYlBvcnR9YCxcbiAgICAgICAgdXNlcm5hbWU6IGFyYW5nb2RiVXNlcm5hbWVcbiAgICAgIH0sXG4gICAgICBhd3M6IHtcbiAgICAgICAgQnVja2V0OiAnZGV2LnJlYWt0b3IuaW8nLFxuICAgICAgICBhY2Nlc3NLZXlJZDogJ0FLSUFKSVlEVDNFQTJaRk1USk5BJyxcbiAgICAgICAgbWF4UmV0cmllczogMyxcbiAgICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiAnYlVzc1FSdEpUWkM3Z2VGOVJESDVLQ244Q2FsVm5mMlZUMzR5cVMrOScsXG4gICAgICAgIHNpZ25hdHVyZVZlcnNpb246ICd2NCdcbiAgICAgIH0sXG4gICAgICBnaXBoeToge1xuICAgICAgICBrZXk6ICdkYzZ6YVRPeEZKbXpDJ1xuICAgICAgfSxcbiAgICAgIGdvb2dsZToge1xuICAgICAgICBhbmFseXRpY3M6IHtcbiAgICAgICAgICBhY2NvdW50SWQ6ICc3ODE1ODcxNycsXG4gICAgICAgICAgdHJhY2tpbmdJZDogJ1VBLTc4MTU4NzE3LTEnXG4gICAgICAgIH0sXG4gICAgICAgIGdlb2NvZGU6IHtcbiAgICAgICAgICBrZXk6ICdBSXphU3lCd2ptcEJqV2hpSm9CQ1ppWXpSdXJNOW00V25DeHNsdjAnLFxuICAgICAgICAgIHVybDogJ2h0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9nZW9jb2RlL2pzb24nXG4gICAgICAgIH0sXG4gICAgICAgIGtleTogJ0FJemFTeUMzX2YyVXMzeTBxamJ5TUotNHQ1T2J0Q3pmcV9GSElnUSdcbiAgICAgIH0sXG4gICAgICBpbWFnZToge1xuICAgICAgICBpbWdRdWFsaXR5OiA5MCxcbiAgICAgICAgaW1nU2l6ZTogMTUwMCxcbiAgICAgICAgdGhtUXVhbGl0eTogODAsXG4gICAgICAgIHRobVNpemU6IDE1MFxuICAgICAgfSxcbiAgICAgIHJlZGlzOiB7XG4gICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnLFxuICAgICAgICBwb3J0OiA2Mzc5XG4gICAgICB9LFxuICAgICAgc3RyaXBlOiB7XG4gICAgICAgIHRva2VuOiAnc2tfdGVzdF9MUzk1NmJlNTdZVVhUQjVhNHNMR2I1QlEnXG4gICAgICB9LFxuICAgICAgdHdpbGlvOiB7XG4gICAgICAgIG51bWJlcjogJysxNTAwNTU1MDAwNicsXG4gICAgICAgIHNpZDogJ0FDNmJkN2Y1MTNjYmVkMmU1MTM0YzY1MGJlMDZjYzczMmUnLFxuICAgICAgICB0b2tlbjogJzUyMGFlNzM5ZTc2MWJhYjc1OWIxNDdmMWFkMjgyNzhmJ1xuICAgICAgfVxuICAgIH0sXG4gICAgZGV2OiB7XG4gICAgICBhd3M6IHtcbiAgICAgICAgQnVja2V0OiAnZGV2LnJlYWt0b3IuaW8nXG4gICAgICB9LFxuICAgICAgcmVkaXM6IHtcbiAgICAgICAgaG9zdDogJ25sLXJlZGlzLmVoY3ZudC5uZy4wMDAxLnVzZTEuY2FjaGUuYW1hem9uYXdzLmNvbSdcbiAgICAgIH1cbiAgICB9LFxuICAgIHByb2Q6IHtcbiAgICAgIGFyYW5nb2RiOiB7XG4gICAgICAgIGR1bXA6ICcvdXNyL2Jpbi9hcmFuZ29kdW1wJyxcbiAgICAgICAgcmVzdG9yZTogJy91c3IvYmluL2FyYW5nb3Jlc3RvcmUnXG4gICAgICB9LFxuICAgICAgYXdzOiB7XG4gICAgICAgIEJ1Y2tldDogJ2JveC5yZWFrdG9yLmlvJ1xuICAgICAgfSxcbiAgICAgIHJlZGlzOiB7XG4gICAgICAgIGhvc3Q6ICdubC1yZWRpcy5laGN2bnQubmcuMDAwMS51c2UxLmNhY2hlLmFtYXpvbmF3cy5jb20nXG4gICAgICB9LFxuICAgICAgc3RyaXBlOiB7XG4gICAgICAgIHRva2VuOiAnc2tfbGl2ZV9iRWxabDhSTGhNQ0p5MzNLRzRseUxENG8nXG4gICAgICB9LFxuICAgICAgdHdpbGlvOiB7XG4gICAgICAgIG51bWJlcjogJysxODU1NDE2NTIyNycsXG4gICAgICAgIHNpZDogJ0FDOTBiMDUyOGE5MTFlNjUyZDY0MzMyOWE0ZDdiNGQyYzcnLFxuICAgICAgICB0b2tlbjogJ2E3OTQxZDE3M2JkNDg0NmQwOTY2YTE4NmU5ODY1YjcyJ1xuICAgICAgfVxuICAgIH0sXG4gICAgdGVzdDoge1xuICAgIH1cbiAgfTtcblxuICBzdGF0aWMgZ2V0KHBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCBlbnZpcm9ubWVudDogc3RyaW5nID0gcHJvY2Vzcy5lbnYuc3RhZ2UgfHwgJ2Rldic7XG4gICAgY29uc3QgY29uZmlnVmFsdWVzOiBvYmplY3QgPSBtZXJnZSh0aGlzLnZhbHVlcy5kZWZhdWx0LCB0aGlzLnZhbHVlc1tlbnZpcm9ubWVudF0sIHtlbnZpcm9ubWVudH0pO1xuICAgIHJldHVybiBnZXQoY29uZmlnVmFsdWVzLCBwYXRoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,311 @@
|
|
|
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.map");
|
|
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.function.name");
|
|
20
|
+
|
|
21
|
+
require("core-js/modules/es.object.define-properties");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/es.object.define-property");
|
|
24
|
+
|
|
25
|
+
require("core-js/modules/es.object.freeze");
|
|
26
|
+
|
|
27
|
+
require("core-js/modules/es.object.get-own-property-descriptor");
|
|
28
|
+
|
|
29
|
+
require("core-js/modules/es.object.get-own-property-descriptors");
|
|
30
|
+
|
|
31
|
+
require("core-js/modules/es.object.keys");
|
|
32
|
+
|
|
33
|
+
require("core-js/modules/es.string.sub");
|
|
34
|
+
|
|
35
|
+
require("core-js/modules/web.dom-collections.for-each");
|
|
36
|
+
|
|
37
|
+
Object.defineProperty(exports, "__esModule", {
|
|
38
|
+
value: true
|
|
39
|
+
});
|
|
40
|
+
exports.removeUserToConversation = exports.addUserToConversation = exports.updateConversation = exports.getConversation = exports.getDirectConversation = exports.getConversationList = void 0;
|
|
41
|
+
|
|
42
|
+
var _utils = require("@nlabs/utils");
|
|
43
|
+
|
|
44
|
+
var _arangojs = require("arangojs");
|
|
45
|
+
|
|
46
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
47
|
+
|
|
48
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
49
|
+
|
|
50
|
+
var _utils2 = require("../utils");
|
|
51
|
+
|
|
52
|
+
var _analytics = require("../utils/analytics");
|
|
53
|
+
|
|
54
|
+
var _images = require("./images");
|
|
55
|
+
|
|
56
|
+
var _users = require("./users");
|
|
57
|
+
|
|
58
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
59
|
+
|
|
60
|
+
function _templateObject5() {
|
|
61
|
+
var data = _taggedTemplateLiteral(["FOR c IN hasConversations\n FILTER c._from == ", " && c._to == ", "\n LIMIT 1\n REMOVE c IN hasConversations\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 c IN hasConversations\n FILTER c._from == ", " && c._to == ", "\n LIMIT 1\n RETURN c"]);
|
|
72
|
+
|
|
73
|
+
_templateObject4 = function _templateObject4() {
|
|
74
|
+
return data;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
return data;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function _templateObject3() {
|
|
81
|
+
var data = _taggedTemplateLiteral(["UPSERT {_key: ", " }\n INSERT ", "\n UPDATE ", "\n IN conversations RETURN NEW"]);
|
|
82
|
+
|
|
83
|
+
_templateObject3 = function _templateObject3() {
|
|
84
|
+
return data;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
return data;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
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; }
|
|
91
|
+
|
|
92
|
+
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; }
|
|
93
|
+
|
|
94
|
+
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; }
|
|
95
|
+
|
|
96
|
+
function _templateObject2() {
|
|
97
|
+
var data = _taggedTemplateLiteral(["FOR c, e IN 1..1 OUTBOUND ", " hasConversations\n FILTER c._id == ", "\n LET u = (\n FOR inUser, inEdge IN 1..1 INBOUND ", " hasConversations\n RETURN inUser\n )\n LIMIT 1\n RETURN MERGE(c, {users: u})"]);
|
|
98
|
+
|
|
99
|
+
_templateObject2 = function _templateObject2() {
|
|
100
|
+
return data;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
return data;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function _templateObject() {
|
|
107
|
+
var data = _taggedTemplateLiteral(["LET from = (\n FOR c, e IN 1..1 OUTBOUND ", " hasConversations\n FILTER c.direct == true\n RETURN c\n )\n LET to = (\n FOR c, e IN 1..1 OUTBOUND ", " hasConversations\n FILTER c.direct == true\n RETURN c\n )\n LET conversation = FIRST(INTERSECTION(from, to))\n LET users = !IS_NULL(conversation) && (\n FOR g IN[", ", ", "]\n FOR u IN users\n FILTER g == u._id\n RETURN u\n )\n RETURN IS_NULL(conversation) ? null : MERGE(conversation, {users: users})"]);
|
|
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
|
+
var eventCategory = 'conversations';
|
|
119
|
+
|
|
120
|
+
var getConversationList = function getConversationList(context, from, to) {
|
|
121
|
+
var action = 'getList';
|
|
122
|
+
var database = context.database,
|
|
123
|
+
sessionId = context.userId;
|
|
124
|
+
var limit = (0, _utils2.getLimit)(from, to);
|
|
125
|
+
var sessionDocId = "users/".concat(sessionId);
|
|
126
|
+
var aqlQry = "FOR c, e IN 1..1 OUTBOUND \"".concat(sessionDocId, "\" hasConversations\n ").concat(limit.aql, "\n LET users = (\n FOR u, uc IN 1..1 INBOUND c._id hasConversations\n FILTER u._id != \"").concat(sessionDocId, "\"\n RETURN u\n )\n RETURN MERGE(c, {users: users})");
|
|
127
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
128
|
+
return cursor.all();
|
|
129
|
+
})["catch"](function (error) {
|
|
130
|
+
return (0, _analytics.logError)({
|
|
131
|
+
action: action,
|
|
132
|
+
category: eventCategory,
|
|
133
|
+
label: 'db_error'
|
|
134
|
+
}, error, context).then(function () {
|
|
135
|
+
return null;
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
exports.getConversationList = getConversationList;
|
|
141
|
+
|
|
142
|
+
var getDirectConversation = function getDirectConversation(context, userId) {
|
|
143
|
+
var action = 'getDirectConversation';
|
|
144
|
+
var database = context.database,
|
|
145
|
+
sessionId = context.userId;
|
|
146
|
+
var sessionDocId = "users/".concat(sessionId);
|
|
147
|
+
var userDocId = "users/".concat((0, _utils.parseId)(userId));
|
|
148
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject(), sessionDocId, userDocId, sessionDocId, userDocId);
|
|
149
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
150
|
+
return cursor.next();
|
|
151
|
+
})["catch"](function (error) {
|
|
152
|
+
return (0, _analytics.logError)({
|
|
153
|
+
action: action,
|
|
154
|
+
category: eventCategory,
|
|
155
|
+
label: 'db_error'
|
|
156
|
+
}, error, context).then(function () {
|
|
157
|
+
return null;
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
exports.getDirectConversation = getDirectConversation;
|
|
163
|
+
|
|
164
|
+
var getConversation = function getConversation(context, convoId) {
|
|
165
|
+
var action = 'getItem';
|
|
166
|
+
var database = context.database,
|
|
167
|
+
sessionId = context.userId;
|
|
168
|
+
var sessionDocId = "users/".concat(sessionId);
|
|
169
|
+
var convoDocId = "conversations/".concat((0, _utils.parseId)(convoId));
|
|
170
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject2(), sessionDocId, convoDocId, convoDocId);
|
|
171
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
172
|
+
return cursor.next();
|
|
173
|
+
}).then(function () {
|
|
174
|
+
var conversation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
175
|
+
|
|
176
|
+
if (!(0, _isEmpty["default"])(conversation)) {
|
|
177
|
+
conversation.users = conversation.users.map(function (user) {
|
|
178
|
+
var imgId = user.imgId,
|
|
179
|
+
sub = user.sub;
|
|
180
|
+
var thumbUrlData = {
|
|
181
|
+
imgId: imgId,
|
|
182
|
+
isThumb: true,
|
|
183
|
+
sub: sub
|
|
184
|
+
};
|
|
185
|
+
return _objectSpread(_objectSpread({}, user), {}, {
|
|
186
|
+
name: (0, _users.getDisplayName)(user),
|
|
187
|
+
thumb: (0, _images.getUserImageUrl)(thumbUrlData)
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
return conversation;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return {};
|
|
194
|
+
})["catch"](function (error) {
|
|
195
|
+
return (0, _analytics.logError)({
|
|
196
|
+
action: action,
|
|
197
|
+
category: eventCategory,
|
|
198
|
+
label: 'db_error'
|
|
199
|
+
}, error, context).then(function () {
|
|
200
|
+
return null;
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
exports.getConversation = getConversation;
|
|
206
|
+
|
|
207
|
+
var updateConversation = function updateConversation(context, conversation) {
|
|
208
|
+
var action = 'updateConversation';
|
|
209
|
+
var database = context.database,
|
|
210
|
+
sessionId = context.userId;
|
|
211
|
+
var direct = conversation.direct,
|
|
212
|
+
_conversation$convoId = conversation.convoId,
|
|
213
|
+
convoId = _conversation$convoId === void 0 ? (0, _utils.createHash)("convo - ".concat(sessionId, " ")) : _conversation$convoId,
|
|
214
|
+
name = conversation.name;
|
|
215
|
+
var formatConvoId = (0, _utils.parseId)(convoId);
|
|
216
|
+
var now = Date.now();
|
|
217
|
+
var update = {
|
|
218
|
+
// Direct message
|
|
219
|
+
direct: direct,
|
|
220
|
+
modified: now,
|
|
221
|
+
name: name
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
var insert = _objectSpread(_objectSpread({}, (0, _cloneDeep["default"])(update)), {}, {
|
|
225
|
+
_key: formatConvoId,
|
|
226
|
+
added: now
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject3(), formatConvoId, insert, update);
|
|
230
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
231
|
+
return cursor.next();
|
|
232
|
+
}).then(function () {
|
|
233
|
+
var conversation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
234
|
+
return conversation;
|
|
235
|
+
})["catch"](function (error) {
|
|
236
|
+
return (0, _analytics.logError)({
|
|
237
|
+
action: action,
|
|
238
|
+
category: eventCategory,
|
|
239
|
+
label: 'db_error'
|
|
240
|
+
}, error, context).then(function () {
|
|
241
|
+
return null;
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
exports.updateConversation = updateConversation;
|
|
247
|
+
|
|
248
|
+
var addUserToConversation = function addUserToConversation(context, convoId, userId) {
|
|
249
|
+
var action = 'addUserToConversation';
|
|
250
|
+
var database = context.database;
|
|
251
|
+
var formatConvoId = (0, _utils.parseId)(convoId);
|
|
252
|
+
var formatUserId = (0, _utils.parseId)(userId);
|
|
253
|
+
var convoDocId = "conversations/".concat(formatConvoId, " ");
|
|
254
|
+
var userDocId = "users/".concat(formatUserId, " ");
|
|
255
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject4(), userDocId, convoDocId);
|
|
256
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
257
|
+
return cursor.next();
|
|
258
|
+
}).then(function (conversationEdge) {
|
|
259
|
+
if (!!conversationEdge) {
|
|
260
|
+
return conversationEdge;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
var edgeCollection = (0, _utils2.useDb)(database).collection('hasConversations');
|
|
264
|
+
var edgeId = (0, _utils.createHash)("convo - ".concat(formatConvoId, " -").concat(formatUserId, " "));
|
|
265
|
+
var edge = {
|
|
266
|
+
_from: userDocId,
|
|
267
|
+
_key: edgeId,
|
|
268
|
+
_to: convoDocId,
|
|
269
|
+
added: Date.now()
|
|
270
|
+
};
|
|
271
|
+
return edgeCollection.save(edge, {
|
|
272
|
+
returnNew: true
|
|
273
|
+
}).then(function () {
|
|
274
|
+
return edge;
|
|
275
|
+
});
|
|
276
|
+
})["catch"](function (error) {
|
|
277
|
+
return (0, _analytics.logError)({
|
|
278
|
+
action: action,
|
|
279
|
+
category: eventCategory,
|
|
280
|
+
label: 'db_error'
|
|
281
|
+
}, error, context).then(function () {
|
|
282
|
+
return null;
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
exports.addUserToConversation = addUserToConversation;
|
|
288
|
+
|
|
289
|
+
var removeUserToConversation = function removeUserToConversation(context, convoId, userId) {
|
|
290
|
+
var action = 'addUserToConversation';
|
|
291
|
+
var database = context.database;
|
|
292
|
+
var formatConvoId = (0, _utils.parseId)(convoId);
|
|
293
|
+
var formatUserId = (0, _utils.parseId)(userId);
|
|
294
|
+
var convoDocId = "conversations / ".concat(formatConvoId, " ");
|
|
295
|
+
var userDocId = "users/".concat(formatUserId, " ");
|
|
296
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject5(), userDocId, convoDocId);
|
|
297
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
298
|
+
return cursor.next();
|
|
299
|
+
})["catch"](function (error) {
|
|
300
|
+
return (0, _analytics.logError)({
|
|
301
|
+
action: action,
|
|
302
|
+
category: eventCategory,
|
|
303
|
+
label: 'db_error'
|
|
304
|
+
}, error, context).then(function () {
|
|
305
|
+
return null;
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
exports.removeUserToConversation = removeUserToConversation;
|
|
311
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2NvbnZlcnNhdGlvbnMudHMiXSwibmFtZXMiOlsiZXZlbnRDYXRlZ29yeSIsImdldENvbnZlcnNhdGlvbkxpc3QiLCJjb250ZXh0IiwiZnJvbSIsInRvIiwiYWN0aW9uIiwiZGF0YWJhc2UiLCJzZXNzaW9uSWQiLCJ1c2VySWQiLCJsaW1pdCIsInNlc3Npb25Eb2NJZCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsImFsbCIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCIsImdldERpcmVjdENvbnZlcnNhdGlvbiIsInVzZXJEb2NJZCIsIm5leHQiLCJnZXRDb252ZXJzYXRpb24iLCJjb252b0lkIiwiY29udm9Eb2NJZCIsImNvbnZlcnNhdGlvbiIsInVzZXJzIiwibWFwIiwidXNlciIsImltZ0lkIiwic3ViIiwidGh1bWJVcmxEYXRhIiwiaXNUaHVtYiIsIm5hbWUiLCJ0aHVtYiIsInVwZGF0ZUNvbnZlcnNhdGlvbiIsImRpcmVjdCIsImZvcm1hdENvbnZvSWQiLCJub3ciLCJEYXRlIiwidXBkYXRlIiwibW9kaWZpZWQiLCJpbnNlcnQiLCJfa2V5IiwiYWRkZWQiLCJhZGRVc2VyVG9Db252ZXJzYXRpb24iLCJmb3JtYXRVc2VySWQiLCJjb252ZXJzYXRpb25FZGdlIiwiZWRnZUNvbGxlY3Rpb24iLCJjb2xsZWN0aW9uIiwiZWRnZUlkIiwiZWRnZSIsIl9mcm9tIiwiX3RvIiwic2F2ZSIsInJldHVybk5ldyIsInJlbW92ZVVzZXJUb0NvbnZlcnNhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxhQUFxQixHQUFHLGVBQTlCOztBQUVPLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBc0IsQ0FBQ0MsT0FBRCxFQUFzQkMsSUFBdEIsRUFBb0NDLEVBQXBDLEVBQWdGO0FBQ2pILE1BQU1DLE1BQWMsR0FBRyxTQUF2QjtBQURpSCxNQUUxR0MsUUFGMEcsR0FFM0VKLE9BRjJFLENBRTFHSSxRQUYwRztBQUFBLE1BRXhGQyxTQUZ3RixHQUUzRUwsT0FGMkUsQ0FFaEdNLE1BRmdHO0FBR2pILE1BQU1DLEtBQW9CLEdBQUcsc0JBQVNOLElBQVQsRUFBZUMsRUFBZixDQUE3QjtBQUNBLE1BQU1NLFlBQW9CLG1CQUFZSCxTQUFaLENBQTFCO0FBQ0EsTUFBTUksTUFBYyx5Q0FBaUNELFlBQWpDLHNDQUNoQkQsS0FBSyxDQUFDRyxHQURVLGtIQUlHRixZQUpILG1FQUFwQjtBQVNBLFNBQU8sbUJBQU1KLFFBQU4sRUFBZ0JPLEtBQWhCLENBQXNCRixNQUF0QixFQUNKRyxJQURJLENBQ0MsVUFBQ0MsTUFBRDtBQUFBLFdBQXlCQSxNQUFNLENBQUNDLEdBQVAsRUFBekI7QUFBQSxHQURELFdBRUUsVUFBQ0MsS0FBRDtBQUFBLFdBQWtCLHlCQUFTO0FBQ2hDWixNQUFBQSxNQUFNLEVBQU5BLE1BRGdDO0FBRWhDYSxNQUFBQSxRQUFRLEVBQUVsQixhQUZzQjtBQUdoQ21CLE1BQUFBLEtBQUssRUFBRTtBQUh5QixLQUFULEVBSXRCRixLQUpzQixFQUlmZixPQUplLEVBSU5ZLElBSk0sQ0FJRDtBQUFBLGFBQU0sSUFBTjtBQUFBLEtBSkMsQ0FBbEI7QUFBQSxHQUZGLENBQVA7QUFPRCxDQXJCTTs7OztBQXVCQSxJQUFNTSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXdCLENBQUNsQixPQUFELEVBQXNCTSxNQUF0QixFQUFvRTtBQUN2RyxNQUFNSCxNQUFjLEdBQUcsdUJBQXZCO0FBRHVHLE1BRWhHQyxRQUZnRyxHQUVqRUosT0FGaUUsQ0FFaEdJLFFBRmdHO0FBQUEsTUFFOUVDLFNBRjhFLEdBRWpFTCxPQUZpRSxDQUV0Rk0sTUFGc0Y7QUFHdkcsTUFBTUUsWUFBb0IsbUJBQVlILFNBQVosQ0FBMUI7QUFDQSxNQUFNYyxTQUFpQixtQkFBWSxvQkFBUWIsTUFBUixDQUFaLENBQXZCO0FBRUEsTUFBTUcsTUFBZ0IsT0FBR0MsYUFBSCxxQkFDVUYsWUFEVixFQU1VVyxTQU5WLEVBWVBYLFlBWk8sRUFZVVcsU0FaVixDQUF0QjtBQW1CQSxTQUFPLG1CQUFNZixRQUFOLEVBQWdCTyxLQUFoQixDQUFzQkYsTUFBdEIsRUFDSkcsSUFESSxDQUNDLFVBQUNDLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDTyxJQUFQLEVBQXpCO0FBQUEsR0FERCxXQUVFLFVBQUNMLEtBQUQ7QUFBQSxXQUFrQix5QkFBUztBQUNoQ1osTUFBQUEsTUFBTSxFQUFOQSxNQURnQztBQUVoQ2EsTUFBQUEsUUFBUSxFQUFFbEIsYUFGc0I7QUFHaENtQixNQUFBQSxLQUFLLEVBQUU7QUFIeUIsS0FBVCxFQUl0QkYsS0FKc0IsRUFJZmYsT0FKZSxFQUlOWSxJQUpNLENBSUQ7QUFBQSxhQUFNLElBQU47QUFBQSxLQUpDLENBQWxCO0FBQUEsR0FGRixDQUFQO0FBT0QsQ0FoQ007Ozs7QUFrQ0EsSUFBTVMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDckIsT0FBRCxFQUFzQnNCLE9BQXRCLEVBQXFFO0FBQ2xHLE1BQU1uQixNQUFjLEdBQUcsU0FBdkI7QUFEa0csTUFFM0ZDLFFBRjJGLEdBRTVESixPQUY0RCxDQUUzRkksUUFGMkY7QUFBQSxNQUV6RUMsU0FGeUUsR0FFNURMLE9BRjRELENBRWpGTSxNQUZpRjtBQUdsRyxNQUFNRSxZQUFvQixtQkFBWUgsU0FBWixDQUExQjtBQUNBLE1BQU1rQixVQUFrQiwyQkFBb0Isb0JBQVFELE9BQVIsQ0FBcEIsQ0FBeEI7QUFFQSxNQUFNYixNQUFnQixPQUFHQyxhQUFILHNCQUFtQ0YsWUFBbkMsRUFDRmUsVUFERSxFQUdtQkEsVUFIbkIsQ0FBdEI7QUFTQSxTQUFPLG1CQUFNbkIsUUFBTixFQUFnQk8sS0FBaEIsQ0FBc0JGLE1BQXRCLEVBQ0pHLElBREksQ0FDQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQ08sSUFBUCxFQUF6QjtBQUFBLEdBREQsRUFFSlIsSUFGSSxDQUVDLFlBQXlDO0FBQUEsUUFBeENZLFlBQXdDLHVFQUFQLEVBQU87O0FBQzdDLFFBQUcsQ0FBQyx5QkFBUUEsWUFBUixDQUFKLEVBQTJCO0FBQ3pCQSxNQUFBQSxZQUFZLENBQUNDLEtBQWIsR0FBcUJELFlBQVksQ0FBQ0MsS0FBYixDQUFtQkMsR0FBbkIsQ0FBdUIsVUFBQ0MsSUFBRCxFQUFvQjtBQUFBLFlBQ3ZEQyxLQUR1RCxHQUN6Q0QsSUFEeUMsQ0FDdkRDLEtBRHVEO0FBQUEsWUFDaERDLEdBRGdELEdBQ3pDRixJQUR5QyxDQUNoREUsR0FEZ0Q7QUFFOUQsWUFBTUMsWUFBMEIsR0FBRztBQUNqQ0YsVUFBQUEsS0FBSyxFQUFMQSxLQURpQztBQUVqQ0csVUFBQUEsT0FBTyxFQUFFLElBRndCO0FBR2pDRixVQUFBQSxHQUFHLEVBQUhBO0FBSGlDLFNBQW5DO0FBS0EsK0NBQ0tGLElBREw7QUFFRUssVUFBQUEsSUFBSSxFQUFFLDJCQUFlTCxJQUFmLENBRlI7QUFHRU0sVUFBQUEsS0FBSyxFQUFFLDZCQUFnQkgsWUFBaEI7QUFIVDtBQUtELE9BWm9CLENBQXJCO0FBY0EsYUFBT04sWUFBUDtBQUNEOztBQUNELFdBQU8sRUFBUDtBQUNELEdBckJJLFdBc0JFLFVBQUNULEtBQUQ7QUFBQSxXQUFrQix5QkFBUztBQUNoQ1osTUFBQUEsTUFBTSxFQUFOQSxNQURnQztBQUVoQ2EsTUFBQUEsUUFBUSxFQUFFbEIsYUFGc0I7QUFHaENtQixNQUFBQSxLQUFLLEVBQUU7QUFIeUIsS0FBVCxFQUl0QkYsS0FKc0IsRUFJZmYsT0FKZSxFQUlOWSxJQUpNLENBSUQ7QUFBQSxhQUFNLElBQU47QUFBQSxLQUpDLENBQWxCO0FBQUEsR0F0QkYsQ0FBUDtBQTJCRCxDQTFDTTs7OztBQTRDQSxJQUFNc0Isa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFxQixDQUFDbEMsT0FBRCxFQUFzQndCLFlBQXRCLEVBQWtFO0FBQ2xHLE1BQU1yQixNQUFjLEdBQUcsb0JBQXZCO0FBRGtHLE1BRTNGQyxRQUYyRixHQUU1REosT0FGNEQsQ0FFM0ZJLFFBRjJGO0FBQUEsTUFFekVDLFNBRnlFLEdBRTVETCxPQUY0RCxDQUVqRk0sTUFGaUY7QUFBQSxNQUloRzZCLE1BSmdHLEdBTzlGWCxZQVA4RixDQUloR1csTUFKZ0c7QUFBQSw4QkFPOUZYLFlBUDhGLENBS2hHRixPQUxnRztBQUFBLE1BS2hHQSxPQUxnRyxzQ0FLdEYseUNBQXNCakIsU0FBdEIsT0FMc0Y7QUFBQSxNQU1oRzJCLElBTmdHLEdBTzlGUixZQVA4RixDQU1oR1EsSUFOZ0c7QUFRbEcsTUFBTUksYUFBcUIsR0FBRyxvQkFBUWQsT0FBUixDQUE5QjtBQUNBLE1BQU1lLEdBQVcsR0FBR0MsSUFBSSxDQUFDRCxHQUFMLEVBQXBCO0FBQ0EsTUFBTUUsTUFBVyxHQUFHO0FBQ2xCO0FBQ0FKLElBQUFBLE1BQU0sRUFBTkEsTUFGa0I7QUFHbEJLLElBQUFBLFFBQVEsRUFBRUgsR0FIUTtBQUlsQkwsSUFBQUEsSUFBSSxFQUFKQTtBQUprQixHQUFwQjs7QUFPQSxNQUFNUyxNQUFXLG1DQUNaLDJCQUFVRixNQUFWLENBRFk7QUFFZkcsSUFBQUEsSUFBSSxFQUFFTixhQUZTO0FBR2ZPLElBQUFBLEtBQUssRUFBRU47QUFIUSxJQUFqQjs7QUFNQSxNQUFNNUIsTUFBZ0IsT0FBR0MsYUFBSCxzQkFBdUIwQixhQUF2QixFQUNYSyxNQURXLEVBRVhGLE1BRlcsQ0FBdEI7QUFLQSxTQUFPLG1CQUFNbkMsUUFBTixFQUFnQk8sS0FBaEIsQ0FBc0JGLE1BQXRCLEVBQ0pHLElBREksQ0FDQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQ08sSUFBUCxFQUF6QjtBQUFBLEdBREQsRUFFSlIsSUFGSSxDQUVDO0FBQUEsUUFBQ1ksWUFBRCx1RUFBa0MsRUFBbEM7QUFBQSxXQUF5Q0EsWUFBekM7QUFBQSxHQUZELFdBR0UsVUFBQ1QsS0FBRDtBQUFBLFdBQWtCLHlCQUFTO0FBQ2hDWixNQUFBQSxNQUFNLEVBQU5BLE1BRGdDO0FBRWhDYSxNQUFBQSxRQUFRLEVBQUVsQixhQUZzQjtBQUdoQ21CLE1BQUFBLEtBQUssRUFBRTtBQUh5QixLQUFULEVBSXRCRixLQUpzQixFQUlmZixPQUplLEVBSU5ZLElBSk0sQ0FJRDtBQUFBLGFBQU0sSUFBTjtBQUFBLEtBSkMsQ0FBbEI7QUFBQSxHQUhGLENBQVA7QUFRRCxDQXBDTTs7OztBQXNDQSxJQUFNZ0MscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUF3QixDQUFDNUMsT0FBRCxFQUFzQnNCLE9BQXRCLEVBQXVDaEIsTUFBdkMsRUFBMEQ7QUFDN0YsTUFBTUgsTUFBYyxHQUFHLHVCQUF2QjtBQUQ2RixNQUV0RkMsUUFGc0YsR0FFMUVKLE9BRjBFLENBRXRGSSxRQUZzRjtBQUc3RixNQUFNZ0MsYUFBcUIsR0FBRyxvQkFBUWQsT0FBUixDQUE5QjtBQUNBLE1BQU11QixZQUFvQixHQUFHLG9CQUFRdkMsTUFBUixDQUE3QjtBQUNBLE1BQU1pQixVQUFrQiwyQkFBb0JhLGFBQXBCLE1BQXhCO0FBQ0EsTUFBTWpCLFNBQWlCLG1CQUFZMEIsWUFBWixNQUF2QjtBQUVBLE1BQU1wQyxNQUFnQixPQUFHQyxhQUFILHNCQUNBUyxTQURBLEVBQ3lCSSxVQUR6QixDQUF0QjtBQUtBLFNBQU8sbUJBQU1uQixRQUFOLEVBQWdCTyxLQUFoQixDQUFzQkYsTUFBdEIsRUFDSkcsSUFESSxDQUNDLFVBQUNDLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDTyxJQUFQLEVBQXpCO0FBQUEsR0FERCxFQUVKUixJQUZJLENBRUMsVUFBQ2tDLGdCQUFELEVBQXNCO0FBQzFCLFFBQUcsQ0FBQyxDQUFDQSxnQkFBTCxFQUF1QjtBQUNyQixhQUFPQSxnQkFBUDtBQUNEOztBQUVELFFBQU1DLGNBQThCLEdBQUcsbUJBQU0zQyxRQUFOLEVBQWdCNEMsVUFBaEIsQ0FBMkIsa0JBQTNCLENBQXZDO0FBQ0EsUUFBTUMsTUFBYyxHQUFHLHlDQUFzQmIsYUFBdEIsZUFBd0NTLFlBQXhDLE9BQXZCO0FBRUEsUUFBTUssSUFBc0IsR0FBRztBQUM3QkMsTUFBQUEsS0FBSyxFQUFFaEMsU0FEc0I7QUFFN0J1QixNQUFBQSxJQUFJLEVBQUVPLE1BRnVCO0FBRzdCRyxNQUFBQSxHQUFHLEVBQUU3QixVQUh3QjtBQUk3Qm9CLE1BQUFBLEtBQUssRUFBRUwsSUFBSSxDQUFDRCxHQUFMO0FBSnNCLEtBQS9CO0FBT0EsV0FBT1UsY0FBYyxDQUFDTSxJQUFmLENBQW9CSCxJQUFwQixFQUEwQjtBQUFDSSxNQUFBQSxTQUFTLEVBQUU7QUFBWixLQUExQixFQUE2QzFDLElBQTdDLENBQWtEO0FBQUEsYUFBTXNDLElBQU47QUFBQSxLQUFsRCxDQUFQO0FBQ0QsR0FsQkksV0FtQkUsVUFBQ25DLEtBQUQ7QUFBQSxXQUFrQix5QkFBUztBQUNoQ1osTUFBQUEsTUFBTSxFQUFOQSxNQURnQztBQUVoQ2EsTUFBQUEsUUFBUSxFQUFFbEIsYUFGc0I7QUFHaENtQixNQUFBQSxLQUFLLEVBQUU7QUFIeUIsS0FBVCxFQUl0QkYsS0FKc0IsRUFJZmYsT0FKZSxFQUlOWSxJQUpNLENBSUQ7QUFBQSxhQUFNLElBQU47QUFBQSxLQUpDLENBQWxCO0FBQUEsR0FuQkYsQ0FBUDtBQXdCRCxDQXJDTTs7OztBQXVDQSxJQUFNMkMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUEyQixDQUFDdkQsT0FBRCxFQUFzQnNCLE9BQXRCLEVBQXVDaEIsTUFBdkMsRUFBMEQ7QUFDaEcsTUFBTUgsTUFBYyxHQUFHLHVCQUF2QjtBQURnRyxNQUV6RkMsUUFGeUYsR0FFN0VKLE9BRjZFLENBRXpGSSxRQUZ5RjtBQUdoRyxNQUFNZ0MsYUFBcUIsR0FBRyxvQkFBUWQsT0FBUixDQUE5QjtBQUNBLE1BQU11QixZQUFvQixHQUFHLG9CQUFRdkMsTUFBUixDQUE3QjtBQUNBLE1BQU1pQixVQUFrQiw2QkFBc0JhLGFBQXRCLE1BQXhCO0FBQ0EsTUFBTWpCLFNBQWlCLG1CQUFZMEIsWUFBWixNQUF2QjtBQUVBLE1BQU1wQyxNQUFnQixPQUFHQyxhQUFILHNCQUNBUyxTQURBLEVBQ3lCSSxVQUR6QixDQUF0QjtBQU1BLFNBQU8sbUJBQU1uQixRQUFOLEVBQWdCTyxLQUFoQixDQUFzQkYsTUFBdEIsRUFDSkcsSUFESSxDQUNDLFVBQUNDLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDTyxJQUFQLEVBQXpCO0FBQUEsR0FERCxXQUVFLFVBQUNMLEtBQUQ7QUFBQSxXQUFrQix5QkFBUztBQUNoQ1osTUFBQUEsTUFBTSxFQUFOQSxNQURnQztBQUVoQ2EsTUFBQUEsUUFBUSxFQUFFbEIsYUFGc0I7QUFHaENtQixNQUFBQSxLQUFLLEVBQUU7QUFIeUIsS0FBVCxFQUl0QkYsS0FKc0IsRUFJZmYsT0FKZSxFQUlOWSxJQUpNLENBSUQ7QUFBQSxhQUFNLElBQU47QUFBQSxLQUpDLENBQWxCO0FBQUEsR0FGRixDQUFQO0FBT0QsQ0FyQk0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0VkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcy9jb2xsZWN0aW9uJztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2N1cnNvcic7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICd0eXBlcy9hdXRoJztcblxuaW1wb3J0IHtBcmFuZ29EQkxpbWl0LCBDb252ZXJzYXRpb25UeXBlLCBJbWFnZVVybERhdGEsIFVzZXJUeXBlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzJztcbmltcG9ydCB7Z2V0VXNlckltYWdlVXJsfSBmcm9tICcuL2ltYWdlcyc7XG5pbXBvcnQge2dldERpc3BsYXlOYW1lfSBmcm9tICcuL3VzZXJzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2NvbnZlcnNhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9uTGlzdCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRMaXN0JztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc0NvbnZlcnNhdGlvbnNcbiAgICAke2xpbWl0LmFxbH1cbiAgICBMRVQgdXNlcnMgPSAoXG4gICAgICBGT1IgdSwgdWMgSU4gMS4uMSBJTkJPVU5EIGMuX2lkIGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiB1Ll9pZCAhPSBcIiR7c2Vzc2lvbkRvY0lkfVwiXG4gICAgICBSRVRVUk4gdVxuICAgIClcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXJzOiB1c2Vyc30pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERpcmVjdENvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXREaXJlY3RDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZCh1c2VySWQpfWA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgZnJvbSA9IChcbiAgICAgIEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiBjLmRpcmVjdCA9PSB0cnVlXG4gICAgICBSRVRVUk4gY1xuICAgIClcbiAgICBMRVQgdG8gPSAoXG4gICAgICBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7dXNlckRvY0lkfSBoYXNDb252ZXJzYXRpb25zXG4gICAgICBGSUxURVIgYy5kaXJlY3QgPT0gdHJ1ZVxuICAgICAgUkVUVVJOIGNcbiAgICApXG4gICAgTEVUIGNvbnZlcnNhdGlvbiA9IEZJUlNUKElOVEVSU0VDVElPTihmcm9tLCB0bykpXG4gICAgTEVUIHVzZXJzID0gIUlTX05VTEwoY29udmVyc2F0aW9uKSAmJiAoXG4gICAgICBGT1IgZyBJTlske3Nlc3Npb25Eb2NJZH0sICR7dXNlckRvY0lkfV1cbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgZyA9PSB1Ll9pZFxuICAgICAgUkVUVVJOIHVcbiAgICApXG4gICAgUkVUVVJOIElTX05VTEwoY29udmVyc2F0aW9uKSA/IG51bGwgOiBNRVJHRShjb252ZXJzYXRpb24sIHt1c2VyczogdXNlcnN9KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke3BhcnNlSWQoY29udm9JZCl9YDtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgYy5faWQgPT0gJHtjb252b0RvY0lkfVxuICAgIExFVCB1ID0gKFxuICAgICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZvRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIFJFVFVSTiBpblVzZXJcbiAgICApXG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBNRVJHRShjLCB7dXNlcnM6IHV9KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSA9IHt9KSA9PiB7XG4gICAgICBpZighaXNFbXB0eShjb252ZXJzYXRpb24pKSB7XG4gICAgICAgIGNvbnZlcnNhdGlvbi51c2VycyA9IGNvbnZlcnNhdGlvbi51c2Vycy5tYXAoKHVzZXI6IFVzZXJUeXBlKSA9PiB7XG4gICAgICAgICAgY29uc3Qge2ltZ0lkLCBzdWJ9ID0gdXNlcjtcbiAgICAgICAgICBjb25zdCB0aHVtYlVybERhdGE6IEltYWdlVXJsRGF0YSA9IHtcbiAgICAgICAgICAgIGltZ0lkLFxuICAgICAgICAgICAgaXNUaHVtYjogdHJ1ZSxcbiAgICAgICAgICAgIHN1YlxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgICBuYW1lOiBnZXREaXNwbGF5TmFtZSh1c2VyKSxcbiAgICAgICAgICAgIHRodW1iOiBnZXRVc2VySW1hZ2VVcmwodGh1bWJVcmxEYXRhKVxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjb252ZXJzYXRpb247XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVDb252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udmVyc2F0aW9uKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ3VwZGF0ZUNvbnZlcnNhdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGRpcmVjdCxcbiAgICBjb252b0lkID0gY3JlYXRlSGFzaChgY29udm8gLSAke3Nlc3Npb25JZH0gYCksXG4gICAgbmFtZVxuICB9ID0gY29udmVyc2F0aW9uO1xuICBjb25zdCBmb3JtYXRDb252b0lkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZvSWQpO1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHVwZGF0ZTogYW55ID0ge1xuICAgIC8vIERpcmVjdCBtZXNzYWdlXG4gICAgZGlyZWN0LFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgbmFtZVxuICB9O1xuXG4gIGNvbnN0IGluc2VydDogYW55ID0ge1xuICAgIC4uLmNsb25lRGVlcCh1cGRhdGUpLFxuICAgIF9rZXk6IGZvcm1hdENvbnZvSWQsXG4gICAgYWRkZWQ6IG5vd1xuICB9O1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtfa2V5OiAke2Zvcm1hdENvbnZvSWR9IH1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfVxuICAgIElOIGNvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSA9IHt9KSA9PiBjb252ZXJzYXRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVXNlclRvQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkVXNlclRvQ29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke2Zvcm1hdENvbnZvSWR9IGA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7Zm9ybWF0VXNlcklkfSBgO1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGMgSU4gaGFzQ29udmVyc2F0aW9uc1xuICAgIEZJTFRFUiBjLl9mcm9tID09ICR7dXNlckRvY0lkfSAmJiBjLl90byA9PSAke2NvbnZvRG9jSWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9uRWRnZSkgPT4ge1xuICAgICAgaWYoISFjb252ZXJzYXRpb25FZGdlKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJzYXRpb25FZGdlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZSkuY29sbGVjdGlvbignaGFzQ29udmVyc2F0aW9ucycpO1xuICAgICAgY29uc3QgZWRnZUlkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBjb252byAtICR7Zm9ybWF0Q29udm9JZH0gLSR7Zm9ybWF0VXNlcklkfSBgKTtcblxuICAgICAgY29uc3QgZWRnZTogQ29udmVyc2F0aW9uVHlwZSA9IHtcbiAgICAgICAgX2Zyb206IHVzZXJEb2NJZCxcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBfdG86IGNvbnZvRG9jSWQsXG4gICAgICAgIGFkZGVkOiBEYXRlLm5vdygpXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB7cmV0dXJuTmV3OiB0cnVlfSkudGhlbigoKSA9PiBlZGdlKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZVVzZXJUb0NvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252b0lkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFVzZXJUb0NvbnZlcnNhdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252b0lkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZvSWQpO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgY29udm9Eb2NJZDogc3RyaW5nID0gYGNvbnZlcnNhdGlvbnMgLyAke2Zvcm1hdENvbnZvSWR9IGA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7Zm9ybWF0VXNlcklkfSBgO1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGMgSU4gaGFzQ29udmVyc2F0aW9uc1xuICAgIEZJTFRFUiBjLl9mcm9tID09ICR7dXNlckRvY0lkfSAmJiBjLl90byA9PSAke2NvbnZvRG9jSWR9XG4gICAgTElNSVQgMVxuICAgIFJFTU9WRSBjIElOIGhhc0NvbnZlcnNhdGlvbnNcbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXX0=
|