verdaccio 5.2.3 → 5.4.0

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.
@@ -25,9 +25,7 @@ var _package = _interopRequireDefault(require("./api/package"));
25
25
 
26
26
  var _stars = _interopRequireDefault(require("./api/stars"));
27
27
 
28
- var _profile = _interopRequireDefault(require("./api/v1/profile"));
29
-
30
- var _token = _interopRequireDefault(require("./api/v1/token"));
28
+ var _v = _interopRequireDefault(require("./api/v1"));
31
29
 
32
30
  var _search2 = _interopRequireDefault(require("./api/v1/search"));
33
31
 
@@ -71,15 +69,14 @@ function _default(config, auth, storage) {
71
69
 
72
70
  (0, _whoami.default)(app);
73
71
  (0, _package.default)(app, auth, storage, config);
74
- (0, _profile.default)(app, auth);
75
72
  (0, _search.default)(app, auth, storage);
76
- (0, _user.default)(app, auth, config);
77
73
  (0, _distTags.default)(app, auth, storage);
78
74
  (0, _publish.default)(app, auth, storage, config);
79
75
  (0, _ping.default)(app);
80
76
  (0, _stars.default)(app, storage);
81
77
  (0, _search2.default)(app, auth, storage);
82
- (0, _token.default)(app, auth, storage, config);
78
+ (0, _user.default)(app, auth, config);
79
+ app.use((0, _v.default)(auth, storage, config));
83
80
  return app;
84
81
  }
