parse-server 6.0.0-alpha.2 → 6.0.0-alpha.21

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 (191) hide show
  1. package/README.md +45 -17
  2. package/lib/AccountLockout.js +11 -26
  3. package/lib/Adapters/AdapterLoader.js +8 -14
  4. package/lib/Adapters/Analytics/AnalyticsAdapter.js +2 -8
  5. package/lib/Adapters/Auth/AuthAdapter.js +7 -16
  6. package/lib/Adapters/Auth/OAuth1Client.js +32 -57
  7. package/lib/Adapters/Auth/apple.js +6 -22
  8. package/lib/Adapters/Auth/facebook.js +7 -37
  9. package/lib/Adapters/Auth/gcenter.js +8 -37
  10. package/lib/Adapters/Auth/github.js +7 -10
  11. package/lib/Adapters/Auth/google.js +11 -34
  12. package/lib/Adapters/Auth/gpgames.js +5 -8
  13. package/lib/Adapters/Auth/httpsRequest.js +1 -7
  14. package/lib/Adapters/Auth/index.js +20 -65
  15. package/lib/Adapters/Auth/instagram.js +5 -9
  16. package/lib/Adapters/Auth/janraincapture.js +8 -12
  17. package/lib/Adapters/Auth/janrainengage.js +7 -11
  18. package/lib/Adapters/Auth/keycloak.js +5 -19
  19. package/lib/Adapters/Auth/ldap.js +1 -15
  20. package/lib/Adapters/Auth/line.js +7 -10
  21. package/lib/Adapters/Auth/linkedin.js +7 -12
  22. package/lib/Adapters/Auth/meetup.js +7 -10
  23. package/lib/Adapters/Auth/microsoft.js +7 -10
  24. package/lib/Adapters/Auth/oauth2.js +6 -18
  25. package/lib/Adapters/Auth/phantauth.js +8 -10
  26. package/lib/Adapters/Auth/qq.js +7 -13
  27. package/lib/Adapters/Auth/spotify.js +7 -14
  28. package/lib/Adapters/Auth/twitter.js +5 -15
  29. package/lib/Adapters/Auth/vkontakte.js +9 -15
  30. package/lib/Adapters/Auth/wechat.js +7 -10
  31. package/lib/Adapters/Auth/weibo.js +7 -11
  32. package/lib/Adapters/Cache/CacheAdapter.js +4 -12
  33. package/lib/Adapters/Cache/InMemoryCache.js +5 -19
  34. package/lib/Adapters/Cache/InMemoryCacheAdapter.js +1 -11
  35. package/lib/Adapters/Cache/LRUCache.js +1 -11
  36. package/lib/Adapters/Cache/NullCacheAdapter.js +1 -8
  37. package/lib/Adapters/Cache/RedisCacheAdapter.js +46 -87
  38. package/lib/Adapters/Cache/SchemaCache.js +1 -6
  39. package/lib/Adapters/Email/MailAdapter.js +2 -7
  40. package/lib/Adapters/Files/FilesAdapter.js +7 -21
  41. package/lib/Adapters/Files/GridFSBucketAdapter.js +6 -44
  42. package/lib/Adapters/Files/GridStoreAdapter.js +1 -1
  43. package/lib/Adapters/Logger/LoggerAdapter.js +2 -11
  44. package/lib/Adapters/Logger/WinstonLogger.js +3 -30
  45. package/lib/Adapters/Logger/WinstonLoggerAdapter.js +5 -16
  46. package/lib/Adapters/MessageQueue/EventEmitterMQ.js +3 -20
  47. package/lib/Adapters/PubSub/EventEmitterPubSub.js +1 -16
  48. package/lib/Adapters/PubSub/PubSubAdapter.js +2 -9
  49. package/lib/Adapters/PubSub/RedisPubSub.js +13 -10
  50. package/lib/Adapters/Push/PushAdapter.js +2 -8
  51. package/lib/Adapters/Storage/Mongo/MongoCollection.js +12 -37
  52. package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +26 -79
  53. package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +78 -209
  54. package/lib/Adapters/Storage/Mongo/MongoTransform.js +82 -371
  55. package/lib/Adapters/Storage/Postgres/PostgresClient.js +1 -13
  56. package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +1 -20
  57. package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +119 -446
  58. package/lib/Adapters/Storage/Postgres/sql/index.js +4 -7
  59. package/lib/Adapters/Storage/StorageAdapter.js +1 -1
  60. package/lib/Adapters/WebSocketServer/WSAdapter.js +3 -12
  61. package/lib/Adapters/WebSocketServer/WSSAdapter.js +7 -12
  62. package/lib/Auth.js +54 -121
  63. package/lib/ClientSDK.js +3 -11
  64. package/lib/Config.js +69 -113
  65. package/lib/Controllers/AdaptableController.js +6 -18
  66. package/lib/Controllers/AnalyticsController.js +1 -9
  67. package/lib/Controllers/CacheController.js +3 -23
  68. package/lib/Controllers/DatabaseController.js +147 -345
  69. package/lib/Controllers/FilesController.js +5 -34
  70. package/lib/Controllers/HooksController.js +1 -51
  71. package/lib/Controllers/LiveQueryController.js +4 -23
  72. package/lib/Controllers/LoggerController.js +15 -54
  73. package/lib/Controllers/ParseGraphQLController.js +49 -104
  74. package/lib/Controllers/PushController.js +20 -59
  75. package/lib/Controllers/SchemaController.js +154 -344
  76. package/lib/Controllers/UserController.js +11 -72
  77. package/lib/Controllers/index.js +19 -68
  78. package/lib/Controllers/types.js +1 -1
  79. package/lib/Deprecator/Deprecations.js +1 -8
  80. package/lib/Deprecator/Deprecator.js +9 -18
  81. package/lib/GraphQL/ParseGraphQLSchema.js +16 -100
  82. package/lib/GraphQL/ParseGraphQLServer.js +2 -29
  83. package/lib/GraphQL/helpers/objectsMutations.js +2 -12
  84. package/lib/GraphQL/helpers/objectsQueries.js +18 -76
  85. package/lib/GraphQL/loaders/defaultGraphQLMutations.js +1 -9
  86. package/lib/GraphQL/loaders/defaultGraphQLQueries.js +1 -8
  87. package/lib/GraphQL/loaders/defaultGraphQLTypes.js +9 -115
  88. package/lib/GraphQL/loaders/defaultRelaySchema.js +6 -18
  89. package/lib/GraphQL/loaders/filesMutations.js +2 -19
  90. package/lib/GraphQL/loaders/functionsMutations.js +6 -17
  91. package/lib/GraphQL/loaders/parseClassMutations.js +6 -44
  92. package/lib/GraphQL/loaders/parseClassQueries.js +1 -26
  93. package/lib/GraphQL/loaders/parseClassTypes.js +10 -64
  94. package/lib/GraphQL/loaders/schemaDirectives.js +1 -17
  95. package/lib/GraphQL/loaders/schemaMutations.js +1 -20
  96. package/lib/GraphQL/loaders/schemaQueries.js +1 -14
  97. package/lib/GraphQL/loaders/schemaTypes.js +2 -6
  98. package/lib/GraphQL/loaders/usersMutations.js +6 -28
  99. package/lib/GraphQL/loaders/usersQueries.js +4 -26
  100. package/lib/GraphQL/parseGraphQLUtils.js +6 -19
  101. package/lib/GraphQL/transformers/className.js +1 -4
  102. package/lib/GraphQL/transformers/constraintType.js +1 -20
  103. package/lib/GraphQL/transformers/inputType.js +1 -20
  104. package/lib/GraphQL/transformers/mutation.js +6 -51
  105. package/lib/GraphQL/transformers/outputType.js +1 -20
  106. package/lib/GraphQL/transformers/query.js +6 -42
  107. package/lib/GraphQL/transformers/schemaFields.js +7 -34
  108. package/lib/KeyPromiseQueue.js +1 -12
  109. package/lib/LiveQuery/Client.js +1 -25
  110. package/lib/LiveQuery/Id.js +1 -7
  111. package/lib/LiveQuery/ParseCloudCodePublisher.js +13 -19
  112. package/lib/LiveQuery/ParseLiveQueryServer.js +92 -306
  113. package/lib/LiveQuery/ParsePubSub.js +1 -12
  114. package/lib/LiveQuery/ParseWebSocketServer.js +4 -26
  115. package/lib/LiveQuery/QueryTools.js +14 -116
  116. package/lib/LiveQuery/RequestSchema.js +1 -1
  117. package/lib/LiveQuery/SessionTokenCache.js +1 -17
  118. package/lib/LiveQuery/Subscription.js +4 -18
  119. package/lib/LiveQuery/equalObjects.js +2 -14
  120. package/lib/Options/Definitions.js +79 -10
  121. package/lib/Options/docs.js +23 -3
  122. package/lib/Options/index.js +4 -12
  123. package/lib/Options/parsers.js +1 -18
  124. package/lib/Page.js +1 -9
  125. package/lib/ParseMessageQueue.js +1 -10
  126. package/lib/ParseServer.js +144 -182
  127. package/lib/ParseServerRESTController.js +6 -33
  128. package/lib/PromiseRouter.js +16 -50
  129. package/lib/Push/PushQueue.js +3 -15
  130. package/lib/Push/PushWorker.js +7 -32
  131. package/lib/Push/utils.js +9 -38
  132. package/lib/RestQuery.js +105 -242
  133. package/lib/RestWrite.js +212 -377
  134. package/lib/Routers/AggregateRouter.js +14 -51
  135. package/lib/Routers/AnalyticsRouter.js +2 -8
  136. package/lib/Routers/AudiencesRouter.js +1 -15
  137. package/lib/Routers/ClassesRouter.js +3 -53
  138. package/lib/Routers/CloudCodeRouter.js +1 -19
  139. package/lib/Routers/FeaturesRouter.js +1 -10
  140. package/lib/Routers/FilesRouter.js +29 -76
  141. package/lib/Routers/FunctionsRouter.js +5 -28
  142. package/lib/Routers/GlobalConfigRouter.js +4 -18
  143. package/lib/Routers/GraphQLRouter.js +1 -14
  144. package/lib/Routers/HooksRouter.js +1 -29
  145. package/lib/Routers/IAPValidationRouter.js +6 -29
  146. package/lib/Routers/InstallationsRouter.js +2 -12
  147. package/lib/Routers/LogsRouter.js +4 -16
  148. package/lib/Routers/PagesRouter.js +69 -129
  149. package/lib/Routers/PublicAPIRouter.js +3 -62
  150. package/lib/Routers/PurgeRouter.js +1 -15
  151. package/lib/Routers/PushRouter.js +2 -18
  152. package/lib/Routers/RolesRouter.js +1 -7
  153. package/lib/Routers/SchemasRouter.js +4 -34
  154. package/lib/Routers/SecurityRouter.js +1 -12
  155. package/lib/Routers/SessionsRouter.js +3 -19
  156. package/lib/Routers/UsersRouter.js +58 -155
  157. package/lib/SchemaMigrations/DefinedSchemas.js +56 -115
  158. package/lib/SchemaMigrations/Migrations.js +2 -8
  159. package/lib/Security/Check.js +8 -16
  160. package/lib/Security/CheckGroup.js +4 -11
  161. package/lib/Security/CheckGroups/CheckGroupDatabase.js +8 -18
  162. package/lib/Security/CheckGroups/CheckGroupServerConfig.js +5 -15
  163. package/lib/Security/CheckGroups/CheckGroups.js +1 -4
  164. package/lib/Security/CheckRunner.js +22 -41
  165. package/lib/StatusHandler.js +12 -69
  166. package/lib/TestUtils.js +1 -6
  167. package/lib/Utils.js +27 -66
  168. package/lib/batch.js +17 -28
  169. package/lib/cache.js +1 -3
  170. package/lib/cli/definitions/parse-live-query-server.js +1 -3
  171. package/lib/cli/definitions/parse-server.js +1 -3
  172. package/lib/cli/parse-live-query-server.js +1 -6
  173. package/lib/cli/parse-server.js +11 -21
  174. package/lib/cli/utils/commander.js +13 -51
  175. package/lib/cli/utils/runner.js +1 -14
  176. package/lib/cloud-code/Parse.Cloud.js +71 -92
  177. package/lib/cryptoUtils.js +11 -19
  178. package/lib/defaults.js +2 -14
  179. package/lib/deprecated.js +1 -2
  180. package/lib/index.js +16 -34
  181. package/lib/logger.js +6 -13
  182. package/lib/middlewares.js +147 -151
  183. package/lib/password.js +6 -10
  184. package/lib/request.js +173 -2
  185. package/lib/requiredParameter.js +1 -3
  186. package/lib/rest.js +19 -41
  187. package/lib/triggers.js +54 -252
  188. package/lib/vendor/mongodbUrl.js +125 -305
  189. package/package.json +22 -19
  190. package/lib/cloud-code/HTTPResponse.js +0 -73
  191. package/lib/cloud-code/httpRequest.js +0 -192
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.AdaptableController = void 0;
7
-
8
7
  /*
9
8
  AdaptableController.js
10
9
 
@@ -14,67 +13,56 @@ The super class takes care of creating the right instance for the adapter
14
13
  based on the parameters passed
15
14
 
16
15
  */
