parse-server 9.6.0-alpha.33 → 9.6.0-alpha.34

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.
@@ -36,7 +36,11 @@ class AggregateRouter extends _ClassesRouter.default {
36
36
  }
37
37
  options.pipeline = AggregateRouter.getPipeline(body);
38
38
  if (typeof body.where === 'string') {
39
- body.where = JSON.parse(body.where);
39
+ try {
40
+ body.where = JSON.parse(body.where);
41
+ } catch {
42
+ throw new _node.default.Error(_node.default.Error.INVALID_JSON, 'where parameter is not valid JSON');
43
+ }
40
44
  }
41
45
  try {
42
46
  const response = await _rest.default.find(req.config, req.auth, this.className(req), body.where, options, req.info.clientSDK, req.info.context);
@@ -123,4 +127,4 @@ class AggregateRouter extends _ClassesRouter.default {
123
127
  }
124
128
  exports.AggregateRouter = AggregateRouter;
125
129
  var _default = exports.default = AggregateRouter;
126
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3Jlc3QiLCJfQ2xhc3Nlc1JvdXRlciIsIl9Vc2Vyc1JvdXRlciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkFnZ3JlZ2F0ZVJvdXRlciIsIkNsYXNzZXNSb3V0ZXIiLCJoYW5kbGVGaW5kIiwicmVxIiwiYm9keSIsImFzc2lnbiIsIkpTT05Gcm9tUXVlcnkiLCJxdWVyeSIsIm9wdGlvbnMiLCJkaXN0aW5jdCIsIlN0cmluZyIsImhpbnQiLCJleHBsYWluIiwiY29tbWVudCIsInJlYWRQcmVmZXJlbmNlIiwicGlwZWxpbmUiLCJnZXRQaXBlbGluZSIsIndoZXJlIiwiSlNPTiIsInBhcnNlIiwicmVzcG9uc2UiLCJyZXN0IiwiZmluZCIsImNvbmZpZyIsImF1dGgiLCJjbGFzc05hbWUiLCJpbmZvIiwiY2xpZW50U0RLIiwiY29udGV4dCIsInJlc3VsdCIsInJlc3VsdHMiLCJVc2Vyc1JvdXRlciIsInJlbW92ZUhpZGRlblByb3BlcnRpZXMiLCJQYXJzZSIsIkVycm9yIiwiSU5WQUxJRF9RVUVSWSIsIm1lc3NhZ2UiLCJBcnJheSIsImlzQXJyYXkiLCJrZXlzIiwiZmlsdGVyIiwia2V5IiwidW5kZWZpbmVkIiwibWFwIiwic3RhZ2UiLCJsZW5ndGgiLCJqb2luIiwidHJhbnNmb3JtU3RhZ2UiLCJzdGFnZU5hbWUiLCJza2lwS2V5cyIsImluY2x1ZGVzIiwicHJvdG90eXBlIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiZXhwb3J0cyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvQWdncmVnYXRlUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IHJlc3QgZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuaW1wb3J0IFVzZXJzUm91dGVyIGZyb20gJy4vVXNlcnNSb3V0ZXInO1xuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlUm91dGVyIGV4dGVuZHMgQ2xhc3Nlc1JvdXRlciB7XG4gIGFzeW5jIGhhbmRsZUZpbmQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHkgfHwge30sIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge307XG4gICAgaWYgKGJvZHkuZGlzdGluY3QpIHtcbiAgICAgIG9wdGlvbnMuZGlzdGluY3QgPSBTdHJpbmcoYm9keS5kaXN0aW5jdCk7XG4gICAgfVxuICAgIGlmIChib2R5LmhpbnQpIHtcbiAgICAgIG9wdGlvbnMuaGludCA9IGJvZHkuaGludDtcbiAgICAgIGRlbGV0ZSBib2R5LmhpbnQ7XG4gICAgfVxuICAgIGlmIChib2R5LmV4cGxhaW4pIHtcbiAgICAgIG9wdGlvbnMuZXhwbGFpbiA9IGJvZHkuZXhwbGFpbjtcbiAgICAgIGRlbGV0ZSBib2R5LmV4cGxhaW47XG4gICAgfVxuICAgIGlmIChib2R5LmNvbW1lbnQpIHtcbiAgICAgIG9wdGlvbnMuY29tbWVudCA9IGJvZHkuY29tbWVudDtcbiAgICAgIGRlbGV0ZSBib2R5LmNvbW1lbnQ7XG4gICAgfVxuICAgIGlmIChib2R5LnJlYWRQcmVmZXJlbmNlKSB7XG4gICAgICBvcHRpb25zLnJlYWRQcmVmZXJlbmNlID0gYm9keS5yZWFkUHJlZmVyZW5jZTtcbiAgICAgIGRlbGV0ZSBib2R5LnJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBvcHRpb25zLnBpcGVsaW5lID0gQWdncmVnYXRlUm91dGVyLmdldFBpcGVsaW5lKGJvZHkpO1xuICAgIGlmICh0eXBlb2YgYm9keS53aGVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJvZHkud2hlcmUgPSBKU09OLnBhcnNlKGJvZHkud2hlcmUpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXN0LmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIHJlcS5hdXRoLFxuICAgICAgICB0aGlzLmNsYXNzTmFtZShyZXEpLFxuICAgICAgICBib2R5LndoZXJlLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIFVzZXJzUm91dGVyLnJlbW92ZUhpZGRlblByb3BlcnRpZXMocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgcmVzcG9uc2UgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSwgZS5tZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICAvKiBCdWlsZHMgYSBwaXBlbGluZSBmcm9tIHRoZSBib2R5LiBPcmlnaW5hbGx5IHRoZSBib2R5IGNvdWxkIGJlIHBhc3NlZCBhcyBhIHNpbmdsZSBvYmplY3QsXG4gICAqIGFuZCBub3cgd2Ugc3VwcG9ydCBtYW55IG9wdGlvbnMuXG4gICAqXG4gICAqIEFycmF5XG4gICAqXG4gICAqIGJvZHk6IFt7XG4gICAqICAgZ3JvdXA6IHsgb2JqZWN0SWQ6ICckbmFtZScgfSxcbiAgICogfV1cbiAgICpcbiAgICogT2JqZWN0XG4gICAqXG4gICAqIGJvZHk6IHtcbiAgICogICBncm91cDogeyBvYmplY3RJZDogJyRuYW1lJyB9LFxuICAgKiB9XG4gICAqXG4gICAqXG4gICAqIFBpcGVsaW5lIE9wZXJhdG9yIHdpdGggYW4gQXJyYXkgb3IgYW4gT2JqZWN0XG4gICAqXG4gICAqIGJvZHk6IHtcbiAgICogICBwaXBlbGluZToge1xuICAgKiAgICAgJGdyb3VwOiB7IG9iamVjdElkOiAnJG5hbWUnIH0sXG4gICAqICAgfVxuICAgKiB9XG4gICAqXG4gICAqL1xuICBzdGF0aWMgZ2V0UGlwZWxpbmUoYm9keSkge1xuICAgIGxldCBwaXBlbGluZSA9IGJvZHkucGlwZWxpbmUgfHwgYm9keTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGlwZWxpbmUpKSB7XG4gICAgICBwaXBlbGluZSA9IE9iamVjdC5rZXlzKHBpcGVsaW5lKVxuICAgICAgICAuZmlsdGVyKGtleSA9PiBwaXBlbGluZVtrZXldICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgICAgICByZXR1cm4geyBba2V5XTogcGlwZWxpbmVba2V5XSB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGlwZWxpbmUubWFwKHN0YWdlID0+IHtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzdGFnZSk7XG4gICAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYFBpcGVsaW5lIHN0YWdlcyBzaG91bGQgb25seSBoYXZlIG9uZSBrZXkgYnV0IGZvdW5kICR7a2V5cy5qb2luKCcsICcpfS5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gQWdncmVnYXRlUm91dGVyLnRyYW5zZm9ybVN0YWdlKGtleXNbMF0sIHN0YWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc2Zvcm1TdGFnZShzdGFnZU5hbWUsIHN0YWdlKSB7XG4gICAgY29uc3Qgc2tpcEtleXMgPSBbJ2Rpc3RpbmN0JywgJ3doZXJlJ107XG4gICAgaWYgKHNraXBLZXlzLmluY2x1ZGVzKHN0YWdlTmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHN0YWdlTmFtZVswXSAhPT0gJyQnKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSwgYEludmFsaWQgYWdncmVnYXRlIHN0YWdlICcke3N0YWdlTmFtZX0nLmApO1xuICAgIH1cbiAgICBpZiAoc3RhZ2VOYW1lID09PSAnJGdyb3VwJykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGFnZVtzdGFnZU5hbWVdLCAnb2JqZWN0SWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgICAgUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSxcbiAgICAgICAgICBgQ2Fubm90IHVzZSAnb2JqZWN0SWQnIGluIGFnZ3JlZ2F0aW9uIHN0YWdlICRncm91cC5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGFnZVtzdGFnZU5hbWVdLCAnX2lkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYEludmFsaWQgcGFyYW1ldGVyIGZvciBxdWVyeTogZ3JvdXAuIE1pc3Npbmcga2V5IF9pZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgW3N0YWdlTmFtZV06IHN0YWdlW3N0YWdlTmFtZV0gfTtcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvYWdncmVnYXRlLzpjbGFzc05hbWUnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRmluZChyZXEpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFnZ3JlZ2F0ZVJvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQXdDLFNBQUFFLHdCQUFBSSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTix1QkFBQSxZQUFBQSxDQUFBSSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFP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
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3Jlc3QiLCJfQ2xhc3Nlc1JvdXRlciIsIl9Vc2Vyc1JvdXRlciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkFnZ3JlZ2F0ZVJvdXRlciIsIkNsYXNzZXNSb3V0ZXIiLCJoYW5kbGVGaW5kIiwicmVxIiwiYm9keSIsImFzc2lnbiIsIkpTT05Gcm9tUXVlcnkiLCJxdWVyeSIsIm9wdGlvbnMiLCJkaXN0aW5jdCIsIlN0cmluZyIsImhpbnQiLCJleHBsYWluIiwiY29tbWVudCIsInJlYWRQcmVmZXJlbmNlIiwicGlwZWxpbmUiLCJnZXRQaXBlbGluZSIsIndoZXJlIiwiSlNPTiIsInBhcnNlIiwiUGFyc2UiLCJFcnJvciIsIklOVkFMSURfSlNPTiIsInJlc3BvbnNlIiwicmVzdCIsImZpbmQiLCJjb25maWciLCJhdXRoIiwiY2xhc3NOYW1lIiwiaW5mbyIsImNsaWVudFNESyIsImNvbnRleHQiLCJyZXN1bHQiLCJyZXN1bHRzIiwiVXNlcnNSb3V0ZXIiLCJyZW1vdmVIaWRkZW5Qcm9wZXJ0aWVzIiwiSU5WQUxJRF9RVUVSWSIsIm1lc3NhZ2UiLCJBcnJheSIsImlzQXJyYXkiLCJrZXlzIiwiZmlsdGVyIiwia2V5IiwidW5kZWZpbmVkIiwibWFwIiwic3RhZ2UiLCJsZW5ndGgiLCJqb2luIiwidHJhbnNmb3JtU3RhZ2UiLCJzdGFnZU5hbWUiLCJza2lwS2V5cyIsImluY2x1ZGVzIiwicHJvdG90eXBlIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiZXhwb3J0cyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvQWdncmVnYXRlUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IHJlc3QgZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuaW1wb3J0IFVzZXJzUm91dGVyIGZyb20gJy4vVXNlcnNSb3V0ZXInO1xuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlUm91dGVyIGV4dGVuZHMgQ2xhc3Nlc1JvdXRlciB7XG4gIGFzeW5jIGhhbmRsZUZpbmQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHkgfHwge30sIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge307XG4gICAgaWYgKGJvZHkuZGlzdGluY3QpIHtcbiAgICAgIG9wdGlvbnMuZGlzdGluY3QgPSBTdHJpbmcoYm9keS5kaXN0aW5jdCk7XG4gICAgfVxuICAgIGlmIChib2R5LmhpbnQpIHtcbiAgICAgIG9wdGlvbnMuaGludCA9IGJvZHkuaGludDtcbiAgICAgIGRlbGV0ZSBib2R5LmhpbnQ7XG4gICAgfVxuICAgIGlmIChib2R5LmV4cGxhaW4pIHtcbiAgICAgIG9wdGlvbnMuZXhwbGFpbiA9IGJvZHkuZXhwbGFpbjtcbiAgICAgIGRlbGV0ZSBib2R5LmV4cGxhaW47XG4gICAgfVxuICAgIGlmIChib2R5LmNvbW1lbnQpIHtcbiAgICAgIG9wdGlvbnMuY29tbWVudCA9IGJvZHkuY29tbWVudDtcbiAgICAgIGRlbGV0ZSBib2R5LmNvbW1lbnQ7XG4gICAgfVxuICAgIGlmIChib2R5LnJlYWRQcmVmZXJlbmNlKSB7XG4gICAgICBvcHRpb25zLnJlYWRQcmVmZXJlbmNlID0gYm9keS5yZWFkUHJlZmVyZW5jZTtcbiAgICAgIGRlbGV0ZSBib2R5LnJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBvcHRpb25zLnBpcGVsaW5lID0gQWdncmVnYXRlUm91dGVyLmdldFBpcGVsaW5lKGJvZHkpO1xuICAgIGlmICh0eXBlb2YgYm9keS53aGVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGJvZHkud2hlcmUgPSBKU09OLnBhcnNlKGJvZHkud2hlcmUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sICd3aGVyZSBwYXJhbWV0ZXIgaXMgbm90IHZhbGlkIEpTT04nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVzdC5maW5kKFxuICAgICAgICByZXEuY29uZmlnLFxuICAgICAgICByZXEuYXV0aCxcbiAgICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgICAgYm9keS53aGVyZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCByZXN1bHQgb2YgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBVc2Vyc1JvdXRlci5yZW1vdmVIaWRkZW5Qcm9wZXJ0aWVzKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHJlc3BvbnNlIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksIGUubWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgLyogQnVpbGRzIGEgcGlwZWxpbmUgZnJvbSB0aGUgYm9keS4gT3JpZ2luYWxseSB0aGUgYm9keSBjb3VsZCBiZSBwYXNzZWQgYXMgYSBzaW5nbGUgb2JqZWN0LFxuICAgKiBhbmQgbm93IHdlIHN1cHBvcnQgbWFueSBvcHRpb25zLlxuICAgKlxuICAgKiBBcnJheVxuICAgKlxuICAgKiBib2R5OiBbe1xuICAgKiAgIGdyb3VwOiB7IG9iamVjdElkOiAnJG5hbWUnIH0sXG4gICAqIH1dXG4gICAqXG4gICAqIE9iamVjdFxuICAgKlxuICAgKiBib2R5OiB7XG4gICAqICAgZ3JvdXA6IHsgb2JqZWN0SWQ6ICckbmFtZScgfSxcbiAgICogfVxuICAgKlxuICAgKlxuICAgKiBQaXBlbGluZSBPcGVyYXRvciB3aXRoIGFuIEFycmF5IG9yIGFuIE9iamVjdFxuICAgKlxuICAgKiBib2R5OiB7XG4gICAqICAgcGlwZWxpbmU6IHtcbiAgICogICAgICRncm91cDogeyBvYmplY3RJZDogJyRuYW1lJyB9LFxuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKi9cbiAgc3RhdGljIGdldFBpcGVsaW5lKGJvZHkpIHtcbiAgICBsZXQgcGlwZWxpbmUgPSBib2R5LnBpcGVsaW5lIHx8IGJvZHk7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBpcGVsaW5lKSkge1xuICAgICAgcGlwZWxpbmUgPSBPYmplY3Qua2V5cyhwaXBlbGluZSlcbiAgICAgICAgLmZpbHRlcihrZXkgPT4gcGlwZWxpbmVba2V5XSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAubWFwKGtleSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHsgW2tleV06IHBpcGVsaW5lW2tleV0gfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBpcGVsaW5lLm1hcChzdGFnZSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc3RhZ2UpO1xuICAgICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICBQYXJzZS5FcnJvci5JTlZBTElEX1FVRVJZLFxuICAgICAgICAgIGBQaXBlbGluZSBzdGFnZXMgc2hvdWxkIG9ubHkgaGF2ZSBvbmUga2V5IGJ1dCBmb3VuZCAke2tleXMuam9pbignLCAnKX0uYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEFnZ3JlZ2F0ZVJvdXRlci50cmFuc2Zvcm1TdGFnZShrZXlzWzBdLCBzdGFnZSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgdHJhbnNmb3JtU3RhZ2Uoc3RhZ2VOYW1lLCBzdGFnZSkge1xuICAgIGNvbnN0IHNraXBLZXlzID0gWydkaXN0aW5jdCcsICd3aGVyZSddO1xuICAgIGlmIChza2lwS2V5cy5pbmNsdWRlcyhzdGFnZU5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChzdGFnZU5hbWVbMF0gIT09ICckJykge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksIGBJbnZhbGlkIGFnZ3JlZ2F0ZSBzdGFnZSAnJHtzdGFnZU5hbWV9Jy5gKTtcbiAgICB9XG4gICAgaWYgKHN0YWdlTmFtZSA9PT0gJyRncm91cCcpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhZ2Vbc3RhZ2VOYW1lXSwgJ29iamVjdElkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYENhbm5vdCB1c2UgJ29iamVjdElkJyBpbiBhZ2dyZWdhdGlvbiBzdGFnZSAkZ3JvdXAuYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhZ2Vbc3RhZ2VOYW1lXSwgJ19pZCcpKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICBQYXJzZS5FcnJvci5JTlZBTElEX1FVRVJZLFxuICAgICAgICAgIGBJbnZhbGlkIHBhcmFtZXRlciBmb3IgcXVlcnk6IGdyb3VwLiBNaXNzaW5nIGtleSBfaWRgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IFtzdGFnZU5hbWVdOiBzdGFnZVtzdGFnZU5hbWVdIH07XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL2FnZ3JlZ2F0ZS86Y2xhc3NOYW1lJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUZpbmQocmVxKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBZ2dyZWdhdGVSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGNBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUF3QyxTQUFBRSx3QkFBQUksQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQU4sdUJBQUEsWUFBQUEsQ0FBQUksQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FB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
@@ -27,7 +27,11 @@ class ClassesRouter extends _PromiseRouter.default {
27
27
  options.redirectClassNameForKey = String(body.redirectClassNameForKey);
28
28
  }
29
29
  if (typeof body.where === 'string') {
30
- body.where = JSON.parse(body.where);
30
+ try {
31
+ body.where = JSON.parse(body.where);
32
+ } catch {
33
+ throw new _node.default.Error(_node.default.Error.INVALID_JSON, 'where parameter is not valid JSON');
34
+ }
31
35
  }
32
36
  return _rest.default.find(req.config, req.auth, this.className(req), body.where, options, req.info.clientSDK, req.info.context).then(response => {
33
37
  return {
@@ -184,4 +188,4 @@ class ClassesRouter extends _PromiseRouter.default {
184
188
  }
185
189
  exports.ClassesRouter = ClassesRouter;
186
190
  var _default = exports.default = ClassesRouter;
187
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Jlc3QiLCJfbG9kYXNoIiwiX25vZGUiLCJfbWlkZGxld2FyZXMiLCJfRXJyb3IiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJBTExPV0VEX0dFVF9RVUVSWV9LRVlTIiwiQ2xhc3Nlc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJjbGFzc05hbWUiLCJyZXEiLCJwYXJhbXMiLCJoYW5kbGVGaW5kIiwiYm9keSIsIk9iamVjdCIsImFzc2lnbiIsIkpTT05Gcm9tUXVlcnkiLCJxdWVyeSIsIm9wdGlvbnMiLCJvcHRpb25zRnJvbUJvZHkiLCJjb25maWciLCJkZWZhdWx0TGltaXQiLCJtYXhMaW1pdCIsImxpbWl0IiwiTnVtYmVyIiwicmVkaXJlY3RDbGFzc05hbWVGb3JLZXkiLCJTdHJpbmciLCJ3aGVyZSIsIkpTT04iLCJwYXJzZSIsInJlc3QiLCJmaW5kIiwiYXV0aCIsImluZm8iLCJjbGllbnRTREsiLCJjb250ZXh0IiwidGhlbiIsInJlc3BvbnNlIiwiaGFuZGxlR2V0Iiwia2V5Iiwia2V5cyIsImluZGV4T2YiLCJQYXJzZSIsIkVycm9yIiwiSU5WQUxJRF9RVUVSWSIsImluY2x1ZGUiLCJleGNsdWRlS2V5cyIsInJlYWRQcmVmZXJlbmNlIiwiaW5jbHVkZVJlYWRQcmVmZXJlbmNlIiwic3VicXVlcnlSZWFkUHJlZmVyZW5jZSIsImdldCIsIm9iamVjdElkIiwicmVzdWx0cyIsImxlbmd0aCIsIk9CSkVDVF9OT1RfRk9VTkQiLCJzZXNzaW9uVG9rZW4iLCJ1c2VyIiwiaWQiLCJoYW5kbGVDcmVhdGUiLCJzdGFydHNXaXRoIiwiY3JlYXRlU2FuaXRpemVkRXJyb3IiLCJPUEVSQVRJT05fRk9SQklEREVOIiwiY3JlYXRlIiwiaGFuZGxlVXBkYXRlIiwidXBkYXRlIiwiaGFuZGxlRGVsZXRlIiwiZGVsIiwianNvbiIsInZhbHVlIiwiXyIsImVudHJpZXMiLCJhbGxvd0NvbnN0cmFpbnRzIiwic2tpcCIsIm9yZGVyIiwiY291bnQiLCJpbmNsdWRlQWxsIiwiaGludCIsImV4cGxhaW4iLCJjb21tZW50IiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL0NsYXNzZXNSb3V0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgeyBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3kgfSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgeyBjcmVhdGVTYW5pdGl6ZWRFcnJvciB9IGZyb20gJy4uL0Vycm9yJztcblxuY29uc3QgQUxMT1dFRF9HRVRfUVVFUllfS0VZUyA9IFtcbiAgJ2tleXMnLFxuICAnaW5jbHVkZScsXG4gICdleGNsdWRlS2V5cycsXG4gICdyZWFkUHJlZmVyZW5jZScsXG4gICdpbmNsdWRlUmVhZFByZWZlcmVuY2UnLFxuICAnc3VicXVlcnlSZWFkUHJlZmVyZW5jZScsXG5dO1xuXG5leHBvcnQgY2xhc3MgQ2xhc3Nlc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBjbGFzc05hbWUocmVxKSB7XG4gICAgcmV0dXJuIHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuICB9XG5cbiAgaGFuZGxlRmluZChyZXEpIHtcbiAgICBjb25zdCBib2R5ID0gT2JqZWN0LmFzc2lnbihyZXEuYm9keSB8fCB7fSwgQ2xhc3Nlc1JvdXRlci5KU09ORnJvbVF1ZXJ5KHJlcS5xdWVyeSkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBDbGFzc2VzUm91dGVyLm9wdGlvbnNGcm9tQm9keShib2R5LCByZXEuY29uZmlnLmRlZmF1bHRMaW1pdCk7XG4gICAgaWYgKHJlcS5jb25maWcubWF4TGltaXQgJiYgYm9keS5saW1pdCA+IHJlcS5jb25maWcubWF4TGltaXQpIHtcbiAgICAgIC8vIFNpbGVudGx5IHJlcGxhY2UgdGhlIGxpbWl0IG9uIHRoZSBxdWVyeSB3aXRoIHRoZSBtYXggY29uZmlndXJlZFxuICAgICAgb3B0aW9ucy5saW1pdCA9IE51bWJlcihyZXEuY29uZmlnLm1heExpbWl0KTtcbiAgICB9XG4gICAgaWYgKGJvZHkucmVkaXJlY3RDbGFzc05hbWVGb3JLZXkpIHtcbiAgICAgIG9wdGlvbnMucmVkaXJlY3RDbGFzc05hbWVGb3JLZXkgPSBTdHJpbmcoYm9keS5yZWRpcmVjdENsYXNzTmFtZUZvcktleSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS53aGVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJvZHkud2hlcmUgPSBKU09OLnBhcnNlKGJvZHkud2hlcmUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIHJlcS5hdXRoLFxuICAgICAgICB0aGlzLmNsYXNzTmFtZShyZXEpLFxuICAgICAgICBib2R5LndoZXJlLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3BvbnNlIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIHtyZXNwb25zZX0gb2JqZWN0LlxuICBoYW5kbGVHZXQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHkgfHwge30sIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhib2R5KSkge1xuICAgICAgaWYgKEFMTE9XRURfR0VUX1FVRVJZX0tFWVMuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSwgJ0ltcHJvcGVyIGVuY29kZSBvZiBwYXJhbWV0ZXInKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYm9keS5rZXlzICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMua2V5cyA9IFN0cmluZyhib2R5LmtleXMpO1xuICAgIH1cbiAgICBpZiAoYm9keS5pbmNsdWRlICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZSA9IFN0cmluZyhib2R5LmluY2x1ZGUpO1xuICAgIH1cbiAgICBpZiAoYm9keS5leGNsdWRlS2V5cyAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLmV4Y2x1ZGVLZXlzID0gU3RyaW5nKGJvZHkuZXhjbHVkZUtleXMpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGJvZHkucmVhZFByZWZlcmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zLnJlYWRQcmVmZXJlbmNlID0gYm9keS5yZWFkUHJlZmVyZW5jZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBib2R5LmluY2x1ZGVSZWFkUHJlZmVyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZVJlYWRQcmVmZXJlbmNlID0gYm9keS5pbmNsdWRlUmVhZFByZWZlcmVuY2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlID0gYm9keS5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlO1xuICAgIH1cblxuICAgIHJldHVybiByZXN0XG4gICAgICAuZ2V0KFxuICAgICAgICByZXEuY29uZmlnLFxuICAgICAgICByZXEuYXV0aCxcbiAgICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgICAgcmVxLnBhcmFtcy5vYmplY3RJZCxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgICApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdPYmplY3Qgbm90IGZvdW5kLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2xhc3NOYW1lKHJlcSkgPT09ICdfVXNlcicpIHtcbiAgICAgICAgICBkZWxldGUgcmVzcG9uc2UucmVzdWx0c1swXS5zZXNzaW9uVG9rZW47XG5cbiAgICAgICAgICBjb25zdCB1c2VyID0gcmVzcG9uc2UucmVzdWx0c1swXTtcblxuICAgICAgICAgIGlmIChyZXEuYXV0aC51c2VyICYmIHVzZXIub2JqZWN0SWQgPT0gcmVxLmF1dGgudXNlci5pZCkge1xuICAgICAgICAgICAgLy8gRm9yY2UgdGhlIHNlc3Npb24gdG9rZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLnJlc3VsdHNbMF0uc2Vzc2lvblRva2VuID0gcmVxLmluZm8uc2Vzc2lvblRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzcG9uc2UucmVzdWx0c1swXSB9O1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVDcmVhdGUocmVxKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSA9PT0gJ19Vc2VyJyAmJlxuICAgICAgdHlwZW9mIHJlcS5ib2R5Py5vYmplY3RJZCA9PT0gJ3N0cmluZycgJiZcbiAgICAgIHJlcS5ib2R5Lm9iamVjdElkLnN0YXJ0c1dpdGgoJ3JvbGU6JylcbiAgICApIHtcbiAgICAgIHRocm93IGNyZWF0ZVNhbml0aXplZEVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sICdJbnZhbGlkIG9iamVjdCBJRC4nLCByZXEuY29uZmlnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3QuY3JlYXRlKFxuICAgICAgcmVxLmNvbmZpZyxcbiAgICAgIHJlcS5hdXRoLFxuICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgIHJlcS5ib2R5IHx8IHt9LFxuICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgcmVxLmluZm8uY29udGV4dFxuICAgICk7XG4gIH1cblxuICBoYW5kbGVVcGRhdGUocmVxKSB7XG4gICAgY29uc3Qgd2hlcmUgPSB7IG9iamVjdElkOiByZXEucGFyYW1zLm9iamVjdElkIH07XG4gICAgcmV0dXJuIHJlc3QudXBkYXRlKFxuICAgICAgcmVxLmNvbmZpZyxcbiAgICAgIHJlcS5hdXRoLFxuICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgIHdoZXJlLFxuICAgICAgcmVxLmJvZHkgfHwge30sXG4gICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZURlbGV0ZShyZXEpIHtcbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmRlbChyZXEuY29uZmlnLCByZXEuYXV0aCwgdGhpcy5jbGFzc05hbWUocmVxKSwgcmVxLnBhcmFtcy5vYmplY3RJZCwgcmVxLmluZm8uY29udGV4dClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHt9IH07XG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBKU09ORnJvbVF1ZXJ5KHF1ZXJ5KSB7XG4gICAgY29uc3QganNvbiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8uZW50cmllcyhxdWVyeSkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGpzb25ba2V5XSA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGpzb25ba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBvcHRpb25zRnJvbUJvZHkoYm9keSwgZGVmYXVsdExpbWl0KSB7XG4gICAgY29uc3QgYWxsb3dDb25zdHJhaW50cyA9IFtcbiAgICAgICdza2lwJyxcbiAgICAgICdsaW1pdCcsXG4gICAgICAnb3JkZXInLFxuICAgICAgJ2NvdW50JyxcbiAgICAgICdrZXlzJyxcbiAgICAgICdleGNsdWRlS2V5cycsXG4gICAgICAnaW5jbHVkZScsXG4gICAgICAnaW5jbHVkZUFsbCcsXG4gICAgICAncmVkaXJlY3RDbGFzc05hbWVGb3JLZXknLFxuICAgICAgJ3doZXJlJyxcbiAgICAgICdyZWFkUHJlZmVyZW5jZScsXG4gICAgICAnaW5jbHVkZVJlYWRQcmVmZXJlbmNlJyxcbiAgICAgICdzdWJxdWVyeVJlYWRQcmVmZXJlbmNlJyxcbiAgICAgICdoaW50JyxcbiAgICAgICdleHBsYWluJyxcbiAgICAgICdjb21tZW50JyxcbiAgICBdO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYm9keSkpIHtcbiAgICAgIGlmIChhbGxvd0NvbnN0cmFpbnRzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksIGBJbnZhbGlkIHBhcmFtZXRlciBmb3IgcXVlcnk6ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBvcHRpb25zID0ge307XG4gICAgaWYgKGJvZHkuc2tpcCkge1xuICAgICAgb3B0aW9ucy5za2lwID0gTnVtYmVyKGJvZHkuc2tpcCk7XG4gICAgfVxuICAgIGlmIChib2R5LmxpbWl0IHx8IGJvZHkubGltaXQgPT09IDApIHtcbiAgICAgIG9wdGlvbnMubGltaXQgPSBOdW1iZXIoYm9keS5saW1pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdGlvbnMubGltaXQgPSBOdW1iZXIoZGVmYXVsdExpbWl0KTtcbiAgICB9XG4gICAgaWYgKGJvZHkub3JkZXIpIHtcbiAgICAgIG9wdGlvbnMub3JkZXIgPSBTdHJpbmcoYm9keS5vcmRlcik7XG4gICAgfVxuICAgIGlmIChib2R5LmNvdW50KSB7XG4gICAgICBvcHRpb25zLmNvdW50ID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGJvZHkua2V5cyAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLmtleXMgPSBTdHJpbmcoYm9keS5rZXlzKTtcbiAgICB9XG4gICAgaWYgKGJvZHkuZXhjbHVkZUtleXMgIT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5leGNsdWRlS2V5cyA9IFN0cmluZyhib2R5LmV4Y2x1ZGVLZXlzKTtcbiAgICB9XG4gICAgaWYgKGJvZHkuaW5jbHVkZSAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLmluY2x1ZGUgPSBTdHJpbmcoYm9keS5pbmNsdWRlKTtcbiAgICB9XG4gICAgaWYgKGJvZHkuaW5jbHVkZUFsbCkge1xuICAgICAgb3B0aW9ucy5pbmNsdWRlQWxsID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBib2R5LnJlYWRQcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5yZWFkUHJlZmVyZW5jZSA9IGJvZHkucmVhZFByZWZlcmVuY2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS5pbmNsdWRlUmVhZFByZWZlcmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zLmluY2x1ZGVSZWFkUHJlZmVyZW5jZSA9IGJvZHkuaW5jbHVkZVJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGJvZHkuc3VicXVlcnlSZWFkUHJlZmVyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMuc3VicXVlcnlSZWFkUHJlZmVyZW5jZSA9IGJvZHkuc3VicXVlcnlSZWFkUHJlZmVyZW5jZTtcbiAgICB9XG4gICAgaWYgKGJvZHkuaGludCAmJiAodHlwZW9mIGJvZHkuaGludCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGJvZHkuaGludCA9PT0gJ29iamVjdCcpKSB7XG4gICAgICBvcHRpb25zLmhpbnQgPSBib2R5LmhpbnQ7XG4gICAgfVxuICAgIGlmIChib2R5LmV4cGxhaW4pIHtcbiAgICAgIG9wdGlvbnMuZXhwbGFpbiA9IGJvZHkuZXhwbGFpbjtcbiAgICB9XG4gICAgaWYgKGJvZHkuY29tbWVudCAmJiB0eXBlb2YgYm9keS5jb21tZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5jb21tZW50ID0gYm9keS5jb21tZW50O1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvY2xhc3Nlcy86Y2xhc3NOYW1lJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUZpbmQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL2NsYXNzZXMvOmNsYXNzTmFtZS86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlR2V0KHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvY2xhc3Nlcy86Y2xhc3NOYW1lJywgcHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5LCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUFVUJywgJy9jbGFzc2VzLzpjbGFzc05hbWUvOm9iamVjdElkJywgcHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5LCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlVXBkYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnREVMRVRFJywgJy9jbGFzc2VzLzpjbGFzc05hbWUvOm9iamVjdElkJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZURlbGV0ZShyZXEpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENsYXNzZXNSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUFnRCxTQUFBRCx1QkFBQU8sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVoRCxNQUFNRyxzQkFBc0IsR0FBRyxDQUM3QixNQUFNLEVBQ04sU0FBUyxFQUNULGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixDQUN6QjtBQUVNLE1BQU1DLGFBQWEsU0FBU0Msc0JBQWEsQ0FBQztFQUMvQ0MsU0FBU0EsQ0FBQ0MsR0FBRyxFQUFFO0lBQ2IsT0FBT0EsR0FBRyxDQUFDQyxNQUFNLENBQUNGLFNBQVM7RUFDN0I7RUFFQUcsVUFBVUEsQ0FBQ0YsR0FBRyxFQUFFO0lBQ2QsTUFBTUcsSUFBSSxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0wsR0FBRyxDQUFDRyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUVOLGFBQWEsQ0FBQ1MsYUFBYSxDQUFDTixHQUFHLENBQUNPLEtBQUssQ0FBQyxDQUFDO0lBQ2xGLE1BQU1D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
191
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Jlc3QiLCJfbG9kYXNoIiwiX25vZGUiLCJfbWlkZGxld2FyZXMiLCJfRXJyb3IiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJBTExPV0VEX0dFVF9RVUVSWV9LRVlTIiwiQ2xhc3Nlc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJjbGFzc05hbWUiLCJyZXEiLCJwYXJhbXMiLCJoYW5kbGVGaW5kIiwiYm9keSIsIk9iamVjdCIsImFzc2lnbiIsIkpTT05Gcm9tUXVlcnkiLCJxdWVyeSIsIm9wdGlvbnMiLCJvcHRpb25zRnJvbUJvZHkiLCJjb25maWciLCJkZWZhdWx0TGltaXQiLCJtYXhMaW1pdCIsImxpbWl0IiwiTnVtYmVyIiwicmVkaXJlY3RDbGFzc05hbWVGb3JLZXkiLCJTdHJpbmciLCJ3aGVyZSIsIkpTT04iLCJwYXJzZSIsIlBhcnNlIiwiRXJyb3IiLCJJTlZBTElEX0pTT04iLCJyZXN0IiwiZmluZCIsImF1dGgiLCJpbmZvIiwiY2xpZW50U0RLIiwiY29udGV4dCIsInRoZW4iLCJyZXNwb25zZSIsImhhbmRsZUdldCIsImtleSIsImtleXMiLCJpbmRleE9mIiwiSU5WQUxJRF9RVUVSWSIsImluY2x1ZGUiLCJleGNsdWRlS2V5cyIsInJlYWRQcmVmZXJlbmNlIiwiaW5jbHVkZVJlYWRQcmVmZXJlbmNlIiwic3VicXVlcnlSZWFkUHJlZmVyZW5jZSIsImdldCIsIm9iamVjdElkIiwicmVzdWx0cyIsImxlbmd0aCIsIk9CSkVDVF9OT1RfRk9VTkQiLCJzZXNzaW9uVG9rZW4iLCJ1c2VyIiwiaWQiLCJoYW5kbGVDcmVhdGUiLCJzdGFydHNXaXRoIiwiY3JlYXRlU2FuaXRpemVkRXJyb3IiLCJPUEVSQVRJT05fRk9SQklEREVOIiwiY3JlYXRlIiwiaGFuZGxlVXBkYXRlIiwidXBkYXRlIiwiaGFuZGxlRGVsZXRlIiwiZGVsIiwianNvbiIsInZhbHVlIiwiXyIsImVudHJpZXMiLCJhbGxvd0NvbnN0cmFpbnRzIiwic2tpcCIsIm9yZGVyIiwiY291bnQiLCJpbmNsdWRlQWxsIiwiaGludCIsImV4cGxhaW4iLCJjb21tZW50IiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL0NsYXNzZXNSb3V0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgeyBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3kgfSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgeyBjcmVhdGVTYW5pdGl6ZWRFcnJvciB9IGZyb20gJy4uL0Vycm9yJztcblxuY29uc3QgQUxMT1dFRF9HRVRfUVVFUllfS0VZUyA9IFtcbiAgJ2tleXMnLFxuICAnaW5jbHVkZScsXG4gICdleGNsdWRlS2V5cycsXG4gICdyZWFkUHJlZmVyZW5jZScsXG4gICdpbmNsdWRlUmVhZFByZWZlcmVuY2UnLFxuICAnc3VicXVlcnlSZWFkUHJlZmVyZW5jZScsXG5dO1xuXG5leHBvcnQgY2xhc3MgQ2xhc3Nlc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBjbGFzc05hbWUocmVxKSB7XG4gICAgcmV0dXJuIHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuICB9XG5cbiAgaGFuZGxlRmluZChyZXEpIHtcbiAgICBjb25zdCBib2R5ID0gT2JqZWN0LmFzc2lnbihyZXEuYm9keSB8fCB7fSwgQ2xhc3Nlc1JvdXRlci5KU09ORnJvbVF1ZXJ5KHJlcS5xdWVyeSkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBDbGFzc2VzUm91dGVyLm9wdGlvbnNGcm9tQm9keShib2R5LCByZXEuY29uZmlnLmRlZmF1bHRMaW1pdCk7XG4gICAgaWYgKHJlcS5jb25maWcubWF4TGltaXQgJiYgYm9keS5saW1pdCA+IHJlcS5jb25maWcubWF4TGltaXQpIHtcbiAgICAgIC8vIFNpbGVudGx5IHJlcGxhY2UgdGhlIGxpbWl0IG9uIHRoZSBxdWVyeSB3aXRoIHRoZSBtYXggY29uZmlndXJlZFxuICAgICAgb3B0aW9ucy5saW1pdCA9IE51bWJlcihyZXEuY29uZmlnLm1heExpbWl0KTtcbiAgICB9XG4gICAgaWYgKGJvZHkucmVkaXJlY3RDbGFzc05hbWVGb3JLZXkpIHtcbiAgICAgIG9wdGlvbnMucmVkaXJlY3RDbGFzc05hbWVGb3JLZXkgPSBTdHJpbmcoYm9keS5yZWRpcmVjdENsYXNzTmFtZUZvcktleSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS53aGVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGJvZHkud2hlcmUgPSBKU09OLnBhcnNlKGJvZHkud2hlcmUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sICd3aGVyZSBwYXJhbWV0ZXIgaXMgbm90IHZhbGlkIEpTT04nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3RcbiAgICAgIC5maW5kKFxuICAgICAgICByZXEuY29uZmlnLFxuICAgICAgICByZXEuYXV0aCxcbiAgICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgICAgYm9keS53aGVyZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgICApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXNwb25zZSB9O1xuICAgICAgfSk7XG4gIH1cblxuICAvLyBSZXR1cm5zIGEgcHJvbWlzZSBmb3IgYSB7cmVzcG9uc2V9IG9iamVjdC5cbiAgaGFuZGxlR2V0KHJlcSkge1xuICAgIGNvbnN0IGJvZHkgPSBPYmplY3QuYXNzaWduKHJlcS5ib2R5IHx8IHt9LCBDbGFzc2VzUm91dGVyLkpTT05Gcm9tUXVlcnkocmVxLnF1ZXJ5KSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYm9keSkpIHtcbiAgICAgIGlmIChBTExPV0VEX0dFVF9RVUVSWV9LRVlTLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksICdJbXByb3BlciBlbmNvZGUgb2YgcGFyYW1ldGVyJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGJvZHkua2V5cyAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLmtleXMgPSBTdHJpbmcoYm9keS5rZXlzKTtcbiAgICB9XG4gICAgaWYgKGJvZHkuaW5jbHVkZSAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLmluY2x1ZGUgPSBTdHJpbmcoYm9keS5pbmNsdWRlKTtcbiAgICB9XG4gICAgaWYgKGJvZHkuZXhjbHVkZUtleXMgIT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5leGNsdWRlS2V5cyA9IFN0cmluZyhib2R5LmV4Y2x1ZGVLZXlzKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBib2R5LnJlYWRQcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5yZWFkUHJlZmVyZW5jZSA9IGJvZHkucmVhZFByZWZlcmVuY2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS5pbmNsdWRlUmVhZFByZWZlcmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zLmluY2x1ZGVSZWFkUHJlZmVyZW5jZSA9IGJvZHkuaW5jbHVkZVJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGJvZHkuc3VicXVlcnlSZWFkUHJlZmVyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMuc3VicXVlcnlSZWFkUHJlZmVyZW5jZSA9IGJvZHkuc3VicXVlcnlSZWFkUHJlZmVyZW5jZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmdldChcbiAgICAgICAgcmVxLmNvbmZpZyxcbiAgICAgICAgcmVxLmF1dGgsXG4gICAgICAgIHRoaXMuY2xhc3NOYW1lKHJlcSksXG4gICAgICAgIHJlcS5wYXJhbXMub2JqZWN0SWQsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIHJlcS5pbmZvLmNsaWVudFNESyxcbiAgICAgICAgcmVxLmluZm8uY29udGV4dFxuICAgICAgKVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLnJlc3VsdHMgfHwgcmVzcG9uc2UucmVzdWx0cy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnT2JqZWN0IG5vdCBmb3VuZC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNsYXNzTmFtZShyZXEpID09PSAnX1VzZXInKSB7XG4gICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLnJlc3VsdHNbMF0uc2Vzc2lvblRva2VuO1xuXG4gICAgICAgICAgY29uc3QgdXNlciA9IHJlc3BvbnNlLnJlc3VsdHNbMF07XG5cbiAgICAgICAgICBpZiAocmVxLmF1dGgudXNlciAmJiB1c2VyLm9iamVjdElkID09IHJlcS5hdXRoLnVzZXIuaWQpIHtcbiAgICAgICAgICAgIC8vIEZvcmNlIHRoZSBzZXNzaW9uIHRva2VuXG4gICAgICAgICAgICByZXNwb25zZS5yZXN1bHRzWzBdLnNlc3Npb25Ub2tlbiA9IHJlcS5pbmZvLnNlc3Npb25Ub2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3BvbnNlLnJlc3VsdHNbMF0gfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQ3JlYXRlKHJlcSkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY2xhc3NOYW1lKHJlcSkgPT09ICdfVXNlcicgJiZcbiAgICAgIHR5cGVvZiByZXEuYm9keT8ub2JqZWN0SWQgPT09ICdzdHJpbmcnICYmXG4gICAgICByZXEuYm9keS5vYmplY3RJZC5zdGFydHNXaXRoKCdyb2xlOicpXG4gICAgKSB7XG4gICAgICB0aHJvdyBjcmVhdGVTYW5pdGl6ZWRFcnJvcihQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLCAnSW52YWxpZCBvYmplY3QgSUQuJywgcmVxLmNvbmZpZyk7XG4gICAgfVxuICAgIHJldHVybiByZXN0LmNyZWF0ZShcbiAgICAgIHJlcS5jb25maWcsXG4gICAgICByZXEuYXV0aCxcbiAgICAgIHRoaXMuY2xhc3NOYW1lKHJlcSksXG4gICAgICByZXEuYm9keSB8fCB7fSxcbiAgICAgIHJlcS5pbmZvLmNsaWVudFNESyxcbiAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICApO1xuICB9XG5cbiAgaGFuZGxlVXBkYXRlKHJlcSkge1xuICAgIGNvbnN0IHdoZXJlID0geyBvYmplY3RJZDogcmVxLnBhcmFtcy5vYmplY3RJZCB9O1xuICAgIHJldHVybiByZXN0LnVwZGF0ZShcbiAgICAgIHJlcS5jb25maWcsXG4gICAgICByZXEuYXV0aCxcbiAgICAgIHRoaXMuY2xhc3NOYW1lKHJlcSksXG4gICAgICB3aGVyZSxcbiAgICAgIHJlcS5ib2R5IHx8IHt9LFxuICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgcmVxLmluZm8uY29udGV4dFxuICAgICk7XG4gIH1cblxuICBoYW5kbGVEZWxldGUocmVxKSB7XG4gICAgcmV0dXJuIHJlc3RcbiAgICAgIC5kZWwocmVxLmNvbmZpZywgcmVxLmF1dGgsIHRoaXMuY2xhc3NOYW1lKHJlcSksIHJlcS5wYXJhbXMub2JqZWN0SWQsIHJlcS5pbmZvLmNvbnRleHQpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiB7fSB9O1xuICAgICAgfSk7XG4gIH1cblxuICBzdGF0aWMgSlNPTkZyb21RdWVyeShxdWVyeSkge1xuICAgIGNvbnN0IGpzb24gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBfLmVudHJpZXMocXVlcnkpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBqc29uW2tleV0gPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBqc29uW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgb3B0aW9uc0Zyb21Cb2R5KGJvZHksIGRlZmF1bHRMaW1pdCkge1xuICAgIGNvbnN0IGFsbG93Q29uc3RyYWludHMgPSBbXG4gICAgICAnc2tpcCcsXG4gICAgICAnbGltaXQnLFxuICAgICAgJ29yZGVyJyxcbiAgICAgICdjb3VudCcsXG4gICAgICAna2V5cycsXG4gICAgICAnZXhjbHVkZUtleXMnLFxuICAgICAgJ2luY2x1ZGUnLFxuICAgICAgJ2luY2x1ZGVBbGwnLFxuICAgICAgJ3JlZGlyZWN0Q2xhc3NOYW1lRm9yS2V5JyxcbiAgICAgICd3aGVyZScsXG4gICAgICAncmVhZFByZWZlcmVuY2UnLFxuICAgICAgJ2luY2x1ZGVSZWFkUHJlZmVyZW5jZScsXG4gICAgICAnc3VicXVlcnlSZWFkUHJlZmVyZW5jZScsXG4gICAgICAnaGludCcsXG4gICAgICAnZXhwbGFpbicsXG4gICAgICAnY29tbWVudCcsXG4gICAgXTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGJvZHkpKSB7XG4gICAgICBpZiAoYWxsb3dDb25zdHJhaW50cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX1FVRVJZLCBgSW52YWxpZCBwYXJhbWV0ZXIgZm9yIHF1ZXJ5OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGlmIChib2R5LnNraXApIHtcbiAgICAgIG9wdGlvbnMuc2tpcCA9IE51bWJlcihib2R5LnNraXApO1xuICAgIH1cbiAgICBpZiAoYm9keS5saW1pdCB8fCBib2R5LmxpbWl0ID09PSAwKSB7XG4gICAgICBvcHRpb25zLmxpbWl0ID0gTnVtYmVyKGJvZHkubGltaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLmxpbWl0ID0gTnVtYmVyKGRlZmF1bHRMaW1pdCk7XG4gICAgfVxuICAgIGlmIChib2R5Lm9yZGVyKSB7XG4gICAgICBvcHRpb25zLm9yZGVyID0gU3RyaW5nKGJvZHkub3JkZXIpO1xuICAgIH1cbiAgICBpZiAoYm9keS5jb3VudCkge1xuICAgICAgb3B0aW9ucy5jb3VudCA9IHRydWU7XG4gICAgfVxuICAgIGlmIChib2R5LmtleXMgIT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5rZXlzID0gU3RyaW5nKGJvZHkua2V5cyk7XG4gICAgfVxuICAgIGlmIChib2R5LmV4Y2x1ZGVLZXlzICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMuZXhjbHVkZUtleXMgPSBTdHJpbmcoYm9keS5leGNsdWRlS2V5cyk7XG4gICAgfVxuICAgIGlmIChib2R5LmluY2x1ZGUgIT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5pbmNsdWRlID0gU3RyaW5nKGJvZHkuaW5jbHVkZSk7XG4gICAgfVxuICAgIGlmIChib2R5LmluY2x1ZGVBbGwpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZUFsbCA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS5yZWFkUHJlZmVyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMucmVhZFByZWZlcmVuY2UgPSBib2R5LnJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGJvZHkuaW5jbHVkZVJlYWRQcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5pbmNsdWRlUmVhZFByZWZlcmVuY2UgPSBib2R5LmluY2x1ZGVSZWFkUHJlZmVyZW5jZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBib2R5LnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zLnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2UgPSBib2R5LnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2U7XG4gICAgfVxuICAgIGlmIChib2R5LmhpbnQgJiYgKHR5cGVvZiBib2R5LmhpbnQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBib2R5LmhpbnQgPT09ICdvYmplY3QnKSkge1xuICAgICAgb3B0aW9ucy5oaW50ID0gYm9keS5oaW50O1xuICAgIH1cbiAgICBpZiAoYm9keS5leHBsYWluKSB7XG4gICAgICBvcHRpb25zLmV4cGxhaW4gPSBib2R5LmV4cGxhaW47XG4gICAgfVxuICAgIGlmIChib2R5LmNvbW1lbnQgJiYgdHlwZW9mIGJvZHkuY29tbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMuY29tbWVudCA9IGJvZHkuY29tbWVudDtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL2NsYXNzZXMvOmNsYXNzTmFtZScsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9jbGFzc2VzLzpjbGFzc05hbWUvOm9iamVjdElkJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUdldChyZXEpO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL2NsYXNzZXMvOmNsYXNzTmFtZScsIHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSwgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUNyZWF0ZShyZXEpO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGUoJ1BVVCcsICcvY2xhc3Nlcy86Y2xhc3NOYW1lLzpvYmplY3RJZCcsIHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSwgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVVwZGF0ZShyZXEpO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGUoJ0RFTEVURScsICcvY2xhc3Nlcy86Y2xhc3NOYW1lLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVEZWxldGUocmVxKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDbGFzc2VzUm91dGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFBZ0QsU0FBQUQsdUJBQUFPLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFaEQsTUFBTUcsc0JBQXNCLEdBQUcsQ0FDN0IsTUFBTSxFQUNOLFNBQVMsRUFDVCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2Qix3QkFBd0IsQ0FDekI7QUFFTSxNQUFNQyxhQUFhLFNBQVNDLHNCQUFhLENBQUM7RUFDL0NDLFNBQVNBLENBQUNDLEdBQUcsRUFBRTtJQUNiLE9BQU9BLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDRixTQUFTO0VBQzdCO0VBRUFHLFVBQVVBLENBQUNG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
package/lib/batch.js CHANGED
@@ -57,6 +57,11 @@ async function handleBatch(router, req) {
57
57
  if (!Array.isArray(req.body?.requests)) {
58
58
  throw new Parse.Error(Parse.Error.INVALID_JSON, 'requests must be an array');
59
59
  }
60
+ for (const restRequest of req.body.requests) {
61
+ if (!restRequest || typeof restRequest !== 'object' || typeof restRequest.path !== 'string') {
62
+ throw new Parse.Error(Parse.Error.INVALID_JSON, 'batch request path must be a string');
63
+ }
64
+ }
60
65
 
61
66
  // The batch paths are all from the root of our domain.
62
67
  // That means they include the API prefix, that the API is mounted
@@ -163,4 +168,4 @@ module.exports = {
163
168
  mountOnto,
164
169
  makeBatchRoutingPathFunction
165
170
  };
166
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJwYXRoIiwiYmF0Y2hQYXRoIiwibW91bnRPbnRvIiwicm91dGVyIiwicm91dGUiLCJyZXEiLCJoYW5kbGVCYXRjaCIsInBhcnNlVVJMIiwidXJsU3RyaW5nIiwiVVJMIiwidW5kZWZpbmVkIiwibWFrZUJhdGNoUm91dGluZ1BhdGhGdW5jdGlvbiIsIm9yaWdpbmFsVXJsIiwic2VydmVyVVJMIiwicHVibGljU2VydmVyVVJMIiwiYXBpUHJlZml4TGVuZ3RoIiwibGVuZ3RoIiwiYXBpUHJlZml4Iiwic2xpY2UiLCJtYWtlUm91dGFibGVQYXRoIiwicmVxdWVzdFBhdGgiLCJFcnJvciIsIklOVkFMSURfSlNPTiIsInBvc2l4Iiwiam9pbiIsInBhdGhuYW1lIiwibG9jYWxQYXRoIiwicHVibGljUGF0aCIsInN0YXJ0c1dpdGhMb2NhbCIsInN0YXJ0c1dpdGgiLCJzdGFydHNXaXRoUHVibGljIiwicGF0aExlbmd0aFRvVXNlIiwiTWF0aCIsIm1heCIsIm5ld1BhdGgiLCJBcnJheSIsImlzQXJyYXkiLCJib2R5IiwicmVxdWVzdHMiLCJlbmRzV2l0aCIsImNvbmZpZyIsInJhdGVMaW1pdHMiLCJyZXN0UmVxdWVzdCIsInJvdXRhYmxlUGF0aCIsImxpbWl0IiwicGF0aEV4cCIsInJlZ2V4cCIsInRlc3QiLCJmYWtlUmVxIiwiaXAiLCJtZXRob2QiLCJ0b1VwcGVyQ2FzZSIsImF1dGgiLCJpbmZvIiwiZmFrZVJlcyIsInNldEhlYWRlciIsImhhbmRsZXIiLCJlcnIiLCJDT05ORUNUSU9OX0ZBSUxFRCIsImVycm9yUmVzcG9uc2VNZXNzYWdlIiwiYmF0Y2giLCJ0cmFuc2FjdGlvblJldHJpZXMiLCJpbml0aWFsUHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidHJhbnNhY3Rpb24iLCJkYXRhYmFzZSIsImNyZWF0ZVRyYW5zYWN0aW9uYWxTZXNzaW9uIiwidGhlbiIsInByb21pc2VzIiwibWFwIiwicmVxdWVzdCIsInRyeVJvdXRlUmVxdWVzdCIsInJlc3BvbnNlIiwic3VjY2VzcyIsImVycm9yIiwiY29kZSIsIm1lc3NhZ2UiLCJhbGwiLCJyZXN1bHRzIiwiZmluZCIsInJlc3VsdCIsImFib3J0VHJhbnNhY3Rpb25hbFNlc3Npb24iLCJyZWplY3QiLCJjb21taXRUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsImNhdGNoIiwiZXJyb3JJdGVtIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXRjaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZTtcbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG4vLyBUaGVzZSBtZXRob2RzIGhhbmRsZSBiYXRjaCByZXF1ZXN0cy5cbmNvbnN0IGJhdGNoUGF0aCA9ICcvYmF0Y2gnO1xuXG4vLyBNb3VudHMgYSBiYXRjaC1oYW5kbGVyIG9udG8gYSBQcm9taXNlUm91dGVyLlxuZnVuY3Rpb24gbW91bnRPbnRvKHJvdXRlcikge1xuICByb3V0ZXIucm91dGUoJ1BPU1QnLCBiYXRjaFBhdGgsIHJlcSA9PiB7XG4gICAgcmV0dXJuIGhhbmRsZUJhdGNoKHJvdXRlciwgcmVxKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVVJMKHVybFN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgVVJMKHVybFN0cmluZyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFrZUJhdGNoUm91dGluZ1BhdGhGdW5jdGlvbihvcmlnaW5hbFVybCwgc2VydmVyVVJMLCBwdWJsaWNTZXJ2ZXJVUkwpIHtcbiAgc2VydmVyVVJMID0gc2VydmVyVVJMID8gcGFyc2VVUkwoc2VydmVyVVJMKSA6IHVuZGVmaW5lZDtcbiAgcHVibGljU2VydmVyVVJMID0gcHVibGljU2VydmVyVVJMID8gcGFyc2VVUkwocHVibGljU2VydmVyVVJMKSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBhcGlQcmVmaXhMZW5ndGggPSBvcmlnaW5hbFVybC5sZW5ndGggLSBiYXRjaFBhdGgubGVuZ3RoO1xuICBsZXQgYXBpUHJlZml4ID0gb3JpZ2luYWxVcmwuc2xpY2UoMCwgYXBpUHJlZml4TGVuZ3RoKTtcblxuICBjb25zdCBtYWtlUm91dGFibGVQYXRoID0gZnVuY3Rpb24gKHJlcXVlc3RQYXRoKSB7XG4gICAgLy8gVGhlIHJvdXRhYmxlUGF0aCBpcyB0aGUgcGF0aCBtaW51cyB0aGUgYXBpIHByZWZpeFxuICAgIGlmIChyZXF1ZXN0UGF0aC5zbGljZSgwLCBhcGlQcmVmaXgubGVuZ3RoKSAhPSBhcGlQcmVmaXgpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sICdjYW5ub3Qgcm91dGUgYmF0Y2ggcGF0aCAnICsgcmVxdWVzdFBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKCcvJywgcmVxdWVzdFBhdGguc2xpY2UoYXBpUHJlZml4Lmxlbmd0aCkpO1xuICB9O1xuXG4gIGlmIChzZXJ2ZXJVUkwgJiYgcHVibGljU2VydmVyVVJMICYmIHNlcnZlclVSTC5wYXRobmFtZSAhPSBwdWJsaWNTZXJ2ZXJVUkwucGF0aG5hbWUpIHtcbiAgICBjb25zdCBsb2NhbFBhdGggPSBzZXJ2ZXJVUkwucGF0aG5hbWU7XG4gICAgY29uc3QgcHVibGljUGF0aCA9IHB1YmxpY1NlcnZlclVSTC5wYXRobmFtZTtcblxuICAgIC8vIE92ZXJyaWRlIHRoZSBhcGkgcHJlZml4XG4gICAgYXBpUHJlZml4ID0gbG9jYWxQYXRoO1xuICAgIHJldHVybiBmdW5jdGlvbiAocmVxdWVzdFBhdGgpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgd2hpY2ggc2VydmVyIHVybCB3YXMgdXNlZCBieSBmaWd1cmluZyBvdXQgd2hpY2hcbiAgICAgIC8vIHBhdGggbW9yZSBjbG9zZWx5IG1hdGNoZXMgcmVxdWVzdFBhdGhcbiAgICAgIGNvbnN0IHN0YXJ0c1dpdGhMb2NhbCA9IHJlcXVlc3RQYXRoLnN0YXJ0c1dpdGgobG9jYWxQYXRoKTtcbiAgICAgIGNvbnN0IHN0YXJ0c1dpdGhQdWJsaWMgPSByZXF1ZXN0UGF0aC5zdGFydHNXaXRoKHB1YmxpY1BhdGgpO1xuICAgICAgY29uc3QgcGF0aExlbmd0aFRvVXNlID1cbiAgICAgICAgc3RhcnRzV2l0aExvY2FsICYmIHN0YXJ0c1dpdGhQdWJsaWNcbiAgICAgICAgICA/IE1hdGgubWF4KGxvY2FsUGF0aC5sZW5ndGgsIHB1YmxpY1BhdGgubGVuZ3RoKVxuICAgICAgICAgIDogc3RhcnRzV2l0aExvY2FsXG4gICAgICAgICAgICA/IGxvY2FsUGF0aC5sZW5ndGhcbiAgICAgICAgICAgIDogcHVibGljUGF0aC5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG5ld1BhdGggPSBwYXRoLnBvc2l4LmpvaW4oJy8nLCBsb2NhbFBhdGgsICcvJywgcmVxdWVzdFBhdGguc2xpY2UocGF0aExlbmd0aFRvVXNlKSk7XG5cbiAgICAgIC8vIFVzZSB0aGUgbWV0aG9kIGZvciBsb2NhbCByb3V0aW5nXG4gICAgICByZXR1cm4gbWFrZVJvdXRhYmxlUGF0aChuZXdQYXRoKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG1ha2VSb3V0YWJsZVBhdGg7XG59XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIHtyZXNwb25zZX0gb2JqZWN0LlxuLy8gVE9ETzogcGFzcyBhbG9uZyBhdXRoIGNvcnJlY3RseVxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlQmF0Y2gocm91dGVyLCByZXEpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHJlcS5ib2R5Py5yZXF1ZXN0cykpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9KU09OLCAncmVxdWVzdHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICB9XG5cbiAgLy8gVGhlIGJhdGNoIHBhdGhzIGFyZSBhbGwgZnJvbSB0aGUgcm9vdCBvZiBvdXIgZG9tYWluLlxuICAvLyBUaGF0IG1lYW5zIHRoZXkgaW5jbHVkZSB0aGUgQVBJIHByZWZpeCwgdGhhdCB0aGUgQVBJIGlzIG1vdW50ZWRcbiAgLy8gdG8uIEhvd2V2ZXIsIG91ciBwcm9taXNlIHJvdXRlciBkb2VzIG5vdCByb3V0ZSB0aGUgYXBpIHByZWZpeC4gU29cbiAgLy8gd2UgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBBUEkgcHJlZml4LCBzbyB0aGF0IHdlIGNhbiBzdHJpcCBpdFxuICAvLyBmcm9tIGFsbCB0aGUgc3VicmVxdWVzdHMuXG4gIGlmICghcmVxLm9yaWdpbmFsVXJsLmVuZHNXaXRoKGJhdGNoUGF0aCkpIHtcbiAgICB0aHJvdyAnaW50ZXJuYWwgcm91dGluZyBwcm9ibGVtIC0gZXhwZWN0ZWQgdXJsIHRvIGVuZCB3aXRoIGJhdGNoJztcbiAgfVxuXG4gIGNvbnN0IG1ha2VSb3V0YWJsZVBhdGggPSBtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uKFxuICAgIHJlcS5vcmlnaW5hbFVybCxcbiAgICByZXEuY29uZmlnLnNlcnZlclVSTCxcbiAgICByZXEuY29uZmlnLnB1YmxpY1NlcnZlclVSTFxuICApO1xuXG4gIC8vIEVuZm9yY2UgcmF0ZSBsaW1pdHMgZm9yIGVhY2ggYmF0Y2ggc3ViLXJlcXVlc3QgYnkgaW52b2tpbmcgdGhlXG4gIC8vIHJhdGUgbGltaXQgaGFuZGxlci4gVGhpcyBlbnN1cmVzIHN1Yi1yZXF1ZXN0cyBjb25zdW1lIHRva2VucyBmcm9tXG4gIC8vIHRoZSBzYW1lIHdpbmRvdyBzdGF0ZSBhcyBkaXJlY3QgcmVxdWVzdHMuXG4gIGNvbnN0IHJhdGVMaW1pdHMgPSByZXEuY29uZmlnLnJhdGVMaW1pdHMgfHwgW107XG4gIGZvciAoY29uc3QgcmVzdFJlcXVlc3Qgb2YgcmVxLmJvZHkucmVxdWVzdHMpIHtcbiAgICBjb25zdCByb3V0YWJsZVBhdGggPSBtYWtlUm91dGFibGVQYXRoKHJlc3RSZXF1ZXN0LnBhdGgpO1xuICAgIGZvciAoY29uc3QgbGltaXQgb2YgcmF0ZUxpbWl0cykge1xuICAgICAgY29uc3QgcGF0aEV4cCA9IGxpbWl0LnBhdGgucmVnZXhwIHx8IGxpbWl0LnBhdGg7XG4gICAgICBpZiAoIXBhdGhFeHAudGVzdChyb3V0YWJsZVBhdGgpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgZmFrZVJlcSA9IHtcbiAgICAgICAgaXA6IHJlcS5pcCB8fCByZXEuY29uZmlnPy5pcCB8fCAnMTI3LjAuMC4xJyxcbiAgICAgICAgbWV0aG9kOiAocmVzdFJlcXVlc3QubWV0aG9kIHx8ICdHRVQnKS50b1VwcGVyQ2FzZSgpLFxuICAgICAgICBjb25maWc6IHJlcS5jb25maWcsXG4gICAgICAgIGF1dGg6IHJlcS5hdXRoLFxuICAgICAgICBpbmZvOiByZXEuaW5mbyxcbiAgICAgIH07XG4gICAgICBjb25zdCBmYWtlUmVzID0geyBzZXRIZWFkZXIoKSB7fSB9O1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgbGltaXQuaGFuZGxlcihmYWtlUmVxLCBmYWtlUmVzLCBlcnIgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICBQYXJzZS5FcnJvci5DT05ORUNUSU9OX0ZBSUxFRCxcbiAgICAgICAgICBsaW1pdC5lcnJvclJlc3BvbnNlTWVzc2FnZSB8fCAnVG9vIG1hbnkgcmVxdWVzdHMnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYmF0Y2ggPSB0cmFuc2FjdGlvblJldHJpZXMgPT4ge1xuICAgIGxldCBpbml0aWFsUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGlmIChyZXEuYm9keT8udHJhbnNhY3Rpb24gPT09IHRydWUpIHtcbiAgICAgIGluaXRpYWxQcm9taXNlID0gcmVxLmNvbmZpZy5kYXRhYmFzZS5jcmVhdGVUcmFuc2FjdGlvbmFsU2Vzc2lvbigpO1xuICAgIH1cblxuICAgIHJldHVybiBpbml0aWFsUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnN0IHByb21pc2VzID0gcmVxLmJvZHk/LnJlcXVlc3RzLm1hcChyZXN0UmVxdWVzdCA9PiB7XG4gICAgICAgIGNvbnN0IHJvdXRhYmxlUGF0aCA9IG1ha2VSb3V0YWJsZVBhdGgocmVzdFJlcXVlc3QucGF0aCk7XG5cbiAgICAgICAgLy8gQ29uc3RydWN0IGEgcmVxdWVzdCB0aGF0IHdlIGNhbiBzZW5kIHRvIGEgaGFuZGxlclxuICAgICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICAgIGJvZHk6IHJlc3RSZXF1ZXN0LmJvZHksXG4gICAgICAgICAgY29uZmlnOiByZXEuY29uZmlnLFxuICAgICAgICAgIGF1dGg6IHJlcS5hdXRoLFxuICAgICAgICAgIGluZm86IHJlcS5pbmZvLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiByb3V0ZXIudHJ5Um91dGVSZXF1ZXN0KHJlc3RSZXF1ZXN0Lm1ldGhvZCwgcm91dGFibGVQYXRoLCByZXF1ZXN0KS50aGVuKFxuICAgICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHJlc3BvbnNlLnJlc3BvbnNlIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBlcnJvcjogeyBjb2RlOiBlcnJvci5jb2RlLCBlcnJvcjogZXJyb3IubWVzc2FnZSB9IH07XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgICAgLnRoZW4ocmVzdWx0cyA9PiB7XG4gICAgICAgICAgaWYgKHJlcS5ib2R5Py50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdHMuZmluZChyZXN1bHQgPT4gdHlwZW9mIHJlc3VsdC5lcnJvciA9PT0gJ29iamVjdCcpKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmFib3J0VHJhbnNhY3Rpb25hbFNlc3Npb24oKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoeyByZXNwb25zZTogcmVzdWx0cyB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5jb21taXRUcmFuc2FjdGlvbmFsU2Vzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXN1bHRzIH07XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzdWx0cyB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlcnJvciAmJlxuICAgICAgICAgICAgZXJyb3IucmVzcG9uc2UgJiZcbiAgICAgICAgICAgIGVycm9yLnJlc3BvbnNlLmZpbmQoXG4gICAgICAgICAgICAgIGVycm9ySXRlbSA9PiB0eXBlb2YgZXJyb3JJdGVtLmVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvckl0ZW0uZXJyb3IuY29kZSA9PT0gMjUxXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICB0cmFuc2FjdGlvblJldHJpZXMgPiAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gYmF0Y2godHJhbnNhY3Rpb25SZXRyaWVzIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgcmV0dXJuIGJhdGNoKDUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbW91bnRPbnRvLFxuICBtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQ0QsS0FBSztBQUN6QyxNQUFNRSxJQUFJLEdBQUdELE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDNUI7QUFDQSxNQUFNRSxTQUFTLEdBQUcsUUFBUTs7QUFFMUI7QUFDQSxTQUFTQyxTQUFTQSxDQUFDQyxNQUFNLEVBQUU7RUFDekJBLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDLE1BQU0sRUFBRUgsU0FBUyxFQUFFSSxHQUFHLElBQUk7SUFDckMsT0FBT0MsV0FBVyxDQUFDSCxNQUFNLEVBQUVFLEdBQUcsQ0FBQztFQUNqQyxDQUFDLENBQUM7QUFDSjtBQUVBLFNBQVNFLFFBQVFBLENBQUNDLFNBQVMsRUFBRTtFQUMzQixJQUFJO0lBQ0YsT0FBTyxJQUFJQyxHQUFHLENBQUNELFNBQVMsQ0FBQztFQUMzQixDQUFDLENBQUMsTUFBTTtJQUNOLE9BQU9FLFNBQVM7RUFDbEI7QUFDRjtBQUVBLFNBQVNDLDRCQUE0QkEsQ0FBQ0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLGVBQWUsRUFBRTtFQUM3RUQsU0FBUyxHQUFHQSxTQUFTLEdBQUdOLFFBQVEsQ0FBQ00sU0FBUyxDQUFDLEdBQUdILFNBQVM7RUFDdkRJLGVBQWUsR0FBR0EsZUFBZSxHQUFHUCxRQUFRLENBQUNPLGVBQWUsQ0FBQyxHQUFHSixTQUFTO0VBRXpFLE1BQU1LLGVBQWUsR0FBR0gsV0FBVyxDQUFDSSxNQUFNLEdBQUdmLFNBQVMsQ0FBQ2UsTUFBTTtFQUM3RCxJQUFJQyxTQUFTLEdBQUdMLFdBQVcsQ0FBQ00sS0FBSyxDQUFDLENBQUMsRUFBRUgsZUFBZSxDQUFDO0VBRXJELE1BQU1JLGdCQUFnQixHQUFHLFNBQUFBLENBQVVDLFdBQVcsRUFBRTtJQUM5QztJQUNBLElBQUlBLFdB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
171
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJwYXRoIiwiYmF0Y2hQYXRoIiwibW91bnRPbnRvIiwicm91dGVyIiwicm91dGUiLCJyZXEiLCJoYW5kbGVCYXRjaCIsInBhcnNlVVJMIiwidXJsU3RyaW5nIiwiVVJMIiwidW5kZWZpbmVkIiwibWFrZUJhdGNoUm91dGluZ1BhdGhGdW5jdGlvbiIsIm9yaWdpbmFsVXJsIiwic2VydmVyVVJMIiwicHVibGljU2VydmVyVVJMIiwiYXBpUHJlZml4TGVuZ3RoIiwibGVuZ3RoIiwiYXBpUHJlZml4Iiwic2xpY2UiLCJtYWtlUm91dGFibGVQYXRoIiwicmVxdWVzdFBhdGgiLCJFcnJvciIsIklOVkFMSURfSlNPTiIsInBvc2l4Iiwiam9pbiIsInBhdGhuYW1lIiwibG9jYWxQYXRoIiwicHVibGljUGF0aCIsInN0YXJ0c1dpdGhMb2NhbCIsInN0YXJ0c1dpdGgiLCJzdGFydHNXaXRoUHVibGljIiwicGF0aExlbmd0aFRvVXNlIiwiTWF0aCIsIm1heCIsIm5ld1BhdGgiLCJBcnJheSIsImlzQXJyYXkiLCJib2R5IiwicmVxdWVzdHMiLCJyZXN0UmVxdWVzdCIsImVuZHNXaXRoIiwiY29uZmlnIiwicmF0ZUxpbWl0cyIsInJvdXRhYmxlUGF0aCIsImxpbWl0IiwicGF0aEV4cCIsInJlZ2V4cCIsInRlc3QiLCJmYWtlUmVxIiwiaXAiLCJtZXRob2QiLCJ0b1VwcGVyQ2FzZSIsImF1dGgiLCJpbmZvIiwiZmFrZVJlcyIsInNldEhlYWRlciIsImhhbmRsZXIiLCJlcnIiLCJDT05ORUNUSU9OX0ZBSUxFRCIsImVycm9yUmVzcG9uc2VNZXNzYWdlIiwiYmF0Y2giLCJ0cmFuc2FjdGlvblJldHJpZXMiLCJpbml0aWFsUHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidHJhbnNhY3Rpb24iLCJkYXRhYmFzZSIsImNyZWF0ZVRyYW5zYWN0aW9uYWxTZXNzaW9uIiwidGhlbiIsInByb21pc2VzIiwibWFwIiwicmVxdWVzdCIsInRyeVJvdXRlUmVxdWVzdCIsInJlc3BvbnNlIiwic3VjY2VzcyIsImVycm9yIiwiY29kZSIsIm1lc3NhZ2UiLCJhbGwiLCJyZXN1bHRzIiwiZmluZCIsInJlc3VsdCIsImFib3J0VHJhbnNhY3Rpb25hbFNlc3Npb24iLCJyZWplY3QiLCJjb21taXRUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsImNhdGNoIiwiZXJyb3JJdGVtIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXRjaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZTtcbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG4vLyBUaGVzZSBtZXRob2RzIGhhbmRsZSBiYXRjaCByZXF1ZXN0cy5cbmNvbnN0IGJhdGNoUGF0aCA9ICcvYmF0Y2gnO1xuXG4vLyBNb3VudHMgYSBiYXRjaC1oYW5kbGVyIG9udG8gYSBQcm9taXNlUm91dGVyLlxuZnVuY3Rpb24gbW91bnRPbnRvKHJvdXRlcikge1xuICByb3V0ZXIucm91dGUoJ1BPU1QnLCBiYXRjaFBhdGgsIHJlcSA9PiB7XG4gICAgcmV0dXJuIGhhbmRsZUJhdGNoKHJvdXRlciwgcmVxKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVVJMKHVybFN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgVVJMKHVybFN0cmluZyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFrZUJhdGNoUm91dGluZ1BhdGhGdW5jdGlvbihvcmlnaW5hbFVybCwgc2VydmVyVVJMLCBwdWJsaWNTZXJ2ZXJVUkwpIHtcbiAgc2VydmVyVVJMID0gc2VydmVyVVJMID8gcGFyc2VVUkwoc2VydmVyVVJMKSA6IHVuZGVmaW5lZDtcbiAgcHVibGljU2VydmVyVVJMID0gcHVibGljU2VydmVyVVJMID8gcGFyc2VVUkwocHVibGljU2VydmVyVVJMKSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBhcGlQcmVmaXhMZW5ndGggPSBvcmlnaW5hbFVybC5sZW5ndGggLSBiYXRjaFBhdGgubGVuZ3RoO1xuICBsZXQgYXBpUHJlZml4ID0gb3JpZ2luYWxVcmwuc2xpY2UoMCwgYXBpUHJlZml4TGVuZ3RoKTtcblxuICBjb25zdCBtYWtlUm91dGFibGVQYXRoID0gZnVuY3Rpb24gKHJlcXVlc3RQYXRoKSB7XG4gICAgLy8gVGhlIHJvdXRhYmxlUGF0aCBpcyB0aGUgcGF0aCBtaW51cyB0aGUgYXBpIHByZWZpeFxuICAgIGlmIChyZXF1ZXN0UGF0aC5zbGljZSgwLCBhcGlQcmVmaXgubGVuZ3RoKSAhPSBhcGlQcmVmaXgpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sICdjYW5ub3Qgcm91dGUgYmF0Y2ggcGF0aCAnICsgcmVxdWVzdFBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKCcvJywgcmVxdWVzdFBhdGguc2xpY2UoYXBpUHJlZml4Lmxlbmd0aCkpO1xuICB9O1xuXG4gIGlmIChzZXJ2ZXJVUkwgJiYgcHVibGljU2VydmVyVVJMICYmIHNlcnZlclVSTC5wYXRobmFtZSAhPSBwdWJsaWNTZXJ2ZXJVUkwucGF0aG5hbWUpIHtcbiAgICBjb25zdCBsb2NhbFBhdGggPSBzZXJ2ZXJVUkwucGF0aG5hbWU7XG4gICAgY29uc3QgcHVibGljUGF0aCA9IHB1YmxpY1NlcnZlclVSTC5wYXRobmFtZTtcblxuICAgIC8vIE92ZXJyaWRlIHRoZSBhcGkgcHJlZml4XG4gICAgYXBpUHJlZml4ID0gbG9jYWxQYXRoO1xuICAgIHJldHVybiBmdW5jdGlvbiAocmVxdWVzdFBhdGgpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgd2hpY2ggc2VydmVyIHVybCB3YXMgdXNlZCBieSBmaWd1cmluZyBvdXQgd2hpY2hcbiAgICAgIC8vIHBhdGggbW9yZSBjbG9zZWx5IG1hdGNoZXMgcmVxdWVzdFBhdGhcbiAgICAgIGNvbnN0IHN0YXJ0c1dpdGhMb2NhbCA9IHJlcXVlc3RQYXRoLnN0YXJ0c1dpdGgobG9jYWxQYXRoKTtcbiAgICAgIGNvbnN0IHN0YXJ0c1dpdGhQdWJsaWMgPSByZXF1ZXN0UGF0aC5zdGFydHNXaXRoKHB1YmxpY1BhdGgpO1xuICAgICAgY29uc3QgcGF0aExlbmd0aFRvVXNlID1cbiAgICAgICAgc3RhcnRzV2l0aExvY2FsICYmIHN0YXJ0c1dpdGhQdWJsaWNcbiAgICAgICAgICA/IE1hdGgubWF4KGxvY2FsUGF0aC5sZW5ndGgsIHB1YmxpY1BhdGgubGVuZ3RoKVxuICAgICAgICAgIDogc3RhcnRzV2l0aExvY2FsXG4gICAgICAgICAgICA/IGxvY2FsUGF0aC5sZW5ndGhcbiAgICAgICAgICAgIDogcHVibGljUGF0aC5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG5ld1BhdGggPSBwYXRoLnBvc2l4LmpvaW4oJy8nLCBsb2NhbFBhdGgsICcvJywgcmVxdWVzdFBhdGguc2xpY2UocGF0aExlbmd0aFRvVXNlKSk7XG5cbiAgICAgIC8vIFVzZSB0aGUgbWV0aG9kIGZvciBsb2NhbCByb3V0aW5nXG4gICAgICByZXR1cm4gbWFrZVJvdXRhYmxlUGF0aChuZXdQYXRoKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG1ha2VSb3V0YWJsZVBhdGg7XG59XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIHtyZXNwb25zZX0gb2JqZWN0LlxuLy8gVE9ETzogcGFzcyBhbG9uZyBhdXRoIGNvcnJlY3RseVxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlQmF0Y2gocm91dGVyLCByZXEpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHJlcS5ib2R5Py5yZXF1ZXN0cykpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9KU09OLCAncmVxdWVzdHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICB9XG4gIGZvciAoY29uc3QgcmVzdFJlcXVlc3Qgb2YgcmVxLmJvZHkucmVxdWVzdHMpIHtcbiAgICBpZiAoIXJlc3RSZXF1ZXN0IHx8IHR5cGVvZiByZXN0UmVxdWVzdCAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIHJlc3RSZXF1ZXN0LnBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9KU09OLCAnYmF0Y2ggcmVxdWVzdCBwYXRoIG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgYmF0Y2ggcGF0aHMgYXJlIGFsbCBmcm9tIHRoZSByb290IG9mIG91ciBkb21haW4uXG4gIC8vIFRoYXQgbWVhbnMgdGhleSBpbmNsdWRlIHRoZSBBUEkgcHJlZml4LCB0aGF0IHRoZSBBUEkgaXMgbW91bnRlZFxuICAvLyB0by4gSG93ZXZlciwgb3VyIHByb21pc2Ugcm91dGVyIGRvZXMgbm90IHJvdXRlIHRoZSBhcGkgcHJlZml4LiBTb1xuICAvLyB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIEFQSSBwcmVmaXgsIHNvIHRoYXQgd2UgY2FuIHN0cmlwIGl0XG4gIC8vIGZyb20gYWxsIHRoZSBzdWJyZXF1ZXN0cy5cbiAgaWYgKCFyZXEub3JpZ2luYWxVcmwuZW5kc1dpdGgoYmF0Y2hQYXRoKSkge1xuICAgIHRocm93ICdpbnRlcm5hbCByb3V0aW5nIHByb2JsZW0gLSBleHBlY3RlZCB1cmwgdG8gZW5kIHdpdGggYmF0Y2gnO1xuICB9XG5cbiAgY29uc3QgbWFrZVJvdXRhYmxlUGF0aCA9IG1ha2VCYXRjaFJvdXRpbmdQYXRoRnVuY3Rpb24oXG4gICAgcmVxLm9yaWdpbmFsVXJsLFxuICAgIHJlcS5jb25maWcuc2VydmVyVVJMLFxuICAgIHJlcS5jb25maWcucHVibGljU2VydmVyVVJMXG4gICk7XG5cbiAgLy8gRW5mb3JjZSByYXRlIGxpbWl0cyBmb3IgZWFjaCBiYXRjaCBzdWItcmVxdWVzdCBieSBpbnZva2luZyB0aGVcbiAgLy8gcmF0ZSBsaW1pdCBoYW5kbGVyLiBUaGlzIGVuc3VyZXMgc3ViLXJlcXVlc3RzIGNvbnN1bWUgdG9rZW5zIGZyb21cbiAgLy8gdGhlIHNhbWUgd2luZG93IHN0YXRlIGFzIGRpcmVjdCByZXF1ZXN0cy5cbiAgY29uc3QgcmF0ZUxpbWl0cyA9IHJlcS5jb25maWcucmF0ZUxpbWl0cyB8fCBbXTtcbiAgZm9yIChjb25zdCByZXN0UmVxdWVzdCBvZiByZXEuYm9keS5yZXF1ZXN0cykge1xuICAgIGNvbnN0IHJvdXRhYmxlUGF0aCA9IG1ha2VSb3V0YWJsZVBhdGgocmVzdFJlcXVlc3QucGF0aCk7XG4gICAgZm9yIChjb25zdCBsaW1pdCBvZiByYXRlTGltaXRzKSB7XG4gICAgICBjb25zdCBwYXRoRXhwID0gbGltaXQucGF0aC5yZWdleHAgfHwgbGltaXQucGF0aDtcbiAgICAgIGlmICghcGF0aEV4cC50ZXN0KHJvdXRhYmxlUGF0aCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBmYWtlUmVxID0ge1xuICAgICAgICBpcDogcmVxLmlwIHx8IHJlcS5jb25maWc/LmlwIHx8ICcxMjcuMC4wLjEnLFxuICAgICAgICBtZXRob2Q6IChyZXN0UmVxdWVzdC5tZXRob2QgfHwgJ0dFVCcpLnRvVXBwZXJDYXNlKCksXG4gICAgICAgIGNvbmZpZzogcmVxLmNvbmZpZyxcbiAgICAgICAgYXV0aDogcmVxLmF1dGgsXG4gICAgICAgIGluZm86IHJlcS5pbmZvLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZha2VSZXMgPSB7IHNldEhlYWRlcigpIHt9IH07XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBsaW1pdC5oYW5kbGVyKGZha2VSZXEsIGZha2VSZXMsIGVyciA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLkNPTk5FQ1RJT05fRkFJTEVELFxuICAgICAgICAgIGxpbWl0LmVycm9yUmVzcG9uc2VNZXNzYWdlIHx8ICdUb28gbWFueSByZXF1ZXN0cydcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBiYXRjaCA9IHRyYW5zYWN0aW9uUmV0cmllcyA9PiB7XG4gICAgbGV0IGluaXRpYWxQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgaWYgKHJlcS5ib2R5Py50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgaW5pdGlhbFByb21pc2UgPSByZXEuY29uZmlnLmRhdGFiYXNlLmNyZWF0ZVRyYW5zYWN0aW9uYWxTZXNzaW9uKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluaXRpYWxQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSByZXEuYm9keT8ucmVxdWVzdHMubWFwKHJlc3RSZXF1ZXN0ID0+IHtcbiAgICAgICAgY29uc3Qgcm91dGFibGVQYXRoID0gbWFrZVJvdXRhYmxlUGF0aChyZXN0UmVxdWVzdC5wYXRoKTtcblxuICAgICAgICAvLyBDb25zdHJ1Y3QgYSByZXF1ZXN0IHRoYXQgd2UgY2FuIHNlbmQgdG8gYSBoYW5kbGVyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgICAgYm9keTogcmVzdFJlcXVlc3QuYm9keSxcbiAgICAgICAgICBjb25maWc6IHJlcS5jb25maWcsXG4gICAgICAgICAgYXV0aDogcmVxLmF1dGgsXG4gICAgICAgICAgaW5mbzogcmVxLmluZm8sXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlci50cnlSb3V0ZVJlcXVlc3QocmVzdFJlcXVlc3QubWV0aG9kLCByb3V0YWJsZVBhdGgsIHJlcXVlc3QpLnRoZW4oXG4gICAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogcmVzcG9uc2UucmVzcG9uc2UgfTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IGVycm9yOiB7IGNvZGU6IGVycm9yLmNvZGUsIGVycm9yOiBlcnJvci5tZXNzYWdlIH0gfTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgICAudGhlbihyZXN1bHRzID0+IHtcbiAgICAgICAgICBpZiAocmVxLmJvZHk/LnRyYW5zYWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAocmVzdWx0cy5maW5kKHJlc3VsdCA9PiB0eXBlb2YgcmVzdWx0LmVycm9yID09PSAnb2JqZWN0JykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UuYWJvcnRUcmFuc2FjdGlvbmFsU2Vzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7IHJlc3BvbnNlOiByZXN1bHRzIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmNvbW1pdFRyYW5zYWN0aW9uYWxTZXNzaW9uKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3VsdHMgfTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXN1bHRzIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yICYmXG4gICAgICAgICAgICBlcnJvci5yZXNwb25zZSAmJlxuICAgICAgICAgICAgZXJyb3IucmVzcG9uc2UuZmluZChcbiAgICAgICAgICAgICAgZXJyb3JJdGVtID0+IHR5cGVvZiBlcnJvckl0ZW0uZXJyb3IgPT09ICdvYmplY3QnICYmIGVycm9ySXRlbS5lcnJvci5jb2RlID09PSAyNTFcbiAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uUmV0cmllcyA+IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBiYXRjaCh0cmFuc2FjdGlvblJldHJpZXMgLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuICByZXR1cm4gYmF0Y2goNSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtb3VudE9udG8sXG4gIG1ha2VCYXRjaFJvdXRpbmdQYXRoRnVuY3Rpb24sXG59O1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDRCxLQUFLO0FBQ3pDLE1BQU1FLElBQUksR0FBR0QsT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUM1QjtBQUNBLE1BQU1FLFNBQVMsR0FBRyxRQUFROztBQUUxQjtBQUNBLFNBQVNDLFNBQVNBLENBQUNDLE1BQU0sRUFBRTtFQUN6QkEsTUFBTSxDQUFDQyxLQUFLLENBQUMsTUFBTSxFQUFFSCxTQUFTLEVBQUVJLEdBQUcsSUFBSTtJQUNyQyxPQUFPQyxXQUFXLENBQUNILE1BQU0sRUFBRUUsR0FBRyxDQUFDO0VBQ2pDLENBQUMsQ0FBQztBQUNKO0FBRUEsU0FBU0UsUUFBUUEsQ0FBQ0MsU0FBUyxFQUFFO0VBQzNCLElBQUk7SUFDRixPQUFPLElBQUlDLEdBQUcsQ0FBQ0QsU0FBUyxDQUFDO0VBQzNCLENBQUMsQ0FBQyxNQUFNO0lBQ04sT0FBT0UsU0FBUztFQUNsQjtBQUNGO0FBRUEsU0FBU0MsNEJBQTRCQSxDQUFDQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsZUFBZSxFQUFFO0VBQzdFRCxTQUFTLEdBQUdBLFNBQVMsR0FBR04sUUFBUSxDQUFDTSxTQUFTLENBQUMsR0FBR0gs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parse-server",
3
- "version": "9.6.0-alpha.33",
3
+ "version": "9.6.0-alpha.34",
4
4
  "description": "An express module providing a Parse-compatible API server",
5
5
  "main": "lib/index.js",
6
6
  "repository": {