@nlabs/reaktor 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.DS_Store +0 -0
- package/.eslintrc +18 -0
- package/lib/config.d.ts +21 -0
- package/lib/config.js +130 -0
- package/lib/data/conversations.d.ts +6 -0
- package/lib/data/conversations.js +197 -0
- package/lib/data/dynamodb.d.ts +8 -0
- package/lib/data/dynamodb.js +139 -0
- package/lib/data/email.d.ts +7 -0
- package/lib/data/email.js +163 -0
- package/lib/data/files.d.ts +16 -0
- package/lib/data/files.js +406 -0
- package/lib/data/groups.d.ts +13 -0
- package/lib/data/groups.js +354 -0
- package/lib/data/images.d.ts +12 -0
- package/lib/data/images.js +667 -0
- package/{src/data/index.ts → lib/data/index.d.ts} +1 -5
- package/lib/data/index.js +24 -0
- package/lib/data/ios.d.ts +6 -0
- package/lib/data/ios.js +302 -0
- package/lib/data/locations.d.ts +3 -0
- package/lib/data/locations.js +132 -0
- package/lib/data/messages.d.ts +9 -0
- package/lib/data/messages.js +248 -0
- package/lib/data/notifications.d.ts +5 -0
- package/lib/data/notifications.js +42 -0
- package/lib/data/payments.d.ts +11 -0
- package/lib/data/payments.js +748 -0
- package/lib/data/posts.d.ts +22 -0
- package/lib/data/posts.js +579 -0
- package/lib/data/reactions.d.ts +6 -0
- package/lib/data/reactions.js +218 -0
- package/lib/data/s3.d.ts +6 -0
- package/lib/data/s3.js +103 -0
- package/lib/data/search.d.ts +3 -0
- package/lib/data/search.js +98 -0
- package/lib/data/sms.d.ts +3 -0
- package/lib/data/sms.js +59 -0
- package/lib/data/subscription.d.ts +7 -0
- package/lib/data/subscription.js +284 -0
- package/lib/data/tags.d.ts +14 -0
- package/lib/data/tags.js +304 -0
- package/lib/data/users.d.ts +12 -0
- package/lib/data/users.js +310 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +8 -0
- package/lib/types/apps.d.ts +43 -0
- package/lib/types/apps.js +2 -0
- package/lib/types/arangodb.d.ts +17 -0
- package/lib/types/arangodb.js +2 -0
- package/lib/types/auth.d.ts +10 -0
- package/lib/types/auth.js +2 -0
- package/lib/types/conversations.d.ts +6 -0
- package/lib/types/conversations.js +2 -0
- package/lib/types/email.d.ts +12 -0
- package/lib/types/email.js +2 -0
- package/lib/types/files.d.ts +26 -0
- package/lib/types/files.js +2 -0
- package/lib/types/google.d.ts +27 -0
- package/lib/types/google.js +2 -0
- package/lib/types/groups.d.ts +21 -0
- package/lib/types/groups.js +2 -0
- package/lib/types/images.d.ts +24 -0
- package/lib/types/images.js +2 -0
- package/{src/types/index.ts → lib/types/index.d.ts} +0 -4
- package/lib/types/index.js +22 -0
- package/lib/types/locations.d.ts +20 -0
- package/lib/types/locations.js +2 -0
- package/lib/types/messages.d.ts +12 -0
- package/lib/types/messages.js +2 -0
- package/lib/types/notifications.d.ts +19 -0
- package/lib/types/notifications.js +2 -0
- package/lib/types/payments.d.ts +114 -0
- package/lib/types/payments.js +2 -0
- package/lib/types/posts.d.ts +28 -0
- package/lib/types/posts.js +2 -0
- package/lib/types/reactions.d.ts +4 -0
- package/lib/types/reactions.js +2 -0
- package/lib/types/tags.d.ts +9 -0
- package/lib/types/tags.js +2 -0
- package/lib/types/users.d.ts +78 -0
- package/lib/types/users.js +2 -0
- package/lib/utils/analytics.d.ts +3 -0
- package/lib/utils/analytics.js +47 -0
- package/lib/utils/arangodb.d.ts +9 -0
- package/lib/utils/arangodb.js +98 -0
- package/lib/utils/auth.d.ts +7 -0
- package/lib/utils/auth.js +80 -0
- package/lib/utils/graphql.d.ts +1 -0
- package/lib/utils/graphql.js +7 -0
- package/{src/utils/index.ts → lib/utils/index.d.ts} +0 -4
- package/lib/utils/index.js +11 -0
- package/lib/utils/objects.d.ts +3 -0
- package/lib/utils/objects.js +34 -0
- package/lib/utils/redis.d.ts +1 -0
- package/lib/utils/redis.js +15 -0
- package/package.json +8 -7
- package/.vscode/extensions.json +0 -15
- package/.vscode/settings.json +0 -82
- package/lex.config.js +0 -4
- package/src/config.ts +0 -127
- package/src/data/conversations.ts +0 -181
- package/src/data/dynamodb.ts +0 -157
- package/src/data/email.ts +0 -163
- package/src/data/files.ts +0 -352
- package/src/data/groups.ts +0 -308
- package/src/data/images.ts +0 -606
- package/src/data/ios.ts +0 -249
- package/src/data/locations.ts +0 -114
- package/src/data/messages.ts +0 -237
- package/src/data/notifications.ts +0 -48
- package/src/data/payments.ts +0 -675
- package/src/data/posts.ts +0 -580
- package/src/data/reactions.ts +0 -186
- package/src/data/s3.ts +0 -117
- package/src/data/search.ts +0 -74
- package/src/data/sms.ts +0 -60
- package/src/data/subscription.ts +0 -228
- package/src/data/tags.ts +0 -230
- package/src/data/users.ts +0 -254
- package/src/index.ts +0 -7
- package/src/types/apps.ts +0 -56
- package/src/types/arangodb.ts +0 -23
- package/src/types/auth.ts +0 -20
- package/src/types/conversations.ts +0 -11
- package/src/types/email.ts +0 -17
- package/src/types/files.ts +0 -31
- package/src/types/google.ts +0 -37
- package/src/types/groups.ts +0 -27
- package/src/types/images.ts +0 -32
- package/src/types/locations.ts +0 -24
- package/src/types/messages.ts +0 -16
- package/src/types/notifications.ts +0 -26
- package/src/types/payments.ts +0 -129
- package/src/types/posts.ts +0 -34
- package/src/types/reactions.ts +0 -8
- package/src/types/tags.ts +0 -13
- package/src/types/users.ts +0 -89
- package/src/utils/analytics.ts +0 -41
- package/src/utils/arangodb.ts +0 -100
- package/src/utils/auth.ts +0 -61
- package/src/utils/graphql.ts +0 -7
- package/src/utils/objects.ts +0 -34
- package/src/utils/redis.ts +0 -17
- package/tsconfig.json +0 -45
package/.DS_Store
ADDED
|
Binary file
|
package/.eslintrc
ADDED
package/lib/config.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface AppConfig {
|
|
2
|
+
readonly app?: object;
|
|
3
|
+
readonly arangodb?: object;
|
|
4
|
+
readonly aws?: object;
|
|
5
|
+
readonly giphy?: object;
|
|
6
|
+
readonly google?: object;
|
|
7
|
+
readonly image?: object;
|
|
8
|
+
readonly redis?: object;
|
|
9
|
+
readonly stripe?: object;
|
|
10
|
+
readonly twilio?: object;
|
|
11
|
+
}
|
|
12
|
+
export interface EnvConfig {
|
|
13
|
+
readonly default: AppConfig;
|
|
14
|
+
readonly development: AppConfig;
|
|
15
|
+
readonly production: AppConfig;
|
|
16
|
+
readonly test: AppConfig;
|
|
17
|
+
}
|
|
18
|
+
export declare class Config {
|
|
19
|
+
static values: EnvConfig;
|
|
20
|
+
static get(path: string | string[]): any;
|
|
21
|
+
}
|
package/lib/config.js
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
2
|
+
|
|
3
|
+
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); } }
|
|
4
|
+
|
|
5
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
6
|
+
|
|
7
|
+
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; }
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
11
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
12
|
+
*/
|
|
13
|
+
import _get from 'lodash/get';
|
|
14
|
+
import merge from 'lodash/merge';
|
|
15
|
+
|
|
16
|
+
var appPackage = require('../package.json');
|
|
17
|
+
|
|
18
|
+
var _process$env = process.env,
|
|
19
|
+
_process$env$arangodb = _process$env.arangodbDatabase,
|
|
20
|
+
arangodbDatabase = _process$env$arangodb === void 0 ? 'reaktor' : _process$env$arangodb,
|
|
21
|
+
arangodbPassword = _process$env.arangodbPassword,
|
|
22
|
+
_process$env$arangodb2 = _process$env.arangodbPort,
|
|
23
|
+
arangodbPort = _process$env$arangodb2 === void 0 ? '8529' : _process$env$arangodb2,
|
|
24
|
+
_process$env$arangodb3 = _process$env.arangodbUrl,
|
|
25
|
+
arangodbUrl = _process$env$arangodb3 === void 0 ? 'db.reaktor.io' : _process$env$arangodb3,
|
|
26
|
+
_process$env$arangodb4 = _process$env.arangodbUsername,
|
|
27
|
+
arangodbUsername = _process$env$arangodb4 === void 0 ? 'reaktor' : _process$env$arangodb4;
|
|
28
|
+
export var Config =
|
|
29
|
+
/*#__PURE__*/
|
|
30
|
+
function () {
|
|
31
|
+
function Config() {
|
|
32
|
+
_classCallCheck(this, Config);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
_createClass(Config, null, [{
|
|
36
|
+
key: "get",
|
|
37
|
+
value: function get(path) {
|
|
38
|
+
var environment = process.env.stage || 'development';
|
|
39
|
+
var configValues = merge(this.values.default, this.values[environment], {
|
|
40
|
+
environment: environment
|
|
41
|
+
});
|
|
42
|
+
return _get(configValues, path);
|
|
43
|
+
}
|
|
44
|
+
}]);
|
|
45
|
+
|
|
46
|
+
return Config;
|
|
47
|
+
}();
|
|
48
|
+
|
|
49
|
+
_defineProperty(Config, "values", {
|
|
50
|
+
default: {
|
|
51
|
+
app: {
|
|
52
|
+
name: 'reaktor',
|
|
53
|
+
url: 'reaktor.io',
|
|
54
|
+
version: appPackage.version
|
|
55
|
+
},
|
|
56
|
+
arangodb: {
|
|
57
|
+
apiUrl: "http://".concat(arangodbUrl, ":").concat(arangodbPort),
|
|
58
|
+
database: arangodbDatabase,
|
|
59
|
+
dump: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangodump',
|
|
60
|
+
password: arangodbPassword,
|
|
61
|
+
port: arangodbPort,
|
|
62
|
+
restore: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangorestore',
|
|
63
|
+
url: arangodbUrl,
|
|
64
|
+
username: arangodbUsername
|
|
65
|
+
},
|
|
66
|
+
aws: {
|
|
67
|
+
Bucket: 'dev.reaktor.io',
|
|
68
|
+
accessKeyId: 'AKIAJIYDT3EA2ZFMTJNA',
|
|
69
|
+
maxRetries: 3,
|
|
70
|
+
region: 'us-east-1',
|
|
71
|
+
secretAccessKey: 'bUssQRtJTZC7geF9RDH5KCn8CalVnf2VT34yqS+9',
|
|
72
|
+
signatureVersion: 'v4'
|
|
73
|
+
},
|
|
74
|
+
giphy: {
|
|
75
|
+
key: 'dc6zaTOxFJmzC'
|
|
76
|
+
},
|
|
77
|
+
google: {
|
|
78
|
+
analytics: {
|
|
79
|
+
accountId: '78158717',
|
|
80
|
+
trackingId: 'UA-78158717-1'
|
|
81
|
+
},
|
|
82
|
+
geocode: {
|
|
83
|
+
key: 'AIzaSyBwjmpBjWhiJoBCZiYzRurM9m4WnCxslv0',
|
|
84
|
+
url: 'https://maps.googleapis.com/maps/api/geocode/json'
|
|
85
|
+
},
|
|
86
|
+
key: 'AIzaSyC3_f2Us3y0qjbyMJ-4t5ObtCzfq_FHIgQ'
|
|
87
|
+
},
|
|
88
|
+
image: {
|
|
89
|
+
imgQuality: 90,
|
|
90
|
+
imgSize: 1500,
|
|
91
|
+
thmQuality: 80,
|
|
92
|
+
thmSize: 150
|
|
93
|
+
},
|
|
94
|
+
redis: {
|
|
95
|
+
host: '127.0.0.1',
|
|
96
|
+
port: 6379
|
|
97
|
+
},
|
|
98
|
+
stripe: {
|
|
99
|
+
token: 'sk_test_LS956be57YUXTB5a4sLGb5BQ'
|
|
100
|
+
},
|
|
101
|
+
twilio: {
|
|
102
|
+
number: '+15005550006',
|
|
103
|
+
sid: 'AC6bd7f513cbed2e5134c650be06cc732e',
|
|
104
|
+
token: '520ae739e761bab759b147f1ad28278f'
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
development: {},
|
|
108
|
+
production: {
|
|
109
|
+
arangodb: {
|
|
110
|
+
dump: '/usr/bin/arangodump',
|
|
111
|
+
restore: '/usr/bin/arangorestore'
|
|
112
|
+
},
|
|
113
|
+
aws: {
|
|
114
|
+
Bucket: 'box.reaktor.io'
|
|
115
|
+
},
|
|
116
|
+
redis: {
|
|
117
|
+
host: 'reaktor-redis.ehcvnt.0001.use1.cache.amazonaws.com'
|
|
118
|
+
},
|
|
119
|
+
stripe: {
|
|
120
|
+
token: 'sk_live_bElZl8RLhMCJy33KG4lyLD4o'
|
|
121
|
+
},
|
|
122
|
+
twilio: {
|
|
123
|
+
number: '+18554165227',
|
|
124
|
+
sid: 'AC90b0528a911e652d643329a4d7b4d2c7',
|
|
125
|
+
token: 'a7941d173bd4846d0966a186e9865b72'
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
test: {}
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOlsiZ2V0IiwibWVyZ2UiLCJhcHBQYWNrYWdlIiwicmVxdWlyZSIsInByb2Nlc3MiLCJlbnYiLCJhcmFuZ29kYkRhdGFiYXNlIiwiYXJhbmdvZGJQYXNzd29yZCIsImFyYW5nb2RiUG9ydCIsImFyYW5nb2RiVXJsIiwiYXJhbmdvZGJVc2VybmFtZSIsIkNvbmZpZyIsInBhdGgiLCJlbnZpcm9ubWVudCIsInN0YWdlIiwiY29uZmlnVmFsdWVzIiwidmFsdWVzIiwiZGVmYXVsdCIsImFwcCIsIm5hbWUiLCJ1cmwiLCJ2ZXJzaW9uIiwiYXJhbmdvZGIiLCJhcGlVcmwiLCJkYXRhYmFzZSIsImR1bXAiLCJwYXNzd29yZCIsInBvcnQiLCJyZXN0b3JlIiwidXNlcm5hbWUiLCJhd3MiLCJCdWNrZXQiLCJhY2Nlc3NLZXlJZCIsIm1heFJldHJpZXMiLCJyZWdpb24iLCJzZWNyZXRBY2Nlc3NLZXkiLCJzaWduYXR1cmVWZXJzaW9uIiwiZ2lwaHkiLCJrZXkiLCJnb29nbGUiLCJhbmFseXRpY3MiLCJhY2NvdW50SWQiLCJ0cmFja2luZ0lkIiwiZ2VvY29kZSIsImltYWdlIiwiaW1nUXVhbGl0eSIsImltZ1NpemUiLCJ0aG1RdWFsaXR5IiwidGhtU2l6ZSIsInJlZGlzIiwiaG9zdCIsInN0cmlwZSIsInRva2VuIiwidHdpbGlvIiwibnVtYmVyIiwic2lkIiwiZGV2ZWxvcG1lbnQiLCJwcm9kdWN0aW9uIiwidGVzdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUlBLE9BQU9BLElBQVAsTUFBZ0IsWUFBaEI7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLGNBQWxCOztBQXFCQSxJQUFNQyxVQUFlLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUEvQjs7bUJBUUlDLE9BQU8sQ0FBQ0MsRzt5Q0FMVkMsZ0I7SUFBQUEsZ0Isc0NBQW1CLFM7SUFDbkJDLGdCLGdCQUFBQSxnQjswQ0FDQUMsWTtJQUFBQSxZLHVDQUFlLE07MENB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QUUscUJBREU7QUFFUkcsTUFBQUEsT0FBTyxFQUFFO0FBRkQsS0FEQTtBQUtWRSxJQUFBQSxHQUFHLEVBQUU7QUFDSEMsTUFBQUEsTUFBTSxFQUFFO0FBREwsS0FMSztBQVFWa0IsSUFBQUEsS0FBSyxFQUFFO0FBQ0xDLE1BQUFBLElBQUksRUFBRTtBQURELEtBUkc7QUFXVkMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLEtBQUssRUFBRTtBQURELEtBWEU7QUFjVkMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLE1BQU0sRUFBRSxjQURGO0FBRU5DLE1BQUFBLEdBQUcsRUFBRSxvQ0FGQztBQUdOSCxNQUFBQSxLQUFLLEVBQUU7QUFIRDtBQWRFLEdBNURhO0FBZ0Z6Qk0sRUFBQUEsSUFBSSxFQUFFO0FBaEZtQixDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAnbG9kYXNoL21lcmdlJztcblxuZXhwb3J0IGludGVyZmFjZSBBcHBDb25maWcge1xuICByZWFkb25seSBhcHA/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGFyYW5nb2RiPzogb2JqZWN0O1xuICByZWFkb25seSBhd3M/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGdpcGh5Pzogb2JqZWN0O1xuICByZWFkb25seSBnb29nbGU/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGltYWdlPzogb2JqZWN0O1xuICByZWFkb25seSByZWRpcz86IG9iamVjdDtcbiAgcmVhZG9ubHkgc3RyaXBlPzogb2JqZWN0O1xuICByZWFkb25seSB0d2lsaW8/OiBvYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52Q29uZmlnIHtcbiAgcmVhZG9ubHkgZGVmYXVsdDogQXBwQ29uZmlnO1xuICByZWFkb25seSBkZXZlbG9wbWVudDogQXBwQ29uZmlnO1xuICByZWFkb25seSBwcm9kdWN0aW9uOiBBcHBDb25maWc7XG4gIHJlYWRvbmx5IHRlc3Q6IEFwcENvbmZpZztcbn1cblxuY29uc3QgYXBwUGFja2FnZTogYW55ID0gcmVxdWlyZSgnLi4vcGFja2FnZS5qc29uJyk7XG5cbmNvbnN0IHtcbiAgYXJhbmdvZGJEYXRhYmFzZSA9ICdyZWFrdG9yJyxcbiAgYXJhbmdvZGJQYXNzd29yZCxcbiAgYXJhbmdvZGJQb3J0ID0gJzg1MjknLFxuICBhcmFuZ29kYlVybCA9ICdkYi5yZWFrdG9yLmlvJyxcbiAgYXJhbmdvZGJVc2VybmFtZSA9ICdyZWFrdG9yJ1xufSA9IHByb2Nlc3MuZW52O1xuXG5leHBvcnQgY2xhc3MgQ29uZmlnIHtcbiAgc3RhdGljIHZhbHVlczogRW52Q29uZmlnID0ge1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGFwcDoge1xuICAgICAgICBuYW1lOiAncmVha3RvcicsXG4gICAgICAgIHVybDogJ3JlYWt0b3IuaW8nLFxuICAgICAgICB2ZXJzaW9uOiBhcHBQYWNrYWdlLnZlcnNpb25cbiAgICAgIH0sXG4gICAgICBhcmFuZ29kYjoge1xuICAgICAgICBhcGlVcmw6IGBodHRwOi8vJHthcmFuZ29kYlVybH06JHthcmFuZ29kYlBvcnR9YCxcbiAgICAgICAgZGF0YWJhc2U6IGFyYW5nb2RiRGF0YWJhc2UsXG4gICAgICAgIGR1bXA6ICcvQXBwbGljYXRpb25zL0FyYW5nb0RCLUNMSS5hcHAvQ29udGVudHMvTWFjT1MvYXJhbmdvZHVtcCcsXG4gICAgICAgIHBhc3N3b3JkOiBhcmFuZ29kYlBhc3N3b3JkLFxuICAgICAgICBwb3J0OiBhcmFuZ29kYlBvcnQsXG4gICAgICAgIHJlc3RvcmU6ICcvQXBwbGljYXRpb25zL0FyYW5nb0RCLUNMSS5hcHAvQ29udGVudHMvTWFjT1MvYXJhbmdvcmVzdG9yZScsXG4gICAgICAgIHVybDogYXJhbmdvZGJVcmwsXG4gICAgICAgIHVzZXJuYW1lOiBhcmFuZ29kYlVzZXJuYW1lXG4gICAgICB9LFxuICAgICAgYXdzOiB7XG4gICAgICAgIEJ1Y2tldDogJ2Rldi5yZWFrdG9yLmlvJyxcbiAgICAgICAgYWNjZXNzS2V5SWQ6ICdBS0lBSklZRFQzRUEyWkZNVEpOQScsXG4gICAgICAgIG1heFJldHJpZXM6IDMsXG4gICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogJ2JVc3NRUnRKVFpDN2dlRjlSREg1S0NuOENhbFZuZjJWVDM0eXFTKzknLFxuICAgICAgICBzaWduYXR1cmVWZXJzaW9uOiAndjQnXG4gICAgICB9LFxuICAgICAgZ2lwaHk6IHtcbiAgICAgICAga2V5OiAnZGM2emFUT3hGSm16QydcbiAgICAgIH0sXG4gICAgICBnb29nbGU6IHtcbiAgICAgICAgYW5hbHl0aWNzOiB7XG4gICAgICAgICAgYWNjb3VudElkOiAnNzgxNTg3MTcnLFxuICAgICAgICAgIHRyYWNraW5nSWQ6ICdVQS03ODE1ODcxNy0xJ1xuICAgICAgICB9LFxuICAgICAgICBnZW9jb2RlOiB7XG4gICAgICAgICAga2V5OiAnQUl6YVN5QndqbXBCaldoaUpvQkNaaVl6UnVyTTltNFduQ3hzbHYwJyxcbiAgICAgICAgICB1cmw6ICdodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvZ2VvY29kZS9qc29uJ1xuICAgICAgICB9LFxuICAgICAgICBrZXk6ICdBSXphU3lDM19mMlVzM3kwcWpieU1KLTR0NU9idEN6ZnFfRkhJZ1EnXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgaW1nUXVhbGl0eTogOTAsXG4gICAgICAgIGltZ1NpemU6IDE1MDAsXG4gICAgICAgIHRobVF1YWxpdHk6IDgwLFxuICAgICAgICB0aG1TaXplOiAxNTBcbiAgICAgIH0sXG4gICAgICByZWRpczoge1xuICAgICAgICBob3N0OiAnMTI3LjAuMC4xJyxcbiAgICAgICAgcG9ydDogNjM3OVxuICAgICAgfSxcbiAgICAgIHN0cmlwZToge1xuICAgICAgICB0b2tlbjogJ3NrX3Rlc3RfTFM5NTZiZTU3WVVYVEI1YTRzTEdiNUJRJ1xuICAgICAgfSxcbiAgICAgIHR3aWxpbzoge1xuICAgICAgICBudW1iZXI6ICcrMTUwMDU1NTAwMDYnLFxuICAgICAgICBzaWQ6ICdBQzZiZDdmNTEzY2JlZDJlNTEzNGM2NTBiZTA2Y2M3MzJlJyxcbiAgICAgICAgdG9rZW46ICc1MjBhZTczOWU3NjFiYWI3NTliMTQ3ZjFhZDI4Mjc4ZidcbiAgICAgIH1cbiAgICB9LFxuICAgIGRldmVsb3BtZW50OiB7XG4gICAgfSxcbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICBhcmFuZ29kYjoge1xuICAgICAgICBkdW1wOiAnL3Vzci9iaW4vYXJhbmdvZHVtcCcsXG4gICAgICAgIHJlc3RvcmU6ICcvdXNyL2Jpbi9hcmFuZ29yZXN0b3JlJyxcbiAgICAgIH0sXG4gICAgICBhd3M6IHtcbiAgICAgICAgQnVja2V0OiAnYm94LnJlYWt0b3IuaW8nXG4gICAgICB9LFxuICAgICAgcmVkaXM6IHtcbiAgICAgICAgaG9zdDogJ3JlYWt0b3ItcmVkaXMuZWhjdm50LjAwMDEudXNlMS5jYWNoZS5hbWF6b25hd3MuY29tJ1xuICAgICAgfSxcbiAgICAgIHN0cmlwZToge1xuICAgICAgICB0b2tlbjogJ3NrX2xpdmVfYkVsWmw4UkxoTUNKeTMzS0c0bHlMRDRvJ1xuICAgICAgfSxcbiAgICAgIHR3aWxpbzoge1xuICAgICAgICBudW1iZXI6ICcrMTg1NTQxNjUyMjcnLFxuICAgICAgICBzaWQ6ICdBQzkwYjA1MjhhOTExZTY1MmQ2NDMzMjlhNGQ3YjRkMmM3JyxcbiAgICAgICAgdG9rZW46ICdhNzk0MWQxNzNiZDQ4NDZkMDk2NmExODZlOTg2NWI3MidcbiAgICAgIH1cbiAgICB9LFxuICAgIHRlc3Q6IHtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGdldChwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGFueSB7XG4gICAgY29uc3QgZW52aXJvbm1lbnQ6IHN0cmluZyA9IHByb2Nlc3MuZW52LnN0YWdlIHx8ICdkZXZlbG9wbWVudCc7XG4gICAgY29uc3QgY29uZmlnVmFsdWVzOiBvYmplY3QgPSBtZXJnZSh0aGlzLnZhbHVlcy5kZWZhdWx0LCB0aGlzLnZhbHVlc1tlbnZpcm9ubWVudF0sIHtlbnZpcm9ubWVudH0pO1xuICAgIHJldHVybiBnZXQoY29uZmlnVmFsdWVzLCBwYXRoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ApiContext } from 'types/auth';
|
|
2
|
+
import { ConversationType } from '../types';
|
|
3
|
+
export declare const getConversationList: (context: ApiContext, from: number, to: number) => Promise<ConversationType[]>;
|
|
4
|
+
export declare const getDirectConversation: (context: ApiContext, userId: string) => Promise<ConversationType>;
|
|
5
|
+
export declare const getConversation: (context: ApiContext, convoId: string) => Promise<ConversationType>;
|
|
6
|
+
export declare const updateConversation: (context: ApiContext, item: any) => Promise<ConversationType>;
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
function _templateObject3() {
|
|
2
|
+
var data = _taggedTemplateLiteral(["UPSERT {_key: ", "}\n INSERT ", "\n UPDATE ", "\n IN conversations RETURN NEW"]);
|
|
3
|
+
|
|
4
|
+
_templateObject3 = function _templateObject3() {
|
|
5
|
+
return data;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
return data;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function _templateObject2() {
|
|
12
|
+
var data = _taggedTemplateLiteral(["FOR c IN conversations\n FILTER ", " == c._key && IS_LIST(c.users) && POSITION(c.users, ", ", false)\n LET u = (\n FOR g IN c.users\n FOR u IN users\n FILTER g == u._key\n RETURN {_key:u._key, first:u.first, last:u.last, name:u.name, email:u.email, username:u.username, photo:u.photo }\n )\n FILTER LENGTH(u) > 1\n LIMIT 1\n RETURN MERGE(c, {users: u})"]);
|
|
13
|
+
|
|
14
|
+
_templateObject2 = function _templateObject2() {
|
|
15
|
+
return data;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
22
|
+
|
|
23
|
+
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; }
|
|
24
|
+
|
|
25
|
+
function _templateObject() {
|
|
26
|
+
var data = _taggedTemplateLiteral(["FOR c IN conversations\n FILTER LENGTH(c.users) == 2 &&\n POSITION(c.users, ", ", false) &&\n POSITION(c.users, ", ", false)\n LET u = (\n FOR g IN c.users\n FOR user IN users\n FILTER user._key == g\n RETURN user\n )\n LIMIT 1\n RETURN MERGE(c, {users: u})"]);
|
|
27
|
+
|
|
28
|
+
_templateObject = function _templateObject() {
|
|
29
|
+
return data;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
return data;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
39
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
40
|
+
*/
|
|
41
|
+
import { createHash, parseId } from '@nlabs/utils';
|
|
42
|
+
import { aql } from 'arangojs';
|
|
43
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
44
|
+
import identity from 'lodash/identity';
|
|
45
|
+
import isEmpty from 'lodash/isEmpty';
|
|
46
|
+
import pick from 'lodash/pick';
|
|
47
|
+
import { getLimit, useDb } from '../utils';
|
|
48
|
+
import { logError } from '../utils/analytics';
|
|
49
|
+
import { getUrlImages } from './images';
|
|
50
|
+
import { getDisplayName } from './users';
|
|
51
|
+
var eventCategory = 'conversations';
|
|
52
|
+
export var getConversationList = function getConversationList(context, from, to) {
|
|
53
|
+
var action = 'getList';
|
|
54
|
+
var database = context.database,
|
|
55
|
+
sessionId = context.userId;
|
|
56
|
+
var limit = getLimit(from, to);
|
|
57
|
+
var aqlQry = "FOR c IN conversations\n FILTER POSITION(c.users, \"".concat(sessionId, "\", false)\n LET u = (\n FOR g IN c.users\n FOR u IN users\n FILTER g == u._key\n RETURN {_key:u._key, first:u.first, last:u.last, name:u.name, email:u.email, username:u.username, photo:u.photo }\n )\n FILTER LENGTH(u) > 1\n ").concat(limit.aql, "\n RETURN {_key:c._key, name: c.name, direct: c.direct, users: u}");
|
|
58
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
59
|
+
return cursor.all();
|
|
60
|
+
}).catch(function (error) {
|
|
61
|
+
return logError({
|
|
62
|
+
action: action,
|
|
63
|
+
category: eventCategory,
|
|
64
|
+
label: 'db_error'
|
|
65
|
+
}, error, context).then(function () {
|
|
66
|
+
return null;
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
export var getDirectConversation = function getDirectConversation(context, userId) {
|
|
71
|
+
var action = 'getDirect';
|
|
72
|
+
var database = context.database,
|
|
73
|
+
sessionId = context.userId;
|
|
74
|
+
var formatUserId = parseId(userId);
|
|
75
|
+
var aqlQry = aql(_templateObject(), sessionId, formatUserId);
|
|
76
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
77
|
+
return cursor.next();
|
|
78
|
+
}).then(function () {
|
|
79
|
+
var conversation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
80
|
+
var _conversation$users = conversation.users,
|
|
81
|
+
users = _conversation$users === void 0 ? [] : _conversation$users;
|
|
82
|
+
|
|
83
|
+
if (users.length) {
|
|
84
|
+
conversation.users = users.map(function (user) {
|
|
85
|
+
var userKey = user._key,
|
|
86
|
+
imgId = user.imgId;
|
|
87
|
+
var thumbUrlData = {
|
|
88
|
+
directory: 'images',
|
|
89
|
+
imgId: imgId,
|
|
90
|
+
isThumb: true,
|
|
91
|
+
type: 'users',
|
|
92
|
+
typeId: userKey
|
|
93
|
+
};
|
|
94
|
+
return _objectSpread({}, user, {
|
|
95
|
+
name: getDisplayName(user),
|
|
96
|
+
thumb: getUrlImages(thumbUrlData)
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return conversation;
|
|
102
|
+
}).catch(function (error) {
|
|
103
|
+
return logError({
|
|
104
|
+
action: action,
|
|
105
|
+
category: eventCategory,
|
|
106
|
+
label: 'db_error'
|
|
107
|
+
}, error, context).then(function () {
|
|
108
|
+
return null;
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
export var getConversation = function getConversation(context, convoId) {
|
|
113
|
+
var action = 'getItem';
|
|
114
|
+
var database = context.database,
|
|
115
|
+
sessionId = context.userId;
|
|
116
|
+
var formatConvoId = parseId(convoId);
|
|
117
|
+
var aqlQry = aql(_templateObject2(), formatConvoId, sessionId);
|
|
118
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
119
|
+
return cursor.next();
|
|
120
|
+
}).then(function () {
|
|
121
|
+
var conversation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
122
|
+
|
|
123
|
+
if (!isEmpty(conversation)) {
|
|
124
|
+
conversation.users = conversation.users.map(function (user) {
|
|
125
|
+
var userKey = user._key,
|
|
126
|
+
imgId = user.imgId;
|
|
127
|
+
var thumbUrlData = {
|
|
128
|
+
directory: 'images',
|
|
129
|
+
imgId: imgId,
|
|
130
|
+
isThumb: true,
|
|
131
|
+
type: 'users',
|
|
132
|
+
typeId: userKey
|
|
133
|
+
};
|
|
134
|
+
return _objectSpread({}, user, {
|
|
135
|
+
name: getDisplayName(user),
|
|
136
|
+
thumb: getUrlImages(thumbUrlData)
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
return conversation;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return {};
|
|
143
|
+
}).catch(function (error) {
|
|
144
|
+
return logError({
|
|
145
|
+
action: action,
|
|
146
|
+
category: eventCategory,
|
|
147
|
+
label: 'db_error'
|
|
148
|
+
}, error, context).then(function () {
|
|
149
|
+
return null;
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
export var updateConversation = function updateConversation(context, item) {
|
|
154
|
+
var action = 'update';
|
|
155
|
+
var database = context.database,
|
|
156
|
+
sessionId = context.userId;
|
|
157
|
+
|
|
158
|
+
var _pick = pick(item, identity),
|
|
159
|
+
direct = _pick.direct,
|
|
160
|
+
id = _pick.id,
|
|
161
|
+
name = _pick.name,
|
|
162
|
+
users = _pick.users;
|
|
163
|
+
|
|
164
|
+
var rcpt = users || [];
|
|
165
|
+
var formatId = item.id || createHash("convo-".concat(sessionId, "-").concat(rcpt.join('')));
|
|
166
|
+
var now = Date.now();
|
|
167
|
+
var update = {
|
|
168
|
+
// Direct message
|
|
169
|
+
direct: !!direct ? direct : undefined,
|
|
170
|
+
modified: now,
|
|
171
|
+
name: !!name ? name : undefined,
|
|
172
|
+
// Users
|
|
173
|
+
users: !!users ? users : undefined
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
var insert = _objectSpread({}, cloneDeep(update), {
|
|
177
|
+
_key: formatId,
|
|
178
|
+
added: now
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
var aqlQry = aql(_templateObject3(), id, insert, update);
|
|
182
|
+
return useDb(database).query(aqlQry).then(function (cursor) {
|
|
183
|
+
return cursor.next();
|
|
184
|
+
}).then(function () {
|
|
185
|
+
var conversation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
186
|
+
return conversation;
|
|
187
|
+
}).catch(function (error) {
|
|
188
|
+
return logError({
|
|
189
|
+
action: action,
|
|
190
|
+
category: eventCategory,
|
|
191
|
+
label: 'db_error'
|
|
192
|
+
}, error, context).then(function () {
|
|
193
|
+
return null;
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2NvbnZlcnNhdGlvbnMudHMiXSwibmFtZXMiOlsiY3JlYXRlSGFzaCIsInBhcnNlSWQiLCJhcWwiLCJjbG9uZURlZXAiLCJpZGVudGl0eSIsImlzRW1wdHkiLCJwaWNrIiwiZ2V0TGltaXQiLCJ1c2VEYiIsImxvZ0Vycm9yIiwiZ2V0VXJsSW1hZ2VzIiwiZ2V0RGlzcGxheU5hbWUiLCJldmVudENhdGVnb3J5IiwiZ2V0Q29udmVyc2F0aW9uTGlzdCIsImNvbnRleHQiLCJmcm9tIiwidG8iLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImxpbWl0IiwiYXFsUXJ5IiwicXVlcnkiLCJ0aGVuIiwiY3Vyc29yIiwiYWxsIiwiY2F0Y2giLCJlcnJvciIsImNhdGVnb3J5IiwibGFiZWwiLCJnZXREaXJlY3RDb252ZXJzYXRpb24iLCJmb3JtYXRVc2VySWQiLCJuZXh0IiwiY29udmVyc2F0aW9uIiwidXNlcnMiLCJsZW5ndGgiLCJtYXAiLCJ1c2VyIiwidXNlcktleSIsIl9rZXkiLCJpbWdJZCIsInRodW1iVXJsRGF0YSIsImRpcmVjdG9yeSIsImlzVGh1bWIiLCJ0eXBlIiwidHlwZUlkIiwibmFtZSIsInRodW1iIiwiZ2V0Q29udmVyc2F0aW9uIiwiY29udm9JZCIsImZvcm1hdENvbnZvSWQiLCJ1cGRhdGVDb252ZXJzYXRpb24iLCJpdGVtIiwiZGlyZWN0IiwiaWQiLCJyY3B0IiwiZm9ybWF0SWQiLCJqb2luIiwibm93IiwiRGF0ZSIsInVwZGF0ZSIsInVuZGVmaW5lZCIsIm1vZGlmaWVkIiwiaW5zZXJ0IiwiYWRkZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBSUEsU0FBUUEsVUFBUixFQUFvQkMsT0FBcEIsUUFBa0MsY0FBbEM7QUFDQSxTQUFRQyxHQUFSLFFBQWtCLFVBQWxCO0FBR0EsT0FBT0MsU0FBUCxNQUFzQixrQkFBdEI7QUFDQSxP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SUFBakI7O0FBTUEsTUFBTXJDLE1BQWdCLEdBQUdwQixHQUFILHFCQUF1QnFELEVBQXZCLEVBQ1hTLE1BRFcsRUFFWEgsTUFGVyxDQUF0QjtBQUtBLFNBQU9yRCxLQUFLLENBQUNVLFFBQUQsQ0FBTCxDQUFnQkssS0FBaEIsQ0FBc0JELE1BQXRCLEVBQ0pFLElBREksQ0FDQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQ1EsSUFBUCxFQUF6QjtBQUFBLEdBREQsRUFFSlQsSUFGSSxDQUVDO0FBQUEsUUFBQ1UsWUFBRCx1RUFBa0MsRUFBbEM7QUFBQSxXQUF5Q0EsWUFBekM7QUFBQSxHQUZELEVBR0pQLEtBSEksQ0FHRSxVQUFDQyxLQUFEO0FBQUEsV0FBa0JuQixRQUFRLENBQUM7QUFDaENRLE1BQUFBLE1BQU0sRUFBTkEsTUFEZ0M7QUFFaENZLE1BQUFBLFFBQVEsRUFBRWpCLGFBRnNCO0FBR2hDa0IsTUFBQUEsS0FBSyxFQUFFO0FBSHlCLEtBQUQsRUFJOUJGLEtBSjhCLEVBSXZCZCxPQUp1QixDQUFSLENBSU5VLElBSk0sQ0FJRDtBQUFBLGFBQU0sSUFBTjtBQUFBLEtBSkMsQ0FBbEI7QUFBQSxHQUhGLENBQVA7QUFRRCxDQW5DTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9hcWwtcXVlcnknO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpZGVudGl0eSBmcm9tICdsb2Rhc2gvaWRlbnRpdHknO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IHBpY2sgZnJvbSAnbG9kYXNoL3BpY2snO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICd0eXBlcy9hdXRoJztcblxuaW1wb3J0IHtBcmFuZ29EQkxpbWl0LCBDb252ZXJzYXRpb25UeXBlLCBJbWFnZVVybERhdGEsIFVzZXJUeXBlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzJztcbmltcG9ydCB7Z2V0VXJsSW1hZ2VzfSBmcm9tICcuL2ltYWdlcyc7XG5pbXBvcnQge2dldERpc3BsYXlOYW1lfSBmcm9tICcuL3VzZXJzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2NvbnZlcnNhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9uTGlzdCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRMaXN0JztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGMgSU4gY29udmVyc2F0aW9uc1xuICAgIEZJTFRFUiBQT1NJVElPTihjLnVzZXJzLCBcIiR7c2Vzc2lvbklkfVwiLCBmYWxzZSlcbiAgICBMRVQgdSA9IChcbiAgICAgIEZPUiBnIElOIGMudXNlcnNcbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgZyA9PSB1Ll9rZXlcbiAgICAgIFJFVFVSTiB7X2tleTp1Ll9rZXksIGZpcnN0OnUuZmlyc3QsIGxhc3Q6dS5sYXN0LCBuYW1lOnUubmFtZSwgZW1haWw6dS5lbWFpbCwgdXNlcm5hbWU6dS51c2VybmFtZSwgcGhvdG86dS5waG90byB9XG4gICAgKVxuICAgIEZJTFRFUiBMRU5HVEgodSkgPiAxXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIHtfa2V5OmMuX2tleSwgbmFtZTogYy5uYW1lLCBkaXJlY3Q6IGMuZGlyZWN0LCB1c2VyczogdX1gO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldERpcmVjdCc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYyBJTiBjb252ZXJzYXRpb25zXG4gICAgRklMVEVSIExFTkdUSChjLnVzZXJzKSA9PSAyICYmXG4gICAgUE9TSVRJT04oYy51c2VycywgJHtzZXNzaW9uSWR9LCBmYWxzZSkgJiZcbiAgICBQT1NJVElPTihjLnVzZXJzLCAke2Zvcm1hdFVzZXJJZH0sIGZhbHNlKVxuICAgIExFVCB1ID0gKFxuICAgICAgRk9SIGcgSU4gYy51c2Vyc1xuICAgICAgRk9SIHVzZXIgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiB1c2VyLl9rZXkgPT0gZ1xuICAgICAgUkVUVVJOIHVzZXJcbiAgICApXG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBNRVJHRShjLCB7dXNlcnM6IHV9KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCB7dXNlcnMgPSBbXX0gPSBjb252ZXJzYXRpb247XG5cbiAgICAgIGlmKHVzZXJzLmxlbmd0aCkge1xuICAgICAgICBjb252ZXJzYXRpb24udXNlcnMgPSB1c2Vycy5tYXAoKHVzZXI6IFVzZXJUeXBlKSA9PiB7XG4gICAgICAgICAgY29uc3Qge19rZXk6IHVzZXJLZXksIGltZ0lkfSA9IHVzZXI7XG4gICAgICAgICAgY29uc3QgdGh1bWJVcmxEYXRhOiBJbWFnZVVybERhdGEgPSB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6ICdpbWFnZXMnLFxuICAgICAgICAgICAgaW1nSWQsXG4gICAgICAgICAgICBpc1RodW1iOiB0cnVlLFxuICAgICAgICAgICAgdHlwZTogJ3VzZXJzJyxcbiAgICAgICAgICAgIHR5cGVJZDogdXNlcktleVxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgICBuYW1lOiBnZXREaXNwbGF5TmFtZSh1c2VyKSxcbiAgICAgICAgICAgIHRodW1iOiBnZXRVcmxJbWFnZXModGh1bWJVcmxEYXRhKVxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udmVyc2F0aW9uO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252b0lkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZvSWQpO1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGMgSU4gY29udmVyc2F0aW9uc1xuICAgIEZJTFRFUiAke2Zvcm1hdENvbnZvSWR9ID09IGMuX2tleSAmJiBJU19MSVNUKGMudXNlcnMpICYmIFBPU0lUSU9OKGMudXNlcnMsICR7c2Vzc2lvbklkfSwgZmFsc2UpXG4gICAgTEVUIHUgPSAoXG4gICAgICBGT1IgZyBJTiBjLnVzZXJzXG4gICAgICBGT1IgdSBJTiB1c2Vyc1xuICAgICAgRklMVEVSIGcgPT0gdS5fa2V5XG4gICAgICBSRVRVUk4ge19rZXk6dS5fa2V5LCBmaXJzdDp1LmZpcnN0LCBsYXN0OnUubGFzdCwgbmFtZTp1Lm5hbWUsIGVtYWlsOnUuZW1haWwsIHVzZXJuYW1lOnUudXNlcm5hbWUsIHBob3RvOnUucGhvdG8gfVxuICAgIClcbiAgICBGSUxURVIgTEVOR1RIKHUpID4gMVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXJzOiB1fSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUgPSB7fSkgPT4ge1xuICAgICAgaWYoIWlzRW1wdHkoY29udmVyc2F0aW9uKSkge1xuICAgICAgICBjb252ZXJzYXRpb24udXNlcnMgPSBjb252ZXJzYXRpb24udXNlcnMubWFwKCh1c2VyOiBVc2VyVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtfa2V5OiB1c2VyS2V5LCBpbWdJZH0gPSB1c2VyO1xuICAgICAgICAgIGNvbnN0IHRodW1iVXJsRGF0YTogSW1hZ2VVcmxEYXRhID0ge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiAnaW1hZ2VzJyxcbiAgICAgICAgICAgIGltZ0lkLFxuICAgICAgICAgICAgaXNUaHVtYjogdHJ1ZSxcbiAgICAgICAgICAgIHR5cGU6ICd1c2VycycsXG4gICAgICAgICAgICB0eXBlSWQ6IHVzZXJLZXlcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgbmFtZTogZ2V0RGlzcGxheU5hbWUodXNlciksXG4gICAgICAgICAgICB0aHVtYjogZ2V0VXJsSW1hZ2VzKHRodW1iVXJsRGF0YSlcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW0pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCB7ZGlyZWN0LCBpZCwgbmFtZSwgdXNlcnN9ID0gcGljayhpdGVtLCBpZGVudGl0eSk7XG4gIGNvbnN0IHJjcHQ6IFVzZXJUeXBlW10gPSB1c2VycyB8fCBbXTtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IGl0ZW0uaWQgfHwgY3JlYXRlSGFzaChgY29udm8tJHtzZXNzaW9uSWR9LSR7cmNwdC5qb2luKCcnKX1gKTtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCB1cGRhdGU6IGFueSA9IHtcbiAgICAvLyBEaXJlY3QgbWVzc2FnZVxuICAgIGRpcmVjdDogISFkaXJlY3QgPyBkaXJlY3QgOiB1bmRlZmluZWQsXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBuYW1lOiAhIW5hbWUgPyBuYW1lIDogdW5kZWZpbmVkLFxuICAgIC8vIFVzZXJzXG4gICAgdXNlcnM6ICEhdXNlcnMgPyB1c2VycyA6IHVuZGVmaW5lZFxuICB9O1xuXG4gIGNvbnN0IGluc2VydDogYW55ID0ge1xuICAgIC4uLmNsb25lRGVlcCh1cGRhdGUpLFxuICAgIF9rZXk6IGZvcm1hdElkLFxuICAgIGFkZGVkOiBub3dcbiAgfTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7X2tleTogJHtpZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBJTiBjb252ZXJzYXRpb25zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUgPSB7fSkgPT4gY29udmVyc2F0aW9uKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DynamoDB } from 'aws-sdk';
|
|
2
|
+
export declare const dynamoGet: (params: DynamoDB.GetItemInput) => Promise<DynamoDB.GetItemOutput>;
|
|
3
|
+
export declare const dynamoGetList: (params: DynamoDB.QueryInput, index: any) => Promise<DynamoDB.GetItemOutput[]>;
|
|
4
|
+
export declare const dynamoPut: (params: DynamoDB.PutItemInput) => Promise<DynamoDB.PutItemOutput>;
|
|
5
|
+
export declare const dynamoUpdate: (params: DynamoDB.UpdateItemInput) => Promise<DynamoDB.UpdateItemOutput>;
|
|
6
|
+
export declare const dynamoPutList: (params: DynamoDB.BatchWriteItemInput) => Promise<DynamoDB.BatchWriteItemOutput>;
|
|
7
|
+
export declare const dynamoDel: (params: DynamoDB.DeleteItemInput) => Promise<DynamoDB.DeleteItemOutput>;
|
|
8
|
+
export declare const parseDynamo: (results: DynamoDB.QueryOutput) => any[];
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
2
|
+
|
|
3
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
7
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
8
|
+
*/
|
|
9
|
+
import aws, { DynamoDB } from 'aws-sdk';
|
|
10
|
+
import { Config } from '../config'; // const eventCategory: string = 'dynamodb';
|
|
11
|
+
|
|
12
|
+
export var dynamoGet = function dynamoGet(params) {
|
|
13
|
+
return new Promise(function (resolve, reject) {
|
|
14
|
+
aws.config.update(Config.get('aws'));
|
|
15
|
+
var dynamodb = new DynamoDB();
|
|
16
|
+
params.ConsistentRead = false;
|
|
17
|
+
dynamodb.getItem(params, function (error, results) {
|
|
18
|
+
if (error) {
|
|
19
|
+
return reject(error);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return resolve(results);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
export var dynamoGetList = function dynamoGetList(params, index) {
|
|
27
|
+
return new Promise(function (resolve, reject) {
|
|
28
|
+
aws.config.update(Config.get('aws'));
|
|
29
|
+
var dynamodb = new DynamoDB();
|
|
30
|
+
var consistentRead = params.ConsistentRead;
|
|
31
|
+
|
|
32
|
+
var updatedParams = _objectSpread({}, params);
|
|
33
|
+
|
|
34
|
+
if (index) {
|
|
35
|
+
updatedParams.ExclusiveStartKey = index;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (!consistentRead) {
|
|
39
|
+
updatedParams.ConsistentRead = false;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
dynamodb.query(updatedParams, function (error, output) {
|
|
43
|
+
if (error) {
|
|
44
|
+
return reject(error);
|
|
45
|
+
} // Save list of items
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
var list = parseDynamo(output);
|
|
49
|
+
var lastKey = output.LastEvaluatedKey;
|
|
50
|
+
|
|
51
|
+
if (lastKey !== undefined) {
|
|
52
|
+
// Save last index before looping
|
|
53
|
+
return dynamoGetList(params, lastKey);
|
|
54
|
+
} // Query complete, return final list
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
return resolve(list);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
export var dynamoPut = function dynamoPut(params) {
|
|
62
|
+
return new Promise(function (resolve, reject) {
|
|
63
|
+
aws.config.update(Config.get('aws'));
|
|
64
|
+
var dynamodb = new DynamoDB();
|
|
65
|
+
dynamodb.putItem(params, function (error, output) {
|
|
66
|
+
if (error) {
|
|
67
|
+
return reject(error);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return resolve(output);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
export var dynamoUpdate = function dynamoUpdate(params) {
|
|
75
|
+
return new Promise(function (resolve, reject) {
|
|
76
|
+
aws.config.update(Config.get('aws'));
|
|
77
|
+
var dynamodb = new DynamoDB();
|
|
78
|
+
dynamodb.updateItem(params, function (error, output) {
|
|
79
|
+
if (error) {
|
|
80
|
+
return reject(error);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return resolve(output);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
export var dynamoPutList = function dynamoPutList(params) {
|
|
88
|
+
return new Promise(function (resolve, reject) {
|
|
89
|
+
aws.config.update(Config.get('aws'));
|
|
90
|
+
var dynamodb = new DynamoDB();
|
|
91
|
+
dynamodb.batchWriteItem(params, function (error, output) {
|
|
92
|
+
if (error) {
|
|
93
|
+
return reject(error);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return resolve(output);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
export var dynamoDel = function dynamoDel(params) {
|
|
101
|
+
return new Promise(function (resolve, reject) {
|
|
102
|
+
aws.config.update(Config.get('aws'));
|
|
103
|
+
var dynamodb = new DynamoDB();
|
|
104
|
+
dynamodb.deleteItem(params, function (error, output) {
|
|
105
|
+
if (error) {
|
|
106
|
+
return reject(error);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return resolve(output);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
export var parseDynamo = function parseDynamo(results) {
|
|
114
|
+
var items = results.Items;
|
|
115
|
+
var data = [];
|
|
116
|
+
|
|
117
|
+
for (var idx = 0, len = items.length; idx < len; idx++) {
|
|
118
|
+
var tmp = items[idx];
|
|
119
|
+
var obj = {};
|
|
120
|
+
var key = void 0;
|
|
121
|
+
|
|
122
|
+
for (key in tmp) {
|
|
123
|
+
if (tmp.hasOwnProperty(key)) {
|
|
124
|
+
if (tmp[key].S) {
|
|
125
|
+
obj[key] = tmp[key].S.toString();
|
|
126
|
+
} else if (tmp[key].N) {
|
|
127
|
+
obj[key] = parseFloat(tmp[key].N);
|
|
128
|
+
} else {
|
|
129
|
+
obj[key] = tmp[key].B;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
data.push(obj);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return data;
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2R5bmFtb2RiLnRzIl0sIm5hbWVzIjpbImF3cyIsIkR5bmFtb0RCIiwiQ29uZmlnIiwiZHluYW1vR2V0IiwicGFyYW1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb25maWciLCJ1cGRhdGUiLCJnZXQiLCJkeW5hbW9kYiIsIkNvbnNpc3RlbnRSZWFkIiwiZ2V0SXRlbSIsImVycm9yIiwicmVzdWx0cyIsImR5bmFtb0dldExpc3QiLCJpbmRleCIsImNvbnNpc3RlbnRSZWFkIiwidXBkYXRlZFBhcmFtcyIsIkV4Y2x1c2l2ZVN0YXJ0S2V5IiwicXVlcnkiLCJvdXRwdXQiLCJsaXN0IiwicGFyc2VEeW5hbW8iLCJsYXN0S2V5IiwiTGFzdEV2YWx1YXRlZEtleSIsInVuZGVmaW5lZCIsImR5bmFtb1B1dCIsInB1dEl0ZW0iLCJkeW5hbW9VcGRhdGUiLCJ1cGRhdGVJdGVtIiwiZHluYW1vUHV0TGlzdCIsImJhdGNoV3JpdGVJdGVtIiwiZHluYW1vRGVsIiwiZGVsZXRlSXRlbSIsIml0ZW1zIiwiSXRlbXMiLCJkYXRhIiwiaWR4IiwibGVuIiwibGVuZ3RoIiwidG1wIiwib2JqIiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJTIiwidG9TdHJpbmciLCJOIiwicGFyc2VGbG9hdCIsIkIiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7QUFJQSxPQUFPQSxHQUFQLElBQWFDLFFBQWIsUUFBNEIsU0FBNUI7QUFnQkEsU0FBUUMsTUFBUixRQUFxQixXQUFyQixDLENBRUE7O0FBRUEsT0FBTyxJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDQyxNQUFELEVBQWtEO0FBQ3pFLFNBQU8sSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUN0Q1AsSUFBQUEsR0FBRyxDQUFDUSxNQUFKLENBQVdDLE1BQVgsQ0FBa0JQLE1BQU0sQ0FBQ1EsR0FBUCxDQUFXLEtBQVgsQ0FBbEI7QUFDQSxRQUFNQyxRQUFrQixHQUFHLElBQUlWLFFBQUosRUFBM0I7QUFDQUcsSUFBQUEsTUFBTSxDQUFDUSxjQUFQLEdBQXdCLEtBQXhCO0FBRUFELElBQUFBLFFBQVEsQ0FBQ0UsT0FBVCxDQUFpQlQsTUFBakIsRUFBeUIsVUFBQ1UsS0FBRCxFQUFlQyxPQUFmLEVBQTBDO0FBQ2pFLFVBQUdELEtBQUgsRUFBVTtBQUNSLGVBQU9QLE1BQU0sQ0FBQ08sS0FBRCxDQUFiO0FBQ0Q7O0FBRUQsYUFBT1IsT0FBTyxDQUFDUyxPQUFELENBQWQ7QUFDRCxLQU5EO0FBT0QsR0FaTSxDQUFQO0FBYUQsQ0FkTTtBQWdCUCxPQUFPLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ1osTUFBRCxFQUFxQmEsS0FBckIsRUFBeUQ7QUFDcEYsU0FBTyxJQUFJWixPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQ3RDUCxJQUFBQSxHQUFHLENBQUNRLE1BQUosQ0FBV0MsTUFBWCxDQUFrQlAsTUFBTSxDQUFDUSxHQUFQLENBQVcsS0FBWCxDQUFsQjtBQUNBLFFBQU1DLFFBQWtCLEdBQUcsSUFBSVYsUUFBSixFQUEzQjtBQUZzQyxRQUdmaUIsY0FIZSxHQUdHZCxNQUhILENBRy9CUSxjQUgrQjs7QUFJdEMsUUFBTU8sYUFBYSxxQkFBT2YsTUFBUCxDQUFuQjs7QUFFQSxRQUFHYSxLQUFILEVBQVU7QUFDUkUsTUFBQUEsYUFBYSxDQUFDQyxpQkFBZCxHQUFrQ0gsS0FBbEM7QUFDRDs7QUFFRCxRQUFHLENBQUNDLGNBQUosRUFBb0I7QUFDbEJDLE1BQUFBLGFBQWEsQ0FBQ1AsY0FBZCxHQUErQixLQUEvQjtBQUNEOztBQUVERCxJQUFBQSxRQUFRLENBQUNVLEtBQVQsQ0FBZUYsYUFBZixFQUE4QixVQUFDTCxLQUFELEVBQWVRLE1BQWYsRUFBdUM7QUFDbkUsVUFBR1IsS0FBSCxFQUFVO0FBQ1IsZUFBT1AsTUFBTSxDQUFDTyxLQUFELENBQWI7QUFDRCxPQUhrRSxDQUluRTs7O0FBQ0EsVUFBTVMsSUFBVyxHQUFHQyxXQUFXLENBQUNGLE1BQUQsQ0FBL0I7QUFMbUUsVUFNMUNHLE9BTjBDLEdBTS9CSCxNQU4rQixDQU01REksZ0JBTjREOztBQVFuRSxVQUFHRCxPQUFPLEtBQUtFLFNBQWYsRUFBMEI7QUFDeEI7QUFDQSxlQUFPWCxhQUFhLENBQUNaLE1BQUQsRUFBU3FCLE9BQVQsQ0FBcEI7QUFDRCxPQVhrRSxDQWFuRTs7O0FBQ0EsYUFBT25CLE9BQU8sQ0FBQ2lCLElBQUQsQ0FBZDtBQUNELEtBZkQ7QUFnQkQsR0E5Qk0sQ0FBUDtBQStCRCxDQWhDTTtBQWtDUCxPQUFPLElBQU1LLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQUN4QixNQUFELEVBQWtEO0FBQ3pFLFNBQU8sSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUN0Q1AsSUFBQUEsR0FBRyxDQUFDUSxNQUFKLENBQVdDLE1BQVgsQ0FBa0JQLE1BQU0sQ0FBQ1EsR0FBUCxDQUFXLEtBQVgsQ0FBbEI7QUFDQSxRQUFNQyxRQUFrQixHQUFHLElBQUlWLFFBQUosRUFBM0I7QUFFQVUsSUFBQUEsUUFBUSxDQUFDa0IsT0FBVCxDQUFpQnpCLE1BQWpCLEVBQXlCLFVBQUNVLEtBQUQsRUFBUVEsTUFBUixFQUFrQztBQUN6RCxVQUFHUixLQUFILEVBQVU7QUFDUixlQUFPUCxNQUFNLENBQUNPLEtBQUQsQ0FBYjtBQUNEOztBQUNELGFBQU9SLE9BQU8sQ0FBQ2dCLE1BQUQsQ0FBZDtBQUNELEtBTEQ7QUFNRCxHQVZNLENBQVA7QUFXRCxDQVpNO0FBY1AsT0FBTyxJQUFNUSxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFDMUIsTUFBRCxFQUF3RDtBQUNsRixTQUFPLElBQUlDLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBcUI7QUFDdENQLElBQUFBLEdBQUcsQ0FBQ1EsTUFBSixDQUFXQyxNQUFYLENBQWtCUCxNQUFNLENBQUNRLEdBQVAsQ0FBVyxLQUFYLENBQWxCO0FBQ0EsUUFBTUMsUUFBa0IsR0FBRyxJQUFJVixRQUFKLEVBQTNCO0FBRUFVLElBQUFBLFFBQVEsQ0FBQ29CLFVBQVQsQ0FBb0IzQixNQUFwQixFQUE0QixVQUFDVSxLQUFELEVBQWVRLE1BQWYsRUFBNEM7QUFDdEUsVUFBR1IsS0FBSCxFQUFVO0FBQ1IsZUFBT1AsTUFBTSxDQUFDTyxLQUFELENBQWI7QUFDRDs7QUFDRCxhQUFPUixPQUFPLENBQUNnQixNQUFELENBQWQ7QUFDRCxLQUxEO0FBTUQsR0FWTSxDQUFQO0FBV0QsQ0FaTTtBQWNQLE9BQU8sSUFBTVUsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDNUIsTUFBRCxFQUFnRTtBQUMzRixTQUFPLElBQUlDLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBcUI7QUFDdENQLElBQUFBLEdBQUcsQ0FBQ1EsTUFBSixDQUFXQyxNQUFYLENBQWtCUCxNQUFNLENBQUNRLEdBQVAsQ0FBVyxLQUFYLENBQWxCO0FBQ0EsUUFBTUMsUUFBa0IsR0FBRyxJQUFJVixRQUFKLEVBQTNCO0FBRUFVLElBQUFBLFFBQVEsQ0FBQ3NCLGNBQVQsQ0FBd0I3QixNQUF4QixFQUFnQyxVQUFDVSxLQUFELEVBQWVRLE1BQWYsRUFBZ0Q7QUFDOUUsVUFBR1IsS0FBSCxFQUFVO0FBQ1IsZUFBT1AsTUFBTSxDQUFDTyxLQUFELENBQWI7QUFDRDs7QUFDRCxhQUFPUixPQUFPLENBQUNnQixNQUFELENBQWQ7QUFDRCxLQUxEO0FBTUQsR0FWTSxDQUFQO0FBV0QsQ0FaTTtBQWNQLE9BQU8sSUFBTVksU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQzlCLE1BQUQsRUFBd0Q7QUFDL0UsU0FBTyxJQUFJQyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQ3RDUCxJQUFBQSxHQUFHLENBQUNRLE1BQUosQ0FBV0MsTUFBWCxDQUFrQlAsTUFBTSxDQUFDUSxHQUFQLENBQVcsS0FBWCxDQUFsQjtBQUNBLFFBQU1DLFFBQWtCLEdBQUcsSUFBSVYsUUFBSixFQUEzQjtBQUVBVSxJQUFBQSxRQUFRLENBQUN3QixVQUFULENBQW9CL0IsTUFBcEIsRUFBNEIsVUFBQ1UsS0FBRCxFQUFRUSxNQUFSLEVBQXFDO0FBQy9ELFVBQUdSLEtBQUgsRUFBVTtBQUNSLGVBQU9QLE1BQU0sQ0FBQ08sS0FBRCxDQUFiO0FBQ0Q7O0FBQ0QsYUFBT1IsT0FBTyxDQUFDZ0IsTUFBRCxDQUFkO0FBQ0QsS0FMRDtBQU1ELEdBVk0sQ0FBUDtBQVdELENBWk07QUFjUCxPQUFPLElBQU1FLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNULE9BQUQsRUFBaUM7QUFBQSxNQUM1Q3FCLEtBRDRDLEdBQ25DckIsT0FEbUMsQ0FDbkRzQixLQURtRDtBQUUxRCxNQUFNQyxJQUFXLEdBQUcsRUFBcEI7O0FBRUEsT0FBSSxJQUFJQyxHQUFXLEdBQUcsQ0FBbEIsRUFBcUJDLEdBQUcsR0FBR0osS0FBSyxDQUFDSyxNQUFyQyxFQUE2Q0YsR0FBRyxHQUFHQyxHQUFuRCxFQUF3REQsR0FBRyxFQUEzRCxFQUErRDtBQUM3RCxRQUFNRyxHQUFHLEdBQUdOLEtBQUssQ0FBQ0csR0FBRCxDQUFqQjtBQUNBLFFBQU1JLEdBQUcsR0FBRyxFQUFaO0FBQ0EsUUFBSUMsR0FBRyxTQUFQOztBQUVBLFNBQUlBLEdBQUosSUFBV0YsR0FBWCxFQUFnQjtBQUNkLFVBQUdBLEdBQUcsQ0FBQ0csY0FBSixDQUFtQkQsR0FBbkIsQ0FBSCxFQUE0QjtBQUMxQixZQUFHRixHQUFHLENBQUNFLEdBQUQsQ0FBSCxDQUFTRSxDQUFaLEVBQWU7QUFDYkgsVUFBQUEsR0FBRyxDQUFDQyxHQUFELENBQUgsR0FBV0YsR0FBRyxDQUFDRSxHQUFELENBQUgsQ0FBU0UsQ0FBVCxDQUFXQyxRQUFYLEVBQVg7QUFDRCxTQUZELE1BRU8sSUFBR0wsR0FBRyxDQUFDRSxHQUFELENBQUgsQ0FBU0ksQ0FBWixFQUFlO0FBQ3BCTCxVQUFBQSxHQUFHLENBQUNDLEdBQUQsQ0FBSCxHQUFXSyxVQUFVLENBQUNQLEdBQUcsQ0FBQ0UsR0FBRCxDQUFILENBQVNJLENBQVYsQ0FBckI7QUFDRCxTQUZNLE1BRUE7QUFDTEwsVUFBQUEsR0FBRyxDQUFDQyxHQUFELENBQUgsR0FBV0YsR0FBRyxDQUFDRSxHQUFELENBQUgsQ0FBU00sQ0FBcEI7QUFDRDtBQUNGO0FBQ0Y7O0FBRURaLElBQUFBLElBQUksQ0FBQ2EsSUFBTCxDQUFVUixHQUFWO0FBQ0Q7O0FBRUQsU0FBT0wsSUFBUDtBQUNELENBekJNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBhd3MsIHtEeW5hbW9EQn0gZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQge1xuICBCYXRjaFdyaXRlSXRlbUlucHV0LFxuICBCYXRjaFdyaXRlSXRlbU91dHB1dCxcbiAgRGVsZXRlSXRlbUlucHV0LFxuICBEZWxldGVJdGVtT3V0cHV0LFxuICBHZXRJdGVtSW5wdXQsXG4gIEdldEl0ZW1PdXRwdXQsXG4gIFB1dEl0ZW1JbnB1dCxcbiAgUHV0SXRlbU91dHB1dCxcbiAgUXVlcnlJbnB1dCxcbiAgUXVlcnlPdXRwdXQsXG4gIFVwZGF0ZUl0ZW1JbnB1dCxcbiAgVXBkYXRlSXRlbU91dHB1dFxufSBmcm9tICdhd3Mtc2RrL2NsaWVudHMvZHluYW1vZGInO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2R5bmFtb2RiJztcblxuZXhwb3J0IGNvbnN0IGR5bmFtb0dldCA9IChwYXJhbXM6IEdldEl0ZW1JbnB1dCk6IFByb21pc2U8R2V0SXRlbU91dHB1dD4gPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgICBjb25zdCBkeW5hbW9kYjogRHluYW1vREIgPSBuZXcgRHluYW1vREIoKTtcbiAgICBwYXJhbXMuQ29uc2lzdGVudFJlYWQgPSBmYWxzZTtcblxuICAgIGR5bmFtb2RiLmdldEl0ZW0ocGFyYW1zLCAoZXJyb3I6IEVycm9yLCByZXN1bHRzOiBHZXRJdGVtT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUocmVzdWx0cyk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGR5bmFtb0dldExpc3QgPSAocGFyYW1zOiBRdWVyeUlucHV0LCBpbmRleCk6IFByb21pc2U8R2V0SXRlbU91dHB1dFtdPiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IGR5bmFtb2RiOiBEeW5hbW9EQiA9IG5ldyBEeW5hbW9EQigpO1xuICAgIGNvbnN0IHtDb25zaXN0ZW50UmVhZDogY29uc2lzdGVudFJlYWR9ID0gcGFyYW1zO1xuICAgIGNvbnN0IHVwZGF0ZWRQYXJhbXMgPSB7Li4ucGFyYW1zfTtcblxuICAgIGlmKGluZGV4KSB7XG4gICAgICB1cGRhdGVkUGFyYW1zLkV4Y2x1c2l2ZVN0YXJ0S2V5ID0gaW5kZXg7XG4gICAgfVxuXG4gICAgaWYoIWNvbnNpc3RlbnRSZWFkKSB7XG4gICAgICB1cGRhdGVkUGFyYW1zLkNvbnNpc3RlbnRSZWFkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZHluYW1vZGIucXVlcnkodXBkYXRlZFBhcmFtcywgKGVycm9yOiBFcnJvciwgb3V0cHV0OiBRdWVyeU91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICAvLyBTYXZlIGxpc3Qgb2YgaXRlbXNcbiAgICAgIGNvbnN0IGxpc3Q6IGFueVtdID0gcGFyc2VEeW5hbW8ob3V0cHV0KTtcbiAgICAgIGNvbnN0IHtMYXN0RXZhbHVhdGVkS2V5OiBsYXN0S2V5fSA9IG91dHB1dDtcblxuICAgICAgaWYobGFzdEtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIFNhdmUgbGFzdCBpbmRleCBiZWZvcmUgbG9vcGluZ1xuICAgICAgICByZXR1cm4gZHluYW1vR2V0TGlzdChwYXJhbXMsIGxhc3RLZXkpO1xuICAgICAgfVxuXG4gICAgICAvLyBRdWVyeSBjb21wbGV0ZSwgcmV0dXJuIGZpbmFsIGxpc3RcbiAgICAgIHJldHVybiByZXNvbHZlKGxpc3QpO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9QdXQgPSAocGFyYW1zOiBQdXRJdGVtSW5wdXQpOiBQcm9taXNlPFB1dEl0ZW1PdXRwdXQ+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBhd3MuY29uZmlnLnVwZGF0ZShDb25maWcuZ2V0KCdhd3MnKSk7XG4gICAgY29uc3QgZHluYW1vZGI6IER5bmFtb0RCID0gbmV3IER5bmFtb0RCKCk7XG5cbiAgICBkeW5hbW9kYi5wdXRJdGVtKHBhcmFtcywgKGVycm9yLCBvdXRwdXQ6IFB1dEl0ZW1PdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZHluYW1vVXBkYXRlID0gKHBhcmFtczogVXBkYXRlSXRlbUlucHV0KTogUHJvbWlzZTxVcGRhdGVJdGVtT3V0cHV0PiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IGR5bmFtb2RiOiBEeW5hbW9EQiA9IG5ldyBEeW5hbW9EQigpO1xuXG4gICAgZHluYW1vZGIudXBkYXRlSXRlbShwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogVXBkYXRlSXRlbU91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9QdXRMaXN0ID0gKHBhcmFtczogQmF0Y2hXcml0ZUl0ZW1JbnB1dCk6IFByb21pc2U8QmF0Y2hXcml0ZUl0ZW1PdXRwdXQ+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBhd3MuY29uZmlnLnVwZGF0ZShDb25maWcuZ2V0KCdhd3MnKSk7XG4gICAgY29uc3QgZHluYW1vZGI6IER5bmFtb0RCID0gbmV3IER5bmFtb0RCKCk7XG5cbiAgICBkeW5hbW9kYi5iYXRjaFdyaXRlSXRlbShwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogQmF0Y2hXcml0ZUl0ZW1PdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZHluYW1vRGVsID0gKHBhcmFtczogRGVsZXRlSXRlbUlucHV0KTogUHJvbWlzZTxEZWxldGVJdGVtT3V0cHV0PiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IGR5bmFtb2RiOiBEeW5hbW9EQiA9IG5ldyBEeW5hbW9EQigpO1xuXG4gICAgZHluYW1vZGIuZGVsZXRlSXRlbShwYXJhbXMsIChlcnJvciwgb3V0cHV0OiBEZWxldGVJdGVtT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlRHluYW1vID0gKHJlc3VsdHM6IFF1ZXJ5T3V0cHV0KTogYW55W10gPT4ge1xuICBjb25zdCB7SXRlbXM6IGl0ZW1zfSA9IHJlc3VsdHM7XG4gIGNvbnN0IGRhdGE6IGFueVtdID0gW107XG5cbiAgZm9yKGxldCBpZHg6IG51bWJlciA9IDAsIGxlbiA9IGl0ZW1zLmxlbmd0aDsgaWR4IDwgbGVuOyBpZHgrKykge1xuICAgIGNvbnN0IHRtcCA9IGl0ZW1zW2lkeF07XG4gICAgY29uc3Qgb2JqID0ge307XG4gICAgbGV0IGtleTtcblxuICAgIGZvcihrZXkgaW4gdG1wKSB7XG4gICAgICBpZih0bXAuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBpZih0bXBba2V5XS5TKSB7XG4gICAgICAgICAgb2JqW2tleV0gPSB0bXBba2V5XS5TLnRvU3RyaW5nKCk7XG4gICAgICAgIH0gZWxzZSBpZih0bXBba2V5XS5OKSB7XG4gICAgICAgICAgb2JqW2tleV0gPSBwYXJzZUZsb2F0KHRtcFtrZXldLk4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9ialtrZXldID0gdG1wW2tleV0uQjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRhdGEucHVzaChvYmopO1xuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59O1xuXG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SES } from 'aws-sdk';
|
|
2
|
+
import { AppType } from '../types/apps';
|
|
3
|
+
import { EmailType } from '../types/email';
|
|
4
|
+
export declare const appTemplate: (app: AppType, message?: string, vars?: {}) => string;
|
|
5
|
+
export declare const sendEmail: (params: EmailType) => Promise<boolean>;
|
|
6
|
+
export declare const sendTemplate: (templateName: string, emailParams: EmailType) => Promise<boolean>;
|
|
7
|
+
export declare const sesSend: (params: SES.SendEmailRequest) => Promise<SES.SendEmailResponse>;
|