16
+
17
17
  // _adapter is private, use Symbol
18
18
  var _adapter = Symbol();
19
-
20
19
  class AdaptableController {
21
20
  constructor(adapter, appId, options) {
22
21
  this.options = options;
23
22
  this.appId = appId;
24
23
  this.adapter = adapter;
25
24
  }
26
-
27
25
  set adapter(adapter) {
28
26
  this.validateAdapter(adapter);
29
27
  this[_adapter] = adapter;
30
28
  }
31
-
32
29
  get adapter() {
33
30
  return this[_adapter];
34
31
  }
35
-
36
32
  expectedAdapterType() {
37
33
  throw new Error('Subclasses should implement expectedAdapterType()');
38
34
  }
39
-
40
35
  validateAdapter(adapter) {
41
36
  AdaptableController.validateAdapter(adapter, this);
42
37
  }
43
-
44
38
  static validateAdapter(adapter, self, ExpectedType) {
45
39
  if (!adapter) {
46
40
  throw new Error(this.constructor.name + ' requires an adapter');
47
41
  }
48
-
49
- const Type = ExpectedType || self.expectedAdapterType(); // Allow skipping for testing
50
-
42
+ const Type = ExpectedType || self.expectedAdapterType();
43
+ // Allow skipping for testing
51
44
  if (!Type) {
52
45
  return;
53
- } // Makes sure the prototype matches
54
-
46
+ }
55
47
 
48
+ // Makes sure the prototype matches
56
49
  const mismatches = Object.getOwnPropertyNames(Type.prototype).reduce((obj, key) => {
57
50
  const adapterType = typeof adapter[key];
58
51
  const expectedType = typeof Type.prototype[key];
59
-
60
52
  if (adapterType !== expectedType) {
61
53
  obj[key] = {
62
54
  expected: expectedType,
63
55
  actual: adapterType
64
56
  };
65
57
  }
66
-
67
58
  return obj;
68
59
  }, {});
69
-
70
60
  if (Object.keys(mismatches).length > 0) {
71
61
  throw new Error("Adapter prototype don't match expected prototype", adapter, mismatches);
72
62
  }
73
63
  }
74
-
75
64
  }
76
-
77
65
  exports.AdaptableController = AdaptableController;
78
66
  var _default = AdaptableController;
