parse-server 2.8.4 → 8.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/LICENSE +167 -25
  2. package/NOTICE +10 -0
  3. package/README.md +929 -278
  4. package/lib/AccountLockout.js +47 -30
  5. package/lib/Adapters/AdapterLoader.js +21 -6
  6. package/lib/Adapters/Analytics/AnalyticsAdapter.js +15 -12
  7. package/lib/Adapters/Auth/AuthAdapter.js +116 -13
  8. package/lib/Adapters/Auth/BaseCodeAuthAdapter.js +99 -0
  9. package/lib/Adapters/Auth/OAuth1Client.js +27 -46
  10. package/lib/Adapters/Auth/apple.js +123 -0
  11. package/lib/Adapters/Auth/facebook.js +162 -35
  12. package/lib/Adapters/Auth/gcenter.js +217 -0
  13. package/lib/Adapters/Auth/github.js +118 -48
  14. package/lib/Adapters/Auth/google.js +160 -51
  15. package/lib/Adapters/Auth/gpgames.js +125 -0
  16. package/lib/Adapters/Auth/httpsRequest.js +6 -7
  17. package/lib/Adapters/Auth/index.js +170 -62
  18. package/lib/Adapters/Auth/instagram.js +114 -40
  19. package/lib/Adapters/Auth/janraincapture.js +52 -23
  20. package/lib/Adapters/Auth/janrainengage.js +19 -36
  21. package/lib/Adapters/Auth/keycloak.js +148 -0
  22. package/lib/Adapters/Auth/ldap.js +167 -0
  23. package/lib/Adapters/Auth/line.js +125 -0
  24. package/lib/Adapters/Auth/linkedin.js +111 -55
  25. package/lib/Adapters/Auth/meetup.js +24 -34
  26. package/lib/Adapters/Auth/mfa.js +324 -0
  27. package/lib/Adapters/Auth/microsoft.js +111 -0
  28. package/lib/Adapters/Auth/oauth2.js +97 -162
  29. package/lib/Adapters/Auth/phantauth.js +53 -0
  30. package/lib/Adapters/Auth/qq.js +108 -49
  31. package/lib/Adapters/Auth/spotify.js +107 -55
  32. package/lib/Adapters/Auth/twitter.js +188 -48
  33. package/lib/Adapters/Auth/utils.js +28 -0
  34. package/lib/Adapters/Auth/vkontakte.js +26 -39
  35. package/lib/Adapters/Auth/wechat.js +106 -44
  36. package/lib/Adapters/Auth/weibo.js +132 -58
  37. package/lib/Adapters/Cache/CacheAdapter.js +13 -8
  38. package/lib/Adapters/Cache/InMemoryCache.js +3 -13
  39. package/lib/Adapters/Cache/InMemoryCacheAdapter.js +5 -13
  40. package/lib/Adapters/Cache/LRUCache.js +13 -27
  41. package/lib/Adapters/Cache/NullCacheAdapter.js +3 -8
  42. package/lib/Adapters/Cache/RedisCacheAdapter.js +85 -76
  43. package/lib/Adapters/Cache/SchemaCache.js +25 -0
  44. package/lib/Adapters/Email/MailAdapter.js +10 -8
  45. package/lib/Adapters/Files/FilesAdapter.js +83 -25
  46. package/lib/Adapters/Files/GridFSBucketAdapter.js +231 -0
  47. package/lib/Adapters/Files/GridStoreAdapter.js +4 -91
  48. package/lib/Adapters/Logger/LoggerAdapter.js +18 -14
  49. package/lib/Adapters/Logger/WinstonLogger.js +69 -88
  50. package/lib/Adapters/Logger/WinstonLoggerAdapter.js +7 -16
  51. package/lib/Adapters/MessageQueue/EventEmitterMQ.js +8 -26
  52. package/lib/Adapters/PubSub/EventEmitterPubSub.js +12 -25
  53. package/lib/Adapters/PubSub/PubSubAdapter.js +34 -0
  54. package/lib/Adapters/PubSub/RedisPubSub.js +42 -19
  55. package/lib/Adapters/Push/PushAdapter.js +14 -7
  56. package/lib/Adapters/Storage/Mongo/MongoCollection.js +137 -45
  57. package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +158 -63
  58. package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +320 -168
  59. package/lib/Adapters/Storage/Mongo/MongoTransform.js +279 -306
  60. package/lib/Adapters/Storage/Postgres/PostgresClient.js +14 -10
  61. package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +47 -21
  62. package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +854 -468
  63. package/lib/Adapters/Storage/Postgres/sql/index.js +4 -6
  64. package/lib/Adapters/Storage/StorageAdapter.js +1 -1
  65. package/lib/Adapters/WebSocketServer/WSAdapter.js +35 -0
  66. package/lib/Adapters/WebSocketServer/WSSAdapter.js +66 -0
  67. package/lib/Auth.js +488 -125
  68. package/lib/ClientSDK.js +2 -6
  69. package/lib/Config.js +525 -94
  70. package/lib/Controllers/AdaptableController.js +5 -25
  71. package/lib/Controllers/AnalyticsController.js +22 -23
  72. package/lib/Controllers/CacheController.js +10 -31
  73. package/lib/Controllers/DatabaseController.js +767 -313
  74. package/lib/Controllers/FilesController.js +49 -54
  75. package/lib/Controllers/HooksController.js +80 -84
  76. package/lib/Controllers/LiveQueryController.js +35 -22
  77. package/lib/Controllers/LoggerController.js +22 -58
  78. package/lib/Controllers/ParseGraphQLController.js +293 -0
  79. package/lib/Controllers/PushController.js +58 -49
  80. package/lib/Controllers/SchemaController.js +916 -422
  81. package/lib/Controllers/UserController.js +265 -180
  82. package/lib/Controllers/index.js +90 -125
  83. package/lib/Controllers/types.js +1 -1
  84. package/lib/Deprecator/Deprecations.js +30 -0
  85. package/lib/Deprecator/Deprecator.js +127 -0
  86. package/lib/Error.js +48 -0
  87. package/lib/GraphQL/ParseGraphQLSchema.js +375 -0
  88. package/lib/GraphQL/ParseGraphQLServer.js +214 -0
  89. package/lib/GraphQL/helpers/objectsMutations.js +30 -0
  90. package/lib/GraphQL/helpers/objectsQueries.js +246 -0
  91. package/lib/GraphQL/loaders/configMutations.js +87 -0
  92. package/lib/GraphQL/loaders/configQueries.js +79 -0
  93. package/lib/GraphQL/loaders/defaultGraphQLMutations.js +21 -0
  94. package/lib/GraphQL/loaders/defaultGraphQLQueries.js +23 -0
  95. package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1098 -0
  96. package/lib/GraphQL/loaders/defaultRelaySchema.js +53 -0
  97. package/lib/GraphQL/loaders/filesMutations.js +107 -0
  98. package/lib/GraphQL/loaders/functionsMutations.js +78 -0
  99. package/lib/GraphQL/loaders/parseClassMutations.js +268 -0
  100. package/lib/GraphQL/loaders/parseClassQueries.js +127 -0
  101. package/lib/GraphQL/loaders/parseClassTypes.js +493 -0
  102. package/lib/GraphQL/loaders/schemaDirectives.js +62 -0
  103. package/lib/GraphQL/loaders/schemaMutations.js +162 -0
  104. package/lib/GraphQL/loaders/schemaQueries.js +81 -0
  105. package/lib/GraphQL/loaders/schemaTypes.js +341 -0
  106. package/lib/GraphQL/loaders/usersMutations.js +433 -0
  107. package/lib/GraphQL/loaders/usersQueries.js +90 -0
  108. package/lib/GraphQL/parseGraphQLUtils.js +63 -0
  109. package/lib/GraphQL/transformers/className.js +14 -0
  110. package/lib/GraphQL/transformers/constraintType.js +53 -0
  111. package/lib/GraphQL/transformers/inputType.js +51 -0
  112. package/lib/GraphQL/transformers/mutation.js +274 -0
  113. package/lib/GraphQL/transformers/outputType.js +51 -0
  114. package/lib/GraphQL/transformers/query.js +237 -0
  115. package/lib/GraphQL/transformers/schemaFields.js +99 -0
  116. package/lib/KeyPromiseQueue.js +48 -0
  117. package/lib/LiveQuery/Client.js +25 -33
  118. package/lib/LiveQuery/Id.js +2 -5
  119. package/lib/LiveQuery/ParseCloudCodePublisher.js +26 -23
  120. package/lib/LiveQuery/ParseLiveQueryServer.js +560 -285
  121. package/lib/LiveQuery/ParsePubSub.js +7 -16
  122. package/lib/LiveQuery/ParseWebSocketServer.js +42 -39
  123. package/lib/LiveQuery/QueryTools.js +76 -15
  124. package/lib/LiveQuery/RequestSchema.js +111 -97
  125. package/lib/LiveQuery/SessionTokenCache.js +23 -36
  126. package/lib/LiveQuery/Subscription.js +8 -17
  127. package/lib/LiveQuery/equalObjects.js +2 -3
  128. package/lib/Options/Definitions.js +1355 -382
  129. package/lib/Options/docs.js +301 -62
  130. package/lib/Options/index.js +11 -1
  131. package/lib/Options/parsers.js +14 -10
  132. package/lib/Page.js +44 -0
  133. package/lib/ParseMessageQueue.js +6 -13
  134. package/lib/ParseServer.js +474 -235
  135. package/lib/ParseServerRESTController.js +102 -40
  136. package/lib/PromiseRouter.js +39 -50
  137. package/lib/Push/PushQueue.js +24 -30
  138. package/lib/Push/PushWorker.js +32 -56
  139. package/lib/Push/utils.js +22 -35
  140. package/lib/RestQuery.js +361 -139
  141. package/lib/RestWrite.js +713 -344
  142. package/lib/Routers/AggregateRouter.js +97 -71
  143. package/lib/Routers/AnalyticsRouter.js +8 -14
  144. package/lib/Routers/AudiencesRouter.js +16 -35
  145. package/lib/Routers/ClassesRouter.js +86 -72
  146. package/lib/Routers/CloudCodeRouter.js +28 -37
  147. package/lib/Routers/FeaturesRouter.js +22 -25
  148. package/lib/Routers/FilesRouter.js +266 -171
  149. package/lib/Routers/FunctionsRouter.js +87 -103
  150. package/lib/Routers/GlobalConfigRouter.js +94 -33
  151. package/lib/Routers/GraphQLRouter.js +41 -0
  152. package/lib/Routers/HooksRouter.js +43 -47
  153. package/lib/Routers/IAPValidationRouter.js +57 -70
  154. package/lib/Routers/InstallationsRouter.js +17 -25
  155. package/lib/Routers/LogsRouter.js +10 -25
  156. package/lib/Routers/PagesRouter.js +647 -0
  157. package/lib/Routers/PublicAPIRouter.js +104 -112
  158. package/lib/Routers/PurgeRouter.js +19 -29
  159. package/lib/Routers/PushRouter.js +14 -28
  160. package/lib/Routers/RolesRouter.js +7 -14
  161. package/lib/Routers/SchemasRouter.js +63 -42
  162. package/lib/Routers/SecurityRouter.js +34 -0
  163. package/lib/Routers/SessionsRouter.js +25 -38
  164. package/lib/Routers/UsersRouter.js +463 -190
  165. package/lib/SchemaMigrations/DefinedSchemas.js +379 -0
  166. package/lib/SchemaMigrations/Migrations.js +30 -0
  167. package/lib/Security/Check.js +109 -0
  168. package/lib/Security/CheckGroup.js +44 -0
  169. package/lib/Security/CheckGroups/CheckGroupDatabase.js +44 -0
  170. package/lib/Security/CheckGroups/CheckGroupServerConfig.js +96 -0
  171. package/lib/Security/CheckGroups/CheckGroups.js +21 -0
  172. package/lib/Security/CheckRunner.js +213 -0
  173. package/lib/SharedRest.js +29 -0
  174. package/lib/StatusHandler.js +96 -93
  175. package/lib/TestUtils.js +70 -14
  176. package/lib/Utils.js +468 -0
  177. package/lib/batch.js +74 -40
  178. package/lib/cache.js +8 -8
  179. package/lib/cli/definitions/parse-live-query-server.js +4 -3
  180. package/lib/cli/definitions/parse-server.js +4 -3
  181. package/lib/cli/parse-live-query-server.js +9 -17
  182. package/lib/cli/parse-server.js +49 -47
  183. package/lib/cli/utils/commander.js +20 -29
  184. package/lib/cli/utils/runner.js +31 -32
  185. package/lib/cloud-code/Parse.Cloud.js +711 -36
  186. package/lib/cloud-code/Parse.Server.js +21 -0
  187. package/lib/cryptoUtils.js +6 -11
  188. package/lib/defaults.js +21 -15
  189. package/lib/deprecated.js +1 -1
  190. package/lib/index.js +78 -67
  191. package/lib/logger.js +12 -20
  192. package/lib/middlewares.js +484 -160
  193. package/lib/password.js +10 -6
  194. package/lib/request.js +175 -0
  195. package/lib/requiredParameter.js +4 -3
  196. package/lib/rest.js +157 -82
  197. package/lib/triggers.js +627 -185
  198. package/lib/vendor/README.md +3 -3
  199. package/lib/vendor/mongodbUrl.js +224 -137
  200. package/package.json +135 -57
  201. package/postinstall.js +38 -50
  202. package/public_html/invalid_verification_link.html +3 -3
  203. package/types/@types/@parse/fs-files-adapter/index.d.ts +5 -0
  204. package/types/@types/deepcopy/index.d.ts +5 -0
  205. package/types/LiveQuery/ParseLiveQueryServer.d.ts +40 -0
  206. package/types/Options/index.d.ts +301 -0
  207. package/types/ParseServer.d.ts +65 -0
  208. package/types/eslint.config.mjs +30 -0
  209. package/types/index.d.ts +21 -0
  210. package/types/logger.d.ts +2 -0
  211. package/types/tests.ts +44 -0
  212. package/types/tsconfig.json +24 -0
  213. package/CHANGELOG.md +0 -1246
  214. package/PATENTS +0 -37
  215. package/bin/dev +0 -37
  216. package/lib/.DS_Store +0 -0
  217. package/lib/Adapters/Auth/common.js +0 -2
  218. package/lib/Adapters/Auth/facebookaccountkit.js +0 -69
  219. package/lib/Controllers/SchemaCache.js +0 -97
  220. package/lib/LiveQuery/.DS_Store +0 -0
  221. package/lib/cli/utils/parsers.js +0 -77
  222. package/lib/cloud-code/.DS_Store +0 -0
  223. package/lib/cloud-code/HTTPResponse.js +0 -57
  224. package/lib/cloud-code/Untitled-1 +0 -123
  225. package/lib/cloud-code/httpRequest.js +0 -102
  226. package/lib/cloud-code/team.html +0 -123
  227. package/lib/graphql/ParseClass.js +0 -234
  228. package/lib/graphql/Schema.js +0 -197
  229. package/lib/graphql/index.js +0 -1
  230. package/lib/graphql/types/ACL.js +0 -35
  231. package/lib/graphql/types/Date.js +0 -25
  232. package/lib/graphql/types/File.js +0 -24
  233. package/lib/graphql/types/GeoPoint.js +0 -35
  234. package/lib/graphql/types/JSONObject.js +0 -30
  235. package/lib/graphql/types/NumberInput.js +0 -43
  236. package/lib/graphql/types/NumberQuery.js +0 -42
  237. package/lib/graphql/types/Pointer.js +0 -35
  238. package/lib/graphql/types/QueryConstraint.js +0 -61
  239. package/lib/graphql/types/StringQuery.js +0 -39
  240. package/lib/graphql/types/index.js +0 -110
