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
@@ -3,44 +3,32 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PushRouter = 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
-
6
+ exports.default = exports.PushRouter = void 0;
7
+ var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
8
+ var middleware = _interopRequireWildcard(require("../middlewares"));
16
9
  var _node = require("parse/node");
17
-
18
- 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; } }
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- class PushRouter extends _PromiseRouter2.default {
23
-
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 PushRouter extends _PromiseRouter.default {
24
14
  mountRoutes() {
25
- this.route("POST", "/push", middleware.promiseEnforceMasterKeyAccess, PushRouter.handlePOST);
15
+ this.route('POST', '/push', middleware.promiseEnforceMasterKeyAccess, PushRouter.handlePOST);
26
16
  }
27
-
28
17
  static handlePOST(req) {
29
18
  if (req.auth.isReadOnly) {
30
- throw new _node.Parse.Error(_node.Parse.Error.OPERATION_FORBIDDEN, 'read-only masterKey isn\'t allowed to send push notifications.');
19
+ throw (0, _Error.createSanitizedError)(_node.Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to send push notifications.", req.config);
31
20
  }
32
21
  const pushController = req.config.pushController;
33
22
  if (!pushController) {
34
23
  throw new _node.Parse.Error(_node.Parse.Error.PUSH_MISCONFIGURED, 'Push controller is not set');
35
24
  }
36
-
37
25
  const where = PushRouter.getQueryCondition(req);
38
26
  let resolve;
39
27
  const promise = new Promise(_resolve => {
40
28
  resolve = _resolve;
41
29
  });
42
30
  let pushStatusId;
43
- pushController.sendPush(req.body, where, req.config, req.auth, objectId => {
31
+ pushController.sendPush(req.body || {}, where, req.config, req.auth, objectId => {
44
32
  pushStatusId = objectId;
45
33
  resolve({
46
34
  headers: {
@@ -65,7 +53,6 @@ class PushRouter extends _PromiseRouter2.default {
65
53
  const body = req.body || {};
66
54
  const hasWhere = typeof body.where !== 'undefined';
67
55
  const hasChannels = typeof body.channels !== 'undefined';
68
-
69
56
  let where;
70
57
  if (hasWhere && hasChannels) {
71
58
  throw new _node.Parse.Error(_node.Parse.Error.PUSH_MISCONFIGURED, 'Channels and query can not be set at the same time.');
@@ -73,8 +60,8 @@ class PushRouter extends _PromiseRouter2.default {
73
60
  where = body.where;
74
61
  } else if (hasChannels) {
75
62
  where = {
76
- "channels": {
77
- "$in": body.channels
63
+ channels: {
64
+ $in: body.channels
78
65
  }
79
66
  };
80
67
  } else {
@@ -83,7 +70,6 @@ class PushRouter extends _PromiseRouter2.default {
83
70
  return where;
84
71
  }
85
72
  }
86
-
87
73
  exports.PushRouter = PushRouter;
88
- exports.default = PushRouter;
89
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1B1c2hSb3V0ZXIuanMiXSwibmFtZXMiOlsibWlkZGxld2FyZSIsIlB1c2hSb3V0ZXIiLCJQcm9taXNlUm91dGVyIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiaGFuZGxlUE9TVCIsInJlcSIsImF1dGgiLCJpc1JlYWRPbmx5IiwiUGFyc2UiLCJFcnJvciIsIk9QRVJBVElPTl9GT1JCSURERU4iLCJwdXNoQ29udHJvbGxlciIsImNvbmZpZyIsIlBVU0hfTUlTQ09ORklHVVJFRCIsIndoZXJlIiwiZ2V0UXVlcnlDb25kaXRpb24iLCJyZXNvbHZlIiwicHJvbWlzZSIsIlByb21pc2UiLCJfcmVzb2x2ZSIsInB1c2hTdGF0dXNJZCIsInNlbmRQdXNoIiwiYm9keSIsIm9iamVjdElkIiwiaGVhZGVycyIsInJlc3BvbnNlIiwicmVzdWx0IiwiY2F0Y2giLCJlcnIiLCJsb2dnZXJDb250cm9sbGVyIiwiZXJyb3IiLCJoYXNXaGVyZSIsImhhc0NoYW5uZWxzIiwiY2hhbm5lbHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUNBOztJQUFZQSxVOztBQUNaOzs7Ozs7QUFFTyxNQUFNQyxVQUFOLFNBQXlCQyx1QkFBekIsQ0FBdUM7O0FBRTVDQyxnQkFBYztBQUNaLFNBQUtDLEtBQUwsQ0FBVyxNQUFYLEVBQW1CLE9BQW5CLEVBQTRCSixXQUFXSyw2QkFBdkMsRUFBc0VKLFdBQVdLLFVBQWpGO0FBQ0Q7O0FBRUQsU0FBT0EsVUFBUCxDQUFrQkMsR0FBbEIsRUFBdUI7QUFDckIsUUFBSUEsSUFBSUMsSUFBSixDQUFTQyxVQUFiLEVBQXlCO0FBQ3ZCLFlBQU0sSUFBSUMsWUFBTUMsS0FBVixDQUFnQkQsWUFBTUMsS0FBTixDQUFZQyxtQkFBNUIsRUFBaUQsZ0VBQWpELENBQU47QUFDRDtBQUNELFVBQU1DLGlCQUFpQk4sSUFBSU8sTUFBSixDQUFXRCxjQUFsQztBQUNBLFFBQUksQ0FBQ0EsY0FBTCxFQUFxQjtBQUNuQixZQUFNLElBQUlILFlBQU1DLEtBQVYsQ0FBZ0JELFlBQU1DLEtBQU4sQ0FBWUksa0JBQTVCLEVBQWdELDRCQUFoRCxDQUFOO0FBQ0Q7O0FBRUQsVUFBTUMsUUFBUWYsV0FBV2dCLGlCQUFYLENBQTZCVixHQUE3QixDQUFkO0FBQ0EsUUFBSVcsT0FBSjtBQUNBLFVBQU1DLFVBQVUsSUFBSUMsT0FBSixDQUFhQyxRQUFELElBQWM7QUFDeENILGdCQUFVRyxRQUFWO0FBQ0QsS0FGZSxDQUFoQjtBQUdBLFFBQUlDLFlBQUo7QUFDQVQsbUJBQWVVLFFBQWYsQ0FBd0JoQixJQUFJaUIsSUFBNUIsRUFBa0NSLEtBQWxDLEVBQXlDVCxJQUFJTyxNQUE3QyxFQUFxRFAsSUFBSUMsSUFBekQsRUFBZ0VpQixRQUFELElBQWM7QUFDM0VILHFCQUFlRyxRQUFmO0FBQ0FQLGNBQVE7QUFDTlEsaUJBQVM7QUFDUCxvQ0FBMEJKO0FBRG5CLFNBREg7QUFJTkssa0JBQVU7QUFDUkMsa0JBQVE7QUFEQTtBQUpKLE9BQVI7QUFRRCxLQVZELEVBVUdDLEtBVkgsQ0FVVUMsR0FBRCxJQUFTO0FBQ2hCdkIsVUFBSU8sTUFBSixDQUFXaUIsZ0JBQVgsQ0FBNEJDLEtBQTVCLENBQW1DLGVBQWNWLFlBQWEsNEJBQTlELEVBQTJGUSxHQUEzRjtBQUNELEtBWkQ7QUFhQSxXQUFPWCxPQUFQO0FBQ0Q7O0FBRUQ7Ozs7O0FBS0EsU0FBT0YsaUJBQVAsQ0FBeUJWLEdBQXpCLEVBQThCO0FBQzVCLFVBQU1pQixPQUFPakIsSUFBSWlCLElBQUosSUFBWSxFQUF6QjtBQUNBLFVBQU1TLFdBQVcsT0FBT1QsS0FBS1IsS0FBWixLQUFzQixXQUF2QztBQUNBLFVBQU1rQixjQUFjLE9BQU9WLEtBQUtXLFFBQVosS0FBeUIsV0FBN0M7O0FBRUEsUUFBSW5CLEtBQUo7QUFDQSxRQUFJaUIsWUFBWUMsV0FBaEIsRUFBNkI7QUFDM0IsWUFBTSxJQUFJeEIsWUFBTUMsS0FBVixDQUFnQkQsWUFBTUMsS0FBTixDQUFZSSxrQkFBNUIsRUFDSixxREFESSxDQUFOO0FBRUQsS0FIRCxNQUdPLElBQUlrQixRQUFKLEVBQWM7QUFDbkJqQixjQUFRUSxLQUFLUixLQUFiO0FBQ0QsS0FGTSxNQUVBLElBQUlrQixXQUFKLEVBQWlCO0FBQ3RCbEIsY0FBUTtBQUNOLG9CQUFZO0FBQ1YsaUJBQU9RLEtBQUtXO0FBREY7QUFETixPQUFSO0FBS0QsS0FOTSxNQU1BO0FBQ0wsWUFBTSxJQUFJekIsWUFBTUMsS0FBVixDQUFnQkQsWUFBTUMsS0FBTixDQUFZSSxrQkFBNUIsRUFBZ0QsK0RBQWhELENBQU47QUFDRDtBQUNELFdBQU9DLEtBQVA7QUFDRDtBQS9EMkM7O1FBQWpDZixVLEdBQUFBLFU7a0JBa0VFQSxVIiwiZmlsZSI6IlB1c2hSb3V0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciAgIGZyb20gJy4uL1Byb21pc2VSb3V0ZXInO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tIFwiLi4vbWlkZGxld2FyZXNcIjtcbmltcG9ydCB7IFBhcnNlIH0gICAgICAgZnJvbSBcInBhcnNlL25vZGVcIjtcblxuZXhwb3J0IGNsYXNzIFB1c2hSb3V0ZXIgZXh0ZW5kcyBQcm9taXNlUm91dGVyIHtcblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKFwiUE9TVFwiLCBcIi9wdXNoXCIsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIFB1c2hSb3V0ZXIuaGFuZGxlUE9TVCk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlUE9TVChyZXEpIHtcbiAgICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sICdyZWFkLW9ubHkgbWFzdGVyS2V5IGlzblxcJ3QgYWxsb3dlZCB0byBzZW5kIHB1c2ggbm90aWZpY2F0aW9ucy4nKTtcbiAgICB9XG4gICAgY29uc3QgcHVzaENvbnRyb2xsZXIgPSByZXEuY29uZmlnLnB1c2hDb250cm9sbGVyO1xuICAgIGlmICghcHVzaENvbnRyb2xsZXIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5QVVNIX01JU0NPTkZJR1VSRUQsICdQdXNoIGNvbnRyb2xsZXIgaXMgbm90IHNldCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHdoZXJlID0gUHVzaFJvdXRlci5nZXRRdWVyeUNvbmRpdGlvbihyZXEpO1xuICAgIGxldCByZXNvbHZlO1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgoX3Jlc29sdmUpID0+IHtcbiAgICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICB9KTtcbiAgICBsZXQgcHVzaFN0YXR1c0lkO1xuICAgIHB1c2hDb250cm9sbGVyLnNlbmRQdXNoKHJlcS5ib2R5LCB3aGVyZSwgcmVxLmNvbmZpZywgcmVxLmF1dGgsIChvYmplY3RJZCkgPT4ge1xuICAgICAgcHVzaFN0YXR1c0lkID0gb2JqZWN0SWQ7XG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdYLVBhcnNlLVB1c2gtU3RhdHVzLUlkJzogcHVzaFN0YXR1c0lkXG4gICAgICAgIH0sXG4gICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgcmVzdWx0OiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIHJlcS5jb25maWcubG9nZ2VyQ29udHJvbGxlci5lcnJvcihgX1B1c2hTdGF0dXMgJHtwdXNoU3RhdHVzSWR9OiBlcnJvciB3aGlsZSBzZW5kaW5nIHB1c2hgLCBlcnIpO1xuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBxdWVyeSBjb25kaXRpb24gZnJvbSB0aGUgcmVxdWVzdCBib2R5LlxuICAgKiBAcGFyYW0ge09iamVjdH0gcmVxIEEgcmVxdWVzdCBvYmplY3RcbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIHF1ZXJ5IGNvbmRpdGlvbiwgdGhlIHdoZXJlIGZpZWxkIGluIGEgcXVlcnkgYXBpIGNhbGxcbiAgICovXG4gIHN0YXRpYyBnZXRRdWVyeUNvbmRpdGlvbihyZXEpIHtcbiAgICBjb25zdCBib2R5ID0gcmVxLmJvZHkgfHwge307XG4gICAgY29uc3QgaGFzV2hlcmUgPSB0eXBlb2YgYm9keS53aGVyZSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgY29uc3QgaGFzQ2hhbm5lbHMgPSB0eXBlb2YgYm9keS5jaGFubmVscyAhPT0gJ3VuZGVmaW5lZCc7XG5cbiAgICBsZXQgd2hlcmU7XG4gICAgaWYgKGhhc1doZXJlICYmIGhhc0NoYW5uZWxzKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuUFVTSF9NSVNDT05GSUdVUkVELFxuICAgICAgICAnQ2hhbm5lbHMgYW5kIHF1ZXJ5IGNhbiBub3QgYmUgc2V0IGF0IHRoZSBzYW1lIHRpbWUuJyk7XG4gICAgfSBlbHNlIGlmIChoYXNXaGVyZSkge1xuICAgICAgd2hlcmUgPSBib2R5LndoZXJlO1xuICAgIH0gZWxzZSBpZiAoaGFzQ2hhbm5lbHMpIHtcbiAgICAgIHdoZXJlID0ge1xuICAgICAgICBcImNoYW5uZWxzXCI6IHtcbiAgICAgICAgICBcIiRpblwiOiBib2R5LmNoYW5uZWxzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlBVU0hfTUlTQ09ORklHVVJFRCwgJ1NlbmRpbmcgYSBwdXNoIHJlcXVpcmVzIGVpdGhlciBcImNoYW5uZWxzXCIgb3IgYSBcIndoZXJlXCIgcXVlcnkuJyk7XG4gICAgfVxuICAgIHJldHVybiB3aGVyZTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQdXNoUm91dGVyO1xuIl19
74
+ var _default = exports.default = PushRouter;
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX25vZGUiLCJfRXJyb3IiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJQdXNoUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsIm1vdW50Um91dGVzIiwicm91dGUiLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyIsImhhbmRsZVBPU1QiLCJyZXEiLCJhdXRoIiwiaXNSZWFkT25seSIsImNyZWF0ZVNhbml0aXplZEVycm9yIiwiUGFyc2UiLCJFcnJvciIsIk9QRVJBVElPTl9GT1JCSURERU4iLCJjb25maWciLCJwdXNoQ29udHJvbGxlciIsIlBVU0hfTUlTQ09ORklHVVJFRCIsIndoZXJlIiwiZ2V0UXVlcnlDb25kaXRpb24iLCJyZXNvbHZlIiwicHJvbWlzZSIsIlByb21pc2UiLCJfcmVzb2x2ZSIsInB1c2hTdGF0dXNJZCIsInNlbmRQdXNoIiwiYm9keSIsIm9iamVjdElkIiwiaGVhZGVycyIsInJlc3BvbnNlIiwicmVzdWx0IiwiY2F0Y2giLCJlcnIiLCJsb2dnZXJDb250cm9sbGVyIiwiZXJyb3IiLCJoYXNXaGVyZSIsImhhc0NoYW5uZWxzIiwiY2hhbm5lbHMiLCIkaW4iLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9QdXNoUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9taXNlUm91dGVyIGZyb20gJy4uL1Byb21pc2VSb3V0ZXInO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgeyBQYXJzZSB9IGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IHsgY3JlYXRlU2FuaXRpemVkRXJyb3IgfSBmcm9tICcuLi9FcnJvcic7XG5cbmV4cG9ydCBjbGFzcyBQdXNoUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL3B1c2gnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBQdXNoUm91dGVyLmhhbmRsZVBPU1QpO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZVBPU1QocmVxKSB7XG4gICAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICAgIHRocm93IGNyZWF0ZVNhbml0aXplZEVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBzZW5kIHB1c2ggbm90aWZpY2F0aW9ucy5cIixcbiAgICAgICAgcmVxLmNvbmZpZ1xuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgcHVzaENvbnRyb2xsZXIgPSByZXEuY29uZmlnLnB1c2hDb250cm9sbGVyO1xuICAgIGlmICghcHVzaENvbnRyb2xsZXIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5QVVNIX01JU0NPTkZJR1VSRUQsICdQdXNoIGNvbnRyb2xsZXIgaXMgbm90IHNldCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHdoZXJlID0gUHVzaFJvdXRlci5nZXRRdWVyeUNvbmRpdGlvbihyZXEpO1xuICAgIGxldCByZXNvbHZlO1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShfcmVzb2x2ZSA9PiB7XG4gICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgfSk7XG4gICAgbGV0IHB1c2hTdGF0dXNJZDtcbiAgICBwdXNoQ29udHJvbGxlclxuICAgICAgLnNlbmRQdXNoKHJlcS5ib2R5IHx8IHt9LCB3aGVyZSwgcmVxLmNvbmZpZywgcmVxLmF1dGgsIG9iamVjdElkID0+IHtcbiAgICAgICAgcHVzaFN0YXR1c0lkID0gb2JqZWN0SWQ7XG4gICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdYLVBhcnNlLVB1c2gtU3RhdHVzLUlkJzogcHVzaFN0YXR1c0lkLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICAgIHJlc3VsdDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgcmVxLmNvbmZpZy5sb2dnZXJDb250cm9sbGVyLmVycm9yKFxuICAgICAgICAgIGBfUHVzaFN0YXR1cyAke3B1c2hTdGF0dXNJZH06IGVycm9yIHdoaWxlIHNlbmRpbmcgcHVzaGAsXG4gICAgICAgICAgZXJyXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgY29uZGl0aW9uIGZyb20gdGhlIHJlcXVlc3QgYm9keS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHJlcSBBIHJlcXVlc3Qgb2JqZWN0XG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBxdWVyeSBjb25kaXRpb24sIHRoZSB3aGVyZSBmaWVsZCBpbiBhIHF1ZXJ5IGFwaSBjYWxsXG4gICAqL1xuICBzdGF0aWMgZ2V0UXVlcnlDb25kaXRpb24ocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IHJlcS5ib2R5IHx8IHt9O1xuICAgIGNvbnN0IGhhc1doZXJlID0gdHlwZW9mIGJvZHkud2hlcmUgIT09ICd1bmRlZmluZWQnO1xuICAgIGNvbnN0IGhhc0NoYW5uZWxzID0gdHlwZW9mIGJvZHkuY2hhbm5lbHMgIT09ICd1bmRlZmluZWQnO1xuXG4gICAgbGV0IHdoZXJlO1xuICAgIGlmIChoYXNXaGVyZSAmJiBoYXNDaGFubmVscykge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5QVVNIX01JU0NPTkZJR1VSRUQsXG4gICAgICAgICdDaGFubmVscyBhbmQgcXVlcnkgY2FuIG5vdCBiZSBzZXQgYXQgdGhlIHNhbWUgdGltZS4nXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaGFzV2hlcmUpIHtcbiAgICAgIHdoZXJlID0gYm9keS53aGVyZTtcbiAgICB9IGVsc2UgaWYgKGhhc0NoYW5uZWxzKSB7XG4gICAgICB3aGVyZSA9IHtcbiAgICAgICAgY2hhbm5lbHM6IHtcbiAgICAgICAgICAkaW46IGJvZHkuY2hhbm5lbHMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgIFBhcnNlLkVycm9yLlBVU0hfTUlTQ09ORklHVVJFRCxcbiAgICAgICAgJ1NlbmRpbmcgYSBwdXNoIHJlcXVpcmVzIGVpdGhlciBcImNoYW5uZWxzXCIgb3IgYSBcIndoZXJlXCIgcXVlcnkuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHdoZXJlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFB1c2hSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFnRCxTQUFBRSx3QkFBQUcsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUwsdUJBQUEsWUFBQUEsQ0FBQUcsQ0FBQSxFQUFB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
@@ -1,21 +1,15 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.RolesRouter = undefined;
7
-
8
- var _ClassesRouter = require('./ClassesRouter');
9
-
10
- var _ClassesRouter2 = _interopRequireDefault(_ClassesRouter);
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- class RolesRouter extends _ClassesRouter2.default {
6
+ exports.default = exports.RolesRouter = void 0;
7
+ var _ClassesRouter = _interopRequireDefault(require("./ClassesRouter"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ class RolesRouter extends _ClassesRouter.default {
15
10
  className() {
16
11
  return '_Role';
17
12
  }
18
-
19
13
  mountRoutes() {
20
14
  this.route('GET', '/roles', req => {
21
15
  return this.handleFind(req);
@@ -34,7 +28,6 @@ class RolesRouter extends _ClassesRouter2.default {
34
28
  });
35
29
  }
36
30
  }
37
-
38
31
  exports.RolesRouter = RolesRouter;
39
- exports.default = RolesRouter;
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1JvbGVzUm91dGVyLmpzIl0sIm5hbWVzIjpbIlJvbGVzUm91dGVyIiwiQ2xhc3Nlc1JvdXRlciIsImNsYXNzTmFtZSIsIm1vdW50Um91dGVzIiwicm91dGUiLCJyZXEiLCJoYW5kbGVGaW5kIiwiaGFuZGxlR2V0IiwiaGFuZGxlQ3JlYXRlIiwiaGFuZGxlVXBkYXRlIiwiaGFuZGxlRGVsZXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7Ozs7OztBQUVPLE1BQU1BLFdBQU4sU0FBMEJDLHVCQUExQixDQUF3QztBQUM3Q0MsY0FBWTtBQUNWLFdBQU8sT0FBUDtBQUNEOztBQUVEQyxnQkFBYztBQUNaLFNBQUtDLEtBQUwsQ0FBVyxLQUFYLEVBQWlCLFFBQWpCLEVBQTJCQyxPQUFPO0FBQUUsYUFBTyxLQUFLQyxVQUFMLENBQWdCRCxHQUFoQixDQUFQO0FBQThCLEtBQWxFO0FBQ0EsU0FBS0QsS0FBTCxDQUFXLEtBQVgsRUFBaUIsa0JBQWpCLEVBQXFDQyxPQUFPO0FBQUUsYUFBTyxLQUFLRSxTQUFMLENBQWVGLEdBQWYsQ0FBUDtBQUE2QixLQUEzRTtBQUNBLFNBQUtELEtBQUwsQ0FBVyxNQUFYLEVBQWtCLFFBQWxCLEVBQTRCQyxPQUFPO0FBQUUsYUFBTyxLQUFLRyxZQUFMLENBQWtCSCxHQUFsQixDQUFQO0FBQWdDLEtBQXJFO0FBQ0EsU0FBS0QsS0FBTCxDQUFXLEtBQVgsRUFBaUIsa0JBQWpCLEVBQXFDQyxPQUFPO0FBQUUsYUFBTyxLQUFLSSxZQUFMLENBQWtCSixHQUFsQixDQUFQO0FBQWdDLEtBQTlFO0FBQ0EsU0FBS0QsS0FBTCxDQUFXLFFBQVgsRUFBb0Isa0JBQXBCLEVBQXdDQyxPQUFPO0FBQUUsYUFBTyxLQUFLSyxZQUFMLENBQWtCTCxHQUFsQixDQUFQO0FBQWdDLEtBQWpGO0FBQ0Q7QUFYNEM7O1FBQWxDTCxXLEdBQUFBLFc7a0JBY0VBLFciLCJmaWxlIjoiUm9sZXNSb3V0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCBDbGFzc2VzUm91dGVyIGZyb20gJy4vQ2xhc3Nlc1JvdXRlcic7XG5cbmV4cG9ydCBjbGFzcyBSb2xlc1JvdXRlciBleHRlbmRzIENsYXNzZXNSb3V0ZXIge1xuICBjbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuICdfUm9sZSc7XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCcvcm9sZXMnLCByZXEgPT4geyByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ0dFVCcsJy9yb2xlcy86b2JqZWN0SWQnLCByZXEgPT4geyByZXR1cm4gdGhpcy5oYW5kbGVHZXQocmVxKTsgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsJy9yb2xlcycsIHJlcSA9PiB7IHJldHVybiB0aGlzLmhhbmRsZUNyZWF0ZShyZXEpOyB9KTtcbiAgICB0aGlzLnJvdXRlKCdQVVQnLCcvcm9sZXMvOm9iamVjdElkJywgcmVxID0+IHsgcmV0dXJuIHRoaXMuaGFuZGxlVXBkYXRlKHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ0RFTEVURScsJy9yb2xlcy86b2JqZWN0SWQnLCByZXEgPT4geyByZXR1cm4gdGhpcy5oYW5kbGVEZWxldGUocmVxKTsgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUm9sZXNSb3V0ZXI7XG4iXX0=
32
+ var _default = exports.default = RolesRouter;
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2xhc3Nlc1JvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiUm9sZXNSb3V0ZXIiLCJDbGFzc2VzUm91dGVyIiwiY2xhc3NOYW1lIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInJlcSIsImhhbmRsZUZpbmQiLCJoYW5kbGVHZXQiLCJoYW5kbGVDcmVhdGUiLCJoYW5kbGVVcGRhdGUiLCJoYW5kbGVEZWxldGUiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9Sb2xlc1JvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuXG5leHBvcnQgY2xhc3MgUm9sZXNSb3V0ZXIgZXh0ZW5kcyBDbGFzc2VzUm91dGVyIHtcbiAgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiAnX1JvbGUnO1xuICB9XG5cbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9yb2xlcycsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9yb2xlcy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlR2V0KHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvcm9sZXMnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUFVUJywgJy9yb2xlcy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlVXBkYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnREVMRVRFJywgJy9yb2xlcy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUm9sZXNSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUE0QyxTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVyQyxNQUFNRyxXQUFXLFNBQVNDLHNCQUFhLENBQUM7RUFDN0NDLFNBQVNBLENBQUEsRUFBRztJQUNWLE9BQU8sT0FBTztFQUNoQjtFQUVBQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixJQUFJLENBQUNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFQyxHQUFHLElBQUk7TUFDakMsT0FBTyxJQUFJLENBQUNDLFVBQVUsQ0FBQ0QsR0FBRyxDQUFDO0lBQzdCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0QsS0FBSyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRUMsR0FBRyxJQUFJO01BQzNDLE9BQU8sSUFBSSxDQUFDRSxTQUFTLENBQUNGLEdBQUcsQ0FBQztJQUM1QixDQUFDLENBQUM7SUFDRixJQUFJLENBQUNELEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFQyxHQUFHLElBQUk7TUFDbEMsT0FBTyxJQUFJLENBQUNHLFlBQVksQ0FBQ0gsR0FBRyxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0QsS0FBSyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRUMsR0FBRyxJQUFJO01BQzNDLE9BQU8sSUFBSSxDQUFDSSxZQUFZLENBQUNKLEdBQUcsQ0FBQztJQUMvQixDQUFDLENBQUM7SUFDRixJQUFJLENBQUNELEtBQUssQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUVDLEdBQUcsSUFBSTtNQUM5QyxPQUFPLElBQUksQ0FBQ0ssWUFBWSxDQUFDTCxHQUFHLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0VBQ0o7QUFDRjtBQUFDTSxPQUFBLENBQUFYLFdBQUEsR0FBQUEsV0FBQTtBQUFBLElBQUFZLFFBQUEsR0FBQUQsT0FBQSxDQUFBWixPQUFBLEdBRWNDLFdBQVciLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,38 +1,39 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SchemasRouter = 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
- 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; } }
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
6
+ exports.internalUpdateSchema = exports.internalCreateSchema = exports.SchemasRouter = void 0;
7
+ var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
8
+ var middleware = _interopRequireWildcard(require("../middlewares"));
9
+ var _Error = require("../Error");
10
+ 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); }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
12
  // schemas.js
21
13
 
22
14
  var Parse = require('parse/node').Parse,
23
- SchemaController = require('../Controllers/SchemaController');
24
-
15
+ SchemaController = require('../Controllers/SchemaController');
25
16
  function classNameMismatchResponse(bodyClass, pathClass) {
26
17
  throw new Parse.Error(Parse.Error.INVALID_CLASS_NAME, `Class name mismatch between ${bodyClass} and ${pathClass}.`);
27
18
  }
28
-
29
19
  function getAllSchemas(req) {
30
- return req.config.database.loadSchema({ clearCache: true }).then(schemaController => schemaController.getAllClasses(true)).then(schemas => ({ response: { results: schemas } }));
20
+ return req.config.database.loadSchema({
21
+ clearCache: true
22
+ }).then(schemaController => schemaController.getAllClasses({
23
+ clearCache: true
24
+ })).then(schemas => ({
25
+ response: {
26
+ results: schemas
27
+ }
28
+ }));
31
29
  }
32
-
33
30
  function getOneSchema(req) {
34
31
  const className = req.params.className;
35
- return req.config.database.loadSchema({ clearCache: true }).then(schemaController => schemaController.getOneSchema(className, true)).then(schema => ({ response: schema })).catch(error => {
32
+ return req.config.database.loadSchema({
33
+ clearCache: true
34
+ }).then(schemaController => schemaController.getOneSchema(className, true)).then(schema => ({
35
+ response: schema
36
+ })).catch(error => {
36
37
  if (error === undefined) {
37
38
  throw new Parse.Error(Parse.Error.INVALID_CLASS_NAME, `Class ${className} does not exist.`);
38
39
  } else {
@@ -40,50 +41,70 @@ function getOneSchema(req) {
40
41
  }
41
42
  });
42
43
  }
43
-
44
- function createSchema(req) {
44
+ const checkIfDefinedSchemasIsUsed = req => {
45
+ if (req.config?.schema?.lockSchemas === true) {
46
+ throw new Parse.Error(Parse.Error.OPERATION_FORBIDDEN, 'Cannot perform this operation when schemas options is used.');
47
+ }
48
+ };
49
+ const internalCreateSchema = async (className, body, config) => {
50
+ const controller = await config.database.loadSchema({
51
+ clearCache: true
52
+ });
53
+ const response = await controller.addClassIfNotExists(className, body.fields, body.classLevelPermissions, body.indexes);
54
+ return {
55
+ response
56
+ };
57
+ };
58
+ exports.internalCreateSchema = internalCreateSchema;
59
+ const internalUpdateSchema = async (className, body, config) => {
60
+ const controller = await config.database.loadSchema({
61
+ clearCache: true
62
+ });
63
+ const response = await controller.updateClass(className, body.fields || {}, body.classLevelPermissions, body.indexes, config.database);
64
+ return {
65
+ response
66
+ };
67
+ };
68
+ exports.internalUpdateSchema = internalUpdateSchema;
69
+ async function createSchema(req) {
70
+ checkIfDefinedSchemasIsUsed(req);
45
71
  if (req.auth.isReadOnly) {
46
- throw new Parse.Error(Parse.Error.OPERATION_FORBIDDEN, 'read-only masterKey isn\'t allowed to create a schema.');
72
+ throw (0, _Error.createSanitizedError)(Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to create a schema.", req.config);
47
73
  }
48
- if (req.params.className && req.body.className) {
74
+ if (req.params.className && req.body?.className) {
49
75
  if (req.params.className != req.body.className) {
50
76
  return classNameMismatchResponse(req.body.className, req.params.className);
51
77
  }
52
78
  }
53
-
54
- const className = req.params.className || req.body.className;
79
+ const className = req.params.className || req.body?.className;
55
80
  if (!className) {
56
81
  throw new Parse.Error(135, `POST ${req.path} needs a class name.`);
57
82
  }
58
-
59
- return req.config.database.loadSchema({ clearCache: true }).then(schema => schema.addClassIfNotExists(className, req.body.fields, req.body.classLevelPermissions, req.body.indexes)).then(schema => ({ response: schema }));
83
+ return await internalCreateSchema(className, req.body || {}, req.config);
60
84
  }
61
-
62
85
  function modifySchema(req) {
86
+ checkIfDefinedSchemasIsUsed(req);
63
87
  if (req.auth.isReadOnly) {
64
- throw new Parse.Error(Parse.Error.OPERATION_FORBIDDEN, 'read-only masterKey isn\'t allowed to update a schema.');
88
+ throw (0, _Error.createSanitizedError)(Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to update a schema.", req.config);
65
89
  }
66
- if (req.body.className && req.body.className != req.params.className) {
90
+ if (req.body?.className && req.body.className != req.params.className) {
67
91
  return classNameMismatchResponse(req.body.className, req.params.className);
68
92
  }
69
-
70
- const submittedFields = req.body.fields || {};
71
93
  const className = req.params.className;
72
-
73
- return req.config.database.loadSchema({ clearCache: true }).then(schema => schema.updateClass(className, submittedFields, req.body.classLevelPermissions, req.body.indexes, req.config.database)).then(result => ({ response: result }));
94
+ return internalUpdateSchema(className, req.body || {}, req.config);
74
95
  }
75
-
76
96
  const deleteSchema = req => {
77
97
  if (req.auth.isReadOnly) {
78
- throw new Parse.Error(Parse.Error.OPERATION_FORBIDDEN, 'read-only masterKey isn\'t allowed to delete a schema.');
98
+ throw (0, _Error.createSanitizedError)(Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to delete a schema.", req.config);
79
99
  }
80
100
  if (!SchemaController.classNameIsValid(req.params.className)) {
81
101
  throw new Parse.Error(Parse.Error.INVALID_CLASS_NAME, SchemaController.invalidClassNameMessage(req.params.className));
82
102
  }
83
- return req.config.database.deleteSchema(req.params.className).then(() => ({ response: {} }));
103
+ return req.config.database.deleteSchema(req.params.className).then(() => ({
104
+ response: {}
105
+ }));
84
106
  };
85
-
86
- class SchemasRouter extends _PromiseRouter2.default {
107
+ class SchemasRouter extends _PromiseRouter.default {
87
108
  mountRoutes() {
88
109
  this.route('GET', '/schemas', middleware.promiseEnforceMasterKeyAccess, getAllSchemas);
89
110
  this.route('GET', '/schemas/:className', middleware.promiseEnforceMasterKeyAccess, getOneSchema);
@@ -94,4 +115,4 @@ class SchemasRouter extends _PromiseRouter2.default {
94
115
  }
95
116
  }
96
117
  exports.SchemasRouter = SchemasRouter;
97
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1NjaGVtYXNSb3V0ZXIuanMiXSwibmFtZXMiOlsibWlkZGxld2FyZSIsIlBhcnNlIiwicmVxdWlyZSIsIlNjaGVtYUNvbnRyb2xsZXIiLCJjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlIiwiYm9keUNsYXNzIiwicGF0aENsYXNzIiwiRXJyb3IiLCJJTlZBTElEX0NMQVNTX05BTUUiLCJnZXRBbGxTY2hlbWFzIiwicmVxIiwiY29uZmlnIiwiZGF0YWJhc2UiLCJsb2FkU2NoZW1hIiwiY2xlYXJDYWNoZSIsInRoZW4iLCJzY2hlbWFDb250cm9sbGVyIiwiZ2V0QWxsQ2xhc3NlcyIsInNjaGVtYXMiLCJyZXNwb25zZSIsInJlc3VsdHMiLCJnZXRPbmVTY2hlbWEiLCJjbGFzc05hbWUiLCJwYXJhbXMiLCJzY2hlbWEiLCJjYXRjaCIsImVycm9yIiwidW5kZWZpbmVkIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwiY3JlYXRlU2NoZW1hIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJPUEVSQVRJT05fRk9SQklEREVOIiwiYm9keSIsInBhdGgiLCJhZGRDbGFzc0lmTm90RXhpc3RzIiwiZmllbGRzIiwiY2xhc3NMZXZlbFBlcm1pc3Npb25zIiwiaW5kZXhlcyIsIm1vZGlmeVNjaGVtYSIsInN1Ym1pdHRlZEZpZWxkcyIsInVwZGF0ZUNsYXNzIiwicmVzdWx0IiwiZGVsZXRlU2NoZW1hIiwiY2xhc3NOYW1lSXNWYWxpZCIsImludmFsaWRDbGFzc05hbWVNZXNzYWdlIiwiU2NoZW1hc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7OztBQUNBOztJQUFZQSxVOzs7Ozs7QUFOWjs7QUFFQSxJQUFJQyxRQUFRQyxRQUFRLFlBQVIsRUFBc0JELEtBQWxDO0FBQUEsSUFDRUUsbUJBQW1CRCxRQUFRLGlDQUFS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WyIvLyBzY2hlbWFzLmpzXG5cbnZhciBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZSxcbiAgU2NoZW1hQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL0NvbnRyb2xsZXJzL1NjaGVtYUNvbnRyb2xsZXInKTtcblxuaW1wb3J0IFByb21pc2VSb3V0ZXIgICBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSBcIi4uL21pZGRsZXdhcmVzXCI7XG5cbmZ1bmN0aW9uIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UoYm9keUNsYXNzLCBwYXRoQ2xhc3MpIHtcbiAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgIFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSxcbiAgICBgQ2xhc3MgbmFtZSBtaXNtYXRjaCBiZXR3ZWVuICR7Ym9keUNsYXNzfSBhbmQgJHtwYXRoQ2xhc3N9LmBcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsU2NoZW1hcyhyZXEpIHtcbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWV9KVxuICAgIC50aGVuKHNjaGVtYUNvbnRyb2xsZXIgPT4gc2NoZW1hQ29udHJvbGxlci5nZXRBbGxDbGFzc2VzKHRydWUpKVxuICAgIC50aGVuKHNjaGVtYXMgPT4gKHsgcmVzcG9uc2U6IHsgcmVzdWx0czogc2NoZW1hcyB9IH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0T25lU2NoZW1hKHJlcSkge1xuICBjb25zdCBjbGFzc05hbWUgPSByZXEucGFyYW1zLmNsYXNzTmFtZTtcbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWV9KVxuICAgIC50aGVuKHNjaGVtYUNvbnRyb2xsZXIgPT4gc2NoZW1hQ29udHJvbGxlci5nZXRPbmVTY2hlbWEoY2xhc3NOYW1lLCB0cnVlKSlcbiAgICAudGhlbihzY2hlbWEgPT4gKHsgcmVzcG9uc2U6IHNjaGVtYSB9KSlcbiAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgaWYgKGVycm9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSwgYENsYXNzICR7Y2xhc3NOYW1lfSBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlRFUk5BTF9TRVJWRVJfRVJST1IsICdEYXRhYmFzZSBhZGFwdGVyIGVycm9yLicpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTY2hlbWEocmVxKSB7XG4gIGlmIChyZXEuYXV0aC5pc1JlYWRPbmx5KSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sICdyZWFkLW9ubHkgbWFzdGVyS2V5IGlzblxcJ3QgYWxsb3dlZCB0byBjcmVhdGUgYSBzY2hlbWEuJyk7XG4gIH1cbiAgaWYgKHJlcS5wYXJhbXMuY2xhc3NOYW1lICYmIHJlcS5ib2R5LmNsYXNzTmFtZSkge1xuICAgIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSAhPSByZXEuYm9keS5jbGFzc05hbWUpIHtcbiAgICAgIHJldHVybiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKHJlcS5ib2R5LmNsYXNzTmFtZSwgcmVxLnBhcmFtcy5jbGFzc05hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lIHx8IHJlcS5ib2R5LmNsYXNzTmFtZTtcbiAgaWYgKCFjbGFzc05hbWUpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoMTM1LCBgUE9TVCAke3JlcS5wYXRofSBuZWVkcyBhIGNsYXNzIG5hbWUuYCk7XG4gIH1cblxuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZX0pXG4gICAgLnRoZW4oc2NoZW1hID0+IHNjaGVtYS5hZGRDbGFzc0lmTm90RXhpc3RzKGNsYXNzTmFtZSwgcmVxLmJvZHkuZmllbGRzLCByZXEuYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsIHJlcS5ib2R5LmluZGV4ZXMpKVxuICAgIC50aGVuKHNjaGVtYSA9PiAoeyByZXNwb25zZTogc2NoZW1hIH0pKTtcbn1cblxuZnVuY3Rpb24gbW9kaWZ5U2NoZW1hKHJlcSkge1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLCAncmVhZC1vbmx5IG1hc3RlcktleSBpc25cXCd0IGFsbG93ZWQgdG8gdXBkYXRlIGEgc2NoZW1hLicpO1xuICB9XG4gIGlmIChyZXEuYm9keS5jbGFzc05hbWUgJiYgcmVxLmJvZHkuY2xhc3NOYW1lICE9IHJlcS5wYXJhbXMuY2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UocmVxLmJvZHkuY2xhc3NOYW1lLCByZXEucGFyYW1zLmNsYXNzTmFtZSk7XG4gIH1cblxuICBjb25zdCBzdWJtaXR0ZWRGaWVsZHMgPSByZXEuYm9keS5maWVsZHMgfHwge307XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuXG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlfSlcbiAgICAudGhlbihzY2hlbWEgPT4gc2NoZW1hLnVwZGF0ZUNsYXNzKGNsYXNzTmFtZSwgc3VibWl0dGVkRmllbGRzLCByZXEuYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsIHJlcS5ib2R5LmluZGV4ZXMsIHJlcS5jb25maWcuZGF0YWJhc2UpKVxuICAgIC50aGVuKHJlc3VsdCA9PiAoe3Jlc3BvbnNlOiByZXN1bHR9KSk7XG59XG5cbmNvbnN0IGRlbGV0ZVNjaGVtYSA9IHJlcSA9PiB7XG4gIGlmIChyZXEuYXV0aC5pc1JlYWRPbmx5KSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sICdyZWFkLW9ubHkgbWFzdGVyS2V5IGlzblxcJ3QgYWxsb3dlZCB0byBkZWxldGUgYSBzY2hlbWEuJyk7XG4gIH1cbiAgaWYgKCFTY2hlbWFDb250cm9sbGVyLmNsYXNzTmFtZUlzVmFsaWQocmVxLnBhcmFtcy5jbGFzc05hbWUpKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSwgU2NoZW1hQ29udHJvbGxlci5pbnZhbGlkQ2xhc3NOYW1lTWVzc2FnZShyZXEucGFyYW1zLmNsYXNzTmFtZSkpO1xuICB9XG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmRlbGV0ZVNjaGVtYShyZXEucGFyYW1zLmNsYXNzTmFtZSlcbiAgICAudGhlbigoKSA9PiAoeyByZXNwb25zZToge30gfSkpO1xufVxuXG5leHBvcnQgY2xhc3MgU2NoZW1hc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3NjaGVtYXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBnZXRBbGxTY2hlbWFzKTtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3NjaGVtYXMvOmNsYXNzTmFtZScsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGdldE9uZVNjaGVtYSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvc2NoZW1hcycsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGNyZWF0ZVNjaGVtYSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvc2NoZW1hcy86Y2xhc3NOYW1lJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgY3JlYXRlU2NoZW1hKTtcbiAgICB0aGlzLnJvdXRlKCdQVVQnLCAnL3NjaGVtYXMvOmNsYXNzTmFtZScsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIG1vZGlmeVNjaGVtYSk7XG4gICAgdGhpcy5yb3V0ZSgnREVMRVRFJywgJy9zY2hlbWFzLzpjbGFzc05hbWUnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBkZWxldGVTY2hlbWEpO1xuICB9XG59XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0Vycm9yIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiUGFyc2UiLCJTY2hlbWFDb250cm9sbGVyIiwiY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZSIsImJvZHlDbGFzcyIsInBhdGhDbGFzcyIsIkVycm9yIiwiSU5WQUxJRF9DTEFTU19OQU1FIiwiZ2V0QWxsU2NoZW1hcyIsInJlcSIsImNvbmZpZyIsImRhdGFiYXNlIiwibG9hZFNjaGVtYSIsImNsZWFyQ2FjaGUiLCJ0aGVuIiwic2NoZW1hQ29udHJvbGxlciIsImdldEFsbENsYXNzZXMiLCJzY2hlbWFzIiwicmVzcG9uc2UiLCJyZXN1bHRzIiwiZ2V0T25lU2NoZW1hIiwiY2xhc3NOYW1lIiwicGFyYW1zIiwic2NoZW1hIiwiY2F0Y2giLCJlcnJvciIsInVuZGVmaW5lZCIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsImNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZCIsImxvY2tTY2hlbWFzIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsImludGVybmFsQ3JlYXRlU2NoZW1hIiwiYm9keSIsImNvbnRyb2xsZXIiLCJhZGRDbGFzc0lmTm90RXhpc3RzIiwiZmllbGRzIiwiY2xhc3NMZXZlbFBlcm1pc3Npb25zIiwiaW5kZXhlcyIsImV4cG9ydHMiLCJpbnRlcm5hbFVwZGF0ZVNjaGVtYSIsInVwZGF0ZUNsYXNzIiwiY3JlYXRlU2NoZW1hIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJjcmVhdGVTYW5pdGl6ZWRFcnJvciIsInBhdGgiLCJtb2RpZnlTY2hlbWEiLCJkZWxldGVTY2hlbWEiLCJjbGFzc05hbWVJc1ZhbGlkIiwiaW52YWxpZENsYXNzTmFtZU1lc3NhZ2UiLCJTY2hlbWFzUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsIm1vdW50Um91dGVzIiwicm91dGUiLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1NjaGVtYXNSb3V0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc2NoZW1hcy5qc1xuXG52YXIgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2UsXG4gIFNjaGVtYUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9Db250cm9sbGVycy9TY2hlbWFDb250cm9sbGVyJyk7XG5cbmltcG9ydCBQcm9taXNlUm91dGVyIGZyb20gJy4uL1Byb21pc2VSb3V0ZXInO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgeyBjcmVhdGVTYW5pdGl6ZWRFcnJvciB9IGZyb20gJy4uL0Vycm9yJztcblxuZnVuY3Rpb24gY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZShib2R5Q2xhc3MsIHBhdGhDbGFzcykge1xuICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgUGFyc2UuRXJyb3IuSU5WQUxJRF9DTEFTU19OQU1FLFxuICAgIGBDbGFzcyBuYW1lIG1pc21hdGNoIGJldHdlZW4gJHtib2R5Q2xhc3N9IGFuZCAke3BhdGhDbGFzc30uYFxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRBbGxTY2hlbWFzKHJlcSkge1xuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZVxuICAgIC5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KVxuICAgIC50aGVuKHNjaGVtYUNvbnRyb2xsZXIgPT4gc2NoZW1hQ29udHJvbGxlci5nZXRBbGxDbGFzc2VzKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KSlcbiAgICAudGhlbihzY2hlbWFzID0+ICh7IHJlc3BvbnNlOiB7IHJlc3VsdHM6IHNjaGVtYXMgfSB9KSk7XG59XG5cbmZ1bmN0aW9uIGdldE9uZVNjaGVtYShyZXEpIHtcbiAgY29uc3QgY2xhc3NOYW1lID0gcmVxLnBhcmFtcy5jbGFzc05hbWU7XG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlXG4gICAgLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlIH0pXG4gICAgLnRoZW4oc2NoZW1hQ29udHJvbGxlciA9PiBzY2hlbWFDb250cm9sbGVyLmdldE9uZVNjaGVtYShjbGFzc05hbWUsIHRydWUpKVxuICAgIC50aGVuKHNjaGVtYSA9PiAoeyByZXNwb25zZTogc2NoZW1hIH0pKVxuICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICBpZiAoZXJyb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9DTEFTU19OQU1FLCBgQ2xhc3MgJHtjbGFzc05hbWV9IGRvZXMgbm90IGV4aXN0LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0RhdGFiYXNlIGFkYXB0ZXIgZXJyb3IuJyk7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbmNvbnN0IGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZCA9IHJlcSA9PiB7XG4gIGlmIChyZXEuY29uZmlnPy5zY2hlbWE/LmxvY2tTY2hlbWFzID09PSB0cnVlKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgICdDYW5ub3QgcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiB3aGVuIHNjaGVtYXMgb3B0aW9ucyBpcyB1c2VkLidcbiAgICApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJuYWxDcmVhdGVTY2hlbWEgPSBhc3luYyAoY2xhc3NOYW1lLCBib2R5LCBjb25maWcpID0+IHtcbiAgY29uc3QgY29udHJvbGxlciA9IGF3YWl0IGNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb250cm9sbGVyLmFkZENsYXNzSWZOb3RFeGlzdHMoXG4gICAgY2xhc3NOYW1lLFxuICAgIGJvZHkuZmllbGRzLFxuICAgIGJvZHkuY2xhc3NMZXZlbFBlcm1pc3Npb25zLFxuICAgIGJvZHkuaW5kZXhlc1xuICApO1xuICByZXR1cm4ge1xuICAgIHJlc3BvbnNlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGludGVybmFsVXBkYXRlU2NoZW1hID0gYXN5bmMgKGNsYXNzTmFtZSwgYm9keSwgY29uZmlnKSA9PiB7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBhd2FpdCBjb25maWcuZGF0YWJhc2UubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWUgfSk7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29udHJvbGxlci51cGRhdGVDbGFzcyhcbiAgICBjbGFzc05hbWUsXG4gICAgYm9keS5maWVsZHMgfHwge30sXG4gICAgYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsXG4gICAgYm9keS5pbmRleGVzLFxuICAgIGNvbmZpZy5kYXRhYmFzZVxuICApO1xuICByZXR1cm4geyByZXNwb25zZSB9O1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2NoZW1hKHJlcSkge1xuICBjaGVja0lmRGVmaW5lZFNjaGVtYXNJc1VzZWQocmVxKTtcbiAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICB0aHJvdyBjcmVhdGVTYW5pdGl6ZWRFcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBjcmVhdGUgYSBzY2hlbWEuXCIsXG4gICAgICByZXEuY29uZmlnXG4gICAgKTtcbiAgfVxuICBpZiAocmVxLnBhcmFtcy5jbGFzc05hbWUgJiYgcmVxLmJvZHk/LmNsYXNzTmFtZSkge1xuICAgIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSAhPSByZXEuYm9keS5jbGFzc05hbWUpIHtcbiAgICAgIHJldHVybiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKHJlcS5ib2R5LmNsYXNzTmFtZSwgcmVxLnBhcmFtcy5jbGFzc05hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lIHx8IHJlcS5ib2R5Py5jbGFzc05hbWU7XG4gIGlmICghY2xhc3NOYW1lKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKDEzNSwgYFBPU1QgJHtyZXEucGF0aH0gbmVlZHMgYSBjbGFzcyBuYW1lLmApO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGludGVybmFsQ3JlYXRlU2NoZW1hKGNsYXNzTmFtZSwgcmVxLmJvZHkgfHwge30sIHJlcS5jb25maWcpO1xufVxuXG5mdW5jdGlvbiBtb2RpZnlTY2hlbWEocmVxKSB7XG4gIGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZChyZXEpO1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IGNyZWF0ZVNhbml0aXplZEVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgIFwicmVhZC1vbmx5IG1hc3RlcktleSBpc24ndCBhbGxvd2VkIHRvIHVwZGF0ZSBhIHNjaGVtYS5cIixcbiAgICAgIHJlcS5jb25maWdcbiAgICApO1xuICB9XG4gIGlmIChyZXEuYm9keT8uY2xhc3NOYW1lICYmIHJlcS5ib2R5LmNsYXNzTmFtZSAhPSByZXEucGFyYW1zLmNsYXNzTmFtZSkge1xuICAgIHJldHVybiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKHJlcS5ib2R5LmNsYXNzTmFtZSwgcmVxLnBhcmFtcy5jbGFzc05hbWUpO1xuICB9XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuXG4gIHJldHVybiBpbnRlcm5hbFVwZGF0ZVNjaGVtYShjbGFzc05hbWUsIHJlcS5ib2R5IHx8IHt9LCByZXEuY29uZmlnKTtcbn1cblxuY29uc3QgZGVsZXRlU2NoZW1hID0gcmVxID0+IHtcbiAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICB0aHJvdyBjcmVhdGVTYW5pdGl6ZWRFcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBkZWxldGUgYSBzY2hlbWEuXCIsXG4gICAgICByZXEuY29uZmlnXG4gICAgKTtcbiAgfVxuICBpZiAoIVNjaGVtYUNvbnRyb2xsZXIuY2xhc3NOYW1lSXNWYWxpZChyZXEucGFyYW1zLmNsYXNzTmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5JTlZBTElEX0NMQVNTX05BTUUsXG4gICAgICBTY2hlbWFDb250cm9sbGVyLmludmFsaWRDbGFzc05hbWVNZXNzYWdlKHJlcS5wYXJhbXMuY2xhc3NOYW1lKVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UuZGVsZXRlU2NoZW1hKHJlcS5wYXJhbXMuY2xhc3NOYW1lKS50aGVuKCgpID0+ICh7IHJlc3BvbnNlOiB7fSB9KSk7XG59O1xuXG5leHBvcnQgY2xhc3MgU2NoZW1hc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3NjaGVtYXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBnZXRBbGxTY2hlbWFzKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0dFVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgZ2V0T25lU2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9zY2hlbWFzJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgY3JlYXRlU2NoZW1hKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIGNyZWF0ZVNjaGVtYVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdQVVQnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIG1vZGlmeVNjaGVtYVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdERUxFVEUnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIGRlbGV0ZVNjaGVtYVxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQWdELFNBQUFFLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSxDQUFBRSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFB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
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.SecurityRouter = void 0;
7
+ var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
8
+ var middleware = _interopRequireWildcard(require("../middlewares"));
9
+ var _CheckRunner = _interopRequireDefault(require("../Security/CheckRunner"));
10
+ 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); }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ class SecurityRouter extends _PromiseRouter.default {
13
+ mountRoutes() {
14
+ this.route('GET', '/security', middleware.promiseEnforceMasterKeyAccess, this._enforceSecurityCheckEnabled, async req => {
15
+ const report = await new _CheckRunner.default(req.config.security).run();
16
+ return {
17
+ status: 200,
18
+ response: report
19
+ };
20
+ });
21
+ }
22
+ async _enforceSecurityCheckEnabled(req) {
23
+ const config = req.config;
24
+ if (!config.security || !config.security.enableCheck) {
25
+ const error = new Error();
26
+ error.status = 409;
27
+ error.message = 'Enable Parse Server option `security.enableCheck` to run security check.';
28
+ throw error;
29
+ }
30
+ }
31
+ }
32
+ exports.SecurityRouter = SecurityRouter;
33
+ var _default = exports.default = SecurityRouter;
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0NoZWNrUnVubmVyIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiU2VjdXJpdHlSb3V0ZXIiLCJQcm9taXNlUm91dGVyIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiX2VuZm9yY2VTZWN1cml0eUNoZWNrRW5hYmxlZCIsInJlcSIsInJlcG9ydCIsIkNoZWNrUnVubmVyIiwiY29uZmlnIiwic2VjdXJpdHkiLCJydW4iLCJzdGF0dXMiLCJyZXNwb25zZSIsImVuYWJsZUNoZWNrIiwiZXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9TZWN1cml0eVJvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IENoZWNrUnVubmVyIGZyb20gJy4uL1NlY3VyaXR5L0NoZWNrUnVubmVyJztcblxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5Um91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnR0VUJyxcbiAgICAgICcvc2VjdXJpdHknLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIHRoaXMuX2VuZm9yY2VTZWN1cml0eUNoZWNrRW5hYmxlZCxcbiAgICAgIGFzeW5jIHJlcSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IG5ldyBDaGVja1J1bm5lcihyZXEuY29uZmlnLnNlY3VyaXR5KS5ydW4oKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgICByZXNwb25zZTogcmVwb3J0LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBhc3luYyBfZW5mb3JjZVNlY3VyaXR5Q2hlY2tFbmFibGVkKHJlcSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG4gICAgaWYgKCFjb25maWcuc2VjdXJpdHkgfHwgIWNvbmZpZy5zZWN1cml0eS5lbmFibGVDaGVjaykge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoKTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwOTtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSAnRW5hYmxlIFBhcnNlIFNlcnZlciBvcHRpb24gYHNlY3VyaXR5LmVuYWJsZUNoZWNrYCB0byBydW4gc2VjdXJpdHkgY2hlY2suJztcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTZWN1cml0eVJvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQWtELFNBQUFFLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSxD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
@@ -1,80 +1,68 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SessionsRouter = undefined;
7
-
8
- var _ClassesRouter = require('./ClassesRouter');
9
-
10
- var _ClassesRouter2 = _interopRequireDefault(_ClassesRouter);
11
-
12
- var _node = require('parse/node');
13
-
14
- var _node2 = _interopRequireDefault(_node);
15
-
16
- var _rest = require('../rest');
17
-
18
- var _rest2 = _interopRequireDefault(_rest);
19
-
20
- var _Auth = require('../Auth');
21
-
22
- var _Auth2 = _interopRequireDefault(_Auth);
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- class SessionsRouter extends _ClassesRouter2.default {
27
-
6
+ exports.default = exports.SessionsRouter = void 0;
7
+ var _ClassesRouter = _interopRequireDefault(require("./ClassesRouter"));
8
+ var _node = _interopRequireDefault(require("parse/node"));
9
+ var _rest = _interopRequireDefault(require("../rest"));
10
+ var _Auth = _interopRequireDefault(require("../Auth"));
11
+ var _RestWrite = _interopRequireDefault(require("../RestWrite"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ class SessionsRouter extends _ClassesRouter.default {
28
14
  className() {
29
15
  return '_Session';
30
16
  }
31
-
32
17
  handleMe(req) {
33
18
  // TODO: Verify correct behavior
34
19
  if (!req.info || !req.info.sessionToken) {
35
- throw new _node2.default.Error(_node2.default.Error.INVALID_SESSION_TOKEN, 'Session token required.');
20
+ throw new _node.default.Error(_node.default.Error.INVALID_SESSION_TOKEN, 'Session token required.');
36
21
  }
37
- return _rest2.default.find(req.config, _Auth2.default.master(req.config), '_Session', { sessionToken: req.info.sessionToken }, undefined, req.info.clientSDK).then(response => {
22
+ return _rest.default.find(req.config, _Auth.default.master(req.config), '_Session', {
23
+ sessionToken: req.info.sessionToken
24
+ }, undefined, req.info.clientSDK, req.info.context).then(response => {
38
25
  if (!response.results || response.results.length == 0) {
39
- throw new _node2.default.Error(_node2.default.Error.INVALID_SESSION_TOKEN, 'Session token not found.');
26
+ throw new _node.default.Error(_node.default.Error.INVALID_SESSION_TOKEN, 'Session token not found.');
40
27
  }
41
28
  return {
42
29
  response: response.results[0]
43
30
  };
44
31
  });
45
32
  }
46
-
47
33
  handleUpdateToRevocableSession(req) {
48
34
  const config = req.config;
49
35
  const user = req.auth.user;
50
36
  // Issue #2720
51
37
  // Calling without a session token would result in a not found user
52
38
  if (!user) {
53
- throw new _node2.default.Error(_node2.default.Error.OBJECT_NOT_FOUND, 'invalid session');
39
+ throw new _node.default.Error(_node.default.Error.OBJECT_NOT_FOUND, 'invalid session');
54
40
  }
55
41
  const {
56
42
  sessionData,
57
43
  createSession
58
- } = _Auth2.default.createSession(config, {
44
+ } = _RestWrite.default.createSession(config, {
59
45
  userId: user.id,
60
46
  createdWith: {
61
- 'action': 'upgrade'
47
+ action: 'upgrade'
62
48
  },
63
49
  installationId: req.auth.installationId
64
50
  });
65
-
66
51
  return createSession().then(() => {
67
52
  // delete the session token, use the db to skip beforeSave
68
53
  return config.database.update('_User', {
69
54
  objectId: user.id
70
55
  }, {
71
- sessionToken: { __op: 'Delete' }
56
+ sessionToken: {
57
+ __op: 'Delete'
58
+ }
72
59
  });
73
60
  }).then(() => {
74
- return Promise.resolve({ response: sessionData });
61
+ return Promise.resolve({
62
+ response: sessionData
63
+ });
75
64
  });
76
65
  }
77
-
78
66
  mountRoutes() {
79
67
  this.route('GET', '/sessions/me', req => {
80
68
  return this.handleMe(req);
@@ -99,7 +87,6 @@ class SessionsRouter extends _ClassesRouter2.default {
99
87
  });
100
88
  }
101
89
  }
102
-
103
90
  exports.SessionsRouter = SessionsRouter;
104
- exports.default = SessionsRouter;
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1Nlc3Npb25zUm91dGVyLmpzIl0sIm5hbWVzIjpbIlNlc3Npb25zUm91dGVyIiwiQ2xhc3Nlc1JvdXRlciIsImNsYXNzTmFtZSIsImhhbmRsZU1lIiwicmVxIiwiaW5mbyIsInNlc3Npb25Ub2tlbiIsIlBhcnNlIiwiRXJyb3IiLCJJTlZBTElEX1NFU1NJT05fVE9LRU4iLCJyZXN0IiwiZmluZCIsImNvbmZpZyIsIkF1dGgiLCJtYXN0ZXIiLCJ1bmRlZmluZWQiLCJjbGllbnRTREsiLCJ0aGVuIiwicmVzcG9uc2UiLCJyZXN1bHRzIiwibGVuZ3RoIiwiaGFuZGxlVXBkYXRlVG9SZXZvY2FibGVTZXNzaW9uIiwidXNlciIsImF1dGgiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwic2Vzc2lvbkRhdGEiLCJjcmVhdGVTZXNzaW9uIiwidXNlcklkIiwiaWQiLCJjcmVhdGVkV2l0aCIsImluc3RhbGxhdGlvbklkIiwiZGF0YWJhc2UiLCJ1cGRhdGUiLCJvYmplY3RJZCIsIl9fb3AiLCJQcm9taXNlIiwicmVzb2x2ZSIsIm1vdW50Um91dGVzIiwicm91dGUiLCJoYW5kbGVGaW5kIiwiaGFuZGxlR2V0IiwiaGFuZGxlQ3JlYXRlIiwiaGFuZGxlVXBkYXRlIiwiaGFuZGxlRGVsZXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVPLE1BQU1BLGNBQU4sU0FBNkJDLHVCQUE3QixDQUEyQzs7QUFFaERDLGNBQVk7QUFDVixXQUFPLFVBQVA7QUFDRDs7QUFFREMsV0FBU0MsR0FBVCxFQUFjO0FBQ1o7QUFDQSxRQUFJLENBQUNBLElBQUlDLElBQUwsSUFBYSxDQUFDRCxJQUFJQyxJQUFKLENBQVNDLFlBQTNCLEVBQXlDO0FBQ3ZDLFlBQU0sSUFBSUMsZUFBTUMsS0FBVixDQUFnQkQsZUFBTUMsS0FBTixDQUFZQyxxQkFBNUIsRUFDSix5QkFESSxDQUFOO0FBRUQ7QUFDRCxXQUFPQyxlQUFL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LE9BQU87QUFBRSxhQUFPLEtBQUtpQiw4QkFBTCxDQUFvQ2pCLEdBQXBDLENBQVA7QUFBa0QsS0FBNUc7QUFDRDtBQS9EK0M7O1FBQXJDSixjLEdBQUFBLGM7a0JBa0VFQSxjIiwiZmlsZSI6IlNlc3Npb25zUm91dGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuaW1wb3J0IFBhcnNlICAgICAgICAgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgcmVzdCAgICAgICAgICBmcm9tICcuLi9yZXN0JztcbmltcG9ydCBBdXRoICAgICAgICAgIGZyb20gJy4uL0F1dGgnO1xuXG5leHBvcnQgY2xhc3MgU2Vzc2lvbnNSb3V0ZXIgZXh0ZW5kcyBDbGFzc2VzUm91dGVyIHtcblxuICBjbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuICdfU2Vzc2lvbic7XG4gIH1cblxuICBoYW5kbGVNZShyZXEpIHtcbiAgICAvLyBUT0RPOiBWZXJpZnkgY29ycmVjdCBiZWhhdmlvclxuICAgIGlmICghcmVxLmluZm8gfHwgIXJlcS5pbmZvLnNlc3Npb25Ub2tlbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfU0VTU0lPTl9UT0tFTixcbiAgICAgICAgJ1Nlc3Npb24gdG9rZW4gcmVxdWlyZWQuJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN0LmZpbmQocmVxLmNvbmZpZywgQXV0aC5tYXN0ZXIocmVxLmNvbmZpZyksICdfU2Vzc2lvbicsIHsgc2Vzc2lvblRva2VuOiByZXEuaW5mby5zZXNzaW9uVG9rZW4gfSwgdW5kZWZpbmVkLCByZXEuaW5mby5jbGllbnRTREspXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5yZXN1bHRzIHx8IHJlc3BvbnNlLnJlc3VsdHMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9TRVNTSU9OX1RPS0VOLFxuICAgICAgICAgICAgJ1Nlc3Npb24gdG9rZW4gbm90IGZvdW5kLicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLnJlc3VsdHNbMF1cbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlVXBkYXRlVG9SZXZvY2FibGVTZXNzaW9uKHJlcSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG4gICAgY29uc3QgdXNlciA9IHJlcS5hdXRoLnVzZXI7XG4gICAgLy8gSXNzdWUgIzI3MjBcbiAgICAvLyBDYWxsaW5nIHdpdGhvdXQgYSBzZXNzaW9uIHRva2VuIHdvdWxkIHJlc3VsdCBpbiBhIG5vdCBmb3VuZCB1c2VyXG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ2ludmFsaWQgc2Vzc2lvbicpO1xuICAgIH1cbiAgICBjb25zdCB7XG4gICAgICBzZXNzaW9uRGF0YSxcbiAgICAgIGNyZWF0ZVNlc3Npb25cbiAgICB9ID0gQXV0aC5jcmVhdGVTZXNzaW9uKGNvbmZpZywge1xuICAgICAgdXNlcklkOiB1c2VyLmlkLFxuICAgICAgY3JlYXRlZFdpdGg6IHtcbiAgICAgICAgJ2FjdGlvbic6ICd1cGdyYWRlJyxcbiAgICAgIH0sXG4gICAgICBpbnN0YWxsYXRpb25JZDogcmVxLmF1dGguaW5zdGFsbGF0aW9uSWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3JlYXRlU2Vzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgLy8gZGVsZXRlIHRoZSBzZXNzaW9uIHRva2VuLCB1c2UgdGhlIGRiIHRvIHNraXAgYmVmb3JlU2F2ZVxuICAgICAgcmV0dXJuIGNvbmZpZy5kYXRhYmFzZS51cGRhdGUoJ19Vc2VyJywge1xuICAgICAgICBvYmplY3RJZDogdXNlci5pZFxuICAgICAgfSwge1xuICAgICAgICBzZXNzaW9uVG9rZW46IHtfX29wOiAnRGVsZXRlJ31cbiAgICAgIH0pO1xuICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHJlc3BvbnNlOiBzZXNzaW9uRGF0YSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsJy9zZXNzaW9ucy9tZScsIHJlcSA9PiB7IHJldHVybiB0aGlzLmhhbmRsZU1lKHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvc2Vzc2lvbnMnLCByZXEgPT4geyByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvc2Vzc2lvbnMvOm9iamVjdElkJywgcmVxID0+IHsgcmV0dXJuIHRoaXMuaGFuZGxlR2V0KHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL3Nlc3Npb25zJywgcmVxID0+IHsgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ1BVVCcsICcvc2Vzc2lvbnMvOm9iamVjdElkJywgcmVxID0+IHsgcmV0dXJuIHRoaXMuaGFuZGxlVXBkYXRlKHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ0RFTEVURScsICcvc2Vzc2lvbnMvOm9iamVjdElkJywgcmVxID0+IHsgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL3VwZ3JhZGVUb1Jldm9jYWJsZVNlc3Npb24nLCByZXEgPT4geyByZXR1cm4gdGhpcy5oYW5kbGVVcGRhdGVUb1Jldm9jYWJsZVNlc3Npb24ocmVxKTsgfSlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTZXNzaW9uc1JvdXRlcjtcbiJdfQ==
91
+ var _default = exports.default = SessionsRouter;
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2xhc3Nlc1JvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX25vZGUiLCJfcmVzdCIsIl9BdXRoIiwiX1Jlc3RXcml0ZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNlc3Npb25zUm91dGVyIiwiQ2xhc3Nlc1JvdXRlciIsImNsYXNzTmFtZSIsImhhbmRsZU1lIiwicmVxIiwiaW5mbyIsInNlc3Npb25Ub2tlbiIsIlBhcnNlIiwiRXJyb3IiLCJJTlZBTElEX1NFU1NJT05fVE9LRU4iLCJyZXN0IiwiZmluZCIsImNvbmZpZyIsIkF1dGgiLCJtYXN0ZXIiLCJ1bmRlZmluZWQiLCJjbGllbnRTREsiLCJjb250ZXh0IiwidGhlbiIsInJlc3BvbnNlIiwicmVzdWx0cyIsImxlbmd0aCIsImhhbmRsZVVwZGF0ZVRvUmV2b2NhYmxlU2Vzc2lvbiIsInVzZXIiLCJhdXRoIiwiT0JKRUNUX05PVF9GT1VORCIsInNlc3Npb25EYXRhIiwiY3JlYXRlU2Vzc2lvbiIsIlJlc3RXcml0ZSIsInVzZXJJZCIsImlkIiwiY3JlYXRlZFdpdGgiLCJhY3Rpb24iLCJpbnN0YWxsYXRpb25JZCIsImRhdGFiYXNlIiwidXBkYXRlIiwib2JqZWN0SWQiLCJfX29wIiwiUHJvbWlzZSIsInJlc29sdmUiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwiaGFuZGxlRmluZCIsImhhbmRsZUdldCIsImhhbmRsZUNyZWF0ZSIsImhhbmRsZVVwZGF0ZSIsImhhbmRsZURlbGV0ZSIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1Nlc3Npb25zUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDbGFzc2VzUm91dGVyIGZyb20gJy4vQ2xhc3Nlc1JvdXRlcic7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcbmltcG9ydCBBdXRoIGZyb20gJy4uL0F1dGgnO1xuaW1wb3J0IFJlc3RXcml0ZSBmcm9tICcuLi9SZXN0V3JpdGUnO1xuXG5leHBvcnQgY2xhc3MgU2Vzc2lvbnNSb3V0ZXIgZXh0ZW5kcyBDbGFzc2VzUm91dGVyIHtcbiAgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiAnX1Nlc3Npb24nO1xuICB9XG5cbiAgaGFuZGxlTWUocmVxKSB7XG4gICAgLy8gVE9ETzogVmVyaWZ5IGNvcnJlY3QgYmVoYXZpb3JcbiAgICBpZiAoIXJlcS5pbmZvIHx8ICFyZXEuaW5mby5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX1NFU1NJT05fVE9LRU4sICdTZXNzaW9uIHRva2VuIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIEF1dGgubWFzdGVyKHJlcS5jb25maWcpLFxuICAgICAgICAnX1Nlc3Npb24nLFxuICAgICAgICB7IHNlc3Npb25Ub2tlbjogcmVxLmluZm8uc2Vzc2lvblRva2VuIH0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgICApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfU0VTU0lPTl9UT0tFTiwgJ1Nlc3Npb24gdG9rZW4gbm90IGZvdW5kLicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLnJlc3VsdHNbMF0sXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZVVwZGF0ZVRvUmV2b2NhYmxlU2Vzc2lvbihyZXEpIHtcbiAgICBjb25zdCBjb25maWcgPSByZXEuY29uZmlnO1xuICAgIGNvbnN0IHVzZXIgPSByZXEuYXV0aC51c2VyO1xuICAgIC8vIElzc3VlICMyNzIwXG4gICAgLy8gQ2FsbGluZyB3aXRob3V0IGEgc2Vzc2lvbiB0b2tlbiB3b3VsZCByZXN1bHQgaW4gYSBub3QgZm91bmQgdXNlclxuICAgIGlmICghdXNlcikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdpbnZhbGlkIHNlc3Npb24nKTtcbiAgICB9XG4gICAgY29uc3QgeyBzZXNzaW9uRGF0YSwgY3JlYXRlU2Vzc2lvbiB9ID0gUmVzdFdyaXRlLmNyZWF0ZVNlc3Npb24oY29uZmlnLCB7XG4gICAgICB1c2VySWQ6IHVzZXIuaWQsXG4gICAgICBjcmVhdGVkV2l0aDoge1xuICAgICAgICBhY3Rpb246ICd1cGdyYWRlJyxcbiAgICAgIH0sXG4gICAgICBpbnN0YWxsYXRpb25JZDogcmVxLmF1dGguaW5zdGFsbGF0aW9uSWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3JlYXRlU2Vzc2lvbigpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIC8vIGRlbGV0ZSB0aGUgc2Vzc2lvbiB0b2tlbiwgdXNlIHRoZSBkYiB0byBza2lwIGJlZm9yZVNhdmVcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5kYXRhYmFzZS51cGRhdGUoXG4gICAgICAgICAgJ19Vc2VyJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvYmplY3RJZDogdXNlci5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogeyBfX29wOiAnRGVsZXRlJyB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXNwb25zZTogc2Vzc2lvbkRhdGEgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvc2Vzc2lvbnMvbWUnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlTWUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3Nlc3Npb25zJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUZpbmQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3Nlc3Npb25zLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVHZXQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9zZXNzaW9ucycsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVDcmVhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQVVQnLCAnL3Nlc3Npb25zLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVVcGRhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdERUxFVEUnLCAnL3Nlc3Npb25zLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVEZWxldGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy91cGdyYWRlVG9SZXZvY2FibGVTZXNzaW9uJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVVwZGF0ZVRvUmV2b2NhYmxlU2Vzc2lvbihyZXEpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNlc3Npb25zUm91dGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFB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