79
67
  exports.default = _default;
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9BZGFwdGFibGVDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIl9hZGFwdGVyIiwiU3ltYm9sIiwiQWRhcHRhYmxlQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWRhcHRlciIsImFwcElkIiwib3B0aW9ucyIsInZhbGlkYXRlQWRhcHRlciIsImV4cGVjdGVkQWRhcHRlclR5cGUiLCJFcnJvciIsInNlbGYiLCJFeHBlY3RlZFR5cGUiLCJuYW1lIiwiVHlwZSIsIm1pc21hdGNoZXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvdG90eXBlIiwicmVkdWNlIiwib2JqIiwia2V5IiwiYWRhcHRlclR5cGUiLCJleHBlY3RlZFR5cGUiLCJleHBlY3RlZCIsImFjdHVhbCIsImtleXMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBLElBQUlBLFFBQVEsR0FBR0MsTUFBTSxFQUFyQjs7QUFFTyxNQUFNQyxtQkFBTixDQUEwQjtBQUMvQkMsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQVVDLEtBQVYsRUFBaUJDLE9BQWpCLEVBQTBCO0FBQ25DLFNBQUtBLE9BQUwsR0FBZUEsT0FBZjtBQUNBLFNBQUtELEtBQUwsR0FBYUEsS0FBYjtBQUNBLFNBQUtELE9BQUwsR0FBZUEsT0FBZjtBQUNEOztBQUVVLE1BQVBBLE9BQU8sQ0FBQ0EsT0FBRCxFQUFVO0FBQ25CLFNBQUtHLGVBQUwsQ0FBcUJILE9BQXJCO0FBQ0EsU0FBS0osUUFBTCxJQUFpQkksT0FBakI7QUFDRDs7QUFFVSxNQUFQQSxPQUFPLEdBQUc7QUFDWixXQUFPLEtBQUtKLFFBQUwsQ0FBUDtBQUNEOztBQUVEUSxFQUFBQSxtQkFBbUIsR0FBRztBQUNwQixVQUFNLElBQUlDLEtBQUosQ0FBVSxtREFBVixDQUFOO0FBQ0Q7O0FBRURGLEVBQUFBLGVBQWUsQ0FBQ0gsT0FBRCxFQUFVO0FBQ3ZCRixJQUFBQSxtQkFBbUIsQ0FBQ0ssZUFBcEIsQ0FBb0NILE9BQXBDLEVBQTZDLElBQTdDO0FBQ0Q7O0FBRXFCLFNBQWZHLGVBQWUsQ0FBQ0gsT0FBRCxFQUFVTSxJQUFWLEVBQWdCQyxZQUFoQixFQUE4QjtBQUNsRCxRQUFJLENBQUNQLE9BQUwsRUFBYztBQUNaLFlBQU0sSUFBSUssS0FBSixDQUFVLEtBQUtOLFdBQUwsQ0FBaUJTLElBQWpCLEdBQXdCLHNCQUFsQyxDQUFOO0FBQ0Q7O0FBRUQsVUFBTUMsSUFBSSxHQUFHRixZQUFZLElBQUlELElBQUksQ0FBQ0YsbUJBQUwsRUFBN0IsQ0FMa0QsQ0FNbEQ7O0FBQ0EsUUFBSSxDQUFDSyxJQUFMLEVBQVc7QUFDVDtBQUNELEtBVGlELENBV2xEOzs7QUFDQSxVQUFNQyxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsbUJBQVAsQ0FBMkJILElBQUksQ0FBQ0ksU0FBaEMsRUFBMkNDLE1BQTNDLENBQWtELENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQ2pGLFlBQU1DLFdBQVcsR0FBRyxPQUFPakIsT0FBTyxDQUFDZ0IsR0FBRCxDQUFsQztBQUNBLFlBQU1FLFlBQVksR0FBRyxPQUFPVCxJQUFJLENBQUNJLFNBQUwsQ0FBZUcsR0FBZixDQUE1Qjs7QUFDQSxVQUFJQyxXQUFXLEtBQUtDLFlBQXBCLEVBQWtDO0FBQ2hDSCxRQUFBQSxHQUFHLENBQUNDLEdBQUQsQ0FBSCxHQUFXO0FBQ1RHLFVBQUFBLFFBQVEsRUFBRUQsWUFERDtBQUVURSxVQUFBQSxNQUFNLEVBQUVIO0FBRkMsU0FBWDtBQUlEOztBQUNELGFBQU9GLEdBQVA7QUFDRCxLQVZrQixFQVVoQixFQVZnQixDQUFuQjs7QUFZQSxRQUFJSixNQUFNLENBQUNVLElBQVAsQ0FBWVgsVUFBWixFQUF3QlksTUFBeEIsR0FBaUMsQ0FBckMsRUFBd0M7QUFDdEMsWUFBTSxJQUFJakIsS0FBSixDQUFVLGtEQUFWLEVBQThETCxPQUE5RCxFQUF1RVUsVUFBdkUsQ0FBTjtBQUNEO0FBQ0Y7O0FBbkQ4Qjs7O2VBc0RsQlosbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQWRhcHRhYmxlQ29udHJvbGxlci5qc1xuXG5BZGFwdGFibGVDb250cm9sbGVyIGlzIHRoZSBiYXNlIGNsYXNzIGZvciBhbGwgY29udHJvbGxlcnNcbnRoYXQgc3VwcG9ydCBhZGFwdGVyLFxuVGhlIHN1cGVyIGNsYXNzIHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgdGhlIHJpZ2h0IGluc3RhbmNlIGZvciB0aGUgYWRhcHRlclxuYmFzZWQgb24gdGhlIHBhcmFtZXRlcnMgcGFzc2VkXG5cbiAqL1xuXG4vLyBfYWRhcHRlciBpcyBwcml2YXRlLCB1c2UgU3ltYm9sXG52YXIgX2FkYXB0ZXIgPSBTeW1ib2woKTtcblxuZXhwb3J0IGNsYXNzIEFkYXB0YWJsZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5hcHBJZCA9IGFwcElkO1xuICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXI7XG4gIH1cblxuICBzZXQgYWRhcHRlcihhZGFwdGVyKSB7XG4gICAgdGhpcy52YWxpZGF0ZUFkYXB0ZXIoYWRhcHRlcik7XG4gICAgdGhpc1tfYWRhcHRlcl0gPSBhZGFwdGVyO1xuICB9XG5cbiAgZ2V0IGFkYXB0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXNbX2FkYXB0ZXJdO1xuICB9XG5cbiAgZXhwZWN0ZWRBZGFwdGVyVHlwZSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1N1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBleHBlY3RlZEFkYXB0ZXJUeXBlKCknKTtcbiAgfVxuXG4gIHZhbGlkYXRlQWRhcHRlcihhZGFwdGVyKSB7XG4gICAgQWRhcHRhYmxlQ29udHJvbGxlci52YWxpZGF0ZUFkYXB0ZXIoYWRhcHRlciwgdGhpcyk7XG4gIH1cblxuICBzdGF0aWMgdmFsaWRhdGVBZGFwdGVyKGFkYXB0ZXIsIHNlbGYsIEV4cGVjdGVkVHlwZSkge1xuICAgIGlmICghYWRhcHRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuY29uc3RydWN0b3IubmFtZSArICcgcmVxdWlyZXMgYW4gYWRhcHRlcicpO1xuICAgIH1cblxuICAgIGNvbnN0IFR5cGUgPSBFeHBlY3RlZFR5cGUgfHwgc2VsZi5leHBlY3RlZEFkYXB0ZXJUeXBlKCk7XG4gICAgLy8gQWxsb3cgc2tpcHBpbmcgZm9yIHRlc3RpbmdcbiAgICBpZiAoIVR5cGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBNYWtlcyBzdXJlIHRoZSBwcm90b3R5cGUgbWF0Y2hlc1xuICAgIGNvbnN0IG1pc21hdGNoZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhUeXBlLnByb3RvdHlwZSkucmVkdWNlKChvYmosIGtleSkgPT4ge1xuICAgICAgY29uc3QgYWRhcHRlclR5cGUgPSB0eXBlb2YgYWRhcHRlcltrZXldO1xuICAgICAgY29uc3QgZXhwZWN0ZWRUeXBlID0gdHlwZW9mIFR5cGUucHJvdG90eXBlW2tleV07XG4gICAgICBpZiAoYWRhcHRlclR5cGUgIT09IGV4cGVjdGVkVHlwZSkge1xuICAgICAgICBvYmpba2V5XSA9IHtcbiAgICAgICAgICBleHBlY3RlZDogZXhwZWN0ZWRUeXBlLFxuICAgICAgICAgIGFjdHVhbDogYWRhcHRlclR5cGUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sIHt9KTtcblxuICAgIGlmIChPYmplY3Qua2V5cyhtaXNtYXRjaGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBZGFwdGVyIHByb3RvdHlwZSBkb24ndCBtYXRjaCBleHBlY3RlZCBwcm90b3R5cGVcIiwgYWRhcHRlciwgbWlzbWF0Y2hlcyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFkYXB0YWJsZUNvbnRyb2xsZXI7XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWRhcHRlciIsIlN5bWJvbCIsIkFkYXB0YWJsZUNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImFkYXB0ZXIiLCJhcHBJZCIsIm9wdGlvbnMiLCJ2YWxpZGF0ZUFkYXB0ZXIiLCJleHBlY3RlZEFkYXB0ZXJUeXBlIiwiRXJyb3IiLCJzZWxmIiwiRXhwZWN0ZWRUeXBlIiwibmFtZSIsIlR5cGUiLCJtaXNtYXRjaGVzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3RvdHlwZSIsInJlZHVjZSIsIm9iaiIsImtleSIsImFkYXB0ZXJUeXBlIiwiZXhwZWN0ZWRUeXBlIiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJrZXlzIiwibGVuZ3RoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbnRyb2xsZXJzL0FkYXB0YWJsZUNvbnRyb2xsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkFkYXB0YWJsZUNvbnRyb2xsZXIuanNcblxuQWRhcHRhYmxlQ29udHJvbGxlciBpcyB0aGUgYmFzZSBjbGFzcyBmb3IgYWxsIGNvbnRyb2xsZXJzXG50aGF0IHN1cHBvcnQgYWRhcHRlcixcblRoZSBzdXBlciBjbGFzcyB0YWtlcyBjYXJlIG9mIGNyZWF0aW5nIHRoZSByaWdodCBpbnN0YW5jZSBmb3IgdGhlIGFkYXB0ZXJcbmJhc2VkIG9uIHRoZSBwYXJhbWV0ZXJzIHBhc3NlZFxuXG4gKi9cblxuLy8gX2FkYXB0ZXIgaXMgcHJpdmF0ZSwgdXNlIFN5bWJvbFxudmFyIF9hZGFwdGVyID0gU3ltYm9sKCk7XG5cbmV4cG9ydCBjbGFzcyBBZGFwdGFibGVDb250cm9sbGVyIHtcbiAgY29uc3RydWN0b3IoYWRhcHRlciwgYXBwSWQsIG9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuYXBwSWQgPSBhcHBJZDtcbiAgICB0aGlzLmFkYXB0ZXIgPSBhZGFwdGVyO1xuICB9XG5cbiAgc2V0IGFkYXB0ZXIoYWRhcHRlcikge1xuICAgIHRoaXMudmFsaWRhdGVBZGFwdGVyKGFkYXB0ZXIpO1xuICAgIHRoaXNbX2FkYXB0ZXJdID0gYWRhcHRlcjtcbiAgfVxuXG4gIGdldCBhZGFwdGVyKCkge1xuICAgIHJldHVybiB0aGlzW19hZGFwdGVyXTtcbiAgfVxuXG4gIGV4cGVjdGVkQWRhcHRlclR5cGUoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQgZXhwZWN0ZWRBZGFwdGVyVHlwZSgpJyk7XG4gIH1cblxuICB2YWxpZGF0ZUFkYXB0ZXIoYWRhcHRlcikge1xuICAgIEFkYXB0YWJsZUNvbnRyb2xsZXIudmFsaWRhdGVBZGFwdGVyKGFkYXB0ZXIsIHRoaXMpO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRlQWRhcHRlcihhZGFwdGVyLCBzZWxmLCBFeHBlY3RlZFR5cGUpIHtcbiAgICBpZiAoIWFkYXB0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnIHJlcXVpcmVzIGFuIGFkYXB0ZXInKTtcbiAgICB9XG5cbiAgICBjb25zdCBUeXBlID0gRXhwZWN0ZWRUeXBlIHx8IHNlbGYuZXhwZWN0ZWRBZGFwdGVyVHlwZSgpO1xuICAgIC8vIEFsbG93IHNraXBwaW5nIGZvciB0ZXN0aW5nXG4gICAgaWYgKCFUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTWFrZXMgc3VyZSB0aGUgcHJvdG90eXBlIG1hdGNoZXNcbiAgICBjb25zdCBtaXNtYXRjaGVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoVHlwZS5wcm90b3R5cGUpLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IGFkYXB0ZXJUeXBlID0gdHlwZW9mIGFkYXB0ZXJba2V5XTtcbiAgICAgIGNvbnN0IGV4cGVjdGVkVHlwZSA9IHR5cGVvZiBUeXBlLnByb3RvdHlwZVtrZXldO1xuICAgICAgaWYgKGFkYXB0ZXJUeXBlICE9PSBleHBlY3RlZFR5cGUpIHtcbiAgICAgICAgb2JqW2tleV0gPSB7XG4gICAgICAgICAgZXhwZWN0ZWQ6IGV4cGVjdGVkVHlwZSxcbiAgICAgICAgICBhY3R1YWw6IGFkYXB0ZXJUeXBlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LCB7fSk7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMobWlzbWF0Y2hlcykubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQWRhcHRlciBwcm90b3R5cGUgZG9uJ3QgbWF0Y2ggZXhwZWN0ZWQgcHJvdG90eXBlXCIsIGFkYXB0ZXIsIG1pc21hdGNoZXMpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBZGFwdGFibGVDb250cm9sbGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJQSxRQUFRLEdBQUdDLE1BQU0sRUFBRTtBQUVoQixNQUFNQyxtQkFBbUIsQ0FBQztFQUMvQkMsV0FBVyxDQUFDQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ25DLElBQUksQ0FBQ0EsT0FBTyxHQUFHQSxPQUFPO0lBQ3RCLElBQUksQ0FBQ0QsS0FBSyxHQUFHQSxLQUFLO0lBQ2xCLElBQUksQ0FBQ0QsT0FBTyxHQUFHQSxPQUFPO0VBQ3hCO0VBRUEsSUFBSUEsT0FBTyxDQUFDQSxPQUFPLEVBQUU7SUFDbkIsSUFBSSxDQUFDRyxlQUFlLENBQUNILE9BQU8sQ0FBQztJQUM3QixJQUFJLENBQUNKLFFBQVEsQ0FBQyxHQUFHSSxPQUFPO0VBQzFCO0VBRUEsSUFBSUEsT0FBTyxHQUFHO0lBQ1osT0FBTyxJQUFJLENBQUNKLFFBQVEsQ0FBQztFQUN2QjtFQUVBUSxtQkFBbUIsR0FBRztJQUNwQixNQUFNLElBQUlDLEtBQUssQ0FBQyxtREFBbUQsQ0FBQztFQUN0RTtFQUVBRixlQUFlLENBQUNILE9BQU8sRUFBRTtJQUN2QkYsbUJBQW1CLENBQUNLLGVBQWUsQ0FBQ0gsT0FBTyxFQUFFLElBQUksQ0FBQztFQUNwRDtFQUVBLE9BQU9HLGVBQWUsQ0FBQ0gsT0FBTyxFQUFFTSxJQUFJLEVBQUVDLFlBQVksRUFBRTtJQUNsRCxJQUFJLENBQUNQLE9BQU8sRUFBRTtNQUNaLE1BQU0sSUFBSUssS0FBSyxDQUFDLElBQUksQ0FBQ04sV0FBVyxDQUFDUyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFDakU7SUFFQSxNQUFNQyxJQUFJLEdBQUdGLFlBQVksSUFBSUQsSUFBSSxDQUFDRixtQkFBbUIsRUFBRTtJQUN2RDtJQUNBLElBQUksQ0FBQ0ssSUFBSSxFQUFFO01BQ1Q7SUFDRjs7SUFFQTtJQUNBLE1BQU1DLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQ0gsSUFBSSxDQUFDSSxTQUFTLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUNDLEdBQUcsRUFBRUMsR0FBRyxLQUFLO01BQ2pGLE1BQU1DLFdBQVcsR0FBRyxPQUFPakIsT0FBTyxDQUFDZ0IsR0FBRyxDQUFDO01BQ3ZDLE1BQU1FLFlBQVksR0FBRyxPQUFPVCxJQUFJLENBQUNJLFNBQVMsQ0FBQ0csR0FBRyxDQUFDO01BQy9DLElBQUlDLFdBQVcsS0FBS0MsWUFBWSxFQUFFO1FBQ2hDSCxHQUFHLENBQUNDLEdBQUcsQ0FBQyxHQUFHO1VBQ1RHLFFBQVEsRUFBRUQsWUFBWTtVQUN0QkUsTUFBTSxFQUFFSDtRQUNWLENBQUM7TUFDSDtNQUNBLE9BQU9GLEdBQUc7SUFDWixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFTixJQUFJSixNQUFNLENBQUNVLElBQUksQ0FBQ1gsVUFBVSxDQUFDLENBQUNZLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDdEMsTUFBTSxJQUFJakIsS0FBSyxDQUFDLGtEQUFrRCxFQUFFTCxPQUFPLEVBQUVVLFVBQVUsQ0FBQztJQUMxRjtFQUNGO0FBQ0Y7QUFBQztBQUFBLGVBRWNaLG1CQUFtQjtBQUFBIn0=
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.AnalyticsController = void 0;
7
-
8
7
  var _AdaptableController = _interopRequireDefault(require("./AdaptableController"));
