parse-server 8.0.0-alpha.9 → 8.0.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 +1 -3
- package/lib/Adapters/AdapterLoader.js +1 -2
- package/lib/Adapters/Cache/RedisCacheAdapter.js +2 -2
- package/lib/Adapters/PubSub/RedisPubSub.js +22 -3
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +4 -4
- package/lib/Config.js +19 -1
- package/lib/Controllers/AnalyticsController.js +3 -3
- package/lib/Controllers/UserController.js +43 -48
- package/lib/GraphQL/helpers/objectsQueries.js +2 -1
- package/lib/GraphQL/loaders/usersMutations.js +2 -6
- package/lib/Options/Definitions.js +6 -1
- package/lib/Options/docs.js +3 -2
- package/lib/Options/index.js +1 -1
- package/lib/ParseServer.js +10 -5
- package/lib/PromiseRouter.js +2 -2
- package/lib/Routers/AggregateRouter.js +2 -2
- package/lib/Routers/AudiencesRouter.js +2 -2
- package/lib/Routers/ClassesRouter.js +5 -5
- package/lib/Routers/CloudCodeRouter.js +3 -3
- package/lib/Routers/FilesRouter.js +2 -3
- package/lib/Routers/FunctionsRouter.js +2 -2
- package/lib/Routers/GlobalConfigRouter.js +3 -3
- package/lib/Routers/GraphQLRouter.js +2 -2
- package/lib/Routers/HooksRouter.js +5 -5
- package/lib/Routers/IAPValidationRouter.js +4 -4
- package/lib/Routers/InstallationsRouter.js +2 -2
- package/lib/Routers/PagesRouter.js +22 -36
- package/lib/Routers/PublicAPIRouter.js +26 -32
- package/lib/Routers/PushRouter.js +2 -2
- package/lib/Routers/SchemasRouter.js +6 -6
- package/lib/Routers/UsersRouter.js +20 -10
- package/lib/SchemaMigrations/DefinedSchemas.js +3 -3
- package/lib/batch.js +5 -5
- package/lib/middlewares.js +29 -6
- package/lib/vendor/mongodbUrl.js +2 -2
- package/package.json +15 -17
- package/public_html/invalid_verification_link.html +3 -3
|
@@ -25,7 +25,6 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
25
25
|
}
|
|
26
26
|
verifyEmail(req) {
|
|
27
27
|
const {
|
|
28
|
-
username,
|
|
29
28
|
token: rawToken
|
|
30
29
|
} = req.query;
|
|
31
30
|
const token = rawToken && typeof rawToken !== 'string' ? rawToken.toString() : rawToken;
|
|
@@ -37,24 +36,21 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
37
36
|
if (!config.publicServerURL) {
|
|
38
37
|
return this.missingPublicServerURL();
|
|
39
38
|
}
|
|
40
|
-
if (!token
|
|
39
|
+
if (!token) {
|
|
41
40
|
return this.invalidLink(req);
|
|
42
41
|
}
|
|
43
42
|
const userController = config.userController;
|
|
44
|
-
return userController.verifyEmail(
|
|
45
|
-
const params = _querystring.default.stringify({
|
|
46
|
-
username
|
|
47
|
-
});
|
|
43
|
+
return userController.verifyEmail(token).then(() => {
|
|
48
44
|
return Promise.resolve({
|
|
49
45
|
status: 302,
|
|
50
|
-
location: `${config.verifyEmailSuccessURL}
|
|
46
|
+
location: `${config.verifyEmailSuccessURL}`
|
|
51
47
|
});
|
|
52
48
|
}, () => {
|
|
53
|
-
return this.invalidVerificationLink(req);
|
|
49
|
+
return this.invalidVerificationLink(req, token);
|
|
54
50
|
});
|
|
55
51
|
}
|
|
56
52
|
resendVerificationEmail(req) {
|
|
57
|
-
const username = req.body
|
|
53
|
+
const username = req.body?.username;
|
|
58
54
|
const appId = req.params.appId;
|
|
59
55
|
const config = _Config.default.get(appId);
|
|
60
56
|
if (!config) {
|
|
@@ -63,11 +59,12 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
63
59
|
if (!config.publicServerURL) {
|
|
64
60
|
return this.missingPublicServerURL();
|
|
65
61
|
}
|
|
66
|
-
|
|
62
|
+
const token = req.body.token;
|
|
63
|
+
if (!username && !token) {
|
|
67
64
|
return this.invalidLink(req);
|
|
68
65
|
}
|
|
69
66
|
const userController = config.userController;
|
|
70
|
-
return userController.resendVerificationEmail(username, req).then(() => {
|
|
67
|
+
return userController.resendVerificationEmail(username, req, token).then(() => {
|
|
71
68
|
return Promise.resolve({
|
|
72
69
|
status: 302,
|
|
73
70
|
location: `${config.linkSendSuccessURL}`
|
|
@@ -112,18 +109,16 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
112
109
|
return this.missingPublicServerURL();
|
|
113
110
|
}
|
|
114
111
|
const {
|
|
115
|
-
username,
|
|
116
112
|
token: rawToken
|
|
117
113
|
} = req.query;
|
|
118
114
|
const token = rawToken && typeof rawToken !== 'string' ? rawToken.toString() : rawToken;
|
|
119
|
-
if (!
|
|
115
|
+
if (!token) {
|
|
120
116
|
return this.invalidLink(req);
|
|
121
117
|
}
|
|
122
|
-
return config.userController.checkResetTokenValidity(
|
|
118
|
+
return config.userController.checkResetTokenValidity(token).then(() => {
|
|
123
119
|
const params = _querystring.default.stringify({
|
|
124
120
|
token,
|
|
125
121
|
id: config.applicationId,
|
|
126
|
-
username,
|
|
127
122
|
app: config.appName
|
|
128
123
|
});
|
|
129
124
|
return Promise.resolve({
|
|
@@ -143,24 +138,20 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
143
138
|
return this.missingPublicServerURL();
|
|
144
139
|
}
|
|
145
140
|
const {
|
|
146
|
-
username,
|
|
147
141
|
new_password,
|
|
148
142
|
token: rawToken
|
|
149
|
-
} = req.body;
|
|
143
|
+
} = req.body || {};
|
|
150
144
|
const token = rawToken && typeof rawToken !== 'string' ? rawToken.toString() : rawToken;
|
|
151
|
-
if ((!
|
|
145
|
+
if ((!token || !new_password) && req.xhr === false) {
|
|
152
146
|
return this.invalidLink(req);
|
|
153
147
|
}
|
|
154
|
-
if (!username) {
|
|
155
|
-
throw new _node.Parse.Error(_node.Parse.Error.USERNAME_MISSING, 'Missing username');
|
|
156
|
-
}
|
|
157
148
|
if (!token) {
|
|
158
149
|
throw new _node.Parse.Error(_node.Parse.Error.OTHER_CAUSE, 'Missing token');
|
|
159
150
|
}
|
|
160
151
|
if (!new_password) {
|
|
161
152
|
throw new _node.Parse.Error(_node.Parse.Error.PASSWORD_MISSING, 'Missing password');
|
|
162
153
|
}
|
|
163
|
-
return config.userController.updatePassword(
|
|
154
|
+
return config.userController.updatePassword(token, new_password).then(() => {
|
|
164
155
|
return Promise.resolve({
|
|
165
156
|
success: true
|
|
166
157
|
});
|
|
@@ -170,13 +161,17 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
170
161
|
err
|
|
171
162
|
});
|
|
172
163
|
}).then(result => {
|
|
173
|
-
const
|
|
174
|
-
username: username,
|
|
164
|
+
const queryString = {
|
|
175
165
|
token: token,
|
|
176
166
|
id: config.applicationId,
|
|
177
167
|
error: result.err,
|
|
178
168
|
app: config.appName
|
|
179
|
-
}
|
|
169
|
+
};
|
|
170
|
+
if (result?.err === 'The password reset link has expired') {
|
|
171
|
+
delete queryString.token;
|
|
172
|
+
queryString.token = token;
|
|
173
|
+
}
|
|
174
|
+
const params = _querystring.default.stringify(queryString);
|
|
180
175
|
if (req.xhr) {
|
|
181
176
|
if (result.success) {
|
|
182
177
|
return Promise.resolve({
|
|
@@ -188,8 +183,7 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
188
183
|
throw new _node.Parse.Error(_node.Parse.Error.OTHER_CAUSE, `${result.err}`);
|
|
189
184
|
}
|
|
190
185
|
}
|
|
191
|
-
const
|
|
192
|
-
const location = result.success ? `${config.passwordResetSuccessURL}?username=${encodedUsername}` : `${config.choosePasswordURL}?${params}`;
|
|
186
|
+
const location = result.success ? `${config.passwordResetSuccessURL}` : `${config.choosePasswordURL}?${params}`;
|
|
193
187
|
return Promise.resolve({
|
|
194
188
|
status: 302,
|
|
195
189
|
location
|
|
@@ -202,12 +196,12 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
202
196
|
location: req.config.invalidLinkURL
|
|
203
197
|
});
|
|
204
198
|
}
|
|
205
|
-
invalidVerificationLink(req) {
|
|
199
|
+
invalidVerificationLink(req, token) {
|
|
206
200
|
const config = req.config;
|
|
207
|
-
if (req.
|
|
201
|
+
if (req.params.appId) {
|
|
208
202
|
const params = _querystring.default.stringify({
|
|
209
|
-
|
|
210
|
-
|
|
203
|
+
appId: req.params.appId,
|
|
204
|
+
token
|
|
211
205
|
});
|
|
212
206
|
return Promise.resolve({
|
|
213
207
|
status: 302,
|
|
@@ -267,4 +261,4 @@ class PublicAPIRouter extends _PromiseRouter.default {
|
|
|
267
261
|
}
|
|
268
262
|
exports.PublicAPIRouter = PublicAPIRouter;
|
|
269
263
|
var _default = exports.default = PublicAPIRouter;
|
|
270
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX0NvbmZpZyIsIl9leHByZXNzIiwiX3BhdGgiLCJfZnMiLCJfcXVlcnlzdHJpbmciLCJfbm9kZSIsIl9EZXByZWNhdG9yIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwicHVibGljX2h0bWwiLCJwYXRoIiwicmVzb2x2ZSIsIl9fZGlybmFtZSIsInZpZXdzIiwiUHVibGljQVBJUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsImNvbnN0cnVjdG9yIiwiRGVwcmVjYXRvciIsImxvZ1J1bnRpbWVEZXByZWNhdGlvbiIsInVzYWdlIiwic29sdXRpb24iLCJ2ZXJpZnlFbWFpbCIsInJlcSIsInVzZXJuYW1lIiwidG9rZW4iLCJyYXdUb2tlbiIsInF1ZXJ5IiwidG9TdHJpbmciLCJhcHBJZCIsInBhcmFtcyIsImNvbmZpZyIsIkNvbmZpZyIsImdldCIsImludmFsaWRSZXF1ZXN0IiwicHVibGljU2VydmVyVVJMIiwibWlzc2luZ1B1YmxpY1NlcnZlclVSTCIsImludmFsaWRMaW5rIiwidXNlckNvbnRyb2xsZXIiLCJ0aGVuIiwicXMiLCJzdHJpbmdpZnkiLCJQcm9taXNlIiwic3RhdHVzIiwibG9jYXRpb24iLCJ2ZXJpZnlFbWFpbFN1Y2Nlc3NVUkwiLCJpbnZhbGlkVmVyaWZpY2F0aW9uTGluayIsInJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsIiwiYm9keSIsImxpbmtTZW5kU3VjY2Vzc1VSTCIsImxpbmtTZW5kRmFpbFVSTCIsImNoYW5nZVBhc3N3b3JkIiwicmVqZWN0IiwiaWQiLCJ0ZXh0IiwiZnMiLCJyZWFkRmlsZSIsImVyciIsImRhdGEiLCJyZXBsYWNlIiwicmVxdWVzdFJlc2V0UGFzc3dvcmQiLCJjaGVja1Jlc2V0VG9rZW5WYWxpZGl0eSIsImFwcGxpY2F0aW9uSWQiLCJhcHAiLCJhcHBOYW1lIiwiY2hvb3NlUGFzc3dvcmRVUkwiLCJyZXNldFBhc3N3b3JkIiwibmV3X3Bhc3N3b3JkIiwieGhyIiwiUGFyc2UiLCJFcnJvciIsIlVTRVJOQU1FX01JU1NJTkciLCJPVEhFUl9DQVVTRSIsIlBBU1NXT1JEX01JU1NJTkciLCJ1cGRhdGVQYXNzd29yZCIsInN1Y2Nlc3MiLCJyZXN1bHQiLCJlcnJvciIsInJlc3BvbnNlIiwiZW5jb2RlZFVzZXJuYW1lIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicGFzc3dvcmRSZXNldFN1Y2Nlc3NVUkwiLCJpbnZhbGlkTGlua1VSTCIsImludmFsaWRWZXJpZmljYXRpb25MaW5rVVJMIiwibWVzc2FnZSIsInNldENvbmZpZyIsIm1vdW50Um91dGVzIiwicm91dGUiLCJleHByZXNzUm91dGVyIiwicm91dGVyIiwiZXhwcmVzcyIsIlJvdXRlciIsInVzZSIsInN0YXRpYyIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1B1YmxpY0FQSVJvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vQ29uZmlnJztcbmltcG9ydCBleHByZXNzIGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHFzIGZyb20gJ3F1ZXJ5c3RyaW5nJztcbmltcG9ydCB7IFBhcnNlIH0gZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgRGVwcmVjYXRvciBmcm9tICcuLi9EZXByZWNhdG9yL0RlcHJlY2F0b3InO1xuXG5jb25zdCBwdWJsaWNfaHRtbCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi9wdWJsaWNfaHRtbCcpO1xuY29uc3Qgdmlld3MgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vLi4vdmlld3MnKTtcblxuZXhwb3J0IGNsYXNzIFB1YmxpY0FQSVJvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIERlcHJlY2F0b3IubG9nUnVudGltZURlcHJlY2F0aW9uKHtcbiAgICAgIHVzYWdlOiAnUHVibGljQVBJUm91dGVyJyxcbiAgICAgIHNvbHV0aW9uOiAncGFnZXMuZW5hYmxlUm91dGVyJ1xuICAgIH0pO1xuICB9XG4gIHZlcmlmeUVtYWlsKHJlcSkge1xuICAgIGNvbnN0IHsgdXNlcm5hbWUsIHRva2VuOiByYXdUb2tlbiB9ID0gcmVxLnF1ZXJ5O1xuICAgIGNvbnN0IHRva2VuID0gcmF3VG9rZW4gJiYgdHlwZW9mIHJhd1Rva2VuICE9PSAnc3RyaW5nJyA/IHJhd1Rva2VuLnRvU3RyaW5nKCkgOiByYXdUb2tlbjtcblxuICAgIGNvbnN0IGFwcElkID0gcmVxLnBhcmFtcy5hcHBJZDtcbiAgICBjb25zdCBjb25maWcgPSBDb25maWcuZ2V0KGFwcElkKTtcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICB0aGlzLmludmFsaWRSZXF1ZXN0KCk7XG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcucHVibGljU2VydmVyVVJMKSB7XG4gICAgICByZXR1cm4gdGhpcy5taXNzaW5nUHVibGljU2VydmVyVVJMKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0b2tlbiB8fCAhdXNlcm5hbWUpIHtcbiAgICAgIHJldHVybiB0aGlzLmludmFsaWRMaW5rKHJlcSk7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlckNvbnRyb2xsZXIgPSBjb25maWcudXNlckNvbnRyb2xsZXI7XG4gICAgcmV0dXJuIHVzZXJDb250cm9sbGVyLnZlcmlmeUVtYWlsKHVzZXJuYW1lLCB0b2tlbikudGhlbihcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gcXMuc3RyaW5naWZ5KHsgdXNlcm5hbWUgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIHN0YXR1czogMzAyLFxuICAgICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcudmVyaWZ5RW1haWxTdWNjZXNzVVJMfT8ke3BhcmFtc31gLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmludmFsaWRWZXJpZmljYXRpb25MaW5rKHJlcSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHJlcSkge1xuICAgIGNvbnN0IHVzZXJuYW1lID0gcmVxLmJvZHkudXNlcm5hbWU7XG4gICAgY29uc3QgYXBwSWQgPSByZXEucGFyYW1zLmFwcElkO1xuICAgIGNvbnN0IGNvbmZpZyA9IENvbmZpZy5nZXQoYXBwSWQpO1xuXG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHRoaXMuaW52YWxpZFJlcXVlc3QoKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5wdWJsaWNTZXJ2ZXJVUkwpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pc3NpbmdQdWJsaWNTZXJ2ZXJVUkwoKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZXJuYW1lKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnZhbGlkTGluayhyZXEpO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJDb250cm9sbGVyID0gY29uZmlnLnVzZXJDb250cm9sbGVyO1xuXG4gICAgcmV0dXJuIHVzZXJDb250cm9sbGVyLnJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHVzZXJuYW1lLCByZXEpLnRoZW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIHN0YXR1czogMzAyLFxuICAgICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcubGlua1NlbmRTdWNjZXNzVVJMfWAsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICAgICAgbG9jYXRpb246IGAke2NvbmZpZy5saW5rU2VuZEZhaWxVUkx9YCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGNoYW5nZVBhc3N3b3JkKHJlcSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSBDb25maWcuZ2V0KHJlcS5xdWVyeS5pZCk7XG5cbiAgICAgIGlmICghY29uZmlnKSB7XG4gICAgICAgIHRoaXMuaW52YWxpZFJlcXVlc3QoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjb25maWcucHVibGljU2VydmVyVVJMKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHtcbiAgICAgICAgICBzdGF0dXM6IDQwNCxcbiAgICAgICAgICB0ZXh0OiAnTm90IGZvdW5kLicsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gU2hvdWxkIHdlIGtlZXAgdGhlIGZpbGUgaW4gbWVtb3J5IG9yIGxlYXZlIGxpa2UgdGhhdD9cbiAgICAgIGZzLnJlYWRGaWxlKHBhdGgucmVzb2x2ZSh2aWV3cywgJ2Nob29zZV9wYXNzd29yZCcpLCAndXRmLTgnLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgnUEFSU0VfU0VSVkVSX1VSTCcsIGAnJHtjb25maWcucHVibGljU2VydmVyVVJMfSdgKTtcbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgdGV4dDogZGF0YSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlcXVlc3RSZXNldFBhc3N3b3JkKHJlcSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG5cbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhpcy5pbnZhbGlkUmVxdWVzdCgpO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLnB1YmxpY1NlcnZlclVSTCkge1xuICAgICAgcmV0dXJuIHRoaXMubWlzc2luZ1B1YmxpY1NlcnZlclVSTCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgdXNlcm5hbWUsIHRva2VuOiByYXdUb2tlbiB9ID0gcmVxLnF1ZXJ5O1xuICAgIGNvbnN0IHRva2VuID0gcmF3VG9rZW4gJiYgdHlwZW9mIHJhd1Rva2VuICE9PSAnc3RyaW5nJyA/IHJhd1Rva2VuLnRvU3RyaW5nKCkgOiByYXdUb2tlbjtcblxuICAgIGlmICghdXNlcm5hbWUgfHwgIXRva2VuKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnZhbGlkTGluayhyZXEpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWcudXNlckNvbnRyb2xsZXIuY2hlY2tSZXNldFRva2VuVmFsaWRpdHkodXNlcm5hbWUsIHRva2VuKS50aGVuKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBxcy5zdHJpbmdpZnkoe1xuICAgICAgICAgIHRva2VuLFxuICAgICAgICAgIGlkOiBjb25maWcuYXBwbGljYXRpb25JZCxcbiAgICAgICAgICB1c2VybmFtZSxcbiAgICAgICAgICBhcHA6IGNvbmZpZy5hcHBOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICAgICAgbG9jYXRpb246IGAke2NvbmZpZy5jaG9vc2VQYXNzd29yZFVSTH0/JHtwYXJhbXN9YCxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkTGluayhyZXEpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZXNldFBhc3N3b3JkKHJlcSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG5cbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhpcy5pbnZhbGlkUmVxdWVzdCgpO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLnB1YmxpY1NlcnZlclVSTCkge1xuICAgICAgcmV0dXJuIHRoaXMubWlzc2luZ1B1YmxpY1NlcnZlclVSTCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgdXNlcm5hbWUsIG5ld19wYXNzd29yZCwgdG9rZW46IHJhd1Rva2VuIH0gPSByZXEuYm9keTtcbiAgICBjb25zdCB0b2tlbiA9IHJhd1Rva2VuICYmIHR5cGVvZiByYXdUb2tlbiAhPT0gJ3N0cmluZycgPyByYXdUb2tlbi50b1N0cmluZygpIDogcmF3VG9rZW47XG5cbiAgICBpZiAoKCF1c2VybmFtZSB8fCAhdG9rZW4gfHwgIW5ld19wYXNzd29yZCkgJiYgcmVxLnhociA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmludmFsaWRMaW5rKHJlcSk7XG4gICAgfVxuXG4gICAgaWYgKCF1c2VybmFtZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlVTRVJOQU1FX01JU1NJTkcsICdNaXNzaW5nIHVzZXJuYW1lJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9USEVSX0NBVVNFLCAnTWlzc2luZyB0b2tlbicpO1xuICAgIH1cblxuICAgIGlmICghbmV3X3Bhc3N3b3JkKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuUEFTU1dPUkRfTUlTU0lORywgJ01pc3NpbmcgcGFzc3dvcmQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnLnVzZXJDb250cm9sbGVyXG4gICAgICAudXBkYXRlUGFzc3dvcmQodXNlcm5hbWUsIHRva2VuLCBuZXdfcGFzc3dvcmQpXG4gICAgICAudGhlbihcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgZXJyLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApXG4gICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBxcy5zdHJpbmdpZnkoe1xuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgICB0b2tlbjogdG9rZW4sXG4gICAgICAgICAgaWQ6IGNvbmZpZy5hcHBsaWNhdGlvbklkLFxuICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyLFxuICAgICAgICAgIGFwcDogY29uZmlnLmFwcE5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXEueGhyKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgc3RhdHVzOiAyMDAsXG4gICAgICAgICAgICAgIHJlc3BvbnNlOiAnUGFzc3dvcmQgc3VjY2Vzc2Z1bGx5IHJlc2V0JyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzdWx0LmVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9USEVSX0NBVVNFLCBgJHtyZXN1bHQuZXJyfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVuY29kZWRVc2VybmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudCh1c2VybmFtZSk7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gcmVzdWx0LnN1Y2Nlc3NcbiAgICAgICAgICA/IGAke2NvbmZpZy5wYXNzd29yZFJlc2V0U3VjY2Vzc1VSTH0/dXNlcm5hbWU9JHtlbmNvZGVkVXNlcm5hbWV9YFxuICAgICAgICAgIDogYCR7Y29uZmlnLmNob29zZVBhc3N3b3JkVVJMfT8ke3BhcmFtc31gO1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIHN0YXR1czogMzAyLFxuICAgICAgICAgIGxvY2F0aW9uLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaW52YWxpZExpbmsocmVxKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICBzdGF0dXM6IDMwMixcbiAgICAgIGxvY2F0aW9uOiByZXEuY29uZmlnLmludmFsaWRMaW5rVVJMLFxuICAgIH0pO1xuICB9XG5cbiAgaW52YWxpZFZlcmlmaWNhdGlvbkxpbmsocmVxKSB7XG4gICAgY29uc3QgY29uZmlnID0gcmVxLmNvbmZpZztcbiAgICBpZiAocmVxLnF1ZXJ5LnVzZXJuYW1lICYmIHJlcS5wYXJhbXMuYXBwSWQpIHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHFzLnN0cmluZ2lmeSh7XG4gICAgICAgIHVzZXJuYW1lOiByZXEucXVlcnkudXNlcm5hbWUsXG4gICAgICAgIGFwcElkOiByZXEucGFyYW1zLmFwcElkLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcuaW52YWxpZFZlcmlmaWNhdGlvbkxpbmtVUkx9PyR7cGFyYW1zfWAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZExpbmsocmVxKTtcbiAgICB9XG4gIH1cblxuICBtaXNzaW5nUHVibGljU2VydmVyVVJMKCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgdGV4dDogJ05vdCBmb3VuZC4nLFxuICAgICAgc3RhdHVzOiA0MDQsXG4gICAgfSk7XG4gIH1cblxuICBpbnZhbGlkUmVxdWVzdCgpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcigpO1xuICAgIGVycm9yLnN0YXR1cyA9IDQwMztcbiAgICBlcnJvci5tZXNzYWdlID0gJ3VuYXV0aG9yaXplZCc7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBzZXRDb25maWcocmVxKSB7XG4gICAgcmVxLmNvbmZpZyA9IENvbmZpZy5nZXQocmVxLnBhcmFtcy5hcHBJZCk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdHRVQnLFxuICAgICAgJy9hcHBzLzphcHBJZC92ZXJpZnlfZW1haWwnLFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgdGhpcy5zZXRDb25maWcocmVxKTtcbiAgICAgIH0sXG4gICAgICByZXEgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy52ZXJpZnlFbWFpbChyZXEpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9hcHBzLzphcHBJZC9yZXNlbmRfdmVyaWZpY2F0aW9uX2VtYWlsJyxcbiAgICAgIHJlcSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q29uZmlnKHJlcSk7XG4gICAgICB9LFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzZW5kVmVyaWZpY2F0aW9uRW1haWwocmVxKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9hcHBzL2Nob29zZV9wYXNzd29yZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jaGFuZ2VQYXNzd29yZChyZXEpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdQT1NUJyxcbiAgICAgICcvYXBwcy86YXBwSWQvcmVxdWVzdF9wYXNzd29yZF9yZXNldCcsXG4gICAgICByZXEgPT4ge1xuICAgICAgICB0aGlzLnNldENvbmZpZyhyZXEpO1xuICAgICAgfSxcbiAgICAgIHJlcSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc2V0UGFzc3dvcmQocmVxKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdHRVQnLFxuICAgICAgJy9hcHBzLzphcHBJZC9yZXF1ZXN0X3Bhc3N3b3JkX3Jlc2V0JyxcbiAgICAgIHJlcSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q29uZmlnKHJlcSk7XG4gICAgICB9LFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlc2V0UGFzc3dvcmQocmVxKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZXhwcmVzc1JvdXRlcigpIHtcbiAgICBjb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuICAgIHJvdXRlci51c2UoJy9hcHBzJywgZXhwcmVzcy5zdGF0aWMocHVibGljX2h0bWwpKTtcbiAgICByb3V0ZXIudXNlKCcvJywgc3VwZXIuZXhwcmVzc1JvdXRlcigpKTtcbiAgICByZXR1cm4gcm91dGVyO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFB1YmxpY0FQSVJvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksR0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sS0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQWtELFNBQUFELHVCQUFBUyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FB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
|
|
264
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX0NvbmZpZyIsIl9leHByZXNzIiwiX3BhdGgiLCJfZnMiLCJfcXVlcnlzdHJpbmciLCJfbm9kZSIsIl9EZXByZWNhdG9yIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwicHVibGljX2h0bWwiLCJwYXRoIiwicmVzb2x2ZSIsIl9fZGlybmFtZSIsInZpZXdzIiwiUHVibGljQVBJUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsImNvbnN0cnVjdG9yIiwiRGVwcmVjYXRvciIsImxvZ1J1bnRpbWVEZXByZWNhdGlvbiIsInVzYWdlIiwic29sdXRpb24iLCJ2ZXJpZnlFbWFpbCIsInJlcSIsInRva2VuIiwicmF3VG9rZW4iLCJxdWVyeSIsInRvU3RyaW5nIiwiYXBwSWQiLCJwYXJhbXMiLCJjb25maWciLCJDb25maWciLCJnZXQiLCJpbnZhbGlkUmVxdWVzdCIsInB1YmxpY1NlcnZlclVSTCIsIm1pc3NpbmdQdWJsaWNTZXJ2ZXJVUkwiLCJpbnZhbGlkTGluayIsInVzZXJDb250cm9sbGVyIiwidGhlbiIsIlByb21pc2UiLCJzdGF0dXMiLCJsb2NhdGlvbiIsInZlcmlmeUVtYWlsU3VjY2Vzc1VSTCIsImludmFsaWRWZXJpZmljYXRpb25MaW5rIiwicmVzZW5kVmVyaWZpY2F0aW9uRW1haWwiLCJ1c2VybmFtZSIsImJvZHkiLCJsaW5rU2VuZFN1Y2Nlc3NVUkwiLCJsaW5rU2VuZEZhaWxVUkwiLCJjaGFuZ2VQYXNzd29yZCIsInJlamVjdCIsImlkIiwidGV4dCIsImZzIiwicmVhZEZpbGUiLCJlcnIiLCJkYXRhIiwicmVwbGFjZSIsInJlcXVlc3RSZXNldFBhc3N3b3JkIiwiY2hlY2tSZXNldFRva2VuVmFsaWRpdHkiLCJxcyIsInN0cmluZ2lmeSIsImFwcGxpY2F0aW9uSWQiLCJhcHAiLCJhcHBOYW1lIiwiY2hvb3NlUGFzc3dvcmRVUkwiLCJyZXNldFBhc3N3b3JkIiwibmV3X3Bhc3N3b3JkIiwieGhyIiwiUGFyc2UiLCJFcnJvciIsIk9USEVSX0NBVVNFIiwiUEFTU1dPUkRfTUlTU0lORyIsInVwZGF0ZVBhc3N3b3JkIiwic3VjY2VzcyIsInJlc3VsdCIsInF1ZXJ5U3RyaW5nIiwiZXJyb3IiLCJyZXNwb25zZSIsInBhc3N3b3JkUmVzZXRTdWNjZXNzVVJMIiwiaW52YWxpZExpbmtVUkwiLCJpbnZhbGlkVmVyaWZpY2F0aW9uTGlua1VSTCIsIm1lc3NhZ2UiLCJzZXRDb25maWciLCJtb3VudFJvdXRlcyIsInJvdXRlIiwiZXhwcmVzc1JvdXRlciIsInJvdXRlciIsImV4cHJlc3MiLCJSb3V0ZXIiLCJ1c2UiLCJzdGF0aWMiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9QdWJsaWNBUElSb3V0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5pbXBvcnQgQ29uZmlnIGZyb20gJy4uL0NvbmZpZyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBxcyBmcm9tICdxdWVyeXN0cmluZyc7XG5pbXBvcnQgeyBQYXJzZSB9IGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IERlcHJlY2F0b3IgZnJvbSAnLi4vRGVwcmVjYXRvci9EZXByZWNhdG9yJztcblxuY29uc3QgcHVibGljX2h0bWwgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vLi4vcHVibGljX2h0bWwnKTtcbmNvbnN0IHZpZXdzID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uLy4uL3ZpZXdzJyk7XG5cbmV4cG9ydCBjbGFzcyBQdWJsaWNBUElSb3V0ZXIgZXh0ZW5kcyBQcm9taXNlUm91dGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBEZXByZWNhdG9yLmxvZ1J1bnRpbWVEZXByZWNhdGlvbih7XG4gICAgICB1c2FnZTogJ1B1YmxpY0FQSVJvdXRlcicsXG4gICAgICBzb2x1dGlvbjogJ3BhZ2VzLmVuYWJsZVJvdXRlcidcbiAgICB9KTtcbiAgfVxuICB2ZXJpZnlFbWFpbChyZXEpIHtcbiAgICBjb25zdCB7IHRva2VuOiByYXdUb2tlbiB9ID0gcmVxLnF1ZXJ5O1xuICAgIGNvbnN0IHRva2VuID0gcmF3VG9rZW4gJiYgdHlwZW9mIHJhd1Rva2VuICE9PSAnc3RyaW5nJyA/IHJhd1Rva2VuLnRvU3RyaW5nKCkgOiByYXdUb2tlbjtcblxuICAgIGNvbnN0IGFwcElkID0gcmVxLnBhcmFtcy5hcHBJZDtcbiAgICBjb25zdCBjb25maWcgPSBDb25maWcuZ2V0KGFwcElkKTtcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICB0aGlzLmludmFsaWRSZXF1ZXN0KCk7XG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcucHVibGljU2VydmVyVVJMKSB7XG4gICAgICByZXR1cm4gdGhpcy5taXNzaW5nUHVibGljU2VydmVyVVJMKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZExpbmsocmVxKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyQ29udHJvbGxlciA9IGNvbmZpZy51c2VyQ29udHJvbGxlcjtcbiAgICByZXR1cm4gdXNlckNvbnRyb2xsZXIudmVyaWZ5RW1haWwodG9rZW4pLnRoZW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIHN0YXR1czogMzAyLFxuICAgICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcudmVyaWZ5RW1haWxTdWNjZXNzVVJMfWAsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZFZlcmlmaWNhdGlvbkxpbmsocmVxLCB0b2tlbik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHJlcSkge1xuICAgIGNvbnN0IHVzZXJuYW1lID0gcmVxLmJvZHk/LnVzZXJuYW1lO1xuICAgIGNvbnN0IGFwcElkID0gcmVxLnBhcmFtcy5hcHBJZDtcbiAgICBjb25zdCBjb25maWcgPSBDb25maWcuZ2V0KGFwcElkKTtcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICB0aGlzLmludmFsaWRSZXF1ZXN0KCk7XG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcucHVibGljU2VydmVyVVJMKSB7XG4gICAgICByZXR1cm4gdGhpcy5taXNzaW5nUHVibGljU2VydmVyVVJMKCk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSByZXEuYm9keS50b2tlbjtcblxuICAgIGlmICghdXNlcm5hbWUgJiYgIXRva2VuKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnZhbGlkTGluayhyZXEpO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJDb250cm9sbGVyID0gY29uZmlnLnVzZXJDb250cm9sbGVyO1xuXG4gICAgcmV0dXJuIHVzZXJDb250cm9sbGVyLnJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHVzZXJuYW1lLCByZXEsIHRva2VuKS50aGVuKFxuICAgICAgKCkgPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICBzdGF0dXM6IDMwMixcbiAgICAgICAgICBsb2NhdGlvbjogYCR7Y29uZmlnLmxpbmtTZW5kU3VjY2Vzc1VSTH1gLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIHN0YXR1czogMzAyLFxuICAgICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcubGlua1NlbmRGYWlsVVJMfWAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBjaGFuZ2VQYXNzd29yZChyZXEpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gQ29uZmlnLmdldChyZXEucXVlcnkuaWQpO1xuXG4gICAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICB0aGlzLmludmFsaWRSZXF1ZXN0KCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghY29uZmlnLnB1YmxpY1NlcnZlclVSTCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSh7XG4gICAgICAgICAgc3RhdHVzOiA0MDQsXG4gICAgICAgICAgdGV4dDogJ05vdCBmb3VuZC4nLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIFNob3VsZCB3ZSBrZWVwIHRoZSBmaWxlIGluIG1lbW9yeSBvciBsZWF2ZSBsaWtlIHRoYXQ/XG4gICAgICBmcy5yZWFkRmlsZShwYXRoLnJlc29sdmUodmlld3MsICdjaG9vc2VfcGFzc3dvcmQnKSwgJ3V0Zi04JywgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoJ1BBUlNFX1NFUlZFUl9VUkwnLCBgJyR7Y29uZmlnLnB1YmxpY1NlcnZlclVSTH0nYCk7XG4gICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgIHRleHQ6IGRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXF1ZXN0UmVzZXRQYXNzd29yZChyZXEpIHtcbiAgICBjb25zdCBjb25maWcgPSByZXEuY29uZmlnO1xuXG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHRoaXMuaW52YWxpZFJlcXVlc3QoKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5wdWJsaWNTZXJ2ZXJVUkwpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pc3NpbmdQdWJsaWNTZXJ2ZXJVUkwoKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHRva2VuOiByYXdUb2tlbiB9ID0gcmVxLnF1ZXJ5O1xuICAgIGNvbnN0IHRva2VuID0gcmF3VG9rZW4gJiYgdHlwZW9mIHJhd1Rva2VuICE9PSAnc3RyaW5nJyA/IHJhd1Rva2VuLnRvU3RyaW5nKCkgOiByYXdUb2tlbjtcblxuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmludmFsaWRMaW5rKHJlcSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZy51c2VyQ29udHJvbGxlci5jaGVja1Jlc2V0VG9rZW5WYWxpZGl0eSh0b2tlbikudGhlbihcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gcXMuc3RyaW5naWZ5KHtcbiAgICAgICAgICB0b2tlbixcbiAgICAgICAgICBpZDogY29uZmlnLmFwcGxpY2F0aW9uSWQsXG4gICAgICAgICAgYXBwOiBjb25maWcuYXBwTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIHN0YXR1czogMzAyLFxuICAgICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcuY2hvb3NlUGFzc3dvcmRVUkx9PyR7cGFyYW1zfWAsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZExpbmsocmVxKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcmVzZXRQYXNzd29yZChyZXEpIHtcbiAgICBjb25zdCBjb25maWcgPSByZXEuY29uZmlnO1xuXG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHRoaXMuaW52YWxpZFJlcXVlc3QoKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5wdWJsaWNTZXJ2ZXJVUkwpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pc3NpbmdQdWJsaWNTZXJ2ZXJVUkwoKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5ld19wYXNzd29yZCwgdG9rZW46IHJhd1Rva2VuIH0gPSByZXEuYm9keSB8fCB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHJhd1Rva2VuICYmIHR5cGVvZiByYXdUb2tlbiAhPT0gJ3N0cmluZycgPyByYXdUb2tlbi50b1N0cmluZygpIDogcmF3VG9rZW47XG5cbiAgICBpZiAoKCF0b2tlbiB8fCAhbmV3X3Bhc3N3b3JkKSAmJiByZXEueGhyID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZExpbmsocmVxKTtcbiAgICB9XG5cbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT1RIRVJfQ0FVU0UsICdNaXNzaW5nIHRva2VuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFuZXdfcGFzc3dvcmQpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5QQVNTV09SRF9NSVNTSU5HLCAnTWlzc2luZyBwYXNzd29yZCcpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWcudXNlckNvbnRyb2xsZXJcbiAgICAgIC51cGRhdGVQYXNzd29yZCh0b2tlbiwgbmV3X3Bhc3N3b3JkKVxuICAgICAgLnRoZW4oXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSB7XG4gICAgICAgICAgdG9rZW46IHRva2VuLFxuICAgICAgICAgIGlkOiBjb25maWcuYXBwbGljYXRpb25JZCxcbiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycixcbiAgICAgICAgICBhcHA6IGNvbmZpZy5hcHBOYW1lLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChyZXN1bHQ/LmVyciA9PT0gJ1RoZSBwYXNzd29yZCByZXNldCBsaW5rIGhhcyBleHBpcmVkJykge1xuICAgICAgICAgIGRlbGV0ZSBxdWVyeVN0cmluZy50b2tlbjtcbiAgICAgICAgICBxdWVyeVN0cmluZy50b2tlbiA9IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHFzLnN0cmluZ2lmeShxdWVyeVN0cmluZyk7XG5cbiAgICAgICAgaWYgKHJlcS54aHIpIHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgICAgICAgcmVzcG9uc2U6ICdQYXNzd29yZCBzdWNjZXNzZnVsbHkgcmVzZXQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXN1bHQuZXJyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT1RIRVJfQ0FVU0UsIGAke3Jlc3VsdC5lcnJ9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSByZXN1bHQuc3VjY2Vzc1xuICAgICAgICAgID8gYCR7Y29uZmlnLnBhc3N3b3JkUmVzZXRTdWNjZXNzVVJMfWBcbiAgICAgICAgICA6IGAke2NvbmZpZy5jaG9vc2VQYXNzd29yZFVSTH0/JHtwYXJhbXN9YDtcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICBzdGF0dXM6IDMwMixcbiAgICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGludmFsaWRMaW5rKHJlcSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICBsb2NhdGlvbjogcmVxLmNvbmZpZy5pbnZhbGlkTGlua1VSTCxcbiAgICB9KTtcbiAgfVxuXG4gIGludmFsaWRWZXJpZmljYXRpb25MaW5rKHJlcSwgdG9rZW4pIHtcbiAgICBjb25zdCBjb25maWcgPSByZXEuY29uZmlnO1xuICAgIGlmIChyZXEucGFyYW1zLmFwcElkKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBxcy5zdHJpbmdpZnkoe1xuICAgICAgICBhcHBJZDogcmVxLnBhcmFtcy5hcHBJZCxcbiAgICAgICAgdG9rZW4sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICBzdGF0dXM6IDMwMixcbiAgICAgICAgbG9jYXRpb246IGAke2NvbmZpZy5pbnZhbGlkVmVyaWZpY2F0aW9uTGlua1VSTH0/JHtwYXJhbXN9YCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnZhbGlkTGluayhyZXEpO1xuICAgIH1cbiAgfVxuXG4gIG1pc3NpbmdQdWJsaWNTZXJ2ZXJVUkwoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICB0ZXh0OiAnTm90IGZvdW5kLicsXG4gICAgICBzdGF0dXM6IDQwNCxcbiAgICB9KTtcbiAgfVxuXG4gIGludmFsaWRSZXF1ZXN0KCkge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKCk7XG4gICAgZXJyb3Iuc3RhdHVzID0gNDAzO1xuICAgIGVycm9yLm1lc3NhZ2UgPSAndW5hdXRob3JpemVkJztcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIHNldENvbmZpZyhyZXEpIHtcbiAgICByZXEuY29uZmlnID0gQ29uZmlnLmdldChyZXEucGFyYW1zLmFwcElkKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0dFVCcsXG4gICAgICAnL2FwcHMvOmFwcElkL3ZlcmlmeV9lbWFpbCcsXG4gICAgICByZXEgPT4ge1xuICAgICAgICB0aGlzLnNldENvbmZpZyhyZXEpO1xuICAgICAgfSxcbiAgICAgIHJlcSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZlcmlmeUVtYWlsKHJlcSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMucm91dGUoXG4gICAgICAnUE9TVCcsXG4gICAgICAnL2FwcHMvOmFwcElkL3Jlc2VuZF92ZXJpZmljYXRpb25fZW1haWwnLFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgdGhpcy5zZXRDb25maWcocmVxKTtcbiAgICAgIH0sXG4gICAgICByZXEgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNlbmRWZXJpZmljYXRpb25FbWFpbChyZXEpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL2FwcHMvY2hvb3NlX3Bhc3N3b3JkJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNoYW5nZVBhc3N3b3JkKHJlcSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9hcHBzLzphcHBJZC9yZXF1ZXN0X3Bhc3N3b3JkX3Jlc2V0JyxcbiAgICAgIHJlcSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q29uZmlnKHJlcSk7XG4gICAgICB9LFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzZXRQYXNzd29yZChyZXEpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0dFVCcsXG4gICAgICAnL2FwcHMvOmFwcElkL3JlcXVlc3RfcGFzc3dvcmRfcmVzZXQnLFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgdGhpcy5zZXRDb25maWcocmVxKTtcbiAgICAgIH0sXG4gICAgICByZXEgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzZXRQYXNzd29yZChyZXEpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBleHByZXNzUm91dGVyKCkge1xuICAgIGNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG4gICAgcm91dGVyLnVzZSgnL2FwcHMnLCBleHByZXNzLnN0YXRpYyhwdWJsaWNfaHRtbCkpO1xuICAgIHJvdXRlci51c2UoJy8nLCBzdXBlci5leHByZXNzUm91dGVyKCkpO1xuICAgIHJldHVybiByb3V0ZXI7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUHVibGljQVBJUm91dGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxHQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFBa0QsU0FBQUQsdUJBQUFTLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFbEQsTUFBTUcsV0FBVyxHQUFHQyxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsU0FBUyxFQUFFLG1CQUFtQixDQUFDO0FBQ2hFLE1BQU1DLEtBQUssR0FBR0gsYUFBSSxDQUFDQyxPQUFPLENBQUNDLFNBQVMsRUFBRSxhQUFhLENBQUM7QUFFN0MsTUFBTUUsZUFBZSxTQUFTQyxzQkFBYSxDQUFDO0VBQ2pEQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixLQUFLLENBQUMsQ0FBQztJ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
|
|
@@ -28,7 +28,7 @@ class PushRouter extends _PromiseRouter.default {
|
|
|
28
28
|
resolve = _resolve;
|
|
29
29
|
});
|
|
30
30
|
let pushStatusId;
|
|
31
|
-
pushController.sendPush(req.body, where, req.config, req.auth, objectId => {
|
|
31
|
+
pushController.sendPush(req.body || {}, where, req.config, req.auth, objectId => {
|
|
32
32
|
pushStatusId = objectId;
|
|
33
33
|
resolve({
|
|
34
34
|
headers: {
|
|
@@ -72,4 +72,4 @@ class PushRouter extends _PromiseRouter.default {
|
|
|
72
72
|
}
|
|
73
73
|
exports.PushRouter = PushRouter;
|
|
74
74
|
var _default = exports.default = PushRouter;
|
|
75
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX25vZGUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJQdXNoUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsIm1vdW50Um91dGVzIiwicm91dGUiLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyIsImhhbmRsZVBPU1QiLCJyZXEiLCJhdXRoIiwiaXNSZWFkT25seSIsIlBhcnNlIiwiRXJyb3IiLCJPUEVSQVRJT05fRk9SQklEREVOIiwicHVzaENvbnRyb2xsZXIiLCJjb25maWciLCJQVVNIX01JU0NPTkZJR1VSRUQiLCJ3aGVyZSIsImdldFF1ZXJ5Q29uZGl0aW9uIiwicmVzb2x2ZSIsInByb21pc2UiLCJQcm9taXNlIiwiX3Jlc29sdmUiLCJwdXNoU3RhdHVzSWQiLCJzZW5kUHVzaCIsImJvZHkiLCJvYmplY3RJZCIsImhlYWRlcnMiLCJyZXNwb25zZSIsInJlc3VsdCIsImNhdGNoIiwiZXJyIiwibG9nZ2VyQ29udHJvbGxlciIsImVycm9yIiwiaGFzV2hlcmUiLCJoYXNDaGFubmVscyIsImNoYW5uZWxzIiwiJGluIiwiZXhwb3J0cyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvUHVzaFJvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IHsgUGFyc2UgfSBmcm9tICdwYXJzZS9ub2RlJztcblxuZXhwb3J0IGNsYXNzIFB1c2hSb3V0ZXIgZXh0ZW5kcyBQcm9taXNlUm91dGVyIHtcbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvcHVzaCcsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIFB1c2hSb3V0ZXIuaGFuZGxlUE9TVCk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlUE9TVChyZXEpIHtcbiAgICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBzZW5kIHB1c2ggbm90aWZpY2F0aW9ucy5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgcHVzaENvbnRyb2xsZXIgPSByZXEuY29uZmlnLnB1c2hDb250cm9sbGVyO1xuICAgIGlmICghcHVzaENvbnRyb2xsZXIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5QVVNIX01JU0NPTkZJR1VSRUQsICdQdXNoIGNvbnRyb2xsZXIgaXMgbm90IHNldCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHdoZXJlID0gUHVzaFJvdXRlci5nZXRRdWVyeUNvbmRpdGlvbihyZXEpO1xuICAgIGxldCByZXNvbHZlO1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShfcmVzb2x2ZSA9PiB7XG4gICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgfSk7XG4gICAgbGV0IHB1c2hTdGF0dXNJZDtcbiAgICBwdXNoQ29udHJvbGxlclxuICAgICAgLnNlbmRQdXNoKHJlcS5ib2R5IHx8IHt9LCB3aGVyZSwgcmVxLmNvbmZpZywgcmVxLmF1dGgsIG9iamVjdElkID0+IHtcbiAgICAgICAgcHVzaFN0YXR1c0lkID0gb2JqZWN0SWQ7XG4gICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdYLVBhcnNlLVB1c2gtU3RhdHVzLUlkJzogcHVzaFN0YXR1c0lkLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICAgIHJlc3VsdDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgcmVxLmNvbmZpZy5sb2dnZXJDb250cm9sbGVyLmVycm9yKFxuICAgICAgICAgIGBfUHVzaFN0YXR1cyAke3B1c2hTdGF0dXNJZH06IGVycm9yIHdoaWxlIHNlbmRpbmcgcHVzaGAsXG4gICAgICAgICAgZXJyXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgY29uZGl0aW9uIGZyb20gdGhlIHJlcXVlc3QgYm9keS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHJlcSBBIHJlcXVlc3Qgb2JqZWN0XG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBxdWVyeSBjb25kaXRpb24sIHRoZSB3aGVyZSBmaWVsZCBpbiBhIHF1ZXJ5IGFwaSBjYWxsXG4gICAqL1xuICBzdGF0aWMgZ2V0UXVlcnlDb25kaXRpb24ocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IHJlcS5ib2R5IHx8IHt9O1xuICAgIGNvbnN0IGhhc1doZXJlID0gdHlwZW9mIGJvZHkud2hlcmUgIT09ICd1bmRlZmluZWQnO1xuICAgIGNvbnN0IGhhc0NoYW5uZWxzID0gdHlwZW9mIGJvZHkuY2hhbm5lbHMgIT09ICd1bmRlZmluZWQnO1xuXG4gICAgbGV0IHdoZXJlO1xuICAgIGlmIChoYXNXaGVyZSAmJiBoYXNDaGFubmVscykge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5QVVNIX01JU0NPTkZJR1VSRUQsXG4gICAgICAgICdDaGFubmVscyBhbmQgcXVlcnkgY2FuIG5vdCBiZSBzZXQgYXQgdGhlIHNhbWUgdGltZS4nXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaGFzV2hlcmUpIHtcbiAgICAgIHdoZXJlID0gYm9keS53aGVyZTtcbiAgICB9IGVsc2UgaWYgKGhhc0NoYW5uZWxzKSB7XG4gICAgICB3aGVyZSA9IHtcbiAgICAgICAgY2hhbm5lbHM6IHtcbiAgICAgICAgICAkaW46IGJvZHkuY2hhbm5lbHMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgIFBhcnNlLkVycm9yLlBVU0hfTUlTQ09ORklHVVJFRCxcbiAgICAgICAgJ1NlbmRpbmcgYSBwdXNoIHJlcXVpcmVzIGVpdGhlciBcImNoYW5uZWxzXCIgb3IgYSBcIndoZXJlXCIgcXVlcnkuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHdoZXJlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFB1c2hSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUFtQyxTQUFBSSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSCx3QkFBQUcsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEs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
|
|
@@ -71,27 +71,27 @@ async function createSchema(req) {
|
|
|
71
71
|
if (req.auth.isReadOnly) {
|
|
72
72
|
throw new Parse.Error(Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to create a schema.");
|
|
73
73
|
}
|
|
74
|
-
if (req.params.className && req.body
|
|
74
|
+
if (req.params.className && req.body?.className) {
|
|
75
75
|
if (req.params.className != req.body.className) {
|
|
76
76
|
return classNameMismatchResponse(req.body.className, req.params.className);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
const className = req.params.className || req.body
|
|
79
|
+
const className = req.params.className || req.body?.className;
|
|
80
80
|
if (!className) {
|
|
81
81
|
throw new Parse.Error(135, `POST ${req.path} needs a class name.`);
|
|
82
82
|
}
|
|
83
|
-
return await internalCreateSchema(className, req.body, req.config);
|
|
83
|
+
return await internalCreateSchema(className, req.body || {}, req.config);
|
|
84
84
|
}
|
|
85
85
|
function modifySchema(req) {
|
|
86
86
|
checkIfDefinedSchemasIsUsed(req);
|
|
87
87
|
if (req.auth.isReadOnly) {
|
|
88
88
|
throw new Parse.Error(Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to update a schema.");
|
|
89
89
|
}
|
|
90
|
-
if (req.body
|
|
90
|
+
if (req.body?.className && req.body.className != req.params.className) {
|
|
91
91
|
return classNameMismatchResponse(req.body.className, req.params.className);
|
|
92
92
|
}
|
|
93
93
|
const className = req.params.className;
|
|
94
|
-
return internalUpdateSchema(className, req.body, req.config);
|
|
94
|
+
return internalUpdateSchema(className, req.body || {}, req.config);
|
|
95
95
|
}
|
|
96
96
|
const deleteSchema = req => {
|
|
97
97
|
if (req.auth.isReadOnly) {
|
|
@@ -115,4 +115,4 @@ class SchemasRouter extends _PromiseRouter.default {
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
exports.SchemasRouter = SchemasRouter;
|
|
118
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiUGFyc2UiLCJTY2hlbWFDb250cm9sbGVyIiwiY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZSIsImJvZHlDbGFzcyIsInBhdGhDbGFzcyIsIkVycm9yIiwiSU5WQUxJRF9DTEFTU19OQU1FIiwiZ2V0QWxsU2NoZW1hcyIsInJlcSIsImNvbmZpZyIsImRhdGFiYXNlIiwibG9hZFNjaGVtYSIsImNsZWFyQ2FjaGUiLCJ0aGVuIiwic2NoZW1hQ29udHJvbGxlciIsImdldEFsbENsYXNzZXMiLCJzY2hlbWFzIiwicmVzcG9uc2UiLCJyZXN1bHRzIiwiZ2V0T25lU2NoZW1hIiwiY2xhc3NOYW1lIiwicGFyYW1zIiwic2NoZW1hIiwiY2F0Y2giLCJlcnJvciIsInVuZGVmaW5lZCIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsImNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZCIsImxvY2tTY2hlbWFzIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsImludGVybmFsQ3JlYXRlU2NoZW1hIiwiYm9keSIsImNvbnRyb2xsZXIiLCJhZGRDbGFzc0lmTm90RXhpc3RzIiwiZmllbGRzIiwiY2xhc3NMZXZlbFBlcm1pc3Npb25zIiwiaW5kZXhlcyIsImV4cG9ydHMiLCJpbnRlcm5hbFVwZGF0ZVNjaGVtYSIsInVwZGF0ZUNsYXNzIiwiY3JlYXRlU2NoZW1hIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJwYXRoIiwibW9kaWZ5U2NoZW1hIiwiZGVsZXRlU2NoZW1hIiwiY2xhc3NOYW1lSXNWYWxpZCIsImludmFsaWRDbGFzc05hbWVNZXNzYWdlIiwiU2NoZW1hc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9TY2hlbWFzUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNjaGVtYXMuanNcblxudmFyIFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlLFxuICBTY2hlbWFDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vQ29udHJvbGxlcnMvU2NoZW1hQ29udHJvbGxlcicpO1xuXG5pbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuXG5mdW5jdGlvbiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKGJvZHlDbGFzcywgcGF0aENsYXNzKSB7XG4gIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICBQYXJzZS5FcnJvci5JTlZBTElEX0NMQVNTX05BTUUsXG4gICAgYENsYXNzIG5hbWUgbWlzbWF0Y2ggYmV0d2VlbiAke2JvZHlDbGFzc30gYW5kICR7cGF0aENsYXNzfS5gXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbFNjaGVtYXMocmVxKSB7XG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlXG4gICAgLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlIH0pXG4gICAgLnRoZW4oc2NoZW1hQ29udHJvbGxlciA9PiBzY2hlbWFDb250cm9sbGVyLmdldEFsbENsYXNzZXMoeyBjbGVhckNhY2hlOiB0cnVlIH0pKVxuICAgIC50aGVuKHNjaGVtYXMgPT4gKHsgcmVzcG9uc2U6IHsgcmVzdWx0czogc2NoZW1hcyB9IH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0T25lU2NoZW1hKHJlcSkge1xuICBjb25zdCBjbGFzc05hbWUgPSByZXEucGFyYW1zLmNsYXNzTmFtZTtcbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2VcbiAgICAubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWUgfSlcbiAgICAudGhlbihzY2hlbWFDb250cm9sbGVyID0+IHNjaGVtYUNvbnRyb2xsZXIuZ2V0T25lU2NoZW1hKGNsYXNzTmFtZSwgdHJ1ZSkpXG4gICAgLnRoZW4oc2NoZW1hID0+ICh7IHJlc3BvbnNlOiBzY2hlbWEgfSkpXG4gICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0NMQVNTX05BTUUsIGBDbGFzcyAke2NsYXNzTmFtZX0gZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5URVJOQUxfU0VSVkVSX0VSUk9SLCAnRGF0YWJhc2UgYWRhcHRlciBlcnJvci4nKTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuY29uc3QgY2hlY2tJZkRlZmluZWRTY2hlbWFzSXNVc2VkID0gcmVxID0+IHtcbiAgaWYgKHJlcS5jb25maWc/LnNjaGVtYT8ubG9ja1NjaGVtYXMgPT09IHRydWUpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgJ0Nhbm5vdCBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIHdoZW4gc2NoZW1hcyBvcHRpb25zIGlzIHVzZWQuJ1xuICAgICk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbENyZWF0ZVNjaGVtYSA9IGFzeW5jIChjbGFzc05hbWUsIGJvZHksIGNvbmZpZykgPT4ge1xuICBjb25zdCBjb250cm9sbGVyID0gYXdhaXQgY29uZmlnLmRhdGFiYXNlLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlIH0pO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNvbnRyb2xsZXIuYWRkQ2xhc3NJZk5vdEV4aXN0cyhcbiAgICBjbGFzc05hbWUsXG4gICAgYm9keS5maWVsZHMsXG4gICAgYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsXG4gICAgYm9keS5pbmRleGVzXG4gICk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2UsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJuYWxVcGRhdGVTY2hlbWEgPSBhc3luYyAoY2xhc3NOYW1lLCBib2R5LCBjb25maWcpID0+IHtcbiAgY29uc3QgY29udHJvbGxlciA9IGF3YWl0IGNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb250cm9sbGVyLnVwZGF0ZUNsYXNzKFxuICAgIGNsYXNzTmFtZSxcbiAgICBib2R5LmZpZWxkcyB8fCB7fSxcbiAgICBib2R5LmNsYXNzTGV2ZWxQZXJtaXNzaW9ucyxcbiAgICBib2R5LmluZGV4ZXMsXG4gICAgY29uZmlnLmRhdGFiYXNlXG4gICk7XG4gIHJldHVybiB7IHJlc3BvbnNlIH07XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTY2hlbWEocmVxKSB7XG4gIGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZChyZXEpO1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBjcmVhdGUgYSBzY2hlbWEuXCJcbiAgICApO1xuICB9XG4gIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSAmJiByZXEuYm9keS5jbGFzc05hbWUpIHtcbiAgICBpZiAocmVxLnBhcmFtcy5jbGFzc05hbWUgIT0gcmVxLmJvZHkuY2xhc3NOYW1lKSB7XG4gICAgICByZXR1cm4gY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZShyZXEuYm9keS5jbGFzc05hbWUsIHJlcS5wYXJhbXMuY2xhc3NOYW1lKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBjbGFzc05hbWUgPSByZXEucGFyYW1zLmNsYXNzTmFtZSB8fCByZXEuYm9keS5jbGFzc05hbWU7XG4gIGlmICghY2xhc3NOYW1lKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKDEzNSwgYFBPU1QgJHtyZXEucGF0aH0gbmVlZHMgYSBjbGFzcyBuYW1lLmApO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGludGVybmFsQ3JlYXRlU2NoZW1hKGNsYXNzTmFtZSwgcmVxLmJvZHksIHJlcS5jb25maWcpO1xufVxuXG5mdW5jdGlvbiBtb2RpZnlTY2hlbWEocmVxKSB7XG4gIGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZChyZXEpO1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byB1cGRhdGUgYSBzY2hlbWEuXCJcbiAgICApO1xuICB9XG4gIGlmIChyZXEuYm9keS5jbGFzc05hbWUgJiYgcmVxLmJvZHkuY2xhc3NOYW1lICE9IHJlcS5wYXJhbXMuY2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UocmVxLmJvZHkuY2xhc3NOYW1lLCByZXEucGFyYW1zLmNsYXNzTmFtZSk7XG4gIH1cbiAgY29uc3QgY2xhc3NOYW1lID0gcmVxLnBhcmFtcy5jbGFzc05hbWU7XG5cbiAgcmV0dXJuIGludGVybmFsVXBkYXRlU2NoZW1hKGNsYXNzTmFtZSwgcmVxLmJvZHksIHJlcS5jb25maWcpO1xufVxuXG5jb25zdCBkZWxldGVTY2hlbWEgPSByZXEgPT4ge1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBkZWxldGUgYSBzY2hlbWEuXCJcbiAgICApO1xuICB9XG4gIGlmICghU2NoZW1hQ29udHJvbGxlci5jbGFzc05hbWVJc1ZhbGlkKHJlcS5wYXJhbXMuY2xhc3NOYW1lKSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSxcbiAgICAgIFNjaGVtYUNvbnRyb2xsZXIuaW52YWxpZENsYXNzTmFtZU1lc3NhZ2UocmVxLnBhcmFtcy5jbGFzc05hbWUpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5kZWxldGVTY2hlbWEocmVxLnBhcmFtcy5jbGFzc05hbWUpLnRoZW4oKCkgPT4gKHsgcmVzcG9uc2U6IHt9IH0pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWFzUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvc2NoZW1hcycsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGdldEFsbFNjaGVtYXMpO1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnR0VUJyxcbiAgICAgICcvc2NoZW1hcy86Y2xhc3NOYW1lJyxcbiAgICAgIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsXG4gICAgICBnZXRPbmVTY2hlbWFcbiAgICApO1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL3NjaGVtYXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBjcmVhdGVTY2hlbWEpO1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnUE9TVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgY3JlYXRlU2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BVVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgbW9kaWZ5U2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0RFTEVURScsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgZGVsZXRlU2NoZW1hXG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFBNkMsU0FBQUcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUYsd0JBQUFFLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBSyxPQUFBLEVBQUFMLENBQUEsUUFBQUcsQ0FBQSxHQUFB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
|
|
118
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiUGFyc2UiLCJTY2hlbWFDb250cm9sbGVyIiwiY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZSIsImJvZHlDbGFzcyIsInBhdGhDbGFzcyIsIkVycm9yIiwiSU5WQUxJRF9DTEFTU19OQU1FIiwiZ2V0QWxsU2NoZW1hcyIsInJlcSIsImNvbmZpZyIsImRhdGFiYXNlIiwibG9hZFNjaGVtYSIsImNsZWFyQ2FjaGUiLCJ0aGVuIiwic2NoZW1hQ29udHJvbGxlciIsImdldEFsbENsYXNzZXMiLCJzY2hlbWFzIiwicmVzcG9uc2UiLCJyZXN1bHRzIiwiZ2V0T25lU2NoZW1hIiwiY2xhc3NOYW1lIiwicGFyYW1zIiwic2NoZW1hIiwiY2F0Y2giLCJlcnJvciIsInVuZGVmaW5lZCIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsImNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZCIsImxvY2tTY2hlbWFzIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsImludGVybmFsQ3JlYXRlU2NoZW1hIiwiYm9keSIsImNvbnRyb2xsZXIiLCJhZGRDbGFzc0lmTm90RXhpc3RzIiwiZmllbGRzIiwiY2xhc3NMZXZlbFBlcm1pc3Npb25zIiwiaW5kZXhlcyIsImV4cG9ydHMiLCJpbnRlcm5hbFVwZGF0ZVNjaGVtYSIsInVwZGF0ZUNsYXNzIiwiY3JlYXRlU2NoZW1hIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJwYXRoIiwibW9kaWZ5U2NoZW1hIiwiZGVsZXRlU2NoZW1hIiwiY2xhc3NOYW1lSXNWYWxpZCIsImludmFsaWRDbGFzc05hbWVNZXNzYWdlIiwiU2NoZW1hc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9TY2hlbWFzUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNjaGVtYXMuanNcblxudmFyIFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlLFxuICBTY2hlbWFDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vQ29udHJvbGxlcnMvU2NoZW1hQ29udHJvbGxlcicpO1xuXG5pbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuXG5mdW5jdGlvbiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKGJvZHlDbGFzcywgcGF0aENsYXNzKSB7XG4gIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICBQYXJzZS5FcnJvci5JTlZBTElEX0NMQVNTX05BTUUsXG4gICAgYENsYXNzIG5hbWUgbWlzbWF0Y2ggYmV0d2VlbiAke2JvZHlDbGFzc30gYW5kICR7cGF0aENsYXNzfS5gXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbFNjaGVtYXMocmVxKSB7XG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlXG4gICAgLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlIH0pXG4gICAgLnRoZW4oc2NoZW1hQ29udHJvbGxlciA9PiBzY2hlbWFDb250cm9sbGVyLmdldEFsbENsYXNzZXMoeyBjbGVhckNhY2hlOiB0cnVlIH0pKVxuICAgIC50aGVuKHNjaGVtYXMgPT4gKHsgcmVzcG9uc2U6IHsgcmVzdWx0czogc2NoZW1hcyB9IH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0T25lU2NoZW1hKHJlcSkge1xuICBjb25zdCBjbGFzc05hbWUgPSByZXEucGFyYW1zLmNsYXNzTmFtZTtcbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2VcbiAgICAubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWUgfSlcbiAgICAudGhlbihzY2hlbWFDb250cm9sbGVyID0+IHNjaGVtYUNvbnRyb2xsZXIuZ2V0T25lU2NoZW1hKGNsYXNzTmFtZSwgdHJ1ZSkpXG4gICAgLnRoZW4oc2NoZW1hID0+ICh7IHJlc3BvbnNlOiBzY2hlbWEgfSkpXG4gICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0NMQVNTX05BTUUsIGBDbGFzcyAke2NsYXNzTmFtZX0gZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5URVJOQUxfU0VSVkVSX0VSUk9SLCAnRGF0YWJhc2UgYWRhcHRlciBlcnJvci4nKTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuY29uc3QgY2hlY2tJZkRlZmluZWRTY2hlbWFzSXNVc2VkID0gcmVxID0+IHtcbiAgaWYgKHJlcS5jb25maWc/LnNjaGVtYT8ubG9ja1NjaGVtYXMgPT09IHRydWUpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgJ0Nhbm5vdCBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIHdoZW4gc2NoZW1hcyBvcHRpb25zIGlzIHVzZWQuJ1xuICAgICk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbENyZWF0ZVNjaGVtYSA9IGFzeW5jIChjbGFzc05hbWUsIGJvZHksIGNvbmZpZykgPT4ge1xuICBjb25zdCBjb250cm9sbGVyID0gYXdhaXQgY29uZmlnLmRhdGFiYXNlLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlIH0pO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNvbnRyb2xsZXIuYWRkQ2xhc3NJZk5vdEV4aXN0cyhcbiAgICBjbGFzc05hbWUsXG4gICAgYm9keS5maWVsZHMsXG4gICAgYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsXG4gICAgYm9keS5pbmRleGVzXG4gICk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2UsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJuYWxVcGRhdGVTY2hlbWEgPSBhc3luYyAoY2xhc3NOYW1lLCBib2R5LCBjb25maWcpID0+IHtcbiAgY29uc3QgY29udHJvbGxlciA9IGF3YWl0IGNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb250cm9sbGVyLnVwZGF0ZUNsYXNzKFxuICAgIGNsYXNzTmFtZSxcbiAgICBib2R5LmZpZWxkcyB8fCB7fSxcbiAgICBib2R5LmNsYXNzTGV2ZWxQZXJtaXNzaW9ucyxcbiAgICBib2R5LmluZGV4ZXMsXG4gICAgY29uZmlnLmRhdGFiYXNlXG4gICk7XG4gIHJldHVybiB7IHJlc3BvbnNlIH07XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTY2hlbWEocmVxKSB7XG4gIGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZChyZXEpO1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBjcmVhdGUgYSBzY2hlbWEuXCJcbiAgICApO1xuICB9XG4gIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSAmJiByZXEuYm9keT8uY2xhc3NOYW1lKSB7XG4gICAgaWYgKHJlcS5wYXJhbXMuY2xhc3NOYW1lICE9IHJlcS5ib2R5LmNsYXNzTmFtZSkge1xuICAgICAgcmV0dXJuIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UocmVxLmJvZHkuY2xhc3NOYW1lLCByZXEucGFyYW1zLmNsYXNzTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2xhc3NOYW1lID0gcmVxLnBhcmFtcy5jbGFzc05hbWUgfHwgcmVxLmJvZHk/LmNsYXNzTmFtZTtcbiAgaWYgKCFjbGFzc05hbWUpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoMTM1LCBgUE9TVCAke3JlcS5wYXRofSBuZWVkcyBhIGNsYXNzIG5hbWUuYCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgaW50ZXJuYWxDcmVhdGVTY2hlbWEoY2xhc3NOYW1lLCByZXEuYm9keSB8fCB7fSwgcmVxLmNvbmZpZyk7XG59XG5cbmZ1bmN0aW9uIG1vZGlmeVNjaGVtYShyZXEpIHtcbiAgY2hlY2tJZkRlZmluZWRTY2hlbWFzSXNVc2VkKHJlcSk7XG4gIGlmIChyZXEuYXV0aC5pc1JlYWRPbmx5KSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgIFwicmVhZC1vbmx5IG1hc3RlcktleSBpc24ndCBhbGxvd2VkIHRvIHVwZGF0ZSBhIHNjaGVtYS5cIlxuICAgICk7XG4gIH1cbiAgaWYgKHJlcS5ib2R5Py5jbGFzc05hbWUgJiYgcmVxLmJvZHkuY2xhc3NOYW1lICE9IHJlcS5wYXJhbXMuY2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UocmVxLmJvZHkuY2xhc3NOYW1lLCByZXEucGFyYW1zLmNsYXNzTmFtZSk7XG4gIH1cbiAgY29uc3QgY2xhc3NOYW1lID0gcmVxLnBhcmFtcy5jbGFzc05hbWU7XG5cbiAgcmV0dXJuIGludGVybmFsVXBkYXRlU2NoZW1hKGNsYXNzTmFtZSwgcmVxLmJvZHkgfHwge30sIHJlcS5jb25maWcpO1xufVxuXG5jb25zdCBkZWxldGVTY2hlbWEgPSByZXEgPT4ge1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBkZWxldGUgYSBzY2hlbWEuXCJcbiAgICApO1xuICB9XG4gIGlmICghU2NoZW1hQ29udHJvbGxlci5jbGFzc05hbWVJc1ZhbGlkKHJlcS5wYXJhbXMuY2xhc3NOYW1lKSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSxcbiAgICAgIFNjaGVtYUNvbnRyb2xsZXIuaW52YWxpZENsYXNzTmFtZU1lc3NhZ2UocmVxLnBhcmFtcy5jbGFzc05hbWUpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5kZWxldGVTY2hlbWEocmVxLnBhcmFtcy5jbGFzc05hbWUpLnRoZW4oKCkgPT4gKHsgcmVzcG9uc2U6IHt9IH0pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWFzUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvc2NoZW1hcycsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGdldEFsbFNjaGVtYXMpO1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnR0VUJyxcbiAgICAgICcvc2NoZW1hcy86Y2xhc3NOYW1lJyxcbiAgICAgIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsXG4gICAgICBnZXRPbmVTY2hlbWFcbiAgICApO1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL3NjaGVtYXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBjcmVhdGVTY2hlbWEpO1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnUE9TVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgY3JlYXRlU2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BVVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgbW9kaWZ5U2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0RFTEVURScsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgZGVsZXRlU2NoZW1hXG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFBNkMsU0FBQUcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUYsd0JBQUFFLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBSyxPQUFBLEVBQUFMLENBQUEs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
|