parse-server 2.8.4 → 8.6.2

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.
Files changed (240) hide show
  1. package/LICENSE +167 -25
  2. package/NOTICE +10 -0
  3. package/README.md +929 -278
  4. package/lib/AccountLockout.js +47 -30
  5. package/lib/Adapters/AdapterLoader.js +21 -6
  6. package/lib/Adapters/Analytics/AnalyticsAdapter.js +15 -12
  7. package/lib/Adapters/Auth/AuthAdapter.js +116 -13
  8. package/lib/Adapters/Auth/BaseCodeAuthAdapter.js +99 -0
  9. package/lib/Adapters/Auth/OAuth1Client.js +27 -46
  10. package/lib/Adapters/Auth/apple.js +123 -0
  11. package/lib/Adapters/Auth/facebook.js +162 -35
  12. package/lib/Adapters/Auth/gcenter.js +217 -0
  13. package/lib/Adapters/Auth/github.js +118 -48
  14. package/lib/Adapters/Auth/google.js +160 -51
  15. package/lib/Adapters/Auth/gpgames.js +125 -0
  16. package/lib/Adapters/Auth/httpsRequest.js +6 -7
  17. package/lib/Adapters/Auth/index.js +170 -62
  18. package/lib/Adapters/Auth/instagram.js +114 -40
  19. package/lib/Adapters/Auth/janraincapture.js +52 -23
  20. package/lib/Adapters/Auth/janrainengage.js +19 -36
  21. package/lib/Adapters/Auth/keycloak.js +148 -0
  22. package/lib/Adapters/Auth/ldap.js +167 -0
  23. package/lib/Adapters/Auth/line.js +125 -0
  24. package/lib/Adapters/Auth/linkedin.js +111 -55
  25. package/lib/Adapters/Auth/meetup.js +24 -34
  26. package/lib/Adapters/Auth/mfa.js +324 -0
  27. package/lib/Adapters/Auth/microsoft.js +111 -0
  28. package/lib/Adapters/Auth/oauth2.js +97 -162
  29. package/lib/Adapters/Auth/phantauth.js +53 -0
  30. package/lib/Adapters/Auth/qq.js +108 -49
  31. package/lib/Adapters/Auth/spotify.js +107 -55
  32. package/lib/Adapters/Auth/twitter.js +188 -48
  33. package/lib/Adapters/Auth/utils.js +28 -0
  34. package/lib/Adapters/Auth/vkontakte.js +26 -39
  35. package/lib/Adapters/Auth/wechat.js +106 -44
  36. package/lib/Adapters/Auth/weibo.js +132 -58
  37. package/lib/Adapters/Cache/CacheAdapter.js +13 -8
  38. package/lib/Adapters/Cache/InMemoryCache.js +3 -13
  39. package/lib/Adapters/Cache/InMemoryCacheAdapter.js +5 -13
  40. package/lib/Adapters/Cache/LRUCache.js +13 -27
  41. package/lib/Adapters/Cache/NullCacheAdapter.js +3 -8
  42. package/lib/Adapters/Cache/RedisCacheAdapter.js +85 -76
  43. package/lib/Adapters/Cache/SchemaCache.js +25 -0
  44. package/lib/Adapters/Email/MailAdapter.js +10 -8
  45. package/lib/Adapters/Files/FilesAdapter.js +83 -25
  46. package/lib/Adapters/Files/GridFSBucketAdapter.js +231 -0
  47. package/lib/Adapters/Files/GridStoreAdapter.js +4 -91
  48. package/lib/Adapters/Logger/LoggerAdapter.js +18 -14
  49. package/lib/Adapters/Logger/WinstonLogger.js +69 -88
  50. package/lib/Adapters/Logger/WinstonLoggerAdapter.js +7 -16
  51. package/lib/Adapters/MessageQueue/EventEmitterMQ.js +8 -26
  52. package/lib/Adapters/PubSub/EventEmitterPubSub.js +12 -25
  53. package/lib/Adapters/PubSub/PubSubAdapter.js +34 -0
  54. package/lib/Adapters/PubSub/RedisPubSub.js +42 -19
  55. package/lib/Adapters/Push/PushAdapter.js +14 -7
  56. package/lib/Adapters/Storage/Mongo/MongoCollection.js +137 -45
  57. package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +158 -63
  58. package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +320 -168
  59. package/lib/Adapters/Storage/Mongo/MongoTransform.js +279 -306
  60. package/lib/Adapters/Storage/Postgres/PostgresClient.js +14 -10
  61. package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +47 -21
  62. package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +854 -468
  63. package/lib/Adapters/Storage/Postgres/sql/index.js +4 -6
  64. package/lib/Adapters/Storage/StorageAdapter.js +1 -1
  65. package/lib/Adapters/WebSocketServer/WSAdapter.js +35 -0
  66. package/lib/Adapters/WebSocketServer/WSSAdapter.js +66 -0
  67. package/lib/Auth.js +488 -125
  68. package/lib/ClientSDK.js +2 -6
  69. package/lib/Config.js +525 -94
  70. package/lib/Controllers/AdaptableController.js +5 -25
  71. package/lib/Controllers/AnalyticsController.js +22 -23
  72. package/lib/Controllers/CacheController.js +10 -31
  73. package/lib/Controllers/DatabaseController.js +767 -313
  74. package/lib/Controllers/FilesController.js +49 -54
  75. package/lib/Controllers/HooksController.js +80 -84
  76. package/lib/Controllers/LiveQueryController.js +35 -22
  77. package/lib/Controllers/LoggerController.js +22 -58
  78. package/lib/Controllers/ParseGraphQLController.js +293 -0
  79. package/lib/Controllers/PushController.js +58 -49
  80. package/lib/Controllers/SchemaController.js +916 -422
  81. package/lib/Controllers/UserController.js +265 -180
  82. package/lib/Controllers/index.js +90 -125
  83. package/lib/Controllers/types.js +1 -1
  84. package/lib/Deprecator/Deprecations.js +30 -0
  85. package/lib/Deprecator/Deprecator.js +127 -0
  86. package/lib/Error.js +48 -0
  87. package/lib/GraphQL/ParseGraphQLSchema.js +375 -0
  88. package/lib/GraphQL/ParseGraphQLServer.js +214 -0
  89. package/lib/GraphQL/helpers/objectsMutations.js +30 -0
  90. package/lib/GraphQL/helpers/objectsQueries.js +246 -0
  91. package/lib/GraphQL/loaders/configMutations.js +87 -0
  92. package/lib/GraphQL/loaders/configQueries.js +79 -0
  93. package/lib/GraphQL/loaders/defaultGraphQLMutations.js +21 -0
  94. package/lib/GraphQL/loaders/defaultGraphQLQueries.js +23 -0
  95. package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1098 -0
  96. package/lib/GraphQL/loaders/defaultRelaySchema.js +53 -0
  97. package/lib/GraphQL/loaders/filesMutations.js +107 -0
  98. package/lib/GraphQL/loaders/functionsMutations.js +78 -0
  99. package/lib/GraphQL/loaders/parseClassMutations.js +268 -0
  100. package/lib/GraphQL/loaders/parseClassQueries.js +127 -0
  101. package/lib/GraphQL/loaders/parseClassTypes.js +493 -0
  102. package/lib/GraphQL/loaders/schemaDirectives.js +62 -0
  103. package/lib/GraphQL/loaders/schemaMutations.js +162 -0
  104. package/lib/GraphQL/loaders/schemaQueries.js +81 -0
  105. package/lib/GraphQL/loaders/schemaTypes.js +341 -0
  106. package/lib/GraphQL/loaders/usersMutations.js +433 -0
  107. package/lib/GraphQL/loaders/usersQueries.js +90 -0
  108. package/lib/GraphQL/parseGraphQLUtils.js +63 -0
  109. package/lib/GraphQL/transformers/className.js +14 -0
  110. package/lib/GraphQL/transformers/constraintType.js +53 -0
  111. package/lib/GraphQL/transformers/inputType.js +51 -0
  112. package/lib/GraphQL/transformers/mutation.js +274 -0
  113. package/lib/GraphQL/transformers/outputType.js +51 -0
  114. package/lib/GraphQL/transformers/query.js +237 -0
  115. package/lib/GraphQL/transformers/schemaFields.js +99 -0
  116. package/lib/KeyPromiseQueue.js +48 -0
  117. package/lib/LiveQuery/Client.js +25 -33
  118. package/lib/LiveQuery/Id.js +2 -5
  119. package/lib/LiveQuery/ParseCloudCodePublisher.js +26 -23
  120. package/lib/LiveQuery/ParseLiveQueryServer.js +560 -285
  121. package/lib/LiveQuery/ParsePubSub.js +7 -16
  122. package/lib/LiveQuery/ParseWebSocketServer.js +42 -39
  123. package/lib/LiveQuery/QueryTools.js +76 -15
  124. package/lib/LiveQuery/RequestSchema.js +111 -97
  125. package/lib/LiveQuery/SessionTokenCache.js +23 -36
  126. package/lib/LiveQuery/Subscription.js +8 -17
  127. package/lib/LiveQuery/equalObjects.js +2 -3
  128. package/lib/Options/Definitions.js +1355 -382
  129. package/lib/Options/docs.js +301 -62
  130. package/lib/Options/index.js +11 -1
  131. package/lib/Options/parsers.js +14 -10
  132. package/lib/Page.js +44 -0
  133. package/lib/ParseMessageQueue.js +6 -13
  134. package/lib/ParseServer.js +474 -235
  135. package/lib/ParseServerRESTController.js +102 -40
  136. package/lib/PromiseRouter.js +39 -50
  137. package/lib/Push/PushQueue.js +24 -30
  138. package/lib/Push/PushWorker.js +32 -56
  139. package/lib/Push/utils.js +22 -35
  140. package/lib/RestQuery.js +361 -139
  141. package/lib/RestWrite.js +713 -344
  142. package/lib/Routers/AggregateRouter.js +97 -71
  143. package/lib/Routers/AnalyticsRouter.js +8 -14
  144. package/lib/Routers/AudiencesRouter.js +16 -35
  145. package/lib/Routers/ClassesRouter.js +86 -72
  146. package/lib/Routers/CloudCodeRouter.js +28 -37
  147. package/lib/Routers/FeaturesRouter.js +22 -25
  148. package/lib/Routers/FilesRouter.js +266 -171
  149. package/lib/Routers/FunctionsRouter.js +87 -103
  150. package/lib/Routers/GlobalConfigRouter.js +94 -33
  151. package/lib/Routers/GraphQLRouter.js +41 -0
  152. package/lib/Routers/HooksRouter.js +43 -47
  153. package/lib/Routers/IAPValidationRouter.js +57 -70
  154. package/lib/Routers/InstallationsRouter.js +17 -25
  155. package/lib/Routers/LogsRouter.js +10 -25
  156. package/lib/Routers/PagesRouter.js +647 -0
  157. package/lib/Routers/PublicAPIRouter.js +104 -112
  158. package/lib/Routers/PurgeRouter.js +19 -29
  159. package/lib/Routers/PushRouter.js +14 -28
  160. package/lib/Routers/RolesRouter.js +7 -14
  161. package/lib/Routers/SchemasRouter.js +63 -42
  162. package/lib/Routers/SecurityRouter.js +34 -0
  163. package/lib/Routers/SessionsRouter.js +25 -38
  164. package/lib/Routers/UsersRouter.js +463 -190
  165. package/lib/SchemaMigrations/DefinedSchemas.js +379 -0
  166. package/lib/SchemaMigrations/Migrations.js +30 -0
  167. package/lib/Security/Check.js +109 -0
  168. package/lib/Security/CheckGroup.js +44 -0
  169. package/lib/Security/CheckGroups/CheckGroupDatabase.js +44 -0
  170. package/lib/Security/CheckGroups/CheckGroupServerConfig.js +96 -0
  171. package/lib/Security/CheckGroups/CheckGroups.js +21 -0
  172. package/lib/Security/CheckRunner.js +213 -0
  173. package/lib/SharedRest.js +29 -0
  174. package/lib/StatusHandler.js +96 -93
  175. package/lib/TestUtils.js +70 -14
  176. package/lib/Utils.js +468 -0
  177. package/lib/batch.js +74 -40
  178. package/lib/cache.js +8 -8
  179. package/lib/cli/definitions/parse-live-query-server.js +4 -3
  180. package/lib/cli/definitions/parse-server.js +4 -3
  181. package/lib/cli/parse-live-query-server.js +9 -17
  182. package/lib/cli/parse-server.js +49 -47
  183. package/lib/cli/utils/commander.js +20 -29
  184. package/lib/cli/utils/runner.js +31 -32
  185. package/lib/cloud-code/Parse.Cloud.js +711 -36
  186. package/lib/cloud-code/Parse.Server.js +21 -0
  187. package/lib/cryptoUtils.js +6 -11
  188. package/lib/defaults.js +21 -15
  189. package/lib/deprecated.js +1 -1
  190. package/lib/index.js +78 -67
  191. package/lib/logger.js +12 -20
  192. package/lib/middlewares.js +484 -160
  193. package/lib/password.js +10 -6
  194. package/lib/request.js +175 -0
  195. package/lib/requiredParameter.js +4 -3
  196. package/lib/rest.js +157 -82
  197. package/lib/triggers.js +627 -185
  198. package/lib/vendor/README.md +3 -3
  199. package/lib/vendor/mongodbUrl.js +224 -137
  200. package/package.json +135 -57
  201. package/postinstall.js +38 -50
  202. package/public_html/invalid_verification_link.html +3 -3
  203. package/types/@types/@parse/fs-files-adapter/index.d.ts +5 -0
  204. package/types/@types/deepcopy/index.d.ts +5 -0
  205. package/types/LiveQuery/ParseLiveQueryServer.d.ts +40 -0
  206. package/types/Options/index.d.ts +301 -0
  207. package/types/ParseServer.d.ts +65 -0
  208. package/types/eslint.config.mjs +30 -0
  209. package/types/index.d.ts +21 -0
  210. package/types/logger.d.ts +2 -0
  211. package/types/tests.ts +44 -0
  212. package/types/tsconfig.json +24 -0
  213. package/CHANGELOG.md +0 -1246
  214. package/PATENTS +0 -37
  215. package/bin/dev +0 -37
  216. package/lib/.DS_Store +0 -0
  217. package/lib/Adapters/Auth/common.js +0 -2
  218. package/lib/Adapters/Auth/facebookaccountkit.js +0 -69
  219. package/lib/Controllers/SchemaCache.js +0 -97
  220. package/lib/LiveQuery/.DS_Store +0 -0
  221. package/lib/cli/utils/parsers.js +0 -77
  222. package/lib/cloud-code/.DS_Store +0 -0
  223. package/lib/cloud-code/HTTPResponse.js +0 -57
  224. package/lib/cloud-code/Untitled-1 +0 -123
  225. package/lib/cloud-code/httpRequest.js +0 -102
  226. package/lib/cloud-code/team.html +0 -123
  227. package/lib/graphql/ParseClass.js +0 -234
  228. package/lib/graphql/Schema.js +0 -197
  229. package/lib/graphql/index.js +0 -1
  230. package/lib/graphql/types/ACL.js +0 -35
  231. package/lib/graphql/types/Date.js +0 -25
  232. package/lib/graphql/types/File.js +0 -24
  233. package/lib/graphql/types/GeoPoint.js +0 -35
  234. package/lib/graphql/types/JSONObject.js +0 -30
  235. package/lib/graphql/types/NumberInput.js +0 -43
  236. package/lib/graphql/types/NumberQuery.js +0 -42
  237. package/lib/graphql/types/Pointer.js +0 -35
  238. package/lib/graphql/types/QueryConstraint.js +0 -61
  239. package/lib/graphql/types/StringQuery.js +0 -39
  240. package/lib/graphql/types/index.js +0 -110