9
-
10
8
  var _AnalyticsAdapter = require("../Adapters/Analytics/AnalyticsAdapter");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  class AnalyticsController extends _AdaptableController.default {
15
11
  appOpened(req) {
16
12
  return Promise.resolve().then(() => {
@@ -25,7 +21,6 @@ class AnalyticsController extends _AdaptableController.default {
25
21
  };
26
22
  });
27
23
  }
28
-
29
24
  trackEvent(req) {
30
25
  return Promise.resolve().then(() => {
31
26
  return this.adapter.trackEvent(req.params.eventName, req.body, req);
@@ -39,14 +34,11 @@ class AnalyticsController extends _AdaptableController.default {
39
34
  };
40
35
  });
41
36
  }
42
-
43
37
  expectedAdapterType() {
44
38
  return _AnalyticsAdapter.AnalyticsAdapter;
45
39
  }
46
-
47
40
  }
48
-
49
41
  exports.AnalyticsController = AnalyticsController;
50
42
  var _default = AnalyticsController;
51
43
  exports.default = _default;
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9BbmFseXRpY3NDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIkFuYWx5dGljc0NvbnRyb2xsZXIiLCJBZGFwdGFibGVDb250cm9sbGVyIiwiYXBwT3BlbmVkIiwicmVxIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiYWRhcHRlciIsImJvZHkiLCJyZXNwb25zZSIsImNhdGNoIiwidHJhY2tFdmVudCIsInBhcmFtcyIsImV2ZW50TmFtZSIsImV4cGVjdGVkQWRhcHRlclR5cGUiLCJBbmFseXRpY3NBZGFwdGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFFTyxNQUFNQSxtQkFBTixTQUFrQ0MsNEJBQWxDLENBQXNEO0FBQzNEQyxFQUFBQSxTQUFTLENBQUNDLEdBQUQsRUFBTTtBQUNiLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixHQUNKQyxJQURJLENBQ0MsTUFBTTtBQUNWLGFBQU8sS0FBS0MsT0FBTCxDQUFhTCxTQUFiLENBQXVCQyxHQUFHLENBQUNLLElBQTNCLEVBQWlDTCxHQUFqQyxDQUFQO0FBQ0QsS0FISSxFQUlKRyxJQUpJLENBSUNHLFFBQVEsSUFBSTtBQUNoQixhQUFPO0FBQUVBLFFBQUFBLFFBQVEsRUFBRUEsUUFBUSxJQUFJO0FBQXhCLE9BQVA7QUFDRCxLQU5JLEVBT0pDLEtBUEksQ0FPRSxNQUFNO0FBQ1gsYUFBTztBQUFFRCxRQUFBQSxRQUFRLEVBQUU7QUFBWixPQUFQO0FBQ0QsS0FUSSxDQUFQO0FBVUQ7O0FBRURFLEVBQUFBLFVBQVUsQ0FBQ1IsR0FBRCxFQUFNO0FBQ2QsV0FBT0MsT0FBTyxDQUFDQyxPQUFSLEdBQ0pDLElBREksQ0FDQyxNQUFNO0FBQ1YsYUFBTyxLQUFLQyxPQUFMLENBQWFJLFVBQWIsQ0FBd0JSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXQyxTQUFuQyxFQUE4Q1YsR0FBRyxDQUFDSyxJQUFsRCxFQUF3REwsR0FBeEQsQ0FBUDtBQUNELEtBSEksRUFJSkcsSUFKSSxDQUlDRyxRQUFRLElBQUk7QUFDaEIsYUFBTztBQUFFQSxRQUFBQSxRQUFRLEVBQUVBLFFBQVEsSUFBSTtBQUF4QixPQUFQO0FBQ0QsS0FOSSxFQU9KQyxLQVBJLENBT0UsTUFBTTtBQUNYLGFBQU87QUFBRUQsUUFBQUEsUUFBUSxFQUFFO0FBQVosT0FBUDtBQUNELEtBVEksQ0FBUDtBQVVEOztBQUVESyxFQUFBQSxtQkFBbUIsR0FBRztBQUNwQixXQUFPQyxrQ0FBUDtBQUNEOztBQTdCMEQ7OztlQWdDOUNmLG1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFkYXB0YWJsZUNvbnRyb2xsZXIgZnJvbSAnLi9BZGFwdGFibGVDb250cm9sbGVyJztcbmltcG9ydCB7IEFuYWx5dGljc0FkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9BbmFseXRpY3MvQW5hbHl0aWNzQWRhcHRlcic7XG5cbmV4cG9ydCBjbGFzcyBBbmFseXRpY3NDb250cm9sbGVyIGV4dGVuZHMgQWRhcHRhYmxlQ29udHJvbGxlciB7XG4gIGFwcE9wZW5lZChyZXEpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5hcHBPcGVuZWQocmVxLmJvZHksIHJlcSk7XG4gICAgICB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzcG9uc2UgfHwge30gfTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICByZXR1cm4geyByZXNwb25zZToge30gfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgdHJhY2tFdmVudChyZXEpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50cmFja0V2ZW50KHJlcS5wYXJhbXMuZXZlbnROYW1lLCByZXEuYm9keSwgcmVxKTtcbiAgICAgIH0pXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXNwb25zZSB8fCB7fSB9O1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiB7fSB9O1xuICAgICAgfSk7XG4gIH1cblxuICBleHBlY3RlZEFkYXB0ZXJUeXBlKCkge1xuICAgIHJldHVybiBBbmFseXRpY3NBZGFwdGVyO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFuYWx5dGljc0NvbnRyb2xsZXI7XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBbmFseXRpY3NDb250cm9sbGVyIiwiQWRhcHRhYmxlQ29udHJvbGxlciIsImFwcE9wZW5lZCIsInJlcSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImFkYXB0ZXIiLCJib2R5IiwicmVzcG9uc2UiLCJjYXRjaCIsInRyYWNrRXZlbnQiLCJwYXJhbXMiLCJldmVudE5hbWUiLCJleHBlY3RlZEFkYXB0ZXJUeXBlIiwiQW5hbHl0aWNzQWRhcHRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9BbmFseXRpY3NDb250cm9sbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBZGFwdGFibGVDb250cm9sbGVyIGZyb20gJy4vQWRhcHRhYmxlQ29udHJvbGxlcic7XG5pbXBvcnQgeyBBbmFseXRpY3NBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQW5hbHl0aWNzL0FuYWx5dGljc0FkYXB0ZXInO1xuXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzQ29udHJvbGxlciBleHRlbmRzIEFkYXB0YWJsZUNvbnRyb2xsZXIge1xuICBhcHBPcGVuZWQocmVxKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuYXBwT3BlbmVkKHJlcS5ib2R5LCByZXEpO1xuICAgICAgfSlcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3BvbnNlIHx8IHt9IH07XG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHt9IH07XG4gICAgICB9KTtcbiAgfVxuXG4gIHRyYWNrRXZlbnQocmVxKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudHJhY2tFdmVudChyZXEucGFyYW1zLmV2ZW50TmFtZSwgcmVxLmJvZHksIHJlcSk7XG4gICAgICB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzcG9uc2UgfHwge30gfTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICByZXR1cm4geyByZXNwb25zZToge30gfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZXhwZWN0ZWRBZGFwdGVyVHlwZSgpIHtcbiAgICByZXR1cm4gQW5hbHl0aWNzQWRhcHRlcjtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBbmFseXRpY3NDb250cm9sbGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQTBFO0FBRW5FLE1BQU1BLG1CQUFtQixTQUFTQyw0QkFBbUIsQ0FBQztFQUMzREMsU0FBUyxDQUFDQyxHQUFHLEVBQUU7SUFDYixPQUFPQyxPQUFPLENBQUNDLE9BQU8sRUFBRSxDQUNyQkMsSUFBSSxDQUFDLE1BQU07TUFDVixPQUFPLElBQUksQ0FBQ0MsT0FBTyxDQUFDTCxTQUFTLENBQUNDLEdBQUcsQ0FBQ0ssSUFBSSxFQUFFTCxHQUFHLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQ0RHLElBQUksQ0FBQ0csUUFBUSxJQUFJO01BQ2hCLE9BQU87UUFBRUEsUUFBUSxFQUFFQSxRQUFRLElBQUksQ0FBQztNQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQ0RDLEtBQUssQ0FBQyxNQUFNO01BQ1gsT0FBTztRQUFFRCxRQUFRLEVBQUUsQ0FBQztNQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDO0VBQ047RUFFQUUsVUFBVSxDQUFDUixHQUFHLEVBQUU7SUFDZCxPQUFPQyxPQUFPLENBQUNDLE9BQU8sRUFBRSxDQUNyQkMsSUFBSSxDQUFDLE1BQU07TUFDVixPQUFPLElBQUksQ0FBQ0MsT0FBTyxDQUFDSSxVQUFVLENBQUNSLEdBQUcsQ0FBQ1MsTUFBTSxDQUFDQyxTQUFTLEVBQUVWLEdBQUcsQ0FBQ0ssSUFBSSxFQUFFTCxHQUFHLENBQUM7SUFDckUsQ0FBQyxDQUFDLENBQ0RHLElBQUksQ0FBQ0csUUFBUSxJQUFJO01BQ2hCLE9BQU87UUFBRUEsUUFBUSxFQUFFQSxRQUFRLElBQUksQ0FBQztNQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQ0RDLEtBQUssQ0FBQyxNQUFNO01BQ1gsT0FBTztRQUFFRCxRQUFRLEVBQUUsQ0FBQztNQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDO0VBQ047RUFFQUssbUJBQW1CLEdBQUc7SUFDcEIsT0FBT0Msa0NBQWdCO0VBQ3pCO0FBQ0Y7QUFBQztBQUFBLGVBRWNmLG1CQUFtQjtBQUFBIn0=
@@ -3,56 +3,43 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.CacheController = exports.SubCache = void 0;
7
-
6
+ exports.default = exports.SubCache = exports.CacheController = void 0;
8
7
  var _AdaptableController = _interopRequireDefault(require("./AdaptableController"));