@@ -1,100 +1,126 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.AggregateRouter = undefined;
7
-
8
- var _ClassesRouter = require('./ClassesRouter');
9
-
10
- var _ClassesRouter2 = _interopRequireDefault(_ClassesRouter);
11
-
12
- var _rest = require('../rest');
13
-
14
- var _rest2 = _interopRequireDefault(_rest);
15
-
16
- var _middlewares = require('../middlewares');
17
-
18
- var middleware = _interopRequireWildcard(_middlewares);
19
-
20
- var _node = require('parse/node');
21
-
22
- var _node2 = _interopRequireDefault(_node);
23
-
24
- var _UsersRouter = require('./UsersRouter');
25
-
26
- var _UsersRouter2 = _interopRequireDefault(_UsersRouter);
27
-
28
- 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; } }
29
-
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
- const BASE_KEYS = ['where', 'distinct'];
33
-
34
- const PIPELINE_KEYS = ['addFields', 'bucket', 'bucketAuto', 'collStats', 'count', 'currentOp', 'facet', 'geoNear', 'graphLookup', 'group', 'indexStats', 'limit', 'listLocalSessions', 'listSessions', 'lookup', 'match', 'out', 'project', 'redact', 'replaceRoot', 'sample', 'skip', 'sort', 'sortByCount', 'unwind'];
35
-
36
- const ALLOWED_KEYS = [...BASE_KEYS, ...PIPELINE_KEYS];
37
-
38
- class AggregateRouter extends _ClassesRouter2.default {
39
-
40
- handleFind(req) {
41
- const body = Object.assign(req.body, _ClassesRouter2.default.JSONFromQuery(req.query));
6
+ exports.default = exports.AggregateRouter = void 0;
7
+ var _node = _interopRequireDefault(require("parse/node"));
8
+ var middleware = _interopRequireWildcard(require("../middlewares"));
9
+ var _rest = _interopRequireDefault(require("../rest"));
10
+ var _ClassesRouter = _interopRequireDefault(require("./ClassesRouter"));
11
+ var _UsersRouter = _interopRequireDefault(require("./UsersRouter"));
12
+ 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); }
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ class AggregateRouter extends _ClassesRouter.default {
15
+ async handleFind(req) {
16
+ const body = Object.assign(req.body || {}, _ClassesRouter.default.JSONFromQuery(req.query));
42
17
  const options = {};
43
- let pipeline = [];
44
-
45
- if (Array.isArray(body)) {
46
- pipeline = body.map(stage => {
47
- const stageName = Object.keys(stage)[0];
48
- return this.transformStage(stageName, stage);
49
- });
50
- } else {
51
- const stages = [];
52
- for (const stageName in body) {
53
- stages.push(this.transformStage(stageName, body));
54
- }
55
- pipeline = stages;
56
- }
57
18
  if (body.distinct) {
58
19
  options.distinct = String(body.distinct);
59
20
  }
60
- options.pipeline = pipeline;
21
+ if (body.hint) {
22
+ options.hint = body.hint;
23
+ delete body.hint;
24
+ }
25
+ if (body.explain) {
26
+ options.explain = body.explain;
27
+ delete body.explain;
28
+ }
29
+ if (body.comment) {
30
+ options.comment = body.comment;
31
+ delete body.comment;
32
+ }
33
+ if (body.readPreference) {
34
+ options.readPreference = body.readPreference;
35
+ delete body.readPreference;
36
+ }
37
+ options.pipeline = AggregateRouter.getPipeline(body);
61
38
  if (typeof body.where === 'string') {
62
39
  body.where = JSON.parse(body.where);
63
40
  }
64
- return _rest2.default.find(req.config, req.auth, this.className(req), body.where, options, req.info.clientSDK).then(response => {
41
+ try {
42
+ const response = await _rest.default.find(req.config, req.auth, this.className(req), body.where, options, req.info.clientSDK, req.info.context);
65
43
  for (const result of response.results) {
66
44
  if (typeof result === 'object') {
67
- _UsersRouter2.default.removeHiddenProperties(result);
45
+ _UsersRouter.default.removeHiddenProperties(result);
68
46
  }
69
47
  }
70
- return { response };
71
- });
48
+ return {
49
+ response
50
+ };
51
+ } catch (e) {
52
+ throw new _node.default.Error(_node.default.Error.INVALID_QUERY, e.message);
53
+ }
72
54
  }
73
55
 
74
- transformStage(stageName, stage) {
75
- if (ALLOWED_KEYS.indexOf(stageName) === -1) {
76
- throw new _node2.default.Error(_node2.default.Error.INVALID_QUERY, `Invalid parameter for query: ${stageName}`);
56
+ /* Builds a pipeline from the body. Originally the body could be passed as a single object,
57
+ * and now we support many options.
58
+ *
59
+ * Array
60
+ *
61
+ * body: [{
62
+ * group: { objectId: '$name' },
63
+ * }]
64
+ *
65
+ * Object
66
+ *
67
+ * body: {
68
+ * group: { objectId: '$name' },
69
+ * }
70
+ *
71
+ *
72
+ * Pipeline Operator with an Array or an Object
73
+ *
74
+ * body: {
75
+ * pipeline: {
76
+ * $group: { objectId: '$name' },
77
+ * }
78
+ * }
79
+ *
80
+ */
81
+ static getPipeline(body) {
82
+ let pipeline = body.pipeline || body;
83
+ if (!Array.isArray(pipeline)) {
84
+ pipeline = Object.keys(pipeline).filter(key => pipeline[key] !== undefined).map(key => {
85
+ return {
86
+ [key]: pipeline[key]
87
+ };
88
+ });
89
+ }
90
+ return pipeline.map(stage => {
91
+ const keys = Object.keys(stage);
92
+ if (keys.length !== 1) {
93
+ throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Pipeline stages should only have one key but found ${keys.join(', ')}.`);
94
+ }
95
+ return AggregateRouter.transformStage(keys[0], stage);
96
+ });
97
+ }
98
+ static transformStage(stageName, stage) {
99
+ const skipKeys = ['distinct', 'where'];
100
+ if (skipKeys.includes(stageName)) {
101
+ return;
102
+ }
103
+ if (stageName[0] !== '$') {
104
+ throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Invalid aggregate stage '${stageName}'.`);
77
105
  }
78
- if (stageName === 'group') {
79
- if (stage[stageName].hasOwnProperty('_id')) {
80
- throw new _node2.default.Error(_node2.default.Error.INVALID_QUERY, `Invalid parameter for query: group. Please use objectId instead of _id`);
106
+ if (stageName === '$group') {
107
+ if (Object.prototype.hasOwnProperty.call(stage[stageName], 'objectId')) {
108
+ throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Cannot use 'objectId' in aggregation stage $group.`);
81
109
  }
82
- if (!stage[stageName].hasOwnProperty('objectId')) {
83
- throw new _node2.default.Error(_node2.default.Error.INVALID_QUERY, `Invalid parameter for query: group. objectId is required`);
110
+ if (!Object.prototype.hasOwnProperty.call(stage[stageName], '_id')) {
111
+ throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Invalid parameter for query: group. Missing key _id`);
84
112
  }
85
- stage[stageName]._id = stage[stageName].objectId;
86
- delete stage[stageName].objectId;
87
113
  }
88
- return { [`$${stageName}`]: stage[stageName] };
114
+ return {
115
+ [stageName]: stage[stageName]
116
+ };
89
117
  }
90
-
91
118
  mountRoutes() {
92
119
  this.route('GET', '/aggregate/:className', middleware.promiseEnforceMasterKeyAccess, req => {
93
120
  return this.handleFind(req);
94
121
  });
95
122
  }
96
123
  }
97
-
98
124
  exports.AggregateRouter = AggregateRouter;
99
- exports.default = AggregateRouter;
100
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL0FnZ3JlZ2F0ZVJvdXRlci5qcyJdLCJuYW1lcyI6WyJtaWRkbGV3YXJlIiwiQkFTRV9LRVlTIiwiUElQRUxJTkVfS0VZUyIsIkFMTE9XRURfS0VZUyIsIkFnZ3JlZ2F0ZVJvdXRlciIsIkNsYXNzZXNSb3V0ZXIiLCJoYW5kbGVGaW5kIiwicmVxIiwiYm9keSIsIk9iamVjdCIsImFzc2lnbiIsIkpTT05Gcm9tUXVlcnkiLCJxdWVyeSIsIm9wdGlvbnMiLCJwaXBlbGluZSIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsInN0YWdlIiwic3RhZ2VOYW1lIiwia2V5cyIsInRyYW5zZm9ybVN0YWdlIiwic3RhZ2VzIiwicHVzaCIsImRpc3RpbmN0IiwiU3RyaW5nIiwid2hlcmUiLCJKU09OIiwicGFyc2UiLCJyZXN0IiwiZmluZCIsImNvbmZpZyIsImF1dGgiLCJjbGFzc05hbWUiLCJpbmZvIiwiY2xpZW50U0RLIiwidGhlbiIsInJlc3BvbnNlIiwicmVzdWx0IiwicmVzdWx0cyIsIlVzZXJzUm91dGVyIiwicmVtb3ZlSGlkZGVuUHJvcGVydGllcyIsImluZGV4T2YiLCJQYXJzZSIsIkVycm9yIiwiSU5WQUxJRF9RVUVSWSIsImhhc093blByb3BlcnR5IiwiX2lkIiwib2JqZWN0SWQiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7O0lBQVlBLFU7O0FBQ1o7Ozs7QUFDQTs7Ozs7Ozs7QUFFQSxNQUFNQyxZQUFZLENBQUMsT0FBRCxFQUFVLFVBQVYsQ0FBbEI7O0FBRUEsTUFBTUMsZ0JBQWdCLENBQ3BCLFdBRG9CLEVBRXBCLFFBRm9CLEVBR3BCLFlBSG9CLEVBSXBCLFdBSm9CLEVBS3BCLE9BTG9CLEVBTXBCLFdBTm9CLEVBT3BCLE9BUG9CLEVBUXBCLFNBUm9CLEVBU3BCLGFBVG9CLEVBVXBCLE9BVm9CLEVB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QUksQ0FBQzNCLE1BQU1DLFNBQU4sRUFBaUIyQixjQUFqQixDQUFnQyxVQUFoQyxDQUFMLEVBQWtEO0FBQ2hELGNBQU0sSUFBSUgsZUFBTUMsS0FBVixDQUNKRCxlQUFNQyxLQUFOLENBQVlDLGFBRFIsRUFFSCwwREFGRyxDQUFOO0FBSUQ7QUFDRDNCLFlBQU1DLFNBQU4sRUFBaUI0QixHQUFqQixHQUF1QjdCLE1BQU1DLFNBQU4sRUFBaUI2QixRQUF4QztBQUNBLGFBQU85QixNQUFNQyxTQUFOLEVBQWlCNkIsUUFBeEI7QUFDRDtBQUNELFdBQU8sRUFBRSxDQUFFLElBQUc3QixTQUFVLEVBQWYsR0FBbUJELE1BQU1DLFNBQU4sQ0FBckIsRUFBUDtBQUNEOztBQUVEOEIsZ0JBQWM7QUFDWixTQUFLQyxLQUFMLENBQVcsS0FBWCxFQUFpQix1QkFBakIsRUFBMENsRCxXQUFXbUQsNkJBQXJELEVBQW9GNUMsT0FBTztBQUFFLGFBQU8sS0FBS0QsVUFBTCxDQUFnQkMsR0FBaEIsQ0FBUDtBQUE4QixLQUEzSDtBQUNEO0FBaEVnRDs7UUFBdENILGUsR0FBQUEsZTtrQkFtRUVBLGUiLCJmaWxlIjoiQWdncmVnYXRlUm91dGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENsYXNzZXNSb3V0ZXIgZnJvbSAnLi9DbGFzc2VzUm91dGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgUGFyc2UgICAgICAgICBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCBVc2Vyc1JvdXRlciAgIGZyb20gJy4vVXNlcnNSb3V0ZXInO1xuXG5jb25zdCBCQVNFX0tFWVMgPSBbJ3doZXJlJywgJ2Rpc3RpbmN0J107XG5cbmNvbnN0IFBJUEVMSU5FX0tFWVMgPSBbXG4gICdhZGRGaWVsZHMnLFxuICAnYnVja2V0JyxcbiAgJ2J1Y2tldEF1dG8nLFxuICAnY29sbFN0YXRzJyxcbiAgJ2NvdW50JyxcbiAgJ2N1cnJlbnRPcCcsXG4gICdmYWNldCcsXG4gICdnZW9OZWFyJyxcbiAgJ2dyYXBoTG9va3VwJyxcbiAgJ2dyb3VwJyxcbiAgJ2luZGV4U3RhdHMnLFxuICAnbGltaXQnLFxuICAnbGlzdExvY2FsU2Vzc2lvbnMnLFxuICAnbGlzdFNlc3Npb25zJyxcbiAgJ2xvb2t1cCcsXG4gICdtYXRjaCcsXG4gICdvdXQnLFxuICAncHJvamVjdCcsXG4gICdyZWRhY3QnLFxuICAncmVwbGFjZVJvb3QnLFxuICAnc2FtcGxlJyxcbiAgJ3NraXAnLFxuICAnc29ydCcsXG4gICdzb3J0QnlDb3VudCcsXG4gICd1bndpbmQnLFxuXTtcblxuY29uc3QgQUxMT1dFRF9LRVlTID0gWy4uLkJBU0VfS0VZUywgLi4uUElQRUxJTkVfS0VZU107XG5cbmV4cG9ydCBjbGFzcyBBZ2dyZWdhdGVSb3V0ZXIgZXh0ZW5kcyBDbGFzc2VzUm91dGVyIHtcblxuICBoYW5kbGVGaW5kKHJlcSkge1xuICAgIGNvbnN0IGJvZHkgPSBPYmplY3QuYXNzaWduKHJlcS5ib2R5LCBDbGFzc2VzUm91dGVyLkpTT05Gcm9tUXVlcnkocmVxLnF1ZXJ5KSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGxldCBwaXBlbGluZSA9IFtdO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYm9keSkpIHtcbiAgICAgIHBpcGVsaW5lID0gYm9keS5tYXAoKHN0YWdlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YWdlTmFtZSA9IE9iamVjdC5rZXlzKHN0YWdlKVswXTtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtU3RhZ2Uoc3RhZ2VOYW1lLCBzdGFnZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RhZ2VzID0gW107XG4gICAgICBmb3IgKGNvbnN0IHN0YWdlTmFtZSBpbiBib2R5KSB7XG4gICAgICAgIHN0YWdlcy5wdXNoKHRoaXMudHJhbnNmb3JtU3RhZ2Uoc3RhZ2VOYW1lLCBib2R5KSk7XG4gICAgICB9XG4gICAgICBwaXBlbGluZSA9IHN0YWdlcztcbiAgICB9XG4gICAgaWYgKGJvZHkuZGlzdGluY3QpIHtcbiAgICAgIG9wdGlvbnMuZGlzdGluY3QgPSBTdHJpbmcoYm9keS5kaXN0aW5jdCk7XG4gICAgfVxuICAgIG9wdGlvbnMucGlwZWxpbmUgPSBwaXBlbGluZTtcbiAgICBpZiAodHlwZW9mIGJvZHkud2hlcmUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBib2R5LndoZXJlID0gSlNPTi5wYXJzZShib2R5LndoZXJlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3QuZmluZChyZXEuY29uZmlnLCByZXEuYXV0aCwgdGhpcy5jbGFzc05hbWUocmVxKSwgYm9keS53aGVyZSwgb3B0aW9ucywgcmVxLmluZm8uY2xpZW50U0RLKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgZm9yKGNvbnN0IHJlc3VsdCBvZiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICAgIGlmKHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgVXNlcnNSb3V0ZXIucmVtb3ZlSGlkZGVuUHJvcGVydGllcyhyZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyByZXNwb25zZSB9O1xuICAgIH0pO1xuICB9XG5cbiAgdHJhbnNmb3JtU3RhZ2Uoc3RhZ2VOYW1lLCBzdGFnZSkge1xuICAgIGlmIChBTExPV0VEX0tFWVMuaW5kZXhPZihzdGFnZU5hbWUpID09PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5JTlZBTElEX1FVRVJZLFxuICAgICAgICBgSW52YWxpZCBwYXJhbWV0ZXIgZm9yIHF1ZXJ5OiAke3N0YWdlTmFtZX1gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoc3RhZ2VOYW1lID09PSAnZ3JvdXAnKSB7XG4gICAgICBpZiAoc3RhZ2Vbc3RhZ2VOYW1lXS5oYXNPd25Qcm9wZXJ0eSgnX2lkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYEludmFsaWQgcGFyYW1ldGVyIGZvciBxdWVyeTogZ3JvdXAuIFBsZWFzZSB1c2Ugb2JqZWN0SWQgaW5zdGVhZCBvZiBfaWRgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoIXN0YWdlW3N0YWdlTmFtZV0uaGFzT3duUHJvcGVydHkoJ29iamVjdElkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYEludmFsaWQgcGFyYW1ldGVyIGZvciBxdWVyeTogZ3JvdXAuIG9iamVjdElkIGlzIHJlcXVpcmVkYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgc3RhZ2Vbc3RhZ2VOYW1lXS5faWQgPSBzdGFnZVtzdGFnZU5hbWVdLm9iamVjdElkO1xuICAgICAgZGVsZXRlIHN0YWdlW3N0YWdlTmFtZV0ub2JqZWN0SWQ7XG4gICAgfVxuICAgIHJldHVybiB7IFtgJCR7c3RhZ2VOYW1lfWBdOiBzdGFnZVtzdGFnZU5hbWVdIH07XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCcvYWdncmVnYXRlLzpjbGFzc05hbWUnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCByZXEgPT4geyByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7IH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFnZ3JlZ2F0ZVJvdXRlcjtcbiJdfQ==
125
+ var _default = exports.default = AggregateRouter;
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3Jlc3QiLCJfQ2xhc3Nlc1JvdXRlciIsIl9Vc2Vyc1JvdXRlciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkFnZ3JlZ2F0ZVJvdXRlciIsIkNsYXNzZXNSb3V0ZXIiLCJoYW5kbGVGaW5kIiwicmVxIiwiYm9keSIsImFzc2lnbiIsIkpTT05Gcm9tUXVlcnkiLCJxdWVyeSIsIm9wdGlvbnMiLCJkaXN0aW5jdCIsIlN0cmluZyIsImhpbnQiLCJleHBsYWluIiwiY29tbWVudCIsInJlYWRQcmVmZXJlbmNlIiwicGlwZWxpbmUiLCJnZXRQaXBlbGluZSIsIndoZXJlIiwiSlNPTiIsInBhcnNlIiwicmVzcG9uc2UiLCJyZXN0IiwiZmluZCIsImNvbmZpZyIsImF1dGgiLCJjbGFzc05hbWUiLCJpbmZvIiwiY2xpZW50U0RLIiwiY29udGV4dCIsInJlc3VsdCIsInJlc3VsdHMiLCJVc2Vyc1JvdXRlciIsInJlbW92ZUhpZGRlblByb3BlcnRpZXMiLCJQYXJzZSIsIkVycm9yIiwiSU5WQUxJRF9RVUVSWSIsIm1lc3NhZ2UiLCJBcnJheSIsImlzQXJyYXkiLCJrZXlzIiwiZmlsdGVyIiwia2V5IiwidW5kZWZpbmVkIiwibWFwIiwic3RhZ2UiLCJsZW5ndGgiLCJqb2luIiwidHJhbnNmb3JtU3RhZ2UiLCJzdGFnZU5hbWUiLCJza2lwS2V5cyIsImluY2x1ZGVzIiwicHJvdG90eXBlIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiZXhwb3J0cyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvQWdncmVnYXRlUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IHJlc3QgZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuaW1wb3J0IFVzZXJzUm91dGVyIGZyb20gJy4vVXNlcnNSb3V0ZXInO1xuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlUm91dGVyIGV4dGVuZHMgQ2xhc3Nlc1JvdXRlciB7XG4gIGFzeW5jIGhhbmRsZUZpbmQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHkgfHwge30sIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge307XG4gICAgaWYgKGJvZHkuZGlzdGluY3QpIHtcbiAgICAgIG9wdGlvbnMuZGlzdGluY3QgPSBTdHJpbmcoYm9keS5kaXN0aW5jdCk7XG4gICAgfVxuICAgIGlmIChib2R5LmhpbnQpIHtcbiAgICAgIG9wdGlvbnMuaGludCA9IGJvZHkuaGludDtcbiAgICAgIGRlbGV0ZSBib2R5LmhpbnQ7XG4gICAgfVxuICAgIGlmIChib2R5LmV4cGxhaW4pIHtcbiAgICAgIG9wdGlvbnMuZXhwbGFpbiA9IGJvZHkuZXhwbGFpbjtcbiAgICAgIGRlbGV0ZSBib2R5LmV4cGxhaW47XG4gICAgfVxuICAgIGlmIChib2R5LmNvbW1lbnQpIHtcbiAgICAgIG9wdGlvbnMuY29tbWVudCA9IGJvZHkuY29tbWVudDtcbiAgICAgIGRlbGV0ZSBib2R5LmNvbW1lbnQ7XG4gICAgfVxuICAgIGlmIChib2R5LnJlYWRQcmVmZXJlbmNlKSB7XG4gICAgICBvcHRpb25zLnJlYWRQcmVmZXJlbmNlID0gYm9keS5yZWFkUHJlZmVyZW5jZTtcbiAgICAgIGRlbGV0ZSBib2R5LnJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBvcHRpb25zLnBpcGVsaW5lID0gQWdncmVnYXRlUm91dGVyLmdldFBpcGVsaW5lKGJvZHkpO1xuICAgIGlmICh0eXBlb2YgYm9keS53aGVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJvZHkud2hlcmUgPSBKU09OLnBhcnNlKGJvZHkud2hlcmUpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXN0LmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIHJlcS5hdXRoLFxuICAgICAgICB0aGlzLmNsYXNzTmFtZShyZXEpLFxuICAgICAgICBib2R5LndoZXJlLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIFVzZXJzUm91dGVyLnJlbW92ZUhpZGRlblByb3BlcnRpZXMocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgcmVzcG9uc2UgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSwgZS5tZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICAvKiBCdWlsZHMgYSBwaXBlbGluZSBmcm9tIHRoZSBib2R5LiBPcmlnaW5hbGx5IHRoZSBib2R5IGNvdWxkIGJlIHBhc3NlZCBhcyBhIHNpbmdsZSBvYmplY3QsXG4gICAqIGFuZCBub3cgd2Ugc3VwcG9ydCBtYW55IG9wdGlvbnMuXG4gICAqXG4gICAqIEFycmF5XG4gICAqXG4gICAqIGJvZHk6IFt7XG4gICAqICAgZ3JvdXA6IHsgb2JqZWN0SWQ6ICckbmFtZScgfSxcbiAgICogfV1cbiAgICpcbiAgICogT2JqZWN0XG4gICAqXG4gICAqIGJvZHk6IHtcbiAgICogICBncm91cDogeyBvYmplY3RJZDogJyRuYW1lJyB9LFxuICAgKiB9XG4gICAqXG4gICAqXG4gICAqIFBpcGVsaW5lIE9wZXJhdG9yIHdpdGggYW4gQXJyYXkgb3IgYW4gT2JqZWN0XG4gICAqXG4gICAqIGJvZHk6IHtcbiAgICogICBwaXBlbGluZToge1xuICAgKiAgICAgJGdyb3VwOiB7IG9iamVjdElkOiAnJG5hbWUnIH0sXG4gICAqICAgfVxuICAgKiB9XG4gICAqXG4gICAqL1xuICBzdGF0aWMgZ2V0UGlwZWxpbmUoYm9keSkge1xuICAgIGxldCBwaXBlbGluZSA9IGJvZHkucGlwZWxpbmUgfHwgYm9keTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGlwZWxpbmUpKSB7XG4gICAgICBwaXBlbGluZSA9IE9iamVjdC5rZXlzKHBpcGVsaW5lKVxuICAgICAgICAuZmlsdGVyKGtleSA9PiBwaXBlbGluZVtrZXldICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgICAgICByZXR1cm4geyBba2V5XTogcGlwZWxpbmVba2V5XSB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGlwZWxpbmUubWFwKHN0YWdlID0+IHtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzdGFnZSk7XG4gICAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYFBpcGVsaW5lIHN0YWdlcyBzaG91bGQgb25seSBoYXZlIG9uZSBrZXkgYnV0IGZvdW5kICR7a2V5cy5qb2luKCcsICcpfS5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gQWdncmVnYXRlUm91dGVyLnRyYW5zZm9ybVN0YWdlKGtleXNbMF0sIHN0YWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc2Zvcm1TdGFnZShzdGFnZU5hbWUsIHN0YWdlKSB7XG4gICAgY29uc3Qgc2tpcEtleXMgPSBbJ2Rpc3RpbmN0JywgJ3doZXJlJ107XG4gICAgaWYgKHNraXBLZXlzLmluY2x1ZGVzKHN0YWdlTmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHN0YWdlTmFtZVswXSAhPT0gJyQnKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSwgYEludmFsaWQgYWdncmVnYXRlIHN0YWdlICcke3N0YWdlTmFtZX0nLmApO1xuICAgIH1cbiAgICBpZiAoc3RhZ2VOYW1lID09PSAnJGdyb3VwJykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGFnZVtzdGFnZU5hbWVdLCAnb2JqZWN0SWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgICAgUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSxcbiAgICAgICAgICBgQ2Fubm90IHVzZSAnb2JqZWN0SWQnIGluIGFnZ3JlZ2F0aW9uIHN0YWdlICRncm91cC5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGFnZVtzdGFnZU5hbWVdLCAnX2lkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYEludmFsaWQgcGFyYW1ldGVyIGZvciBxdWVyeTogZ3JvdXAuIE1pc3Npbmcga2V5IF9pZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgW3N0YWdlTmFtZV06IHN0YWdlW3N0YWdlTmFtZV0gfTtcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvYWdncmVnYXRlLzpjbGFzc05hbWUnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRmluZChyZXEpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFnZ3JlZ2F0ZVJvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQXdDLFNBQUFFLHdCQUFBSSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTix1QkFBQSxZQUFBQSxDQUFBSSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFP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
@@ -1,32 +1,26 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.AnalyticsRouter = undefined;
7
-
8
- var _PromiseRouter = require('../PromiseRouter');
9
-
10
- var _PromiseRouter2 = _interopRequireDefault(_PromiseRouter);
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
+ exports.AnalyticsRouter = void 0;
7
+ var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // AnalyticsRouter.js
13
10
 
14
11
  function appOpened(req) {
15
12
  const analyticsController = req.config.analyticsController;
16
13
  return analyticsController.appOpened(req);
17
- } // AnalyticsRouter.js
18
-
19
-
14
+ }
20
15
  function trackEvent(req) {
21
16
  const analyticsController = req.config.analyticsController;
22
17
  return analyticsController.trackEvent(req);
23
18
  }
24
-
25
- class AnalyticsRouter extends _PromiseRouter2.default {
19
+ class AnalyticsRouter extends _PromiseRouter.default {
26
20
  mountRoutes() {
27
21
  this.route('POST', '/events/AppOpened', appOpened);
28
22
  this.route('POST', '/events/:eventName', trackEvent);
29
23
  }
30
24
  }
31
25
  exports.AnalyticsRouter = AnalyticsRouter;
32
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL0FuYWx5dGljc1JvdXRlci5qcyJdLCJuYW1lcyI6WyJhcHBPcGVuZWQiLCJyZXEiLCJhbmFseXRpY3NDb250cm9sbGVyIiwiY29uZmlnIiwidHJhY2tFdmVudCIsIkFuYWx5dGljc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7Ozs7OztBQUVBLFNBQVNBLFNBQVQsQ0FBbUJDLEdBQW5CLEVBQXdCO0FBQ3RCLFFBQU1DLHNCQUFzQkQsSUFBSUUsTUFBSixDQUFXRCxtQkFBdkM7QUFDQSxTQUFPQSxvQkFBb0JGLFNBQXBCLENBQThCQyxHQUE5QixDQUFQO0FBQ0QsQyxDQU5EOzs7QUFRQSxTQUFTRyxVQUFULENBQW9CSCxHQUFwQixFQUF5QjtBQUN2QixRQUFNQyxzQkFBc0JELElBQUlFLE1BQUosQ0FBV0QsbUJBQXZDO0FBQ0EsU0FBT0Esb0JBQW9CRSxVQUFwQixDQUErQkgsR0FBL0IsQ0FBUDtBQUNEOztBQUdNLE1BQU1JLGVBQU4sU0FBOEJDLHVCQUE5QixDQUE0QztBQUNqREMsZ0JBQWM7QUFDWixTQUFLQyxLQUFMLENBQVcsTUFBWCxFQUFrQixtQkFBbEIsRUFBdUNSLFNBQXZDO0FBQ0EsU0FBS1EsS0FBTCxDQUFXLE1BQVgsRUFBa0Isb0JBQWxCLEVBQXdDSixVQUF4QztBQUNEO0FBSmdEO1FBQXRDQyxlLEdBQUFBLGUiLCJmaWxlIjoiQW5hbHl0aWNzUm91dGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5hbHl0aWNzUm91dGVyLmpzXG5pbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcblxuZnVuY3Rpb24gYXBwT3BlbmVkKHJlcSkge1xuICBjb25zdCBhbmFseXRpY3NDb250cm9sbGVyID0gcmVxLmNvbmZpZy5hbmFseXRpY3NDb250cm9sbGVyO1xuICByZXR1cm4gYW5hbHl0aWNzQ29udHJvbGxlci5hcHBPcGVuZWQocmVxKTtcbn1cblxuZnVuY3Rpb24gdHJhY2tFdmVudChyZXEpIHtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IHJlcS5jb25maWcuYW5hbHl0aWNzQ29udHJvbGxlcjtcbiAgcmV0dXJuIGFuYWx5dGljc0NvbnRyb2xsZXIudHJhY2tFdmVudChyZXEpO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBBbmFseXRpY3NSb3V0ZXIgZXh0ZW5kcyBQcm9taXNlUm91dGVyIHtcbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsJy9ldmVudHMvQXBwT3BlbmVkJywgYXBwT3BlbmVkKTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywnL2V2ZW50cy86ZXZlbnROYW1lJywgdHJhY2tFdmVudCk7XG4gIH1cbn1cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiYXBwT3BlbmVkIiwicmVxIiwiYW5hbHl0aWNzQ29udHJvbGxlciIsImNvbmZpZyIsInRyYWNrRXZlbnQiLCJBbmFseXRpY3NSb3V0ZXIiLCJQcm9taXNlUm91dGVyIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9BbmFseXRpY3NSb3V0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5hbHl0aWNzUm91dGVyLmpzXG5pbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcblxuZnVuY3Rpb24gYXBwT3BlbmVkKHJlcSkge1xuICBjb25zdCBhbmFseXRpY3NDb250cm9sbGVyID0gcmVxLmNvbmZpZy5hbmFseXRpY3NDb250cm9sbGVyO1xuICByZXR1cm4gYW5hbHl0aWNzQ29udHJvbGxlci5hcHBPcGVuZWQocmVxKTtcbn1cblxuZnVuY3Rpb24gdHJhY2tFdmVudChyZXEpIHtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IHJlcS5jb25maWcuYW5hbHl0aWNzQ29udHJvbGxlcjtcbiAgcmV0dXJuIGFuYWx5dGljc0NvbnRyb2xsZXIudHJhY2tFdmVudChyZXEpO1xufVxuXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL2V2ZW50cy9BcHBPcGVuZWQnLCBhcHBPcGVuZWQpO1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL2V2ZW50cy86ZXZlbnROYW1lJywgdHJhY2tFdmVudCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQTZDLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRDdDOztBQUdBLFNBQVNHLFNBQVNBLENBQUNDLEdBQUcsRUFBRTtFQUN0QixNQUFNQyxtQkFBbUIsR0FBR0QsR0FBRyxDQUFDRSxNQUFNLENBQUNELG1CQUFtQjtFQUMxRCxPQUFPQSxtQkFBbUIsQ0FBQ0YsU0FBUyxDQUFDQyxHQUFHLENBQUM7QUFDM0M7QUFFQSxTQUFTRyxVQUFVQSxDQUFDSCxHQUFHLEVBQUU7RUFDdkIsTUFBTUMsbUJBQW1CLEdBQUdELEdBQUcsQ0FBQ0UsTUFBTSxDQUFDRCxtQkFBbUI7RUFDMUQsT0FBT0EsbUJBQW1CLENBQUNFLFVBQVUsQ0FBQ0gsR0FBRyxDQUFDO0FBQzVDO0FBRU8sTUFBTUksZUFBZSxTQUFTQyxzQkFBYSxDQUFDO0VBQ2pEQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixJQUFJLENBQUNDLEtBQUssQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUVSLFNBQVMsQ0FBQztJQUNsRCxJQUFJLENBQUNRLEtBQUssQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUVKLFVBQVUsQ0FBQztFQUN0RDtBQUNGO0FBQUNLLE9BQUEsQ0FBQUosZUFBQSxHQUFBQSxlQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1,54 +1,36 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.AudiencesRouter = undefined;
7
-
8
- var _ClassesRouter = require('./ClassesRouter');
9
-
10
- var _ClassesRouter2 = _interopRequireDefault(_ClassesRouter);
11
-
12
- var _rest = require('../rest');
13
-
14
- var _rest2 = _interopRequireDefault(_rest);
15
-
16
- var _middlewares = require('../middlewares');
17
-
18
- var middleware = _interopRequireWildcard(_middlewares);
19
-
20
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
- class AudiencesRouter extends _ClassesRouter2.default {
25
-
6
+ exports.default = exports.AudiencesRouter = void 0;
7
+ var _ClassesRouter = _interopRequireDefault(require("./ClassesRouter"));
8
+ var _rest = _interopRequireDefault(require("../rest"));
9
+ var middleware = _interopRequireWildcard(require("../middlewares"));
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 AudiencesRouter extends _ClassesRouter.default {
26
13
  className() {
27
14
  return '_Audience';
28
15
  }
29
-
30
16
  handleFind(req) {
31
- const body = Object.assign(req.body, _ClassesRouter2.default.JSONFromQuery(req.query));
32
- const options = _ClassesRouter2.default.optionsFromBody(body);
33
-
34
- return _rest2.default.find(req.config, req.auth, '_Audience', body.where, options, req.info.clientSDK).then(response => {
35
-
17
+ const body = Object.assign(req.body || {}, _ClassesRouter.default.JSONFromQuery(req.query));
18
+ const options = _ClassesRouter.default.optionsFromBody(body, req.config.defaultLimit);
19
+ return _rest.default.find(req.config, req.auth, '_Audience', body.where, options, req.info.clientSDK, req.info.context).then(response => {
36
20
  response.results.forEach(item => {
37
21
  item.query = JSON.parse(item.query);
38
22
  });
39
-
40
- return { response: response };
23
+ return {
24
+ response: response
25
+ };
41
26
  });
42
27
  }
43
-
44
28
  handleGet(req) {
45
29
  return super.handleGet(req).then(data => {
46
30
  data.response.query = JSON.parse(data.response.query);
47
-
48
31
  return data;
49
32
  });
50
33
  }
51
-
52
34
  mountRoutes() {
53
35
  this.route('GET', '/push_audiences', middleware.promiseEnforceMasterKeyAccess, req => {
54
36
  return this.handleFind(req);
@@ -67,7 +49,6 @@ class AudiencesRouter extends _ClassesRouter2.default {
67
49
  });
68
50
  }
69
51
  }
70
-
71
52
  exports.AudiencesRouter = AudiencesRouter;
72
- exports.default = AudiencesRouter;
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL0F1ZGllbmNlc1JvdXRlci5qcyJdLCJuYW1lcyI6WyJtaWRkbGV3YXJlIiwiQXVkaWVuY2VzUm91dGVyIiwiQ2xhc3Nlc1JvdXRlciIsImNsYXNzTmFtZSIsImhhbmRsZUZpbmQiLCJyZXEiLCJib2R5IiwiT2JqZWN0IiwiYXNzaWduIiwiSlNPTkZyb21RdWVyeSIsInF1ZXJ5Iiwib3B0aW9ucyIsIm9wdGlvbnNGcm9tQm9keSIsInJlc3QiLCJmaW5kIiwiY29uZmlnIiwiYXV0aCIsIndoZXJlIiwiaW5mbyIsImNsaWVudFNESyIsInRoZW4iLCJyZXNwb25zZSIsInJlc3VsdHMiLCJmb3JFYWNoIiwiaXRlbSIsIkpTT04iLCJwYXJzZSIsImhhbmRsZUdldCIsImRhdGEiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiLCJoYW5kbGVDcmVhdGUiLCJoYW5kbGVVcGRhdGUiLCJoYW5kbGVEZWxldGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7O0lBQVlBLFU7Ozs7OztBQUVMLE1BQU1DLGVBQU4sU0FBOEJDLHVCQUE5QixDQUE0Qzs7QUFFakRDLGNBQVk7QUFDVixXQUFPLFdBQVA7QUFDRDs7QUFFREMsYUFBV0MsR0FBWCxFQUFnQjtBQUNkLFVBQU1DLE9BQU9DLE9BQU9DLE1BQVAsQ0FBY0gsSUFBSUMsSUFBbEIsRUFBd0JKLHdCQUFjTyxhQUFkLENBQTRCSixJQUFJSyxLQUFoQyxDQUF4QixDQUFiO0FBQ0EsVUFBTUMsVUFBVVQsd0JBQWNVLGVBQWQsQ0FBOEJOLElBQTlCLENBQWhCOztBQUVBLFdBQU9PLGVBQUtDLElBQUwsQ0FBVVQsSUFBSVUsTUFBZCxFQUFzQlYsSUFBSVcsSUFBMUIsRUFBZ0MsV0FBaEMsRUFBNkNWLEtBQUtXLEtBQWxELEVBQXlETixPQUF6RCxFQUFrRU4sSUFBSWEsSUFBSixDQUFTQyxTQUEzRSxFQUNKQyxJQURJLENBQ0VDLFFBQUQsSUFBYzs7QUFFbEJBLGVBQVNDLE9BQVQsQ0FBaUJDLE9BQWpCLENBQTBCQyxJQUFELElBQVU7QUFDakNBLGFBQUtkLEtBQUwsR0FBYWUsS0FBS0MsS0FBTCxDQUFXRixLQUFLZCxLQUFoQixDQUFiO0FBQ0QsT0FGRDs7QUFJQSxhQUFPLEVBQUNXLFVBQVVBLFFBQVgsRUFBUDtBQUNELEtBUkksQ0FBUDtBQVNEOztBQUVETSxZQUFVdEIsR0FBVixFQUFlO0FBQ2IsV0FBTyxNQUFNc0IsU0FBTixDQUFnQnRCLEdBQWhCLEVBQ0plLElBREksQ0FDRVEsSUFBRCxJQUFVO0FBQ2RBLFdBQUtQLFFBQUwsQ0FBY1gsS0FBZCxHQUFzQmUsS0FBS0MsS0FBTCxDQUFXRSxLQUFLUCxRQUFMLENBQWNYLEtBQXpCLENBQXRCOztBQUVBLGFBQU9rQixJQUFQO0FBQ0QsS0FMSSxDQUFQO0FBTUQ7O0FBRURDLGdCQUFjO0FBQ1osU0FBS0MsS0FBTCxDQUFXLEtBQVgsRUFBaUIsaUJBQWpCLEVBQW9DOUIsV0FBVytCLDZCQUEvQyxFQUE4RTFCLE9BQU87QUFBRSxhQUFPLEtBQUtELFVBQUwsQ0FBZ0JDLEdBQWhCLENBQVA7QUFBOEIsS0FBckg7QUFDQSxTQUFLeUIsS0FBTCxDQUFXLEtBQVgsRUFBaUIsMkJBQWpCLEVBQThDOUIsV0FBVytCLDZCQUF6RCxFQUF3RjFCLE9BQU87QUFBRSxhQUFPLEtBQUtzQixTQUFMLENBQWV0QixHQUFmLENBQVA7QUFBNkIsS0FBOUg7QUFDQSxTQUFLeUIsS0FBTCxDQUFXLE1BQVgsRUFBa0IsaUJBQWxCLEVBQXFDOUIsV0FBVytCLDZCQUFoRCxFQUErRTFCLE9BQU87QUFBRSxhQUFPLEtBQUsyQixZQUFMLENBQWtCM0IsR0FBbEIsQ0FBUDtBQUFnQyxLQUF4SDtBQUNBLFNBQUt5QixLQUFMLENBQVcsS0FBWCxFQUFpQiwyQkFBakIsRUFBOEM5QixXQUFXK0IsNkJBQXpELEVBQXdGMUIsT0FBTztBQUFFLGFBQU8sS0FBSzRCLFlBQUwsQ0FBa0I1QixHQUFsQixDQUFQO0FBQWdDLEtBQWpJO0FBQ0EsU0FBS3lCLEtBQUwsQ0FBVyxRQUFYLEVBQW9CLDJCQUFwQixFQUFpRDlCLFdBQVcrQiw2QkFBNUQsRUFBMkYxQixPQUFPO0FBQUUsYUFBTyxLQUFLNkIsWUFBTCxDQUFrQjdCLEdBQWxCLENBQVA7QUFBZ0MsS0FBcEk7QUFDRDtBQXBDZ0Q7O1FBQXRDSixlLEdBQUFBLGU7a0JBdUNFQSxlIiwiZmlsZSI6IkF1ZGllbmNlc1JvdXRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDbGFzc2VzUm91dGVyIGZyb20gJy4vQ2xhc3Nlc1JvdXRlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuXG5leHBvcnQgY2xhc3MgQXVkaWVuY2VzUm91dGVyIGV4dGVuZHMgQ2xhc3Nlc1JvdXRlciB7XG5cbiAgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiAnX0F1ZGllbmNlJztcbiAgfVxuXG4gIGhhbmRsZUZpbmQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHksIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0gQ2xhc3Nlc1JvdXRlci5vcHRpb25zRnJvbUJvZHkoYm9keSk7XG5cbiAgICByZXR1cm4gcmVzdC5maW5kKHJlcS5jb25maWcsIHJlcS5hdXRoLCAnX0F1ZGllbmNlJywgYm9keS53aGVyZSwgb3B0aW9ucywgcmVxLmluZm8uY2xpZW50U0RLKVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgcmVzcG9uc2UucmVzdWx0cy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgaXRlbS5xdWVyeSA9IEpTT04ucGFyc2UoaXRlbS5xdWVyeSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7cmVzcG9uc2U6IHJlc3BvbnNlfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlR2V0KHJlcSkge1xuICAgIHJldHVybiBzdXBlci5oYW5kbGVHZXQocmVxKVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgZGF0YS5yZXNwb25zZS5xdWVyeSA9IEpTT04ucGFyc2UoZGF0YS5yZXNwb25zZS5xdWVyeSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KTtcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsJy9wdXNoX2F1ZGllbmNlcycsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIHJlcSA9PiB7IHJldHVybiB0aGlzLmhhbmRsZUZpbmQocmVxKTsgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywnL3B1c2hfYXVkaWVuY2VzLzpvYmplY3RJZCcsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIHJlcSA9PiB7IHJldHVybiB0aGlzLmhhbmRsZUdldChyZXEpOyB9KTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywnL3B1c2hfYXVkaWVuY2VzJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgcmVxID0+IHsgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7IH0pO1xuICAgIHRoaXMucm91dGUoJ1BVVCcsJy9wdXNoX2F1ZGllbmNlcy86b2JqZWN0SWQnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCByZXEgPT4geyByZXR1cm4gdGhpcy5oYW5kbGVVcGRhdGUocmVxKTsgfSk7XG4gICAgdGhpcy5yb3V0ZSgnREVMRVRFJywnL3B1c2hfYXVkaWVuY2VzLzpvYmplY3RJZCcsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIHJlcSA9PiB7IHJldHVybiB0aGlzLmhhbmRsZURlbGV0ZShyZXEpOyB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBdWRpZW5jZXNSb3V0ZXI7XG4iXX0=
53
+ var _default = exports.default = AudiencesRouter;
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2xhc3Nlc1JvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Jlc3QiLCJtaWRkbGV3YXJlIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJBdWRpZW5jZXNSb3V0ZXIiLCJDbGFzc2VzUm91dGVyIiwiY2xhc3NOYW1lIiwiaGFuZGxlRmluZCIsInJlcSIsImJvZHkiLCJhc3NpZ24iLCJKU09ORnJvbVF1ZXJ5IiwicXVlcnkiLCJvcHRpb25zIiwib3B0aW9uc0Zyb21Cb2R5IiwiY29uZmlnIiwiZGVmYXVsdExpbWl0IiwicmVzdCIsImZpbmQiLCJhdXRoIiwid2hlcmUiLCJpbmZvIiwiY2xpZW50U0RLIiwiY29udGV4dCIsInRoZW4iLCJyZXNwb25zZSIsInJlc3VsdHMiLCJmb3JFYWNoIiwiaXRlbSIsIkpTT04iLCJwYXJzZSIsImhhbmRsZUdldCIsImRhdGEiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiLCJoYW5kbGVDcmVhdGUiLCJoYW5kbGVVcGRhdGUiLCJoYW5kbGVEZWxldGUiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9BdWRpZW5jZXNSb3V0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENsYXNzZXNSb3V0ZXIgZnJvbSAnLi9DbGFzc2VzUm91dGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5cbmV4cG9ydCBjbGFzcyBBdWRpZW5jZXNSb3V0ZXIgZXh0ZW5kcyBDbGFzc2VzUm91dGVyIHtcbiAgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiAnX0F1ZGllbmNlJztcbiAgfVxuXG4gIGhhbmRsZUZpbmQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHkgfHwge30sIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0gQ2xhc3Nlc1JvdXRlci5vcHRpb25zRnJvbUJvZHkoYm9keSwgcmVxLmNvbmZpZy5kZWZhdWx0TGltaXQpO1xuXG4gICAgcmV0dXJuIHJlc3RcbiAgICAgIC5maW5kKFxuICAgICAgICByZXEuY29uZmlnLFxuICAgICAgICByZXEuYXV0aCxcbiAgICAgICAgJ19BdWRpZW5jZScsXG4gICAgICAgIGJvZHkud2hlcmUsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIHJlcS5pbmZvLmNsaWVudFNESyxcbiAgICAgICAgcmVxLmluZm8uY29udGV4dFxuICAgICAgKVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICByZXNwb25zZS5yZXN1bHRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaXRlbS5xdWVyeSA9IEpTT04ucGFyc2UoaXRlbS5xdWVyeSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXNwb25zZSB9O1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVHZXQocmVxKSB7XG4gICAgcmV0dXJuIHN1cGVyLmhhbmRsZUdldChyZXEpLnRoZW4oZGF0YSA9PiB7XG4gICAgICBkYXRhLnJlc3BvbnNlLnF1ZXJ5ID0gSlNPTi5wYXJzZShkYXRhLnJlc3BvbnNlLnF1ZXJ5KTtcblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3B1c2hfYXVkaWVuY2VzJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUZpbmQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0dFVCcsXG4gICAgICAnL3B1c2hfYXVkaWVuY2VzLzpvYmplY3RJZCcsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlR2V0KHJlcSk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9wdXNoX2F1ZGllbmNlcycsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVDcmVhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BVVCcsXG4gICAgICAnL3B1c2hfYXVkaWVuY2VzLzpvYmplY3RJZCcsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlVXBkYXRlKHJlcSk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0RFTEVURScsXG4gICAgICAnL3B1c2hfYXVkaWVuY2VzLzpvYmplY3RJZCcsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgcmVxID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBdWRpZW5jZXNSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FB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