@@ -1,90 +1,70 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PublicAPIRouter = undefined;
7
-
8
- var _PromiseRouter = require('../PromiseRouter');
9
-
10
- var _PromiseRouter2 = _interopRequireDefault(_PromiseRouter);
11
-
12
- var _Config = require('../Config');
13
-
14
- var _Config2 = _interopRequireDefault(_Config);
15
-
16
- var _express = require('express');
17
-
18
- var _express2 = _interopRequireDefault(_express);
19
-
20
- var _path = require('path');
21
-
22
- var _path2 = _interopRequireDefault(_path);
23
-
24
- var _fs = require('fs');
25
-
26
- var _fs2 = _interopRequireDefault(_fs);
27
-
28
- var _querystring = require('querystring');
29
-
30
- var _querystring2 = _interopRequireDefault(_querystring);
31
-
32
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
-
34
- const public_html = _path2.default.resolve(__dirname, "../../public_html");
35
- const views = _path2.default.resolve(__dirname, '../../views');
36
-
37
- class PublicAPIRouter extends _PromiseRouter2.default {
38
-
6
+ exports.default = exports.PublicAPIRouter = void 0;
7
+ var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
8
+ var _Config = _interopRequireDefault(require("../Config"));
9
+ var _express = _interopRequireDefault(require("express"));
10
+ var _path = _interopRequireDefault(require("path"));
11
+ var _fs = _interopRequireDefault(require("fs"));
12
+ var _querystring = _interopRequireDefault(require("querystring"));
13
+ var _node = require("parse/node");
14
+ var _Deprecator = _interopRequireDefault(require("../Deprecator/Deprecator"));
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ const public_html = _path.default.resolve(__dirname, '../../public_html');
17
+ const views = _path.default.resolve(__dirname, '../../views');
18
+ class PublicAPIRouter extends _PromiseRouter.default {
19
+ constructor() {
20
+ super();
21
+ _Deprecator.default.logRuntimeDeprecation({
22
+ usage: 'PublicAPIRouter',
23
+ solution: 'pages.enableRouter'
24
+ });
25
+ }
39
26
  verifyEmail(req) {
40
- const { token, username } = req.query;
27
+ const {
28
+ token: rawToken
29
+ } = req.query;
30
+ const token = rawToken && typeof rawToken !== 'string' ? rawToken.toString() : rawToken;
41
31
  const appId = req.params.appId;
42
- const config = _Config2.default.get(appId);
43
-
32
+ const config = _Config.default.get(appId);
44
33
  if (!config) {
45
34
  this.invalidRequest();
46
35
  }
47
-
48
36
  if (!config.publicServerURL) {
49
37
  return this.missingPublicServerURL();
50
38
  }
51
-
52
- if (!token || !username) {
39
+ if (!token) {
53
40
  return this.invalidLink(req);
54
41
  }
55
-
56
42
  const userController = config.userController;
57
- return userController.verifyEmail(username, token).then(() => {
58
- const params = _querystring2.default.stringify({ username });
43
+ return userController.verifyEmail(token).then(() => {
59
44
  return Promise.resolve({
60
45
  status: 302,
61
- location: `${config.verifyEmailSuccessURL}?${params}`
46
+ location: `${config.verifyEmailSuccessURL}`
62
47
  });
63
48
  }, () => {
64
- return this.invalidVerificationLink(req);
49
+ return this.invalidVerificationLink(req, token);
65
50
  });
66
51
  }
67
-
68
52
  resendVerificationEmail(req) {
69
- const username = req.body.username;
53
+ const username = req.body?.username;
70
54
  const appId = req.params.appId;
71
- const config = _Config2.default.get(appId);
72
-
55
+ const config = _Config.default.get(appId);
73
56
  if (!config) {
74
57
  this.invalidRequest();
75
58
  }
76
-
77
59
  if (!config.publicServerURL) {
78
60
  return this.missingPublicServerURL();
79
61
  }
80
-
81
- if (!username) {
62
+ const token = req.body.token;
63
+ if (!username && !token) {
82
64
  return this.invalidLink(req);
83
65
  }
84
-
85
66
  const userController = config.userController;
86
-
87
- return userController.resendVerificationEmail(username).then(() => {
67
+ return userController.resendVerificationEmail(username, req, token).then(() => {
88
68
  return Promise.resolve({
89
69
  status: 302,
90
70
  location: `${config.linkSendSuccessURL}`
@@ -96,15 +76,12 @@ class PublicAPIRouter extends _PromiseRouter2.default {
96
76
  });
97
77
  });
98
78
  }
99
-
100
79
  changePassword(req) {
101
80
  return new Promise((resolve, reject) => {
102
- const config = _Config2.default.get(req.query.id);
103
-
81
+ const config = _Config.default.get(req.query.id);
104
82
  if (!config) {
105
83
  this.invalidRequest();
106
84
  }
107
-
108
85
  if (!config.publicServerURL) {
109
86
  return resolve({
110
87
  status: 404,
@@ -112,38 +89,38 @@ class PublicAPIRouter extends _PromiseRouter2.default {
112
89
  });
113
90
  }
114
91
  // Should we keep the file in memory or leave like that?
115
- _fs2.default.readFile(_path2.default.resolve(views, "choose_password"), 'utf-8', (err, data) => {
92
+ _fs.default.readFile(_path.default.resolve(views, 'choose_password'), 'utf-8', (err, data) => {
116
93
  if (err) {
117
94
  return reject(err);
118
95
  }
119
- data = data.replace("PARSE_SERVER_URL", `'${config.publicServerURL}'`);
96
+ data = data.replace('PARSE_SERVER_URL', `'${config.publicServerURL}'`);
120
97
  resolve({
121
98
  text: data
122
99
  });
123
100
  });
124
101
  });
125
102
  }
126
-
127
103
  requestResetPassword(req) {
128
-
129
104
  const config = req.config;
130
-
131
105
  if (!config) {
132
106
  this.invalidRequest();
133
107
  }
134
-
135
108
  if (!config.publicServerURL) {
136
109
  return this.missingPublicServerURL();
137
110
  }
138
-
139
- const { username, token } = req.query;
140
-
141
- if (!username || !token) {
111
+ const {
112
+ token: rawToken
113
+ } = req.query;
114
+ const token = rawToken && typeof rawToken !== 'string' ? rawToken.toString() : rawToken;
115
+ if (!token) {
142
116
  return this.invalidLink(req);
143
117
  }
144
-
145
- return config.userController.checkResetTokenValidity(username, token).then(() => {
146
- const params = _querystring2.default.stringify({ token, id: config.applicationId, username, app: config.appName });
118
+ return config.userController.checkResetTokenValidity(token).then(() => {
119
+ const params = _querystring.default.stringify({
120
+ token,
121
+ id: config.applicationId,
122
+ app: config.appName
123
+ });
147
124
  return Promise.resolve({
148
125
  status: 302,
149
126
  location: `${config.choosePasswordURL}?${params}`
@@ -152,55 +129,80 @@ class PublicAPIRouter extends _PromiseRouter2.default {
152
129
  return this.invalidLink(req);
153
130
  });
154
131
  }
155
-
156
132
  resetPassword(req) {
157
-
158
133
  const config = req.config;
159
-
160
134
  if (!config) {
161
135
  this.invalidRequest();
162
136
  }
163
-
164
137
  if (!config.publicServerURL) {
165
138
  return this.missingPublicServerURL();
166
139
  }
167
-
168
140
  const {
169
- username,
170
- token,
171
- new_password
172
- } = req.body;
173
-
174
- if (!username || !token || !new_password) {
141
+ new_password,
142
+ token: rawToken
143
+ } = req.body || {};
144
+ const token = rawToken && typeof rawToken !== 'string' ? rawToken.toString() : rawToken;
145
+ if ((!token || !new_password) && req.xhr === false) {
175
146
  return this.invalidLink(req);
176
147
  }
177
-
178
- return config.userController.updatePassword(username, token, new_password).then(() => {
179
- const params = _querystring2.default.stringify({ username: username });
148
+ if (!token) {
149
+ throw new _node.Parse.Error(_node.Parse.Error.OTHER_CAUSE, 'Missing token');
150
+ }
151
+ if (!new_password) {
152
+ throw new _node.Parse.Error(_node.Parse.Error.PASSWORD_MISSING, 'Missing password');
153
+ }
154
+ return config.userController.updatePassword(token, new_password).then(() => {
180
155
  return Promise.resolve({
181
- status: 302,
182
- location: `${config.passwordResetSuccessURL}?${params}`
156
+ success: true
183
157
  });
184
158
  }, err => {
185
- const params = _querystring2.default.stringify({ username: username, token: token, id: config.applicationId, error: err, app: config.appName });
159
+ return Promise.resolve({
160
+ success: false,
161
+ err
162
+ });
163
+ }).then(result => {
164
+ const queryString = {
165
+ token: token,
166
+ id: config.applicationId,
167
+ error: result.err,
168
+ app: config.appName
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);
175
+ if (req.xhr) {
176
+ if (result.success) {
177
+ return Promise.resolve({
178
+ status: 200,
179
+ response: 'Password successfully reset'
180
+ });
181
+ }
182
+ if (result.err) {
183
+ throw new _node.Parse.Error(_node.Parse.Error.OTHER_CAUSE, `${result.err}`);
184
+ }
185
+ }
186
+ const location = result.success ? `${config.passwordResetSuccessURL}` : `${config.choosePasswordURL}?${params}`;
186
187
  return Promise.resolve({
187
188
  status: 302,
188
- location: `${config.choosePasswordURL}?${params}`
189
+ location
189
190
  });
190
191
  });
191
192
  }
192
-
193
193
  invalidLink(req) {
194
194
  return Promise.resolve({
195
195
  status: 302,
196
196
  location: req.config.invalidLinkURL
197
197
  });
198
198
  }
199
-
200
- invalidVerificationLink(req) {
199
+ invalidVerificationLink(req, token) {
201
200
  const config = req.config;
202
- if (req.query.username && req.params.appId) {
203
- const params = _querystring2.default.stringify({ username: req.query.username, appId: req.params.appId });
201
+ if (req.params.appId) {
202
+ const params = _querystring.default.stringify({
203
+ appId: req.params.appId,
204
+ token
205
+ });
204
206
  return Promise.resolve({
205
207
  status: 302,
206
208
  location: `${config.invalidVerificationLinkURL}?${params}`
@@ -209,64 +211,54 @@ class PublicAPIRouter extends _PromiseRouter2.default {
209
211
  return this.invalidLink(req);
210
212
  }
211
213
  }
212
-
213
214
  missingPublicServerURL() {
214
215
  return Promise.resolve({
215
216
  text: 'Not found.',
216
217
  status: 404
217
218
  });
218
219
  }
219
-
220
220
  invalidRequest() {
221
221
  const error = new Error();
222
222
  error.status = 403;
223
- error.message = "unauthorized";
223
+ error.message = 'unauthorized';
224
224
  throw error;
225
225
  }
226
-
227
226
  setConfig(req) {
228
- req.config = _Config2.default.get(req.params.appId);
227
+ req.config = _Config.default.get(req.params.appId);
229
228
  return Promise.resolve();
230
229
  }
231
-
232
230
  mountRoutes() {
233
231
  this.route('GET', '/apps/:appId/verify_email', req => {
234
232
  this.setConfig(req);
235
233
  }, req => {
236
234
  return this.verifyEmail(req);
237
235
  });
238
-
239
236
  this.route('POST', '/apps/:appId/resend_verification_email', req => {
240
237
  this.setConfig(req);
241
238
  }, req => {
242
239
  return this.resendVerificationEmail(req);
243
240
  });
244
-
245
241
  this.route('GET', '/apps/choose_password', req => {
246
242
  return this.changePassword(req);
247
243
  });
248
-
249
244
  this.route('POST', '/apps/:appId/request_password_reset', req => {
250
245
  this.setConfig(req);
251
246
  }, req => {
252
247
  return this.resetPassword(req);
253
248
  });
254
-
255
249
  this.route('GET', '/apps/:appId/request_password_reset', req => {
256
250
  this.setConfig(req);
257
251
  }, req => {
258
252
  return this.requestResetPassword(req);
259
253
  });
260
254
  }
261
-
262
255
  expressRouter() {
263
- const router = _express2.default.Router();
264
- router.use("/apps", _express2.default.static(public_html));
265
- router.use("/", super.expressRouter());
256
+ const router = _express.default.Router();
257
+ router.use('/apps', _express.default.static(public_html));
258
+ router.use('/', super.expressRouter());
266
259
  return router;
267
260
  }
268
261
  }
269
-
270
262
  exports.PublicAPIRouter = PublicAPIRouter;
271
- exports.default = PublicAPIRouter;
272
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1B1YmxpY0FQSVJvdXRlci5qcyJdLCJuYW1lcyI6WyJwdWJsaWNfaHRtbCIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwidmlld3MiLCJQdWJsaWNBUElSb3V0ZXIiLCJQcm9taXNlUm91dGVyIiwidmVyaWZ5RW1haWwiLCJyZXEiLCJ0b2tlbiIsInVzZXJuYW1lIiwicXVlcnkiLCJhcHBJZCIsInBhcmFtcyIsImNvbmZpZyIsIkNvbmZpZyIsImdldCIsImludmFsaWRSZXF1ZXN0IiwicHVibGljU2VydmVyVVJMIiwibWlzc2luZ1B1YmxpY1NlcnZlclVSTCIsImludmFsaWRMaW5rIiwidXNlckNvbnRyb2xsZXIiLCJ0aGVuIiwicXMiLCJzdHJpbmdpZnkiLCJQcm9taXNlIiwic3RhdHVzIiwibG9jYXRpb24iLCJ2ZXJpZnlFbWFpbFN1Y2Nlc3NVUkwiLCJpbnZhbGlkVmVyaWZpY2F0aW9uTGluayIsInJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsIiwiYm9keSIsImxpbmtTZW5kU3VjY2Vzc1VSTCIsImxpbmtTZW5kRmFpbFVSTCIsImNoYW5nZVBhc3N3b3JkIiwicmVqZWN0IiwiaWQiLCJ0ZXh0IiwiZnMiLCJyZWFkRmlsZSIsImVyciIsImRhdGEiLCJyZXBsYWNlIiwicmVxdWVzdFJlc2V0UGFzc3dvcmQiLCJjaGVja1Jlc2V0VG9rZW5WYWxpZGl0eSIsImFwcGxpY2F0aW9uSWQiLCJhcHAiLCJhcHBOYW1lIiwiY2hvb3NlUGFzc3dvcmRVUkwiLCJyZXNldFBhc3N3b3JkIiwibmV3X3Bhc3N3b3JkIiwidXBkYXRlUGFzc3dvcmQiLCJwYXNzd29yZFJlc2V0U3VjY2Vzc1VSTCIsImVycm9yIiwiaW52YWxpZExpbmtVUkwiLCJpbnZhbGlkVmVyaWZpY2F0aW9uTGlua1VSTCIsIkVycm9yIiwibWVzc2FnZSIsInNldENvbmZpZyIsIm1vdW50Um91dGVzIiwicm91dGUiLCJleHByZXNzUm91dGVyIiwicm91dGVyIiwiZXhw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QUFMLENBQVcsS0FBWCxFQUFpQixxQ0FBakIsRUFDRXBELE9BQU87QUFBRSxXQUFLa0QsU0FBTCxDQUFlbEQsR0FBZjtBQUFxQixLQURoQyxFQUVFQSxPQUFPO0FBQUUsYUFBTyxLQUFLbUMsb0JBQUwsQ0FBMEJuQyxHQUExQixDQUFQO0FBQXdDLEtBRm5EO0FBR0Q7O0FBRURxRCxrQkFBZ0I7QUFDZCxVQUFNQyxTQUFTQyxrQkFBUUMsTUFBUixFQUFmO0FBQ0FGLFdBQU9HLEdBQVAsQ0FBVyxPQUFYLEVBQW9CRixrQkFBUUcsTUFBUixDQUFlbEUsV0FBZixDQUFwQjtBQUNBOEQsV0FBT0csR0FBUCxDQUFXLEdBQVgsRUFBZ0IsTUFBTUosYUFBTixFQUFoQjtBQUNBLFdBQU9DLE1BQVA7QUFDRDtBQTlOZ0Q7O1FBQXRDekQsZSxHQUFBQSxlO2tCQWlPRUEsZSIsImZpbGUiOiJQdWJsaWNBUElSb3V0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vQ29uZmlnJztcbmltcG9ydCBleHByZXNzIGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHFzIGZyb20gJ3F1ZXJ5c3RyaW5nJztcblxuY29uc3QgcHVibGljX2h0bWwgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcIi4uLy4uL3B1YmxpY19odG1sXCIpO1xuY29uc3Qgdmlld3MgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vLi4vdmlld3MnKTtcblxuZXhwb3J0IGNsYXNzIFB1YmxpY0FQSVJvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuXG4gIHZlcmlmeUVtYWlsKHJlcSkge1xuICAgIGNvbnN0IHsgdG9rZW4sIHVzZXJuYW1lIH0gPSByZXEucXVlcnk7XG4gICAgY29uc3QgYXBwSWQgPSByZXEucGFyYW1zLmFwcElkO1xuICAgIGNvbnN0IGNvbmZpZyA9IENvbmZpZy5nZXQoYXBwSWQpO1xuXG4gICAgaWYoIWNvbmZpZyl7XG4gICAgICB0aGlzLmludmFsaWRSZXF1ZXN0KCk7XG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcucHVibGljU2VydmVyVVJMKSB7XG4gICAgICByZXR1cm4gdGhpcy5taXNzaW5nUHVibGljU2VydmVyVVJMKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0b2tlbiB8fCAhdXNlcm5hbWUpIHtcbiAgICAgIHJldHVybiB0aGlzLmludmFsaWRMaW5rKHJlcSk7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlckNvbnRyb2xsZXIgPSBjb25maWcudXNlckNvbnRyb2xsZXI7XG4gICAgcmV0dXJuIHVzZXJDb250cm9sbGVyLnZlcmlmeUVtYWlsKHVzZXJuYW1lLCB0b2tlbikudGhlbigoKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBxcy5zdHJpbmdpZnkoe3VzZXJuYW1lfSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcudmVyaWZ5RW1haWxTdWNjZXNzVVJMfT8ke3BhcmFtc31gXG4gICAgICB9KTtcbiAgICB9LCAoKT0+IHtcbiAgICAgIHJldHVybiB0aGlzLmludmFsaWRWZXJpZmljYXRpb25MaW5rKHJlcSk7XG4gICAgfSlcbiAgfVxuXG4gIHJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHJlcSkge1xuICAgIGNvbnN0IHVzZXJuYW1lID0gcmVxLmJvZHkudXNlcm5hbWU7XG4gICAgY29uc3QgYXBwSWQgPSByZXEucGFyYW1zLmFwcElkO1xuICAgIGNvbnN0IGNvbmZpZyA9IENvbmZpZy5nZXQoYXBwSWQpO1xuXG4gICAgaWYoIWNvbmZpZyl7XG4gICAgICB0aGlzLmludmFsaWRSZXF1ZXN0KCk7XG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcucHVibGljU2VydmVyVVJMKSB7XG4gICAgICByZXR1cm4gdGhpcy5taXNzaW5nUHVibGljU2VydmVyVVJMKCk7XG4gICAgfVxuXG4gICAgaWYgKCF1c2VybmFtZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZExpbmsocmVxKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyQ29udHJvbGxlciA9IGNvbmZpZy51c2VyQ29udHJvbGxlcjtcblxuICAgIHJldHVybiB1c2VyQ29udHJvbGxlci5yZXNlbmRWZXJpZmljYXRpb25FbWFpbCh1c2VybmFtZSkudGhlbigoKSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcubGlua1NlbmRTdWNjZXNzVVJMfWBcbiAgICAgIH0pO1xuICAgIH0sICgpPT4ge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgIHN0YXR1czogMzAyLFxuICAgICAgICBsb2NhdGlvbjogYCR7Y29uZmlnLmxpbmtTZW5kRmFpbFVSTH1gXG4gICAgICB9KTtcbiAgICB9KVxuICB9XG5cbiAgY2hhbmdlUGFzc3dvcmQocmVxKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IENvbmZpZy5nZXQocmVxLnF1ZXJ5LmlkKTtcblxuICAgICAgaWYoIWNvbmZpZyl7XG4gICAgICAgIHRoaXMuaW52YWxpZFJlcXVlc3QoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjb25maWcucHVibGljU2VydmVyVVJMKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHtcbiAgICAgICAgICBzdGF0dXM6IDQwNCxcbiAgICAgICAgICB0ZXh0OiAnTm90IGZvdW5kLidcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICAvLyBTaG91bGQgd2Uga2VlcCB0aGUgZmlsZSBpbiBtZW1vcnkgb3IgbGVhdmUgbGlrZSB0aGF0P1xuICAgICAgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKHZpZXdzLCBcImNob29zZV9wYXNzd29yZFwiKSwgJ3V0Zi04JywgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoXCJQQVJTRV9TRVJWRVJfVVJMXCIsIGAnJHtjb25maWcucHVibGljU2VydmVyVVJMfSdgKTtcbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgdGV4dDogZGF0YVxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXF1ZXN0UmVzZXRQYXNzd29yZChyZXEpIHtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG5cbiAgICBpZighY29uZmlnKXtcbiAgICAgIHRoaXMuaW52YWxpZFJlcXVlc3QoKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5wdWJsaWNTZXJ2ZXJVUkwpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pc3NpbmdQdWJsaWNTZXJ2ZXJVUkwoKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHVzZXJuYW1lLCB0b2tlbiB9ID0gcmVxLnF1ZXJ5O1xuXG4gICAgaWYgKCF1c2VybmFtZSB8fCAhdG9rZW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmludmFsaWRMaW5rKHJlcSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZy51c2VyQ29udHJvbGxlci5jaGVja1Jlc2V0VG9rZW5WYWxpZGl0eSh1c2VybmFtZSwgdG9rZW4pLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1zID0gcXMuc3RyaW5naWZ5KHt0b2tlbiwgaWQ6IGNvbmZpZy5hcHBsaWNhdGlvbklkLCB1c2VybmFtZSwgYXBwOiBjb25maWcuYXBwTmFtZSwgfSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcuY2hvb3NlUGFzc3dvcmRVUkx9PyR7cGFyYW1zfWBcbiAgICAgIH0pXG4gICAgfSwgKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZExpbmsocmVxKTtcbiAgICB9KVxuICB9XG5cbiAgcmVzZXRQYXNzd29yZChyZXEpIHtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG5cbiAgICBpZighY29uZmlnKXtcbiAgICAgIHRoaXMuaW52YWxpZFJlcXVlc3QoKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5wdWJsaWNTZXJ2ZXJVUkwpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pc3NpbmdQdWJsaWNTZXJ2ZXJVUkwoKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICB1c2VybmFtZSxcbiAgICAgIHRva2VuLFxuICAgICAgbmV3X3Bhc3N3b3JkXG4gICAgfSA9IHJlcS5ib2R5O1xuXG4gICAgaWYgKCF1c2VybmFtZSB8fCAhdG9rZW4gfHwgIW5ld19wYXNzd29yZCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZExpbmsocmVxKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnLnVzZXJDb250cm9sbGVyLnVwZGF0ZVBhc3N3b3JkKHVzZXJuYW1lLCB0b2tlbiwgbmV3X3Bhc3N3b3JkKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHFzLnN0cmluZ2lmeSh7dXNlcm5hbWU6IHVzZXJuYW1lfSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICAgIGxvY2F0aW9uOiBgJHtjb25maWcucGFzc3dvcmRSZXNldFN1Y2Nlc3NVUkx9PyR7cGFyYW1zfWBcbiAgICAgIH0pO1xuICAgIH0sIChlcnIpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHFzLnN0cmluZ2lmeSh7dXNlcm5hbWU6IHVzZXJuYW1lLCB0b2tlbjogdG9rZW4sIGlkOiBjb25maWcuYXBwbGljYXRpb25JZCwgZXJyb3I6ZXJyLCBhcHA6Y29uZmlnLmFwcE5hbWV9KTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICBzdGF0dXM6IDMwMixcbiAgICAgICAgbG9jYXRpb246IGAke2NvbmZpZy5jaG9vc2VQYXNzd29yZFVSTH0/JHtwYXJhbXN9YFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIGludmFsaWRMaW5rKHJlcSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgc3RhdHVzOiAzMDIsXG4gICAgICBsb2NhdGlvbjogcmVxLmNvbmZpZy5pbnZhbGlkTGlua1VSTFxuICAgIH0pO1xuICB9XG5cbiAgaW52YWxpZFZlcmlmaWNhdGlvbkxpbmsocmVxKSB7XG4gICAgY29uc3QgY29uZmlnID0gcmVxLmNvbmZpZztcbiAgICBpZiAocmVxLnF1ZXJ5LnVzZXJuYW1lICYmIHJlcS5wYXJhbXMuYXBwSWQpIHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHFzLnN0cmluZ2lmeSh7dXNlcm5hbWU6IHJlcS5xdWVyeS51c2VybmFtZSwgYXBwSWQ6IHJlcS5wYXJhbXMuYXBwSWR9KTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICBzdGF0dXM6IDMwMixcbiAgICAgICAgbG9jYXRpb246IGAke2NvbmZpZy5pbnZhbGlkVmVyaWZpY2F0aW9uTGlua1VSTH0/JHtwYXJhbXN9YFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmludmFsaWRMaW5rKHJlcSk7XG4gICAgfVxuICB9XG5cbiAgbWlzc2luZ1B1YmxpY1NlcnZlclVSTCgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIHRleHQ6ICAnTm90IGZvdW5kLicsXG4gICAgICBzdGF0dXM6IDQwNFxuICAgIH0pO1xuICB9XG5cbiAgaW52YWxpZFJlcXVlc3QoKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoKTtcbiAgICBlcnJvci5zdGF0dXMgPSA0MDM7XG4gICAgZXJyb3IubWVzc2FnZSA9IFwidW5hdXRob3JpemVkXCI7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBzZXRDb25maWcocmVxKSB7XG4gICAgcmVxLmNvbmZpZyA9IENvbmZpZy5nZXQocmVxLnBhcmFtcy5hcHBJZCk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywnL2FwcHMvOmFwcElkL3ZlcmlmeV9lbWFpbCcsXG4gICAgICByZXEgPT4geyB0aGlzLnNldENvbmZpZyhyZXEpIH0sXG4gICAgICByZXEgPT4geyByZXR1cm4gdGhpcy52ZXJpZnlFbWFpbChyZXEpOyB9KTtcblxuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL2FwcHMvOmFwcElkL3Jlc2VuZF92ZXJpZmljYXRpb25fZW1haWwnLFxuICAgICAgcmVxID0+IHsgdGhpcy5zZXRDb25maWcocmVxKTsgfSxcbiAgICAgIHJlcSA9PiB7IHJldHVybiB0aGlzLnJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHJlcSk7IH0pO1xuXG4gICAgdGhpcy5yb3V0ZSgnR0VUJywnL2FwcHMvY2hvb3NlX3Bhc3N3b3JkJyxcbiAgICAgIHJlcSA9PiB7IHJldHVybiB0aGlzLmNoYW5nZVBhc3N3b3JkKHJlcSk7IH0pO1xuXG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsJy9hcHBzLzphcHBJZC9yZXF1ZXN0X3Bhc3N3b3JkX3Jlc2V0JyxcbiAgICAgIHJlcSA9PiB7IHRoaXMuc2V0Q29uZmlnKHJlcSkgfSxcbiAgICAgIHJlcSA9PiB7IHJldHVybiB0aGlzLnJlc2V0UGFzc3dvcmQocmVxKTsgfSk7XG5cbiAgICB0aGlzLnJvdXRlKCdHRVQnLCcvYXBwcy86YXBwSWQvcmVxdWVzdF9wYXNzd29yZF9yZXNldCcsXG4gICAgICByZXEgPT4geyB0aGlzLnNldENvbmZpZyhyZXEpIH0sXG4gICAgICByZXEgPT4geyByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzZXRQYXNzd29yZChyZXEpOyB9KTtcbiAgfVxuXG4gIGV4cHJlc3NSb3V0ZXIoKSB7XG4gICAgY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcbiAgICByb3V0ZXIudXNlKFwiL2FwcHNcIiwgZXhwcmVzcy5zdGF0aWMocHVibGljX2h0bWwpKTtcbiAgICByb3V0ZXIudXNlKFwiL1wiLCBzdXBlci5leHByZXNzUm91dGVyKCkpO1xuICAgIHJldHVybiByb3V0ZXI7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUHVibGljQVBJUm91dGVyO1xuIl19
263
+ var _default = exports.default = PublicAPIRouter;
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+IHtcbiAgICAgICAgdGhpcy5zZXRDb25maWcocmVxKTtcbiAgICAgIH0sXG4gICAgICByZXEgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzZXRQYXNzd29yZChyZXEpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBleHByZXNzUm91dGVyKCkge1xuICAgIGNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG4gICAgcm91dGVyLnVzZSgnL2FwcHMnLCBleHByZXNzLnN0YXRpYyhwdWJsaWNfaHRtbCkpO1xuICAgIHJvdXRlci51c2UoJy8nLCBzdXBlci5leHByZXNzUm91dGVyKCkpO1xuICAgIHJldHVybiByb3V0ZXI7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUHVibGljQVBJUm91dGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxHQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFBa0QsU0FBQUQsdUJBQUFTLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFbEQsTUFBTUcsV0FBVyxHQUFHQyxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsU0FBUyxFQUFFLG1CQUFtQixDQUFDO0FBQ2hFLE1BQU1DLEtBQUssR0FBR0gsYUFBSSxDQUFDQyxPQUFPLENBQUNDLFNBQVMsRUFBRSxhQUFhLENBQUM7QUFFN0MsTUFBTUUsZUFBZSxTQUFTQyxzQkFBYSxDQUFDO0VBQ2pEQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixLQUFLLENBQUMsQ0FBQztJQUNQQyxtQkFBVSxDQUFDQyxxQkFBcUIsQ0FBQztNQUMvQkMsS0FBSyxFQUFFLGlCQUFpQjtNQUN4QkMsUUFBUSxFQUFFO0lBQ1osQ0FBQyxDQUFDO0VBQ0o7RUFDQUMsV0FBV0EsQ0FBQ0MsR0FBRyxFQUFFO0lBQ2YsTUFBTTtNQUFFQyxLQUFLLEVBQUVDO0lBQVMsQ0FBQyxHQUFHRixHQUFHLENBQUNHLEtBQUs7SUFDckMsTUFBTUYsS0FBSyxHQUFHQyxRQUFRLElBQUksT0FBT0EsUUFBUSxLQUFLLFFBQVEsR0FBR0EsUUFBUSxDQUFDRSxRQUFRLENBQUMsQ0FBQyxHQUFHRixRQUFRO0lBRXZGLE1BQU1HLEtBQUssR0FBR0wsR0FBRyxDQUFDTSxNQUFNLENBQUNELEtBQUs7SUFDOUIsTUFBTUUsTUFBTSxHQUFHQyxlQUFNLENBQUNDLEdBQUcsQ0FBQ0osS0FBSyxDQUFDO0lBRWhDLElBQUksQ0FBQ0UsTUFBTSxFQUFFO01BQ1gsSUFBSSxDQUFDRyxjQUFjLENBQUMsQ0FBQztJQUN2QjtJQUVBLElBQUksQ0FBQ0gsTUFBTSxDQUFDSSxlQUFlLEVBQUU7TUFDM0IsT0FBTyxJQUFJLENBQUNDLHNCQUFzQixDQUFDLENBQUM7SUFDdEM7SUFFQSxJQUFJLENBQUNYLEtBQUssRUFBRTtNQUNWLE9BQU8sSUFBSSxDQUFDWSxXQUFXLENBQUNiLEdBQUcsQ0FBQztJQUM5QjtJQUVBLE1BQU1jLGNBQWMsR0FBR1AsTUFBTSxDQUFDTyxjQUFjO0lBQzVDLE9BQU9BLGNBQWMsQ0FBQ2YsV0FBVyxDQUFDRSxLQUFLLENBQUMsQ0FBQ2MsSUFBSSxDQUMzQyxNQUFNO01BQ0osT0FBT0MsT0FBTyxDQUFDM0IsT0FBTyxDQUFDO1FBQ3JCNEIsTUFBTSxFQUFFLEdBQUc7UUFDWEMsUUFBUSxFQUFFLEdBQUdYLE1BQU0sQ0FBQ1kscUJBQXFCO01BQzNDLENBQUMsQ0FBQztJQUNKLENBQUMsRUFDRCxNQUFNO01BQ0osT0FBTyxJQUFJLENBQUNDLHVCQUF1QixDQUFDcEIsR0FBRyxFQUFFQyxLQUFLLENBQUM7SUFDakQsQ0FDRixDQUFDO0VBQ0g7RUFFQW9CLHVCQUF1QkEsQ0FBQ3JCLEdBQUcsRUFBRTtJQUMzQixNQUFNc0IsUUFBUSxHQUFHdEIsR0FBRyxDQUFDdUIsSUFBSSxFQUFFRCxRQUFRO0lBQ25DLE1BQU1qQixLQUFLLEdBQUdMLEdBQUcsQ0FBQ00sTUFBTSxDQUFDRCxLQUFLO0lBQzlCLE1BQU1FLE1BQU0sR0FBR0MsZUFBTSxDQUFDQyxHQUFHLENBQUNKLEtBQUssQ0FBQztJQUVoQyxJQUFJLENBQUNFLE1BQU0sRUFBRTtNQUNYLElBQUksQ0FBQ0csY0FBYyxDQUFDLENBQUM7SUFDdkI7SUFFQSxJQUFJLENBQUNILE1BQU0sQ0FBQ0ksZUFBZSxFQUFFO01BQzNCLE9BQU8sSUFBSSxDQUFDQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RDO0lBRUEsTUFBTVgsS0FBSyxHQUFHRCxHQUFHLENBQUN1QixJQUFJLENBQUN0QixLQUFLO0lBRTVCLElBQUksQ0FBQ3FCLFFBQVEsSUFBSSxDQUFDckIsS0FBSyxFQUFFO01BQ3ZCLE9BQU8sSUFBSSxDQUFDWSxXQUFXLENBQUNiLEdBQUcsQ0FBQztJQUM5QjtJQUVBLE1BQU1jLGNBQWMsR0FBR1AsTUFBTSxDQUFDTyxjQUFjO0lBRTVDLE9BQU9BLGNBQWMsQ0FBQ08sdUJBQXVCLENBQUNDLFFBQVEsRUFBRXRCLEdBQUcsRUFBRUMsS0FBSyxDQUFDLENBQUNjLElBQUksQ0FDdEUsTUFBTTtNQUNKLE9BQU9DLE9BQU8sQ0FBQzNCLE9BQU8sQ0FBQztRQUNyQjRCLE1BQU0sRUFBRSxHQUFHO1FBQ1hDLFFBQVEsRUFBRSxHQUFHWCxNQUFNLENBQUNpQixrQkFBa0I7TUFDeEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUNELE1BQU07TUFDSixPQUFPUixPQUFPLENBQUMzQixPQUFPLENBQUM7UUFDckI0QixNQUFNLEVBQUUsR0FBRztRQUNYQyxRQUFRLEVBQUUsR0FBR1gsTUFBTSxDQUFDa0IsZUFBZTtNQUNyQyxDQUFDLENBQUM7SUFDSixDQUNGLENBQUM7RUFDSDtFQUVBQyxjQUFjQSxDQUFDMUIsR0FBRyxFQUFFO0lBQ2xCLE9BQU8sSUFBSWdCLE9BQU8sQ0FBQyxDQUFDM0IsT0FBTyxFQUFFc0MsTUFBTSxLQUFLO01BQ3RDLE1BQU1wQixNQUFNLEdBQUdDLGVBQU0sQ0FBQ0MsR0FBRyxDQUFDVCxHQUFHLENBQUNHLEtBQUssQ0FBQ3lCLEVBQUUsQ0FBQztNQUV2QyxJQUFJLENBQUNyQixNQUFNLEVBQUU7UUFDWCxJQUFJLENBQUNHLGNBQWMsQ0FBQyxDQUFDO01BQ3ZCO01BRUEsSUFBSSxDQUFDSCxNQUFNLENBQUNJLGVBQWUsRUFBRTtRQUMzQixPQUFPdEIsT0FBTyxDQUFDO1VBQ2I0QixNQUFNLEVBQUUsR0FBRztVQUNYWSxJQUFJLEVBQUU7UUFDUixDQUFDLENBQUM7TUFDSjtNQUNBO01BQ0FDLFdBQUUsQ0FBQ0MsUUFBUSxDQUFDM0MsYUFBSSxDQUFDQyxPQUFPLENBQUNFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDeUMsR0FBRyxFQUFFQyxJQUFJLEtBQUs7UUFDMUUsSUFBSUQsR0FBRyxFQUFFO1VBQ1AsT0FBT0wsTUFBTSxDQUFDSyxHQUFHLENBQUM7UUFDcEI7UUFDQUMsSUFBSSxHQUFHQSxJQUFJLENBQUNDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxJQUFJM0IsTUFBTSxDQUFDSSxlQUFlLEdBQUcsQ0FBQztRQUN0RXRCLE9BQU8sQ0FBQztVQUNOd0MsSUFBSSxFQUFFSTtRQUNSLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKO0VBRUFFLG9CQUFvQkEsQ0FBQ25DLEdBQUcsRUFBRTtJQUN4QixNQUFNTyxNQUFNLEdBQUdQLEdBQUcsQ0FBQ08sTUFBTTtJQUV6QixJQUFJLENBQUNBLE1BQU0sRUFBRTtNQUNYLElBQUksQ0FBQ0csY0FBYyxDQUFDLENBQUM7SUFDdkI7SUFFQSxJQUFJLENBQUNILE1BQU0sQ0FBQ0ksZUFBZSxFQUFFO01BQzNCLE9BQU8sSUFBSSxDQUFDQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RDO0lBRUEsTUFBTTtNQUFFWCxLQUFLLEVBQUVDO0lBQVMsQ0FBQyxHQUFHRixHQUFHLENBQUNHLEtBQUs7SUFDckMsTUFBTUYsS0FBSyxHQUFHQyxRQUFRLElBQUksT0FBT0EsUUFBUSxLQUFLLFFBQVEsR0FBR0EsUUFBUSxDQUFDRSxRQUFRLENBQUMsQ0FBQyxHQUFHRixRQUFRO0lBRXZGLElBQUksQ0FBQ0QsS0FBSyxFQUFFO01BQ1YsT0FBTyxJQUFJLENBQUNZLFdBQVcsQ0FBQ2IsR0FBRyxDQUFDO0lBQzlCO0lBRUEsT0FBT08sTUFBTSxDQUFDTyxjQUFjLENBQUNzQix1QkFBdUIsQ0FBQ25DLEtBQUssQ0FBQyxDQUFDYyxJQUFJLENBQzlELE1BQU07TUFDSixNQUFNVCxNQUFNLEdBQUcrQixvQkFBRSxDQUFDQyxTQUFTLENBQUM7UUFDMUJyQyxLQUFLO1FBQ0wyQixFQUFFLEVBQUVyQixNQUFNLENBQUNnQyxhQUFhO1FBQ3hCQyxHQUFHLEVBQUVqQyxNQUFNLENBQUNrQztNQUNkLENBQUMsQ0FBQztNQUNGLE9BQU96QixPQUFPLENBQUMzQixPQUFPLENBQUM7UUFDckI0QixNQUFNLEVBQUUsR0FBRztRQUNYQyxRQUFRLEVBQUUsR0FBR1gsTUFBTSxDQUFDbUMsaUJBQWlCLElBQUlwQyxNQUFNO01BQ2pELENBQUMsQ0FBQztJQUNKLENBQUMsRUFDRCxNQUFNO01BQ0osT0FBTyxJQUFJLENBQUNPLFdBQVcsQ0FBQ2IsR0FBRyxDQUFDO0lBQzlCLENBQ0YsQ0FBQztFQUNIO0VBRUEyQyxhQUFhQSxDQUFDM0MsR0FBRyxFQUFFO0lBQ2pCLE1BQU1PLE1BQU0sR0FBR1AsR0FBRyxDQUFDTyxNQUFNO0lBRXpCLElBQUksQ0FBQ0EsTUFBTSxFQUFFO01BQ1gsSUFBSSxDQUFDRyxjQUFjLENBQUMsQ0FBQztJQUN2QjtJQUVBLElBQUksQ0FBQ0gsTUFBTSxDQUFDSSxlQUFlLEVBQUU7TUFDM0IsT0FBTyxJQUFJLENBQUNDLHNCQUFzQixDQUFDLENBQUM7SUFDdEM7SUFFQSxNQUFNO01BQUVnQyxZQUFZO01BQUUzQyxLQUFLLEVBQUVDO0lBQVMsQ0FBQyxHQUFHRixHQUFHLENBQUN1QixJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU10QixLQUFLLEdBQUdDLFFBQVEsSUFBSSxPQUFPQSxRQUFRLEtBQUssUUFBUSxHQUFHQSxRQUFRLENBQUNFLFFBQVEsQ0FBQyxDQUFDLEdBQUdGLFFBQVE7SUFFdkYsSUFBSSxDQUFDLENBQUNELEtBQUssSUFBSSxDQUFDMkMsWUFBWSxLQUFLNUMsR0FBRyxDQUFDNkMsR0FBRyxLQUFLLEtBQUssRUFBRTtNQUNsRCxPQUFPLElBQUksQ0FBQ2hDLFdBQVcsQ0FBQ2IsR0FBRyxDQUFDO0lBQzlCO0lBRUEsSUFBSSxDQUFDQyxLQUFLLEVBQUU7TUFDVixNQUFNLElBQUk2QyxXQUFLLENBQUNDLEtBQUssQ0FBQ0QsV0FBSyxDQUFDQyxLQUFLLENBQUNDLFdBQVcsRUFBRSxlQUFlLENBQUM7SUFDakU7SUFFQSxJQUFJLENBQUNKLFlBQVksRUFBRTtNQUNqQixNQUFNLElBQUlFLFdBQUssQ0FBQ0MsS0FBSyxDQUFDRCxXQUFLLENBQUNDLEtBQUssQ0FBQ0UsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUM7SUFDekU7SUFFQSxPQUFPMUMsTUFBTSxDQUFDTyxjQUFjLENBQ3pCb0MsY0FBYyxDQUFDakQsS0FBSyxFQUFFMkMsWUFBWSxDQUFDLENBQ25DN0IsSUFBSSxDQUNILE1BQU07TUFDSixPQUFPQyxPQUFPLENBQUMzQixPQUFPLENBQUM7UUFDckI4RCxPQUFPLEVBQUU7TUFDWCxDQUFDLENBQUM7SUFDSixDQUFDLEVBQ0RuQixHQUFHLElBQUk7TUFDTCxPQUFPaEIsT0FBTyxDQUFDM0IsT0FBTyxDQUFDO1FBQ3JCOEQsT0FBTyxFQUFFLEtBQUs7UUFDZG5CO01BQ0YsQ0FBQyxDQUFDO0lBQ0osQ0FDRixDQUFDLENBQ0FqQixJQUFJLENBQUNxQyxNQUFNLElBQUk7TUFDZCxNQUFNQyxXQUFXLEdBQUc7UUFDbEJwRCxLQUFLLEVBQUVBLEtBQUs7UUFDWjJCLEVBQUUsRUFBRXJCLE1BQU0sQ0FBQ2dDLGFBQWE7UUFDeEJlLEtBQUssRUFBRUYsTUFBTSxDQUFDcEIsR0FBRztRQUNqQlEsR0FBRyxFQUFFakMsTUFBTSxDQUFDa0M7TUFDZCxDQUFDO01BRUQsSUFBSVcsTUFBTSxFQUFFcEIsR0FBRyxLQUFLLHFDQUFxQyxFQUFFO1FBQ3pELE9BQU9xQixXQUFXLENBQUNwRCxLQUFLO1FBQ3hCb0QsV0FBVyxDQUFDcEQsS0FBSyxHQUFHQSxLQUFLO01BQzNCO01BQ0EsTUFBTUssTUFBTSxHQUFHK0Isb0JBQUUsQ0FBQ0MsU0FBUyxDQUFDZSxXQUFXLENBQUM7TUFFeEMsSUFBSXJELEdBQUcsQ0FBQzZDLEdBQUcsRUFBRTtRQUNYLElBQUlPLE1BQU0sQ0FBQ0QsT0FBTyxFQUFFO1VBQ2xCLE9BQU9uQyxPQUFPLENBQUMzQixPQUFPLENBQUM7WUFDckI0QixNQUFNLEVBQUUsR0FBRztZQUNYc0MsUUFBUSxFQUFFO1VBQ1osQ0FBQyxDQUFDO1FBQ0o7UUFDQSxJQUFJSCxNQUFNLENBQUNwQixHQUFHLEVBQUU7VUFDZCxNQUFNLElBQUljLFdBQUssQ0FBQ0MsS0FBSyxDQUFDRCxXQUFLLENBQUNDLEtBQUssQ0FBQ0MsV0FBVyxFQUFFLEdBQUdJLE1BQU0sQ0FBQ3BCLEdBQUcsRUFBRSxDQUFDO1FBQ2pFO01BQ0Y7TUFFQSxNQUFNZCxRQUFRLEdBQUdrQyxNQUFNLENBQUNELE9BQU8sR0FDM0IsR0FBRzVDLE1BQU0sQ0FBQ2lELHVCQUF1QixFQUFFLEdBQ25DLEdBQUdqRCxNQUFNLENBQUNtQyxpQkFBaUIsSUFBSXBDLE1BQU0sRUFBRTtNQUUzQyxPQUFPVSxPQUFPLENBQUMzQixPQUFPLENBQUM7UUFDckI0QixNQUFNLEVBQUUsR0FBRztRQUNYQztNQUNGLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNOO0VBRUFMLFdBQVdBLENBQUNiLEdBQUcsRUFBRTtJQUNmLE9BQU9nQixPQUFPLENBQUMzQixPQUFPLENBQUM7TUFDckI0QixNQUFNLEVBQUUsR0FBRztNQUNYQyxRQUFRLEVBQUVsQixHQUFHLENBQUNPLE1BQU0sQ0FBQ2tEO0lBQ3ZCLENBQUMsQ0FBQztFQUNKO0VBRUFyQyx1QkFBdUJBLENBQUNwQixHQUFHLEVBQUVDLEtBQUssRUFBRTtJQUNsQyxNQUFNTSxNQUFNLEdBQUdQLEdBQUcsQ0FBQ08sTUFBTTtJQUN6QixJQUFJUCxHQUFHLENBQUNNLE1BQU0sQ0FBQ0QsS0FBSyxFQUFFO01BQ3BCLE1BQU1DLE1BQU0sR0FBRytCLG9CQUFFLENBQUNDLFNBQVMsQ0FBQztRQUMxQmpDLEtBQUssRUFBRUwsR0FBRyxDQUFDTSxNQUFNLENBQUNELEtBQUs7UUFDdkJKO01BQ0YsQ0FBQyxDQUFDO01BQ0YsT0FBT2UsT0FBTyxDQUFDM0IsT0FBTyxDQUFDO1FBQ3JCNEIsTUFBTSxFQUFFLEdBQUc7UUFDWEMsUUFBUSxFQUFFLEdBQUdYLE1BQU0sQ0FBQ21ELDBCQUEwQixJQUFJcEQsTUFBTTtNQUMxRCxDQUFDLENBQUM7SUFDSixDQUFDLE1BQU07TUFDTCxPQUFPLElBQUksQ0FBQ08sV0FBVyxDQUFDYixHQUFHLENBQUM7SUFDOUI7RUFDRjtFQUVBWSxzQkFBc0JBLENBQUEsRUFBRztJQUN2QixPQUFPSSxPQUFPLENBQUMzQixPQUFPLENBQUM7TUFDckJ3QyxJQUFJLEVBQUUsWUFBWTtNQUNsQlosTUFBTSxFQUFFO0lBQ1YsQ0FBQyxDQUFDO0VBQ0o7RUFFQVAsY0FBY0EsQ0FBQSxFQUFHO0lBQ2YsTUFBTTRDLEtBQUssR0FBRyxJQUFJUCxLQUFLLENBQUMsQ0FBQztJQUN6Qk8sS0FBSyxDQUFDckMsTUFBTSxHQUFHLEdBQUc7SUFDbEJxQyxLQUFLLENBQUNLLE9BQU8sR0FBRyxjQUFjO0lBQzlCLE1BQU1MLEtBQUs7RUFDYjtFQUVBTSxTQUFTQSxDQUFDNUQsR0FBRyxFQUFFO0lBQ2JBLEdBQUcsQ0FBQ08sTUFBTSxHQUFHQyxlQUFNLENBQUNDLEdBQUcsQ0FBQ1QsR0FBRyxDQUFDTSxNQUFNLENBQUNELEtBQUssQ0FBQztJQUN6QyxPQUFPVyxPQUFPLENBQUMzQixPQUFPLENBQUMsQ0FBQztFQUMxQjtFQUVBd0UsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osSUFBSSxDQUFDQyxLQUFLLENBQ1IsS0FBSyxFQUNMLDJCQUEyQixFQUMzQjlELEdBQUcsSUFBSTtNQUNMLElBQUksQ0FBQzRELFNBQVMsQ0FBQzVELEdBQUcsQ0FBQztJQUNyQixDQUFDLEVBQ0RBLEdBQUcsSUFBSTtNQUNMLE9BQU8sSUFBSSxDQUFDRCxXQUFXLENBQUNDLEdBQUcsQ0FBQztJQUM5QixDQUNGLENBQUM7SUFFRCxJQUFJLENBQUM4RCxLQUFLLENBQ1IsTUFBTSxFQUNOLHdDQUF3QyxFQUN4QzlELEdBQUcsSUFBSTtNQUNMLElBQUksQ0FBQzRELFNBQVMsQ0FBQzVELEdBQUcsQ0FBQztJQUNyQixDQUFDLEVBQ0RBLEdBQUcsSUFBSTtNQUNMLE9BQU8sSUFBSSxDQUFDcUIsdUJBQXVCLENBQUNyQixHQUFHLENBQUM7SUFDMUMsQ0FDRixDQUFDO0lBRUQsSUFBSSxDQUFDOEQsS0FBSyxDQUFDLEtBQUssRUFBRSx1QkFBdUIsRUFBRTlELEdBQUcsSUFBSTtNQUNoRCxPQUFPLElBQUksQ0FBQzBCLGNBQWMsQ0FBQzFCLEdBQUcsQ0FBQztJQUNqQyxDQUFDLENBQUM7SUFFRixJQUFJLENBQUM4RCxLQUFLLENBQ1IsTUFBTSxFQUNOLHFDQUFxQyxFQUNyQzlELEdBQUcsSUFBSTtNQUNMLElBQUksQ0FBQzRELFNBQVMsQ0FBQzVELEdBQUcsQ0FBQztJQUNyQixDQUFDLEVBQ0RBLEdBQUcsSUFBSTtNQUNMLE9BQU8sSUFBSSxDQUFDMkMsYUFBYSxDQUFDM0MsR0FBRyxDQUFDO0lBQ2hDLENBQ0YsQ0FBQztJQUVELElBQUksQ0FBQzhELEtBQUssQ0FDUixLQUFLLEVBQ0wscUNBQXFDLEVBQ3JDOUQsR0FBRyxJQUFJO01BQ0wsSUFBSSxDQUFDNEQsU0FBUyxDQUFDNUQsR0FBRyxDQUFDO0lBQ3JCLENBQUMsRUFDREEsR0FBRyxJQUFJO01BQ0wsT0FBTyxJQUFJLENBQUNtQyxvQkFBb0IsQ0FBQ25DLEdBQUcsQ0FBQztJQUN2QyxDQUNGLENBQUM7RUFDSDtFQUVBK0QsYUFBYUEsQ0FBQSxFQUFHO0lBQ2QsTUFBTUMsTUFBTSxHQUFHQyxnQkFBTyxDQUFDQyxNQUFNLENBQUMsQ0FBQztJQUMvQkYsTUFBTSxDQUFDRyxHQUFHLENBQUMsT0FBTyxFQUFFRixnQkFBTyxDQUFDRyxNQUFNLENBQUNqRixXQUFXLENBQUMsQ0FBQztJQUNoRDZFLE1BQU0sQ0FBQ0csR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUNKLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDdEMsT0FBT0MsTUFBTTtFQUNmO0FBQ0Y7QUFBQ0ssT0FBQSxDQUFBN0UsZUFBQSxHQUFBQSxlQUFBO0FBQUEsSUFBQThFLFFBQUEsR0FBQUQsT0FBQSxDQUFBbkYsT0FBQSxHQUVjTSxlQUFlIiwiaWdub3JlTGlzdCI6W119
@@ -1,31 +1,19 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PurgeRouter = undefined;
7
-
8
- var _PromiseRouter = require('../PromiseRouter');
9
-
10
- var _PromiseRouter2 = _interopRequireDefault(_PromiseRouter);
11
-
12
- var _middlewares = require('../middlewares');
13
-
14
- var middleware = _interopRequireWildcard(_middlewares);
15
-
16
- var _node = require('parse/node');
17
-
18
- var _node2 = _interopRequireDefault(_node);
19
-
20
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
- class PurgeRouter extends _PromiseRouter2.default {
25
-
6
+ exports.default = exports.PurgeRouter = void 0;
7
+ var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
8
+ var middleware = _interopRequireWildcard(require("../middlewares"));
9
+ var _node = _interopRequireDefault(require("parse/node"));
10
+ var _Error = require("../Error");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ class PurgeRouter extends _PromiseRouter.default {
26
14
  handlePurge(req) {
27
15
  if (req.auth.isReadOnly) {
28
- throw new _node2.default.Error(_node2.default.Error.OPERATION_FORBIDDEN, 'read-only masterKey isn\'t allowed to purge a schema.');
16
+ throw (0, _Error.createSanitizedError)(_node.default.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to purge a schema.", req.config);
29
17
  }
30
18
  return req.config.database.purgeCollection(req.params.className).then(() => {
31
19
  var cacheAdapter = req.config.cacheController;
@@ -34,22 +22,24 @@ class PurgeRouter extends _PromiseRouter2.default {
34
22
  } else if (req.params.className == '_Role') {
35
23
  cacheAdapter.role.clear();
36
24
  }
37
- return { response: {} };
25
+ return {
26
+ response: {}
27
+ };
38
28
  }).catch(error => {
39
- if (!error || error && error.code === _node2.default.Error.OBJECT_NOT_FOUND) {
40
- return { response: {} };
29
+ if (!error || error && error.code === _node.default.Error.OBJECT_NOT_FOUND) {
30
+ return {
31
+ response: {}
32
+ };
41
33
  }
42
34
  throw error;
43
35
  });
44
36
  }
45
-
46
37
  mountRoutes() {
47
38
  this.route('DELETE', '/purge/:className', middleware.promiseEnforceMasterKeyAccess, req => {
48
39
  return this.handlePurge(req);
49
40
  });
50
41
  }
51
42
  }
52
-
53
43
  exports.PurgeRouter = PurgeRouter;
54
- exports.default = PurgeRouter;
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1B1cmdlUm91dGVyLmpzIl0sIm5hbWVzIjpbIm1pZGRsZXdhcmUiLCJQdXJnZVJvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJoYW5kbGVQdXJnZSIsInJlcSIsImF1dGgiLCJpc1JlYWRPbmx5IiwiUGFyc2UiLCJFcnJvciIsIk9QRVJBVElPTl9GT1JCSURERU4iLCJjb25maWciLCJkYXRhYmFzZSIsInB1cmdlQ29sbGVjdGlvbiIsInBhcmFtcyIsImNsYXNzTmFtZSIsInRoZW4iLCJjYWNoZUFkYXB0ZXIiLCJjYWNoZUNvbnRyb2xsZXIiLCJ1c2VyIiwiY2xlYXIiLCJyb2xlIiwicmVzcG9uc2UiLCJjYXRjaCIsImVycm9yIiwiY29kZSIsIk9CSkVDVF9OT1RfRk9VTkQiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUNBOztJQUFZQSxVOztBQUNaOzs7Ozs7OztBQUVPLE1BQU1DLFdBQU4sU0FBMEJDLHVCQUExQixDQUF3Qzs7QUFFN0NDLGNBQVlDLEdBQVosRUFBaUI7QUFDZixRQUFJQSxJQUFJQyxJQUFKLENBQVNDLFVBQWIsRUFBeUI7QUFDdkIsWUFBTSxJQUFJQyxlQUFNQyxLQUFWLENBQWdCRCxlQUFNQyxLQUFOLENBQVlDLG1CQUE1QixFQUFpRCx1REFBakQsQ0FBTjtBQUNEO0FBQ0QsV0FBT0wsSUFBSU0sTUFBSixDQUFXQyxRQUFYLENBQW9CQyxlQUFwQixDQUFvQ1IsSUFBSVMsTUFBSixDQUFXQyxTQUEvQyxFQUNKQyxJQURJLENBQ0MsTUFBTTtBQUNWLFVBQUlDLGVBQWVaLElBQUlNLE1BQUosQ0FBV08sZUFBOUI7QUFDQSxVQUFJYixJQUFJUyxNQUFKLENBQVdDLFNBQVgsSUFBd0IsVUFBNUIsRUFBd0M7QUFDdENFLHFCQUFhRSxJQUFiLENBQWtCQyxLQUFsQjtBQUNELE9BRkQsTUFFTyxJQUFJZixJQUFJUyxNQUFKLENBQVdDLFNBQVgsSUFBd0IsT0FBNUIsRUFBcUM7QUFDMUNFLHFCQUFhSSxJQUFiLENBQWtCRCxLQUFsQjtBQUNEO0FBQ0QsYUFBTyxFQUFDRSxVQUFVLEVBQVgsRUFBUDtBQUNELEtBVEksRUFTRkMsS0FURSxDQVNLQyxLQUFELElBQVc7QUFDbEIsVUFBSSxDQUFDQSxLQUFELElBQVdBLFNBQVNBLE1BQU1DLElBQU4sS0FBZWpCLGVBQU1DLEtBQU4sQ0FBWWlCLGdCQUFuRCxFQUFzRTtBQUNwRSxlQUFPLEVBQUNKLFVBQVUsRUFBWCxFQUFQO0FBQ0Q7QUFDRCxZQUFNRSxLQUFOO0FBQ0QsS0FkSSxDQUFQO0FBZUQ7O0FBRURHLGdCQUFjO0FBQ1osU0FBS0MsS0FBTCxDQUFXLFFBQVgsRUFBc0IsbUJBQXRCLEVBQTJDM0IsV0FBVzRCLDZCQUF0RCxFQUFzRnhCLEdBQUQsSUFBUztBQUFFLGFBQU8sS0FBS0QsV0FBTCxDQUFpQkMsR0FBakIsQ0FBUDtBQUErQixLQUEvSDtBQUNEO0FBekI0Qzs7UUFBbENILFcsR0FBQUEsVztrQkE0QkVBLFciLCJmaWxlIjoiUHVyZ2VSb3V0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuXG5leHBvcnQgY2xhc3MgUHVyZ2VSb3V0ZXIgZXh0ZW5kcyBQcm9taXNlUm91dGVyIHtcblxuICBoYW5kbGVQdXJnZShyZXEpIHtcbiAgICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sICdyZWFkLW9ubHkgbWFzdGVyS2V5IGlzblxcJ3QgYWxsb3dlZCB0byBwdXJnZSBhIHNjaGVtYS4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UucHVyZ2VDb2xsZWN0aW9uKHJlcS5wYXJhbXMuY2xhc3NOYW1lKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB2YXIgY2FjaGVBZGFwdGVyID0gcmVxLmNvbmZpZy5jYWNoZUNvbnRyb2xsZXI7XG4gICAgICAgIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSA9PSAnX1Nlc3Npb24nKSB7XG4gICAgICAgICAgY2FjaGVBZGFwdGVyLnVzZXIuY2xlYXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSA9PSAnX1JvbGUnKSB7XG4gICAgICAgICAgY2FjaGVBZGFwdGVyLnJvbGUuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge3Jlc3BvbnNlOiB7fX07XG4gICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKCFlcnJvciB8fCAoZXJyb3IgJiYgZXJyb3IuY29kZSA9PT0gUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCkpIHtcbiAgICAgICAgICByZXR1cm4ge3Jlc3BvbnNlOiB7fX07XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0RFTEVURScsICAnL3B1cmdlLzpjbGFzc05hbWUnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCAocmVxKSA9PiB7IHJldHVybiB0aGlzLmhhbmRsZVB1cmdlKHJlcSk7IH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFB1cmdlUm91dGVyO1xuIl19
44
+ var _default = exports.default = PurgeRouter;
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX25vZGUiLCJfRXJyb3IiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJQdXJnZVJvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJoYW5kbGVQdXJnZSIsInJlcSIsImF1dGgiLCJpc1JlYWRPbmx5IiwiY3JlYXRlU2FuaXRpemVkRXJyb3IiLCJQYXJzZSIsIkVycm9yIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsImNvbmZpZyIsImRhdGFiYXNlIiwicHVyZ2VDb2xsZWN0aW9uIiwicGFyYW1zIiwiY2xhc3NOYW1lIiwidGhlbiIsImNhY2hlQWRhcHRlciIsImNhY2hlQ29udHJvbGxlciIsInVzZXIiLCJjbGVhciIsInJvbGUiLCJyZXNwb25zZSIsImNhdGNoIiwiZXJyb3IiLCJjb2RlIiwiT0JKRUNUX05PVF9GT1VORCIsIm1vdW50Um91dGVzIiwicm91dGUiLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1B1cmdlUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9taXNlUm91dGVyIGZyb20gJy4uL1Byb21pc2VSb3V0ZXInO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgeyBjcmVhdGVTYW5pdGl6ZWRFcnJvciB9IGZyb20gJy4uL0Vycm9yJztcblxuZXhwb3J0IGNsYXNzIFB1cmdlUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIGhhbmRsZVB1cmdlKHJlcSkge1xuICAgIGlmIChyZXEuYXV0aC5pc1JlYWRPbmx5KSB7XG4gICAgICB0aHJvdyBjcmVhdGVTYW5pdGl6ZWRFcnJvcihcbiAgICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgICAgXCJyZWFkLW9ubHkgbWFzdGVyS2V5IGlzbid0IGFsbG93ZWQgdG8gcHVyZ2UgYSBzY2hlbWEuXCIsXG4gICAgICAgIHJlcS5jb25maWdcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlXG4gICAgICAucHVyZ2VDb2xsZWN0aW9uKHJlcS5wYXJhbXMuY2xhc3NOYW1lKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB2YXIgY2FjaGVBZGFwdGVyID0gcmVxLmNvbmZpZy5jYWNoZUNvbnRyb2xsZXI7XG4gICAgICAgIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSA9PSAnX1Nlc3Npb24nKSB7XG4gICAgICAgICAgY2FjaGVBZGFwdGVyLnVzZXIuY2xlYXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSA9PSAnX1JvbGUnKSB7XG4gICAgICAgICAgY2FjaGVBZGFwdGVyLnJvbGUuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByZXNwb25zZToge30gfTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICBpZiAoIWVycm9yIHx8IChlcnJvciAmJiBlcnJvci5jb2RlID09PSBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5EKSkge1xuICAgICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiB7fSB9O1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdERUxFVEUnLCAnL3B1cmdlLzpjbGFzc05hbWUnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUHVyZ2UocmVxKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQdXJnZVJvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQWdELFNBQUFFLHdCQUFBRyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTCx1QkFBQSxZQUFBQSxDQUFBRyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGdCQUFBUCxDQUFBLElBQUFELENBQUEsZ0JBQUFDLENBQUEsT0FBQWEsY0FBQSxDQUFBQyxJQUFBLENBQUFmLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLElBQUFELENBQUEsR0FBQVUsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWxCLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElBQUFQLENBQUEsQ0FBQUUsQ0FBQSxFQUFBUCxDQUFBLEVBQUFNLENBQUEsSUFBQUMsQ0FBQSxDQUFBUCxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxXQUFBTyxDQUFBLEtBQUFSLENBQUEsRUFBQUMsQ0FBQTtBQUFBLFNBQUFQLHVCQUFBTSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLEdBQUFMLENBQUEsS0FBQVUsT0FBQSxFQUFBVixDQUFBO0FBRXpDLE1BQU1tQixXQUFXLFNBQVNDLHNCQUFhLENBQUM7RUFDN0NDLFdBQVdBLENBQUNDLEdBQUcsRUFBRTtJQUNmLElBQUlBLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDQyxVQUFVLEVBQUU7TUFDdkIsTUFBTSxJQUFBQywyQkFBb0IsRUFDeEJDLGFBQUssQ0FBQ0MsS0FBSyxDQUFDQyxtQkFBbUIsRUFDL0Isc0RBQXNELEVBQ3RETixHQUFHLENBQUNPLE1BQ04sQ0FBQztJQUNIO0lBQ0EsT0FBT1AsR0FBRyxDQUFDTyxNQUFNLENBQUNDLFFBQVEsQ0FDdkJDLGVBQWUsQ0FBQ1QsR0FBRyxDQUFDVSxNQUFNLENBQUNDLFNBQVMsQ0FBQyxDQUNyQ0MsSUFBSSxDQUFDLE1BQU07TUFDVixJQUFJQyxZQUFZLEdBQUdiLEdBQUcsQ0FBQ08sTUFBTSxDQUFDTyxlQUFlO01BQzdDLElBQUlkLEdBQUcsQ0FBQ1UsTUFBTSxDQUFDQyxTQUFTLElBQUksVUFBVSxFQUFFO1FBQ3RDRSxZQUFZLENBQUNFLElBQUksQ0FBQ0MsS0FBSyxDQUFDLENBQUM7TUFDM0IsQ0FBQyxNQUFNLElBQUloQixHQUFHLENBQUNVLE1BQU0sQ0FBQ0MsU0FBUyxJQUFJLE9BQU8sRUFBRTtRQUMxQ0UsWUFBWSxDQUFDSSxJQUFJLENBQUNELEtBQUssQ0FBQyxDQUFDO01BQzNCO01BQ0EsT0FBTztRQUFFRSxRQUFRLEVBQUUsQ0FBQztNQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQ0RDLEtBQUssQ0FBQ0MsS0FBSyxJQUFJO01BQ2QsSUFBSSxDQUFDQSxLQUFLLElBQUtBLEtBQUssSUFBSUEsS0FBSyxDQUFDQyxJQUFJLEtBQUtqQixhQUFLLENBQUNDLEtBQUssQ0FBQ2lCLGdCQUFpQixFQUFFO1FBQ3BFLE9BQU87VUFBRUosUUFBUSxFQUFFLENBQUM7UUFBRSxDQUFDO01BQ3pCO01BQ0EsTUFBTUUsS0FBSztJQUNiLENBQUMsQ0FBQztFQUNOO0VBRUFHLFdBQVdBLENBQUEsRUFBRztJQUNaLElBQUksQ0FBQ0MsS0FBSyxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBRWxELFVBQVUsQ0FBQ21ELDZCQUE2QixFQUFFekIsR0FBRyxJQUFJO01BQ3pGLE9BQU8sSUFBSSxDQUFDRCxXQUFXLENBQUNDLEdBQUcsQ0FBQztJQUM5QixDQUFDLENBQUM7RUFDSjtBQUNGO0FBQUMwQixPQUFBLENBQUE3QixXQUFBLEdBQUFBLFdBQUE7QUFBQSxJQUFBOEIsUUFBQSxHQUFBRCxPQUFBLENBQUF0QyxPQUFBLEdBRWNTLFdBQVciLCJpZ25vcmVMaXN0IjpbXX0=