9
-
10
8
  var _CacheAdapter = _interopRequireDefault(require("../Adapters/Cache/CacheAdapter"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  const KEY_SEPARATOR_CHAR = ':';
15
-
16
11
  function joinKeys(...keys) {
17
12
  return keys.join(KEY_SEPARATOR_CHAR);
18
13
  }
14
+
19
15
  /**
20
16
  * Prefix all calls to the cache via a prefix string, useful when grouping Cache by object type.
21
17
  *
22
18
  * eg "Role" or "Session"
23
19
  */
24
-
25
-
26
20
  class SubCache {
27
21
  constructor(prefix, cacheController, ttl) {
28
22
  this.prefix = prefix;
29
23
  this.cache = cacheController;
30
24
  this.ttl = ttl;
31
25
  }
32
-
33
26
  get(key) {
34
27
  const cacheKey = joinKeys(this.prefix, key);
35
28
  return this.cache.get(cacheKey);
36
29
  }
37
-
38
30
  put(key, value, ttl) {
39
31
  const cacheKey = joinKeys(this.prefix, key);
40
32
  return this.cache.put(cacheKey, value, ttl);
41
33
  }
42
-
43
34
  del(key) {
44
35
  const cacheKey = joinKeys(this.prefix, key);
45
36
  return this.cache.del(cacheKey);
46
37
  }
47
-
48
38
  clear() {
49
39
  return this.cache.clear();
50
40
  }
51
-
52
41
  }
53
-
54
42
  exports.SubCache = SubCache;
55
-
56
43
  class CacheController extends _AdaptableController.default {
57
44
  constructor(adapter, appId, options = {}) {
58
45
  super(adapter, appId, options);
@@ -60,33 +47,26 @@ class CacheController extends _AdaptableController.default {
60
47
  this.user = new SubCache('user', this);
61
48
  this.graphQL = new SubCache('graphQL', this);
62
49
  }
63
-
64
50
  get(key) {
65
51
  const cacheKey = joinKeys(this.appId, key);
66
52
  return this.adapter.get(cacheKey).then(null, () => Promise.resolve(null));
67
53
  }
68
-
69
54
  put(key, value, ttl) {
70
55
  const cacheKey = joinKeys(this.appId, key);
71
56
  return this.adapter.put(cacheKey, value, ttl);
72
57
  }
73
-
74
58
  del(key) {
75
59
  const cacheKey = joinKeys(this.appId, key);
76
60
  return this.adapter.del(cacheKey);
77
61
  }
78
-
79
62
  clear() {
80
63
  return this.adapter.clear();
81
64
  }
82
-
83
65
  expectedAdapterType() {
84
66
  return _CacheAdapter.default;
85
67
  }
86
-
87
68
  }
88
-
89
69
  exports.CacheController = CacheController;
90
70
  var _default = CacheController;
91
71
  exports.default = _default;
92
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9DYWNoZUNvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiS0VZX1NFUEFSQVRPUl9DSEFSIiwiam9pbktleXMiLCJrZXlzIiwiam9pbiIsIlN1YkNhY2hlIiwiY29uc3RydWN0b3IiLCJwcmVmaXgiLCJjYWNoZUNvbnRyb2xsZXIiLCJ0dGwiLCJjYWNoZSIsImdldCIsImtleSIsImNhY2hlS2V5IiwicHV0IiwidmFsdWUiLCJkZWwiLCJjbGVhciIsIkNhY2hlQ29udHJvbGxlciIsIkFkYXB0YWJsZUNvbnRyb2xsZXIiLCJhZGFwdGVyIiwiYXBwSWQiLCJvcHRpb25zIiwicm9sZSIsInVzZXIiLCJncmFwaFFMIiwidGhlbiIsIlByb21pc2UiLCJyZXNvbHZlIiwiZXhwZWN0ZWRBZGFwdGVyVHlwZSIsIkNhY2hlQWRhcHRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOzs7O0FBRUEsTUFBTUEsa0JBQWtCLEdBQUcsR0FBM0I7O0FBRUEsU0FBU0MsUUFBVCxDQUFrQixHQUFHQyxJQUFyQixFQUEyQjtBQUN6QixTQUFPQSxJQUFJLENBQUNDLElBQUwsQ0FBVUgsa0JBQVYsQ0FBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sTUFBTUksUUFBTixDQUFlO0FBQ3BCQyxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsZUFBVCxFQUEwQkMsR0FBMUIsRUFBK0I7QUFDeEMsU0FBS0YsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0csS0FBTCxHQUFhRixlQUFiO0FBQ0EsU0FBS0MsR0FBTCxHQUFXQSxHQUFYO0FBQ0Q7O0FBRURFLEVBQUFBLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNO0FBQ1AsVUFBTUMsUUFBUSxHQUFHWCxRQUFRLENBQUMsS0FBS0ssTUFBTixFQUFjSyxHQUFkLENBQXpCO0FBQ0EsV0FBTyxLQUFLRixLQUFMLENBQVdDLEdBQVgsQ0FBZUUsUUFBZixDQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLEdBQUcsQ0FBQ0YsR0FBRCxFQUFNRyxLQUFOLEVBQWFOLEdBQWIsRUFBa0I7QUFDbkIsVUFBTUksUUFBUSxHQUFHWCxRQUFRLENBQUMsS0FBS0ssTUFBTixFQUFjSyxHQUFkLENBQXpCO0FBQ0EsV0FBTyxLQUFLRixLQUFMLENBQVdJLEdBQVgsQ0FBZUQsUUFBZixFQUF5QkUsS0FBekIsRUFBZ0NOLEdBQWhDLENBQVA7QUFDRDs7QUFFRE8sRUFBQUEsR0FBRyxDQUFDSixHQUFELEVBQU07QUFDUCxVQUFNQyxRQUFRLEdBQUdYLFFBQVEsQ0FBQyxLQUFLSyxNQUFOLEVBQWNLLEdBQWQsQ0FBekI7QUFDQSxXQUFPLEtBQUtGLEtBQUwsQ0FBV00sR0FBWCxDQUFlSCxRQUFmLENBQVA7QUFDRDs7QUFFREksRUFBQUEsS0FBSyxHQUFHO0FBQ04sV0FBTyxLQUFLUCxLQUFMLENBQVdPLEtBQVgsRUFBUDtBQUNEOztBQXhCbUI7Ozs7QUEyQmYsTUFBTUMsZUFBTixTQUE4QkMsNEJBQTlCLENBQWtEO0FBQ3ZEYixFQUFBQSxXQUFXLENBQUNjLE9BQUQsRUFBVUMsS0FBVixFQUFpQkMsT0FBTyxHQUFHLEVBQTNCLEVBQStCO0FBQ3hDLFVBQU1GLE9BQU4sRUFBZUMsS0FBZixFQUFzQkMsT0FBdEI7QUFFQSxTQUFLQyxJQUFMLEdBQVksSUFBSWxCLFFBQUosQ0FBYSxNQUFiLEVBQXFCLElBQXJCLENBQVo7QUFDQSxTQUFLbUIsSUFBTCxHQUFZLElBQUluQixRQUFKLENBQWEsTUFBYixFQUFxQixJQUFyQixDQUFaO0FBQ0EsU0FBS29CLE9BQUwsR0FBZSxJQUFJcEIsUUFBSixDQUFhLFNBQWIsRUFBd0IsSUFBeEIsQ0FBZjtBQUNEOztBQUVETSxFQUFBQSxHQUFHLENBQUNDLEdBQUQsRUFBTTtBQUNQLFVBQU1DLFFBQVEsR0FBR1gsUUFBUSxDQUFDLEtBQUttQixLQUFOLEVBQWFULEdBQWIsQ0FBekI7QUFDQSxXQUFPLEtBQUtRLE9BQUwsQ0FBYVQsR0FBYixDQUFpQkUsUUFBakIsRUFBMkJhLElBQTNCLENBQWdDLElBQWhDLEVBQXNDLE1BQU1DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQixJQUFoQixDQUE1QyxDQUFQO0FBQ0Q7O0FBRURkLEVBQUFBLEdBQUcsQ0FBQ0YsR0FBRCxFQUFNRyxLQUFOLEVBQWFOLEdBQWIsRUFBa0I7QUFDbkIsVUFBTUksUUFBUSxHQUFHWCxRQUFRLENBQUMsS0FBS21CLEtBQU4sRUFBYVQsR0FBYixDQUF6QjtBQUNBLFdBQU8sS0FBS1EsT0FBTCxDQUFhTixHQUFiLENBQWlCRCxRQUFqQixFQUEyQkUsS0FBM0IsRUFBa0NOLEdBQWxDLENBQVA7QUFDRDs7QUFFRE8sRUFBQUEsR0FBRyxDQUFDSixHQUFELEVBQU07QUFDUCxVQUFNQyxRQUFRLEdBQUdYLFFBQVEsQ0FBQyxLQUFLbUIsS0FBTixFQUFhVCxHQUFiLENBQXpCO0FBQ0EsV0FBTyxLQUFLUSxPQUFMLENBQWFKLEdBQWIsQ0FBaUJILFFBQWpCLENBQVA7QUFDRDs7QUFFREksRUFBQUEsS0FBSyxHQUFHO0FBQ04sV0FBTyxLQUFLRyxPQUFMLENBQWFILEtBQWIsRUFBUDtBQUNEOztBQUVEWSxFQUFBQSxtQkFBbUIsR0FBRztBQUNwQixXQUFPQyxxQkFBUDtBQUNEOztBQTlCc0Q7OztlQWlDMUNaLGUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWRhcHRhYmxlQ29udHJvbGxlciBmcm9tICcuL0FkYXB0YWJsZUNvbnRyb2xsZXInO1xuaW1wb3J0IENhY2hlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9DYWNoZS9DYWNoZUFkYXB0ZXInO1xuXG5jb25zdCBLRVlfU0VQQVJBVE9SX0NIQVIgPSAnOic7XG5cbmZ1bmN0aW9uIGpvaW5LZXlzKC4uLmtleXMpIHtcbiAgcmV0dXJuIGtleXMuam9pbihLRVlfU0VQQVJBVE9SX0NIQVIpO1xufVxuXG4vKipcbiAqIFByZWZpeCBhbGwgY2FsbHMgdG8gdGhlIGNhY2hlIHZpYSBhIHByZWZpeCBzdHJpbmcsIHVzZWZ1bCB3aGVuIGdyb3VwaW5nIENhY2hlIGJ5IG9iamVjdCB0eXBlLlxuICpcbiAqIGVnIFwiUm9sZVwiIG9yIFwiU2Vzc2lvblwiXG4gKi9cbmV4cG9ydCBjbGFzcyBTdWJDYWNoZSB7XG4gIGNvbnN0cnVjdG9yKHByZWZpeCwgY2FjaGVDb250cm9sbGVyLCB0dGwpIHtcbiAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgICB0aGlzLmNhY2hlID0gY2FjaGVDb250cm9sbGVyO1xuICAgIHRoaXMudHRsID0gdHRsO1xuICB9XG5cbiAgZ2V0KGtleSkge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gam9pbktleXModGhpcy5wcmVmaXgsIGtleSk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgfVxuXG4gIHB1dChrZXksIHZhbHVlLCB0dGwpIHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGpvaW5LZXlzKHRoaXMucHJlZml4LCBrZXkpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlLnB1dChjYWNoZUtleSwgdmFsdWUsIHR0bCk7XG4gIH1cblxuICBkZWwoa2V5KSB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBqb2luS2V5cyh0aGlzLnByZWZpeCwga2V5KTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5kZWwoY2FjaGVLZXkpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2FjaGVDb250cm9sbGVyIGV4dGVuZHMgQWRhcHRhYmxlQ29udHJvbGxlciB7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXIsIGFwcElkLCBvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucyk7XG5cbiAgICB0aGlzLnJvbGUgPSBuZXcgU3ViQ2FjaGUoJ3JvbGUnLCB0aGlzKTtcbiAgICB0aGlzLnVzZXIgPSBuZXcgU3ViQ2FjaGUoJ3VzZXInLCB0aGlzKTtcbiAgICB0aGlzLmdyYXBoUUwgPSBuZXcgU3ViQ2FjaGUoJ2dyYXBoUUwnLCB0aGlzKTtcbiAgfVxuXG4gIGdldChrZXkpIHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGpvaW5LZXlzKHRoaXMuYXBwSWQsIGtleSk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5nZXQoY2FjaGVLZXkpLnRoZW4obnVsbCwgKCkgPT4gUHJvbWlzZS5yZXNvbHZlKG51bGwpKTtcbiAgfVxuXG4gIHB1dChrZXksIHZhbHVlLCB0dGwpIHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGpvaW5LZXlzKHRoaXMuYXBwSWQsIGtleSk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5wdXQoY2FjaGVLZXksIHZhbHVlLCB0dGwpO1xuICB9XG5cbiAgZGVsKGtleSkge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gam9pbktleXModGhpcy5hcHBJZCwga2V5KTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmRlbChjYWNoZUtleSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmNsZWFyKCk7XG4gIH1cblxuICBleHBlY3RlZEFkYXB0ZXJUeXBlKCkge1xuICAgIHJldHVybiBDYWNoZUFkYXB0ZXI7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2FjaGVDb250cm9sbGVyO1xuIl19
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJLRVlfU0VQQVJBVE9SX0NIQVIiLCJqb2luS2V5cyIsImtleXMiLCJqb2luIiwiU3ViQ2FjaGUiLCJjb25zdHJ1Y3RvciIsInByZWZpeCIsImNhY2hlQ29udHJvbGxlciIsInR0bCIsImNhY2hlIiwiZ2V0Iiwia2V5IiwiY2FjaGVLZXkiLCJwdXQiLCJ2YWx1ZSIsImRlbCIsImNsZWFyIiwiQ2FjaGVDb250cm9sbGVyIiwiQWRhcHRhYmxlQ29udHJvbGxlciIsImFkYXB0ZXIiLCJhcHBJZCIsIm9wdGlvbnMiLCJyb2xlIiwidXNlciIsImdyYXBoUUwiLCJ0aGVuIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleHBlY3RlZEFkYXB0ZXJUeXBlIiwiQ2FjaGVBZGFwdGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbnRyb2xsZXJzL0NhY2hlQ29udHJvbGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWRhcHRhYmxlQ29udHJvbGxlciBmcm9tICcuL0FkYXB0YWJsZUNvbnRyb2xsZXInO1xuaW1wb3J0IENhY2hlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9DYWNoZS9DYWNoZUFkYXB0ZXInO1xuXG5jb25zdCBLRVlfU0VQQVJBVE9SX0NIQVIgPSAnOic7XG5cbmZ1bmN0aW9uIGpvaW5LZXlzKC4uLmtleXMpIHtcbiAgcmV0dXJuIGtleXMuam9pbihLRVlfU0VQQVJBVE9SX0NIQVIpO1xufVxuXG4vKipcbiAqIFByZWZpeCBhbGwgY2FsbHMgdG8gdGhlIGNhY2hlIHZpYSBhIHByZWZpeCBzdHJpbmcsIHVzZWZ1bCB3aGVuIGdyb3VwaW5nIENhY2hlIGJ5IG9iamVjdCB0eXBlLlxuICpcbiAqIGVnIFwiUm9sZVwiIG9yIFwiU2Vzc2lvblwiXG4gKi9cbmV4cG9ydCBjbGFzcyBTdWJDYWNoZSB7XG4gIGNvbnN0cnVjdG9yKHByZWZpeCwgY2FjaGVDb250cm9sbGVyLCB0dGwpIHtcbiAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgICB0aGlzLmNhY2hlID0gY2FjaGVDb250cm9sbGVyO1xuICAgIHRoaXMudHRsID0gdHRsO1xuICB9XG5cbiAgZ2V0KGtleSkge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gam9pbktleXModGhpcy5wcmVmaXgsIGtleSk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgfVxuXG4gIHB1dChrZXksIHZhbHVlLCB0dGwpIHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGpvaW5LZXlzKHRoaXMucHJlZml4LCBrZXkpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlLnB1dChjYWNoZUtleSwgdmFsdWUsIHR0bCk7XG4gIH1cblxuICBkZWwoa2V5KSB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBqb2luS2V5cyh0aGlzLnByZWZpeCwga2V5KTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5kZWwoY2FjaGVLZXkpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2FjaGVDb250cm9sbGVyIGV4dGVuZHMgQWRhcHRhYmxlQ29udHJvbGxlciB7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXIsIGFwcElkLCBvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucyk7XG5cbiAgICB0aGlzLnJvbGUgPSBuZXcgU3ViQ2FjaGUoJ3JvbGUnLCB0aGlzKTtcbiAgICB0aGlzLnVzZXIgPSBuZXcgU3ViQ2FjaGUoJ3VzZXInLCB0aGlzKTtcbiAgICB0aGlzLmdyYXBoUUwgPSBuZXcgU3ViQ2FjaGUoJ2dyYXBoUUwnLCB0aGlzKTtcbiAgfVxuXG4gIGdldChrZXkpIHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGpvaW5LZXlzKHRoaXMuYXBwSWQsIGtleSk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5nZXQoY2FjaGVLZXkpLnRoZW4obnVsbCwgKCkgPT4gUHJvbWlzZS5yZXNvbHZlKG51bGwpKTtcbiAgfVxuXG4gIHB1dChrZXksIHZhbHVlLCB0dGwpIHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGpvaW5LZXlzKHRoaXMuYXBwSWQsIGtleSk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5wdXQoY2FjaGVLZXksIHZhbHVlLCB0dGwpO1xuICB9XG5cbiAgZGVsKGtleSkge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gam9pbktleXModGhpcy5hcHBJZCwga2V5KTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmRlbChjYWNoZUtleSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmNsZWFyKCk7XG4gIH1cblxuICBleHBlY3RlZEFkYXB0ZXJUeXBlKCkge1xuICAgIHJldHVybiBDYWNoZUFkYXB0ZXI7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2FjaGVDb250cm9sbGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQTBEO0FBRTFELE1BQU1BLGtCQUFrQixHQUFHLEdBQUc7QUFFOUIsU0FBU0MsUUFBUSxDQUFDLEdBQUdDLElBQUksRUFBRTtFQUN6QixPQUFPQSxJQUFJLENBQUNDLElBQUksQ0FBQ0gsa0JBQWtCLENBQUM7QUFDdEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1JLFFBQVEsQ0FBQztFQUNwQkMsV0FBVyxDQUFDQyxNQUFNLEVBQUVDLGVBQWUsRUFBRUMsR0FBRyxFQUFFO0lBQ3hDLElBQUksQ0FBQ0YsTUFBTSxHQUFHQSxNQUFNO0lBQ3BCLElBQUksQ0FBQ0csS0FBSyxHQUFHRixlQUFlO0lBQzVCLElBQUksQ0FBQ0MsR0FBRyxHQUFHQSxHQUFHO0VBQ2hCO0VBRUFFLEdBQUcsQ0FBQ0MsR0FBRyxFQUFFO0lBQ1AsTUFBTUMsUUFBUSxHQUFHWCxRQUFRLENBQUMsSUFBSSxDQUFDSyxNQUFNLEVBQUVLLEdBQUcsQ0FBQztJQUMzQyxPQUFPLElBQUksQ0FBQ0YsS0FBSyxDQUFDQyxHQUFHLENBQUNFLFFBQVEsQ0FBQztFQUNqQztFQUVBQyxHQUFHLENBQUNGLEdBQUcsRUFBRUcsS0FBSyxFQUFFTixHQUFHLEVBQUU7SUFDbkIsTUFBTUksUUFBUSxHQUFHWCxRQUFRLENBQUMsSUFBSSxDQUFDSyxNQUFNLEVBQUVLLEdBQUcsQ0FBQztJQUMzQyxPQUFPLElBQUksQ0FBQ0YsS0FBSyxDQUFDSSxHQUFHLENBQUNELFFBQVEsRUFBRUUsS0FBSyxFQUFFTixHQUFHLENBQUM7RUFDN0M7RUFFQU8sR0FBRyxDQUFDSixHQUFHLEVBQUU7SUFDUCxNQUFNQyxRQUFRLEdBQUdYLFFBQVEsQ0FBQyxJQUFJLENBQUNLLE1BQU0sRUFBRUssR0FBRyxDQUFDO0lBQzNDLE9BQU8sSUFBSSxDQUFDRixLQUFLLENBQUNNLEdBQUcsQ0FBQ0gsUUFBUSxDQUFDO0VBQ2pDO0VBRUFJLEtBQUssR0FBRztJQUNOLE9BQU8sSUFBSSxDQUFDUCxLQUFLLENBQUNPLEtBQUssRUFBRTtFQUMzQjtBQUNGO0FBQUM7QUFFTSxNQUFNQyxlQUFlLFNBQVNDLDRCQUFtQixDQUFDO0VBQ3ZEYixXQUFXLENBQUNjLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDeEMsS0FBSyxDQUFDRixPQUFPLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxDQUFDO0lBRTlCLElBQUksQ0FBQ0MsSUFBSSxHQUFHLElBQUlsQixRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztJQUN0QyxJQUFJLENBQUNtQixJQUFJLEdBQUcsSUFBSW5CLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO0lBQ3RDLElBQUksQ0FBQ29CLE9BQU8sR0FBRyxJQUFJcEIsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7RUFDOUM7RUFFQU0sR0FBRyxDQUFDQyxHQUFHLEVBQUU7SUFDUCxNQUFNQyxRQUFRLEdBQUdYLFFBQVEsQ0FBQyxJQUFJLENBQUNtQixLQUFLLEVBQUVULEdBQUcsQ0FBQztJQUMxQyxPQUFPLElBQUksQ0FBQ1EsT0FBTyxDQUFDVCxHQUFHLENBQUNFLFFBQVEsQ0FBQyxDQUFDYSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU1DLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0VBQzNFO0VBRUFkLEdBQUcsQ0FBQ0YsR0FBRyxFQUFFRyxLQUFLLEVBQUVOLEdBQUcsRUFBRTtJQUNuQixNQUFNSSxRQUFRLEdBQUdYLFFBQVEsQ0FBQyxJQUFJLENBQUNtQixLQUFLLEVBQUVULEdBQUcsQ0FBQztJQUMxQyxPQUFPLElBQUksQ0FBQ1EsT0FBTyxDQUFDTixHQUFHLENBQUNELFFBQVEsRUFBRUUsS0FBSyxFQUFFTixHQUFHLENBQUM7RUFDL0M7RUFFQU8sR0FBRyxDQUFDSixHQUFHLEVBQUU7SUFDUCxNQUFNQyxRQUFRLEdBQUdYLFFBQVEsQ0FBQyxJQUFJLENBQUNtQixLQUFLLEVBQUVULEdBQUcsQ0FBQztJQUMxQyxPQUFPLElBQUksQ0FBQ1EsT0FBTyxDQUFDSixHQUFHLENBQUNILFFBQVEsQ0FBQztFQUNuQztFQUVBSSxLQUFLLEdBQUc7SUFDTixPQUFPLElBQUksQ0FBQ0csT0FBTyxDQUFDSCxLQUFLLEVBQUU7RUFDN0I7RUFFQVksbUJBQW1CLEdBQUc7SUFDcEIsT0FBT0MscUJBQVk7RUFDckI7QUFDRjtBQUFDO0FBQUEsZUFFY1osZUFBZTtBQUFBIn0=