85
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvaW5kZXgudHMiXSwibmFtZXMiOlsibWF0Y2giLCJ2YWxpZGF0ZU5hbWUiLCJ2YWxpZGF0ZVBhY2thZ2UiLCJlbmNvZGVTY29wZVBhY2thZ2UiLCJhbnRpTG9vcCIsInJlcXVpcmUiLCJjb25maWciLCJhdXRoIiwic3RvcmFnZSIsImFwcCIsImV4cHJlc3MiLCJSb3V0ZXIiLCJwYXJhbSIsInVzZSIsImFwaUpXVG1pZGRsZXdhcmUiLCJib2R5UGFyc2VyIiwianNvbiIsInN0cmljdCIsImxpbWl0IiwibWF4X2JvZHlfc2l6ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTTtBQUFFQSxFQUFBQSxLQUFGO0FBQVNDLEVBQUFBLFlBQVQ7QUFBdUJDLEVBQUFBLGVBQXZCO0FBQXdDQyxFQUFBQSxrQkFBeEM7QUFBNERDLEVBQUFBO0FBQTVELElBQXlFQyxPQUFPLENBQUMsZUFBRCxDQUF0Rjs7QUFFZSxrQkFBVUMsTUFBVixFQUEwQkMsSUFBMUIsRUFBdUNDLE9BQXZDLEVBQWlFO0FBQzlFO0FBQ0EsUUFBTUMsR0FBRyxHQUFHQyxpQkFBUUMsTUFBUixFQUFaO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQUYsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsU0FBVixFQUFxQlYsZUFBckI7QUFDQU8sRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsVUFBVixFQUFzQlgsWUFBdEI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsS0FBVixFQUFpQlgsWUFBakI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsU0FBVixFQUFxQlgsWUFBckI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsVUFBVixFQUFzQlgsWUFBdEI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsT0FBVixFQUFtQlgsWUFBbkIsRUFYOEUsQ0FhOUU7QUFDQTs7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsTUFBVixFQUFrQlosS0FBSyxDQUFDLFFBQUQsQ0FBdkI7QUFDQVMsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsa0JBQVYsRUFBOEJaLEtBQUssQ0FBQyxzQkFBRCxDQUFuQztBQUNBUyxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxVQUFWLEVBQXNCWixLQUFLLENBQUMsSUFBRCxDQUEzQjtBQUVBUyxFQUFBQSxHQUFHLENBQUNJLEdBQUosQ0FBUU4sSUFBSSxDQUFDTyxnQkFBTCxFQUFSO0FBQ0FMLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRRSxvQkFBV0MsSUFBWCxDQUFnQjtBQUFFQyxJQUFBQSxNQUFNLEVBQUUsS0FBVjtBQUFpQkMsSUFBQUEsS0FBSyxFQUFFWixNQUFNLENBQUNhLGFBQVAsSUFBd0I7QUFBaEQsR0FBaEIsQ0FBUjtBQUNBVixFQUFBQSxHQUFHLENBQUNJLEdBQUosQ0FBUVQsUUFBUSxDQUFDRSxNQUFELENBQWhCLEVBckI4RSxDQXNCOUU7O0FBQ0FHLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRVixrQkFBUixFQXZCOEUsQ0F3QjlFOztBQUNBLHVCQUFPTSxHQUFQO0FBQ0Esd0JBQUlBLEdBQUosRUFBU0YsSUFBVCxFQUFlQyxPQUFmLEVBQXdCRixNQUF4QjtBQUNBLHdCQUFRRyxHQUFSLEVBQWFGLElBQWI7QUFDQSx1QkFBT0UsR0FBUCxFQUFZRixJQUFaLEVBQWtCQyxPQUFsQjtBQUNBLHFCQUFLQyxHQUFMLEVBQVVGLElBQVYsRUFBZ0JELE1BQWhCO0FBQ0EseUJBQVNHLEdBQVQsRUFBY0YsSUFBZCxFQUFvQkMsT0FBcEI7QUFDQSx3QkFBUUMsR0FBUixFQUFhRixJQUFiLEVBQW1CQyxPQUFuQixFQUE0QkYsTUFBNUI7QUFDQSxxQkFBS0csR0FBTDtBQUNBLHNCQUFNQSxHQUFOLEVBQVdELE9BQVg7QUFDQSx3QkFBU0MsR0FBVCxFQUFjRixJQUFkLEVBQW9CQyxPQUFwQjtBQUNBLHNCQUFNQyxHQUFOLEVBQVdGLElBQVgsRUFBaUJDLE9BQWpCLEVBQTBCRixNQUExQjtBQUNBLFNBQU9HLEdBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBleHByZXNzIGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGJvZHlQYXJzZXIgZnJvbSAnYm9keS1wYXJzZXInO1xuaW1wb3J0IHsgSUF1dGgsIElTdG9yYWdlSGFuZGxlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB3aG9hbWkgZnJvbSAnLi9hcGkvd2hvYW1pJztcbmltcG9ydCBwaW5nIGZyb20gJy4vYXBpL3BpbmcnO1xuaW1wb3J0IHVzZXIgZnJvbSAnLi9hcGkvdXNlcic7XG5pbXBvcnQgZGlzdFRhZ3MgZnJvbSAnLi9hcGkvZGlzdC10YWdzJztcbmltcG9ydCBwdWJsaXNoIGZyb20gJy4vYXBpL3B1Ymxpc2gnO1xuaW1wb3J0IHNlYXJjaCBmcm9tICcuL2FwaS9zZWFyY2gnO1xuaW1wb3J0IHBrZyBmcm9tICcuL2FwaS9wYWNrYWdlJztcbmltcG9ydCBzdGFycyBmcm9tICcuL2FwaS9zdGFycyc7XG5pbXBvcnQgcHJvZmlsZSBmcm9tICcuL2FwaS92MS9wcm9maWxlJztcbmltcG9ydCB0b2tlbiBmcm9tICcuL2FwaS92MS90b2tlbic7XG5pbXBvcnQgdjFTZWFyY2ggZnJvbSAnLi9hcGkvdjEvc2VhcmNoJztcblxuY29uc3QgeyBtYXRjaCwgdmFsaWRhdGVOYW1lLCB2YWxpZGF0ZVBhY2thZ2UsIGVuY29kZVNjb3BlUGFja2FnZSwgYW50aUxvb3AgfSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUnKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZzogQ29uZmlnLCBhdXRoOiBJQXV0aCwgc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyKSB7XG4gIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICBjb25zdCBhcHAgPSBleHByZXNzLlJvdXRlcigpO1xuICAvKiBlc2xpbnQgbmV3LWNhcDpvZmYgKi9cbiAgLy8gdmFsaWRhdGUgYWxsIG9mIHRoZXNlIHBhcmFtcyBhcyBhIHBhY2thZ2UgbmFtZVxuICAvLyB0aGlzIG1pZ2h0IGJlIHRvbyBoYXJzaCwgc28gYXNrIGlmIGl0IGNhdXNlcyB0cm91YmxlXG4gIGFwcC5wYXJhbSgncGFja2FnZScsIHZhbGlkYXRlUGFja2FnZSk7XG4gIGFwcC5wYXJhbSgnZmlsZW5hbWUnLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3RhZycsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndmVyc2lvbicsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgncmV2aXNpb24nLCB2YWxpZGF0ZU5hbWUpO1xuICBhcHAucGFyYW0oJ3Rva2VuJywgdmFsaWRhdGVOYW1lKTtcblxuICAvLyB0aGVzZSBjYW4ndCBiZSBzYWZlbHkgcHV0IGludG8gZXhwcmVzcyB1cmwgZm9yIHNvbWUgcmVhc29uXG4gIC8vIFRPRE86IEZvciBzb21lIHJlYXNvbj8gd2hhdCByZWFzb24/XG4gIGFwcC5wYXJhbSgnX3JldicsIG1hdGNoKC9eLXJldiQvKSk7XG4gIGFwcC5wYXJhbSgnb3JnX2NvdWNoZGJfdXNlcicsIG1hdGNoKC9eb3JnXFwuY291Y2hkYlxcLnVzZXI6LykpO1xuICBhcHAucGFyYW0oJ2FueXRoaW5nJywgbWF0Y2goLy4qLykpO1xuXG4gIGFwcC51c2UoYXV0aC5hcGlKV1RtaWRkbGV3YXJlKCkpO1xuICBhcHAudXNlKGJvZHlQYXJzZXIuanNvbih7IHN0cmljdDogZmFsc2UsIGxpbWl0OiBjb25maWcubWF4X2JvZHlfc2l6ZSB8fCAnMTBtYicgfSkpO1xuICBhcHAudXNlKGFudGlMb29wKGNvbmZpZykpO1xuICAvLyBlbmNvZGUgLyBpbiBhIHNjb3BlZCBwYWNrYWdlIG5hbWUgdG8gYmUgbWF0Y2hlZCBhcyBhIHNpbmdsZSBwYXJhbWV0ZXIgaW4gcm91dGVzXG4gIGFwcC51c2UoZW5jb2RlU2NvcGVQYWNrYWdlKTtcbiAgLy8gZm9yIFwibnBtIHdob2FtaVwiXG4gIHdob2FtaShhcHApO1xuICBwa2coYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICBwcm9maWxlKGFwcCwgYXV0aCk7XG4gIHNlYXJjaChhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB1c2VyKGFwcCwgYXV0aCwgY29uZmlnKTtcbiAgZGlzdFRhZ3MoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgcHVibGlzaChhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHBpbmcoYXBwKTtcbiAgc3RhcnMoYXBwLCBzdG9yYWdlKTtcbiAgdjFTZWFyY2goYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgdG9rZW4oYXBwLCBhdXRoLCBzdG9yYWdlLCBjb25maWcpO1xuICByZXR1cm4gYXBwO1xufVxuIl19
82
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvaW5kZXgudHMiXSwibmFtZXMiOlsibWF0Y2giLCJ2YWxpZGF0ZU5hbWUiLCJ2YWxpZGF0ZVBhY2thZ2UiLCJlbmNvZGVTY29wZVBhY2thZ2UiLCJhbnRpTG9vcCIsInJlcXVpcmUiLCJjb25maWciLCJhdXRoIiwic3RvcmFnZSIsImFwcCIsImV4cHJlc3MiLCJSb3V0ZXIiLCJwYXJhbSIsInVzZSIsImFwaUpXVG1pZGRsZXdhcmUiLCJib2R5UGFyc2VyIiwianNvbiIsInN0cmljdCIsImxpbWl0IiwibWF4X2JvZHlfc2l6ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTTtBQUFFQSxFQUFBQSxLQUFGO0FBQVNDLEVBQUFBLFlBQVQ7QUFBdUJDLEVBQUFBLGVBQXZCO0FBQXdDQyxFQUFBQSxrQkFBeEM7QUFBNERDLEVBQUFBO0FBQTVELElBQXlFQyxPQUFPLENBQUMsZUFBRCxDQUF0Rjs7QUFFZSxrQkFBVUMsTUFBVixFQUEwQkMsSUFBMUIsRUFBdUNDLE9BQXZDLEVBQWlFO0FBQzlFO0FBQ0EsUUFBTUMsR0FBRyxHQUFHQyxpQkFBUUMsTUFBUixFQUFaO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQUYsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsU0FBVixFQUFxQlYsZUFBckI7QUFDQU8sRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsVUFBVixFQUFzQlgsWUFBdEI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsS0FBVixFQUFpQlgsWUFBakI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsU0FBVixFQUFxQlgsWUFBckI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsVUFBVixFQUFzQlgsWUFBdEI7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsT0FBVixFQUFtQlgsWUFBbkIsRUFYOEUsQ0FhOUU7QUFDQTs7QUFDQVEsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsTUFBVixFQUFrQlosS0FBSyxDQUFDLFFBQUQsQ0FBdkI7QUFDQVMsRUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsa0JBQVYsRUFBOEJaLEtBQUssQ0FBQyxzQkFBRCxDQUFuQztBQUNBUyxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxVQUFWLEVBQXNCWixLQUFLLENBQUMsSUFBRCxDQUEzQjtBQUVBUyxFQUFBQSxHQUFHLENBQUNJLEdBQUosQ0FBUU4sSUFBSSxDQUFDTyxnQkFBTCxFQUFSO0FBQ0FMLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRRSxvQkFBV0MsSUFBWCxDQUFnQjtBQUFFQyxJQUFBQSxNQUFNLEVBQUUsS0FBVjtBQUFpQkMsSUFBQUEsS0FBSyxFQUFFWixNQUFNLENBQUNhLGFBQVAsSUFBd0I7QUFBaEQsR0FBaEIsQ0FBUjtBQUNBVixFQUFBQSxHQUFHLENBQUNJLEdBQUosQ0FBUVQsUUFBUSxDQUFDRSxNQUFELENBQWhCLEVBckI4RSxDQXNCOUU7O0FBQ0FHLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRVixrQkFBUixFQXZCOEUsQ0F3QjlFOztBQUNBLHVCQUFPTSxHQUFQO0FBQ0Esd0JBQUlBLEdBQUosRUFBU0YsSUFBVCxFQUFlQyxPQUFmLEVBQXdCRixNQUF4QjtBQUNBLHVCQUFPRyxHQUFQLEVBQVlGLElBQVosRUFBa0JDLE9BQWxCO0FBQ0EseUJBQVNDLEdBQVQsRUFBY0YsSUFBZCxFQUFvQkMsT0FBcEI7QUFDQSx3QkFBUUMsR0FBUixFQUFhRixJQUFiLEVBQW1CQyxPQUFuQixFQUE0QkYsTUFBNUI7QUFDQSxxQkFBS0csR0FBTDtBQUNBLHNCQUFNQSxHQUFOLEVBQVdELE9BQVg7QUFDQSx3QkFBU0MsR0FBVCxFQUFjRixJQUFkLEVBQW9CQyxPQUFwQjtBQUNBLHFCQUFLQyxHQUFMLEVBQVVGLElBQVYsRUFBZ0JELE1BQWhCO0FBQ0FHLEVBQUFBLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLGdCQUFNTixJQUFOLEVBQVlDLE9BQVosRUFBcUJGLE1BQXJCLENBQVI7QUFDQSxTQUFPRyxHQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWcgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBib2R5UGFyc2VyIGZyb20gJ2JvZHktcGFyc2VyJztcbmltcG9ydCB7IElBdXRoLCBJU3RvcmFnZUhhbmRsZXIgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgd2hvYW1pIGZyb20gJy4vYXBpL3dob2FtaSc7XG5pbXBvcnQgcGluZyBmcm9tICcuL2FwaS9waW5nJztcbmltcG9ydCB1c2VyIGZyb20gJy4vYXBpL3VzZXInO1xuaW1wb3J0IGRpc3RUYWdzIGZyb20gJy4vYXBpL2Rpc3QtdGFncyc7XG5pbXBvcnQgcHVibGlzaCBmcm9tICcuL2FwaS9wdWJsaXNoJztcbmltcG9ydCBzZWFyY2ggZnJvbSAnLi9hcGkvc2VhcmNoJztcbmltcG9ydCBwa2cgZnJvbSAnLi9hcGkvcGFja2FnZSc7XG5pbXBvcnQgc3RhcnMgZnJvbSAnLi9hcGkvc3RhcnMnO1xuaW1wb3J0IG5wbVYxIGZyb20gJy4vYXBpL3YxJztcbmltcG9ydCB2MVNlYXJjaCBmcm9tICcuL2FwaS92MS9zZWFyY2gnO1xuXG5jb25zdCB7IG1hdGNoLCB2YWxpZGF0ZU5hbWUsIHZhbGlkYXRlUGFja2FnZSwgZW5jb2RlU2NvcGVQYWNrYWdlLCBhbnRpTG9vcCB9ID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZScpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoY29uZmlnOiBDb25maWcsIGF1dGg6IElBdXRoLCBzdG9yYWdlOiBJU3RvcmFnZUhhbmRsZXIpIHtcbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MuUm91dGVyKCk7XG4gIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICAvLyB2YWxpZGF0ZSBhbGwgb2YgdGhlc2UgcGFyYW1zIGFzIGEgcGFja2FnZSBuYW1lXG4gIC8vIHRoaXMgbWlnaHQgYmUgdG9vIGhhcnNoLCBzbyBhc2sgaWYgaXQgY2F1c2VzIHRyb3VibGVcbiAgYXBwLnBhcmFtKCdwYWNrYWdlJywgdmFsaWRhdGVQYWNrYWdlKTtcbiAgYXBwLnBhcmFtKCdmaWxlbmFtZScsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndGFnJywgdmFsaWRhdGVOYW1lKTtcbiAgYXBwLnBhcmFtKCd2ZXJzaW9uJywgdmFsaWRhdGVOYW1lKTtcbiAgYXBwLnBhcmFtKCdyZXZpc2lvbicsIHZhbGlkYXRlTmFtZSk7XG4gIGFwcC5wYXJhbSgndG9rZW4nLCB2YWxpZGF0ZU5hbWUpO1xuXG4gIC8vIHRoZXNlIGNhbid0IGJlIHNhZmVseSBwdXQgaW50byBleHByZXNzIHVybCBmb3Igc29tZSByZWFzb25cbiAgLy8gVE9ETzogRm9yIHNvbWUgcmVhc29uPyB3aGF0IHJlYXNvbj9cbiAgYXBwLnBhcmFtKCdfcmV2JywgbWF0Y2goL14tcmV2JC8pKTtcbiAgYXBwLnBhcmFtKCdvcmdfY291Y2hkYl91c2VyJywgbWF0Y2goL15vcmdcXC5jb3VjaGRiXFwudXNlcjovKSk7XG4gIGFwcC5wYXJhbSgnYW55dGhpbmcnLCBtYXRjaCgvLiovKSk7XG5cbiAgYXBwLnVzZShhdXRoLmFwaUpXVG1pZGRsZXdhcmUoKSk7XG4gIGFwcC51c2UoYm9keVBhcnNlci5qc29uKHsgc3RyaWN0OiBmYWxzZSwgbGltaXQ6IGNvbmZpZy5tYXhfYm9keV9zaXplIHx8ICcxMG1iJyB9KSk7XG4gIGFwcC51c2UoYW50aUxvb3AoY29uZmlnKSk7XG4gIC8vIGVuY29kZSAvIGluIGEgc2NvcGVkIHBhY2thZ2UgbmFtZSB0byBiZSBtYXRjaGVkIGFzIGEgc2luZ2xlIHBhcmFtZXRlciBpbiByb3V0ZXNcbiAgYXBwLnVzZShlbmNvZGVTY29wZVBhY2thZ2UpO1xuICAvLyBmb3IgXCJucG0gd2hvYW1pXCJcbiAgd2hvYW1pKGFwcCk7XG4gIHBrZyhhcHAsIGF1dGgsIHN0b3JhZ2UsIGNvbmZpZyk7XG4gIHNlYXJjaChhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICBkaXN0VGFncyhhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICBwdWJsaXNoKGFwcCwgYXV0aCwgc3RvcmFnZSwgY29uZmlnKTtcbiAgcGluZyhhcHApO1xuICBzdGFycyhhcHAsIHN0b3JhZ2UpO1xuICB2MVNlYXJjaChhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB1c2VyKGFwcCwgYXV0aCwgY29uZmlnKTtcbiAgYXBwLnVzZShucG1WMShhdXRoLCBzdG9yYWdlLCBjb25maWcpKTtcbiAgcmV0dXJuIGFwcDtcbn1cbiJdfQ==
@@ -49,10 +49,16 @@ const defineAPI = function (config, storage) {
49
49
 
50
50
  app.use((0, _middleware.log)(config));
51
51
  app.use(_middleware.errorReportingMiddleware);
52
- app.use(function (req, res, next) {
53
- res.setHeader('X-Powered-By', config.user_agent);
54
- next();
55
- });
52
+
53
+ if (config.user_agent) {
54
+ app.use(function (req, res, next) {
55
+ res.setHeader('X-Powered-By', (0, _utils.getUserAgent)(config.user_agent));
56
+ next();
57
+ });
58
+ } else {
59
+ app.disable('x-powered-by');
60
+ }
61
+
56
62
  app.use((0, _compression.default)());
57
63
  app.get('/-/static/favicon.ico', (0, _middleware.serveFavicon)(config)); // Hook for tests only
58
64
 
@@ -125,4 +131,4 @@ var _default = async function _default(configHash) {
125
131
  };
126
132
 
127
133
  exports.default = _default;
128
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvaW5kZXgudHMiXSwibmFtZXMiOlsiZGVmaW5lQVBJIiwiY29uZmlnIiwic3RvcmFnZSIsImF1dGgiLCJBdXRoIiwiYXBwIiwic2V0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlIiwiZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlIiwicmVxIiwicmVzIiwibmV4dCIsInNldEhlYWRlciIsInVzZXJfYWdlbnQiLCJnZXQiLCJfZGVidWciLCJzZWxmX3BhdGgiLCJwbHVnaW5fcGFyYW1zIiwibG9nZ2VyIiwicGx1Z2lucyIsIm1pZGRsZXdhcmVzIiwicGx1Z2luIiwicmVnaXN0ZXJfbWlkZGxld2FyZXMiLCJmb3JFYWNoIiwiXyIsIkVycm9yQ29kZSIsImdldE5vdEZvdW5kIiwiQVBJX0VSUk9SIiwiV0VCX0RJU0FCTEVEIiwiRklMRV9OT1RfRk9VTkQiLCJlcnIiLCJpc0Vycm9yIiwiY29kZSIsInN0YXR1c0NvZGUiLCJIVFRQX1NUQVRVUyIsIk5PVF9NT0RJRklFRCIsImlzRnVuY3Rpb24iLCJsb2NhbHMiLCJyZXBvcnRfZXJyb3IiLCJub29wIiwiZmluYWwiLCJjb25maWdIYXNoIiwibG9ncyIsIkFwcENvbmZpZyIsImNsb25lRGVlcCIsImZpbHRlcnMiLCJmaWx0ZXJfbWV0YWRhdGEiLCJTdG9yYWdlIiwiaW5pdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsU0FBUyxHQUFHLFVBQVVDLE1BQVYsRUFBMkJDLE9BQTNCLEVBQTBEO0FBQzFFLFFBQU1DLElBQVcsR0FBRyxJQUFJQyxhQUFKLENBQVNILE1BQVQsQ0FBcEI7QUFDQSxRQUFNSSxHQUFnQixHQUFHLHVCQUF6QixDQUYwRSxDQUkxRTtBQUNBOztBQUNBQSxFQUFBQSxHQUFH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aUQsSUFBUixDQUFhbEQsTUFBYixFQUFxQitDLE9BQXJCLENBQU47QUFDQSxTQUFPaEQsU0FBUyxDQUFDQyxNQUFELEVBQVNDLE9BQVQsQ0FBaEI7QUFDRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBleHByZXNzLCB7IEFwcGxpY2F0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgY29tcHJlc3Npb24gZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGNvcnMgZnJvbSAnY29ycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3IgfSBmcm9tICdodHRwLWVycm9ycyc7XG5pbXBvcnQgeyBDb25maWcgYXMgSUNvbmZpZywgSVBsdWdpbk1pZGRsZXdhcmUsIElQbHVnaW5TdG9yYWdlRmlsdGVyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgU3RvcmFnZSBmcm9tICcuLi9saWIvc3RvcmFnZSc7XG5pbXBvcnQgbG9hZFBsdWdpbiBmcm9tICcuLi9saWIvcGx1Z2luLWxvYWRlcic7XG5pbXBvcnQgQXV0aCBmcm9tICcuLi9saWIvYXV0aCc7XG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBIVFRQX1NUQVRVUyB9IGZyb20gJy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IEFwcENvbmZpZyBmcm9tICcuLi9saWIvY29uZmlnJztcbmltcG9ydCB7ICRSZXNwb25zZUV4dGVuZCwgJFJlcXVlc3RFeHRlbmQsICROZXh0RnVuY3Rpb25WZXIsIElTdG9yYWdlSGFuZGxlciwgSUF1dGggfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBzZXR1cCwgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgd2ViQVBJIGZyb20gJy4vd2ViL2FwaSc7XG5pbXBvcnQgd2ViIGZyb20gJy4vd2ViJztcbmltcG9ydCBhcGlFbmRwb2ludCBmcm9tICcuL2VuZHBvaW50JztcbmltcG9ydCBob29rRGVidWcgZnJvbSAnLi9kZWJ1Zyc7XG5pbXBvcnQgeyBsb2csIGZpbmFsLCBlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUsIHNlcnZlRmF2aWNvbiB9IGZyb20gJy4vbWlkZGxld2FyZSc7XG5cbmNvbnN0IGRlZmluZUFQSSA9IGZ1bmN0aW9uIChjb25maWc6IElDb25maWcsIHN0b3JhZ2U6IElTdG9yYWdlSGFuZGxlcik6IGFueSB7XG4gIGNvbnN0IGF1dGg6IElBdXRoID0gbmV3IEF1dGgoY29uZmlnKTtcbiAgY29uc3QgYXBwOiBBcHBsaWNhdGlvbiA9IGV4cHJlc3MoKTtcblxuICAvLyBydW4gaW4gcHJvZHVjdGlvbiBtb2RlIGJ5IGRlZmF1bHQsIGp1c3QgaW4gY2FzZVxuICAvLyBpdCBzaG91bGRuJ3QgbWFrZSBhbnkgZGlmZmVyZW5jZSBhbnl3YXlcbiAgYXBwLnNldCgnZW52JywgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgJ3Byb2R1Y3Rpb24nKTtcbiAgYXBwLnVzZShjb3JzKCkpO1xuXG4gIC8vIFJvdXRlciBzZXR1cFxuICBhcHAudXNlKGxvZyhjb25maWcpKTtcbiAgYXBwLnVzZShlcnJvclJlcG9ydGluZ01pZGRsZXdhcmUpO1xuICBhcHAudXNlKGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIHJlcy5zZXRIZWFkZXIoJ1gtUG93ZXJlZC1CeScsIGNvbmZpZy51c2VyX2FnZW50KTtcbiAgICBuZXh0KCk7XG4gIH0pO1xuXG4gIGFwcC51c2UoY29tcHJlc3Npb24oKSk7XG5cbiAgYXBwLmdldCgnLy0vc3RhdGljL2Zhdmljb24uaWNvJywgc2VydmVGYXZpY29uKGNvbmZpZykpO1xuXG4gIC8vIEhvb2sgZm9yIHRlc3RzIG9ubHlcbiAgaWYgKGNvbmZpZy5fZGVidWcpIHtcbiAgICBob29rRGVidWcoYXBwLCBjb25maWcuc2VsZl9wYXRoKTtcbiAgfVxuXG4gIC8vIHJlZ2lzdGVyIG1pZGRsZXdhcmUgcGx1Z2luc1xuICBjb25zdCBwbHVnaW5fcGFyYW1zID0ge1xuICAgIGNvbmZpZzogY29uZmlnLFxuICAgIGxvZ2dlcjogbG9nZ2VyLFxuICB9O1xuXG4gIGNvbnN0IHBsdWdpbnM6IElQbHVnaW5NaWRkbGV3YXJlPElDb25maWc+W10gPSBsb2FkUGx1Z2luKGNvbmZpZywgY29uZmlnLm1pZGRsZXdhcmVzLCBwbHVnaW5fcGFyYW1zLCBmdW5jdGlvbiAocGx1Z2luOiBJUGx1Z2luTWlkZGxld2FyZTxJQ29uZmlnPikge1xuICAgIHJldHVybiBwbHVnaW4ucmVnaXN0ZXJfbWlkZGxld2FyZXM7XG4gIH0pO1xuICBwbHVnaW5zLmZvckVhY2goKHBsdWdpbjogSVBsdWdpbk1pZGRsZXdhcmU8SUNvbmZpZz4pID0+IHtcbiAgICBwbHVnaW4ucmVnaXN0ZXJfbWlkZGxld2FyZXMoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgfSk7XG5cbiAgLy8gRm9yICBucG0gcmVxdWVzdFxuICBhcHAudXNlKGFwaUVuZHBvaW50KGNvbmZpZywgYXV0aCwgc3RvcmFnZSkpO1xuXG4gIC8vIEZvciBXZWJVSSAmIFdlYlVJIEFQSVxuICBpZiAoXy5nZXQoY29uZmlnLCAnd2ViLmVuYWJsZScsIHRydWUpKSB7XG4gICAgYXBwLnVzZSgnLycsIHdlYihjb25maWcsIGF1dGgsIHN0b3JhZ2UpKTtcbiAgICBhcHAudXNlKCcvLS92ZXJkYWNjaW8vJywgd2ViQVBJKGNvbmZpZywgYXV0aCwgc3RvcmFnZSkpO1xuICB9IGVsc2Uge1xuICAgIGFwcC5nZXQoJy8nLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5XRUJfRElTQUJMRUQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENhdGNoIDQwNFxuICBhcHAuZ2V0KCcvKicsIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5GSUxFX05PVF9GT1VORCkpO1xuICB9KTtcblxuICBhcHAudXNlKGZ1bmN0aW9uIChlcnI6IEh0dHBFcnJvciwgcmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICBpZiAoXy5pc0Vycm9yKGVycikpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VDT05OQUJPUlQnICYmIHJlcy5zdGF0dXNDb2RlID09PSBIVFRQX1NUQVRVUy5OT1RfTU9ESUZJRUQpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cbiAgICAgIGlmIChfLmlzRnVuY3Rpb24ocmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IpID09PSBmYWxzZSkge1xuICAgICAgICAvLyBpbiBjYXNlIG9mIHZlcnkgZWFybHkgZXJyb3IgdGhpcyBtaWRkbGV3YXJlIG1heSBub3QgYmUgbG9hZGVkIGJlZm9yZSBlcnJvciBpcyBnZW5lcmF0ZWRcbiAgICAgICAgLy8gZml4aW5nIHRoYXRcbiAgICAgICAgZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlKHJlcSwgcmVzLCBfLm5vb3ApO1xuICAgICAgfVxuICAgICAgcmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IoZXJyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbCB0byBNaWRkbGV3YXJlLmZpbmFsXG4gICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgIH1cbiAgfSk7XG5cbiAgYXBwLnVzZShmaW5hbCk7XG5cbiAgcmV0dXJuIGFwcDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IChhc3luYyBmdW5jdGlvbiAoY29uZmlnSGFzaDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgc2V0dXAoY29uZmlnSGFzaC5sb2dzKTtcbiAgY29uc3QgY29uZmlnOiBJQ29uZmlnID0gbmV3IEFwcENvbmZpZyhfLmNsb25lRGVlcChjb25maWdIYXNoKSk7XG4gIC8vIHJlZ2lzdGVyIG1pZGRsZXdhcmUgcGx1Z2luc1xuICBjb25zdCBwbHVnaW5fcGFyYW1zID0ge1xuICAgIGNvbmZpZzogY29uZmlnLFxuICAgIGxvZ2dlcjogbG9nZ2VyLFxuICB9O1xuICBjb25zdCBmaWx0ZXJzID0gbG9hZFBsdWdpbihjb25maWcsIGNvbmZpZy5maWx0ZXJzIHx8IHt9LCBwbHVnaW5fcGFyYW1zLCAocGx1Z2luOiBJUGx1Z2luU3RvcmFnZUZpbHRlcjxJQ29uZmlnPikgPT4gcGx1Z2luLmZpbHRlcl9tZXRhZGF0YSk7XG4gIGNvbnN0IHN0b3JhZ2U6IElTdG9yYWdlSGFuZGxlciA9IG5ldyBTdG9yYWdlKGNvbmZpZyk7XG4gIC8vIHdhaXRzIHVudGlsIGluaXQgY2FsbHMgaGF2ZSBiZWVuIGluaXRpYWxpemVkXG4gIGF3YWl0IHN0b3JhZ2UuaW5pdChjb25maWcsIGZpbHRlcnMpO1xuICByZXR1cm4gZGVmaW5lQVBJKGNvbmZpZywgc3RvcmFnZSk7XG59KTtcbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvaW5kZXgudHMiXSwibmFtZXMiOlsiZGVmaW5lQVBJIiwiY29uZmlnIiwic3RvcmFnZSIsImF1dGgiLCJBdXRoIiwiYXBwIiwic2V0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlIiwiZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlIiwidXNlcl9hZ2VudCIsInJlcSIsInJlcyIsIm5leHQiLCJzZXRIZWFkZXIiLCJkaXNhYmxlIiwiZ2V0IiwiX2RlYnVnIiwic2VsZl9wYXRoIiwicGx1Z2luX3BhcmFtcyIsImxvZ2dlciIsInBsdWdpbnMiLCJtaWRkbGV3YXJlcyIsInBsdWdpbiIsInJlZ2lzdGVyX21pZGRsZXdhcmVzIiwiZm9yRWFjaCIsIl8iLCJFcnJvckNvZGUiLCJnZXROb3RGb3VuZCIsIkFQSV9FUlJPUiIsIldFQl9ESVNBQkxFRCIsIkZJTEVfTk9UX0ZPVU5EIiwiZXJyIiwiaXNFcnJvciIsImNvZGUiLCJzdGF0dXNDb2RlIiwiSFRUUF9TVEFUVVMiLCJOT1RfTU9ESUZJRUQiLCJpc0Z1bmN0aW9uIiwibG9jYWxzIiwicmVwb3J0X2Vycm9yIiwibm9vcCIsImZpbmFsIiwiY29uZmlnSGFzaCIsImxvZ3MiLCJBcHBDb25maWciLCJjbG9uZURlZXAiLCJmaWx0ZXJzIiwiZmlsdGVyX21ldGFkYXRhIiwiU3RvcmFnZSIsImluaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQU1BLFNBQVMsR0FBRyxVQUFVQyxNQUFWLEVBQTJCQyxPQUEzQixFQUEwRDtBQUMxRSxRQUFNQyxJQUFXLEdBQUcsSUFBSUMsYUFBSixDQUFTSCxNQUFULENBQXBCO0FBQ0EsUUFBTUksR0FBZ0IsR0FBRyx1QkFBekIsQ0FGMEUsQ0FJMUU7QUFDQTs7QUFDQUEsRUFBQUEsR0FBRyxDQUFDQyxHQUFKLENBQVEsS0FBUixFQUFlQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixZQUF2QztBQUNBSixFQUFBQSxHQUFHLENBQUNLLEdBQUosQ0FBUSxvQkFBUixFQVAwRSxDQVMxRTs7QUFDQUwsRUFBQUEsR0FBRyxDQUFDSyxHQUFKLENBQVEscUJBQUlULE1BQUosQ0FBUjtBQUNBSSxFQUFBQSxHQUFHLENBQUNLLEdBQUosQ0FBUUMsb0NBQVI7O0FBQ0EsTUFBSVYsTUFBTSxDQUFDVyxVQUFYLEVBQXVCO0FBQ3JCUCxJQUFBQSxHQUFHLENBQUNLLEdBQUosQ0FBUSxVQUFVRyxHQUFWLEVBQStCQyxHQUEvQixFQUFxREMsSUFBckQsRUFBbUY7QUFDekZELE1BQUFBLEdBQUcsQ0FBQ0UsU0FBSixDQUFjLGNBQWQsRUFBOEIseUJBQWFmLE1BQU0sQ0FBQ1csVUFBcEIsQ0FBOUI7QUFDQUcsTUFBQUEsSUFBSTtBQUNMLEtBSEQ7QUFJRCxHQUxELE1BS087QUFDTFYsSUFBQUEsR0FBRyxDQUFDWSxPQUFKLENBQVksY0FBWjtBQUNEOztBQUVEWixFQUFBQSxHQUFHLENBQUNLLEdBQUosQ0FBUSwyQkFBUjtBQUVBTCxFQUFBQSxHQUFHLENBQUNhLEdBQUosQ0FBUSx1QkFBUixFQUFpQyw4QkFBYWpCLE1BQWIsQ0FBakMsRUF2QjBFLENBeUIxRTs7QUFDQSxNQUFJQSxNQUFNLENBQUNrQixNQUFYLEVBQW1CO0FBQ2pCLHdCQUFVZCxHQUFWLEVBQWVKLE1BQU0sQ0FBQ21CLFNBQXRCO0FBQ0QsR0E1QnlFLENBOEIxRTs7O0FBQ0EsUUFBTUMsYUFBYSxHQUFHO0FBQ3BCcEIsSUFBQUEsTUFBTSxFQUFFQSxNQURZO0FBRXBCcUIsSUFBQUEsTUFBTSxFQUFFQTtBQUZZLEdBQXRCO0FBS0EsUUFBTUMsT0FBcUMsR0FBRywyQkFBV3RCLE1BQVgsRUFBbUJBLE1BQU0sQ0FBQ3VCLFdBQTFCLEVBQXVDSCxhQUF2QyxFQUFzRCxVQUFVSSxNQUFWLEVBQThDO0FBQ2hKLFdBQU9BLE1BQU0sQ0FBQ0Msb0JBQWQ7QUFDRCxHQUY2QyxDQUE5QztBQUdBSCxFQUFBQSxPQUFPLENBQUNJLE9BQVIsQ0FBaUJGLE1BQUQsSUFBd0M7QUFDdERBLElBQUFBLE1BQU0sQ0FBQ0Msb0JBQVAsQ0FBNEJyQixHQUE1QixFQUFpQ0YsSUFBakMsRUFBdUNELE9BQXZDO0FBQ0QsR0FGRCxFQXZDMEUsQ0EyQzFFOztBQUNBRyxFQUFBQSxHQUFHLENBQUNLLEdBQUosQ0FBUSx1QkFBWVQsTUFBWixFQUFvQkUsSUFBcEIsRUFBMEJELE9BQTFCLENBQVIsRUE1QzBFLENBOEMxRTs7QUFDQSxNQUFJMEIsZ0JBQUVWLEdBQUYsQ0FBTWpCLE1BQU4sRUFBYyxZQUFkLEVBQTRCLElBQTVCLENBQUosRUFBdUM7QUFDckNJLElBQUFBLEdBQUcsQ0FBQ0ssR0FBSixDQUFRLEdBQVIsRUFBYSxrQkFBSVQsTUFBSixFQUFZRSxJQUFaLEVBQWtCRCxPQUFsQixDQUFiO0FBQ0FHLElBQUFBLEdBQUcsQ0FBQ0ssR0FBSixDQUFRLGVBQVIsRUFBeUIsa0JBQU9ULE1BQVAsRUFBZUUsSUFBZixFQUFxQkQsT0FBckIsQ0FBekI7QUFDRCxHQUhELE1BR087QUFDTEcsSUFBQUEsR0FBRyxDQUFDYSxHQUFKLENBQVEsR0FBUixFQUFhLFVBQVVMLEdBQVYsRUFBK0JDLEdBQS9CLEVBQXFEQyxJQUFyRCxFQUE2RTtBQUN4RkEsTUFBQUEsSUFBSSxDQUFDYyxpQkFBVUMsV0FBVixDQUFzQkMscUJBQVVDLFlBQWhDLENBQUQsQ0FBSjtBQUNELEtBRkQ7QUFHRCxHQXREeUUsQ0F3RDFFOzs7QUFDQTNCLEVBQUFBLEdBQUcsQ0FBQ2EsR0FBSixDQUFRLElBQVIsRUFBYyxVQUFVTCxHQUFWLEVBQStCQyxHQUEvQixFQUFxREMsSUFBckQsRUFBNkU7QUFDekZBLElBQUFBLElBQUksQ0FBQ2MsaUJBQVVDLFdBQVYsQ0FBc0JDLHFCQUFVRSxjQUFoQyxDQUFELENBQUo7QUFDRCxHQUZEO0FBSUE1QixFQUFBQSxHQUFHLENBQUNLLEdBQUosQ0FBUSxVQUFVd0IsR0FBVixFQUEwQnJCLEdBQTFCLEVBQStDQyxHQUEvQyxFQUFxRUMsSUFBckUsRUFBNkY7QUFDbkcsUUFBSWEsZ0JBQUVPLE9BQUYsQ0FBVUQsR0FBVixDQUFKLEVBQW9CO0FBQ2xCLFVBQUlBLEdBQUcsQ0FBQ0UsSUFBSixLQUFhLFlBQWIsSUFBNkJ0QixHQUFHLENBQUN1QixVQUFKLEtBQW1CQyx1QkFBWUMsWUFBaEUsRUFBOEU7QUFDNUUsZUFBT3hCLElBQUksRUFBWDtBQUNEOztBQUNELFVBQUlhLGdCQUFFWSxVQUFGLENBQWExQixHQUFHLENBQUMyQixNQUFKLENBQVdDLFlBQXhCLE1BQTBDLEtBQTlDLEVBQXFEO0FBQ25EO0FBQ0E7QUFDQSxrREFBeUI3QixHQUF6QixFQUE4QkMsR0FBOUIsRUFBbUNjLGdCQUFFZSxJQUFyQztBQUNEOztBQUNEN0IsTUFBQUEsR0FBRyxDQUFDMkIsTUFBSixDQUFXQyxZQUFYLENBQXdCUixHQUF4QjtBQUNELEtBVkQsTUFVTztBQUNMO0FBQ0EsYUFBT25CLElBQUksQ0FBQ21CLEdBQUQsQ0FBWDtBQUNEO0FBQ0YsR0FmRDtBQWlCQTdCLEVBQUFBLEdBQUcsQ0FBQ0ssR0FBSixDQUFRa0MsaUJBQVI7QUFFQSxTQUFPdkMsR0FBUDtBQUNELENBakZEOztlQW1GZ0Isd0JBQWdCd0MsVUFBaEIsRUFBK0M7QUFDN0QscUJBQU1BLFVBQVUsQ0FBQ0MsSUFBakI7QUFDQSxRQUFNN0MsTUFBZSxHQUFHLElBQUk4QyxlQUFKLENBQWNuQixnQkFBRW9CLFNBQUYsQ0FBWUgsVUFBWixDQUFkLENBQXhCLENBRjZELENBRzdEOztBQUNBLFFBQU14QixhQUFhLEdBQUc7QUFDcEJwQixJQUFBQSxNQUFNLEVBQUVBLE1BRFk7QUFFcEJxQixJQUFBQSxNQUFNLEVBQUVBO0FBRlksR0FBdEI7QUFJQSxRQUFNMkIsT0FBTyxHQUFHLDJCQUFXaEQsTUFBWCxFQUFtQkEsTUFBTSxDQUFDZ0QsT0FBUCxJQUFrQixFQUFyQyxFQUF5QzVCLGFBQXpDLEVBQXlESSxNQUFELElBQTJDQSxNQUFNLENBQUN5QixlQUExRyxDQUFoQjtBQUNBLFFBQU1oRCxPQUF3QixHQUFHLElBQUlpRCxnQkFBSixDQUFZbEQsTUFBWixDQUFqQyxDQVQ2RCxDQVU3RDs7QUFDQSxRQUFNQyxPQUFPLENBQUNrRCxJQUFSLENBQWFuRCxNQUFiLEVBQXFCZ0QsT0FBckIsQ0FBTjtBQUNBLFNBQU9qRCxTQUFTLENBQUNDLE1BQUQsRUFBU0MsT0FBVCxDQUFoQjtBQUNELEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGV4cHJlc3MsIHsgQXBwbGljYXRpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBjb21wcmVzc2lvbiBmcm9tICdjb21wcmVzc2lvbic7XG5pbXBvcnQgY29ycyBmcm9tICdjb3JzJztcbmltcG9ydCB7IEh0dHBFcnJvciB9IGZyb20gJ2h0dHAtZXJyb3JzJztcbmltcG9ydCB7IENvbmZpZyBhcyBJQ29uZmlnLCBJUGx1Z2luTWlkZGxld2FyZSwgSVBsdWdpblN0b3JhZ2VGaWx0ZXIgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCBTdG9yYWdlIGZyb20gJy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCBsb2FkUGx1Z2luIGZyb20gJy4uL2xpYi9wbHVnaW4tbG9hZGVyJztcbmltcG9ydCBBdXRoIGZyb20gJy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IEVycm9yQ29kZSwgZ2V0VXNlckFnZW50IH0gZnJvbSAnLi4vbGliL3V0aWxzJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgSFRUUF9TVEFUVVMgfSBmcm9tICcuLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCBBcHBDb25maWcgZnJvbSAnLi4vbGliL2NvbmZpZyc7XG5pbXBvcnQgeyAkUmVzcG9uc2VFeHRlbmQsICRSZXF1ZXN0RXh0ZW5kLCAkTmV4dEZ1bmN0aW9uVmVyLCBJU3RvcmFnZUhhbmRsZXIsIElBdXRoIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgc2V0dXAsIGxvZ2dlciB9IGZyb20gJy4uL2xpYi9sb2dnZXInO1xuaW1wb3J0IHdlYkFQSSBmcm9tICcuL3dlYi9hcGknO1xuaW1wb3J0IHdlYiBmcm9tICcuL3dlYic7XG5pbXBvcnQgYXBpRW5kcG9pbnQgZnJvbSAnLi9lbmRwb2ludCc7XG5pbXBvcnQgaG9va0RlYnVnIGZyb20gJy4vZGVidWcnO1xuaW1wb3J0IHsgbG9nLCBmaW5hbCwgZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlLCBzZXJ2ZUZhdmljb24gfSBmcm9tICcuL21pZGRsZXdhcmUnO1xuXG5jb25zdCBkZWZpbmVBUEkgPSBmdW5jdGlvbiAoY29uZmlnOiBJQ29uZmlnLCBzdG9yYWdlOiBJU3RvcmFnZUhhbmRsZXIpOiBhbnkge1xuICBjb25zdCBhdXRoOiBJQXV0aCA9IG5ldyBBdXRoKGNvbmZpZyk7XG4gIGNvbnN0IGFwcDogQXBwbGljYXRpb24gPSBleHByZXNzKCk7XG5cbiAgLy8gcnVuIGluIHByb2R1Y3Rpb24gbW9kZSBieSBkZWZhdWx0LCBqdXN0IGluIGNhc2VcbiAgLy8gaXQgc2hvdWxkbid0IG1ha2UgYW55IGRpZmZlcmVuY2UgYW55d2F5XG4gIGFwcC5zZXQoJ2VudicsIHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8ICdwcm9kdWN0aW9uJyk7XG4gIGFwcC51c2UoY29ycygpKTtcblxuICAvLyBSb3V0ZXIgc2V0dXBcbiAgYXBwLnVzZShsb2coY29uZmlnKSk7XG4gIGFwcC51c2UoZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlKTtcbiAgaWYgKGNvbmZpZy51c2VyX2FnZW50KSB7XG4gICAgYXBwLnVzZShmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIHJlcy5zZXRIZWFkZXIoJ1gtUG93ZXJlZC1CeScsIGdldFVzZXJBZ2VudChjb25maWcudXNlcl9hZ2VudCkpO1xuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGFwcC5kaXNhYmxlKCd4LXBvd2VyZWQtYnknKTtcbiAgfVxuXG4gIGFwcC51c2UoY29tcHJlc3Npb24oKSk7XG5cbiAgYXBwLmdldCgnLy0vc3RhdGljL2Zhdmljb24uaWNvJywgc2VydmVGYXZpY29uKGNvbmZpZykpO1xuXG4gIC8vIEhvb2sgZm9yIHRlc3RzIG9ubHlcbiAgaWYgKGNvbmZpZy5fZGVidWcpIHtcbiAgICBob29rRGVidWcoYXBwLCBjb25maWcuc2VsZl9wYXRoKTtcbiAgfVxuXG4gIC8vIHJlZ2lzdGVyIG1pZGRsZXdhcmUgcGx1Z2luc1xuICBjb25zdCBwbHVnaW5fcGFyYW1zID0ge1xuICAgIGNvbmZpZzogY29uZmlnLFxuICAgIGxvZ2dlcjogbG9nZ2VyLFxuICB9O1xuXG4gIGNvbnN0IHBsdWdpbnM6IElQbHVnaW5NaWRkbGV3YXJlPElDb25maWc+W10gPSBsb2FkUGx1Z2luKGNvbmZpZywgY29uZmlnLm1pZGRsZXdhcmVzLCBwbHVnaW5fcGFyYW1zLCBmdW5jdGlvbiAocGx1Z2luOiBJUGx1Z2luTWlkZGxld2FyZTxJQ29uZmlnPikge1xuICAgIHJldHVybiBwbHVnaW4ucmVnaXN0ZXJfbWlkZGxld2FyZXM7XG4gIH0pO1xuICBwbHVnaW5zLmZvckVhY2goKHBsdWdpbjogSVBsdWdpbk1pZGRsZXdhcmU8SUNvbmZpZz4pID0+IHtcbiAgICBwbHVnaW4ucmVnaXN0ZXJfbWlkZGxld2FyZXMoYXBwLCBhdXRoLCBzdG9yYWdlKTtcbiAgfSk7XG5cbiAgLy8gRm9yICBucG0gcmVxdWVzdFxuICBhcHAudXNlKGFwaUVuZHBvaW50KGNvbmZpZywgYXV0aCwgc3RvcmFnZSkpO1xuXG4gIC8vIEZvciBXZWJVSSAmIFdlYlVJIEFQSVxuICBpZiAoXy5nZXQoY29uZmlnLCAnd2ViLmVuYWJsZScsIHRydWUpKSB7XG4gICAgYXBwLnVzZSgnLycsIHdlYihjb25maWcsIGF1dGgsIHN0b3JhZ2UpKTtcbiAgICBhcHAudXNlKCcvLS92ZXJkYWNjaW8vJywgd2ViQVBJKGNvbmZpZywgYXV0aCwgc3RvcmFnZSkpO1xuICB9IGVsc2Uge1xuICAgIGFwcC5nZXQoJy8nLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5XRUJfRElTQUJMRUQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENhdGNoIDQwNFxuICBhcHAuZ2V0KCcvKicsIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5GSUxFX05PVF9GT1VORCkpO1xuICB9KTtcblxuICBhcHAudXNlKGZ1bmN0aW9uIChlcnI6IEh0dHBFcnJvciwgcmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICBpZiAoXy5pc0Vycm9yKGVycikpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VDT05OQUJPUlQnICYmIHJlcy5zdGF0dXNDb2RlID09PSBIVFRQX1NUQVRVUy5OT1RfTU9ESUZJRUQpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cbiAgICAgIGlmIChfLmlzRnVuY3Rpb24ocmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IpID09PSBmYWxzZSkge1xuICAgICAgICAvLyBpbiBjYXNlIG9mIHZlcnkgZWFybHkgZXJyb3IgdGhpcyBtaWRkbGV3YXJlIG1heSBub3QgYmUgbG9hZGVkIGJlZm9yZSBlcnJvciBpcyBnZW5lcmF0ZWRcbiAgICAgICAgLy8gZml4aW5nIHRoYXRcbiAgICAgICAgZXJyb3JSZXBvcnRpbmdNaWRkbGV3YXJlKHJlcSwgcmVzLCBfLm5vb3ApO1xuICAgICAgfVxuICAgICAgcmVzLmxvY2Fscy5yZXBvcnRfZXJyb3IoZXJyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbCB0byBNaWRkbGV3YXJlLmZpbmFsXG4gICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgIH1cbiAgfSk7XG5cbiAgYXBwLnVzZShmaW5hbCk7XG5cbiAgcmV0dXJuIGFwcDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IChhc3luYyBmdW5jdGlvbiAoY29uZmlnSGFzaDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgc2V0dXAoY29uZmlnSGFzaC5sb2dzKTtcbiAgY29uc3QgY29uZmlnOiBJQ29uZmlnID0gbmV3IEFwcENvbmZpZyhfLmNsb25lRGVlcChjb25maWdIYXNoKSk7XG4gIC8vIHJlZ2lzdGVyIG1pZGRsZXdhcmUgcGx1Z2luc1xuICBjb25zdCBwbHVnaW5fcGFyYW1zID0ge1xuICAgIGNvbmZpZzogY29uZmlnLFxuICAgIGxvZ2dlcjogbG9nZ2VyLFxuICB9O1xuICBjb25zdCBmaWx0ZXJzID0gbG9hZFBsdWdpbihjb25maWcsIGNvbmZpZy5maWx0ZXJzIHx8IHt9LCBwbHVnaW5fcGFyYW1zLCAocGx1Z2luOiBJUGx1Z2luU3RvcmFnZUZpbHRlcjxJQ29uZmlnPikgPT4gcGx1Z2luLmZpbHRlcl9tZXRhZGF0YSk7XG4gIGNvbnN0IHN0b3JhZ2U6IElTdG9yYWdlSGFuZGxlciA9IG5ldyBTdG9yYWdlKGNvbmZpZyk7XG4gIC8vIHdhaXRzIHVudGlsIGluaXQgY2FsbHMgaGF2ZSBiZWVuIGluaXRpYWxpemVkXG4gIGF3YWl0IHN0b3JhZ2UuaW5pdChjb25maWcsIGZpbHRlcnMpO1xuICByZXR1cm4gZGVmaW5lQVBJKGNvbmZpZywgc3RvcmFnZSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.limiter = void 0;
7
+
8
+ var _expressRateLimit = _interopRequireDefault(require("express-rate-limit"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ const limiter = rateLimitOptions => {
19
+ // @ts-ignore
20
+ return new _expressRateLimit.default(_objectSpread({}, rateLimitOptions));
21
+ };
22
+
23
+ exports.limiter = limiter;
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvcmF0ZS1saW1pdGVyLnRzIl0sIm5hbWVzIjpbImxpbWl0ZXIiLCJyYXRlTGltaXRPcHRpb25zIiwiUmF0ZUxpbWl0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7QUFHQSxNQUFNQSxPQUFPLEdBQUlDLGdCQUFELElBQXFDO0FBQ25EO0FBQ0EsU0FBTyxJQUFJQyx5QkFBSixtQkFDRkQsZ0JBREUsRUFBUDtBQUdELENBTEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmF0ZUxpbWl0IGZyb20gJ2V4cHJlc3MtcmF0ZS1saW1pdCc7XG5pbXBvcnQgeyBSYXRlTGltaXQgYXMgUmF0ZUxpbWl0VHlwZSB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5jb25zdCBsaW1pdGVyID0gKHJhdGVMaW1pdE9wdGlvbnM6IFJhdGVMaW1pdFR5cGUpID0+IHtcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gbmV3IFJhdGVMaW1pdCh7XG4gICAgLi4ucmF0ZUxpbWl0T3B0aW9ucyxcbiAgfSk7XG59O1xuXG5leHBvcnQgeyBsaW1pdGVyIH07XG4iXX0=
@@ -13,11 +13,7 @@ var _search = _interopRequireDefault(require("../../lib/search"));
13
13
 
14
14
  var _middleware = require("../middleware");
15
15
 
16
- var _user = _interopRequireDefault(require("./endpoint/user"));
17
-
18
- var _package = _interopRequireDefault(require("./endpoint/package"));
19
-
20
- var _search2 = _interopRequireDefault(require("./endpoint/search"));
16
+ var _endpoint = _interopRequireDefault(require("./endpoint"));
21
17
 
22
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
19
 
@@ -31,11 +27,9 @@ const route = (0, _express.Router)();
31
27
  function _default(config, auth, storage) {
32
28
  _search.default.configureStorage(storage); // validate all of these params as a package name
33
29
  // this might be too harsh, so ask if it causes trouble
34
- // $FlowFixMe
35
30
 
36
31
 
37
- route.param('package', _middleware.validatePackage); // $FlowFixMe
38
-
32
+ route.param('package', _middleware.validatePackage);
39
33
  route.param('filename', _middleware.validateName);
40
34
  route.param('version', _middleware.validateName);
41
35
  route.param('anything', (0, _middleware.match)(/.*/));
@@ -44,13 +38,7 @@ function _default(config, auth, storage) {
44
38
  }));
45
39
  route.use(auth.webUIJWTmiddleware());
46
40
  route.use(_middleware.setSecurityWebHeaders);
47
- (0, _package.default)(route, storage, auth, config);
48
- (0, _search2.default)(route, storage, auth);
49
- (0, _user.default)(route, auth, config); // What are you looking for? logout? client side will remove token when user click logout,
50
- // or it will auto expire after 24 hours.
51
- // This token is different with the token send to npm client.
52
- // We will/may replace current token with JWT in next major release, and it will not expire at all(configurable).
53
-
41
+ route.use((0, _endpoint.default)(auth, storage, config));
54
42
  return route;
55
43
  }
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2FwaS50cyJdLCJuYW1lcyI6WyJyb3V0ZSIsImNvbmZpZyIsImF1dGgiLCJzdG9yYWdlIiwiU2VhcmNoIiwiY29uZmlndXJlU3RvcmFnZSIsInBhcmFtIiwidmFsaWRhdGVQYWNrYWdlIiwidmFsaWRhdGVOYW1lIiwidXNlIiwiYm9keVBhcnNlciIsInVybGVuY29kZWQiLCJleHRlbmRlZCIsIndlYlVJSldUbWlkZGxld2FyZSIsInNldFNlY3VyaXR5V2ViSGVhZGVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsS0FBSyxHQUFHLHNCQUFkO0FBQXdCOztBQUV4QjtBQUNBO0FBQ0E7O0FBQ2Usa0JBQVVDLE1BQVYsRUFBMEJDLElBQTFCLEVBQXVDQyxPQUF2QyxFQUF5RTtBQUN0RkMsa0JBQU9DLGdCQUFQLENBQXdCRixPQUF4QixFQURzRixDQUd0RjtBQUNBO0FBQ0E7OztBQUNBSCxFQUFBQSxLQUFLLENBQUNNLEtBQU4sQ0FBWSxTQUFaLEVBQXVCQywyQkFBdkIsRUFOc0YsQ0FPdEY7O0FBQ0FQLEVBQUFBLEtBQUssQ0FBQ00sS0FBTixDQUFZLFVBQVosRUFBd0JFLHdCQUF4QjtBQUNBUixFQUFBQSxLQUFLLENBQUNNLEtBQU4sQ0FBWSxTQUFaLEVBQXVCRSx3QkFBdkI7QUFDQVIsRUFBQUEsS0FBSyxDQUFDTSxLQUFOLENBQVksVUFBWixFQUF3Qix1QkFBTSxJQUFOLENBQXhCO0FBRUFOLEVBQUFBLEtBQUssQ0FBQ1MsR0FBTixDQUFVQyxvQkFBV0MsVUFBWCxDQUFzQjtBQUFFQyxJQUFBQSxRQUFRLEVBQUU7QUFBWixHQUF0QixDQUFWO0FBQ0FaLEVBQUFBLEtBQUssQ0FBQ1MsR0FBTixDQUFVUCxJQUFJLENBQUNXLGtCQUFMLEVBQVY7QUFDQWIsRUFBQUEsS0FBSyxDQUFDUyxHQUFOLENBQVVLLGlDQUFWO0FBRUEsd0JBQWlCZCxLQUFqQixFQUF3QkcsT0FBeEIsRUFBaUNELElBQWpDLEVBQXVDRCxNQUF2QztBQUNBLHdCQUFnQkQsS0FBaEIsRUFBdUJHLE9BQXZCLEVBQWdDRCxJQUFoQztBQUNBLHFCQUFlRixLQUFmLEVBQXNCRSxJQUF0QixFQUE0QkQsTUFBNUIsRUFsQnNGLENBb0J0RjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFPRCxLQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBib2R5UGFyc2VyIGZyb20gJ2JvZHktcGFyc2VyJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IFNlYXJjaCBmcm9tICcuLi8uLi9saWIvc2VhcmNoJztcbmltcG9ydCB7IG1hdGNoLCB2YWxpZGF0ZU5hbWUsIHZhbGlkYXRlUGFja2FnZSwgc2V0U2VjdXJpdHlXZWJIZWFkZXJzIH0gZnJvbSAnLi4vbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBJQXV0aCwgSVN0b3JhZ2VIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IGFkZFVzZXJBdXRoQXBpIGZyb20gJy4vZW5kcG9pbnQvdXNlcic7XG5pbXBvcnQgYWRkUGFja2FnZVdlYkFwaSBmcm9tICcuL2VuZHBvaW50L3BhY2thZ2UnO1xuaW1wb3J0IGFkZFNlYXJjaFdlYkFwaSBmcm9tICcuL2VuZHBvaW50L3NlYXJjaCc7XG5cbmNvbnN0IHJvdXRlID0gUm91dGVyKCk7IC8qIGVzbGludCBuZXctY2FwOiAwICovXG5cbi8qXG4gVGhpcyBmaWxlIGluY2x1ZGUgYWxsIHZlcmRhY2NpbyBvbmx5IEFQSShXZWIgVUkpLCBmb3IgbnBtIEFQSSBwbGVhc2Ugc2VlIC4uL2VuZHBvaW50L1xuKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChjb25maWc6IENvbmZpZywgYXV0aDogSUF1dGgsIHN0b3JhZ2U6IElTdG9yYWdlSGFuZGxlcik6IFJvdXRlciB7XG4gIFNlYXJjaC5jb25maWd1cmVTdG9yYWdlKHN0b3JhZ2UpO1xuXG4gIC8vIHZhbGlkYXRlIGFsbCBvZiB0aGVzZSBwYXJhbXMgYXMgYSBwYWNrYWdlIG5hbWVcbiAgLy8gdGhpcyBtaWdodCBiZSB0b28gaGFyc2gsIHNvIGFzayBpZiBpdCBjYXVzZXMgdHJvdWJsZVxuICAvLyAkRmxvd0ZpeE1lXG4gIHJvdXRlLnBhcmFtKCdwYWNrYWdlJywgdmFsaWRhdGVQYWNrYWdlKTtcbiAgLy8gJEZsb3dGaXhNZVxuICByb3V0ZS5wYXJhbSgnZmlsZW5hbWUnLCB2YWxpZGF0ZU5hbWUpO1xuICByb3V0ZS5wYXJhbSgndmVyc2lvbicsIHZhbGlkYXRlTmFtZSk7XG4gIHJvdXRlLnBhcmFtKCdhbnl0aGluZycsIG1hdGNoKC8uKi8pKTtcblxuICByb3V0ZS51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHsgZXh0ZW5kZWQ6IGZhbHNlIH0pKTtcbiAgcm91dGUudXNlKGF1dGgud2ViVUlKV1RtaWRkbGV3YXJlKCkpO1xuICByb3V0ZS51c2Uoc2V0U2VjdXJpdHlXZWJIZWFkZXJzKTtcblxuICBhZGRQYWNrYWdlV2ViQXBpKHJvdXRlLCBzdG9yYWdlLCBhdXRoLCBjb25maWcpO1xuICBhZGRTZWFyY2hXZWJBcGkocm91dGUsIHN0b3JhZ2UsIGF1dGgpO1xuICBhZGRVc2VyQXV0aEFwaShyb3V0ZSwgYXV0aCwgY29uZmlnKTtcblxuICAvLyBXaGF0IGFyZSB5b3UgbG9va2luZyBmb3I/IGxvZ291dD8gY2xpZW50IHNpZGUgd2lsbCByZW1vdmUgdG9rZW4gd2hlbiB1c2VyIGNsaWNrIGxvZ291dCxcbiAgLy8gb3IgaXQgd2lsbCBhdXRvIGV4cGlyZSBhZnRlciAyNCBob3Vycy5cbiAgLy8gVGhpcyB0b2tlbiBpcyBkaWZmZXJlbnQgd2l0aCB0aGUgdG9rZW4gc2VuZCB0byBucG0gY2xpZW50LlxuICAvLyBXZSB3aWxsL21heSByZXBsYWNlIGN1cnJlbnQgdG9rZW4gd2l0aCBKV1QgaW4gbmV4dCBtYWpvciByZWxlYXNlLCBhbmQgaXQgd2lsbCBub3QgZXhwaXJlIGF0IGFsbChjb25maWd1cmFibGUpLlxuXG4gIHJldHVybiByb3V0ZTtcbn1cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2FwaS50cyJdLCJuYW1lcyI6WyJyb3V0ZSIsImNvbmZpZyIsImF1dGgiLCJzdG9yYWdlIiwiU2VhcmNoIiwiY29uZmlndXJlU3RvcmFnZSIsInBhcmFtIiwidmFsaWRhdGVQYWNrYWdlIiwidmFsaWRhdGVOYW1lIiwidXNlIiwiYm9keVBhcnNlciIsInVybGVuY29kZWQiLCJleHRlbmRlZCIsIndlYlVJSldUbWlkZGxld2FyZSIsInNldFNlY3VyaXR5V2ViSGVhZGVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOzs7O0FBRUEsTUFBTUEsS0FBSyxHQUFHLHNCQUFkO0FBQXdCOztBQUV4QjtBQUNBO0FBQ0E7O0FBQ2Usa0JBQVVDLE1BQVYsRUFBMEJDLElBQTFCLEVBQXVDQyxPQUF2QyxFQUF5RTtBQUN0RkMsa0JBQU9DLGdCQUFQLENBQXdCRixPQUF4QixFQURzRixDQUV0RjtBQUNBOzs7QUFDQUgsRUFBQUEsS0FBSyxDQUFDTSxLQUFOLENBQVksU0FBWixFQUF1QkMsMkJBQXZCO0FBQ0FQLEVBQUFBLEtBQUssQ0FBQ00sS0FBTixDQUFZLFVBQVosRUFBd0JFLHdCQUF4QjtBQUNBUixFQUFBQSxLQUFLLENBQUNNLEtBQU4sQ0FBWSxTQUFaLEVBQXVCRSx3QkFBdkI7QUFDQVIsRUFBQUEsS0FBSyxDQUFDTSxLQUFOLENBQVksVUFBWixFQUF3Qix1QkFBTSxJQUFOLENBQXhCO0FBRUFOLEVBQUFBLEtBQUssQ0FBQ1MsR0FBTixDQUFVQyxvQkFBV0MsVUFBWCxDQUFzQjtBQUFFQyxJQUFBQSxRQUFRLEVBQUU7QUFBWixHQUF0QixDQUFWO0FBQ0FaLEVBQUFBLEtBQUssQ0FBQ1MsR0FBTixDQUFVUCxJQUFJLENBQUNXLGtCQUFMLEVBQVY7QUFDQWIsRUFBQUEsS0FBSyxDQUFDUyxHQUFOLENBQVVLLGlDQUFWO0FBQ0FkLEVBQUFBLEtBQUssQ0FBQ1MsR0FBTixDQUFVLHVCQUFPUCxJQUFQLEVBQWFDLE9BQWIsRUFBc0JGLE1BQXRCLENBQVY7QUFDQSxTQUFPRCxLQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBib2R5UGFyc2VyIGZyb20gJ2JvZHktcGFyc2VyJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IFNlYXJjaCBmcm9tICcuLi8uLi9saWIvc2VhcmNoJztcbmltcG9ydCB7IG1hdGNoLCB2YWxpZGF0ZU5hbWUsIHZhbGlkYXRlUGFja2FnZSwgc2V0U2VjdXJpdHlXZWJIZWFkZXJzIH0gZnJvbSAnLi4vbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBJQXV0aCwgSVN0b3JhZ2VIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHdlYkFwaSBmcm9tICcuL2VuZHBvaW50JztcblxuY29uc3Qgcm91dGUgPSBSb3V0ZXIoKTsgLyogZXNsaW50IG5ldy1jYXA6IDAgKi9cblxuLypcbiBUaGlzIGZpbGUgaW5jbHVkZSBhbGwgdmVyZGFjY2lvIG9ubHkgQVBJKFdlYiBVSSksIGZvciBucG0gQVBJIHBsZWFzZSBzZWUgLi4vZW5kcG9pbnQvXG4qL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZzogQ29uZmlnLCBhdXRoOiBJQXV0aCwgc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyKTogUm91dGVyIHtcbiAgU2VhcmNoLmNvbmZpZ3VyZVN0b3JhZ2Uoc3RvcmFnZSk7XG4gIC8vIHZhbGlkYXRlIGFsbCBvZiB0aGVzZSBwYXJhbXMgYXMgYSBwYWNrYWdlIG5hbWVcbiAgLy8gdGhpcyBtaWdodCBiZSB0b28gaGFyc2gsIHNvIGFzayBpZiBpdCBjYXVzZXMgdHJvdWJsZVxuICByb3V0ZS5wYXJhbSgncGFja2FnZScsIHZhbGlkYXRlUGFja2FnZSk7XG4gIHJvdXRlLnBhcmFtKCdmaWxlbmFtZScsIHZhbGlkYXRlTmFtZSk7XG4gIHJvdXRlLnBhcmFtKCd2ZXJzaW9uJywgdmFsaWRhdGVOYW1lKTtcbiAgcm91dGUucGFyYW0oJ2FueXRoaW5nJywgbWF0Y2goLy4qLykpO1xuXG4gIHJvdXRlLnVzZShib2R5UGFyc2VyLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xuICByb3V0ZS51c2UoYXV0aC53ZWJVSUpXVG1pZGRsZXdhcmUoKSk7XG4gIHJvdXRlLnVzZShzZXRTZWN1cml0eVdlYkhlYWRlcnMpO1xuICByb3V0ZS51c2Uod2ViQXBpKGF1dGgsIHN0b3JhZ2UsIGNvbmZpZykpO1xuICByZXR1cm4gcm91dGU7XG59XG4iXX0=
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _express = require("express");
9
+
10
+ var _rateLimiter = require("../../rate-limiter");
11
+
12
+ var _package = _interopRequireDefault(require("./package"));
13
+
14
+ var _search = _interopRequireDefault(require("./search"));
15
+
16
+ var _user = _interopRequireDefault(require("./user"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+
26
+ var _default = (auth, storage, config) => {
27
+ var _config$web;
28
+
29
+ const route = (0, _express.Router)();
30
+ /* eslint new-cap: 0 */
31
+
32
+ route.use('/data/', (0, _rateLimiter.limiter)(_objectSpread({
33
+ windowMs: 2 * 60 * 1000,
34
+ // 2 minutes
35
+ max: 5000
36
+ }, config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.rateLimit)));
37
+ route.use('/data/', (0, _package.default)(storage, auth, config));
38
+ route.use('/data/', (0, _search.default)(storage, auth));
39
+ route.use('/sec/', (0, _rateLimiter.limiter)(config === null || config === void 0 ? void 0 : config.userRateLimit));
40
+ route.use('/sec/', (0, _user.default)(auth, storage));
41
+ return route;
42
+ };
43
+
44
+ exports.default = _default;
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L2luZGV4LnRzIl0sIm5hbWVzIjpbImF1dGgiLCJzdG9yYWdlIiwiY29uZmlnIiwicm91dGUiLCJ1c2UiLCJ3aW5kb3dNcyIsIm1heCIsIndlYiIsInJhdGVMaW1pdCIsInVzZXJSYXRlTGltaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztlQUVlLENBQUNBLElBQUQsRUFBT0MsT0FBUCxFQUFnQkMsTUFBaEIsS0FBMkI7QUFBQTs7QUFDeEMsUUFBTUMsS0FBSyxHQUFHLHNCQUFkO0FBQXdCOztBQUN4QkEsRUFBQUEsS0FBSyxDQUFDQyxHQUFOLENBQ0UsUUFERixFQUVFO0FBQ0VDLElBQUFBLFFBQVEsRUFBRSxJQUFJLEVBQUosR0FBUyxJQURyQjtBQUMyQjtBQUN6QkMsSUFBQUEsR0FBRyxFQUFFO0FBRlAsS0FHS0osTUFITCxhQUdLQSxNQUhMLHNDQUdLQSxNQUFNLENBQUVLLEdBSGIsZ0RBR0ssWUFBYUMsU0FIbEIsRUFGRjtBQVFBTCxFQUFBQSxLQUFLLENBQUNDLEdBQU4sQ0FBVSxRQUFWLEVBQW9CLHNCQUFXSCxPQUFYLEVBQW9CRCxJQUFwQixFQUEwQkUsTUFBMUIsQ0FBcEI7QUFDQUMsRUFBQUEsS0FBSyxDQUFDQyxHQUFOLENBQVUsUUFBVixFQUFvQixxQkFBT0gsT0FBUCxFQUFnQkQsSUFBaEIsQ0FBcEI7QUFDQUcsRUFBQUEsS0FBSyxDQUFDQyxHQUFOLENBQVUsT0FBVixFQUFtQiwwQkFBUUYsTUFBUixhQUFRQSxNQUFSLHVCQUFRQSxNQUFNLENBQUVPLGFBQWhCLENBQW5CO0FBQ0FOLEVBQUFBLEtBQUssQ0FBQ0MsR0FBTixDQUFVLE9BQVYsRUFBbUIsbUJBQUtKLElBQUwsRUFBV0MsT0FBWCxDQUFuQjtBQUNBLFNBQU9FLEtBQVA7QUFDRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzcG9uc2UsIFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgbGltaXRlciB9IGZyb20gJy4uLy4uL3JhdGUtbGltaXRlcic7XG5pbXBvcnQgcGFja2FnZUFwaSBmcm9tICcuL3BhY2thZ2UnO1xuaW1wb3J0IHNlYXJjaCBmcm9tICcuL3NlYXJjaCc7XG5pbXBvcnQgdXNlciBmcm9tICcuL3VzZXInO1xuXG5leHBvcnQgZGVmYXVsdCAoYXV0aCwgc3RvcmFnZSwgY29uZmlnKSA9PiB7XG4gIGNvbnN0IHJvdXRlID0gUm91dGVyKCk7IC8qIGVzbGludCBuZXctY2FwOiAwICovXG4gIHJvdXRlLnVzZShcbiAgICAnL2RhdGEvJyxcbiAgICBsaW1pdGVyKHtcbiAgICAgIHdpbmRvd01zOiAyICogNjAgKiAxMDAwLCAvLyAyICBtaW51dGVzXG4gICAgICBtYXg6IDUwMDAsIC8vIGxpbWl0IGVhY2ggSVAgdG8gMTAwMCByZXF1ZXN0cyBwZXIgd2luZG93TXNcbiAgICAgIC4uLmNvbmZpZz8ud2ViPy5yYXRlTGltaXQsXG4gICAgfSlcbiAgKTtcbiAgcm91dGUudXNlKCcvZGF0YS8nLCBwYWNrYWdlQXBpKHN0b3JhZ2UsIGF1dGgsIGNvbmZpZykpO1xuICByb3V0ZS51c2UoJy9kYXRhLycsIHNlYXJjaChzdG9yYWdlLCBhdXRoKSk7XG4gIHJvdXRlLnVzZSgnL3NlYy8nLCBsaW1pdGVyKGNvbmZpZz8udXNlclJhdGVMaW1pdCkpO1xuICByb3V0ZS51c2UoJy9zZWMvJywgdXNlcihhdXRoLCBzdG9yYWdlKSk7XG4gIHJldHVybiByb3V0ZTtcbn07XG4iXX0=
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _lodash = _interopRequireDefault(require("lodash"));
9
9
 
10
+ var _express = require("express");
11
+
10
12
  var _utils = require("../../../lib/utils");
11
13
 
12
14
  var _middleware = require("../../middleware");
@@ -29,8 +31,10 @@ const getOrder = (order = 'asc') => {
29
31
  return order === 'asc';
30
32
  };
31
33
 
32
- function addPackageWebApi(route, storage, auth, config) {
34
+ function addPackageWebApi(storage, auth, config) {
33
35
  const can = (0, _middleware.allow)(auth);
36
+ const pkgRouter = (0, _express.Router)();
37
+ /* eslint new-cap: 0 */
34
38
 
35
39
  const checkAllow = (name, remoteUser) => new Promise((resolve, reject) => {
36
40
  try {
@@ -49,7 +53,7 @@ function addPackageWebApi(route, storage, auth, config) {
49
53
  }); // Get list of all visible package
50
54
 
51
55
 
52
- route.get('/packages', function (req, res, next) {
56
+ pkgRouter.get('/packages', function (req, res, next) {
53
57
  storage.getLocalDatabase(async function (err, packages) {
54
58
  if (err) {
55
59
  throw err;
@@ -103,7 +107,7 @@ function addPackageWebApi(route, storage, auth, config) {
103
107
  });
104
108
  }); // Get package readme
105
109
 
106
- route.get('/package/readme/(@:scope/)?:package/:version?', can('access'), function (req, res, next) {
110
+ pkgRouter.get('/package/readme/(@:scope/)?:package/:version?', can('access'), function (req, res, next) {
107
111
  const packageName = req.params.scope ? (0, _utils.addScope)(req.params.scope, req.params.package) : req.params.package;
108
112
  storage.getPackage({
109
113
  name: packageName,
@@ -115,11 +119,15 @@ function addPackageWebApi(route, storage, auth, config) {
115
119
  }
116
120
 
117
121
  res.set(_constants.HEADER_TYPE.CONTENT_TYPE, _constants.HEADERS.TEXT_PLAIN);
118
- next((0, _utils.parseReadme)(info.name, info.readme));
122
+ const referer = req.get('Referer');
123
+ const pathname = referer ? new URL(referer).pathname : undefined;
124
+ next((0, _utils.parseReadme)(info.name, info.readme, {
125
+ pathname
126
+ }));
119
127
  }
120
128
  });
121
129
  });
122
- route.get('/sidebar/(@:scope/)?:package', can('access'), function (req, res, next) {
130
+ pkgRouter.get('/sidebar/(@:scope/)?:package', can('access'), function (req, res, next) {
123
131
  const packageName = req.params.scope ? (0, _utils.addScope)(req.params.scope, req.params.package) : req.params.package;
124
132
  storage.getPackage({
125
133
  name: packageName,
@@ -170,8 +178,9 @@ function addPackageWebApi(route, storage, auth, config) {
170
178
  }
171
179
  });
172
180
  });
181
+ return pkgRouter;
173
182
  }
174
183
 
175
184
  var _default = addPackageWebApi;
176
185
  exports.default = _default;
177
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3BhY2thZ2UudHMiXSwibmFtZXMiOlsiZ2V0T3JkZXIiLCJvcmRlciIsImFkZFBhY2thZ2VXZWJBcGkiLCJyb3V0ZSIsInN0b3JhZ2UiLCJhdXRoIiwiY29uZmlnIiwiY2FuIiwiY2hlY2tBbGxvdyIsIm5hbWUiLCJyZW1vdGVVc2VyIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhbGxvd19hY2Nlc3MiLCJwYWNrYWdlTmFtZSIsImVyciIsImFsbG93ZWQiLCJnZXQiLCJyZXEiLCJyZXMiLCJuZXh0IiwiZ2V0TG9jYWxEYXRhYmFzZSIsInBhY2thZ2VzIiwicHJvY2Vzc1BhY2thZ2VzIiwicGVybWlzc2lvbnMiLCJwYWNrZ2VzQ29weSIsInNsaWNlIiwicGtnIiwicGtnQ29weSIsImF1dGhvciIsInJlbW90ZV91c2VyIiwid2ViIiwiYXZhdGFyIiwiZW1haWwiLCJncmF2YXRhciIsIl8iLCJpc05pbCIsImRpc3QiLCJpc051bGwiLCJ0YXJiYWxsIiwidXJsX3ByZWZpeCIsInB1c2giLCJsb2dnZXIiLCJlcnJvciIsInNvcnRfcGFja2FnZXMiLCJFcnJvckNvZGUiLCJnZXRJbnRlcm5hbEVycm9yIiwicGFyYW1zIiwic2NvcGUiLCJwYWNrYWdlIiwiZ2V0UGFja2FnZSIsInVwbGlua3NMb29rIiwiY2FsbGJhY2siLCJpbmZvIiwic2V0IiwiSEVBREVSX1RZUEUiLCJDT05URU5UX1RZUEUiLCJIRUFERVJTIiwiVEVYVF9QTEFJTiIsInJlYWRtZSIsImtlZXBVcExpbmtEYXRhIiwidiIsInF1ZXJ5Iiwic2lkZUJhckluZm8iLCJjbG9uZSIsInZlcnNpb25zIiwibGF0ZXN0IiwiRElTVF9UQUdTIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJlbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFHQTs7QUFZQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUdB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NkIsWUFBQUEsV0FBVyxHQUFHLCtCQUFtQkEsV0FBbkIsQ0FBZDtBQUNEOztBQUNEM0MsVUFBQUEsSUFBSSxDQUFDMkMsV0FBRCxDQUFKO0FBQ0QsU0F6QkQsTUF5Qk87QUFDTDVDLFVBQUFBLEdBQUcsQ0FBQ2lELE1BQUosQ0FBV0MsdUJBQVlDLFNBQXZCO0FBQ0FuRCxVQUFBQSxHQUFHLENBQUNvRCxHQUFKO0FBQ0Q7QUFDRjtBQW5DZ0IsS0FBbkI7QUFxQ0QsR0F4Q0Q7QUF5Q0Q7O2VBRWN0RSxnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IENvbmZpZywgUGFja2FnZSB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHtcbiAgYWRkU2NvcGUsXG4gIGFkZEdyYXZhdGFyU3VwcG9ydCxcbiAgZGVsZXRlUHJvcGVydGllcyxcbiAgc29ydEJ5TmFtZSxcbiAgcGFyc2VSZWFkbWUsXG4gIGZvcm1hdEF1dGhvcixcbiAgY29udmVydERpc3RSZW1vdGVUb0xvY2FsVGFyYmFsbFVybHMsXG4gIGdldExvY2FsUmVnaXN0cnlUYXJiYWxsVXJpLFxuICBpc1ZlcnNpb25WYWxpZCxcbiAgRXJyb3JDb2RlLFxufSBmcm9tICcuLi8uLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgYWxsb3cgfSBmcm9tICcuLi8uLi9taWRkbGV3YXJlJztcbmltcG9ydCB7IERJU1RfVEFHUywgSEVBREVSX1RZUEUsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUdyYXZhdGFyVXJsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXNlcic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCB7IElBdXRoLCAkUmVzcG9uc2VFeHRlbmQsICRSZXF1ZXN0RXh0ZW5kLCAkTmV4dEZ1bmN0aW9uVmVyLCBJU3RvcmFnZUhhbmRsZXIsICRTaWRlYmFyUGFja2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcblxuY29uc3QgZ2V0T3JkZXIgPSAob3JkZXIgPSAnYXNjJykgPT4ge1xuICByZXR1cm4gb3JkZXIgPT09ICdhc2MnO1xufTtcblxuZXhwb3J0IHR5cGUgUGFja2NhZ2VFeHQgPSBQYWNrYWdlICYgeyBhdXRob3I6IGFueTsgZGlzdD86IHsgdGFyYmFsbDogc3RyaW5nIH0gfTtcblxuZnVuY3Rpb24gYWRkUGFja2FnZVdlYkFwaShyb3V0ZTogUm91dGVyLCBzdG9yYWdlOiBJU3RvcmFnZUhhbmRsZXIsIGF1dGg6IElBdXRoLCBjb25maWc6IENvbmZpZyk6IHZvaWQge1xuICBjb25zdCBjYW4gPSBhbGxvdyhhdXRoKTtcblxuICBjb25zdCBjaGVja0FsbG93ID0gKG5hbWUsIHJlbW90ZVVzZXIpOiBQcm9taXNlPGJvb2xlYW4+ID0+XG4gICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXV0aC5hbGxvd19hY2Nlc3MoeyBwYWNrYWdlTmFtZTogbmFtZSB9LCByZW1vdGVVc2VyLCAoZXJyLCBhbGxvd2VkKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUoYWxsb3dlZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIC8vIEdldCBsaXN0IG9mIGFsbCB2aXNpYmxlIHBhY2thZ2VcbiAgcm91dGUuZ2V0KCcvcGFja2FnZXMnLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBzdG9yYWdlLmdldExvY2FsRGF0YWJhc2UoYXN5bmMgZnVuY3Rpb24gKGVyciwgcGFja2FnZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICBhc3luYyBmdW5jdGlvbiBwcm9jZXNzUGFja2FnZXMocGFja2FnZXM6IFBhY2tjYWdlRXh0W10gPSBbXSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zOiBQYWNrY2FnZUV4dFtdID0gW107XG4gICAgICAgIGNvbnN0IHBhY2tnZXNDb3B5ID0gcGFja2FnZXMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChjb25zdCBwa2cgb2YgcGFja2dlc0NvcHkpIHtcbiAgICAgICAgICBjb25zdCBwa2dDb3B5ID0geyAuLi5wa2cgfTtcbiAgICAgICAgICBwa2dDb3B5LmF1dGhvciA9IGZvcm1hdEF1dGhvcihwa2cuYXV0aG9yKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IGNoZWNrQWxsb3cocGtnLm5hbWUsIHJlcS5yZW1vdGVfdXNlcikpIHtcbiAgICAgICAgICAgICAgaWYgKGNvbmZpZy53ZWIpIHtcbiAgICAgICAgICAgICAgICBwa2dDb3B5LmF1dGhvci5hdmF0YXIgPSBnZW5lcmF0ZUdyYXZhdGFyVXJsKHBrZ0NvcHkuYXV0aG9yLmVtYWlsLCBjb25maWcud2ViLmdyYXZhdGFyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoIV8uaXNOaWwocGtnQ29weS5kaXN0KSAmJiAhXy5pc051bGwocGtnQ29weS5kaXN0LnRhcmJhbGwpKSB7XG4gICAgICAgICAgICAgICAgcGtnQ29weS5kaXN0LnRhcmJhbGwgPSBnZXRMb2NhbFJlZ2lzdHJ5VGFyYmFsbFVyaShwa2dDb3B5LmRpc3QudGFyYmFsbCwgcGtnLm5hbWUsIHJlcSwgY29uZmlnLnVybF9wcmVmaXgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBlcm1pc3Npb25zLnB1c2gocGtnQ29weSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoeyBuYW1lOiBwa2cubmFtZSwgZXJyb3I6IGVyciB9LCAncGVybWlzc2lvbiBwcm9jZXNzIGZvciBAe25hbWV9IGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHdlYiB9ID0gY29uZmlnO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3Qgb3JkZXI6IGJvb2xlYW4gPSBjb25maWcud2ViID8gZ2V0T3JkZXIod2ViLnNvcnRfcGFja2FnZXMpIDogdHJ1ZTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbmV4dChzb3J0QnlOYW1lKGF3YWl0IHByb2Nlc3NQYWNrYWdlcyhwYWNrYWdlcyksIG9yZGVyKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICAvLyBHZXQgcGFja2FnZSByZWFkbWVcbiAgcm91dGUuZ2V0KCcvcGFja2FnZS9yZWFkbWUvKEA6c2NvcGUvKT86cGFja2FnZS86dmVyc2lvbj8nLCBjYW4oJ2FjY2VzcycpLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMuc2NvcGUgPyBhZGRTY29wZShyZXEucGFyYW1zLnNjb3BlLCByZXEucGFyYW1zLnBhY2thZ2UpIDogcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLFxuICAgICAgdXBsaW5rc0xvb2s6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVyciwgaW5mbyk6IHZvaWQge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5zZXQoSEVBREVSX1RZUEUuQ09OVEVOVF9UWVBFLCBIRUFERVJTLlRFWFRfUExBSU4pO1xuICAgICAgICBuZXh0KHBhcnNlUmVhZG1lKGluZm8ubmFtZSwgaW5mby5yZWFkbWUpKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJvdXRlLmdldCgnL3NpZGViYXIvKEA6c2NvcGUvKT86cGFja2FnZScsIGNhbignYWNjZXNzJyksIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lOiBzdHJpbmcgPSByZXEucGFyYW1zLnNjb3BlID8gYWRkU2NvcGUocmVxLnBhcmFtcy5zY29wZSwgcmVxLnBhcmFtcy5wYWNrYWdlKSA6IHJlcS5wYXJhbXMucGFja2FnZTtcblxuICAgIHN0b3JhZ2UuZ2V0UGFja2FnZSh7XG4gICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgIHVwbGlua3NMb29rOiB0cnVlLFxuICAgICAga2VlcFVwTGlua0RhdGE6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVycjogRXJyb3IsIGluZm86ICRTaWRlYmFyUGFja2FnZSk6IHZvaWQge1xuICAgICAgICBpZiAoXy5pc05pbChlcnIpKSB7XG4gICAgICAgICAgY29uc3QgeyB2IH0gPSByZXEucXVlcnk7XG4gICAgICAgICAgbGV0IHNpZGVCYXJJbmZvOiBhbnkgPSBfLmNsb25lKGluZm8pO1xuICAgICAgICAgIHNpZGVCYXJJbmZvLnZlcnNpb25zID0gY29udmVydERpc3RSZW1vdGVUb0xvY2FsVGFyYmFsbFVybHMoaW5mbywgcmVxLCBjb25maWcudXJsX3ByZWZpeCkudmVyc2lvbnM7XG4gICAgICAgICAgaWYgKGlzVmVyc2lvblZhbGlkKGluZm8sIHYpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBzaWRlQmFySW5mby5sYXRlc3QgPSBzaWRlQmFySW5mby52ZXJzaW9uc1t2XTtcbiAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdC5hdXRob3IgPSBmb3JtYXRBdXRob3Ioc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdCA9IHNpZGVCYXJJbmZvLnZlcnNpb25zW2luZm9bRElTVF9UQUdTXS5sYXRlc3RdO1xuICAgICAgICAgICAgaWYgKHNpZGVCYXJJbmZvPy5sYXRlc3QpIHtcbiAgICAgICAgICAgICAgc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvciA9IGZvcm1hdEF1dGhvcihzaWRlQmFySW5mby5sYXRlc3QuYXV0aG9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKTtcbiAgICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHNpZGVCYXJJbmZvID0gZGVsZXRlUHJvcGVydGllcyhbJ3JlYWRtZScsICdfYXR0YWNobWVudHMnLCAnX3JldicsICduYW1lJ10sIHNpZGVCYXJJbmZvKTtcbiAgICAgICAgICBpZiAoY29uZmlnLndlYikge1xuICAgICAgICAgICAgc2lkZUJhckluZm8gPSBhZGRHcmF2YXRhclN1cHBvcnQoc2lkZUJhckluZm8sIGNvbmZpZy53ZWIuZ3JhdmF0YXIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaWRlQmFySW5mbyA9IGFkZEdyYXZhdGFyU3VwcG9ydChzaWRlQmFySW5mbyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQoc2lkZUJhckluZm8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKTtcbiAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGRQYWNrYWdlV2ViQXBpO1xuIl19
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3BhY2thZ2UudHMiXSwibmFtZXMiOlsiZ2V0T3JkZXIiLCJvcmRlciIsImFkZFBhY2thZ2VXZWJBcGkiLCJzdG9yYWdlIiwiYXV0aCIsImNvbmZpZyIsImNhbiIsInBrZ1JvdXRlciIsImNoZWNrQWxsb3ciLCJuYW1lIiwicmVtb3RlVXNlciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYWxsb3dfYWNjZXNzIiwicGFja2FnZU5hbWUiLCJlcnIiLCJhbGxvd2VkIiwiZ2V0IiwicmVxIiwicmVzIiwibmV4dCIsImdldExvY2FsRGF0YWJhc2UiLCJwYWNrYWdlcyIsInByb2Nlc3NQYWNrYWdlcyIsInBlcm1pc3Npb25zIiwicGFja2dlc0NvcHkiLCJzbGljZSIsInBrZyIsInBrZ0NvcHkiLCJhdXRob3IiLCJyZW1vdGVfdXNlciIsIndlYiIsImF2YXRhciIsImVtYWlsIiwiZ3JhdmF0YXIiLCJfIiwiaXNOaWwiLCJkaXN0IiwiaXNOdWxsIiwidGFyYmFsbCIsInVybF9wcmVmaXgiLCJwdXNoIiwibG9nZ2VyIiwiZXJyb3IiLCJzb3J0X3BhY2thZ2VzIiwiRXJyb3JDb2RlIiwiZ2V0SW50ZXJuYWxFcnJvciIsInBhcmFtcyIsInNjb3BlIiwicGFja2FnZSIsImdldFBhY2thZ2UiLCJ1cGxpbmtzTG9vayIsImNhbGxiYWNrIiwiaW5mbyIsInNldCIsIkhFQURFUl9UWVBFIiwiQ09OVEVOVF9UWVBFIiwiSEVBREVSUyIsIlRFWFRfUExBSU4iLCJyZWZlcmVyIiwicGF0aG5hbWUiLCJVUkwiLCJ1bmRlZmluZWQiLCJyZWFkbWUiLCJrZWVwVXBMaW5rRGF0YSIsInYiLCJxdWVyeSIsInNpZGVCYXJJbmZvIiwiY2xvbmUiLCJ2ZXJzaW9ucyIsImxhdGVzdCIsIkRJU1RfVEFHUyIsInN0YXR1cyIsIkhUVFBfU1RBVFVTIiwiTk9UX0ZPVU5EIiwiZW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7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Q0Q7QUFDRjs7QUFDRFIsVUFBQUEsV0FBVyxHQUFHLDZCQUFpQixDQUFDLFFBQUQsRUFBVyxjQUFYLEVBQTJCLE1BQTNCLEVBQW1DLE1BQW5DLENBQWpCLEVBQTZEQSxXQUE3RCxDQUFkOztBQUNBLGNBQUkvRCxNQUFNLENBQUMyQixHQUFYLEVBQWdCO0FBQ2RvQyxZQUFBQSxXQUFXLEdBQUcsK0JBQW1CQSxXQUFuQixFQUFnQy9ELE1BQU0sQ0FBQzJCLEdBQVAsQ0FBV0csUUFBM0MsQ0FBZDtBQUNELFdBRkQsTUFFTztBQUNMaUMsWUFBQUEsV0FBVyxHQUFHLCtCQUFtQkEsV0FBbkIsQ0FBZDtBQUNEOztBQUNEL0MsVUFBQUEsSUFBSSxDQUFDK0MsV0FBRCxDQUFKO0FBQ0QsU0F6QkQsTUF5Qk87QUFDTGhELFVBQUFBLEdBQUcsQ0FBQ3FELE1BQUosQ0FBV0MsdUJBQVlDLFNBQXZCO0FBQ0F2RCxVQUFBQSxHQUFHLENBQUN3RCxHQUFKO0FBQ0Q7QUFDRjtBQW5DZ0IsS0FBbkI7QUFxQ0QsR0F4Q0Q7QUEwQ0EsU0FBT3JFLFNBQVA7QUFDRDs7ZUFFY0wsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBDb25maWcsIFBhY2thZ2UgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7XG4gIGFkZFNjb3BlLFxuICBhZGRHcmF2YXRhclN1cHBvcnQsXG4gIGRlbGV0ZVByb3BlcnRpZXMsXG4gIHNvcnRCeU5hbWUsXG4gIHBhcnNlUmVhZG1lLFxuICBmb3JtYXRBdXRob3IsXG4gIGNvbnZlcnREaXN0UmVtb3RlVG9Mb2NhbFRhcmJhbGxVcmxzLFxuICBnZXRMb2NhbFJlZ2lzdHJ5VGFyYmFsbFVyaSxcbiAgaXNWZXJzaW9uVmFsaWQsXG4gIEVycm9yQ29kZSxcbn0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7IGFsbG93IH0gZnJvbSAnLi4vLi4vbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBESVNUX1RBR1MsIEhFQURFUl9UWVBFLCBIRUFERVJTLCBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVHcmF2YXRhclVybCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3VzZXInO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBJQXV0aCwgJFJlc3BvbnNlRXh0ZW5kLCAkUmVxdWVzdEV4dGVuZCwgJE5leHRGdW5jdGlvblZlciwgSVN0b3JhZ2VIYW5kbGVyLCAkU2lkZWJhclBhY2thZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcyc7XG5cbmNvbnN0IGdldE9yZGVyID0gKG9yZGVyID0gJ2FzYycpID0+IHtcbiAgcmV0dXJuIG9yZGVyID09PSAnYXNjJztcbn07XG5cbmV4cG9ydCB0eXBlIFBhY2tjYWdlRXh0ID0gUGFja2FnZSAmIHsgYXV0aG9yOiBhbnk7IGRpc3Q/OiB7IHRhcmJhbGw6IHN0cmluZyB9IH07XG5cbmZ1bmN0aW9uIGFkZFBhY2thZ2VXZWJBcGkoc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyLCBhdXRoOiBJQXV0aCwgY29uZmlnOiBDb25maWcpOiBSb3V0ZXIge1xuICBjb25zdCBjYW4gPSBhbGxvdyhhdXRoKTtcbiAgY29uc3QgcGtnUm91dGVyID0gUm91dGVyKCk7IC8qIGVzbGludCBuZXctY2FwOiAwICovXG5cbiAgY29uc3QgY2hlY2tBbGxvdyA9IChuYW1lLCByZW1vdGVVc2VyKTogUHJvbWlzZTxib29sZWFuPiA9PlxuICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF1dGguYWxsb3dfYWNjZXNzKHsgcGFja2FnZU5hbWU6IG5hbWUgfSwgcmVtb3RlVXNlciwgKGVyciwgYWxsb3dlZCk6IHZvaWQgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKGFsbG93ZWQpO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAvLyBHZXQgbGlzdCBvZiBhbGwgdmlzaWJsZSBwYWNrYWdlXG4gIHBrZ1JvdXRlci5nZXQoJy9wYWNrYWdlcycsIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIHN0b3JhZ2UuZ2V0TG9jYWxEYXRhYmFzZShhc3luYyBmdW5jdGlvbiAoZXJyLCBwYWNrYWdlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NQYWNrYWdlcyhwYWNrYWdlczogUGFja2NhZ2VFeHRbXSA9IFtdKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbnM6IFBhY2tjYWdlRXh0W10gPSBbXTtcbiAgICAgICAgY29uc3QgcGFja2dlc0NvcHkgPSBwYWNrYWdlcy5zbGljZSgpO1xuICAgICAgICBmb3IgKGNvbnN0IHBrZyBvZiBwYWNrZ2VzQ29weSkge1xuICAgICAgICAgIGNvbnN0IHBrZ0NvcHkgPSB7IC4uLnBrZyB9O1xuICAgICAgICAgIHBrZ0NvcHkuYXV0aG9yID0gZm9ybWF0QXV0aG9yKHBrZy5hdXRob3IpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoYXdhaXQgY2hlY2tBbGxvdyhwa2cubmFtZSwgcmVxLnJlbW90ZV91c2VyKSkge1xuICAgICAgICAgICAgICBpZiAoY29uZmlnLndlYikge1xuICAgICAgICAgICAgICAgIHBrZ0NvcHkuYXV0aG9yLmF2YXRhciA9IGdlbmVyYXRlR3JhdmF0YXJVcmwocGtnQ29weS5hdXRob3IuZW1haWwsIGNvbmZpZy53ZWIuZ3JhdmF0YXIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICghXy5pc05pbChwa2dDb3B5LmRpc3QpICYmICFfLmlzTnVsbChwa2dDb3B5LmRpc3QudGFyYmFsbCkpIHtcbiAgICAgICAgICAgICAgICBwa2dDb3B5LmRpc3QudGFyYmFsbCA9IGdldExvY2FsUmVnaXN0cnlUYXJiYWxsVXJpKHBrZ0NvcHkuZGlzdC50YXJiYWxsLCBwa2cubmFtZSwgcmVxLCBjb25maWcudXJsX3ByZWZpeCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGVybWlzc2lvbnMucHVzaChwa2dDb3B5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcih7IG5hbWU6IHBrZy5uYW1lLCBlcnJvcjogZXJyIH0sICdwZXJtaXNzaW9uIHByb2Nlc3MgZm9yIEB7bmFtZX0gaGFzIGZhaWxlZDogQHtlcnJvcn0nKTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGVybWlzc2lvbnM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgd2ViIH0gPSBjb25maWc7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBvcmRlcjogYm9vbGVhbiA9IGNvbmZpZy53ZWIgPyBnZXRPcmRlcih3ZWIuc29ydF9wYWNrYWdlcykgOiB0cnVlO1xuXG4gICAgICB0cnkge1xuICAgICAgICBuZXh0KHNvcnRCeU5hbWUoYXdhaXQgcHJvY2Vzc1BhY2thZ2VzKHBhY2thZ2VzKSwgb3JkZXIpKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoRXJyb3JDb2RlLmdldEludGVybmFsRXJyb3IoKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIEdldCBwYWNrYWdlIHJlYWRtZVxuICBwa2dSb3V0ZXIuZ2V0KCcvcGFja2FnZS9yZWFkbWUvKEA6c2NvcGUvKT86cGFja2FnZS86dmVyc2lvbj8nLCBjYW4oJ2FjY2VzcycpLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMuc2NvcGUgPyBhZGRTY29wZShyZXEucGFyYW1zLnNjb3BlLCByZXEucGFyYW1zLnBhY2thZ2UpIDogcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLFxuICAgICAgdXBsaW5rc0xvb2s6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVyciwgaW5mbyk6IHZvaWQge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5zZXQoSEVBREVSX1RZUEUuQ09OVEVOVF9UWVBFLCBIRUFERVJTLlRFWFRfUExBSU4pO1xuICAgICAgICBjb25zdCByZWZlcmVyID0gcmVxLmdldCgnUmVmZXJlcicpO1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHJlZmVyZXIgPyBuZXcgVVJMKHJlZmVyZXIpLnBhdGhuYW1lIDogdW5kZWZpbmVkO1xuICAgICAgICBuZXh0KHBhcnNlUmVhZG1lKGluZm8ubmFtZSwgaW5mby5yZWFkbWUsIHsgcGF0aG5hbWUgfSkpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcGtnUm91dGVyLmdldCgnL3NpZGViYXIvKEA6c2NvcGUvKT86cGFja2FnZScsIGNhbignYWNjZXNzJyksIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lOiBzdHJpbmcgPSByZXEucGFyYW1zLnNjb3BlID8gYWRkU2NvcGUocmVxLnBhcmFtcy5zY29wZSwgcmVxLnBhcmFtcy5wYWNrYWdlKSA6IHJlcS5wYXJhbXMucGFja2FnZTtcblxuICAgIHN0b3JhZ2UuZ2V0UGFja2FnZSh7XG4gICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgIHVwbGlua3NMb29rOiB0cnVlLFxuICAgICAga2VlcFVwTGlua0RhdGE6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVycjogRXJyb3IsIGluZm86ICRTaWRlYmFyUGFja2FnZSk6IHZvaWQge1xuICAgICAgICBpZiAoXy5pc05pbChlcnIpKSB7XG4gICAgICAgICAgY29uc3QgeyB2IH0gPSByZXEucXVlcnk7XG4gICAgICAgICAgbGV0IHNpZGVCYXJJbmZvOiBhbnkgPSBfLmNsb25lKGluZm8pO1xuICAgICAgICAgIHNpZGVCYXJJbmZvLnZlcnNpb25zID0gY29udmVydERpc3RSZW1vdGVUb0xvY2FsVGFyYmFsbFVybHMoaW5mbywgcmVxLCBjb25maWcudXJsX3ByZWZpeCkudmVyc2lvbnM7XG4gICAgICAgICAgaWYgKGlzVmVyc2lvblZhbGlkKGluZm8sIHYpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBzaWRlQmFySW5mby5sYXRlc3QgPSBzaWRlQmFySW5mby52ZXJzaW9uc1t2XTtcbiAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdC5hdXRob3IgPSBmb3JtYXRBdXRob3Ioc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpZGVCYXJJbmZvLmxhdGVzdCA9IHNpZGVCYXJJbmZvLnZlcnNpb25zW2luZm9bRElTVF9UQUdTXS5sYXRlc3RdO1xuICAgICAgICAgICAgaWYgKHNpZGVCYXJJbmZvPy5sYXRlc3QpIHtcbiAgICAgICAgICAgICAgc2lkZUJhckluZm8ubGF0ZXN0LmF1dGhvciA9IGZvcm1hdEF1dGhvcihzaWRlQmFySW5mby5sYXRlc3QuYXV0aG9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKTtcbiAgICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHNpZGVCYXJJbmZvID0gZGVsZXRlUHJvcGVydGllcyhbJ3JlYWRtZScsICdfYXR0YWNobWVudHMnLCAnX3JldicsICduYW1lJ10sIHNpZGVCYXJJbmZvKTtcbiAgICAgICAgICBpZiAoY29uZmlnLndlYikge1xuICAgICAgICAgICAgc2lkZUJhckluZm8gPSBhZGRHcmF2YXRhclN1cHBvcnQoc2lkZUJhckluZm8sIGNvbmZpZy53ZWIuZ3JhdmF0YXIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaWRlQmFySW5mbyA9IGFkZEdyYXZhdGFyU3VwcG9ydChzaWRlQmFySW5mbyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQoc2lkZUJhckluZm8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKTtcbiAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBwa2dSb3V0ZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFkZFBhY2thZ2VXZWJBcGk7XG4iXX0=
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _express = require("express");
9
+
8
10
  var _search = _interopRequireDefault(require("../../../lib/search"));
9
11
 
10
12
  var _constants = require("../../../lib/constants");
@@ -15,8 +17,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
15
17
  * @prettier
16
18
  * @flow
17
19
  */
18
- function addSearchWebApi(route, storage, auth) {
20
+ function addSearchWebApi(storage, auth) {
21
+ const route = (0, _express.Router)();
22
+ /* eslint new-cap: 0 */
19
23
  // Search package
24
+
20
25
  route.get('/search/:anything', function (req, res, next) {
21
26
  const results = _search.default.query(req.params.anything); // FUTURE: figure out here the correct type
22
27
 
@@ -55,8 +60,9 @@ function addSearchWebApi(route, storage, auth) {
55
60
  next([]);
56
61
  }
57
62
  });
63
+ return route;
58
64
  }
59
65
 
60
66
  var _default = addSearchWebApi;
61
67
  exports.default = _default;
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3NlYXJjaC50cyJdLCJuYW1lcyI6WyJhZGRTZWFyY2hXZWJBcGkiLCJyb3V0ZSIsInN0b3JhZ2UiLCJhdXRoIiwiZ2V0IiwicmVxIiwicmVzIiwibmV4dCIsInJlc3VsdHMiLCJTZWFyY2giLCJxdWVyeSIsInBhcmFtcyIsImFueXRoaW5nIiwicGFja2FnZXMiLCJnZXRQYWNrYWdlSW5mbyIsImkiLCJnZXRQYWNrYWdlIiwibmFtZSIsInJlZiIsInVwbGlua3NMb29rIiwiY2FsbGJhY2siLCJlcnIiLCJlbnRyeSIsImFsbG93X2FjY2VzcyIsInBhY2thZ2VOYW1lIiwicmVtb3RlX3VzZXIiLCJhbGxvd2VkIiwicHVzaCIsInZlcnNpb25zIiwiRElTVF9UQUdTIiwibGF0ZXN0IiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBT0E7O0FBQ0E7Ozs7QUFSQTtBQUNBO0FBQ0E7QUFDQTtBQWNBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQXdDQyxPQUF4QyxFQUFrRUMsSUFBbEUsRUFBcUY7QUFDbkY7QUFDQUYsRUFBQUEsS0FBSyxDQUFDRyxHQUFOLENBQ0UsbUJBREYsRUFFRSxVQUFVQyxHQUFWLEVBQStCQyxHQUEvQixFQUFxREMsSUFBckQsRUFBbUY7QUFDakYsVUFBTUMsT0FBWSxHQUFHQyxnQkFBT0MsS0FBUCxDQUFhTCxHQUFHLENBQUNNLE1BQUosQ0FBV0MsUUFBeEIsQ0FBckIsQ0FEaUYsQ0FFakY7OztBQUNBLFVBQU1DLFFBQWUsR0FBRyxFQUF4Qjs7QUFFQSxVQUFNQyxjQUFjLEdBQUcsVUFBVUMsQ0FBVixFQUFtQjtBQUN4Q2IsTUFBQUEsT0FBTyxDQUFDYyxVQUFSLENBQW1CO0FBQ2pCQyxRQUFBQSxJQUFJLEVBQUVULE9BQU8sQ0FBQ08sQ0FBRCxDQUFQLENBQVdHLEdBREE7QUFFakJDLFFBQUFBLFdBQVcsRUFBRSxLQUZJO0FBR2pCQyxRQUFBQSxRQUFRLEVBQUUsQ0FBQ0MsR0FBRCxFQUFNQyxLQUFOLEtBQStCO0FBQ3ZDLGNBQUksQ0FBQ0QsR0FBRCxJQUFRQyxLQUFaLEVBQW1CO0FBQ2pCbkIsWUFBQUEsSUFBSSxDQUFDb0IsWUFBTCxDQUNFO0FBQUVDLGNBQUFBLFdBQVcsRUFBRUYsS0FBSyxDQUFDTDtBQUFyQixhQURGLEVBRUVaLEdBQUcsQ0FBQ29CLFdBRk4sRUFHRSxVQUFVSixHQUFWLEVBQWVLLE9BQWYsRUFBOEI7QUFDNUIsa0JBQUlMLEdBQUcsSUFBSSxDQUFDSyxPQUFaLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBRURiLGNBQUFBLFFBQVEsQ0FBQ2MsSUFBVCxDQUFjTCxLQUFLLENBQUNNLFFBQU4sQ0FBZU4sS0FBSyxDQUFDTyxvQkFBRCxDQUFMLENBQWlCQyxNQUFoQyxDQUFkO0FBQ0QsYUFUSDtBQVdEOztBQUVELGNBQUlmLENBQUMsSUFBSVAsT0FBTyxDQUFDdUIsTUFBUixHQUFpQixDQUExQixFQUE2QjtBQUMzQnhCLFlBQUFBLElBQUksQ0FBQ00sUUFBRCxDQUFKO0FBQ0QsV0FGRCxNQUVPO0FBQ0xDLFlBQUFBLGNBQWMsQ0FBQ0MsQ0FBQyxHQUFHLENBQUwsQ0FBZDtBQUNEO0FBQ0Y7QUF2QmdCLE9BQW5CO0FBeUJELEtBMUJEOztBQTRCQSxRQUFJUCxPQUFPLENBQUN1QixNQUFaLEVBQW9CO0FBQ2xCakIsTUFBQUEsY0FBYyxDQUFDLENBQUQsQ0FBZDtBQUNELEtBRkQsTUFFTztBQUNMUCxNQUFBQSxJQUFJLENBQUMsRUFBRCxDQUFKO0FBQ0Q7QUFDRixHQXhDSDtBQTBDRDs7ZUFFY1AsZSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKiBAZmxvd1xuICovXG5cbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IFNlYXJjaCBmcm9tICcuLi8uLi8uLi9saWIvc2VhcmNoJztcbmltcG9ydCB7IERJU1RfVEFHUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgSUF1dGgsXG4gICRSZXNwb25zZUV4dGVuZCxcbiAgJFJlcXVlc3RFeHRlbmQsXG4gICROZXh0RnVuY3Rpb25WZXIsXG4gIElTdG9yYWdlSGFuZGxlclxufSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcyc7XG5cbmZ1bmN0aW9uIGFkZFNlYXJjaFdlYkFwaShyb3V0ZTogUm91dGVyLCBzdG9yYWdlOiBJU3RvcmFnZUhhbmRsZXIsIGF1dGg6IElBdXRoKTogdm9pZCB7XG4gIC8vIFNlYXJjaCBwYWNrYWdlXG4gIHJvdXRlLmdldChcbiAgICAnL3NlYXJjaC86YW55dGhpbmcnLFxuICAgIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgY29uc3QgcmVzdWx0czogYW55ID0gU2VhcmNoLnF1ZXJ5KHJlcS5wYXJhbXMuYW55dGhpbmcpO1xuICAgICAgLy8gRlVUVVJFOiBmaWd1cmUgb3V0IGhlcmUgdGhlIGNvcnJlY3QgdHlwZVxuICAgICAgY29uc3QgcGFja2FnZXM6IGFueVtdID0gW107XG5cbiAgICAgIGNvbnN0IGdldFBhY2thZ2VJbmZvID0gZnVuY3Rpb24gKGkpOiB2b2lkIHtcbiAgICAgICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgICAgICBuYW1lOiByZXN1bHRzW2ldLnJlZixcbiAgICAgICAgICB1cGxpbmtzTG9vazogZmFsc2UsXG4gICAgICAgICAgY2FsbGJhY2s6IChlcnIsIGVudHJ5OiBQYWNrYWdlKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBpZiAoIWVyciAmJiBlbnRyeSkge1xuICAgICAgICAgICAgICBhdXRoLmFsbG93X2FjY2VzcyhcbiAgICAgICAgICAgICAgICB7IHBhY2thZ2VOYW1lOiBlbnRyeS5uYW1lIH0sXG4gICAgICAgICAgICAgICAgcmVxLnJlbW90ZV91c2VyLFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlcnIsIGFsbG93ZWQpOiB2b2lkIHtcbiAgICAgICAgICAgICAgICAgIGlmIChlcnIgfHwgIWFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBwYWNrYWdlcy5wdXNoKGVudHJ5LnZlcnNpb25zW2VudHJ5W0RJU1RfVEFHU10ubGF0ZXN0XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaSA+PSByZXN1bHRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgbmV4dChwYWNrYWdlcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBnZXRQYWNrYWdlSW5mbyhpICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBnZXRQYWNrYWdlSW5mbygwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQoW10pO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWRkU2VhcmNoV2ViQXBpO1xuIl19
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3NlYXJjaC50cyJdLCJuYW1lcyI6WyJhZGRTZWFyY2hXZWJBcGkiLCJzdG9yYWdlIiwiYXV0aCIsInJvdXRlIiwiZ2V0IiwicmVxIiwicmVzIiwibmV4dCIsInJlc3VsdHMiLCJTZWFyY2giLCJxdWVyeSIsInBhcmFtcyIsImFueXRoaW5nIiwicGFja2FnZXMiLCJnZXRQYWNrYWdlSW5mbyIsImkiLCJnZXRQYWNrYWdlIiwibmFtZSIsInJlZiIsInVwbGlua3NMb29rIiwiY2FsbGJhY2siLCJlcnIiLCJlbnRyeSIsImFsbG93X2FjY2VzcyIsInBhY2thZ2VOYW1lIiwicmVtb3RlX3VzZXIiLCJhbGxvd2VkIiwicHVzaCIsInZlcnNpb25zIiwiRElTVF9UQUdTIiwibGF0ZXN0IiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0E7O0FBRUE7O0FBQ0E7Ozs7QUFSQTtBQUNBO0FBQ0E7QUFDQTtBQVFBLFNBQVNBLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQW1EQyxJQUFuRCxFQUF3RTtBQUN0RSxRQUFNQyxLQUFLLEdBQUcsc0JBQWQ7QUFBd0I7QUFDeEI7O0FBQ0FBLEVBQUFBLEtBQUssQ0FBQ0MsR0FBTixDQUFVLG1CQUFWLEVBQStCLFVBQVVDLEdBQVYsRUFBK0JDLEdBQS9CLEVBQXFEQyxJQUFyRCxFQUFtRjtBQUNoSCxVQUFNQyxPQUFZLEdBQUdDLGdCQUFPQyxLQUFQLENBQWFMLEdBQUcsQ0FBQ00sTUFBSixDQUFXQyxRQUF4QixDQUFyQixDQURnSCxDQUVoSDs7O0FBQ0EsVUFBTUMsUUFBZSxHQUFHLEVBQXhCOztBQUVBLFVBQU1DLGNBQWMsR0FBRyxVQUFVQyxDQUFWLEVBQW1CO0FBQ3hDZCxNQUFBQSxPQUFPLENBQUNlLFVBQVIsQ0FBbUI7QUFDakJDLFFBQUFBLElBQUksRUFBRVQsT0FBTyxDQUFDTyxDQUFELENBQVAsQ0FBV0csR0FEQTtBQUVqQkMsUUFBQUEsV0FBVyxFQUFFLEtBRkk7QUFHakJDLFFBQUFBLFFBQVEsRUFBRSxDQUFDQyxHQUFELEVBQU1DLEtBQU4sS0FBK0I7QUFDdkMsY0FBSSxDQUFDRCxHQUFELElBQVFDLEtBQVosRUFBbUI7QUFDakJwQixZQUFBQSxJQUFJLENBQUNxQixZQUFMLENBQWtCO0FBQUVDLGNBQUFBLFdBQVcsRUFBRUYsS0FBSyxDQUFDTDtBQUFyQixhQUFsQixFQUErQ1osR0FBRyxDQUFDb0IsV0FBbkQsRUFBZ0UsVUFBVUosR0FBVixFQUFlSyxPQUFmLEVBQThCO0FBQzVGLGtCQUFJTCxHQUFHLElBQUksQ0FBQ0ssT0FBWixFQUFxQjtBQUNuQjtBQUNEOztBQUVEYixjQUFBQSxRQUFRLENBQUNjLElBQVQsQ0FBY0wsS0FBSyxDQUFDTSxRQUFOLENBQWVOLEtBQUssQ0FBQ08sb0JBQUQsQ0FBTCxDQUFpQkMsTUFBaEMsQ0FBZDtBQUNELGFBTkQ7QUFPRDs7QUFFRCxjQUFJZixDQUFDLElBQUlQLE9BQU8sQ0FBQ3VCLE1BQVIsR0FBaUIsQ0FBMUIsRUFBNkI7QUFDM0J4QixZQUFBQSxJQUFJLENBQUNNLFFBQUQsQ0FBSjtBQUNELFdBRkQsTUFFTztBQUNMQyxZQUFBQSxjQUFjLENBQUNDLENBQUMsR0FBRyxDQUFMLENBQWQ7QUFDRDtBQUNGO0FBbkJnQixPQUFuQjtBQXFCRCxLQXRCRDs7QUF3QkEsUUFBSVAsT0FBTyxDQUFDdUIsTUFBWixFQUFvQjtBQUNsQmpCLE1BQUFBLGNBQWMsQ0FBQyxDQUFELENBQWQ7QUFDRCxLQUZELE1BRU87QUFDTFAsTUFBQUEsSUFBSSxDQUFDLEVBQUQsQ0FBSjtBQUNEO0FBQ0YsR0FsQ0Q7QUFvQ0EsU0FBT0osS0FBUDtBQUNEOztlQUVjSCxlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqIEBmbG93XG4gKi9cblxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgU2VhcmNoIGZyb20gJy4uLy4uLy4uL2xpYi9zZWFyY2gnO1xuaW1wb3J0IHsgRElTVF9UQUdTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJQXV0aCwgJFJlc3BvbnNlRXh0ZW5kLCAkUmVxdWVzdEV4dGVuZCwgJE5leHRGdW5jdGlvblZlciwgSVN0b3JhZ2VIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5mdW5jdGlvbiBhZGRTZWFyY2hXZWJBcGkoc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyLCBhdXRoOiBJQXV0aCk6IFJvdXRlciB7XG4gIGNvbnN0IHJvdXRlID0gUm91dGVyKCk7IC8qIGVzbGludCBuZXctY2FwOiAwICovXG4gIC8vIFNlYXJjaCBwYWNrYWdlXG4gIHJvdXRlLmdldCgnL3NlYXJjaC86YW55dGhpbmcnLCBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBTZWFyY2gucXVlcnkocmVxLnBhcmFtcy5hbnl0aGluZyk7XG4gICAgLy8gRlVUVVJFOiBmaWd1cmUgb3V0IGhlcmUgdGhlIGNvcnJlY3QgdHlwZVxuICAgIGNvbnN0IHBhY2thZ2VzOiBhbnlbXSA9IFtdO1xuXG4gICAgY29uc3QgZ2V0UGFja2FnZUluZm8gPSBmdW5jdGlvbiAoaSk6IHZvaWQge1xuICAgICAgc3RvcmFnZS5nZXRQYWNrYWdlKHtcbiAgICAgICAgbmFtZTogcmVzdWx0c1tpXS5yZWYsXG4gICAgICAgIHVwbGlua3NMb29rOiBmYWxzZSxcbiAgICAgICAgY2FsbGJhY2s6IChlcnIsIGVudHJ5OiBQYWNrYWdlKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKCFlcnIgJiYgZW50cnkpIHtcbiAgICAgICAgICAgIGF1dGguYWxsb3dfYWNjZXNzKHsgcGFja2FnZU5hbWU6IGVudHJ5Lm5hbWUgfSwgcmVxLnJlbW90ZV91c2VyLCBmdW5jdGlvbiAoZXJyLCBhbGxvd2VkKTogdm9pZCB7XG4gICAgICAgICAgICAgIGlmIChlcnIgfHwgIWFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBwYWNrYWdlcy5wdXNoKGVudHJ5LnZlcnNpb25zW2VudHJ5W0RJU1RfVEFHU10ubGF0ZXN0XSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaSA+PSByZXN1bHRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5leHQocGFja2FnZXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYWNrYWdlSW5mbyhpICsgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCkge1xuICAgICAgZ2V0UGFja2FnZUluZm8oMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQoW10pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGRTZWFyY2hXZWJBcGk7XG4iXX0=
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _lodash = _interopRequireDefault(require("lodash"));
9
9
 
10
+ var _express = require("express");
11
+
10
12
  var _constants = require("../../../lib/constants");
11
13
 
12
14
  var _utils = require("../../../lib/utils");
@@ -17,9 +19,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
17
19
 
18
20
  /**
19
21
  * @prettier
20
- * @flow
21
22
  */
22
- function addUserAuthApi(route, auth, config) {
23
+ function addUserAuthApi(auth, config) {
24
+ const route = (0, _express.Router)();
25
+ /* eslint new-cap: 0 */
26
+
23
27
  route.post('/login', function (req, res, next) {
24
28
  const {
25
29
  username,
@@ -32,6 +36,7 @@ function addUserAuthApi(route, auth, config) {
32
36
  } else {
33
37
  req.remote_user = user;
34
38
  const jWTSignOptions = (0, _authUtils.getSecurity)(config).web.sign;
39
+ res.set(_constants.HEADERS.CACHE_CONTROL, 'no-cache, no-store');
35
40
  next({
36
41
  token: await auth.jwtEncrypt(user, jWTSignOptions),
37
42
  username: req.remote_user.name
@@ -69,8 +74,9 @@ function addUserAuthApi(route, auth, config) {
69
74
  return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.BAD_REQUEST, _constants.APP_ERROR.PASSWORD_VALIDATION));
70
75
  }
71
76
  });
77
+ return route;
72
78
  }
73
79
 
74
80
  var _default = addUserAuthApi;
75
81
  exports.default = _default;
76
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3VzZXIudHMiXSwibmFtZXMiOlsiYWRkVXNlckF1dGhBcGkiLCJyb3V0ZSIsImF1dGgiLCJjb25maWciLCJwb3N0IiwicmVxIiwicmVzIiwibmV4dCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJib2R5IiwiYXV0aGVudGljYXRlIiwiZXJyIiwidXNlciIsImVycm9yQ29kZSIsIm1lc3NhZ2UiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIklOVEVSTkFMX0VSUk9SIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsInJlbW90ZV91c2VyIiwialdUU2lnbk9wdGlvbnMiLCJ3ZWIiLCJzaWduIiwidG9rZW4iLCJqd3RFbmNyeXB0IiwibmFtZSIsInB1dCIsIl8iLCJpc05pbCIsInN0YXR1cyIsIkFQSV9FUlJPUiIsIk1VU1RfQkVfTE9HR0VEIiwibmV3IiwiY2hhbmdlUGFzc3dvcmQiLCJvbGQiLCJpc1VwZGF0ZWQiLCJvayIsImdldEludGVybmFsRXJyb3IiLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJCQURfUkVRVUVTVCIsIkFQUF9FUlJPUiIsIlBBU1NXT1JEX1ZBTElEQVRJT04iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7QUFJQTs7QUFFQTs7QUFDQTs7OztBQVpBO0FBQ0E7QUFDQTtBQUNBO0FBV0EsU0FBU0EsY0FBVCxDQUF3QkMsS0FBeEIsRUFBdUNDLElBQXZDLEVBQW9EQyxNQUFwRCxFQUEwRTtBQUN4RUYsRUFBQUEsS0FBSyxDQUFDRyxJQUFOLENBQVcsUUFBWCxFQUFxQixVQUFVQyxHQUFWLEVBQXdCQyxHQUF4QixFQUF1Q0MsSUFBdkMsRUFBcUU7QUFDeEYsVUFBTTtBQUFFQyxNQUFBQSxRQUFGO0FBQVlDLE1BQUFBO0FBQVosUUFBeUJKLEdBQUcsQ0FBQ0ssSUFBbkM7QUFFQVIsSUFBQUEsSUFBSSxDQUFDUyxZQUFMLENBQWtCSCxRQUFsQixFQUE0QkMsUUFBNUIsRUFBc0MsT0FBT0csR0FBUCxFQUFZQyxJQUFaLEtBQWdEO0FBQ3BGLFVBQUlELEdBQUosRUFBUztBQUNQLGNBQU1FLFNBQVMsR0FBR0YsR0FBRyxDQUFDRyxPQUFKLEdBQWNDLHVCQUFZQyxZQUExQixHQUF5Q0QsdUJBQVlFLGNBQXZFO0FBQ0FYLFFBQUFBLElBQUksQ0FBQ1ksaUJBQVVDLE9BQVYsQ0FBa0JOLFNBQWxCLEVBQTZCRixHQUFHLENBQUNHLE9BQWpDLENBQUQsQ0FBSjtBQUNELE9BSEQsTUFHTztBQUNMVixRQUFBQSxHQUFHLENBQUNnQixXQUFKLEdBQWtCUixJQUFsQjtBQUNBLGNBQU1TLGNBQThCLEdBQUcsNEJBQVluQixNQUFaLEVBQW9Cb0IsR0FBcEIsQ0FBd0JDLElBQS9EO0FBRUFqQixRQUFBQSxJQUFJLENBQUM7QUFDSGtCLFVBQUFBLEtBQUssRUFBRSxNQUFNdkIsSUFBSSxDQUFDd0IsVUFBTCxDQUFnQmIsSUFBaEIsRUFBc0JTLGNBQXRCLENBRFY7QUFFSGQsVUFBQUEsUUFBUSxFQUFFSCxHQUFHLENBQUNnQixXQUFKLENBQWdCTTtBQUZ2QixTQUFELENBQUo7QUFJRDtBQUNGLEtBYkQ7QUFjRCxHQWpCRDtBQW1CQTFCLEVBQUFBLEtBQUssQ0FBQzJCLEdBQU4sQ0FBVSxpQkFBVixFQUE2QixVQUFVdkIsR0FBVixFQUF3QkMsR0FBeEIsRUFBdUNDLElBQXZDLEVBQXFFO0FBQ2hHLFFBQUlzQixnQkFBRUMsS0FBRixDQUFRekIsR0FBRyxDQUFDZ0IsV0FBSixDQUFnQk0sSUFBeEIsQ0FBSixFQUFtQztBQUNqQ3JCLE1BQUFBLEdBQUcsQ0FBQ3lCLE1BQUosQ0FBV2YsdUJBQVlDLFlBQXZCO0FBQ0EsYUFBT1YsSUFBSSxDQUFDO0FBQ1Y7QUFDQVEsUUFBQUEsT0FBTyxFQUFFaUIscUJBQVVDO0FBRlQsT0FBRCxDQUFYO0FBSUQ7O0FBRUQsVUFBTTtBQUFFeEIsTUFBQUE7QUFBRixRQUFlSixHQUFHLENBQUNLLElBQXpCO0FBQ0EsVUFBTTtBQUFFaUIsTUFBQUE7QUFBRixRQUFXdEIsR0FBRyxDQUFDZ0IsV0FBckI7O0FBRUEsUUFBSSxpQ0FBaUJaLFFBQVEsQ0FBQ3lCLEdBQTFCLE1BQW1DLEtBQXZDLEVBQThDO0FBQzVDaEMsTUFBQUEsSUFBSSxDQUFDaUMsY0FBTCxDQUFvQlIsSUFBcEIsRUFBb0NsQixRQUFRLENBQUMyQixHQUE3QyxFQUFrRDNCLFFBQVEsQ0FBQ3lCLEdBQTNELEVBQWdFLENBQUN0QixHQUFELEVBQU15QixTQUFOLEtBQTBCO0FBQ3hGLFlBQUlSLGdCQUFFQyxLQUFGLENBQVFsQixHQUFSLEtBQWdCeUIsU0FBcEIsRUFBK0I7QUFDN0I5QixVQUFBQSxJQUFJLENBQUM7QUFDSCtCLFlBQUFBLEVBQUUsRUFBRTtBQURELFdBQUQsQ0FBSjtBQUdELFNBSkQsTUFJTztBQUNMLGlCQUFPL0IsSUFBSSxDQUFDWSxpQkFBVW9CLGdCQUFWLENBQTJCUCxxQkFBVVEscUJBQXJDLENBQUQsQ0FBWDtBQUNEO0FBQ0YsT0FSRDtBQVNELEtBVkQsTUFVTztBQUNMLGFBQU9qQyxJQUFJLENBQUNZLGlCQUFVQyxPQUFWLENBQWtCSix1QkFBWXlCLFdBQTlCLEVBQTJDQyxxQkFBVUMsbUJBQXJELENBQUQsQ0FBWDtBQUNEO0FBQ0YsR0F6QkQ7QUEwQkQ7O2VBRWMzQyxjIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqIEBmbG93XG4gKi9cblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgUm91dGVyLCBSZXNwb25zZSwgUmVxdWVzdCB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgQ29uZmlnLCBSZW1vdGVVc2VyLCBKV1RTaWduT3B0aW9ucyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUFBfRVJST1IsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJQXV0aCwgJE5leHRGdW5jdGlvblZlciB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBnZXRTZWN1cml0eSwgdmFsaWRhdGVQYXNzd29yZCB9IGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoLXV0aWxzJztcblxuZnVuY3Rpb24gYWRkVXNlckF1dGhBcGkocm91dGU6IFJvdXRlciwgYXV0aDogSUF1dGgsIGNvbmZpZzogQ29uZmlnKTogdm9pZCB7XG4gIHJvdXRlLnBvc3QoJy9sb2dpbicsIGZ1bmN0aW9uIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCB7IHVzZXJuYW1lLCBwYXNzd29yZCB9ID0gcmVxLmJvZHk7XG5cbiAgICBhdXRoLmF1dGhlbnRpY2F0ZSh1c2VybmFtZSwgcGFzc3dvcmQsIGFzeW5jIChlcnIsIHVzZXI6IFJlbW90ZVVzZXIpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgY29uc3QgZXJyb3JDb2RlID0gZXJyLm1lc3NhZ2UgPyBIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQgOiBIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUjtcbiAgICAgICAgbmV4dChFcnJvckNvZGUuZ2V0Q29kZShlcnJvckNvZGUsIGVyci5tZXNzYWdlKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEucmVtb3RlX3VzZXIgPSB1c2VyO1xuICAgICAgICBjb25zdCBqV1RTaWduT3B0aW9uczogSldUU2lnbk9wdGlvbnMgPSBnZXRTZWN1cml0eShjb25maWcpLndlYi5zaWduO1xuXG4gICAgICAgIG5leHQoe1xuICAgICAgICAgIHRva2VuOiBhd2FpdCBhdXRoLmp3dEVuY3J5cHQodXNlciwgaldUU2lnbk9wdGlvbnMpLFxuICAgICAgICAgIHVzZXJuYW1lOiByZXEucmVtb3RlX3VzZXIubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJvdXRlLnB1dCgnL3Jlc2V0X3Bhc3N3b3JkJywgZnVuY3Rpb24gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGlmIChfLmlzTmlsKHJlcS5yZW1vdGVfdXNlci5uYW1lKSkge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQpO1xuICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAvLyBGVVRVUkU6IHVwZGF0ZSB0byBhIG1vcmUgbWVhbmluZ2Z1bCBtZXNzYWdlXG4gICAgICAgIG1lc3NhZ2U6IEFQSV9FUlJPUi5NVVNUX0JFX0xPR0dFRCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgaWYgKHZhbGlkYXRlUGFzc3dvcmQocGFzc3dvcmQubmV3KSA9PT0gZmFsc2UpIHtcbiAgICAgIGF1dGguY2hhbmdlUGFzc3dvcmQobmFtZSBhcyBzdHJpbmcsIHBhc3N3b3JkLm9sZCwgcGFzc3dvcmQubmV3LCAoZXJyLCBpc1VwZGF0ZWQpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKF8uaXNOaWwoZXJyKSAmJiBpc1VwZGF0ZWQpIHtcbiAgICAgICAgICBuZXh0KHtcbiAgICAgICAgICAgIG9rOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKEFQSV9FUlJPUi5JTlRFUk5BTF9TRVJWRVJfRVJST1IpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNULCBBUFBfRVJST1IuUEFTU1dPUkRfVkFMSURBVElPTikpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFkZFVzZXJBdXRoQXBpO1xuIl19
82
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3VzZXIudHMiXSwibmFtZXMiOlsiYWRkVXNlckF1dGhBcGkiLCJhdXRoIiwiY29uZmlnIiwicm91dGUiLCJwb3N0IiwicmVxIiwicmVzIiwibmV4dCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJib2R5IiwiYXV0aGVudGljYXRlIiwiZXJyIiwidXNlciIsImVycm9yQ29kZSIsIm1lc3NhZ2UiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIklOVEVSTkFMX0VSUk9SIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsInJlbW90ZV91c2VyIiwialdUU2lnbk9wdGlvbnMiLCJ3ZWIiLCJzaWduIiwic2V0IiwiSEVBREVSUyIsIkNBQ0hFX0NPTlRST0wiLCJ0b2tlbiIsImp3dEVuY3J5cHQiLCJuYW1lIiwicHV0IiwiXyIsImlzTmlsIiwic3RhdHVzIiwiQVBJX0VSUk9SIiwiTVVTVF9CRV9MT0dHRUQiLCJuZXciLCJjaGFuZ2VQYXNzd29yZCIsIm9sZCIsImlzVXBkYXRlZCIsIm9rIiwiZ2V0SW50ZXJuYWxFcnJvciIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsIkJBRF9SRVFVRVNUIiwiQVBQX0VSUk9SIiwiUEFTU1dPUkRfVkFMSURBVElPTiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUVBOztBQUVBOztBQUVBOztBQUNBOzs7O0FBVkE7QUFDQTtBQUNBO0FBVUEsU0FBU0EsY0FBVCxDQUF3QkMsSUFBeEIsRUFBcUNDLE1BQXJDLEVBQTZEO0FBQzNELFFBQU1DLEtBQUssR0FBRyxzQkFBZDtBQUF3Qjs7QUFDeEJBLEVBQUFBLEtBQUssQ0FBQ0MsSUFBTixDQUFXLFFBQVgsRUFBcUIsVUFBVUMsR0FBVixFQUF3QkMsR0FBeEIsRUFBdUNDLElBQXZDLEVBQXFFO0FBQ3hGLFVBQU07QUFBRUMsTUFBQUEsUUFBRjtBQUFZQyxNQUFBQTtBQUFaLFFBQXlCSixHQUFHLENBQUNLLElBQW5DO0FBRUFULElBQUFBLElBQUksQ0FBQ1UsWUFBTCxDQUFrQkgsUUFBbEIsRUFBNEJDLFFBQTVCLEVBQXNDLE9BQU9HLEdBQVAsRUFBWUMsSUFBWixLQUFnRDtBQUNwRixVQUFJRCxHQUFKLEVBQVM7QUFDUCxjQUFNRSxTQUFTLEdBQUdGLEdBQUcsQ0FBQ0csT0FBSixHQUFjQyx1QkFBWUMsWUFBMUIsR0FBeUNELHVCQUFZRSxjQUF2RTtBQUNBWCxRQUFBQSxJQUFJLENBQUNZLGlCQUFVQyxPQUFWLENBQWtCTixTQUFsQixFQUE2QkYsR0FBRyxDQUFDRyxPQUFqQyxDQUFELENBQUo7QUFDRCxPQUhELE1BR087QUFDTFYsUUFBQUEsR0FBRyxDQUFDZ0IsV0FBSixHQUFrQlIsSUFBbEI7QUFDQSxjQUFNUyxjQUE4QixHQUFHLDRCQUFZcEIsTUFBWixFQUFvQnFCLEdBQXBCLENBQXdCQyxJQUEvRDtBQUNBbEIsUUFBQUEsR0FBRyxDQUFDbUIsR0FBSixDQUFRQyxtQkFBUUMsYUFBaEIsRUFBK0Isb0JBQS9CO0FBQ0FwQixRQUFBQSxJQUFJLENBQUM7QUFDSHFCLFVBQUFBLEtBQUssRUFBRSxNQUFNM0IsSUFBSSxDQUFDNEIsVUFBTCxDQUFnQmhCLElBQWhCLEVBQXNCUyxjQUF0QixDQURWO0FBRUhkLFVBQUFBLFFBQVEsRUFBRUgsR0FBRyxDQUFDZ0IsV0FBSixDQUFnQlM7QUFGdkIsU0FBRCxDQUFKO0FBSUQ7QUFDRixLQWJEO0FBY0QsR0FqQkQ7QUFtQkEzQixFQUFBQSxLQUFLLENBQUM0QixHQUFOLENBQVUsaUJBQVYsRUFBNkIsVUFBVTFCLEdBQVYsRUFBd0JDLEdBQXhCLEVBQXVDQyxJQUF2QyxFQUFxRTtBQUNoRyxRQUFJeUIsZ0JBQUVDLEtBQUYsQ0FBUTVCLEdBQUcsQ0FBQ2dCLFdBQUosQ0FBZ0JTLElBQXhCLENBQUosRUFBbUM7QUFDakN4QixNQUFBQSxHQUFHLENBQUM0QixNQUFKLENBQVdsQix1QkFBWUMsWUFBdkI7QUFDQSxhQUFPVixJQUFJLENBQUM7QUFDVjtBQUNBUSxRQUFBQSxPQUFPLEVBQUVvQixxQkFBVUM7QUFGVCxPQUFELENBQVg7QUFJRDs7QUFFRCxVQUFNO0FBQUUzQixNQUFBQTtBQUFGLFFBQWVKLEdBQUcsQ0FBQ0ssSUFBekI7QUFDQSxVQUFNO0FBQUVvQixNQUFBQTtBQUFGLFFBQVd6QixHQUFHLENBQUNnQixXQUFyQjs7QUFFQSxRQUFJLGlDQUFpQlosUUFBUSxDQUFDNEIsR0FBMUIsTUFBbUMsS0FBdkMsRUFBOEM7QUFDNUNwQyxNQUFBQSxJQUFJLENBQUNxQyxjQUFMLENBQW9CUixJQUFwQixFQUFvQ3JCLFFBQVEsQ0FBQzhCLEdBQTdDLEVBQWtEOUIsUUFBUSxDQUFDNEIsR0FBM0QsRUFBZ0UsQ0FBQ3pCLEdBQUQsRUFBTTRCLFNBQU4sS0FBMEI7QUFDeEYsWUFBSVIsZ0JBQUVDLEtBQUYsQ0FBUXJCLEdBQVIsS0FBZ0I0QixTQUFwQixFQUErQjtBQUM3QmpDLFVBQUFBLElBQUksQ0FBQztBQUNIa0MsWUFBQUEsRUFBRSxFQUFFO0FBREQsV0FBRCxDQUFKO0FBR0QsU0FKRCxNQUlPO0FBQ0wsaUJBQU9sQyxJQUFJLENBQUNZLGlCQUFVdUIsZ0JBQVYsQ0FBMkJQLHFCQUFVUSxxQkFBckMsQ0FBRCxDQUFYO0FBQ0Q7QUFDRixPQVJEO0FBU0QsS0FWRCxNQVVPO0FBQ0wsYUFBT3BDLElBQUksQ0FBQ1ksaUJBQVVDLE9BQVYsQ0FBa0JKLHVCQUFZNEIsV0FBOUIsRUFBMkNDLHFCQUFVQyxtQkFBckQsQ0FBRCxDQUFYO0FBQ0Q7QUFDRixHQXpCRDtBQTJCQSxTQUFPM0MsS0FBUDtBQUNEOztlQUVjSCxjIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IGV4cHJlc3MsIHsgUm91dGVyLCBSZXNwb25zZSwgUmVxdWVzdCB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgQ29uZmlnLCBSZW1vdGVVc2VyLCBKV1RTaWduT3B0aW9ucyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUFBfRVJST1IsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJQXV0aCwgJE5leHRGdW5jdGlvblZlciB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBnZXRTZWN1cml0eSwgdmFsaWRhdGVQYXNzd29yZCB9IGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoLXV0aWxzJztcblxuZnVuY3Rpb24gYWRkVXNlckF1dGhBcGkoYXV0aDogSUF1dGgsIGNvbmZpZzogQ29uZmlnKTogUm91dGVyIHtcbiAgY29uc3Qgcm91dGUgPSBSb3V0ZXIoKTsgLyogZXNsaW50IG5ldy1jYXA6IDAgKi9cbiAgcm91dGUucG9zdCgnL2xvZ2luJywgZnVuY3Rpb24gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0gPSByZXEuYm9keTtcblxuICAgIGF1dGguYXV0aGVudGljYXRlKHVzZXJuYW1lLCBwYXNzd29yZCwgYXN5bmMgKGVyciwgdXNlcjogUmVtb3RlVXNlcik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICBjb25zdCBlcnJvckNvZGUgPSBlcnIubWVzc2FnZSA/IEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCA6IEhUVFBfU1RBVFVTLklOVEVSTkFMX0VSUk9SO1xuICAgICAgICBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKGVycm9yQ29kZSwgZXJyLm1lc3NhZ2UpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5yZW1vdGVfdXNlciA9IHVzZXI7XG4gICAgICAgIGNvbnN0IGpXVFNpZ25PcHRpb25zOiBKV1RTaWduT3B0aW9ucyA9IGdldFNlY3VyaXR5KGNvbmZpZykud2ViLnNpZ247XG4gICAgICAgIHJlcy5zZXQoSEVBREVSUy5DQUNIRV9DT05UUk9MLCAnbm8tY2FjaGUsIG5vLXN0b3JlJyk7XG4gICAgICAgIG5leHQoe1xuICAgICAgICAgIHRva2VuOiBhd2FpdCBhdXRoLmp3dEVuY3J5cHQodXNlciwgaldUU2lnbk9wdGlvbnMpLFxuICAgICAgICAgIHVzZXJuYW1lOiByZXEucmVtb3RlX3VzZXIubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJvdXRlLnB1dCgnL3Jlc2V0X3Bhc3N3b3JkJywgZnVuY3Rpb24gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGlmIChfLmlzTmlsKHJlcS5yZW1vdGVfdXNlci5uYW1lKSkge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQpO1xuICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAvLyBGVVRVUkU6IHVwZGF0ZSB0byBhIG1vcmUgbWVhbmluZ2Z1bCBtZXNzYWdlXG4gICAgICAgIG1lc3NhZ2U6IEFQSV9FUlJPUi5NVVNUX0JFX0xPR0dFRCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgaWYgKHZhbGlkYXRlUGFzc3dvcmQocGFzc3dvcmQubmV3KSA9PT0gZmFsc2UpIHtcbiAgICAgIGF1dGguY2hhbmdlUGFzc3dvcmQobmFtZSBhcyBzdHJpbmcsIHBhc3N3b3JkLm9sZCwgcGFzc3dvcmQubmV3LCAoZXJyLCBpc1VwZGF0ZWQpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKF8uaXNOaWwoZXJyKSAmJiBpc1VwZGF0ZWQpIHtcbiAgICAgICAgICBuZXh0KHtcbiAgICAgICAgICAgIG9rOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKEFQSV9FUlJPUi5JTlRFUk5BTF9TRVJWRVJfRVJST1IpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNULCBBUFBfRVJST1IuUEFTU1dPUkRfVkFMSURBVElPTikpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGRVc2VyQXV0aEFwaTtcbiJdfQ==
@@ -83,7 +83,9 @@ function _default(config, auth, storage) {
83
83
  /* eslint new-cap:off */
84
84
 
85
85
 
86
- const router = _express.default.Router();
86
+ const router = _express.default.Router(); // run in production mode by default, just in case
87
+ // it shouldn't make any difference anyway
88
+
87
89
 
88
90
  router.use(auth.webUIJWTmiddleware());
89
91
  router.use(setSecurityWebHeaders); // static assets
@@ -107,6 +109,7 @@ function _default(config, auth, storage) {
107
109
  // Use POSIX version `path.posix.join` instead.
108
110
  config.web.logo = _path.default.posix.join('/-/static/', _path.default.basename(config.web.logo));
109
111
  router.get(config.web.logo, function (_req, res, next) {
112
+ // @ts-ignore
110
113
  debug('serve custom logo web:%s - local:%s', config.web.logo, absoluteLocalFile);
111
114
  res.sendFile(absoluteLocalFile, sendFileCallback(next));
112
115
  });
@@ -133,4 +136,4 @@ function _default(config, auth, storage) {
133
136
  });
134
137
  return router;
135
138
  }
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2luZGV4LnRzIl0sIm5hbWVzIjpbInNldFNlY3VyaXR5V2ViSGVhZGVycyIsInJlcXVpcmUiLCJkZWJ1ZyIsImxvYWRUaGVtZSIsImNvbmZpZyIsIl8iLCJpc05pbCIsInRoZW1lIiwiaGVhZCIsInBsdWdpbiIsInN0YXRpY1BhdGgiLCJtYW5pZmVzdCIsIm1hbmlmZXN0RmlsZXMiLCJ2YWxpZGF0ZVByaW1hcnlDb2xvciIsInByaW1hcnlDb2xvciIsImlzSGV4IiwidGVzdCIsInNlbmRGaWxlQ2FsbGJhY2siLCJuZXh0IiwiZXJyIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJhdXRoIiwic3RvcmFnZSIsIlNlYXJjaCIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJyb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwidXNlIiwid2ViVUlKV1RtaWRkbGV3YXJlIiwiZ2V0IiwicmVxIiwicmVzIiwiZmlsZW5hbWUiLCJwYXJhbXMiLCJmaWxlIiwic2VuZEZpbGUiLCJ3ZWIiLCJsb2dvIiwiYWJzb2x1dGVMb2NhbEZpbGUiLCJwYXRoIiwicG9zaXgiLCJyZXNvbHZlIiwiZnMiLCJleGlzdHNTeW5jIiwiYWNjZXNzU3luYyIsImNvbnN0YW50cyIsIlJfT0siLCJqb2luIiwiYmFzZW5hbWUiLCJfcmVxIiwidW5kZWZpbmVkIiwibG9nZ2VyIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBNEJDLE9BQU8sQ0FBQyxlQUFELENBQXpDOztBQUVBLE1BQU1DLEtBQUssR0FBRyxvQkFBVyxXQUFYLENBQWQ7O0FBRU8sU0FBU0MsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkI7QUFDaEMsTUFBSUMsZ0JBQUVDLEtBQUYsQ0FBUUYsTUFBTSxDQUFD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WCxFQUFtQk8sUUFBbkIsRUFBNkJDLGFBQTdCLEVBQTRDcUIsR0FBNUMsRUFBaURDLEdBQWpEO0FBQ0FoQyxJQUFBQSxLQUFLLENBQUMscUJBQUQsQ0FBTDtBQUNELEdBSEQ7QUFLQXlCLEVBQUFBLE1BQU0sQ0FBQ0ssR0FBUCxDQUFXLEdBQVgsRUFBZ0IsVUFBVUMsR0FBVixFQUFlQyxHQUFmLEVBQW9CaEIsSUFBcEIsRUFBMEI7QUFDeEMsNkJBQVdkLE1BQVgsRUFBbUJPLFFBQW5CLEVBQTZCQyxhQUE3QixFQUE0Q3FCLEdBQTVDLEVBQWlEQyxHQUFqRDtBQUNBaEMsSUFBQUEsS0FBSyxDQUFDLGFBQUQsQ0FBTDtBQUNELEdBSEQ7QUFLQSxTQUFPeUIsTUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCBTZWFyY2ggZnJvbSAnLi4vLi4vbGliL3NlYXJjaCc7XG5pbXBvcnQgeyBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IGxvYWRQbHVnaW4gZnJvbSAnLi4vLi4vbGliL3BsdWdpbi1sb2FkZXInO1xuaW1wb3J0IHsgaXNIVFRQUHJvdG9jb2wgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgcmVuZGVySFRNTCBmcm9tICcuL2h0bWwvcmVuZGVySFRNTCc7XG5cbmNvbnN0IHsgc2V0U2VjdXJpdHlXZWJIZWFkZXJzIH0gPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlJyk7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVGhlbWUoY29uZmlnKSB7XG4gIGlmIChfLmlzTmlsKGNvbmZpZy50aGVtZSkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIF8uaGVhZChcbiAgICAgIGxvYWRQbHVnaW4oXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgY29uZmlnLnRoZW1lLFxuICAgICAgICB7fSxcbiAgICAgICAgZnVuY3Rpb24gKHBsdWdpbikge1xuICAgICAgICAgIHJldHVybiBwbHVnaW4uc3RhdGljUGF0aCAmJiBwbHVnaW4ubWFuaWZlc3QgJiYgcGx1Z2luLm1hbmlmZXN0RmlsZXM7XG4gICAgICAgIH0sXG4gICAgICAgICd2ZXJkYWNjaW8tdGhlbWUnXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcmltYXJ5Q29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIGNvbnN0IGlzSGV4ID0gL14jKyhbYS1mQS1GMC05XXs2fXxbYS1mQS1GMC05XXszfSkkL2kudGVzdChwcmltYXJ5Q29sb3IpO1xuICBpZiAoIWlzSGV4KSB7XG4gICAgZGVidWcoJ2ludmFsaWQgcHJpbWFyeSBjb2xvciAlbycsIHByaW1hcnlDb2xvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHByaW1hcnlDb2xvcjtcbn1cblxuY29uc3Qgc2VuZEZpbGVDYWxsYmFjayA9IChuZXh0KSA9PiAoZXJyKSA9PiB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChlcnIuc3RhdHVzID09PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICBuZXh0KCk7XG4gIH0gZWxzZSB7XG4gICAgbmV4dChlcnIpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoY29uZmlnLCBhdXRoLCBzdG9yYWdlKSB7XG4gIGxldCB7IHN0YXRpY1BhdGgsIG1hbmlmZXN0LCBtYW5pZmVzdEZpbGVzIH0gPSBsb2FkVGhlbWUoY29uZmlnKSB8fCByZXF1aXJlKCdAdmVyZGFjY2lvL3VpLXRoZW1lJykoKTtcbiAgZGVidWcoJ3N0YXRpYyBwYXRoICVvJywgc3RhdGljUGF0aCk7XG4gIFNlYXJjaC5jb25maWd1cmVTdG9yYWdlKHN0b3JhZ2UpO1xuXG4gIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICBjb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuICByb3V0ZXIudXNlKGF1dGgud2ViVUlKV1RtaWRkbGV3YXJlKCkpO1xuICByb3V0ZXIudXNlKHNldFNlY3VyaXR5V2ViSGVhZGVycyk7XG5cbiAgLy8gc3RhdGljIGFzc2V0c1xuICByb3V0ZXIuZ2V0KCcvLS9zdGF0aWMvKicsIGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gcmVxLnBhcmFtc1swXTtcbiAgICBjb25zdCBmaWxlID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gO1xuICAgIGRlYnVnKCdyZW5kZXIgc3RhdGljIGZpbGUgJW8nLCBmaWxlKTtcbiAgICByZXMuc2VuZEZpbGUoZmlsZSwgc2VuZEZpbGVDYWxsYmFjayhuZXh0KSk7XG4gIH0pO1xuXG4gIC8vIGxvZ29cbiAgaWYgKGNvbmZpZz8ud2ViPy5sb2dvICYmICFpc0hUVFBQcm90b2NvbChjb25maWc/LndlYj8ubG9nbykpIHtcbiAgICAvLyBVUkkgcmVsYXRlZCB0byBhIGxvY2FsIGZpbGVcbiAgICBjb25zdCBhYnNvbHV0ZUxvY2FsRmlsZSA9IHBhdGgucG9zaXgucmVzb2x2ZShjb25maWcud2ViLmxvZ28pO1xuICAgIGRlYnVnKCdzZXJ2ZSBsb2NhbCBsb2dvICVzJywgYWJzb2x1dGVMb2NhbEZpbGUpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhhYnNvbHV0ZUxvY2FsRmlsZSkgJiYgdHlwZW9mIGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVMb2NhbEZpbGUsIGZzLmNvbnN0YW50cy5SX09LKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gTm90ZTogYHBhdGguam9pbmAgd2lsbCBicmVhayBvbiBXaW5kb3dzLCBiZWNhdXNlIGl0IHRyYW5zZm9ybXMgYC9gIHRvIGBcXGBcbiAgICAgICAgLy8gVXNlIFBPU0lYIHZlcnNpb24gYHBhdGgucG9zaXguam9pbmAgaW5zdGVhZC5cbiAgICAgICAgY29uZmlnLndlYi5sb2dvID0gcGF0aC5wb3NpeC5qb2luKCcvLS9zdGF0aWMvJywgcGF0aC5iYXNlbmFtZShjb25maWcud2ViLmxvZ28pKTtcbiAgICAgICAgcm91dGVyLmdldChjb25maWcud2ViLmxvZ28sIGZ1bmN0aW9uIChfcmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgICBkZWJ1Zygnc2VydmUgY3VzdG9tIGxvZ28gIHdlYjolcyAtIGxvY2FsOiVzJywgY29uZmlnLndlYi5sb2dvLCBhYnNvbHV0ZUxvY2FsRmlsZSk7XG4gICAgICAgICAgcmVzLnNlbmRGaWxlKGFic29sdXRlTG9jYWxGaWxlLCBzZW5kRmlsZUNhbGxiYWNrKG5leHQpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGRlYnVnKCdlbmFibGVkIGN1c3RvbSBsb2dvICVzJywgY29uZmlnLndlYi5sb2dvKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbmZpZy53ZWIubG9nbyA9IHVuZGVmaW5lZDtcbiAgICAgICAgbG9nZ2VyLndhcm4oYHdlYiBsb2dvIGlzIHdyb25nLCBwYXRoICR7YWJzb2x1dGVMb2NhbEZpbGV9IGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCByZWFkYWJsZWApO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgY29uZmlnLndlYi5sb2dvID0gdW5kZWZpbmVkO1xuICAgICAgbG9nZ2VyLndhcm4oYHdlYiBsb2dvIGlzIHdyb25nLCBwYXRoICR7YWJzb2x1dGVMb2NhbEZpbGV9IGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCByZWFkYWJsZWApO1xuICAgIH1cbiAgfVxuXG4gIHJvdXRlci5nZXQoJy8tL3dlYi86c2VjdGlvbi8qJywgZnVuY3Rpb24gKHJlcSwgcmVzKSB7XG4gICAgcmVuZGVySFRNTChjb25maWcsIG1hbmlmZXN0LCBtYW5pZmVzdEZpbGVzLCByZXEsIHJlcyk7XG4gICAgZGVidWcoJ3JlbmRlciBodG1sIHNlY3Rpb24nKTtcbiAgfSk7XG5cbiAgcm91dGVyLmdldCgnLycsIGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlbmRlckhUTUwoY29uZmlnLCBtYW5pZmVzdCwgbWFuaWZlc3RGaWxlcywgcmVxLCByZXMpO1xuICAgIGRlYnVnKCdyZW5kZXIgcm9vdCcpO1xuICB9KTtcblxuICByZXR1cm4gcm91dGVyO1xufVxuIl19
139
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvd2ViL2luZGV4LnRzIl0sIm5hbWVzIjpbInNldFNlY3VyaXR5V2ViSGVhZGVycyIsInJlcXVpcmUiLCJkZWJ1ZyIsImxvYWRUaGVtZSIsImNvbmZpZyIsIl8iLCJpc05pbCIsInRoZW1lIiwiaGVhZCIsInBsdWdpbiIsInN0YXRpY1BhdGgiLCJtYW5pZmVzdCIsIm1hbmlmZXN0RmlsZXMiLCJ2YWxpZGF0ZVByaW1hcnlDb2xvciIsInByaW1hcnlDb2xvciIsImlzSGV4IiwidGVzdCIsInNlbmRGaWxlQ2FsbGJhY2siLCJuZXh0IiwiZXJyIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJhdXRoIiwic3RvcmFnZSIsIlNlYXJjaCIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJyb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwidXNlIiwid2ViVUlKV1RtaWRkbGV3YXJlIiwiZ2V0IiwicmVxIiwicmVzIiwiZmlsZW5hbWUiLCJwYXJhbXMiLCJmaWxlIiwic2VuZEZpbGUiLCJ3ZWIiLCJsb2dvIiwiYWJzb2x1dGVMb2NhbEZpbGUiLCJwYXRoIiwicG9zaXgiLCJyZXNvbHZlIiwiZnMiLCJleGlzdHNTeW5jIiwiYWNjZXNzU3luYyIsImNvbnN0YW50cyIsIlJfT0siLCJqb2luIiwiYmFzZW5hbWUiLCJfcmVxIiwidW5kZWZpbmVkIiwibG9nZ2VyIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBNEJDLE9BQU8sQ0FBQyxlQUFELENBQXpDOztBQUVBLE1BQU1DLEtBQUssR0FBRyxvQkFBVyxXQUFYLENBQWQ7O0FBRU8sU0FBU0MsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkI7QUFDaEMsTUFBSUMsZ0JBQUVDLEtBQUYsQ0FBUUYsTUFBTSxDQUFD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RUFBb0I7QUFDbEQsNkJBQVc5QixNQUFYLEVBQW1CTyxRQUFuQixFQUE2QkMsYUFBN0IsRUFBNENxQixHQUE1QyxFQUFpREMsR0FBakQ7QUFDQWhDLElBQUFBLEtBQUssQ0FBQyxxQkFBRCxDQUFMO0FBQ0QsR0FIRDtBQUtBeUIsRUFBQUEsTUFBTSxDQUFDSyxHQUFQLENBQVcsR0FBWCxFQUFnQixVQUFVQyxHQUFWLEVBQWVDLEdBQWYsRUFBb0JoQixJQUFwQixFQUEwQjtBQUN4Qyw2QkFBV2QsTUFBWCxFQUFtQk8sUUFBbkIsRUFBNkJDLGFBQTdCLEVBQTRDcUIsR0FBNUMsRUFBaURDLEdBQWpEO0FBQ0FoQyxJQUFBQSxLQUFLLENBQUMsYUFBRCxDQUFMO0FBQ0QsR0FIRDtBQUtBLFNBQU95QixNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCBTZWFyY2ggZnJvbSAnLi4vLi4vbGliL3NlYXJjaCc7XG5pbXBvcnQgeyBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IGxvYWRQbHVnaW4gZnJvbSAnLi4vLi4vbGliL3BsdWdpbi1sb2FkZXInO1xuaW1wb3J0IHsgaXNIVFRQUHJvdG9jb2wgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgcmVuZGVySFRNTCBmcm9tICcuL2h0bWwvcmVuZGVySFRNTCc7XG5cbmNvbnN0IHsgc2V0U2VjdXJpdHlXZWJIZWFkZXJzIH0gPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlJyk7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVGhlbWUoY29uZmlnKSB7XG4gIGlmIChfLmlzTmlsKGNvbmZpZy50aGVtZSkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIF8uaGVhZChcbiAgICAgIGxvYWRQbHVnaW4oXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgY29uZmlnLnRoZW1lLFxuICAgICAgICB7fSxcbiAgICAgICAgZnVuY3Rpb24gKHBsdWdpbikge1xuICAgICAgICAgIHJldHVybiBwbHVnaW4uc3RhdGljUGF0aCAmJiBwbHVnaW4ubWFuaWZlc3QgJiYgcGx1Z2luLm1hbmlmZXN0RmlsZXM7XG4gICAgICAgIH0sXG4gICAgICAgICd2ZXJkYWNjaW8tdGhlbWUnXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcmltYXJ5Q29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIGNvbnN0IGlzSGV4ID0gL14jKyhbYS1mQS1GMC05XXs2fXxbYS1mQS1GMC05XXszfSkkL2kudGVzdChwcmltYXJ5Q29sb3IpO1xuICBpZiAoIWlzSGV4KSB7XG4gICAgZGVidWcoJ2ludmFsaWQgcHJpbWFyeSBjb2xvciAlbycsIHByaW1hcnlDb2xvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHByaW1hcnlDb2xvcjtcbn1cblxuY29uc3Qgc2VuZEZpbGVDYWxsYmFjayA9IChuZXh0KSA9PiAoZXJyKSA9PiB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChlcnIuc3RhdHVzID09PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICBuZXh0KCk7XG4gIH0gZWxzZSB7XG4gICAgbmV4dChlcnIpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoY29uZmlnOiBDb25maWcsIGF1dGgsIHN0b3JhZ2UpIHtcbiAgbGV0IHsgc3RhdGljUGF0aCwgbWFuaWZlc3QsIG1hbmlmZXN0RmlsZXMgfSA9IGxvYWRUaGVtZShjb25maWcpIHx8IHJlcXVpcmUoJ0B2ZXJkYWNjaW8vdWktdGhlbWUnKSgpO1xuICBkZWJ1Zygnc3RhdGljIHBhdGggJW8nLCBzdGF0aWNQYXRoKTtcbiAgU2VhcmNoLmNvbmZpZ3VyZVN0b3JhZ2Uoc3RvcmFnZSk7XG5cbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG4gIC8vIHJ1biBpbiBwcm9kdWN0aW9uIG1vZGUgYnkgZGVmYXVsdCwganVzdCBpbiBjYXNlXG4gIC8vIGl0IHNob3VsZG4ndCBtYWtlIGFueSBkaWZmZXJlbmNlIGFueXdheVxuICByb3V0ZXIudXNlKGF1dGgud2ViVUlKV1RtaWRkbGV3YXJlKCkpO1xuICByb3V0ZXIudXNlKHNldFNlY3VyaXR5V2ViSGVhZGVycyk7XG5cbiAgLy8gc3RhdGljIGFzc2V0c1xuICByb3V0ZXIuZ2V0KCcvLS9zdGF0aWMvKicsIGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gcmVxLnBhcmFtc1swXTtcbiAgICBjb25zdCBmaWxlID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gO1xuICAgIGRlYnVnKCdyZW5kZXIgc3RhdGljIGZpbGUgJW8nLCBmaWxlKTtcbiAgICByZXMuc2VuZEZpbGUoZmlsZSwgc2VuZEZpbGVDYWxsYmFjayhuZXh0KSk7XG4gIH0pO1xuXG4gIC8vIGxvZ29cbiAgaWYgKGNvbmZpZz8ud2ViPy5sb2dvICYmICFpc0hUVFBQcm90b2NvbChjb25maWc/LndlYj8ubG9nbykpIHtcbiAgICAvLyBVUkkgcmVsYXRlZCB0byBhIGxvY2FsIGZpbGVcbiAgICBjb25zdCBhYnNvbHV0ZUxvY2FsRmlsZSA9IHBhdGgucG9zaXgucmVzb2x2ZShjb25maWcud2ViLmxvZ28pO1xuICAgIGRlYnVnKCdzZXJ2ZSBsb2NhbCBsb2dvICVzJywgYWJzb2x1dGVMb2NhbEZpbGUpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhhYnNvbHV0ZUxvY2FsRmlsZSkgJiYgdHlwZW9mIGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVMb2NhbEZpbGUsIGZzLmNvbnN0YW50cy5SX09LKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gTm90ZTogYHBhdGguam9pbmAgd2lsbCBicmVhayBvbiBXaW5kb3dzLCBiZWNhdXNlIGl0IHRyYW5zZm9ybXMgYC9gIHRvIGBcXGBcbiAgICAgICAgLy8gVXNlIFBPU0lYIHZlcnNpb24gYHBhdGgucG9zaXguam9pbmAgaW5zdGVhZC5cbiAgICAgICAgY29uZmlnLndlYi5sb2dvID0gcGF0aC5wb3NpeC5qb2luKCcvLS9zdGF0aWMvJywgcGF0aC5iYXNlbmFtZShjb25maWcud2ViLmxvZ28pKTtcbiAgICAgICAgcm91dGVyLmdldChjb25maWcud2ViLmxvZ28sIGZ1bmN0aW9uIChfcmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgZGVidWcoJ3NlcnZlIGN1c3RvbSBsb2dvICB3ZWI6JXMgLSBsb2NhbDolcycsIGNvbmZpZy53ZWIubG9nbywgYWJzb2x1dGVMb2NhbEZpbGUpO1xuICAgICAgICAgIHJlcy5zZW5kRmlsZShhYnNvbHV0ZUxvY2FsRmlsZSwgc2VuZEZpbGVDYWxsYmFjayhuZXh0KSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkZWJ1ZygnZW5hYmxlZCBjdXN0b20gbG9nbyAlcycsIGNvbmZpZy53ZWIubG9nbyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25maWcud2ViLmxvZ28gPSB1bmRlZmluZWQ7XG4gICAgICAgIGxvZ2dlci53YXJuKGB3ZWIgbG9nbyBpcyB3cm9uZywgcGF0aCAke2Fic29sdXRlTG9jYWxGaWxlfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgcmVhZGFibGVgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbmZpZy53ZWIubG9nbyA9IHVuZGVmaW5lZDtcbiAgICAgIGxvZ2dlci53YXJuKGB3ZWIgbG9nbyBpcyB3cm9uZywgcGF0aCAke2Fic29sdXRlTG9jYWxGaWxlfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgcmVhZGFibGVgKTtcbiAgICB9XG4gIH1cblxuICByb3V0ZXIuZ2V0KCcvLS93ZWIvOnNlY3Rpb24vKicsIGZ1bmN0aW9uIChyZXEsIHJlcykge1xuICAgIHJlbmRlckhUTUwoY29uZmlnLCBtYW5pZmVzdCwgbWFuaWZlc3RGaWxlcywgcmVxLCByZXMpO1xuICAgIGRlYnVnKCdyZW5kZXIgaHRtbCBzZWN0aW9uJyk7XG4gIH0pO1xuXG4gIHJvdXRlci5nZXQoJy8nLCBmdW5jdGlvbiAocmVxLCByZXMsIG5leHQpIHtcbiAgICByZW5kZXJIVE1MKGNvbmZpZywgbWFuaWZlc3QsIG1hbmlmZXN0RmlsZXMsIHJlcSwgcmVzKTtcbiAgICBkZWJ1ZygncmVuZGVyIHJvb3QnKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlcjtcbn1cbiJdfQ==