@nlabs/reaktor 0.5.4 → 0.8.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/README.md +7 -7
- package/lib/actions/conversations.js +68 -69
- package/lib/actions/dynamodb.js +22 -33
- package/lib/actions/email.js +32 -30
- package/lib/actions/files.js +39 -58
- package/lib/actions/groups.js +33 -28
- package/lib/actions/images.js +71 -82
- package/lib/actions/index.js +54 -37
- package/lib/actions/ios.js +21 -40
- package/lib/actions/locations.js +25 -22
- package/lib/actions/messages.js +31 -45
- package/lib/actions/notifications.js +13 -20
- package/lib/actions/payments.js +40 -52
- package/lib/actions/posts.js +68 -48
- package/lib/actions/reactions.js +29 -52
- package/lib/actions/s3.js +21 -18
- package/lib/actions/search.js +26 -40
- package/lib/actions/sms.js +24 -21
- package/lib/actions/statistics.js +14 -21
- package/lib/actions/subscription.js +27 -24
- package/lib/actions/tags.js +49 -56
- package/lib/actions/users.js +92 -106
- package/lib/actions/websockets.js +28 -41
- package/lib/config.js +21 -18
- package/lib/index.js +24 -22
- package/lib/lambdas/actions/websockets.js +21 -45
- package/lib/lambdas/authorizer.js +16 -24
- package/lib/lambdas/connection.js +18 -43
- package/lib/lambdas/utils/message.js +20 -17
- package/lib/lambdas/utils/websocket.js +33 -25
- package/lib/templates/email/layout.js +16 -9
- package/lib/templates/email/passwordForgot.js +16 -9
- package/lib/templates/email/passwordRecovery.js +16 -9
- package/lib/templates/email/verifyEmail.js +16 -9
- package/lib/templates/email/welcome.js +16 -9
- package/lib/templates/sms/passwordForgot.js +16 -9
- package/lib/templates/sms/passwordRecovery.js +16 -9
- package/lib/templates/sms/verifyEmail.js +16 -9
- package/lib/templates/sms/verifyPhone.js +16 -9
- package/lib/templates/sms/welcome.js +16 -9
- package/lib/types/apps.js +14 -5
- package/lib/types/arangodb.js +14 -5
- package/lib/types/auth.js +14 -5
- package/lib/types/connections.js +14 -5
- package/lib/types/conversations.js +14 -5
- package/lib/types/email.js +14 -5
- package/lib/types/files.js +14 -5
- package/lib/types/google.js +14 -5
- package/lib/types/groups.js +14 -5
- package/lib/types/images.js +14 -5
- package/lib/types/index.js +50 -35
- package/lib/types/locations.js +14 -5
- package/lib/types/messages.js +14 -5
- package/lib/types/notifications.js +14 -5
- package/lib/types/payments.js +14 -5
- package/lib/types/posts.js +14 -5
- package/lib/types/statistics.js +14 -5
- package/lib/types/tags.js +14 -5
- package/lib/types/users.js +14 -5
- package/lib/types/websocket.js +14 -5
- package/lib/utils/analytics.js +24 -44
- package/lib/utils/arangodb.js +15 -22
- package/lib/utils/auth.js +22 -36
- package/lib/utils/graphql.js +20 -17
- package/lib/utils/index.js +26 -23
- package/lib/utils/objects.js +22 -19
- package/lib/utils/session.js +20 -17
- package/package.json +31 -33
- package/.eslintrc +0 -18
- package/lib/actions/conversations.d.ts +0 -14
- package/lib/actions/dynamodb.d.ts +0 -8
- package/lib/actions/email.d.ts +0 -7
- package/lib/actions/files.d.ts +0 -16
- package/lib/actions/groups.d.ts +0 -14
- package/lib/actions/images.d.ts +0 -22
- package/lib/actions/index.d.ts +0 -20
- package/lib/actions/ios.d.ts +0 -7
- package/lib/actions/locations.d.ts +0 -3
- package/lib/actions/messages.d.ts +0 -13
- package/lib/actions/notifications.d.ts +0 -5
- package/lib/actions/payments.d.ts +0 -10
- package/lib/actions/posts.d.ts +0 -19
- package/lib/actions/reactions.d.ts +0 -30
- package/lib/actions/s3.d.ts +0 -7
- package/lib/actions/search.d.ts +0 -3
- package/lib/actions/sms.d.ts +0 -3
- package/lib/actions/statistics.d.ts +0 -2
- package/lib/actions/subscription.d.ts +0 -7
- package/lib/actions/tags.d.ts +0 -26
- package/lib/actions/users.d.ts +0 -44
- package/lib/actions/websockets.d.ts +0 -6
- package/lib/config.d.ts +0 -20
- package/lib/index.d.ts +0 -5
- package/lib/lambdas/actions/websockets.d.ts +0 -6
- package/lib/lambdas/authorizer.d.ts +0 -20
- package/lib/lambdas/connection.d.ts +0 -12
- package/lib/lambdas/utils/message.d.ts +0 -1
- package/lib/lambdas/utils/websocket.d.ts +0 -7
- package/lib/templates/email/layout.d.ts +0 -2
- package/lib/templates/email/passwordForgot.d.ts +0 -2
- package/lib/templates/email/passwordRecovery.d.ts +0 -2
- package/lib/templates/email/verifyEmail.d.ts +0 -2
- package/lib/templates/email/welcome.d.ts +0 -2
- package/lib/templates/sms/passwordForgot.d.ts +0 -2
- package/lib/templates/sms/passwordRecovery.d.ts +0 -2
- package/lib/templates/sms/verifyEmail.d.ts +0 -2
- package/lib/templates/sms/verifyPhone.d.ts +0 -2
- package/lib/templates/sms/welcome.d.ts +0 -2
- package/lib/types/apps.d.ts +0 -44
- package/lib/types/arangodb.d.ts +0 -17
- package/lib/types/auth.d.ts +0 -7
- package/lib/types/connections.d.ts +0 -8
- package/lib/types/conversations.d.ts +0 -11
- package/lib/types/email.d.ts +0 -12
- package/lib/types/files.d.ts +0 -26
- package/lib/types/google.d.ts +0 -27
- package/lib/types/groups.d.ts +0 -22
- package/lib/types/images.d.ts +0 -42
- package/lib/types/index.d.ts +0 -18
- package/lib/types/locations.d.ts +0 -20
- package/lib/types/messages.d.ts +0 -27
- package/lib/types/notifications.d.ts +0 -19
- package/lib/types/payments.d.ts +0 -115
- package/lib/types/posts.d.ts +0 -47
- package/lib/types/statistics.d.ts +0 -3
- package/lib/types/tags.d.ts +0 -15
- package/lib/types/users.d.ts +0 -80
- package/lib/types/websocket.d.ts +0 -14
- package/lib/utils/analytics.d.ts +0 -14
- package/lib/utils/arangodb.d.ts +0 -9
- package/lib/utils/auth.d.ts +0 -5
- package/lib/utils/graphql.d.ts +0 -1
- package/lib/utils/index.d.ts +0 -6
- package/lib/utils/objects.d.ts +0 -3
- package/lib/utils/session.d.ts +0 -18
package/README.md
CHANGED
|
@@ -18,25 +18,25 @@ $ gulp # Compile and launch
|
|
|
18
18
|
Usage
|
|
19
19
|
-----
|
|
20
20
|
|
|
21
|
-
#### `
|
|
21
|
+
#### `npm run dev`
|
|
22
22
|
Runs the webpack build system just like in `compile` but enables HMR. The webpack dev server can be found at `localhost:3000`.
|
|
23
23
|
|
|
24
|
-
#### `
|
|
24
|
+
#### `npm run compile`
|
|
25
25
|
Runs the Webpack build system with your current NODE_ENV and compiles the application to disk (`~/dist`). Production builds will fail on eslint errors (but not on warnings).
|
|
26
26
|
|
|
27
|
-
#### `
|
|
27
|
+
#### `npm run test`
|
|
28
28
|
Runs unit tests with Karma.
|
|
29
29
|
|
|
30
|
-
#### `
|
|
30
|
+
#### `npm run deploy`
|
|
31
31
|
Helper script to run tests and then, on success, compile your application.
|
|
32
32
|
|
|
33
|
-
#### `
|
|
33
|
+
#### `npm run db:get:s3`
|
|
34
34
|
Get a copy of the latest database data from S3 and import into your local database
|
|
35
35
|
|
|
36
|
-
#### `
|
|
36
|
+
#### `npm run db:get:direct`
|
|
37
37
|
Get a copy of the latest database data from the production database and import into your local database
|
|
38
38
|
|
|
39
|
-
#### `
|
|
39
|
+
#### `npm run db:save`
|
|
40
40
|
Get a copy of the latest database data from the production database and save to S3
|
|
41
41
|
|
|
42
42
|
### Configuration
|
|
@@ -1,47 +1,32 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
9
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
-
var __spreadValues = (a, b) => {
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
-
var __require = typeof require !== "undefined" ? require : (x) => {
|
|
26
|
-
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
27
|
-
};
|
|
28
7
|
var __export = (target, all) => {
|
|
29
|
-
__markAsModule(target);
|
|
30
8
|
for (var name in all)
|
|
31
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
32
10
|
};
|
|
33
|
-
var
|
|
34
|
-
if (
|
|
35
|
-
for (let key of __getOwnPropNames(
|
|
36
|
-
if (!__hasOwnProp.call(
|
|
37
|
-
__defProp(
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
38
16
|
}
|
|
39
|
-
return
|
|
17
|
+
return to;
|
|
40
18
|
};
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var conversations_exports = {};
|
|
29
|
+
__export(conversations_exports, {
|
|
45
30
|
addUserToConversation: () => addUserToConversation,
|
|
46
31
|
deleteUserFromConversation: () => deleteUserFromConversation,
|
|
47
32
|
getConnectionUsers: () => getConnectionUsers,
|
|
@@ -50,26 +35,36 @@ __export(exports, {
|
|
|
50
35
|
getConversations: () => getConversations,
|
|
51
36
|
getDirectConversation: () => getDirectConversation,
|
|
52
37
|
getDirectConversationOld: () => getDirectConversationOld,
|
|
38
|
+
parseConversationOptions: () => parseConversationOptions,
|
|
53
39
|
updateConversation: () => updateConversation
|
|
54
40
|
});
|
|
55
|
-
|
|
56
|
-
var
|
|
57
|
-
var
|
|
58
|
-
var
|
|
59
|
-
var import_utils2 =
|
|
60
|
-
var import_analytics =
|
|
61
|
-
var import_images =
|
|
62
|
-
var import_users =
|
|
41
|
+
module.exports = __toCommonJS(conversations_exports);
|
|
42
|
+
var import_utils = require("@nlabs/utils");
|
|
43
|
+
var import_arangojs = require("arangojs");
|
|
44
|
+
var import_cloneDeep = __toESM(require("lodash/cloneDeep"));
|
|
45
|
+
var import_utils2 = require("../utils");
|
|
46
|
+
var import_analytics = require("../utils/analytics");
|
|
47
|
+
var import_images = require("./images");
|
|
48
|
+
var import_users = require("./users");
|
|
63
49
|
const eventCategory = "conversations";
|
|
64
|
-
const
|
|
50
|
+
const parseConversationOptions = (options = {}) => {
|
|
51
|
+
const {
|
|
52
|
+
from = 0,
|
|
53
|
+
to = 30
|
|
54
|
+
} = options;
|
|
55
|
+
return {
|
|
56
|
+
limit: (0, import_utils2.getLimit)(from, to)
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
const getConversations = (context, options) => {
|
|
65
60
|
const action = "getConversations";
|
|
66
61
|
const { database, session: { userId: sessionId } } = context;
|
|
67
|
-
const limit = (
|
|
62
|
+
const { limit } = parseConversationOptions(options);
|
|
68
63
|
const sessionDocId = `users/${sessionId}`;
|
|
69
|
-
const aqlQry = `FOR c, e IN 1..1 OUTBOUND "${sessionDocId}"
|
|
64
|
+
const aqlQry = `FOR c, e IN 1..1 OUTBOUND "${sessionDocId}" hasConversation
|
|
70
65
|
${limit.aql}
|
|
71
66
|
LET users = (
|
|
72
|
-
FOR u, uc IN 1..1 INBOUND c._id
|
|
67
|
+
FOR u, uc IN 1..1 INBOUND c._id hasConversation
|
|
73
68
|
FILTER u._id != "${sessionDocId}"
|
|
74
69
|
RETURN u
|
|
75
70
|
)
|
|
@@ -105,7 +100,7 @@ const getDirectConversation = async (context, fromId, toId) => {
|
|
|
105
100
|
label: "db_error"
|
|
106
101
|
}, error, context).then(() => null));
|
|
107
102
|
if (conversation) {
|
|
108
|
-
return
|
|
103
|
+
return { ...conversation, users: [user] };
|
|
109
104
|
}
|
|
110
105
|
const now = Date.now();
|
|
111
106
|
const insert = {
|
|
@@ -117,17 +112,17 @@ const getDirectConversation = async (context, fromId, toId) => {
|
|
|
117
112
|
const insertQuery = import_arangojs.aql`INSERT ${insert} IN conversations RETURN NEW`;
|
|
118
113
|
const updatedConversation = await database.query(insertQuery).then((cursor) => cursor.next());
|
|
119
114
|
await Promise.all(userIds.map((userId) => {
|
|
120
|
-
const edgeId = (0, import_utils.createHash)(`
|
|
115
|
+
const edgeId = (0, import_utils.createHash)(`hasConversation-${userId}-${conversationId}`);
|
|
121
116
|
const edge = {
|
|
122
117
|
_from: `users/${userId}`,
|
|
123
118
|
_key: edgeId,
|
|
124
119
|
_to: `conversations/${conversationId}`,
|
|
125
120
|
added: Date.now()
|
|
126
121
|
};
|
|
127
|
-
const insertEdgeQuery = import_arangojs.aql`INSERT ${edge} IN
|
|
122
|
+
const insertEdgeQuery = import_arangojs.aql`INSERT ${edge} IN hasConversation RETURN NEW`;
|
|
128
123
|
return database.query(insertEdgeQuery);
|
|
129
124
|
}));
|
|
130
|
-
return
|
|
125
|
+
return { ...updatedConversation, users: [user] };
|
|
131
126
|
} catch (updateError) {
|
|
132
127
|
return (0, import_analytics.logError)({
|
|
133
128
|
action,
|
|
@@ -146,7 +141,7 @@ const getConnectionUsers = (context, conversationId, includeAll = false, isDirec
|
|
|
146
141
|
if (isDirect) {
|
|
147
142
|
filters.push(`p.vertices[0].isDirect == ${isDirect}`);
|
|
148
143
|
}
|
|
149
|
-
const aqlQry = import_arangojs.aql`FOR u, e,p IN 1..1 INBOUND ${`conversations/${conversationId}`}
|
|
144
|
+
const aqlQry = import_arangojs.aql`FOR u, e,p IN 1..1 INBOUND ${`conversations/${conversationId}`} hasConversation
|
|
150
145
|
OPTIONS {vertexCollections: "users"}
|
|
151
146
|
FOR c IN connections
|
|
152
147
|
FILTER ${filters.join(" && ")}
|
|
@@ -167,7 +162,7 @@ const getConversationUsers = (context, conversationId, includeAll = false, isDir
|
|
|
167
162
|
if (isDirect) {
|
|
168
163
|
filters.push(`p.vertices[0].isDirect == ${isDirect}`);
|
|
169
164
|
}
|
|
170
|
-
const aqlQry = import_arangojs.aql`FOR u, e,p IN 1..1 INBOUND ${`conversations/${conversationId}`}
|
|
165
|
+
const aqlQry = import_arangojs.aql`FOR u, e,p IN 1..1 INBOUND ${`conversations/${conversationId}`} hasConversation
|
|
171
166
|
OPTIONS {vertexCollections: "users"}
|
|
172
167
|
FILTER ${filters.join(" && ")}
|
|
173
168
|
RETURN u`;
|
|
@@ -184,12 +179,12 @@ const getDirectConversationOld = (context, userId) => {
|
|
|
184
179
|
const sessionDocId = `users/${sessionId}`;
|
|
185
180
|
const formatUserId = (0, import_utils.parseArangoId)(userId);
|
|
186
181
|
const aqlQry = import_arangojs.aql`LET from = (
|
|
187
|
-
FOR c, e IN 1..1 OUTBOUND ${sessionDocId}
|
|
182
|
+
FOR c, e IN 1..1 OUTBOUND ${sessionDocId} hasConversation
|
|
188
183
|
FILTER c.direct == true
|
|
189
184
|
RETURN c
|
|
190
185
|
)
|
|
191
186
|
LET to = (
|
|
192
|
-
FOR c, e IN 1..1 OUTBOUND ${formatUserId}
|
|
187
|
+
FOR c, e IN 1..1 OUTBOUND ${formatUserId} hasConversation
|
|
193
188
|
FILTER c.direct == true
|
|
194
189
|
RETURN c
|
|
195
190
|
)
|
|
@@ -212,16 +207,16 @@ const getConversation = (context, convoId) => {
|
|
|
212
207
|
const { database, session: { userId: sessionId } } = context;
|
|
213
208
|
const sessionDocId = `users/${sessionId}`;
|
|
214
209
|
const convoDocId = `conversations/${(0, import_utils.parseId)(convoId)}`;
|
|
215
|
-
const aqlQry = import_arangojs.aql`FOR c, e IN 1..1 OUTBOUND ${sessionDocId}
|
|
210
|
+
const aqlQry = import_arangojs.aql`FOR c, e IN 1..1 OUTBOUND ${sessionDocId} hasConversation
|
|
216
211
|
FILTER c._id == ${convoDocId}
|
|
217
212
|
LET u = (
|
|
218
|
-
FOR inUser, inEdge IN 1..1 INBOUND ${convoDocId}
|
|
213
|
+
FOR inUser, inEdge IN 1..1 INBOUND ${convoDocId} hasConversation
|
|
219
214
|
RETURN inUser
|
|
220
215
|
)
|
|
221
216
|
LIMIT 1
|
|
222
217
|
RETURN MERGE(c, {users: u})`;
|
|
223
218
|
return database.query(aqlQry).then((cursor) => cursor.next()).then((conversation = {}) => {
|
|
224
|
-
if (
|
|
219
|
+
if (conversation) {
|
|
225
220
|
conversation.users = conversation.users.map((user) => {
|
|
226
221
|
const { imageId, userId } = user;
|
|
227
222
|
const thumbUrlData = {
|
|
@@ -229,10 +224,11 @@ const getConversation = (context, convoId) => {
|
|
|
229
224
|
isThumb: true,
|
|
230
225
|
userId
|
|
231
226
|
};
|
|
232
|
-
return
|
|
227
|
+
return {
|
|
228
|
+
...user,
|
|
233
229
|
name: (0, import_users.getDisplayName)(user),
|
|
234
|
-
thumb: (0, import_images.
|
|
235
|
-
}
|
|
230
|
+
thumb: (0, import_images.getImageUrl)(thumbUrlData)
|
|
231
|
+
};
|
|
236
232
|
});
|
|
237
233
|
return conversation;
|
|
238
234
|
}
|
|
@@ -254,14 +250,16 @@ const updateConversation = (context, conversation) => {
|
|
|
254
250
|
const formatConversationId = (0, import_utils.parseId)(conversationId);
|
|
255
251
|
const now = Date.now();
|
|
256
252
|
const update = {
|
|
253
|
+
// Direct message
|
|
257
254
|
direct,
|
|
258
255
|
modified: now,
|
|
259
256
|
name
|
|
260
257
|
};
|
|
261
|
-
const insert =
|
|
258
|
+
const insert = {
|
|
259
|
+
...(0, import_cloneDeep.default)(update),
|
|
262
260
|
_key: formatConversationId,
|
|
263
261
|
added: now
|
|
264
|
-
}
|
|
262
|
+
};
|
|
265
263
|
const aqlQry = import_arangojs.aql`UPSERT {_key: ${formatConversationId} }
|
|
266
264
|
INSERT ${insert}
|
|
267
265
|
UPDATE ${update}
|
|
@@ -277,9 +275,9 @@ const addUserToConversation = (context, convoId, userId) => {
|
|
|
277
275
|
const { database } = context;
|
|
278
276
|
const formatConvoId = (0, import_utils.parseId)(convoId);
|
|
279
277
|
const formatUserId = (0, import_utils.parseId)(userId);
|
|
280
|
-
const convoDocId = `conversations/${formatConvoId}
|
|
281
|
-
const userDocId = `users/${formatUserId}
|
|
282
|
-
const aqlQry = import_arangojs.aql`FOR c IN
|
|
278
|
+
const convoDocId = `conversations/${formatConvoId}`;
|
|
279
|
+
const userDocId = `users/${formatUserId}`;
|
|
280
|
+
const aqlQry = import_arangojs.aql`FOR c IN hasConversation
|
|
283
281
|
FILTER c._from == ${userDocId} && c._to == ${convoDocId}
|
|
284
282
|
LIMIT 1
|
|
285
283
|
RETURN c`;
|
|
@@ -287,7 +285,7 @@ const addUserToConversation = (context, convoId, userId) => {
|
|
|
287
285
|
if (!!conversationEdge) {
|
|
288
286
|
return conversationEdge;
|
|
289
287
|
}
|
|
290
|
-
const edgeCollection = database.collection("
|
|
288
|
+
const edgeCollection = database.collection("hasConversation");
|
|
291
289
|
const edgeId = (0, import_utils.createHash)(`convo - ${formatConvoId} -${formatUserId} `);
|
|
292
290
|
const edge = {
|
|
293
291
|
_from: userDocId,
|
|
@@ -307,12 +305,12 @@ const deleteUserFromConversation = (context, convoId, userId) => {
|
|
|
307
305
|
const { database } = context;
|
|
308
306
|
const formatConvoId = (0, import_utils.parseId)(convoId);
|
|
309
307
|
const formatUserId = (0, import_utils.parseId)(userId);
|
|
310
|
-
const convoDocId = `conversations
|
|
311
|
-
const userDocId = `users/${formatUserId}
|
|
312
|
-
const aqlQry = import_arangojs.aql`FOR c IN
|
|
308
|
+
const convoDocId = `conversations/${formatConvoId}`;
|
|
309
|
+
const userDocId = `users/${formatUserId}`;
|
|
310
|
+
const aqlQry = import_arangojs.aql`FOR c IN hasConversation
|
|
313
311
|
FILTER c._from == ${userDocId} && c._to == ${convoDocId}
|
|
314
312
|
LIMIT 1
|
|
315
|
-
REMOVE c IN
|
|
313
|
+
REMOVE c IN hasConversation
|
|
316
314
|
RETURN OLD`;
|
|
317
315
|
return database.query(aqlQry).then((cursor) => cursor.next()).catch((error) => (0, import_analytics.logError)({
|
|
318
316
|
action,
|
|
@@ -330,6 +328,7 @@ const deleteUserFromConversation = (context, convoId, userId) => {
|
|
|
330
328
|
getConversations,
|
|
331
329
|
getDirectConversation,
|
|
332
330
|
getDirectConversationOld,
|
|
331
|
+
parseConversationOptions,
|
|
333
332
|
updateConversation
|
|
334
333
|
});
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvY29udmVyc2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbic7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcblxuaW1wb3J0IHtBcmFuZ29EQkxpbWl0LCBDb25uZWN0aW9uVHlwZSwgQ29udmVyc2F0aW9uVHlwZSwgSW1hZ2VVcmxEYXRhLCBVc2VyfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHtnZXRMaW1pdH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzJztcbmltcG9ydCB7Z2V0VXNlckltYWdlVXJsfSBmcm9tICcuL2ltYWdlcyc7XG5pbXBvcnQge2dldERpc3BsYXlOYW1lLCBnZXRVc2VyfSBmcm9tICcuL3VzZXJzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2NvbnZlcnNhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9ucyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB7ZnJvbSwgdG99KTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0Q29udmVyc2F0aW9ucyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc0NvbnZlcnNhdGlvbnNcbiAgICAke2xpbWl0LmFxbH1cbiAgICBMRVQgdXNlcnMgPSAoXG4gICAgICBGT1IgdSwgdWMgSU4gMS4uMSBJTkJPVU5EIGMuX2lkIGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiB1Ll9pZCAhPSBcIiR7c2Vzc2lvbkRvY0lkfVwiXG4gICAgICBSRVRVUk4gdVxuICAgIClcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXJzOiB1c2Vyc30pYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBmcm9tSWQ6IHN0cmluZyxcbiAgdG9JZDogc3RyaW5nXG4pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0RGlyZWN0Q29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmb3JtYXRGcm9tSWQ6IHN0cmluZyA9IHBhcnNlSWQoZnJvbUlkKTtcbiAgICBjb25zdCBmb3JtYXRUb0lkOiBzdHJpbmcgPSBwYXJzZUlkKHRvSWQpO1xuICAgIGNvbnN0IHVzZXJJZHM6IHN0cmluZ1tdID0gW2Zvcm1hdEZyb21JZCwgZm9ybWF0VG9JZF07XG4gICAgY29uc3Qgc29ydGVkVXNlcklkczogc3RyaW5nW10gPSB1c2VySWRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmKGEgPCBiKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIGlmKGEgPiBiKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgY29uc3QgY29udmVyc2F0aW9uSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYGNvbnZlcnNhdGlvbnMtJHtzb3J0ZWRVc2VySWRzLmpvaW4oJy0nKX1gLCBudWxsKTtcbiAgICBjb25zdCB1c2VyOiBVc2VyID0gYXdhaXQgZ2V0VXNlcihjb250ZXh0LCB7dXNlcklkOiBmb3JtYXRUb0lkfSk7XG5cbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCBjID0gRE9DVU1FTlQoJHtgY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfWB9KSBSRVRVUk4gY2A7XG4gICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xuXG4gICAgaWYoY29udmVyc2F0aW9uKSB7XG4gICAgICByZXR1cm4gey4uLmNvbnZlcnNhdGlvbiwgdXNlcnM6IFt1c2VyXX07XG4gICAgfVxuXG4gICAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGluc2VydCA9IHtcbiAgICAgIF9rZXk6IGNvbnZlcnNhdGlvbklkLFxuICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgIGlzRGlyZWN0OiB0cnVlLFxuICAgICAgbW9kaWZpZWQ6IG5vd1xuICAgIH07XG4gICAgY29uc3QgaW5zZXJ0UXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2luc2VydH0gSU4gY29udmVyc2F0aW9ucyBSRVRVUk4gTkVXYDtcbiAgICBjb25zdCB1cGRhdGVkQ29udmVyc2F0aW9uID0gYXdhaXQgZGF0YWJhc2UucXVlcnkoaW5zZXJ0UXVlcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh1c2VySWRzLm1hcCgodXNlcklkKSA9PiB7XG4gICAgICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYGhhc0NvbnZlcnNhdGlvbnMtJHt1c2VySWR9LSR7Y29udmVyc2F0aW9uSWR9YCk7XG4gICAgICBjb25zdCBlZGdlOiBhbnkgPSB7XG4gICAgICAgIF9mcm9tOiBgdXNlcnMvJHt1c2VySWR9YCxcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBfdG86IGBjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YCxcbiAgICAgICAgYWRkZWQ6IERhdGUubm93KClcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnNlcnRFZGdlUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2VkZ2V9IElOIGhhc0NvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG4gICAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoaW5zZXJ0RWRnZVF1ZXJ5KTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gey4uLnVwZGF0ZWRDb252ZXJzYXRpb24sIHVzZXJzOiBbdXNlcl19O1xuICB9IGNhdGNoKHVwZGF0ZUVycm9yKSB7XG4gICAgcmV0dXJuIGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCB1cGRhdGVFcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25Vc2VycyA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyxcbiAgaW5jbHVkZUFsbDogYm9vbGVhbiA9IGZhbHNlLFxuICBpc0RpcmVjdD86IGJvb2xlYW5cbik6IFByb21pc2U8Q29ubmVjdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRDb252ZXJzYXRpb25Vc2Vycyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvblVzZXJJZH19ID0gY29udGV4dDtcbiAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbJ2MudXNlcklkID09IHUuX2tleSddO1xuXG4gIGlmKCFpbmNsdWRlQWxsKSB7XG4gICAgZmlsdGVycy5wdXNoKGB1Ll9rZXkgIT0gJHtzZXNzaW9uVXNlcklkfWApO1xuICB9XG4gIGlmKGlzRGlyZWN0KSB7XG4gICAgZmlsdGVycy5wdXNoKGBwLnZlcnRpY2VzWzBdLmlzRGlyZWN0ID09ICR7aXNEaXJlY3R9YCk7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB1LCBlLHAgSU4gMS4uMSBJTkJPVU5EICR7YGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gfSBoYXNDb252ZXJzYXRpb25zXG4gICAgT1BUSU9OUyB7dmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICBGT1IgYyBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiAke2ZpbHRlcnMuam9pbignICYmICcpfVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9uVXNlcnMgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gIGluY2x1ZGVBbGw6IGJvb2xlYW4gPSBmYWxzZSxcbiAgaXNEaXJlY3Q/OiBib29sZWFuXG4pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRDb252ZXJzYXRpb25Vc2Vycyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvblVzZXJJZH19ID0gY29udGV4dDtcbiAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbJ2MudXNlcklkID09IHUuX2tleSddO1xuXG4gIGlmKCFpbmNsdWRlQWxsKSB7XG4gICAgZmlsdGVycy5wdXNoKGB1Ll9rZXkgIT0gJHtzZXNzaW9uVXNlcklkfWApO1xuICB9XG4gIGlmKGlzRGlyZWN0KSB7XG4gICAgZmlsdGVycy5wdXNoKGBwLnZlcnRpY2VzWzBdLmlzRGlyZWN0ID09ICR7aXNEaXJlY3R9YCk7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB1LCBlLHAgSU4gMS4uMSBJTkJPVU5EICR7YGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gfSBoYXNDb252ZXJzYXRpb25zXG4gICAgT1BUSU9OUyB7dmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICBGSUxURVIgJHtmaWx0ZXJzLmpvaW4oJyAmJiAnKX1cbiAgICBSRVRVUk4gdWA7XG5cbiAgY29uc29sZS5sb2coe2FxbFFyeX0pO1xuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uT2xkID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldERpcmVjdENvbnZlcnNhdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQodXNlcklkKTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCBmcm9tID0gKFxuICAgICAgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCAke3Nlc3Npb25Eb2NJZH0gaGFzQ29udmVyc2F0aW9uc1xuICAgICAgRklMVEVSIGMuZGlyZWN0ID09IHRydWVcbiAgICAgIFJFVFVSTiBjXG4gICAgKVxuICAgIExFVCB0byA9IChcbiAgICAgIEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtmb3JtYXRVc2VySWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiBjLmRpcmVjdCA9PSB0cnVlXG4gICAgICBSRVRVUk4gY1xuICAgIClcbiAgICBMRVQgY29udmVyc2F0aW9uID0gRklSU1QoSU5URVJTRUNUSU9OKGZyb20sIHRvKSlcbiAgICBMRVQgdXNlcnMgPSAhSVNfTlVMTChjb252ZXJzYXRpb24pICYmIChcbiAgICAgIEZPUiBnIElOWyR7c2Vzc2lvbkRvY0lkfSwgJHtmb3JtYXRVc2VySWR9XVxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiBnID09IHUuX2lkXG4gICAgICBSRVRVUk4gdVxuICAgIClcbiAgICBSRVRVUk4gSVNfTlVMTChjb252ZXJzYXRpb24pID8gbnVsbCA6IE1FUkdFKGNvbnZlcnNhdGlvbiwge3VzZXJzOiB1c2Vyc30pYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke3BhcnNlSWQoY29udm9JZCl9YDtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgYy5faWQgPT0gJHtjb252b0RvY0lkfVxuICAgIExFVCB1ID0gKFxuICAgICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZvRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIFJFVFVSTiBpblVzZXJcbiAgICApXG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBNRVJHRShjLCB7dXNlcnM6IHV9KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlID0ge30pID0+IHtcbiAgICAgIGlmKCFpc0VtcHR5KGNvbnZlcnNhdGlvbikpIHtcbiAgICAgICAgY29udmVyc2F0aW9uLnVzZXJzID0gY29udmVyc2F0aW9uLnVzZXJzLm1hcCgodXNlcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3Qge2ltYWdlSWQsIHVzZXJJZH0gPSB1c2VyO1xuICAgICAgICAgIGNvbnN0IHRodW1iVXJsRGF0YTogSW1hZ2VVcmxEYXRhID0ge1xuICAgICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICAgIGlzVGh1bWI6IHRydWUsXG4gICAgICAgICAgICB1c2VySWRcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgbmFtZTogZ2V0RGlzcGxheU5hbWUodXNlciksXG4gICAgICAgICAgICB0aHVtYjogZ2V0VXNlckltYWdlVXJsKHRodW1iVXJsRGF0YSlcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZlcnNhdGlvbik6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGNvbnZlcnNhdGlvbklkID0gY3JlYXRlSGFzaChgY29udmVyc2F0aW9uLSR7c2Vzc2lvbklkfSBgKSxcbiAgICBkaXJlY3QgPSBmYWxzZSxcbiAgICBuYW1lXG4gIH0gPSBjb252ZXJzYXRpb247XG4gIGNvbnN0IGZvcm1hdENvbnZlcnNhdGlvbklkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZlcnNhdGlvbklkKTtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCB1cGRhdGU6IGFueSA9IHtcbiAgICAvLyBEaXJlY3QgbWVzc2FnZVxuICAgIGRpcmVjdCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWVcbiAgfTtcblxuICBjb25zdCBpbnNlcnQ6IGFueSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRDb252ZXJzYXRpb25JZCxcbiAgICBhZGRlZDogbm93XG4gIH07XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7Zm9ybWF0Q29udmVyc2F0aW9uSWR9IH1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfVxuICAgIElOIGNvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlID0ge30pID0+IGNvbnZlcnNhdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyVG9Db252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRVc2VyVG9Db252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0Q29udm9JZDogc3RyaW5nID0gcGFyc2VJZChjb252b0lkKTtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7Zm9ybWF0Q29udm9JZH0gYDtcbiAgY29uc3QgdXNlckRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtmb3JtYXRVc2VySWR9IGA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYyBJTiBoYXNDb252ZXJzYXRpb25zXG4gICAgRklMVEVSIGMuX2Zyb20gPT0gJHt1c2VyRG9jSWR9ICYmIGMuX3RvID09ICR7Y29udm9Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIGNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbkVkZ2UpID0+IHtcbiAgICAgIGlmKCEhY29udmVyc2F0aW9uRWRnZSkge1xuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uRWRnZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGF0YWJhc2UuY29sbGVjdGlvbignaGFzQ29udmVyc2F0aW9ucycpO1xuICAgICAgY29uc3QgZWRnZUlkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBjb252byAtICR7Zm9ybWF0Q29udm9JZH0gLSR7Zm9ybWF0VXNlcklkfSBgKTtcblxuICAgICAgY29uc3QgZWRnZTogQ29udmVyc2F0aW9uVHlwZSA9IHtcbiAgICAgICAgX2Zyb206IHVzZXJEb2NJZCxcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBfdG86IGNvbnZvRG9jSWQsXG4gICAgICAgIGFkZGVkOiBEYXRlLm5vdygpXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB7cmV0dXJuTmV3OiB0cnVlfSkudGhlbigoKSA9PiBlZGdlKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVVzZXJGcm9tQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlVXNlckZyb21Db252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0Q29udm9JZDogc3RyaW5nID0gcGFyc2VJZChjb252b0lkKTtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zIC8gJHtmb3JtYXRDb252b0lkfSBgO1xuICBjb25zdCB1c2VyRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke2Zvcm1hdFVzZXJJZH0gYDtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBjIElOIGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgYy5fZnJvbSA9PSAke3VzZXJEb2NJZH0gJiYgYy5fdG8gPT0gJHtjb252b0RvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRU1PVkUgYyBJTiBoYXNDb252ZXJzYXRpb25zXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLG1CQUFpRDtBQUNqRCxzQkFBa0I7QUFJbEIsdUJBQXNCO0FBQ3RCLHFCQUFvQjtBQUlwQixvQkFBdUI7QUFDdkIsdUJBQXVCO0FBQ3ZCLG9CQUE4QjtBQUM5QixtQkFBc0M7QUFFdEMsTUFBTSxnQkFBd0I7QUFFdkIsTUFBTSxtQkFBbUIsQ0FBQyxTQUFxQixFQUFDLE1BQU0sU0FBcUM7QUFDaEcsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxnQkFBYztBQUNqRCxRQUFNLFFBQXVCLDRCQUFTLE1BQU07QUFDNUMsUUFBTSxlQUF1QixTQUFTO0FBQ3RDLFFBQU0sU0FBaUIsOEJBQThCO0FBQUEsTUFDakQsTUFBTTtBQUFBO0FBQUE7QUFBQSx5QkFHYTtBQUFBO0FBQUE7QUFBQTtBQUt2QixTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxPQUNyQyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sd0JBQXdCLE9BQ25DLFNBQ0EsUUFDQSxTQUM4QjtBQUM5QixRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxhQUFZO0FBRW5CLE1BQUk7QUFDRixVQUFNLGVBQXVCLDBCQUFRO0FBQ3JDLFVBQU0sYUFBcUIsMEJBQVE7QUFDbkMsVUFBTSxVQUFvQixDQUFDLGNBQWM7QUFDekMsVUFBTSxnQkFBMEIsUUFBUSxLQUFLLENBQUMsR0FBRyxNQUFNO0FBQ3JELFVBQUcsSUFBSSxHQUFHO0FBQ1IsZUFBTztBQUFBO0FBRVQsVUFBRyxJQUFJLEdBQUc7QUFDUixlQUFPO0FBQUE7QUFFVCxhQUFPO0FBQUE7QUFFVCxVQUFNLGlCQUF5Qiw2QkFBVyxpQkFBaUIsY0FBYyxLQUFLLFFBQVE7QUFDdEYsVUFBTSxPQUFhLE1BQU0sMEJBQVEsU0FBUyxFQUFDLFFBQVE7QUFFbkQsVUFBTSxTQUFtQix1Q0FBdUIsaUJBQWlCO0FBQ2pFLFVBQU0sZUFBZSxNQUFNLFNBQVMsTUFBTSxRQUN2QyxLQUFLLENBQUMsV0FBd0IsT0FBTyxRQUNyQyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxNQUNoQztBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsT0FBTztBQUFBLE9BQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUVoQyxRQUFHLGNBQWM7QUFDZixhQUFPLGlDQUFJLGVBQUosRUFBa0IsT0FBTyxDQUFDO0FBQUE7QUFHbkMsVUFBTSxNQUFjLEtBQUs7QUFDekIsVUFBTSxTQUFTO0FBQUEsTUFDYixNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsTUFDUCxVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUE7QUFFWixVQUFNLGNBQXdCLDZCQUFhO0FBQzNDLFVBQU0sc0JBQXNCLE1BQU0sU0FBUyxNQUFNLGFBQzlDLEtBQUssQ0FBQyxXQUF3QixPQUFPO0FBRXhDLFVBQU0sUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLFdBQVc7QUFDeEMsWUFBTSxTQUFpQiw2QkFBVyxvQkFBb0IsVUFBVTtBQUNoRSxZQUFNLE9BQVk7QUFBQSxRQUNoQixPQUFPLFNBQVM7QUFBQSxRQUNoQixNQUFNO0FBQUEsUUFDTixLQUFLLGlCQUFpQjtBQUFBLFFBQ3RCLE9BQU8sS0FBSztBQUFBO0FBRWQsWUFBTSxrQkFBNEIsNkJBQWE7QUFDL0MsYUFBTyxTQUFTLE1BQU07QUFBQTtBQUd4QixXQUFPLGlDQUFJLHNCQUFKLEVBQXlCLE9BQU8sQ0FBQztBQUFBLFdBQ2xDLGFBQU47QUFDQSxXQUFPLCtCQUFTO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsT0FBTztBQUFBLE9BQ04sYUFBYSxTQUFTLEtBQUssTUFBTTtBQUFBO0FBQUE7QUFJakMsTUFBTSxxQkFBcUIsQ0FDaEMsU0FDQSxnQkFDQSxhQUFzQixPQUN0QixhQUM4QjtBQUM5QixRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLG9CQUFrQjtBQUNyRCxRQUFNLFVBQW9CLENBQUM7QUFFM0IsTUFBRyxDQUFDLFlBQVk7QUFDZCxZQUFRLEtBQUssYUFBYTtBQUFBO0FBRTVCLE1BQUcsVUFBVTtBQUNYLFlBQVEsS0FBSyw2QkFBNkI7QUFBQTtBQUc1QyxRQUFNLFNBQW1CLGlEQUFpQyxpQkFBaUI7QUFBQTtBQUFBO0FBQUEsYUFHaEUsUUFBUSxLQUFLO0FBQUE7QUFHeEIsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sT0FDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTtBQUczQixNQUFNLHVCQUF1QixDQUNsQyxTQUNBLGdCQUNBLGFBQXNCLE9BQ3RCLGFBQ2dDO0FBQ2hDLFFBQU0sU0FBaUI7QUFDdkIsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsb0JBQWtCO0FBQ3JELFFBQU0sVUFBb0IsQ0FBQztBQUUzQixNQUFHLENBQUMsWUFBWTtBQUNkLFlBQVEsS0FBSyxhQUFhO0FBQUE7QUFFNUIsTUFBRyxVQUFVO0FBQ1gsWUFBUSxLQUFLLDZCQUE2QjtBQUFBO0FBRzVDLFFBQU0sU0FBbUIsaURBQWlDLGlCQUFpQjtBQUFBO0FBQUEsYUFFaEUsUUFBUSxLQUFLO0FBQUE7QUFHeEIsVUFBUSxJQUFJLEVBQUM7QUFDYixTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxPQUNyQyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sMkJBQTJCLENBQUMsU0FBcUIsV0FBOEM7QUFDMUcsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxnQkFBYztBQUNqRCxRQUFNLGVBQXVCLFNBQVM7QUFDdEMsUUFBTSxlQUF1QixnQ0FBYztBQUUzQyxRQUFNLFNBQW1CO0FBQUEsa0NBQ087QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGtDQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQU1qQixpQkFBaUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT2hDLFNBQU8sU0FBUyxNQUFNLFFBQ25CLEtBQUssQ0FBQyxXQUF3QixPQUFPLFFBQ3JDLE1BQU0sQ0FBQyxVQUFpQiwrQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsS0FDTixPQUFPLFNBQVMsS0FBSyxNQUFNO0FBQUE7QUFHM0IsTUFBTSxrQkFBa0IsQ0FBQyxTQUFxQixZQUErQztBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLGdCQUFjO0FBQ2pELFFBQU0sZUFBdUIsU0FBUztBQUN0QyxRQUFNLGFBQXFCLGlCQUFpQiwwQkFBUTtBQUVwRCxRQUFNLFNBQW1CLGdEQUFnQztBQUFBLHNCQUNyQztBQUFBO0FBQUEsMkNBRXFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNekMsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsS0FBSyxDQUFDLGVBQWlDLE9BQU87QUFDN0MsUUFBRyxDQUFDLDRCQUFRLGVBQWU7QUFDekIsbUJBQWEsUUFBUSxhQUFhLE1BQU0sSUFBSSxDQUFDLFNBQWM7QUFDekQsY0FBTSxFQUFDLFNBQVMsV0FBVTtBQUMxQixjQUFNLGVBQTZCO0FBQUEsVUFDakM7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNUO0FBQUE7QUFFRixlQUFPLGlDQUNGLE9BREU7QUFBQSxVQUVMLE1BQU0saUNBQWU7QUFBQSxVQUNyQixPQUFPLG1DQUFnQjtBQUFBO0FBQUE7QUFJM0IsYUFBTztBQUFBO0FBRVQsV0FBTztBQUFBLEtBRVIsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTtBQUczQixNQUFNLHFCQUFxQixDQUFDLFNBQXFCLGlCQUE0QztBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLGdCQUFjO0FBQ2pELFFBQU07QUFBQSxJQUNKLGlCQUFpQiw2QkFBVyxnQkFBZ0I7QUFBQSxJQUM1QyxTQUFTO0FBQUEsSUFDVDtBQUFBLE1BQ0U7QUFDSixRQUFNLHVCQUErQiwwQkFBUTtBQUM3QyxRQUFNLE1BQWMsS0FBSztBQUN6QixRQUFNLFNBQWM7QUFBQSxJQUVsQjtBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1Y7QUFBQTtBQUdGLFFBQU0sU0FBYyxpQ0FDZiw4QkFBVSxVQURLO0FBQUEsSUFFbEIsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBO0FBR1QsUUFBTSxTQUFtQixvQ0FBb0I7QUFBQSxhQUNsQztBQUFBLGFBQ0E7QUFBQTtBQUdYLFNBQU8sU0FBUyxNQUFNLFFBQ25CLEtBQUssQ0FBQyxXQUF3QixPQUFPLFFBQ3JDLEtBQUssQ0FBQyxnQkFBaUMsT0FBTyxlQUM5QyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sd0JBQXdCLENBQUMsU0FBcUIsU0FBaUIsV0FBbUI7QUFDN0YsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsYUFBWTtBQUNuQixRQUFNLGdCQUF3QiwwQkFBUTtBQUN0QyxRQUFNLGVBQXVCLDBCQUFRO0FBQ3JDLFFBQU0sYUFBcUIsaUJBQWlCO0FBQzVDLFFBQU0sWUFBb0IsU0FBUztBQUVuQyxRQUFNLFNBQW1CO0FBQUEsd0JBQ0gseUJBQXlCO0FBQUE7QUFBQTtBQUkvQyxTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxRQUNyQyxLQUFLLENBQUMscUJBQXFCO0FBQzFCLFFBQUcsQ0FBQyxDQUFDLGtCQUFrQjtBQUNyQixhQUFPO0FBQUE7QUFHVCxVQUFNLGlCQUFpQyxTQUFTLFdBQVc7QUFDM0QsVUFBTSxTQUFpQiw2QkFBVyxXQUFXLGtCQUFrQjtBQUUvRCxVQUFNLE9BQXlCO0FBQUEsTUFDN0IsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsT0FBTyxLQUFLO0FBQUE7QUFHZCxXQUFPLGVBQWUsS0FBSyxNQUFNLEVBQUMsV0FBVyxRQUFPLEtBQUssTUFBTTtBQUFBLEtBRWhFLE1BQU0sQ0FBQyxVQUFpQiwrQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsS0FDTixPQUFPLFNBQVMsS0FBSyxNQUFNO0FBQUE7QUFHM0IsTUFBTSw2QkFBNkIsQ0FBQyxTQUFxQixTQUFpQixXQUFtQjtBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxhQUFZO0FBQ25CLFFBQU0sZ0JBQXdCLDBCQUFRO0FBQ3RDLFFBQU0sZUFBdUIsMEJBQVE7QUFDckMsUUFBTSxhQUFxQixtQkFBbUI7QUFDOUMsUUFBTSxZQUFvQixTQUFTO0FBRW5DLFFBQU0sU0FBbUI7QUFBQSx3QkFDSCx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFLL0MsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvY29udmVyc2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbic7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcblxuaW1wb3J0IHtDb25uZWN0aW9uVHlwZSwgQ29udmVyc2F0aW9uT3B0aW9ucywgQ29udmVyc2F0aW9uVHlwZSwgSW1hZ2VVcmxEYXRhLCBVc2VyfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHtnZXRMaW1pdH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzJztcbmltcG9ydCB7Z2V0SW1hZ2VVcmx9IGZyb20gJy4vaW1hZ2VzJztcbmltcG9ydCB7Z2V0RGlzcGxheU5hbWUsIGdldFVzZXJ9IGZyb20gJy4vdXNlcnMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnY29udmVyc2F0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnZlcnNhdGlvbk9wdGlvbnMgPSAob3B0aW9uczogQ29udmVyc2F0aW9uT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBmcm9tID0gMCxcbiAgICB0byA9IDMwLFxuICB9ID0gb3B0aW9ucztcblxuICByZXR1cm4ge1xuICAgIGxpbWl0OiBnZXRMaW1pdChmcm9tLCB0byksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9ucyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBvcHRpb25zPyk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldENvbnZlcnNhdGlvbnMnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge2xpbWl0fSA9IHBhcnNlQ29udmVyc2F0aW9uT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc0NvbnZlcnNhdGlvblxuICAgICR7bGltaXQuYXFsfVxuICAgIExFVCB1c2VycyA9IChcbiAgICAgIEZPUiB1LCB1YyBJTiAxLi4xIElOQk9VTkQgYy5faWQgaGFzQ29udmVyc2F0aW9uXG4gICAgICBGSUxURVIgdS5faWQgIT0gXCIke3Nlc3Npb25Eb2NJZH1cIlxuICAgICAgUkVUVVJOIHVcbiAgICApXG4gICAgUkVUVVJOIE1FUkdFKGMsIHt1c2VyczogdXNlcnN9KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERpcmVjdENvbnZlcnNhdGlvbiA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgZnJvbUlkOiBzdHJpbmcsXG4gIHRvSWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldERpcmVjdENvbnZlcnNhdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgZm9ybWF0RnJvbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGZyb21JZCk7XG4gICAgY29uc3QgZm9ybWF0VG9JZDogc3RyaW5nID0gcGFyc2VJZCh0b0lkKTtcbiAgICBjb25zdCB1c2VySWRzOiBzdHJpbmdbXSA9IFtmb3JtYXRGcm9tSWQsIGZvcm1hdFRvSWRdO1xuICAgIGNvbnN0IHNvcnRlZFVzZXJJZHM6IHN0cmluZ1tdID0gdXNlcklkcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBpZihhIDwgYikge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBpZihhID4gYikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAwO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvbklkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBjb252ZXJzYXRpb25zLSR7c29ydGVkVXNlcklkcy5qb2luKCctJyl9YCwgbnVsbCk7XG4gICAgY29uc3QgdXNlcjogVXNlciA9IGF3YWl0IGdldFVzZXIoY29udGV4dCwge3VzZXJJZDogZm9ybWF0VG9JZH0pO1xuXG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgYyA9IERPQ1VNRU5UKCR7YGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gfSkgUkVUVVJOIGNgO1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcblxuICAgIGlmKGNvbnZlcnNhdGlvbikge1xuICAgICAgcmV0dXJuIHsuLi5jb252ZXJzYXRpb24sIHVzZXJzOiBbdXNlcl19O1xuICAgIH1cblxuICAgIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBpbnNlcnQgPSB7XG4gICAgICBfa2V5OiBjb252ZXJzYXRpb25JZCxcbiAgICAgIGFkZGVkOiBub3csXG4gICAgICBpc0RpcmVjdDogdHJ1ZSxcbiAgICAgIG1vZGlmaWVkOiBub3dcbiAgICB9O1xuICAgIGNvbnN0IGluc2VydFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIGNvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG4gICAgY29uc3QgdXBkYXRlZENvbnZlcnNhdGlvbiA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGluc2VydFF1ZXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodXNlcklkcy5tYXAoKHVzZXJJZCkgPT4ge1xuICAgICAgY29uc3QgZWRnZUlkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBoYXNDb252ZXJzYXRpb24tJHt1c2VySWR9LSR7Y29udmVyc2F0aW9uSWR9YCk7XG4gICAgICBjb25zdCBlZGdlOiBhbnkgPSB7XG4gICAgICAgIF9mcm9tOiBgdXNlcnMvJHt1c2VySWR9YCxcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBfdG86IGBjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YCxcbiAgICAgICAgYWRkZWQ6IERhdGUubm93KClcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnNlcnRFZGdlUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2VkZ2V9IElOIGhhc0NvbnZlcnNhdGlvbiBSRVRVUk4gTkVXYDtcbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShpbnNlcnRFZGdlUXVlcnkpO1xuICAgIH0pKTtcblxuICAgIHJldHVybiB7Li4udXBkYXRlZENvbnZlcnNhdGlvbiwgdXNlcnM6IFt1c2VyXX07XG4gIH0gY2F0Y2godXBkYXRlRXJyb3IpIHtcbiAgICByZXR1cm4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIHVwZGF0ZUVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvblVzZXJzID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nLFxuICBpbmNsdWRlQWxsOiBib29sZWFuID0gZmFsc2UsXG4gIGlzRGlyZWN0PzogYm9vbGVhblxuKTogUHJvbWlzZTxDb25uZWN0aW9uVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldENvbnZlcnNhdGlvblVzZXJzJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uVXNlcklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmaWx0ZXJzOiBzdHJpbmdbXSA9IFsnYy51c2VySWQgPT0gdS5fa2V5J107XG5cbiAgaWYoIWluY2x1ZGVBbGwpIHtcbiAgICBmaWx0ZXJzLnB1c2goYHUuX2tleSAhPSAke3Nlc3Npb25Vc2VySWR9YCk7XG4gIH1cbiAgaWYoaXNEaXJlY3QpIHtcbiAgICBmaWx0ZXJzLnB1c2goYHAudmVydGljZXNbMF0uaXNEaXJlY3QgPT0gJHtpc0RpcmVjdH1gKTtcbiAgfVxuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUsIGUscCBJTiAxLi4xIElOQk9VTkQgJHtgY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfWB9IGhhc0NvbnZlcnNhdGlvblxuICAgIE9QVElPTlMge3ZlcnRleENvbGxlY3Rpb25zOiBcInVzZXJzXCJ9XG4gICAgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgJHtmaWx0ZXJzLmpvaW4oJyAmJiAnKX1cbiAgICBSRVRVUk4gY2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnZlcnNhdGlvblVzZXJzID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nLFxuICBpbmNsdWRlQWxsOiBib29sZWFuID0gZmFsc2UsXG4gIGlzRGlyZWN0PzogYm9vbGVhblxuKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0Q29udmVyc2F0aW9uVXNlcnMnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25Vc2VySWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gWydjLnVzZXJJZCA9PSB1Ll9rZXknXTtcblxuICBpZighaW5jbHVkZUFsbCkge1xuICAgIGZpbHRlcnMucHVzaChgdS5fa2V5ICE9ICR7c2Vzc2lvblVzZXJJZH1gKTtcbiAgfVxuICBpZihpc0RpcmVjdCkge1xuICAgIGZpbHRlcnMucHVzaChgcC52ZXJ0aWNlc1swXS5pc0RpcmVjdCA9PSAke2lzRGlyZWN0fWApO1xuICB9XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSwgZSxwIElOIDEuLjEgSU5CT1VORCAke2Bjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YH0gaGFzQ29udmVyc2F0aW9uXG4gICAgT1BUSU9OUyB7dmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICBGSUxURVIgJHtmaWx0ZXJzLmpvaW4oJyAmJiAnKX1cbiAgICBSRVRVUk4gdWA7XG5cbiAgY29uc29sZS5sb2coe2FxbFFyeX0pO1xuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uT2xkID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldERpcmVjdENvbnZlcnNhdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQodXNlcklkKTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCBmcm9tID0gKFxuICAgICAgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCAke3Nlc3Npb25Eb2NJZH0gaGFzQ29udmVyc2F0aW9uXG4gICAgICBGSUxURVIgYy5kaXJlY3QgPT0gdHJ1ZVxuICAgICAgUkVUVVJOIGNcbiAgICApXG4gICAgTEVUIHRvID0gKFxuICAgICAgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCAke2Zvcm1hdFVzZXJJZH0gaGFzQ29udmVyc2F0aW9uXG4gICAgICBGSUxURVIgYy5kaXJlY3QgPT0gdHJ1ZVxuICAgICAgUkVUVVJOIGNcbiAgICApXG4gICAgTEVUIGNvbnZlcnNhdGlvbiA9IEZJUlNUKElOVEVSU0VDVElPTihmcm9tLCB0bykpXG4gICAgTEVUIHVzZXJzID0gIUlTX05VTEwoY29udmVyc2F0aW9uKSAmJiAoXG4gICAgICBGT1IgZyBJTlske3Nlc3Npb25Eb2NJZH0sICR7Zm9ybWF0VXNlcklkfV1cbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgZyA9PSB1Ll9pZFxuICAgICAgUkVUVVJOIHVcbiAgICApXG4gICAgUkVUVVJOIElTX05VTEwoY29udmVyc2F0aW9uKSA/IG51bGwgOiBNRVJHRShjb252ZXJzYXRpb24sIHt1c2VyczogdXNlcnN9KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgY29udm9Eb2NJZDogc3RyaW5nID0gYGNvbnZlcnNhdGlvbnMvJHtwYXJzZUlkKGNvbnZvSWQpfWA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7c2Vzc2lvbkRvY0lkfSBoYXNDb252ZXJzYXRpb25cbiAgICBGSUxURVIgYy5faWQgPT0gJHtjb252b0RvY0lkfVxuICAgIExFVCB1ID0gKFxuICAgICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZvRG9jSWR9IGhhc0NvbnZlcnNhdGlvblxuICAgICAgUkVUVVJOIGluVXNlclxuICAgIClcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE1FUkdFKGMsIHt1c2VyczogdX0pYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUgPSB7fSkgPT4ge1xuICAgICAgaWYoY29udmVyc2F0aW9uKSB7XG4gICAgICAgIGNvbnZlcnNhdGlvbi51c2VycyA9IGNvbnZlcnNhdGlvbi51c2Vycy5tYXAoKHVzZXI6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtpbWFnZUlkLCB1c2VySWR9ID0gdXNlcjtcbiAgICAgICAgICBjb25zdCB0aHVtYlVybERhdGE6IEltYWdlVXJsRGF0YSA9IHtcbiAgICAgICAgICAgIGltYWdlSWQsXG4gICAgICAgICAgICBpc1RodW1iOiB0cnVlLFxuICAgICAgICAgICAgdXNlcklkXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udXNlcixcbiAgICAgICAgICAgIG5hbWU6IGdldERpc3BsYXlOYW1lKHVzZXIpLFxuICAgICAgICAgICAgdGh1bWI6IGdldEltYWdlVXJsKHRodW1iVXJsRGF0YSlcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZlcnNhdGlvbik6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGNvbnZlcnNhdGlvbklkID0gY3JlYXRlSGFzaChgY29udmVyc2F0aW9uLSR7c2Vzc2lvbklkfSBgKSxcbiAgICBkaXJlY3QgPSBmYWxzZSxcbiAgICBuYW1lXG4gIH0gPSBjb252ZXJzYXRpb247XG4gIGNvbnN0IGZvcm1hdENvbnZlcnNhdGlvbklkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZlcnNhdGlvbklkKTtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCB1cGRhdGU6IGFueSA9IHtcbiAgICAvLyBEaXJlY3QgbWVzc2FnZVxuICAgIGRpcmVjdCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWVcbiAgfTtcblxuICBjb25zdCBpbnNlcnQ6IGFueSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRDb252ZXJzYXRpb25JZCxcbiAgICBhZGRlZDogbm93XG4gIH07XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7Zm9ybWF0Q29udmVyc2F0aW9uSWR9IH1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfVxuICAgIElOIGNvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlID0ge30pID0+IGNvbnZlcnNhdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyVG9Db252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRVc2VyVG9Db252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0Q29udm9JZDogc3RyaW5nID0gcGFyc2VJZChjb252b0lkKTtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7Zm9ybWF0Q29udm9JZH1gO1xuICBjb25zdCB1c2VyRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke2Zvcm1hdFVzZXJJZH1gO1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGMgSU4gaGFzQ29udmVyc2F0aW9uXG4gICAgRklMVEVSIGMuX2Zyb20gPT0gJHt1c2VyRG9jSWR9ICYmIGMuX3RvID09ICR7Y29udm9Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIGNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbkVkZ2UpID0+IHtcbiAgICAgIGlmKCEhY29udmVyc2F0aW9uRWRnZSkge1xuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uRWRnZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGF0YWJhc2UuY29sbGVjdGlvbignaGFzQ29udmVyc2F0aW9uJyk7XG4gICAgICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYGNvbnZvIC0gJHtmb3JtYXRDb252b0lkfSAtJHtmb3JtYXRVc2VySWR9IGApO1xuXG4gICAgICBjb25zdCBlZGdlOiBDb252ZXJzYXRpb25UeXBlID0ge1xuICAgICAgICBfZnJvbTogdXNlckRvY0lkLFxuICAgICAgICBfa2V5OiBlZGdlSWQsXG4gICAgICAgIF90bzogY29udm9Eb2NJZCxcbiAgICAgICAgYWRkZWQ6IERhdGUubm93KClcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IGVkZ2UpO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVXNlckZyb21Db252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdkZWxldGVVc2VyRnJvbUNvbnZlcnNhdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252b0lkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZvSWQpO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgY29udm9Eb2NJZDogc3RyaW5nID0gYGNvbnZlcnNhdGlvbnMvJHtmb3JtYXRDb252b0lkfWA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7Zm9ybWF0VXNlcklkfWA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYyBJTiBoYXNDb252ZXJzYXRpb25cbiAgICBGSUxURVIgYy5fZnJvbSA9PSAke3VzZXJEb2NJZH0gJiYgYy5fdG8gPT0gJHtjb252b0RvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRU1PVkUgYyBJTiBoYXNDb252ZXJzYXRpb25cbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxtQkFBaUQ7QUFDakQsc0JBQWtCO0FBSWxCLHVCQUFzQjtBQUl0QixJQUFBQSxnQkFBdUI7QUFDdkIsdUJBQXVCO0FBQ3ZCLG9CQUEwQjtBQUMxQixtQkFBc0M7QUFFdEMsTUFBTSxnQkFBd0I7QUFFdkIsTUFBTSwyQkFBMkIsQ0FBQyxVQUErQixDQUFDLE1BQU07QUFDN0UsUUFBTTtBQUFBLElBQ0osT0FBTztBQUFBLElBQ1AsS0FBSztBQUFBLEVBQ1AsSUFBSTtBQUVKLFNBQU87QUFBQSxJQUNMLFdBQU8sd0JBQVMsTUFBTSxFQUFFO0FBQUEsRUFDMUI7QUFDRjtBQUVPLE1BQU0sbUJBQW1CLENBQUMsU0FBcUIsWUFBMEM7QUFDOUYsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxVQUFTLEVBQUMsSUFBSTtBQUNqRCxRQUFNLEVBQUMsTUFBSyxJQUFJLHlCQUF5QixPQUFPO0FBQ2hELFFBQU0sZUFBdUIsU0FBUyxTQUFTO0FBQy9DLFFB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QyxFQUFFLEtBQUssTUFBTSxJQUFJO0FBQUEsRUFDckUsQ0FBQyxFQUNBLE1BQU0sQ0FBQyxjQUFpQiwyQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsRUFDVCxHQUFHLE9BQU8sT0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUM7QUFDdkM7QUFFTyxNQUFNLDZCQUE2QixDQUFDLFNBQXFCLFNBQWlCLFdBQW1CO0FBQ2xHLFFBQU0sU0FBaUI7QUFDdkIsUUFBTSxFQUFDLFNBQVEsSUFBSTtBQUNuQixRQUFNLG9CQUF3QixzQkFBUSxPQUFPO0FBQzdDLFFBQU0sbUJBQXVCLHNCQUFRLE1BQU07QUFDM0MsUUFBTSxhQUFxQixpQkFBaUIsYUFBYTtBQUN6RCxRQUFNLFlBQW9CLFNBQVMsWUFBWTtBQUUvQyxRQUFNLFNBQW1CO0FBQUEsd0JBQ0gsU0FBUyxnQkFBZ0IsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUt6RCxTQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssQ0FBQyxXQUF3QixPQUFPLEtBQUssQ0FBQyxFQUMzQyxNQUFNLENBQUMsY0FBaUIsMkJBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEVBQ1QsR0FBRyxPQUFPLE9BQU8sRUFBRSxLQUFLLE1BQU0sSUFBSSxDQUFDO0FBQ3ZDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfdXRpbHMiLCAiY2xvbmVEZWVwIiwgImNvbnZlcnNhdGlvbiJdCn0K
|
package/lib/actions/dynamodb.js
CHANGED
|
@@ -2,43 +2,31 @@ var __create = Object.create;
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
22
|
-
var __require = typeof require !== "undefined" ? require : (x) => {
|
|
23
|
-
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
24
|
-
};
|
|
25
7
|
var __export = (target, all) => {
|
|
26
|
-
__markAsModule(target);
|
|
27
8
|
for (var name in all)
|
|
28
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
29
10
|
};
|
|
30
|
-
var
|
|
31
|
-
if (
|
|
32
|
-
for (let key of __getOwnPropNames(
|
|
33
|
-
if (!__hasOwnProp.call(
|
|
34
|
-
__defProp(
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
35
16
|
}
|
|
36
|
-
return
|
|
37
|
-
};
|
|
38
|
-
var __toModule = (module2) => {
|
|
39
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
17
|
+
return to;
|
|
40
18
|
};
|
|
41
|
-
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var dynamodb_exports = {};
|
|
29
|
+
__export(dynamodb_exports, {
|
|
42
30
|
dynamoDel: () => dynamoDel,
|
|
43
31
|
dynamoGet: () => dynamoGet,
|
|
44
32
|
dynamoGetList: () => dynamoGetList,
|
|
@@ -47,8 +35,9 @@ __export(exports, {
|
|
|
47
35
|
dynamoUpdate: () => dynamoUpdate,
|
|
48
36
|
parseDynamo: () => parseDynamo
|
|
49
37
|
});
|
|
50
|
-
|
|
51
|
-
var
|
|
38
|
+
module.exports = __toCommonJS(dynamodb_exports);
|
|
39
|
+
var import_aws_sdk = __toESM(require("aws-sdk"));
|
|
40
|
+
var import_config = require("../config");
|
|
52
41
|
const dynamoGet = (params) => new Promise((resolve, reject) => {
|
|
53
42
|
import_aws_sdk.default.config.update(import_config.Config.get("aws"));
|
|
54
43
|
const dynamodb = new import_aws_sdk.DynamoDB();
|
|
@@ -86,7 +75,7 @@ const dynamoGetList = (params, index) => new Promise((resolve, reject) => {
|
|
|
86
75
|
import_aws_sdk.default.config.update(import_config.Config.get("aws"));
|
|
87
76
|
const dynamodb = new import_aws_sdk.DynamoDB();
|
|
88
77
|
const { ConsistentRead: consistentRead } = params;
|
|
89
|
-
const updatedParams =
|
|
78
|
+
const updatedParams = { ...params };
|
|
90
79
|
if (index) {
|
|
91
80
|
updatedParams.ExclusiveStartKey = index;
|
|
92
81
|
}
|
|
@@ -155,4 +144,4 @@ const dynamoDel = (params) => new Promise((resolve, reject) => {
|
|
|
155
144
|
dynamoUpdate,
|
|
156
145
|
parseDynamo
|
|
157
146
|
});
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvZHluYW1vZGIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgYXdzLCB7RHluYW1vREJ9IGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHtcbiAgQmF0Y2hXcml0ZUl0ZW1JbnB1dCxcbiAgQmF0Y2hXcml0ZUl0ZW1PdXRwdXQsXG4gIERlbGV0ZUl0ZW1JbnB1dCxcbiAgRGVsZXRlSXRlbU91dHB1dCxcbiAgR2V0SXRlbUlucHV0LFxuICBHZXRJdGVtT3V0cHV0LFxuICBQdXRJdGVtSW5wdXQsXG4gIFB1dEl0ZW1PdXRwdXQsXG4gIFF1ZXJ5SW5wdXQsXG4gIFF1ZXJ5T3V0cHV0LFxuICBVcGRhdGVJdGVtSW5wdXQsXG4gIFVwZGF0ZUl0ZW1PdXRwdXRcbn0gZnJvbSAnYXdzLXNkay9jbGllbnRzL2R5bmFtb2RiJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdkeW5hbW9kYic7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9HZXQgPSAocGFyYW1zOiBHZXRJdGVtSW5wdXQpOiBQcm9taXNlPEdldEl0ZW1PdXRwdXQ+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBkeW5hbW9kYjogRHluYW1vREIgPSBuZXcgRHluYW1vREIoKTtcbiAgcGFyYW1zLkNvbnNpc3RlbnRSZWFkID0gZmFsc2U7XG5cbiAgZHluYW1vZGIuZ2V0SXRlbShwYXJhbXMsIChlcnJvcjogRXJyb3IsIHJlc3VsdHM6IEdldEl0ZW1PdXRwdXQpID0+IHtcbiAgICBpZihlcnJvcikge1xuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdmUocmVzdWx0cyk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUR5bmFtbyA9IChyZXN1bHRzOiBRdWVyeU91dHB1dCk6IGFueVtdID0+IHtcbiAgY29uc3Qge0l0ZW1zOiBpdGVtc30gPSByZXN1bHRzO1xuICBjb25zdCBkYXRhOiBhbnlbXSA9IFtdO1xuXG4gIGZvcihsZXQgaWR4OiBudW1iZXIgPSAwLCBsZW4gPSBpdGVtcy5sZW5ndGg7IGlkeCA8IGxlbjsgaWR4KyspIHtcbiAgICBjb25zdCB0bXAgPSBpdGVtc1tpZHhdO1xuICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgIGxldCBrZXk7XG5cbiAgICBmb3Ioa2V5IGluIHRtcCkge1xuICAgICAgaWYodG1wLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgaWYodG1wW2tleV0uUykge1xuICAgICAgICAgIG9ialtrZXldID0gdG1wW2tleV0uUy50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2UgaWYodG1wW2tleV0uTikge1xuICAgICAgICAgIG9ialtrZXldID0gcGFyc2VGbG9hdCh0bXBba2V5XS5OKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmpba2V5XSA9IHRtcFtrZXldLkI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBkYXRhLnB1c2gob2JqKTtcbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufTtcblxuZXhwb3J0IGNvbnN0IGR5bmFtb0dldExpc3QgPSAocGFyYW1zOiBRdWVyeUlucHV0LCBpbmRleCk6IFByb21pc2U8R2V0SXRlbU91dHB1dFtdPiA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgY29uc3QgZHluYW1vZGI6IER5bmFtb0RCID0gbmV3IER5bmFtb0RCKCk7XG4gIGNvbnN0IHtDb25zaXN0ZW50UmVhZDogY29uc2lzdGVudFJlYWR9ID0gcGFyYW1zO1xuICBjb25zdCB1cGRhdGVkUGFyYW1zID0gey4uLnBhcmFtc307XG5cbiAgaWYoaW5kZXgpIHtcbiAgICB1cGRhdGVkUGFyYW1zLkV4Y2x1c2l2ZVN0YXJ0S2V5ID0gaW5kZXg7XG4gIH1cblxuICBpZighY29uc2lzdGVudFJlYWQpIHtcbiAgICB1cGRhdGVkUGFyYW1zLkNvbnNpc3RlbnRSZWFkID0gZmFsc2U7XG4gIH1cblxuICBkeW5hbW9kYi5xdWVyeSh1cGRhdGVkUGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IFF1ZXJ5T3V0cHV0KSA9PiB7XG4gICAgaWYoZXJyb3IpIHtcbiAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgIH1cbiAgICAvLyBTYXZlIGxpc3Qgb2YgaXRlbXNcbiAgICBjb25zdCBsaXN0OiBhbnlbXSA9IHBhcnNlRHluYW1vKG91dHB1dCk7XG4gICAgY29uc3Qge0xhc3RFdmFsdWF0ZWRLZXk6IGxhc3RLZXl9ID0gb3V0cHV0O1xuXG4gICAgaWYobGFzdEtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTYXZlIGxhc3QgaW5kZXggYmVmb3JlIGxvb3BpbmdcbiAgICAgIHJldHVybiBkeW5hbW9HZXRMaXN0KHBhcmFtcywgbGFzdEtleSk7XG4gICAgfVxuXG4gICAgLy8gUXVlcnkgY29tcGxldGUsIHJldHVybiBmaW5hbCBsaXN0XG4gICAgcmV0dXJuIHJlc29sdmUobGlzdCk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9QdXQgPSAocGFyYW1zOiBQdXRJdGVtSW5wdXQpOiBQcm9taXNlPFB1dEl0ZW1PdXRwdXQ+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBkeW5hbW9kYjogRHluYW1vREIgPSBuZXcgRHluYW1vREIoKTtcblxuICBkeW5hbW9kYi5wdXRJdGVtKHBhcmFtcywgKGVycm9yLCBvdXRwdXQ6IFB1dEl0ZW1PdXRwdXQpID0+IHtcbiAgICBpZihlcnJvcikge1xuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9VcGRhdGUgPSAocGFyYW1zOiBVcGRhdGVJdGVtSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUl0ZW1PdXRwdXQ+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvZHluYW1vZGIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgYXdzLCB7RHluYW1vREJ9IGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHtcbiAgQmF0Y2hXcml0ZUl0ZW1JbnB1dCxcbiAgQmF0Y2hXcml0ZUl0ZW1PdXRwdXQsXG4gIERlbGV0ZUl0ZW1JbnB1dCxcbiAgRGVsZXRlSXRlbU91dHB1dCxcbiAgR2V0SXRlbUlucHV0LFxuICBHZXRJdGVtT3V0cHV0LFxuICBQdXRJdGVtSW5wdXQsXG4gIFB1dEl0ZW1PdXRwdXQsXG4gIFF1ZXJ5SW5wdXQsXG4gIFF1ZXJ5T3V0cHV0LFxuICBVcGRhdGVJdGVtSW5wdXQsXG4gIFVwZGF0ZUl0ZW1PdXRwdXRcbn0gZnJvbSAnYXdzLXNkay9jbGllbnRzL2R5bmFtb2RiJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdkeW5hbW9kYic7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9HZXQgPSAocGFyYW1zOiBHZXRJdGVtSW5wdXQpOiBQcm9taXNlPEdldEl0ZW1PdXRwdXQ+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBkeW5hbW9kYjogRHluYW1vREIgPSBuZXcgRHluYW1vREIoKTtcbiAgcGFyYW1zLkNvbnNpc3RlbnRSZWFkID0gZmFsc2U7XG5cbiAgZHluYW1vZGIuZ2V0SXRlbShwYXJhbXMsIChlcnJvcjogRXJyb3IsIHJlc3VsdHM6IEdldEl0ZW1PdXRwdXQpID0+IHtcbiAgICBpZihlcnJvcikge1xuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdmUocmVzdWx0cyk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUR5bmFtbyA9IChyZXN1bHRzOiBRdWVyeU91dHB1dCk6IGFueVtdID0+IHtcbiAgY29uc3Qge0l0ZW1zOiBpdGVtc30gPSByZXN1bHRzO1xuICBjb25zdCBkYXRhOiBhbnlbXSA9IFtdO1xuXG4gIGZvcihsZXQgaWR4OiBudW1iZXIgPSAwLCBsZW4gPSBpdGVtcy5sZW5ndGg7IGlkeCA8IGxlbjsgaWR4KyspIHtcbiAgICBjb25zdCB0bXAgPSBpdGVtc1tpZHhdO1xuICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgIGxldCBrZXk7XG5cbiAgICBmb3Ioa2V5IGluIHRtcCkge1xuICAgICAgaWYodG1wLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgaWYodG1wW2tleV0uUykge1xuICAgICAgICAgIG9ialtrZXldID0gdG1wW2tleV0uUy50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2UgaWYodG1wW2tleV0uTikge1xuICAgICAgICAgIG9ialtrZXldID0gcGFyc2VGbG9hdCh0bXBba2V5XS5OKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmpba2V5XSA9IHRtcFtrZXldLkI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBkYXRhLnB1c2gob2JqKTtcbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufTtcblxuZXhwb3J0IGNvbnN0IGR5bmFtb0dldExpc3QgPSAocGFyYW1zOiBRdWVyeUlucHV0LCBpbmRleCk6IFByb21pc2U8R2V0SXRlbU91dHB1dFtdPiA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgY29uc3QgZHluYW1vZGI6IER5bmFtb0RCID0gbmV3IER5bmFtb0RCKCk7XG4gIGNvbnN0IHtDb25zaXN0ZW50UmVhZDogY29uc2lzdGVudFJlYWR9ID0gcGFyYW1zO1xuICBjb25zdCB1cGRhdGVkUGFyYW1zID0gey4uLnBhcmFtc307XG5cbiAgaWYoaW5kZXgpIHtcbiAgICB1cGRhdGVkUGFyYW1zLkV4Y2x1c2l2ZVN0YXJ0S2V5ID0gaW5kZXg7XG4gIH1cblxuICBpZighY29uc2lzdGVudFJlYWQpIHtcbiAgICB1cGRhdGVkUGFyYW1zLkNvbnNpc3RlbnRSZWFkID0gZmFsc2U7XG4gIH1cblxuICBkeW5hbW9kYi5xdWVyeSh1cGRhdGVkUGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IFF1ZXJ5T3V0cHV0KSA9PiB7XG4gICAgaWYoZXJyb3IpIHtcbiAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgIH1cbiAgICAvLyBTYXZlIGxpc3Qgb2YgaXRlbXNcbiAgICBjb25zdCBsaXN0OiBhbnlbXSA9IHBhcnNlRHluYW1vKG91dHB1dCk7XG4gICAgY29uc3Qge0xhc3RFdmFsdWF0ZWRLZXk6IGxhc3RLZXl9ID0gb3V0cHV0O1xuXG4gICAgaWYobGFzdEtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTYXZlIGxhc3QgaW5kZXggYmVmb3JlIGxvb3BpbmdcbiAgICAgIHJldHVybiBkeW5hbW9HZXRMaXN0KHBhcmFtcywgbGFzdEtleSk7XG4gICAgfVxuXG4gICAgLy8gUXVlcnkgY29tcGxldGUsIHJldHVybiBmaW5hbCBsaXN0XG4gICAgcmV0dXJuIHJlc29sdmUobGlzdCk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9QdXQgPSAocGFyYW1zOiBQdXRJdGVtSW5wdXQpOiBQcm9taXNlPFB1dEl0ZW1PdXRwdXQ+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBkeW5hbW9kYjogRHluYW1vREIgPSBuZXcgRHluYW1vREIoKTtcblxuICBkeW5hbW9kYi5wdXRJdGVtKHBhcmFtcywgKGVycm9yLCBvdXRwdXQ6IFB1dEl0ZW1PdXRwdXQpID0+IHtcbiAgICBpZihlcnJvcikge1xuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9VcGRhdGUgPSAocGFyYW1zOiBVcGRhdGVJdGVtSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUl0ZW1PdXRwdXQ+ID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICBjb25zdCBkeW5hbW9kYjogRHluYW1vREIgPSBuZXcgRHluYW1vREIoKTtcblxuICBkeW5hbW9kYi51cGRhdGVJdGVtKHBhcmFtcywgKGVycm9yOiBFcnJvciwgb3V0cHV0OiBVcGRhdGVJdGVtT3V0cHV0KSA9PiB7XG4gICAgaWYoZXJyb3IpIHtcbiAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICB9KTtcbn0pO1xuXG5leHBvcnQgY29uc3QgZHluYW1vUHV0TGlzdCA9IChwYXJhbXM6IEJhdGNoV3JpdGVJdGVtSW5wdXQpOiBQcm9taXNlPEJhdGNoV3JpdGVJdGVtT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IGR5bmFtb2RiOiBEeW5hbW9EQiA9IG5ldyBEeW5hbW9EQigpO1xuXG4gICAgZHluYW1vZGIuYmF0Y2hXcml0ZUl0ZW0ocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IEJhdGNoV3JpdGVJdGVtT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgZHluYW1vRGVsID0gKHBhcmFtczogRGVsZXRlSXRlbUlucHV0KTogUHJvbWlzZTxEZWxldGVJdGVtT3V0cHV0PiA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgY29uc3QgZHluYW1vZGI6IER5bmFtb0RCID0gbmV3IER5bmFtb0RCKCk7XG5cbiAgZHluYW1vZGIuZGVsZXRlSXRlbShwYXJhbXMsIChlcnJvciwgb3V0cHV0OiBEZWxldGVJdGVtT3V0cHV0KSA9PiB7XG4gICAgaWYoZXJyb3IpIHtcbiAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICB9KTtcbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLHFCQUE0QjtBQWdCNUIsb0JBQXFCO0FBSWQsTUFBTSxZQUFZLENBQUMsV0FBaUQsSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBQzFHLGlCQUFBQSxRQUFJLE9BQU8sT0FBTyxxQkFBTyxJQUFJLEtBQUssQ0FBQztBQUNuQyxRQUFNLFdBQXFCLElBQUksd0JBQVM7QUFDeEMsU0FBTyxpQkFBaUI7QUFFeEIsV0FBUyxRQUFRLFFBQVEsQ0FBQyxPQUFjLFlBQTJCO0FBQ2pFLFFBQUcsT0FBTztBQUNSLGFBQU8sT0FBTyxLQUFLO0FBQUEsSUFDckI7QUFFQSxXQUFPLFFBQVEsT0FBTztBQUFBLEVBQ3hCLENBQUM7QUFDSCxDQUFDO0FBRU0s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
|