parse-server 5.0.0-alpha.15 → 5.0.0-alpha.19
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.
- package/README.md +19 -2
- package/lib/Adapters/Auth/gcenter.js +14 -12
- package/lib/Adapters/Auth/oauth2.js +2 -4
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +5 -8
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +25 -6
- package/lib/Controllers/DatabaseController.js +26 -16
- package/lib/Controllers/LoggerController.js +7 -8
- package/lib/Controllers/index.js +5 -7
- package/lib/ParseServerRESTController.js +4 -6
- package/lib/Routers/SchemasRouter.js +4 -2
- package/lib/batch.js +9 -11
- package/lib/middlewares.js +4 -2
- package/package.json +4 -4
|
@@ -11,8 +11,6 @@ var _AdaptableController = _interopRequireDefault(require("./AdaptableController
|
|
|
11
11
|
|
|
12
12
|
var _LoggerAdapter = require("../Adapters/Logger/LoggerAdapter");
|
|
13
13
|
|
|
14
|
-
var _url = _interopRequireDefault(require("url"));
|
|
15
|
-
|
|
16
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
15
|
|
|
18
16
|
const MILLISECONDS_IN_A_DAY = 24 * 60 * 60 * 1000;
|
|
@@ -55,16 +53,17 @@ class LoggerController extends _AdaptableController.default {
|
|
|
55
53
|
});
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
maskSensitiveUrl(
|
|
59
|
-
const
|
|
56
|
+
maskSensitiveUrl(path) {
|
|
57
|
+
const urlString = 'http://localhost' + path; // prepend dummy string to make a real URL
|
|
60
58
|
|
|
61
|
-
const
|
|
59
|
+
const urlObj = new URL(urlString);
|
|
60
|
+
const query = urlObj.searchParams;
|
|
62
61
|
let sanitizedQuery = '?';
|
|
63
62
|
|
|
64
|
-
for (const key
|
|
63
|
+
for (const [key, value] of query) {
|
|
65
64
|
if (key !== 'password') {
|
|
66
65
|
// normal value
|
|
67
|
-
sanitizedQuery += key + '=' +
|
|
66
|
+
sanitizedQuery += key + '=' + value + '&';
|
|
68
67
|
} else {
|
|
69
68
|
// password value, redact it
|
|
70
69
|
sanitizedQuery += key + '=' + '********' + '&';
|
|
@@ -262,4 +261,4 @@ class LoggerController extends _AdaptableController.default {
|
|
|
262
261
|
exports.LoggerController = LoggerController;
|
|
263
262
|
var _default = LoggerController;
|
|
264
263
|
exports.default = _default;
|
|
265
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9Mb2dnZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIk1JTExJU0VDT05EU19JTl9BX0RBWSIsIkxPR19TVFJJTkdfVFJVTkNBVEVfTEVOR1RIIiwidHJ1bmNhdGlvbk1hcmtlciIsIkxvZ0xldmVsIiwiSU5GTyIsIkVSUk9SIiwiTG9nT3JkZXIiLCJERVNDRU5ESU5HIiwiQVNDRU5ESU5HIiwibG9nTGV2ZWxzIiwiTG9nZ2VyQ29udHJvbGxlciIsIkFkYXB0YWJsZUNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImFkYXB0ZXIiLCJhcHBJZCIsIm9wdGlvbnMiLCJsb2dMZXZlbCIsImxldmVsIiwidmVyYm9zZSIsImluZGV4IiwiaW5kZXhPZiIsImZvckVhY2giLCJsZXZlbEluZGV4IiwibWFza1NlbnNpdGl2ZVVybCIsInVybFN0cmluZyIsInVybE9iaiIsInVybCIsInBhcnNlIiwicXVlcnkiLCJzYW5pdGl6ZWRRdWVyeSIsImtleSIsInNsaWNlIiwicGF0aG5hbWUiLCJtYXNrU2Vuc2l0aXZlIiwiYXJnQXJyYXkiLCJtYXAiLCJlIiwicmVwbGFjZSIsIkFycmF5IiwiaXNBcnJheSIsIml0ZW0iLCJib2R5IiwiT2JqZWN0Iiwia2V5cyIsInBhcmFtcyIsImxvZyIsImFyZ3MiLCJjb25jYXQiLCJhcmciLCJhcHBseSIsImluZm8iLCJhcmd1bWVudHMiLCJlcnJvciIsIndhcm4iLCJkZWJ1ZyIsInNpbGx5IiwibG9nUmVxdWVzdCIsIm1ldGhvZCIsImhlYWRlcnMiLCJzdHJpbmdpZmllZEJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwibG9nUmVzcG9uc2UiLCJyZXN1bHQiLCJzdHJpbmdpZmllZFJlc3BvbnNlIiwidmFsaWREYXRlVGltZSIsImRhdGUiLCJEYXRlIiwiaXNOYU4iLCJnZXRUaW1lIiwidHJ1bmNhdGVMb2dNZXNzYWdlIiwic3RyaW5nIiwibGVuZ3RoIiwidHJ1bmNhdGVkIiwic3Vic3RyaW5nIiwicGFyc2VPcHRpb25zIiwiZnJvbSIsIm5vdyIsInVudGlsIiwic2l6ZSIsIk51bWJlciIsIm9yZGVyIiwiZ2V0TG9ncyIsIlBhcnNlIiwiRXJyb3IiLCJQVVNIX01JU0NPTkZJR1VSRUQiLCJleHBlY3RlZEFkYXB0ZXJUeXBlIiwiTG9nZ2VyQWRhcHRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEscUJBQXFCLEdBQUcsS0FBSyxFQUFMLEdBQVUsRUFBVixHQUFlLElBQTdDO0FBQ0EsTUFBTUMsMEJBQTBCLEdBQUcsSUFBbkM7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxpQkFBekI7QUFFTyxNQUFNQyxRQUFRLEdBQUc7QUFDdEJDLEVBQUFBLElBQUksRUFBRSxNQURnQjtBQUV0QkMsRUFBQUEsS0FBSyxFQUFFO0FBRmUsQ0FBakI7O0FBS0EsTUFBTUMsUUFBUSxHQUFHO0FBQ3RCQyxFQUFBQSxVQUFVLEVBQUUsTUFEVTtBQUV0QkMsRUFBQUEsU0FBUyxFQUFFO0FBRlcsQ0FBakI7O0FBS1AsTUFBTUMsU0FBUyxHQUFHLENBQUMsT0FBRCxFQUFVLE1BQVYsRUFBa0IsTUFBbEIsRUFBMEIsT0FBMUIsRUFBbUMsU0FBbkMsRUFBOEMsT0FBOUMsQ0FBbEI7O0FBRU8sTUFBTUMsZ0JBQU4sU0FBK0JDLDRCQUEvQixDQUFtRDtBQUN4REMsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQVVDLEtBQVYsRUFBaUJDLE9BQU8sR0FBRztBQUFFQyxJQUFBQSxRQUFRLEVBQUU7QUFBWixHQUEzQixFQUFpRDtBQUMxRCxVQUFNSCxPQUFOLEVBQWVDLEtBQWYsRUFBc0JDLE9BQXRCO0FBQ0EsUUFBSUUsS0FBSyxHQUFHLE1BQVo7O0FBQ0EsUUFBSUYsT0FBTyxDQUFDRyxPQUFaLEVBQXFCO0FBQ25CRCxNQUFBQSxLQUFLLEdBQUcsU0FBUjtBQUNEOztBQUNELFFBQUlGLE9BQU8sQ0FBQ0MsUUFBWixFQUFzQjtBQUNwQkMsTUFBQUEsS0FBSyxHQUFHRixPQUFPLENBQUND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SztBQUtMaEUsTUFBQUE7QUFMSyxLQUFQO0FBT0QsR0FqTXVELENBbU14RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0FpRSxFQUFBQSxPQUFPLENBQUNuRSxPQUFPLEdBQUcsRUFBWCxFQUFlO0FBQ3BCLFFBQUksQ0FBQyxLQUFLRixPQUFWLEVBQW1CO0FBQ2pCLFlBQU0sSUFBSXNFLFlBQU1DLEtBQVYsQ0FBZ0JELFlBQU1DLEtBQU4sQ0FBWUMsa0JBQTVCLEVBQWdELGlDQUFoRCxDQUFOO0FBQ0Q7O0FBQ0QsUUFBSSxPQUFPLEtBQUt4RSxPQUFMLENBQWFlLEtBQXBCLEtBQThCLFVBQWxDLEVBQThDO0FBQzVDLFlBQU0sSUFBSXVELFlBQU1DLEtBQVYsQ0FDSkQsWUFBTUMsS0FBTixDQUFZQyxrQkFEUixFQUVKLGtEQUZJLENBQU47QUFJRDs7QUFDRHRFLElBQUFBLE9BQU8sR0FBR0wsZ0JBQWdCLENBQUNpRSxZQUFqQixDQUE4QjVELE9BQTlCLENBQVY7QUFDQSxXQUFPLEtBQUtGLE9BQUwsQ0FBYWUsS0FBYixDQUFtQmIsT0FBbkIsQ0FBUDtBQUNEOztBQUVEdUUsRUFBQUEsbUJBQW1CLEdBQUc7QUFDcEIsV0FBT0MsNEJBQVA7QUFDRDs7QUExTnVEOzs7ZUE2TjNDN0UsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJzZSB9IGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IEFkYXB0YWJsZUNvbnRyb2xsZXIgZnJvbSAnLi9BZGFwdGFibGVDb250cm9sbGVyJztcbmltcG9ydCB7IExvZ2dlckFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9Mb2dnZXIvTG9nZ2VyQWRhcHRlcic7XG5pbXBvcnQgdXJsIGZyb20gJ3VybCc7XG5cbmNvbnN0IE1JTExJU0VDT05EU19JTl9BX0RBWSA9IDI0ICogNjAgKiA2MCAqIDEwMDA7XG5jb25zdCBMT0dfU1RSSU5HX1RSVU5DQVRFX0xFTkdUSCA9IDEwMDA7XG5jb25zdCB0cnVuY2F0aW9uTWFya2VyID0gJy4uLiAodHJ1bmNhdGVkKSc7XG5cbmV4cG9ydCBjb25zdCBMb2dMZXZlbCA9IHtcbiAgSU5GTzogJ2luZm8nLFxuICBFUlJPUjogJ2Vycm9yJyxcbn07XG5cbmV4cG9ydCBjb25zdCBMb2dPcmRlciA9IHtcbiAgREVTQ0VORElORzogJ2Rlc2MnLFxuICBBU0NFTkRJTkc6ICdhc2MnLFxufTtcblxuY29uc3QgbG9nTGV2ZWxzID0gWydlcnJvcicsICd3YXJuJywgJ2luZm8nLCAnZGVidWcnLCAndmVyYm9zZScsICdzaWxseSddO1xuXG5leHBvcnQgY2xhc3MgTG9nZ2VyQ29udHJvbGxlciBleHRlbmRzIEFkYXB0YWJsZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucyA9IHsgbG9nTGV2ZWw6ICdpbmZvJyB9KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgYXBwSWQsIG9wdGlvbnMpO1xuICAgIGxldCBsZXZlbCA9ICdpbmZvJztcbiAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBsZXZlbCA9ICd2ZXJib3NlJztcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubG9nTGV2ZWwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5sb2dMZXZlbDtcbiAgICB9XG4gICAgY29uc3QgaW5kZXggPSBsb2dMZXZlbHMuaW5kZXhPZihsZXZlbCk7IC8vIGluZm8gYnkgZGVmYXVsdFxuICAgIGxvZ0xldmVscy5mb3JFYWNoKChsZXZlbCwgbGV2ZWxJbmRleCkgPT4ge1xuICAgICAgaWYgKGxldmVsSW5kZXggPiBpbmRleCkge1xuICAgICAgICAvLyBzaWxlbmNlIHRoZSBsZXZlbHMgdGhhdCBhcmUgPiBtYXhJbmRleFxuICAgICAgICB0aGlzW2xldmVsXSA9ICgpID0+IHt9O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbWFza1NlbnNpdGl2ZVVybCh1cmxTdHJpbmcpIHtcbiAgICBjb25zdCB1cmxPYmogPSB1cmwucGFyc2UodXJsU3RyaW5nLCB0cnVlKTtcbiAgICBjb25zdCBxdWVyeSA9IHVybE9iai5xdWVyeTtcbiAgICBsZXQgc2FuaXRpemVkUXVlcnkgPSAnPyc7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBxdWVyeSkge1xuICAgICAgaWYgKGtleSAhPT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAvLyBub3JtYWwgdmFsdWVcbiAgICAgICAgc2FuaXRpemVkUXVlcnkgKz0ga2V5ICsgJz0nICsgcXVlcnlba2V5XSArICcmJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHBhc3N3b3JkIHZhbHVlLCByZWRhY3QgaXRcbiAgICAgICAgc2FuaXRpemVkUXVlcnkgKz0ga2V5ICsgJz0nICsgJyoqKioqKioqJyArICcmJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0cmltIGxhc3QgY2hhcmFjdGVyLCA/IG9yICZcbiAgICBzYW5pdGl6ZWRRdWVyeSA9IHNhbml0aXplZFF1ZXJ5LnNsaWNlKDAsIC0xKTtcblxuICAgIC8vIHJldHVybiBvcmlnaW5hbCBwYXRoIG5hbWUgd2l0aCBzYW5pdGl6ZWQgcGFyYW1zIGF0dGFjaGVkXG4gICAgcmV0dXJuIHVybE9iai5wYXRobmFtZSArIHNhbml0aXplZFF1ZXJ5O1xuICB9XG5cbiAgbWFza1NlbnNpdGl2ZShhcmdBcnJheSkge1xuICAgIHJldHVybiBhcmdBcnJheS5tYXAoZSA9PiB7XG4gICAgICBpZiAoIWUpIHtcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGUucmVwbGFjZSgvKHBhc3N3b3JkXCIuPzouP1wiKVteXCJdKlwiL2csICckMSoqKioqKioqXCInKTtcbiAgICAgIH1cbiAgICAgIC8vIGVsc2UgaXQgaXMgYW4gb2JqZWN0Li4uXG5cbiAgICAgIC8vIGNoZWNrIHRoZSB1cmxcbiAgICAgIGlmIChlLnVybCkge1xuICAgICAgICAvLyBmb3Igc3RyaW5nc1xuICAgICAgICBpZiAodHlwZW9mIGUudXJsID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGUudXJsID0gdGhpcy5tYXNrU2Vuc2l0aXZlVXJsKGUudXJsKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGUudXJsKSkge1xuICAgICAgICAgIC8vIGZvciBzdHJpbmdzIGluIGFycmF5XG4gICAgICAgICAgZS51cmwgPSBlLnVybC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLm1hc2tTZW5zaXRpdmVVcmwoaXRlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChlLmJvZHkpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZS5ib2R5KSkge1xuICAgICAgICAgIGlmIChrZXkgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgICAgICAgIGUuYm9keVtrZXldID0gJyoqKioqKioqJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZS5wYXJhbXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZS5wYXJhbXMpKSB7XG4gICAgICAgICAgaWYgKGtleSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAgICAgZS5wYXJhbXNba2V5XSA9ICcqKioqKioqKic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGU7XG4gICAgfSk7XG4gIH1cblxuICBsb2cobGV2ZWwsIGFyZ3MpIHtcbiAgICAvLyBtYWtlIHRoZSBwYXNzZWQgaW4gYXJndW1lbnRzIG9iamVjdCBhbiBhcnJheSB3aXRoIHRoZSBzcHJlYWQgb3BlcmF0b3JcbiAgICBhcmdzID0gdGhpcy5tYXNrU2Vuc2l0aXZlKFsuLi5hcmdzXSk7XG4gICAgYXJncyA9IFtdLmNvbmNhdChcbiAgICAgIGxldmVsLFxuICAgICAgYXJncy5tYXAoYXJnID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gYXJnKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFyZztcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmFkYXB0ZXIubG9nLmFwcGx5KHRoaXMuYWRhcHRlciwgYXJncyk7XG4gIH1cblxuICBpbmZvKCkge1xuICAgIHJldHVybiB0aGlzLmxvZygnaW5mbycsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5sb2coJ2Vycm9yJywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIHdhcm4oKSB7XG4gICAgcmV0dXJuIHRoaXMubG9nKCd3YXJuJywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIHZlcmJvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMubG9nKCd2ZXJib3NlJywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIGRlYnVnKCkge1xuICAgIHJldHVybiB0aGlzLmxvZygnZGVidWcnLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgc2lsbHkoKSB7XG4gICAgcmV0dXJuIHRoaXMubG9nKCdzaWxseScsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBsb2dSZXF1ZXN0KHsgbWV0aG9kLCB1cmwsIGhlYWRlcnMsIGJvZHkgfSkge1xuICAgIHRoaXMudmVyYm9zZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaW5naWZpZWRCb2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSwgbnVsbCwgMik7XG4gICAgICAgIHJldHVybiBgUkVRVUVTVCBmb3IgWyR7bWV0aG9kfV0gJHt1cmx9OiAke3N0cmluZ2lmaWVkQm9keX1gO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICB1cmwsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICAgIGJvZHksXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGxvZ1Jlc3BvbnNlKHsgbWV0aG9kLCB1cmwsIHJlc3VsdCB9KSB7XG4gICAgdGhpcy52ZXJib3NlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBzdHJpbmdpZmllZFJlc3BvbnNlID0gSlNPTi5zdHJpbmdpZnkocmVzdWx0LCBudWxsLCAyKTtcbiAgICAgICAgcmV0dXJuIGBSRVNQT05TRSBmcm9tIFske21ldGhvZH1dICR7dXJsfTogJHtzdHJpbmdpZmllZFJlc3BvbnNlfWA7XG4gICAgICB9LFxuICAgICAgeyByZXN1bHQ6IHJlc3VsdCB9XG4gICAgKTtcbiAgfVxuICAvLyBjaGVjayB0aGF0IGRhdGUgaW5wdXQgaXMgdmFsaWRcbiAgc3RhdGljIHZhbGlkRGF0ZVRpbWUoZGF0ZSkge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGRhdGUgPSBuZXcgRGF0ZShkYXRlKTtcblxuICAgIGlmICghaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRydW5jYXRlTG9nTWVzc2FnZShzdHJpbmcpIHtcbiAgICBpZiAoc3RyaW5nICYmIHN0cmluZy5sZW5ndGggPiBMT0dfU1RSSU5HX1RSVU5DQVRFX0xFTkdUSCkge1xuICAgICAgY29uc3QgdHJ1bmNhdGVkID0gc3RyaW5nLnN1YnN0cmluZygwLCBMT0dfU1RSSU5HX1RSVU5DQVRFX0xFTkdUSCkgKyB0cnVuY2F0aW9uTWFya2VyO1xuICAgICAgcmV0dXJuIHRydW5jYXRlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlT3B0aW9ucyhvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBmcm9tID1cbiAgICAgIExvZ2dlckNvbnRyb2xsZXIudmFsaWREYXRlVGltZShvcHRpb25zLmZyb20pIHx8XG4gICAgICBuZXcgRGF0ZShEYXRlLm5vdygpIC0gNyAqIE1JTExJU0VDT05EU19JTl9BX0RBWSk7XG4gICAgY29uc3QgdW50aWwgPSBMb2dnZXJDb250cm9sbGVyLnZhbGlkRGF0ZVRpbWUob3B0aW9ucy51bnRpbCkgfHwgbmV3IERhdGUoKTtcbiAgICBjb25zdCBzaXplID0gTnVtYmVyKG9wdGlvbnMuc2l6ZSkgfHwgMTA7XG4gICAgY29uc3Qgb3JkZXIgPSBvcHRpb25zLm9yZGVyIHx8IExvZ09yZGVyLkRFU0NFTkRJTkc7XG4gICAgY29uc3QgbGV2ZWwgPSBvcHRpb25zLmxldmVsIHx8IExvZ0xldmVsLklORk87XG5cbiAgICByZXR1cm4ge1xuICAgICAgZnJvbSxcbiAgICAgIHVudGlsLFxuICAgICAgc2l6ZSxcbiAgICAgIG9yZGVyLFxuICAgICAgbGV2ZWwsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIHtyZXNwb25zZX0gb2JqZWN0LlxuICAvLyBxdWVyeSBwYXJhbXM6XG4gIC8vIGxldmVsIChvcHRpb25hbCkgTGV2ZWwgb2YgbG9nZ2luZyB5b3Ugd2FudCB0byBxdWVyeSBmb3IgKGluZm8gfHwgZXJyb3IpXG4gIC8vIGZyb20gKG9wdGlvbmFsKSBTdGFydCB0aW1lIGZvciB0aGUgc2VhcmNoLiBEZWZhdWx0cyB0byAxIHdlZWsgYWdvLlxuICAvLyB1bnRpbCAob3B0aW9uYWwpIEVuZCB0aW1lIGZvciB0aGUgc2VhcmNoLiBEZWZhdWx0cyB0byBjdXJyZW50IHRpbWUuXG4gIC8vIG9yZGVyIChvcHRpb25hbCkgRGlyZWN0aW9uIG9mIHJlc3VsdHMgcmV0dXJuZWQsIGVpdGhlciDigJxhc2PigJ0gb3Ig4oCcZGVzY+KAnS4gRGVmYXVsdHMgdG8g4oCcZGVzY+KAnS5cbiAgLy8gc2l6ZSAob3B0aW9uYWwpIE51bWJlciBvZiByb3dzIHJldHVybmVkIGJ5IHNlYXJjaC4gRGVmYXVsdHMgdG8gMTBcbiAgZ2V0TG9ncyhvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIXRoaXMuYWRhcHRlcikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlBVU0hfTUlTQ09ORklHVVJFRCwgJ0xvZ2dlciBhZGFwdGVyIGlzIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLmFkYXB0ZXIucXVlcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgUGFyc2UuRXJyb3IuUFVTSF9NSVNDT05GSUdVUkVELFxuICAgICAgICAnUXVlcnlpbmcgbG9ncyBpcyBub3Qgc3VwcG9ydGVkIHdpdGggdGhpcyBhZGFwdGVyJ1xuICAgICAgKTtcbiAgICB9XG4gICAgb3B0aW9ucyA9IExvZ2dlckNvbnRyb2xsZXIucGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucXVlcnkob3B0aW9ucyk7XG4gIH1cblxuICBleHBlY3RlZEFkYXB0ZXJUeXBlKCkge1xuICAgIHJldHVybiBMb2dnZXJBZGFwdGVyO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvZ2dlckNvbnRyb2xsZXI7XG4iXX0=
|
|
264
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9Mb2dnZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIk1JTExJU0VDT05EU19JTl9BX0RBWSIsIkxPR19TVFJJTkdfVFJVTkNBVEVfTEVOR1RIIiwidHJ1bmNhdGlvbk1hcmtlciIsIkxvZ0xldmVsIiwiSU5GTyIsIkVSUk9SIiwiTG9nT3JkZXIiLCJERVNDRU5ESU5HIiwiQVNDRU5ESU5HIiwibG9nTGV2ZWxzIiwiTG9nZ2VyQ29udHJvbGxlciIsIkFkYXB0YWJsZUNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImFkYXB0ZXIiLCJhcHBJZCIsIm9wdGlvbnMiLCJsb2dMZXZlbCIsImxldmVsIiwidmVyYm9zZSIsImluZGV4IiwiaW5kZXhPZiIsImZvckVhY2giLCJsZXZlbEluZGV4IiwibWFza1NlbnNpdGl2ZVVybCIsInBhdGgiLCJ1cmxTdHJpbmciLCJ1cmxPYmoiLCJVUkwiLCJxdWVyeSIsInNlYXJjaFBhcmFtcyIsInNhbml0aXplZFF1ZXJ5Iiwia2V5IiwidmFsdWUiLCJzbGljZSIsInBhdGhuYW1lIiwibWFza1NlbnNpdGl2ZSIsImFyZ0FycmF5IiwibWFwIiwiZSIsInJlcGxhY2UiLCJ1cmwiLCJBcnJheSIsImlzQXJyYXkiLCJpdGVtIiwiYm9keSIsIk9iamVjdCIsImtleXMiLCJwYXJhbXMiLCJsb2ciLCJhcmdzIiwiY29uY2F0IiwiYXJnIiwiYXBwbHkiLCJpbmZvIiwiYXJndW1lbnRzIiwiZXJyb3IiLCJ3YXJuIiwiZGVidWciLCJzaWxseSIsImxvZ1JlcXVlc3QiLCJtZXRob2QiLCJoZWFkZXJzIiwic3RyaW5naWZpZWRCb2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsImxvZ1Jlc3BvbnNlIiwicmVzdWx0Iiwic3RyaW5naWZpZWRSZXNwb25zZSIsInZhbGlkRGF0ZVRpbWUiLCJkYXRlIiwiRGF0ZSIsImlzTmFOIiwiZ2V0VGltZSIsInRydW5jYXRlTG9nTWVzc2FnZSIsInN0cmluZyIsImxlbmd0aCIsInRydW5jYXRlZCIsInN1YnN0cmluZyIsInBhcnNlT3B0aW9ucyIsImZyb20iLCJub3ciLCJ1bnRpbCIsInNpemUiLCJOdW1iZXIiLCJvcmRlciIsImdldExvZ3MiLCJQYXJzZSIsIkVycm9yIiwiUFVTSF9NSVNDT05GSUdVUkVEIiwiZXhwZWN0ZWRBZGFwdGVyVHlwZSIsIkxvZ2dlckFkYXB0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQU1BLHFCQUFxQixHQUFHLEtBQUssRUFBTCxHQUFVLEVBQVYsR0FBZSxJQUE3QztBQUNBLE1BQU1DLDBCQUEwQixHQUFHLElBQW5DO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsaUJBQXpCO0FBRU8sTUFBTUMsUUFBUSxHQUFHO0FBQ3RCQyxFQUFBQSxJQUFJLEVBQUUsTUFEZ0I7QUFFdEJDLEVBQUFBLEtBQUssRUFBRTtBQUZlLENBQWpCOztBQUtBLE1BQU1DLFFBQVEsR0FBRztBQUN0QkMsRUFBQUEsVUFBVSxFQUFFLE1BRFU7QUFFdEJDLEVBQUFBLFNBQVMsRUFBRTtBQUZXLENBQWpCOztBQUtQLE1BQU1DLFNBQVMsR0FBRyxDQUFDLE9BQUQsRUFBVSxNQUFWLEVBQWtCLE1BQWxCLEVBQTBCLE9BQTFCLEVBQW1DLFNBQW5DLEVBQThDLE9BQTlDLENBQWxCOztBQUVPLE1BQU1DLGdCQUFOLFNBQStCQyw0QkFBL0IsQ0FBbUQ7QUFDeERDLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFVQyxLQUFWLEVBQWlCQyxPQUFPLEdBQUc7QUFBRUMsSUFBQUEsUUFBUSxFQUFFO0FBQVosR0FBM0IsRUFBaUQ7QUFDMUQsVUFBTUgsT0FBTixFQUFlQyxLQUFmLEVBQXNCQyxPQUF0QjtBQUNBLFFBQUlFLEtBQUssR0FBRyxNQUFaOztBQUNBLFFBQUlGLE9BQU8sQ0FBQ0csT0FBWixFQUFxQjtBQUNuQkQsTUFBQUEsS0FBSyxHQUFHLFNBQVI7QUFDRDs7QUFDRCxRQUFJRixPQUFPLENBQUNDLFFBQVosRUFBc0I7QUFDcEJDLE1BQUFB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QUNMMkUsTUFBQUEsSUFESztBQUVMRSxNQUFBQSxLQUZLO0FBR0xDLE1BQUFBLElBSEs7QUFJTEUsTUFBQUEsS0FKSztBQUtMbkUsTUFBQUE7QUFMSyxLQUFQO0FBT0QsR0FsTXVELENBb014RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0FvRSxFQUFBQSxPQUFPLENBQUN0RSxPQUFPLEdBQUcsRUFBWCxFQUFlO0FBQ3BCLFFBQUksQ0FBQyxLQUFLRixPQUFWLEVBQW1CO0FBQ2pCLFlBQU0sSUFBSXlFLFlBQU1DLEtBQVYsQ0FBZ0JELFlBQU1DLEtBQU4sQ0FBWUMsa0JBQTVCLEVBQWdELGlDQUFoRCxDQUFOO0FBQ0Q7O0FBQ0QsUUFBSSxPQUFPLEtBQUszRSxPQUFMLENBQWFlLEtBQXBCLEtBQThCLFVBQWxDLEVBQThDO0FBQzVDLFlBQU0sSUFBSTBELFlBQU1DLEtBQVYsQ0FDSkQsWUFBTUMsS0FBTixDQUFZQyxrQkFEUixFQUVKLGtEQUZJLENBQU47QUFJRDs7QUFDRHpFLElBQUFBLE9BQU8sR0FBR0wsZ0JBQWdCLENBQUNvRSxZQUFqQixDQUE4Qi9ELE9BQTlCLENBQVY7QUFDQSxXQUFPLEtBQUtGLE9BQUwsQ0FBYWUsS0FBYixDQUFtQmIsT0FBbkIsQ0FBUDtBQUNEOztBQUVEMEUsRUFBQUEsbUJBQW1CLEdBQUc7QUFDcEIsV0FBT0MsNEJBQVA7QUFDRDs7QUEzTnVEOzs7ZUE4TjNDaEYsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJzZSB9IGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IEFkYXB0YWJsZUNvbnRyb2xsZXIgZnJvbSAnLi9BZGFwdGFibGVDb250cm9sbGVyJztcbmltcG9ydCB7IExvZ2dlckFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9Mb2dnZXIvTG9nZ2VyQWRhcHRlcic7XG5cbmNvbnN0IE1JTExJU0VDT05EU19JTl9BX0RBWSA9IDI0ICogNjAgKiA2MCAqIDEwMDA7XG5jb25zdCBMT0dfU1RSSU5HX1RSVU5DQVRFX0xFTkdUSCA9IDEwMDA7XG5jb25zdCB0cnVuY2F0aW9uTWFya2VyID0gJy4uLiAodHJ1bmNhdGVkKSc7XG5cbmV4cG9ydCBjb25zdCBMb2dMZXZlbCA9IHtcbiAgSU5GTzogJ2luZm8nLFxuICBFUlJPUjogJ2Vycm9yJyxcbn07XG5cbmV4cG9ydCBjb25zdCBMb2dPcmRlciA9IHtcbiAgREVTQ0VORElORzogJ2Rlc2MnLFxuICBBU0NFTkRJTkc6ICdhc2MnLFxufTtcblxuY29uc3QgbG9nTGV2ZWxzID0gWydlcnJvcicsICd3YXJuJywgJ2luZm8nLCAnZGVidWcnLCAndmVyYm9zZScsICdzaWxseSddO1xuXG5leHBvcnQgY2xhc3MgTG9nZ2VyQ29udHJvbGxlciBleHRlbmRzIEFkYXB0YWJsZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucyA9IHsgbG9nTGV2ZWw6ICdpbmZvJyB9KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgYXBwSWQsIG9wdGlvbnMpO1xuICAgIGxldCBsZXZlbCA9ICdpbmZvJztcbiAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBsZXZlbCA9ICd2ZXJib3NlJztcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubG9nTGV2ZWwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5sb2dMZXZlbDtcbiAgICB9XG4gICAgY29uc3QgaW5kZXggPSBsb2dMZXZlbHMuaW5kZXhPZihsZXZlbCk7IC8vIGluZm8gYnkgZGVmYXVsdFxuICAgIGxvZ0xldmVscy5mb3JFYWNoKChsZXZlbCwgbGV2ZWxJbmRleCkgPT4ge1xuICAgICAgaWYgKGxldmVsSW5kZXggPiBpbmRleCkge1xuICAgICAgICAvLyBzaWxlbmNlIHRoZSBsZXZlbHMgdGhhdCBhcmUgPiBtYXhJbmRleFxuICAgICAgICB0aGlzW2xldmVsXSA9ICgpID0+IHt9O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbWFza1NlbnNpdGl2ZVVybChwYXRoKSB7XG4gICAgY29uc3QgdXJsU3RyaW5nID0gJ2h0dHA6Ly9sb2NhbGhvc3QnICsgcGF0aDsgLy8gcHJlcGVuZCBkdW1teSBzdHJpbmcgdG8gbWFrZSBhIHJlYWwgVVJMXG4gICAgY29uc3QgdXJsT2JqID0gbmV3IFVSTCh1cmxTdHJpbmcpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdXJsT2JqLnNlYXJjaFBhcmFtcztcbiAgICBsZXQgc2FuaXRpemVkUXVlcnkgPSAnPyc7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBxdWVyeSkge1xuICAgICAgaWYgKGtleSAhPT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAvLyBub3JtYWwgdmFsdWVcbiAgICAgICAgc2FuaXRpemVkUXVlcnkgKz0ga2V5ICsgJz0nICsgdmFsdWUgKyAnJic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBwYXNzd29yZCB2YWx1ZSwgcmVkYWN0IGl0XG4gICAgICAgIHNhbml0aXplZFF1ZXJ5ICs9IGtleSArICc9JyArICcqKioqKioqKicgKyAnJic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdHJpbSBsYXN0IGNoYXJhY3RlciwgPyBvciAmXG4gICAgc2FuaXRpemVkUXVlcnkgPSBzYW5pdGl6ZWRRdWVyeS5zbGljZSgwLCAtMSk7XG5cbiAgICAvLyByZXR1cm4gb3JpZ2luYWwgcGF0aCBuYW1lIHdpdGggc2FuaXRpemVkIHBhcmFtcyBhdHRhY2hlZFxuICAgIHJldHVybiB1cmxPYmoucGF0aG5hbWUgKyBzYW5pdGl6ZWRRdWVyeTtcbiAgfVxuXG4gIG1hc2tTZW5zaXRpdmUoYXJnQXJyYXkpIHtcbiAgICByZXR1cm4gYXJnQXJyYXkubWFwKGUgPT4ge1xuICAgICAgaWYgKCFlKSB7XG4gICAgICAgIHJldHVybiBlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBlLnJlcGxhY2UoLyhwYXNzd29yZFwiLj86Lj9cIilbXlwiXSpcIi9nLCAnJDEqKioqKioqKlwiJyk7XG4gICAgICB9XG4gICAgICAvLyBlbHNlIGl0IGlzIGFuIG9iamVjdC4uLlxuXG4gICAgICAvLyBjaGVjayB0aGUgdXJsXG4gICAgICBpZiAoZS51cmwpIHtcbiAgICAgICAgLy8gZm9yIHN0cmluZ3NcbiAgICAgICAgaWYgKHR5cGVvZiBlLnVybCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBlLnVybCA9IHRoaXMubWFza1NlbnNpdGl2ZVVybChlLnVybCk7XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShlLnVybCkpIHtcbiAgICAgICAgICAvLyBmb3Igc3RyaW5ncyBpbiBhcnJheVxuICAgICAgICAgIGUudXJsID0gZS51cmwubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXNrU2Vuc2l0aXZlVXJsKGl0ZW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZS5ib2R5KSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGUuYm9keSkpIHtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncGFzc3dvcmQnKSB7XG4gICAgICAgICAgICBlLmJvZHlba2V5XSA9ICcqKioqKioqKic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGUucGFyYW1zKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGUucGFyYW1zKSkge1xuICAgICAgICAgIGlmIChrZXkgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgICAgICAgIGUucGFyYW1zW2tleV0gPSAnKioqKioqKionO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBlO1xuICAgIH0pO1xuICB9XG5cbiAgbG9nKGxldmVsLCBhcmdzKSB7XG4gICAgLy8gbWFrZSB0aGUgcGFzc2VkIGluIGFyZ3VtZW50cyBvYmplY3QgYW4gYXJyYXkgd2l0aCB0aGUgc3ByZWFkIG9wZXJhdG9yXG4gICAgYXJncyA9IHRoaXMubWFza1NlbnNpdGl2ZShbLi4uYXJnc10pO1xuICAgIGFyZ3MgPSBbXS5jb25jYXQoXG4gICAgICBsZXZlbCxcbiAgICAgIGFyZ3MubWFwKGFyZyA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgYXJnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIGFyZygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcmc7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5hZGFwdGVyLmxvZy5hcHBseSh0aGlzLmFkYXB0ZXIsIGFyZ3MpO1xuICB9XG5cbiAgaW5mbygpIHtcbiAgICByZXR1cm4gdGhpcy5sb2coJ2luZm8nLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgZXJyb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMubG9nKCdlcnJvcicsIGFyZ3VtZW50cyk7XG4gIH1cblxuICB3YXJuKCkge1xuICAgIHJldHVybiB0aGlzLmxvZygnd2FybicsIGFyZ3VtZW50cyk7XG4gIH1cblxuICB2ZXJib3NlKCkge1xuICAgIHJldHVybiB0aGlzLmxvZygndmVyYm9zZScsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBkZWJ1ZygpIHtcbiAgICByZXR1cm4gdGhpcy5sb2coJ2RlYnVnJywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIHNpbGx5KCkge1xuICAgIHJldHVybiB0aGlzLmxvZygnc2lsbHknLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgbG9nUmVxdWVzdCh7IG1ldGhvZCwgdXJsLCBoZWFkZXJzLCBib2R5IH0pIHtcbiAgICB0aGlzLnZlcmJvc2UoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0cmluZ2lmaWVkQm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHksIG51bGwsIDIpO1xuICAgICAgICByZXR1cm4gYFJFUVVFU1QgZm9yIFske21ldGhvZH1dICR7dXJsfTogJHtzdHJpbmdpZmllZEJvZHl9YDtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgdXJsLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgICBib2R5LFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBsb2dSZXNwb25zZSh7IG1ldGhvZCwgdXJsLCByZXN1bHQgfSkge1xuICAgIHRoaXMudmVyYm9zZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaW5naWZpZWRSZXNwb25zZSA9IEpTT04uc3RyaW5naWZ5KHJlc3VsdCwgbnVsbCwgMik7XG4gICAgICAgIHJldHVybiBgUkVTUE9OU0UgZnJvbSBbJHttZXRob2R9XSAke3VybH06ICR7c3RyaW5naWZpZWRSZXNwb25zZX1gO1xuICAgICAgfSxcbiAgICAgIHsgcmVzdWx0OiByZXN1bHQgfVxuICAgICk7XG4gIH1cbiAgLy8gY2hlY2sgdGhhdCBkYXRlIGlucHV0IGlzIHZhbGlkXG4gIHN0YXRpYyB2YWxpZERhdGVUaW1lKGRhdGUpIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZSk7XG5cbiAgICBpZiAoIWlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnVuY2F0ZUxvZ01lc3NhZ2Uoc3RyaW5nKSB7XG4gICAgaWYgKHN0cmluZyAmJiBzdHJpbmcubGVuZ3RoID4gTE9HX1NUUklOR19UUlVOQ0FURV9MRU5HVEgpIHtcbiAgICAgIGNvbnN0IHRydW5jYXRlZCA9IHN0cmluZy5zdWJzdHJpbmcoMCwgTE9HX1NUUklOR19UUlVOQ0FURV9MRU5HVEgpICsgdHJ1bmNhdGlvbk1hcmtlcjtcbiAgICAgIHJldHVybiB0cnVuY2F0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZU9wdGlvbnMob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgZnJvbSA9XG4gICAgICBMb2dnZXJDb250cm9sbGVyLnZhbGlkRGF0ZVRpbWUob3B0aW9ucy5mcm9tKSB8fFxuICAgICAgbmV3IERhdGUoRGF0ZS5ub3coKSAtIDcgKiBNSUxMSVNFQ09ORFNfSU5fQV9EQVkpO1xuICAgIGNvbnN0IHVudGlsID0gTG9nZ2VyQ29udHJvbGxlci52YWxpZERhdGVUaW1lKG9wdGlvbnMudW50aWwpIHx8IG5ldyBEYXRlKCk7XG4gICAgY29uc3Qgc2l6ZSA9IE51bWJlcihvcHRpb25zLnNpemUpIHx8IDEwO1xuICAgIGNvbnN0IG9yZGVyID0gb3B0aW9ucy5vcmRlciB8fCBMb2dPcmRlci5ERVNDRU5ESU5HO1xuICAgIGNvbnN0IGxldmVsID0gb3B0aW9ucy5sZXZlbCB8fCBMb2dMZXZlbC5JTkZPO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb20sXG4gICAgICB1bnRpbCxcbiAgICAgIHNpemUsXG4gICAgICBvcmRlcixcbiAgICAgIGxldmVsLFxuICAgIH07XG4gIH1cblxuICAvLyBSZXR1cm5zIGEgcHJvbWlzZSBmb3IgYSB7cmVzcG9uc2V9IG9iamVjdC5cbiAgLy8gcXVlcnkgcGFyYW1zOlxuICAvLyBsZXZlbCAob3B0aW9uYWwpIExldmVsIG9mIGxvZ2dpbmcgeW91IHdhbnQgdG8gcXVlcnkgZm9yIChpbmZvIHx8IGVycm9yKVxuICAvLyBmcm9tIChvcHRpb25hbCkgU3RhcnQgdGltZSBmb3IgdGhlIHNlYXJjaC4gRGVmYXVsdHMgdG8gMSB3ZWVrIGFnby5cbiAgLy8gdW50aWwgKG9wdGlvbmFsKSBFbmQgdGltZSBmb3IgdGhlIHNlYXJjaC4gRGVmYXVsdHMgdG8gY3VycmVudCB0aW1lLlxuICAvLyBvcmRlciAob3B0aW9uYWwpIERpcmVjdGlvbiBvZiByZXN1bHRzIHJldHVybmVkLCBlaXRoZXIg4oCcYXNj4oCdIG9yIOKAnGRlc2PigJ0uIERlZmF1bHRzIHRvIOKAnGRlc2PigJ0uXG4gIC8vIHNpemUgKG9wdGlvbmFsKSBOdW1iZXIgb2Ygcm93cyByZXR1cm5lZCBieSBzZWFyY2guIERlZmF1bHRzIHRvIDEwXG4gIGdldExvZ3Mob3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5QVVNIX01JU0NPTkZJR1VSRUQsICdMb2dnZXIgYWRhcHRlciBpcyBub3QgYXZhaWxhYmxlJyk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhpcy5hZGFwdGVyLnF1ZXJ5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgIFBhcnNlLkVycm9yLlBVU0hfTUlTQ09ORklHVVJFRCxcbiAgICAgICAgJ1F1ZXJ5aW5nIGxvZ3MgaXMgbm90IHN1cHBvcnRlZCB3aXRoIHRoaXMgYWRhcHRlcidcbiAgICAgICk7XG4gICAgfVxuICAgIG9wdGlvbnMgPSBMb2dnZXJDb250cm9sbGVyLnBhcnNlT3B0aW9ucyhvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnF1ZXJ5KG9wdGlvbnMpO1xuICB9XG5cbiAgZXhwZWN0ZWRBZGFwdGVyVHlwZSgpIHtcbiAgICByZXR1cm4gTG9nZ2VyQWRhcHRlcjtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMb2dnZXJDb250cm9sbGVyO1xuIl19
|
package/lib/Controllers/index.js
CHANGED
|
@@ -25,8 +25,6 @@ var _AdapterLoader = require("../Adapters/AdapterLoader");
|
|
|
25
25
|
|
|
26
26
|
var _defaults = _interopRequireDefault(require("../defaults"));
|
|
27
27
|
|
|
28
|
-
var _url = _interopRequireDefault(require("url"));
|
|
29
|
-
|
|
30
28
|
var _LoggerController = require("./LoggerController");
|
|
31
29
|
|
|
32
30
|
var _FilesController = require("./FilesController");
|
|
@@ -210,7 +208,8 @@ function getDatabaseController(options) {
|
|
|
210
208
|
const {
|
|
211
209
|
databaseURI,
|
|
212
210
|
collectionPrefix,
|
|
213
|
-
databaseOptions
|
|
211
|
+
databaseOptions,
|
|
212
|
+
idempotencyOptions
|
|
214
213
|
} = options;
|
|
215
214
|
let {
|
|
216
215
|
databaseAdapter
|
|
@@ -224,7 +223,7 @@ function getDatabaseController(options) {
|
|
|
224
223
|
databaseAdapter = (0, _AdapterLoader.loadAdapter)(databaseAdapter);
|
|
225
224
|
}
|
|
226
225
|
|
|
227
|
-
return new _DatabaseController.default(databaseAdapter);
|
|
226
|
+
return new _DatabaseController.default(databaseAdapter, idempotencyOptions);
|
|
228
227
|
}
|
|
229
228
|
|
|
230
229
|
function getHooksController(options, databaseController) {
|
|
@@ -285,8 +284,7 @@ function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) {
|
|
|
285
284
|
let protocol;
|
|
286
285
|
|
|
287
286
|
try {
|
|
288
|
-
const parsedURI =
|
|
289
|
-
|
|
287
|
+
const parsedURI = new URL(databaseURI);
|
|
290
288
|
protocol = parsedURI.protocol ? parsedURI.protocol.toLowerCase() : null;
|
|
291
289
|
} catch (e) {
|
|
292
290
|
/* */
|
|
@@ -309,4 +307,4 @@ function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) {
|
|
|
309
307
|
});
|
|
310
308
|
}
|
|
311
309
|
}
|
|
312
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9pbmRleC5qcyJdLCJuYW1lcyI6WyJnZXRDb250cm9sbGVycyIsIm9wdGlvbnMiLCJsb2dnZXJDb250cm9sbGVyIiwiZ2V0TG9nZ2VyQ29udHJvbGxlciIsImZpbGVzQ29udHJvbGxlciIsImdldEZpbGVzQ29udHJvbGxlciIsInVzZXJDb250cm9sbGVyIiwiZ2V0VXNlckNvbnRyb2xsZXIiLCJwdXNoQ29udHJvbGxlciIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwiaGFzUHVzaFN1cHBvcnQiLCJwdXNoQ29udHJvbGxlclF1ZXVlIiwicHVzaFdvcmtlciIsImdldFB1c2hDb250cm9sbGVyIiwiY2FjaGVDb250cm9sbGVyIiwiZ2V0Q2FjaGVDb250cm9sbGVyIiwiYW5hbHl0aWNzQ29udHJvbGxlciIsImdldEFuYWx5dGljc0NvbnRyb2xsZXIiLCJsaXZlUXVlcnlDb250cm9sbGVyIiwiZ2V0TGl2ZVF1ZXJ5Q29udHJvbGxlciIsImRhdGFiYXNlQ29udHJvbGxlciIsImdldERhdGFiYXNlQ29udHJvbGxlciIsImhvb2tzQ29udHJvbGxlciIsImdldEhvb2tzQ29udHJvbGxlciIsImF1dGhEYXRhTWFuYWdlciIsImdldEF1dGhEYXRhTWFuYWdlciIsInBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyIiwic2NoZW1hQ2FjaGUiLCJTY2hlbWFDYWNoZSIsImFwcElkIiwianNvbkxvZ3MiLCJsb2dzRm9sZGVyIiwidmVyYm9zZSIsImxvZ0xldmVsIiwibWF4TG9nRmlsZXMiLCJzaWxlbnQiLCJsb2dnZXJBZGFwdGVyIiwibG9nZ2VyT3B0aW9ucyIsImxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyIiwiV2luc3RvbkxvZ2dlckFkYXB0ZXIiLCJMb2dnZXJDb250cm9sbGVyIiwiZGF0YWJhc2VVUkkiLCJmaWxlc0FkYXB0ZXIiLCJkYXRhYmFzZUFkYXB0ZXIiLCJwcmVzZXJ2ZUZpbGVOYW1lIiwiZmlsZUtleSIsImZpbGVzQ29udHJvbGxlckFkYXB0ZXIiLCJHcmlkRlNCdWNrZXRBZGFwdGVyIiwiRmlsZXNDb250cm9sbGVyIiwiZW1haWxBZGFwdGVyIiwidmVyaWZ5VXNlckVtYWlscyIsImVtYWlsQ29udHJvbGxlckFkYXB0ZXIiLCJVc2VyQ29udHJvbGxlciIsImNhY2hlQWRhcHRlciIsImNhY2hlVFRMIiwiY2FjaGVNYXhTaXplIiwiY2FjaGVDb250cm9sbGVyQWRhcHRlciIsIkluTWVtb3J5Q2FjaGVBZGFwdGVyIiwidHRsIiwibWF4U2l6ZSIsIkNhY2hlQ29udHJvbGxlciIsImNvbnRyb2xsZXJEZXBzIiwiUGFyc2VHcmFwaFFMQ29udHJvbGxlciIsIm1vdW50R3JhcGhRTCIsImFuYWx5dGljc0FkYXB0ZXIiLCJhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlciIsIkFuYWx5dGljc0FkYXB0ZXIiLCJBbmFseXRpY3NDb250cm9sbGVyIiwiTGl2ZVF1ZXJ5Q29udHJvbGxlciIsImxpdmVRdWVyeSIsImNvbGxlY3Rpb25QcmVmaXgiLCJkYXRhYmFzZU9wdGlvbnMiLCJkZWZhdWx0cyIsImdldERhdGFiYXNlQWRhcHRlciIsIkRhdGFiYXNlQ29udHJvbGxlciIsIndlYmhvb2tLZXkiLCJIb29rc0NvbnRyb2xsZXIiLCJzY2hlZHVsZWRQdXNoIiwicHVzaCIsInB1c2hPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaFF1ZXVlT3B0aW9ucyIsInF1ZXVlT3B0aW9ucyIsInB1c2hBZGFwdGVyIiwiYWRhcHRlciIsIlBhcnNlUHVzaEFkYXB0ZXIiLCJQdXNoQ29udHJvbGxlciIsImRpc2FibGVQdXNoV29ya2VyIiwiUHVzaFF1ZXVlIiwiUHVzaFdvcmtlciIsImF1dGgiLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsInByb3RvY29sIiwicGFyc2VkVVJJIiwidXJsIiwicGFyc2UiLCJ0b0xvd2VyQ2FzZSIsImUiLCJQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyIiwidXJpIiwiTW9uZ29TdG9y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NEJBQUosQ0FBd0I7QUFDN0JELFFBQUFBLEdBQUcsRUFBRTNELFdBRHdCO0FBRTdCNkIsUUFBQUEsZ0JBRjZCO0FBRzdCZ0MsUUFBQUEsWUFBWSxFQUFFL0I7QUFIZSxPQUF4QixDQUFQO0FBVEo7QUFlRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhdXRoRGF0YU1hbmFnZXIgZnJvbSAnLi4vQWRhcHRlcnMvQXV0aCc7XG5pbXBvcnQgeyBQYXJzZVNlcnZlck9wdGlvbnMgfSBmcm9tICcuLi9PcHRpb25zJztcbmltcG9ydCB7IGxvYWRBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQWRhcHRlckxvYWRlcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuLy8gQ29udHJvbGxlcnNcbmltcG9ydCB7IExvZ2dlckNvbnRyb2xsZXIgfSBmcm9tICcuL0xvZ2dlckNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRmlsZXNDb250cm9sbGVyIH0gZnJvbSAnLi9GaWxlc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgSG9va3NDb250cm9sbGVyIH0gZnJvbSAnLi9Ib29rc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgVXNlckNvbnRyb2xsZXIgfSBmcm9tICcuL1VzZXJDb250cm9sbGVyJztcbmltcG9ydCB7IENhY2hlQ29udHJvbGxlciB9IGZyb20gJy4vQ2FjaGVDb250cm9sbGVyJztcbmltcG9ydCB7IExpdmVRdWVyeUNvbnRyb2xsZXIgfSBmcm9tICcuL0xpdmVRdWVyeUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQ29udHJvbGxlciB9IGZyb20gJy4vQW5hbHl0aWNzQ29udHJvbGxlcic7XG5pbXBvcnQgeyBQdXNoQ29udHJvbGxlciB9IGZyb20gJy4vUHVzaENvbnRyb2xsZXInO1xuaW1wb3J0IHsgUHVzaFF1ZXVlIH0gZnJvbSAnLi4vUHVzaC9QdXNoUXVldWUnO1xuaW1wb3J0IHsgUHVzaFdvcmtlciB9IGZyb20gJy4uL1B1c2gvUHVzaFdvcmtlcic7XG5pbXBvcnQgRGF0YWJhc2VDb250cm9sbGVyIGZyb20gJy4vRGF0YWJhc2VDb250cm9sbGVyJztcblxuLy8gQWRhcHRlcnNcbmltcG9ydCB7IEdyaWRGU0J1Y2tldEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9GaWxlcy9HcmlkRlNCdWNrZXRBZGFwdGVyJztcbmltcG9ydCB7IFdpbnN0b25Mb2dnZXJBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvTG9nZ2VyL1dpbnN0b25Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGVBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQ2FjaGUvSW5NZW1vcnlDYWNoZUFkYXB0ZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0FuYWx5dGljcy9BbmFseXRpY3NBZGFwdGVyJztcbmltcG9ydCBNb25nb1N0b3JhZ2VBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvTW9uZ28vTW9uZ29TdG9yYWdlQWRhcHRlcic7XG5pbXBvcnQgUG9zdGdyZXNTdG9yYWdlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9TdG9yYWdlL1Bvc3RncmVzL1Bvc3RncmVzU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IFBhcnNlUHVzaEFkYXB0ZXIgZnJvbSAnQHBhcnNlL3B1c2gtYWRhcHRlcic7XG5pbXBvcnQgUGFyc2VHcmFwaFFMQ29udHJvbGxlciBmcm9tICcuL1BhcnNlR3JhcGhRTENvbnRyb2xsZXInO1xuaW1wb3J0IFNjaGVtYUNhY2hlIGZyb20gJy4uL0FkYXB0ZXJzL0NhY2hlL1NjaGVtYUNhY2hlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyb2xsZXJzKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCBsb2dnZXJDb250cm9sbGVyID0gZ2V0TG9nZ2VyQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgZmlsZXNDb250cm9sbGVyID0gZ2V0RmlsZXNDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB1c2VyQ29udHJvbGxlciA9IGdldFVzZXJDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9ID0gZ2V0UHVzaENvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlciA9IGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IGdldEFuYWx5dGljc0NvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGxpdmVRdWVyeUNvbnRyb2xsZXIgPSBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBkYXRhYmFzZUNvbnRyb2xsZXIgPSBnZXREYXRhYmFzZUNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGhvb2tzQ29udHJvbGxlciA9IGdldEhvb2tzQ29udHJvbGxlcihvcHRpb25zLCBkYXRhYmFzZUNvbnRyb2xsZXIpO1xuICBjb25zdCBhdXRoRGF0YU1hbmFnZXIgPSBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9ucyk7XG4gIGNvbnN0IHBhcnNlR3JhcGhRTENvbnRyb2xsZXIgPSBnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyKG9wdGlvbnMsIHtcbiAgICBkYXRhYmFzZUNvbnRyb2xsZXIsXG4gICAgY2FjaGVDb250cm9sbGVyLFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBsb2dnZXJDb250cm9sbGVyLFxuICAgIGZpbGVzQ29udHJvbGxlcixcbiAgICB1c2VyQ29udHJvbGxlcixcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBwdXNoV29ya2VyLFxuICAgIHB1c2hDb250cm9sbGVyUXVldWUsXG4gICAgYW5hbHl0aWNzQ29udHJvbGxlcixcbiAgICBjYWNoZUNvbnRyb2xsZXIsXG4gICAgcGFyc2VHcmFwaFFMQ29udHJvbGxlcixcbiAgICBsaXZlUXVlcnlDb250cm9sbGVyLFxuICAgIGRhdGFiYXNlQ29udHJvbGxlcixcbiAgICBob29rc0NvbnRyb2xsZXIsXG4gICAgYXV0aERhdGFNYW5hZ2VyLFxuICAgIHNjaGVtYUNhY2hlOiBTY2hlbWFDYWNoZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlckNvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogTG9nZ2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHtcbiAgICBhcHBJZCxcbiAgICBqc29uTG9ncyxcbiAgICBsb2dzRm9sZGVyLFxuICAgIHZlcmJvc2UsXG4gICAgbG9nTGV2ZWwsXG4gICAgbWF4TG9nRmlsZXMsXG4gICAgc2lsZW50LFxuICAgIGxvZ2dlckFkYXB0ZXIsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb2dnZXJPcHRpb25zID0ge1xuICAgIGpzb25Mb2dzLFxuICAgIGxvZ3NGb2xkZXIsXG4gICAgdmVyYm9zZSxcbiAgICBsb2dMZXZlbCxcbiAgICBzaWxlbnQsXG4gICAgbWF4TG9nRmlsZXMsXG4gIH07XG4gIGNvbnN0IGxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIobG9nZ2VyQWRhcHRlciwgV2luc3RvbkxvZ2dlckFkYXB0ZXIsIGxvZ2dlck9wdGlvbnMpO1xuICByZXR1cm4gbmV3IExvZ2dlckNvbnRyb2xsZXIobG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCBsb2dnZXJPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVzQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBGaWxlc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBkYXRhYmFzZVVSSSwgZmlsZXNBZGFwdGVyLCBkYXRhYmFzZUFkYXB0ZXIsIHByZXNlcnZlRmlsZU5hbWUsIGZpbGVLZXkgfSA9IG9wdGlvbnM7XG4gIGlmICghZmlsZXNBZGFwdGVyICYmIGRhdGFiYXNlQWRhcHRlcikge1xuICAgIHRocm93ICdXaGVuIHVzaW5nIGFuIGV4cGxpY2l0IGRhdGFiYXNlIGFkYXB0ZXIsIHlvdSBtdXN0IGFsc28gdXNlIGFuIGV4cGxpY2l0IGZpbGVzQWRhcHRlci4nO1xuICB9XG4gIGNvbnN0IGZpbGVzQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihmaWxlc0FkYXB0ZXIsICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIoZGF0YWJhc2VVUkksIHt9LCBmaWxlS2V5KTtcbiAgfSk7XG4gIHJldHVybiBuZXcgRmlsZXNDb250cm9sbGVyKGZpbGVzQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCB7XG4gICAgcHJlc2VydmVGaWxlTmFtZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBVc2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgYXBwSWQsIGVtYWlsQWRhcHRlciwgdmVyaWZ5VXNlckVtYWlscyB9ID0gb3B0aW9ucztcbiAgY29uc3QgZW1haWxDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGVtYWlsQWRhcHRlcik7XG4gIHJldHVybiBuZXcgVXNlckNvbnRyb2xsZXIoZW1haWxDb250cm9sbGVyQWRhcHRlciwgYXBwSWQsIHtcbiAgICB2ZXJpZnlVc2VyRW1haWxzLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBDYWNoZUNvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBjYWNoZUFkYXB0ZXIsIGNhY2hlVFRMLCBjYWNoZU1heFNpemUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihjYWNoZUFkYXB0ZXIsIEluTWVtb3J5Q2FjaGVBZGFwdGVyLCB7XG4gICAgYXBwSWQ6IGFwcElkLFxuICAgIHR0bDogY2FjaGVUVEwsXG4gICAgbWF4U2l6ZTogY2FjaGVNYXhTaXplLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBDYWNoZUNvbnRyb2xsZXIoY2FjaGVDb250cm9sbGVyQWRhcHRlciwgYXBwSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2VHcmFwaFFMQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBjb250cm9sbGVyRGVwc1xuKTogUGFyc2VHcmFwaFFMQ29udHJvbGxlciB7XG4gIHJldHVybiBuZXcgUGFyc2VHcmFwaFFMQ29udHJvbGxlcih7XG4gICAgbW91bnRHcmFwaFFMOiBvcHRpb25zLm1vdW50R3JhcGhRTCxcbiAgICAuLi5jb250cm9sbGVyRGVwcyxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmFseXRpY3NDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IEFuYWx5dGljc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFuYWx5dGljc0FkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIoYW5hbHl0aWNzQWRhcHRlciwgQW5hbHl0aWNzQWRhcHRlcik7XG4gIHJldHVybiBuZXcgQW5hbHl0aWNzQ29udHJvbGxlcihhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IExpdmVRdWVyeUNvbnRyb2xsZXIge1xuICByZXR1cm4gbmV3IExpdmVRdWVyeUNvbnRyb2xsZXIob3B0aW9ucy5saXZlUXVlcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IERhdGFiYXNlQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgbGV0IHsgZGF0YWJhc2VBZGFwdGVyIH0gPSBvcHRpb25zO1xuICBpZiAoXG4gICAgKGRhdGFiYXNlT3B0aW9ucyB8fFxuICAgICAgKGRhdGFiYXNlVVJJICYmIGRhdGFiYXNlVVJJICE9PSBkZWZhdWx0cy5kYXRhYmFzZVVSSSkgfHxcbiAgICAgIGNvbGxlY3Rpb25QcmVmaXggIT09IGRlZmF1bHRzLmNvbGxlY3Rpb25QcmVmaXgpICYmXG4gICAgZGF0YWJhc2VBZGFwdGVyXG4gICkge1xuICAgIHRocm93ICdZb3UgY2Fubm90IHNwZWNpZnkgYm90aCBhIGRhdGFiYXNlQWRhcHRlciBhbmQgYSBkYXRhYmFzZVVSSS9kYXRhYmFzZU9wdGlvbnMvY29sbGVjdGlvblByZWZpeC4nO1xuICB9IGVsc2UgaWYgKCFkYXRhYmFzZUFkYXB0ZXIpIHtcbiAgICBkYXRhYmFzZUFkYXB0ZXIgPSBnZXREYXRhYmFzZUFkYXB0ZXIoZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YWJhc2VBZGFwdGVyID0gbG9hZEFkYXB0ZXIoZGF0YWJhc2VBZGFwdGVyKTtcbiAgfVxuICByZXR1cm4gbmV3IERhdGFiYXNlQ29udHJvbGxlcihkYXRhYmFzZUFkYXB0ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9va3NDb250cm9sbGVyKFxuICBvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMsXG4gIGRhdGFiYXNlQ29udHJvbGxlcjogRGF0YWJhc2VDb250cm9sbGVyXG4pOiBIb29rc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCB3ZWJob29rS2V5IH0gPSBvcHRpb25zO1xuICByZXR1cm4gbmV3IEhvb2tzQ29udHJvbGxlcihhcHBJZCwgZGF0YWJhc2VDb250cm9sbGVyLCB3ZWJob29rS2V5KTtcbn1cblxuaW50ZXJmYWNlIFB1c2hDb250cm9sbGluZyB7XG4gIHB1c2hDb250cm9sbGVyOiBQdXNoQ29udHJvbGxlcjtcbiAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQ6IGJvb2xlYW47XG4gIHB1c2hDb250cm9sbGVyUXVldWU6IFB1c2hRdWV1ZTtcbiAgcHVzaFdvcmtlcjogUHVzaFdvcmtlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB1c2hDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IFB1c2hDb250cm9sbGluZyB7XG4gIGNvbnN0IHsgc2NoZWR1bGVkUHVzaCwgcHVzaCB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwdXNoT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHB1c2gpO1xuICBjb25zdCBwdXNoUXVldWVPcHRpb25zID0gcHVzaE9wdGlvbnMucXVldWVPcHRpb25zIHx8IHt9O1xuICBpZiAocHVzaE9wdGlvbnMucXVldWVPcHRpb25zKSB7XG4gICAgZGVsZXRlIHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucztcbiAgfVxuXG4gIC8vIFBhc3MgdGhlIHB1c2ggb3B0aW9ucyB0b28gYXMgaXQgd29ya3Mgd2l0aCB0aGUgZGVmYXVsdFxuICBjb25zdCBwdXNoQWRhcHRlciA9IGxvYWRBZGFwdGVyKFxuICAgIHB1c2hPcHRpb25zICYmIHB1c2hPcHRpb25zLmFkYXB0ZXIsXG4gICAgUGFyc2VQdXNoQWRhcHRlcixcbiAgICBwdXNoT3B0aW9uc1xuICApO1xuICAvLyBXZSBwYXNzIHRoZSBvcHRpb25zIGFuZCB0aGUgYmFzZSBjbGFzcyBmb3IgdGhlIGFkYXRwZXIsXG4gIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGFuIGluc3RhbmNlIHdvdWxkIHdvcmsgdG9vXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyID0gbmV3IFB1c2hDb250cm9sbGVyKCk7XG4gIGNvbnN0IGhhc1B1c2hTdXBwb3J0ID0gISEocHVzaEFkYXB0ZXIgJiYgcHVzaCk7XG4gIGNvbnN0IGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0ID0gaGFzUHVzaFN1cHBvcnQgJiYgc2NoZWR1bGVkUHVzaCA9PT0gdHJ1ZTtcblxuICBjb25zdCB7IGRpc2FibGVQdXNoV29ya2VyIH0gPSBwdXNoUXVldWVPcHRpb25zO1xuXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyUXVldWUgPSBuZXcgUHVzaFF1ZXVlKHB1c2hRdWV1ZU9wdGlvbnMpO1xuICBsZXQgcHVzaFdvcmtlcjtcbiAgaWYgKCFkaXNhYmxlUHVzaFdvcmtlcikge1xuICAgIHB1c2hXb3JrZXIgPSBuZXcgUHVzaFdvcmtlcihwdXNoQWRhcHRlciwgcHVzaFF1ZXVlT3B0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBwdXNoQ29udHJvbGxlclF1ZXVlLFxuICAgIHB1c2hXb3JrZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKSB7XG4gIGNvbnN0IHsgYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMgfSA9IG9wdGlvbnM7XG4gIHJldHVybiBhdXRoRGF0YU1hbmFnZXIoYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VBZGFwdGVyKGRhdGFiYXNlVVJJLCBjb2xsZWN0aW9uUHJlZml4LCBkYXRhYmFzZU9wdGlvbnMpIHtcbiAgbGV0IHByb3RvY29sO1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZFVSSSA9IHVybC5wYXJzZShkYXRhYmFzZVVSSSk7XG4gICAgcHJvdG9jb2wgPSBwYXJzZWRVUkkucHJvdG9jb2wgPyBwYXJzZWRVUkkucHJvdG9jb2wudG9Mb3dlckNhc2UoKSA6IG51bGw7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvKiAqL1xuICB9XG4gIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICBjYXNlICdwb3N0Z3JlczonOlxuICAgIGNhc2UgJ3Bvc3RncmVzcWw6JzpcbiAgICAgIHJldHVybiBuZXcgUG9zdGdyZXNTdG9yYWdlQWRhcHRlcih7XG4gICAgICAgIHVyaTogZGF0YWJhc2VVUkksXG4gICAgICAgIGNvbGxlY3Rpb25QcmVmaXgsXG4gICAgICAgIGRhdGFiYXNlT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbmV3IE1vbmdvU3RvcmFnZUFkYXB0ZXIoe1xuICAgICAgICB1cmk6IGRhdGFiYXNlVVJJLFxuICAgICAgICBjb2xsZWN0aW9uUHJlZml4LFxuICAgICAgICBtb25nb09wdGlvbnM6IGRhdGFiYXNlT3B0aW9ucyxcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
310
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9pbmRleC5qcyJdLCJuYW1lcyI6WyJnZXRDb250cm9sbGVycyIsIm9wdGlvbnMiLCJsb2dnZXJDb250cm9sbGVyIiwiZ2V0TG9nZ2VyQ29udHJvbGxlciIsImZpbGVzQ29udHJvbGxlciIsImdldEZpbGVzQ29udHJvbGxlciIsInVzZXJDb250cm9sbGVyIiwiZ2V0VXNlckNvbnRyb2xsZXIiLCJwdXNoQ29udHJvbGxlciIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwiaGFzUHVzaFN1cHBvcnQiLCJwdXNoQ29udHJvbGxlclF1ZXVlIiwicHVzaFdvcmtlciIsImdldFB1c2hDb250cm9sbGVyIiwiY2FjaGVDb250cm9sbGVyIiwiZ2V0Q2FjaGVDb250cm9sbGVyIiwiYW5hbHl0aWNzQ29udHJvbGxlciIsImdldEFuYWx5dGljc0NvbnRyb2xsZXIiLCJsaXZlUXVlcnlDb250cm9sbGVyIiwiZ2V0TGl2ZVF1ZXJ5Q29udHJvbGxlciIsImRhdGFiYXNlQ29udHJvbGxlciIsImdldERhdGFiYXNlQ29udHJvbGxlciIsImhvb2tzQ29udHJvbGxlciIsImdldEhvb2tzQ29udHJvbGxlciIsImF1dGhEYXRhTWFuYWdlciIsImdldEF1dGhEYXRhTWFuYWdlciIsInBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyIiwic2NoZW1hQ2FjaGUiLCJTY2hlbWFDYWNoZSIsImFwcElkIiwianNvbkxvZ3MiLCJsb2dzRm9sZGVyIiwidmVyYm9zZSIsImxvZ0xldmVsIiwibWF4TG9nRmlsZXMiLCJzaWxlbnQiLCJsb2dnZXJBZGFwdGVyIiwibG9nZ2VyT3B0aW9ucyIsImxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyIiwiV2luc3RvbkxvZ2dlckFkYXB0ZXIiLCJMb2dnZXJDb250cm9sbGVyIiwiZGF0YWJhc2VVUkkiLCJmaWxlc0FkYXB0ZXIiLCJkYXRhYmFzZUFkYXB0ZXIiLCJwcmVzZXJ2ZUZpbGVOYW1lIiwiZmlsZUtleSIsImZpbGVzQ29udHJvbGxlckFkYXB0ZXIiLCJHcmlkRlNCdWNrZXRBZGFwdGVyIiwiRmlsZXNDb250cm9sbGVyIiwiZW1haWxBZGFwdGVyIiwidmVyaWZ5VXNlckVtYWlscyIsImVtYWlsQ29udHJvbGxlckFkYXB0ZXIiLCJVc2VyQ29udHJvbGxlciIsImNhY2hlQWRhcHRlciIsImNhY2hlVFRMIiwiY2FjaGVNYXhTaXplIiwiY2FjaGVDb250cm9sbGVyQWRhcHRlciIsIkluTWVtb3J5Q2FjaGVBZGFwdGVyIiwidHRsIiwibWF4U2l6ZSIsIkNhY2hlQ29udHJvbGxlciIsImNvbnRyb2xsZXJEZXBzIiwiUGFyc2VHcmFwaFFMQ29udHJvbGxlciIsIm1vdW50R3JhcGhRTCIsImFuYWx5dGljc0FkYXB0ZXIiLCJhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlciIsIkFuYWx5dGljc0FkYXB0ZXIiLCJBbmFseXRpY3NDb250cm9sbGVyIiwiTGl2ZVF1ZXJ5Q29udHJvbGxlciIsImxpdmVRdWVyeSIsImNvbGxlY3Rpb25QcmVmaXgiLCJkYXRhYmFzZU9wdGlvbnMiLCJpZGVtcG90ZW5jeU9wdGlvbnMiLCJkZWZhdWx0cyIsImdldERhdGFiYXNlQWRhcHRlciIsIkRhdGFiYXNlQ29udHJvbGxlciIsIndlYmhvb2tLZXkiLCJIb29rc0NvbnRyb2xsZXIiLCJzY2hlZHVsZWRQdXNoIiwicHVzaCIsInB1c2hPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaFF1ZXVlT3B0aW9ucyIsInF1ZXVlT3B0aW9ucyIsInB1c2hBZGFwdGVyIiwiYWRhcHRlciIsIlBhcnNlUHVzaEFkYXB0ZXIiLCJQdXNoQ29udHJvbGxlciIsImRpc2FibGVQdXNoV29ya2VyIiwiUHVzaFF1ZXVlIiwiUHVzaFdvcmtlciIsImF1dGgiLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsInByb3RvY29sIiwicGFyc2VkVVJJIiwiVVJMIiwidG9Mb3dlckNhc2UiLCJlIiwiUG9zdGdyZXNTdG9yYWdlQWRhcHRlciIsInVy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QUhnQyxPQUEzQixDQUFQOztBQUtGO0FBQ0UsYUFBTyxJQUFJOEIsNEJBQUosQ0FBd0I7QUFDN0JELFFBQUFBLEdBQUcsRUFBRTNELFdBRHdCO0FBRTdCNkIsUUFBQUEsZ0JBRjZCO0FBRzdCZ0MsUUFBQUEsWUFBWSxFQUFFL0I7QUFIZSxPQUF4QixDQUFQO0FBVEo7QUFlRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhdXRoRGF0YU1hbmFnZXIgZnJvbSAnLi4vQWRhcHRlcnMvQXV0aCc7XG5pbXBvcnQgeyBQYXJzZVNlcnZlck9wdGlvbnMgfSBmcm9tICcuLi9PcHRpb25zJztcbmltcG9ydCB7IGxvYWRBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQWRhcHRlckxvYWRlcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuLy8gQ29udHJvbGxlcnNcbmltcG9ydCB7IExvZ2dlckNvbnRyb2xsZXIgfSBmcm9tICcuL0xvZ2dlckNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRmlsZXNDb250cm9sbGVyIH0gZnJvbSAnLi9GaWxlc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgSG9va3NDb250cm9sbGVyIH0gZnJvbSAnLi9Ib29rc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgVXNlckNvbnRyb2xsZXIgfSBmcm9tICcuL1VzZXJDb250cm9sbGVyJztcbmltcG9ydCB7IENhY2hlQ29udHJvbGxlciB9IGZyb20gJy4vQ2FjaGVDb250cm9sbGVyJztcbmltcG9ydCB7IExpdmVRdWVyeUNvbnRyb2xsZXIgfSBmcm9tICcuL0xpdmVRdWVyeUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQ29udHJvbGxlciB9IGZyb20gJy4vQW5hbHl0aWNzQ29udHJvbGxlcic7XG5pbXBvcnQgeyBQdXNoQ29udHJvbGxlciB9IGZyb20gJy4vUHVzaENvbnRyb2xsZXInO1xuaW1wb3J0IHsgUHVzaFF1ZXVlIH0gZnJvbSAnLi4vUHVzaC9QdXNoUXVldWUnO1xuaW1wb3J0IHsgUHVzaFdvcmtlciB9IGZyb20gJy4uL1B1c2gvUHVzaFdvcmtlcic7XG5pbXBvcnQgRGF0YWJhc2VDb250cm9sbGVyIGZyb20gJy4vRGF0YWJhc2VDb250cm9sbGVyJztcblxuLy8gQWRhcHRlcnNcbmltcG9ydCB7IEdyaWRGU0J1Y2tldEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9GaWxlcy9HcmlkRlNCdWNrZXRBZGFwdGVyJztcbmltcG9ydCB7IFdpbnN0b25Mb2dnZXJBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvTG9nZ2VyL1dpbnN0b25Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGVBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQ2FjaGUvSW5NZW1vcnlDYWNoZUFkYXB0ZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0FuYWx5dGljcy9BbmFseXRpY3NBZGFwdGVyJztcbmltcG9ydCBNb25nb1N0b3JhZ2VBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvTW9uZ28vTW9uZ29TdG9yYWdlQWRhcHRlcic7XG5pbXBvcnQgUG9zdGdyZXNTdG9yYWdlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9TdG9yYWdlL1Bvc3RncmVzL1Bvc3RncmVzU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IFBhcnNlUHVzaEFkYXB0ZXIgZnJvbSAnQHBhcnNlL3B1c2gtYWRhcHRlcic7XG5pbXBvcnQgUGFyc2VHcmFwaFFMQ29udHJvbGxlciBmcm9tICcuL1BhcnNlR3JhcGhRTENvbnRyb2xsZXInO1xuaW1wb3J0IFNjaGVtYUNhY2hlIGZyb20gJy4uL0FkYXB0ZXJzL0NhY2hlL1NjaGVtYUNhY2hlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyb2xsZXJzKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCBsb2dnZXJDb250cm9sbGVyID0gZ2V0TG9nZ2VyQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgZmlsZXNDb250cm9sbGVyID0gZ2V0RmlsZXNDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB1c2VyQ29udHJvbGxlciA9IGdldFVzZXJDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9ID0gZ2V0UHVzaENvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlciA9IGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IGdldEFuYWx5dGljc0NvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGxpdmVRdWVyeUNvbnRyb2xsZXIgPSBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBkYXRhYmFzZUNvbnRyb2xsZXIgPSBnZXREYXRhYmFzZUNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGhvb2tzQ29udHJvbGxlciA9IGdldEhvb2tzQ29udHJvbGxlcihvcHRpb25zLCBkYXRhYmFzZUNvbnRyb2xsZXIpO1xuICBjb25zdCBhdXRoRGF0YU1hbmFnZXIgPSBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9ucyk7XG4gIGNvbnN0IHBhcnNlR3JhcGhRTENvbnRyb2xsZXIgPSBnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyKG9wdGlvbnMsIHtcbiAgICBkYXRhYmFzZUNvbnRyb2xsZXIsXG4gICAgY2FjaGVDb250cm9sbGVyLFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBsb2dnZXJDb250cm9sbGVyLFxuICAgIGZpbGVzQ29udHJvbGxlcixcbiAgICB1c2VyQ29udHJvbGxlcixcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBwdXNoV29ya2VyLFxuICAgIHB1c2hDb250cm9sbGVyUXVldWUsXG4gICAgYW5hbHl0aWNzQ29udHJvbGxlcixcbiAgICBjYWNoZUNvbnRyb2xsZXIsXG4gICAgcGFyc2VHcmFwaFFMQ29udHJvbGxlcixcbiAgICBsaXZlUXVlcnlDb250cm9sbGVyLFxuICAgIGRhdGFiYXNlQ29udHJvbGxlcixcbiAgICBob29rc0NvbnRyb2xsZXIsXG4gICAgYXV0aERhdGFNYW5hZ2VyLFxuICAgIHNjaGVtYUNhY2hlOiBTY2hlbWFDYWNoZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlckNvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogTG9nZ2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHtcbiAgICBhcHBJZCxcbiAgICBqc29uTG9ncyxcbiAgICBsb2dzRm9sZGVyLFxuICAgIHZlcmJvc2UsXG4gICAgbG9nTGV2ZWwsXG4gICAgbWF4TG9nRmlsZXMsXG4gICAgc2lsZW50LFxuICAgIGxvZ2dlckFkYXB0ZXIsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb2dnZXJPcHRpb25zID0ge1xuICAgIGpzb25Mb2dzLFxuICAgIGxvZ3NGb2xkZXIsXG4gICAgdmVyYm9zZSxcbiAgICBsb2dMZXZlbCxcbiAgICBzaWxlbnQsXG4gICAgbWF4TG9nRmlsZXMsXG4gIH07XG4gIGNvbnN0IGxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIobG9nZ2VyQWRhcHRlciwgV2luc3RvbkxvZ2dlckFkYXB0ZXIsIGxvZ2dlck9wdGlvbnMpO1xuICByZXR1cm4gbmV3IExvZ2dlckNvbnRyb2xsZXIobG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCBsb2dnZXJPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVzQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBGaWxlc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBkYXRhYmFzZVVSSSwgZmlsZXNBZGFwdGVyLCBkYXRhYmFzZUFkYXB0ZXIsIHByZXNlcnZlRmlsZU5hbWUsIGZpbGVLZXkgfSA9IG9wdGlvbnM7XG4gIGlmICghZmlsZXNBZGFwdGVyICYmIGRhdGFiYXNlQWRhcHRlcikge1xuICAgIHRocm93ICdXaGVuIHVzaW5nIGFuIGV4cGxpY2l0IGRhdGFiYXNlIGFkYXB0ZXIsIHlvdSBtdXN0IGFsc28gdXNlIGFuIGV4cGxpY2l0IGZpbGVzQWRhcHRlci4nO1xuICB9XG4gIGNvbnN0IGZpbGVzQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihmaWxlc0FkYXB0ZXIsICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIoZGF0YWJhc2VVUkksIHt9LCBmaWxlS2V5KTtcbiAgfSk7XG4gIHJldHVybiBuZXcgRmlsZXNDb250cm9sbGVyKGZpbGVzQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCB7XG4gICAgcHJlc2VydmVGaWxlTmFtZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBVc2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgYXBwSWQsIGVtYWlsQWRhcHRlciwgdmVyaWZ5VXNlckVtYWlscyB9ID0gb3B0aW9ucztcbiAgY29uc3QgZW1haWxDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGVtYWlsQWRhcHRlcik7XG4gIHJldHVybiBuZXcgVXNlckNvbnRyb2xsZXIoZW1haWxDb250cm9sbGVyQWRhcHRlciwgYXBwSWQsIHtcbiAgICB2ZXJpZnlVc2VyRW1haWxzLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBDYWNoZUNvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBjYWNoZUFkYXB0ZXIsIGNhY2hlVFRMLCBjYWNoZU1heFNpemUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihjYWNoZUFkYXB0ZXIsIEluTWVtb3J5Q2FjaGVBZGFwdGVyLCB7XG4gICAgYXBwSWQ6IGFwcElkLFxuICAgIHR0bDogY2FjaGVUVEwsXG4gICAgbWF4U2l6ZTogY2FjaGVNYXhTaXplLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBDYWNoZUNvbnRyb2xsZXIoY2FjaGVDb250cm9sbGVyQWRhcHRlciwgYXBwSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2VHcmFwaFFMQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBjb250cm9sbGVyRGVwc1xuKTogUGFyc2VHcmFwaFFMQ29udHJvbGxlciB7XG4gIHJldHVybiBuZXcgUGFyc2VHcmFwaFFMQ29udHJvbGxlcih7XG4gICAgbW91bnRHcmFwaFFMOiBvcHRpb25zLm1vdW50R3JhcGhRTCxcbiAgICAuLi5jb250cm9sbGVyRGVwcyxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmFseXRpY3NDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IEFuYWx5dGljc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFuYWx5dGljc0FkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIoYW5hbHl0aWNzQWRhcHRlciwgQW5hbHl0aWNzQWRhcHRlcik7XG4gIHJldHVybiBuZXcgQW5hbHl0aWNzQ29udHJvbGxlcihhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IExpdmVRdWVyeUNvbnRyb2xsZXIge1xuICByZXR1cm4gbmV3IExpdmVRdWVyeUNvbnRyb2xsZXIob3B0aW9ucy5saXZlUXVlcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IERhdGFiYXNlQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucywgaWRlbXBvdGVuY3lPcHRpb25zIH0gPSBvcHRpb25zO1xuICBsZXQgeyBkYXRhYmFzZUFkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGlmIChcbiAgICAoZGF0YWJhc2VPcHRpb25zIHx8XG4gICAgICAoZGF0YWJhc2VVUkkgJiYgZGF0YWJhc2VVUkkgIT09IGRlZmF1bHRzLmRhdGFiYXNlVVJJKSB8fFxuICAgICAgY29sbGVjdGlvblByZWZpeCAhPT0gZGVmYXVsdHMuY29sbGVjdGlvblByZWZpeCkgJiZcbiAgICBkYXRhYmFzZUFkYXB0ZXJcbiAgKSB7XG4gICAgdGhyb3cgJ1lvdSBjYW5ub3Qgc3BlY2lmeSBib3RoIGEgZGF0YWJhc2VBZGFwdGVyIGFuZCBhIGRhdGFiYXNlVVJJL2RhdGFiYXNlT3B0aW9ucy9jb2xsZWN0aW9uUHJlZml4Lic7XG4gIH0gZWxzZSBpZiAoIWRhdGFiYXNlQWRhcHRlcikge1xuICAgIGRhdGFiYXNlQWRhcHRlciA9IGdldERhdGFiYXNlQWRhcHRlcihkYXRhYmFzZVVSSSwgY29sbGVjdGlvblByZWZpeCwgZGF0YWJhc2VPcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICBkYXRhYmFzZUFkYXB0ZXIgPSBsb2FkQWRhcHRlcihkYXRhYmFzZUFkYXB0ZXIpO1xuICB9XG4gIHJldHVybiBuZXcgRGF0YWJhc2VDb250cm9sbGVyKGRhdGFiYXNlQWRhcHRlciwgaWRlbXBvdGVuY3lPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhvb2tzQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBkYXRhYmFzZUNvbnRyb2xsZXI6IERhdGFiYXNlQ29udHJvbGxlclxuKTogSG9va3NDb250cm9sbGVyIHtcbiAgY29uc3QgeyBhcHBJZCwgd2ViaG9va0tleSB9ID0gb3B0aW9ucztcbiAgcmV0dXJuIG5ldyBIb29rc0NvbnRyb2xsZXIoYXBwSWQsIGRhdGFiYXNlQ29udHJvbGxlciwgd2ViaG9va0tleSk7XG59XG5cbmludGVyZmFjZSBQdXNoQ29udHJvbGxpbmcge1xuICBwdXNoQ29udHJvbGxlcjogUHVzaENvbnRyb2xsZXI7XG4gIGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0OiBib29sZWFuO1xuICBwdXNoQ29udHJvbGxlclF1ZXVlOiBQdXNoUXVldWU7XG4gIHB1c2hXb3JrZXI6IFB1c2hXb3JrZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQdXNoQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBQdXNoQ29udHJvbGxpbmcge1xuICBjb25zdCB7IHNjaGVkdWxlZFB1c2gsIHB1c2ggfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgcHVzaE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBwdXNoKTtcbiAgY29uc3QgcHVzaFF1ZXVlT3B0aW9ucyA9IHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucyB8fCB7fTtcbiAgaWYgKHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucykge1xuICAgIGRlbGV0ZSBwdXNoT3B0aW9ucy5xdWV1ZU9wdGlvbnM7XG4gIH1cblxuICAvLyBQYXNzIHRoZSBwdXNoIG9wdGlvbnMgdG9vIGFzIGl0IHdvcmtzIHdpdGggdGhlIGRlZmF1bHRcbiAgY29uc3QgcHVzaEFkYXB0ZXIgPSBsb2FkQWRhcHRlcihcbiAgICBwdXNoT3B0aW9ucyAmJiBwdXNoT3B0aW9ucy5hZGFwdGVyLFxuICAgIFBhcnNlUHVzaEFkYXB0ZXIsXG4gICAgcHVzaE9wdGlvbnNcbiAgKTtcbiAgLy8gV2UgcGFzcyB0aGUgb3B0aW9ucyBhbmQgdGhlIGJhc2UgY2xhc3MgZm9yIHRoZSBhZGF0cGVyLFxuICAvLyBOb3RlIHRoYXQgcGFzc2luZyBhbiBpbnN0YW5jZSB3b3VsZCB3b3JrIHRvb1xuICBjb25zdCBwdXNoQ29udHJvbGxlciA9IG5ldyBQdXNoQ29udHJvbGxlcigpO1xuICBjb25zdCBoYXNQdXNoU3VwcG9ydCA9ICEhKHB1c2hBZGFwdGVyICYmIHB1c2gpO1xuICBjb25zdCBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCA9IGhhc1B1c2hTdXBwb3J0ICYmIHNjaGVkdWxlZFB1c2ggPT09IHRydWU7XG5cbiAgY29uc3QgeyBkaXNhYmxlUHVzaFdvcmtlciB9ID0gcHVzaFF1ZXVlT3B0aW9ucztcblxuICBjb25zdCBwdXNoQ29udHJvbGxlclF1ZXVlID0gbmV3IFB1c2hRdWV1ZShwdXNoUXVldWVPcHRpb25zKTtcbiAgbGV0IHB1c2hXb3JrZXI7XG4gIGlmICghZGlzYWJsZVB1c2hXb3JrZXIpIHtcbiAgICBwdXNoV29ya2VyID0gbmV3IFB1c2hXb3JrZXIocHVzaEFkYXB0ZXIsIHB1c2hRdWV1ZU9wdGlvbnMpO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aERhdGFNYW5hZ2VyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCB7IGF1dGgsIGVuYWJsZUFub255bW91c1VzZXJzIH0gPSBvcHRpb25zO1xuICByZXR1cm4gYXV0aERhdGFNYW5hZ2VyKGF1dGgsIGVuYWJsZUFub255bW91c1VzZXJzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFiYXNlQWRhcHRlcihkYXRhYmFzZVVSSSwgY29sbGVjdGlvblByZWZpeCwgZGF0YWJhc2VPcHRpb25zKSB7XG4gIGxldCBwcm90b2NvbDtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWRVUkkgPSBuZXcgVVJMKGRhdGFiYXNlVVJJKTtcbiAgICBwcm90b2NvbCA9IHBhcnNlZFVSSS5wcm90b2NvbCA/IHBhcnNlZFVSSS5wcm90b2NvbC50b0xvd2VyQ2FzZSgpIDogbnVsbDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8qICovXG4gIH1cbiAgc3dpdGNoIChwcm90b2NvbCkge1xuICAgIGNhc2UgJ3Bvc3RncmVzOic6XG4gICAgY2FzZSAncG9zdGdyZXNxbDonOlxuICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyKHtcbiAgICAgICAgdXJpOiBkYXRhYmFzZVVSSSxcbiAgICAgICAgY29sbGVjdGlvblByZWZpeCxcbiAgICAgICAgZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBuZXcgTW9uZ29TdG9yYWdlQWRhcHRlcih7XG4gICAgICAgIHVyaTogZGF0YWJhc2VVUkksXG4gICAgICAgIGNvbGxlY3Rpb25QcmVmaXgsXG4gICAgICAgIG1vbmdvT3B0aW9uczogZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -18,8 +18,6 @@ const Auth = require('./Auth');
|
|
|
18
18
|
|
|
19
19
|
const RESTController = require('parse/lib/node/RESTController');
|
|
20
20
|
|
|
21
|
-
const URL = require('url');
|
|
22
|
-
|
|
23
21
|
const Parse = require('parse/node');
|
|
24
22
|
|
|
25
23
|
function getSessionToken(options) {
|
|
@@ -67,10 +65,10 @@ function ParseServerRESTController(applicationId, router) {
|
|
|
67
65
|
config = Config.get(applicationId);
|
|
68
66
|
}
|
|
69
67
|
|
|
70
|
-
const serverURL = URL
|
|
68
|
+
const serverURL = new URL(config.serverURL);
|
|
71
69
|
|
|
72
|
-
if (path.indexOf(serverURL.
|
|
73
|
-
path = path.slice(serverURL.
|
|
70
|
+
if (path.indexOf(serverURL.pathname) === 0) {
|
|
71
|
+
path = path.slice(serverURL.pathname.length, path.length);
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
if (path[0] !== '/') {
|
|
@@ -191,4 +189,4 @@ function ParseServerRESTController(applicationId, router) {
|
|
|
191
189
|
|
|
192
190
|
var _default = ParseServerRESTController;
|
|
193
191
|
exports.default = _default;
|
|
194
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9QYXJzZVNlcnZlclJFU1RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIkNvbmZpZyIsInJlcXVpcmUiLCJBdXRoIiwiUkVTVENvbnRyb2xsZXIiLCJVUkwiLCJQYXJzZSIsImdldFNlc3Npb25Ub2tlbiIsIm9wdGlvbnMiLCJzZXNzaW9uVG9rZW4iLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldEF1dGgiLCJjb25maWciLCJpbnN0YWxsYXRpb25JZCIsInVzZU1hc3RlcktleSIsImlzTWFzdGVyIiwidGhlbiIsImdldEF1dGhGb3JTZXNzaW9uVG9rZW4iLCJQYXJzZVNlcnZlclJFU1RDb250cm9sbGVyIiwiYXBwbGljYXRpb25JZCIsInJvdXRlciIsImhhbmRsZVJlcXVlc3QiLCJtZXRob2QiLCJwYXRoIiwiZGF0YSIsImFyZ3MiLCJhcmd1bWVudHMiLCJnZXQiLCJzZXJ2ZXJVUkwiLCJwYXJzZSIsImluZGV4T2YiLCJzbGljZSIsImxlbmd0aCIsImJhdGNoIiwidHJhbnNhY3Rpb25SZXRyaWVzIiwiaW5pdGlhbFByb21pc2UiLCJ0cmFuc2FjdGlvbiIsImRhdGFiYXNlIiwiY3JlYXRlVHJhbnNhY3Rpb25hbFNlc3Npb24iLCJwcm9taXNlcyIsInJlcXVlc3RzIiwibWFwIiwicmVxdWVzdCIsImJvZHkiLCJyZXNwb25zZSIsInJldHVyblN0YXR1cyIsInN0YXR1cyIsIl9zdGF0dXMiLCJzdWNjZXNzIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImFsbCIsInJlc3VsdCIsImZpbmQiLCJyZXN1bHRJdGVtIiwiYWJvcnRUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsInJlamVjdCIsImNvbW1pdFRyYW5zYWN0aW9uYWxTZXNzaW9uIiwiY2F0Y2giLCJlcnJvckl0ZW0iLCJxdWVyeSIsImF1dGgiLCJpbmZvIiwiY29udGV4dCIsInRyeVJvdXRlUmVxdWVzdCIsInJlc3AiLCJlcnIiLCJFcnJvciIsIklOVkFMSURfSlNPTiIsImFwcGx5IiwiYWpheCIsImhh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LEtBQUssQ0FBQytELEtBQXJCLElBQ0FELEdBQUcsQ0FBQ2pCLElBQUosSUFBWTdDLEtBQUssQ0FBQytELEtBQU4sQ0FBWUMsWUFEeEIsSUFFQUYsR0FBRyxDQUFDaEIsT0FBSixJQUFnQixnQkFBZTdCLE1BQU8sSUFBR0MsSUFBSyxFQUhoRCxFQUlFO0FBQ0FwQixZQUFBQSxjQUFjLENBQUN1QyxPQUFmLENBQXVCNEIsS0FBdkIsQ0FBNkIsSUFBN0IsRUFBbUM3QyxJQUFuQyxFQUF5Q1QsSUFBekMsQ0FBOENOLE9BQTlDLEVBQXVEK0MsTUFBdkQ7QUFDRCxXQU5ELE1BTU87QUFDTEEsWUFBQUEsTUFBTSxDQUFDVSxHQUFELENBQU47QUFDRDtBQUNGLFNBdkJFLENBQVA7QUF5QkQsT0F0Q0QsRUFzQ0dWLE1BdENIO0FBdUNELEtBeENNLENBQVA7QUF5Q0Q7O0FBRUQsU0FBTztBQUNMZixJQUFBQSxPQUFPLEVBQUVyQixhQURKO0FBRUxrRCxJQUFBQSxJQUFJLEVBQUVwRSxjQUFjLENBQUNvRSxJQUZoQjtBQUdMQyxJQUFBQSxXQUFXLEVBQUVyRSxjQUFjLENBQUNxRTtBQUh2QixHQUFQO0FBS0Q7O2VBRWN0RCx5QiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbmZpZyA9IHJlcXVpcmUoJy4vQ29uZmlnJyk7XG5jb25zdCBBdXRoID0gcmVxdWlyZSgnLi9BdXRoJyk7XG5jb25zdCBSRVNUQ29udHJvbGxlciA9IHJlcXVpcmUoJ3BhcnNlL2xpYi9ub2RlL1JFU1RDb250cm9sbGVyJyk7XG5jb25zdCBVUkwgPSByZXF1aXJlKCd1cmwnKTtcbmNvbnN0IFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpO1xuXG5mdW5jdGlvbiBnZXRTZXNzaW9uVG9rZW4ob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy5zZXNzaW9uVG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShvcHRpb25zLnNlc3Npb25Ub2tlbik7XG4gIH1cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbn1cblxuZnVuY3Rpb24gZ2V0QXV0aChvcHRpb25zID0ge30sIGNvbmZpZykge1xuICBjb25zdCBpbnN0YWxsYXRpb25JZCA9IG9wdGlvbnMuaW5zdGFsbGF0aW9uSWQgfHwgJ2Nsb3VkJztcbiAgaWYgKG9wdGlvbnMudXNlTWFzdGVyS2V5KSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQXV0aC5BdXRoKHsgY29uZmlnLCBpc01hc3RlcjogdHJ1ZSwgaW5zdGFsbGF0aW9uSWQgfSkpO1xuICB9XG4gIHJldHVybiBnZXRTZXNzaW9uVG9rZW4ob3B0aW9ucykudGhlbihzZXNzaW9uVG9rZW4gPT4ge1xuICAgIGlmIChzZXNzaW9uVG9rZW4pIHtcbiAgICAgIG9wdGlvbnMuc2Vzc2lvblRva2VuID0gc2Vzc2lvblRva2VuO1xuICAgICAgcmV0dXJuIEF1dGguZ2V0QXV0aEZvclNlc3Npb25Ub2tlbih7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgc2Vzc2lvblRva2VuOiBzZXNzaW9uVG9rZW4sXG4gICAgICAgIGluc3RhbGxhdGlvbklkLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEF1dGguQXV0aCh7IGNvbmZpZywgaW5zdGFsbGF0aW9uSWQgfSkpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIFBhcnNlU2VydmVyUkVTVENvbnRyb2xsZXIoYXBwbGljYXRpb25JZCwgcm91dGVyKSB7XG4gIGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3QobWV0aG9kLCBwYXRoLCBkYXRhID0ge30sIG9wdGlvbnMgPSB7fSwgY29uZmlnKSB7XG4gICAgLy8gU3RvcmUgdGhlIGFyZ3VtZW50cywgZm9yIGxhdGVyIHVzZSBpZiBpbnRlcm5hbCBmYWlsc1xuICAgIGNvbnN0IGFyZ3MgPSBhcmd1bWVudHM7XG5cbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uZmlnID0gQ29uZmlnLmdldChhcHBsaWNhdGlvbklkKTtcbiAgICB9XG4gICAgY29uc3Qgc2VydmVyVVJMID0gVVJMLnBhcnNlKGNvbmZpZy5zZXJ2ZXJVUkwpO1xuICAgIGlmIChwYXRoLmluZGV4T2Yoc2VydmVyVVJMLnBhdGgpID09PSAwKSB7XG4gICAgICBwYXRoID0gcGF0aC5zbGljZShzZXJ2ZXJVUkwucGF0aC5sZW5ndGgsIHBhdGgubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAocGF0aFswXSAhPT0gJy8nKSB7XG4gICAgICBwYXRoID0gJy8nICsgcGF0aDtcbiAgICB9XG5cbiAgICBpZiAocGF0aCA9PT0gJy9iYXRjaCcpIHtcbiAgICAgIGNvbnN0IGJhdGNoID0gdHJhbnNhY3Rpb25SZXRyaWVzID0+IHtcbiAgICAgICAgbGV0IGluaXRpYWxQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIGlmIChkYXRhLnRyYW5zYWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgICAgaW5pdGlhbFByb21pc2UgPSBjb25maWcuZGF0YWJhc2UuY3JlYXRlVHJhbnNhY3Rpb25hbFNlc3Npb24oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5pdGlhbFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBkYXRhLnJlcXVlc3RzLm1hcChyZXF1ZXN0ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVSZXF1ZXN0KHJlcXVlc3QubWV0aG9kLCByZXF1ZXN0LnBhdGgsIHJlcXVlc3QuYm9keSwgb3B0aW9ucywgY29uZmlnKS50aGVuKFxuICAgICAgICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucmV0dXJuU3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5fc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLl9zdGF0dXM7XG4gICAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiByZXNwb25zZSwgX3N0YXR1czogc3RhdHVzIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHJlc3BvbnNlIH07XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgZXJyb3I6IHsgY29kZTogZXJyb3IuY29kZSwgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgICAgICAgIC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgIGlmIChkYXRhLnRyYW5zYWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5maW5kKHJlc3VsdEl0ZW0gPT4gdHlwZW9mIHJlc3VsdEl0ZW0uZXJyb3IgPT09ICdvYmplY3QnKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5kYXRhYmFzZS5hYm9ydFRyYW5zYWN0aW9uYWxTZXNzaW9uKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcuZGF0YWJhc2UuY29tbWl0VHJhbnNhY3Rpb25hbFNlc3Npb24oKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVycm9yICYmXG4gICAgICAgICAgICAgICAgZXJyb3IuZmluZChcbiAgICAgICAgICAgICAgICAgIGVycm9ySXRlbSA9PiB0eXBlb2YgZXJyb3JJdGVtLmVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvckl0ZW0uZXJyb3IuY29kZSA9PT0gMjUxXG4gICAgICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUmV0cmllcyA+IDBcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJhdGNoKHRyYW5zYWN0aW9uUmV0cmllcyAtIDEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBiYXRjaCg1KTtcbiAgICB9XG5cbiAgICBsZXQgcXVlcnk7XG4gICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgIHF1ZXJ5ID0gZGF0YTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgZ2V0QXV0aChvcHRpb25zLCBjb25maWcpLnRoZW4oYXV0aCA9PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgYXV0aCxcbiAgICAgICAgICBpbmZvOiB7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbklkOiBhcHBsaWNhdGlvbklkLFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBvcHRpb25zLnNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIGluc3RhbGxhdGlvbklkOiBvcHRpb25zLmluc3RhbGxhdGlvbklkLFxuICAgICAgICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0IHx8IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcXVlcnksXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByb3V0ZXIudHJ5Um91dGVSZXF1ZXN0KG1ldGhvZCwgcGF0aCwgcmVxdWVzdCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgIHJlc3AgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IHJlc3BvbnNlLCBzdGF0dXMgfSA9IHJlc3A7XG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLnJldHVyblN0YXR1cykge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoeyAuLi5yZXNwb25zZSwgX3N0YXR1czogc3RhdHVzIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVyciBpbnN0YW5jZW9mIFBhcnNlLkVycm9yICYmXG4gICAgICAgICAgICAgICAgZXJyLmNvZGUgPT0gUGFyc2UuRXJyb3IuSU5WQUxJRF9KU09OICYmXG4gICAgICAgICAgICAgICAgZXJyLm1lc3NhZ2UgPT0gYGNhbm5vdCByb3V0ZSAke21ldGhvZH0gJHtwYXRofWBcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgUkVTVENvbnRyb2xsZXIucmVxdWVzdC5hcHBseShudWxsLCBhcmdzKS50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfSwgcmVqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVxdWVzdDogaGFuZGxlUmVxdWVzdCxcbiAgICBhamF4OiBSRVNUQ29udHJvbGxlci5hamF4LFxuICAgIGhhbmRsZUVycm9yOiBSRVNUQ29udHJvbGxlci5oYW5kbGVFcnJvcixcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFyc2VTZXJ2ZXJSRVNUQ29udHJvbGxlcjtcbmV4cG9ydCB7IFBhcnNlU2VydmVyUkVTVENvbnRyb2xsZXIgfTtcbiJdfQ==
|
|
192
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9QYXJzZVNlcnZlclJFU1RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIkNvbmZpZyIsInJlcXVpcmUiLCJBdXRoIiwiUkVTVENvbnRyb2xsZXIiLCJQYXJzZSIsImdldFNlc3Npb25Ub2tlbiIsIm9wdGlvbnMiLCJzZXNzaW9uVG9rZW4iLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldEF1dGgiLCJjb25maWciLCJpbnN0YWxsYXRpb25JZCIsInVzZU1hc3RlcktleSIsImlzTWFzdGVyIiwidGhlbiIsImdldEF1dGhGb3JTZXNzaW9uVG9rZW4iLCJQYXJzZVNlcnZlclJFU1RDb250cm9sbGVyIiwiYXBwbGljYXRpb25JZCIsInJvdXRlciIsImhhbmRsZVJlcXVlc3QiLCJtZXRob2QiLCJwYXRoIiwiZGF0YSIsImFyZ3MiLCJhcmd1bWVudHMiLCJnZXQiLCJzZXJ2ZXJVUkwiLCJVUkwiLCJpbmRleE9mIiwicGF0aG5hbWUiLCJzbGljZSIsImxlbmd0aCIsImJhdGNoIiwidHJhbnNhY3Rpb25SZXRyaWVzIiwiaW5pdGlhbFByb21pc2UiLCJ0cmFuc2FjdGlvbiIsImRhdGFiYXNlIiwiY3JlYXRlVHJhbnNhY3Rpb25hbFNlc3Npb24iLCJwcm9taXNlcyIsInJlcXVlc3RzIiwibWFwIiwicmVxdWVzdCIsImJvZHkiLCJyZXNwb25zZSIsInJldHVyblN0YXR1cyIsInN0YXR1cyIsIl9zdGF0dXMiLCJzdWNjZXNzIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImFsbCIsInJlc3VsdCIsImZpbmQiLCJyZXN1bHRJdGVtIiwiYWJvcnRUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsInJlamVjdCIsImNvbW1pdFRyYW5zYWN0aW9uYWxTZXNzaW9uIiwiY2F0Y2giLCJlcnJvckl0ZW0iLCJxdWVyeSIsImF1dGgiLCJpbmZvIiwiY29udGV4dCIsInRyeVJvdXRlUmVxdWVzdCIsInJlc3AiLCJlcnIiLCJFcnJvciIsIklOVkFMSURfSlNPTiIsImFwcGx5IiwiYWpheCIs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LEtBQUssQ0FBQ2dFLEtBQU4sQ0FBWUMsWUFEeEIsSUFFQUYsR0FBRyxDQUFDaEIsT0FBSixJQUFnQixnQkFBZTlCLE1BQU8sSUFBR0MsSUFBSyxFQUhoRCxFQUlFO0FBQ0FuQixZQUFBQSxjQUFjLENBQUN1QyxPQUFmLENBQXVCNEIsS0FBdkIsQ0FBNkIsSUFBN0IsRUFBbUM5QyxJQUFuQyxFQUF5Q1QsSUFBekMsQ0FBOENOLE9BQTlDLEVBQXVEZ0QsTUFBdkQ7QUFDRCxXQU5ELE1BTU87QUFDTEEsWUFBQUEsTUFBTSxDQUFDVSxHQUFELENBQU47QUFDRDtBQUNGLFNBdkJFLENBQVA7QUF5QkQsT0F0Q0QsRUFzQ0dWLE1BdENIO0FBdUNELEtBeENNLENBQVA7QUF5Q0Q7O0FBRUQsU0FBTztBQUNMZixJQUFBQSxPQUFPLEVBQUV0QixhQURKO0FBRUxtRCxJQUFBQSxJQUFJLEVBQUVwRSxjQUFjLENBQUNvRSxJQUZoQjtBQUdMQyxJQUFBQSxXQUFXLEVBQUVyRSxjQUFjLENBQUNxRTtBQUh2QixHQUFQO0FBS0Q7O2VBRWN2RCx5QiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbmZpZyA9IHJlcXVpcmUoJy4vQ29uZmlnJyk7XG5jb25zdCBBdXRoID0gcmVxdWlyZSgnLi9BdXRoJyk7XG5jb25zdCBSRVNUQ29udHJvbGxlciA9IHJlcXVpcmUoJ3BhcnNlL2xpYi9ub2RlL1JFU1RDb250cm9sbGVyJyk7XG5jb25zdCBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKTtcblxuZnVuY3Rpb24gZ2V0U2Vzc2lvblRva2VuKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMuc2Vzc2lvblRva2VuID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUob3B0aW9ucy5zZXNzaW9uVG9rZW4pO1xuICB9XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG59XG5cbmZ1bmN0aW9uIGdldEF1dGgob3B0aW9ucyA9IHt9LCBjb25maWcpIHtcbiAgY29uc3QgaW5zdGFsbGF0aW9uSWQgPSBvcHRpb25zLmluc3RhbGxhdGlvbklkIHx8ICdjbG91ZCc7XG4gIGlmIChvcHRpb25zLnVzZU1hc3RlcktleSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEF1dGguQXV0aCh7IGNvbmZpZywgaXNNYXN0ZXI6IHRydWUsIGluc3RhbGxhdGlvbklkIH0pKTtcbiAgfVxuICByZXR1cm4gZ2V0U2Vzc2lvblRva2VuKG9wdGlvbnMpLnRoZW4oc2Vzc2lvblRva2VuID0+IHtcbiAgICBpZiAoc2Vzc2lvblRva2VuKSB7XG4gICAgICBvcHRpb25zLnNlc3Npb25Ub2tlbiA9IHNlc3Npb25Ub2tlbjtcbiAgICAgIHJldHVybiBBdXRoLmdldEF1dGhGb3JTZXNzaW9uVG9rZW4oe1xuICAgICAgICBjb25maWcsXG4gICAgICAgIHNlc3Npb25Ub2tlbjogc2Vzc2lvblRva2VuLFxuICAgICAgICBpbnN0YWxsYXRpb25JZCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBBdXRoLkF1dGgoeyBjb25maWcsIGluc3RhbGxhdGlvbklkIH0pKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBQYXJzZVNlcnZlclJFU1RDb250cm9sbGVyKGFwcGxpY2F0aW9uSWQsIHJvdXRlcikge1xuICBmdW5jdGlvbiBoYW5kbGVSZXF1ZXN0KG1ldGhvZCwgcGF0aCwgZGF0YSA9IHt9LCBvcHRpb25zID0ge30sIGNvbmZpZykge1xuICAgIC8vIFN0b3JlIHRoZSBhcmd1bWVudHMsIGZvciBsYXRlciB1c2UgaWYgaW50ZXJuYWwgZmFpbHNcbiAgICBjb25zdCBhcmdzID0gYXJndW1lbnRzO1xuXG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IENvbmZpZy5nZXQoYXBwbGljYXRpb25JZCk7XG4gICAgfVxuICAgIGNvbnN0IHNlcnZlclVSTCA9IG5ldyBVUkwoY29uZmlnLnNlcnZlclVSTCk7XG4gICAgaWYgKHBhdGguaW5kZXhPZihzZXJ2ZXJVUkwucGF0aG5hbWUpID09PSAwKSB7XG4gICAgICBwYXRoID0gcGF0aC5zbGljZShzZXJ2ZXJVUkwucGF0aG5hbWUubGVuZ3RoLCBwYXRoLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKHBhdGhbMF0gIT09ICcvJykge1xuICAgICAgcGF0aCA9ICcvJyArIHBhdGg7XG4gICAgfVxuXG4gICAgaWYgKHBhdGggPT09ICcvYmF0Y2gnKSB7XG4gICAgICBjb25zdCBiYXRjaCA9IHRyYW5zYWN0aW9uUmV0cmllcyA9PiB7XG4gICAgICAgIGxldCBpbml0aWFsUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICBpZiAoZGF0YS50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGluaXRpYWxQcm9taXNlID0gY29uZmlnLmRhdGFiYXNlLmNyZWF0ZVRyYW5zYWN0aW9uYWxTZXNzaW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluaXRpYWxQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb21pc2VzID0gZGF0YS5yZXF1ZXN0cy5tYXAocmVxdWVzdCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlUmVxdWVzdChyZXF1ZXN0Lm1ldGhvZCwgcmVxdWVzdC5wYXRoLCByZXF1ZXN0LmJvZHksIG9wdGlvbnMsIGNvbmZpZykudGhlbihcbiAgICAgICAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnJldHVyblN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gcmVzcG9uc2UuX3N0YXR1cztcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5fc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogcmVzcG9uc2UsIF9zdGF0dXM6IHN0YXR1cyB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiByZXNwb25zZSB9O1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yOiB7IGNvZGU6IGVycm9yLmNvZGUsIGVycm9yOiBlcnJvci5tZXNzYWdlIH0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICBpZiAoZGF0YS50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZmluZChyZXN1bHRJdGVtID0+IHR5cGVvZiByZXN1bHRJdGVtLmVycm9yID09PSAnb2JqZWN0JykpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcuZGF0YWJhc2UuYWJvcnRUcmFuc2FjdGlvbmFsU2Vzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLmRhdGFiYXNlLmNvbW1pdFRyYW5zYWN0aW9uYWxTZXNzaW9uKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBlcnJvciAmJlxuICAgICAgICAgICAgICAgIGVycm9yLmZpbmQoXG4gICAgICAgICAgICAgICAgICBlcnJvckl0ZW0gPT4gdHlwZW9mIGVycm9ySXRlbS5lcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3JJdGVtLmVycm9yLmNvZGUgPT09IDI1MVxuICAgICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblJldHJpZXMgPiAwXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBiYXRjaCh0cmFuc2FjdGlvblJldHJpZXMgLSAxKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gYmF0Y2goNSk7XG4gICAgfVxuXG4gICAgbGV0IHF1ZXJ5O1xuICAgIGlmIChtZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICBxdWVyeSA9IGRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGdldEF1dGgob3B0aW9ucywgY29uZmlnKS50aGVuKGF1dGggPT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgaW5mbzoge1xuICAgICAgICAgICAgYXBwbGljYXRpb25JZDogYXBwbGljYXRpb25JZCxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogb3B0aW9ucy5zZXNzaW9uVG9rZW4sXG4gICAgICAgICAgICBpbnN0YWxsYXRpb25JZDogb3B0aW9ucy5pbnN0YWxsYXRpb25JZCxcbiAgICAgICAgICAgIGNvbnRleHQ6IG9wdGlvbnMuY29udGV4dCB8fCB7fSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcm91dGVyLnRyeVJvdXRlUmVxdWVzdChtZXRob2QsIHBhdGgsIHJlcXVlc3QpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICByZXNwID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgeyByZXNwb25zZSwgc3RhdHVzIH0gPSByZXNwO1xuICAgICAgICAgICAgICBpZiAob3B0aW9ucy5yZXR1cm5TdGF0dXMpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHsgLi4ucmVzcG9uc2UsIF9zdGF0dXM6IHN0YXR1cyB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBlcnIgaW5zdGFuY2VvZiBQYXJzZS5FcnJvciAmJlxuICAgICAgICAgICAgICAgIGVyci5jb2RlID09IFBhcnNlLkVycm9yLklOVkFMSURfSlNPTiAmJlxuICAgICAgICAgICAgICAgIGVyci5tZXNzYWdlID09IGBjYW5ub3Qgcm91dGUgJHttZXRob2R9ICR7cGF0aH1gXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIFJFU1RDb250cm9sbGVyLnJlcXVlc3QuYXBwbHkobnVsbCwgYXJncykudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH0sIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJlcXVlc3Q6IGhhbmRsZVJlcXVlc3QsXG4gICAgYWpheDogUkVTVENvbnRyb2xsZXIuYWpheCxcbiAgICBoYW5kbGVFcnJvcjogUkVTVENvbnRyb2xsZXIuaGFuZGxlRXJyb3IsXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhcnNlU2VydmVyUkVTVENvbnRyb2xsZXI7XG5leHBvcnQgeyBQYXJzZVNlcnZlclJFU1RDb250cm9sbGVyIH07XG4iXX0=
|
|
@@ -26,7 +26,9 @@ function classNameMismatchResponse(bodyClass, pathClass) {
|
|
|
26
26
|
function getAllSchemas(req) {
|
|
27
27
|
return req.config.database.loadSchema({
|
|
28
28
|
clearCache: true
|
|
29
|
-
}).then(schemaController => schemaController.getAllClasses(
|
|
29
|
+
}).then(schemaController => schemaController.getAllClasses({
|
|
30
|
+
clearCache: true
|
|
31
|
+
})).then(schemas => ({
|
|
30
32
|
response: {
|
|
31
33
|
results: schemas
|
|
32
34
|
}
|
|
@@ -144,4 +146,4 @@ class SchemasRouter extends _PromiseRouter.default {
|
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
exports.SchemasRouter = SchemasRouter;
|
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1NjaGVtYXNSb3V0ZXIuanMiXSwibmFtZXMiOlsiUGFyc2UiLCJyZXF1aXJlIiwiU2NoZW1hQ29udHJvbGxlciIsImNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UiLCJib2R5Q2xhc3MiLCJwYXRoQ2xhc3MiLCJFcnJvciIsIklOVkFMSURfQ0xBU1NfTkFNRSIsImdldEFsbFNjaGVtYXMiLCJyZXEiLCJjb25maWciLCJkYXRhYmFzZSIsImxvYWRTY2hlbWEiLCJjbGVhckNhY2hlIiwidGhlbiIsInNjaGVtYUNvbnRyb2xsZXIiLCJnZXRBbGxDbGFzc2VzIiwic2NoZW1hcyIsInJlc3BvbnNlIiwicmVzdWx0cyIsImdldE9uZVNjaGVtYSIsImNsYXNzTmFtZSIsInBhcmFtcyIsInNjaGVtYSIsImNhdGNoIiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJjaGVja0lmRGVmaW5lZFNjaGVtYXNJc1VzZWQiLCJsb2NrU2NoZW1hcyIsIk9QRVJBVElPTl9GT1JCSURERU4iLCJpbnRlcm5hbENyZWF0ZVNjaGVtYSIsImJvZHkiLCJjb250cm9sbGVyIiwiYWRkQ2xhc3NJZk5vdEV4aXN0cyIsImZpZWxkcyIsImNsYXNzTGV2ZWxQZXJtaXNzaW9ucyIsImluZGV4ZXMiLCJpbnRlcm5hbFVwZGF0ZVNjaGVtYSIsInVwZGF0ZUNsYXNzIiwiY3JlYXRlU2NoZW1hIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJwYXRoIiwibW9kaWZ5U2NoZW1hIiwiZGVsZXRlU2NoZW1hIiwiY2xhc3NOYW1lSXNWYWxpZCIsImludmFsaWRDbGFzc05hbWVNZXNzYWdlIiwiU2NoZW1hc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwibWlkZGxld2FyZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0E7O0FBQ0E7Ozs7Ozs7O0FBTkE7QUFFQSxJQUFJQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxZQUFELENBQVAsQ0FBc0JELEtBQWxDO0FBQUEsSUFDRUUsZ0JBQWdCLEdBQUdELE9BQU8sQ0FBQyxpQ0FBRCxDQUQ1Qjs7QUFNQSxTQUFTRSx5QkFBVCxDQUFtQ0MsU0FBbkMsRUFBOENDLFNBQTlDLEVBQXlEO0FBQ3ZELFFBQU0sSUFBSUwsS0FBSyxDQUFDTSxLQUFWLENBQ0pOLEtBQUssQ0FBQ00sS0FBTixDQUFZQyxrQkFEUixFQUVILCtCQUE4QkgsU0FBVSxRQUFPQyxTQUFVLEdBRnRELENBQU47QUFJRDs7QUFFRCxTQUFTRyxhQUFULENBQXVCQyxHQUF2QixFQUE0QjtBQUMxQixTQUFPQSxHQUFHLENBQUNDLE1BQUosQ0FBV0MsUUFBWCxDQUNKQyxVQURJLENBQ087QUFBRUMsSUFBQUEsVUFBVSxFQUFFO0FBQWQsR0FEUCxFQUVKQyxJQUZJLENBRUNDLGdCQUFnQixJQUFJQSxnQkFBZ0IsQ0FBQ0MsYUFBakIsQ0FBK0IsSUFBL0IsQ0FGckIsRUFHSkYsSUFISSxDQUdDRyxPQUFPLEtBQUs7QUFBRUMsSUFBQUEsUUFBUSxFQUFFO0FBQUVDLE1BQUFBLE9BQU8sRUFBRUY7QUFBWDtBQUFaLEdBQUwsQ0FIUixDQUFQO0FBSUQ7O0FBRUQsU0FBU0csWUFBVCxDQUFzQlgsR0FBdEIsRUFBMkI7QUFDekIsUUFBTVksU0FBUyxHQUFHWixHQUFHLENBQUNhLE1BQUosQ0FBV0QsU0FBN0I7QUFDQSxTQUFPWixHQUFHLENBQUNDLE1BQUosQ0FBV0MsUUFBWCxDQUNKQyxVQURJLENBQ087QUFBRUMsSUFBQUEsVUFBVSxFQUFFO0FBQWQsR0FEUCxFQUVKQyxJQUZJLENBRUNDLGdCQUFnQixJQUFJQSxnQkFBZ0IsQ0FBQ0ssWUFBakIsQ0FBOEJDLFNBQTlCLEVBQXlDLElBQXpDLENBRnJCLEVBR0pQLElBSEksQ0FHQ1MsTUFBTSxLQUFLO0FBQUVMLElBQUFBLFFBQVEsRUFBRUs7QUFBWixHQUFMLENBSFAsRUFJSkMsS0FKSSxDQUlFQyxLQUFLLElBQUk7QUFDZCxRQUFJQSxLQUFLLEtBQUtDLFNBQWQsRUFBeUI7QUFDdkIsWUFBTSxJQUFJMUIsS0FBSyxDQUFDTSxLQUFWLENBQWdCTixLQUFLLENBQUNNLEtBQU4sQ0FBWUMsa0JBQTVCLEVBQWlELFNBQVFjLFNBQVUsa0JBQW5FLENBQU47QUFDRCxLQUZELE1BRU87QUFDTCxZQUFNLElBQUlyQixLQUFLLENBQUNNLEtBQVYsQ0FBZ0JOLEtBQUssQ0FBQ00sS0FBTixDQUFZcUIscUJBQTVCLEVBQW1ELHlCQUFuRCxDQUFOO0FBQ0Q7QUFDRixHQVZJLENBQVA7QUFXRDs7QUFFRCxNQUFNQywyQkFBMkIsR0FBR25CLEdBQUcsSUFBSTtBQUFBOztBQUN6QyxNQUFJLGdCQUFBQSxHQUFHLENBQUNDLE1BQUosa0ZBQVlhLE1BQVosMEVBQW9CTSxXQUFwQixNQUFvQyxJQUF4QyxFQUE4QztBQUM1QyxVQUFNLElBQUk3QixLQUFLLENBQUNNLEtBQVYsQ0FDSk4sS0FBSyxDQUFDTSxLQUFOLENBQVl3QixtQkFEUixFQUVKLDZEQUZJLENBQU47QUFJRDtBQUNGLENBUEQ7O0FBU08sTUFBTUMsb0JBQW9CLEdBQUcsT0FBT1YsU0FBUCxFQUFrQlcsSUFBbEIsRUFBd0J0QixNQUF4QixLQUFtQztBQUNyRSxRQUFNdUIsVUFBVSxHQUFHLE1BQU12QixNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLFVBQWhCLENBQTJCO0FBQUVDLElBQUFBLFVBQVUsRUFBRTtBQUFkLEdBQTNCLENBQXpCO0FBQ0EsUUFBTUssUUFBUSxHQUFHLE1BQU1lLFVBQVUsQ0FBQ0MsbUJBQVgsQ0FDckJiLFNBRHFCLEVBRXJCVyxJQUFJLENBQUNHLE1BRmdCLEVBR3JCSCxJQUFJLENBQUNJLHFCQUhnQixFQUlyQkosSUFBSSxDQUFDSyxPQUpnQixDQUF2QjtBQU1BLFNBQU87QUFDTG5CLElBQUFBO0FBREssR0FBUDtBQUdELENBWE07Ozs7QUFhQSxNQUFNb0Isb0JBQW9CLEdBQUcsT0FBT2pCLFNBQVAsRUFBa0JXLElBQWxCLEVBQXdCdEIsTUFBeEIsS0FBbUM7QUFDckUsUUFBTXVCLFVBQVUsR0FBRyxNQUFNdkIsTUFBTSxDQUFDQyxRQUFQLENBQWdCQyxVQUFoQixDQUEyQjtBQUFFQyxJQUFBQSxVQUFVLEVBQUU7QUFBZCxHQUEzQixDQUF6QjtBQUNBLFFBQU1LLFFBQVEsR0FBRyxNQUFNZSxVQUFVLENBQUNNLFdBQVgsQ0FDckJsQixTQURxQixFQUVyQlcsSUFBSSxDQUFDRyxNQUFMLElBQWUsRUFGTSxFQUdyQkgsSUFBSSxDQUFDSSxxQkFIZ0IsRUFJckJKLElBQUksQ0FBQ0ssT0FKZ0IsRUFLckIzQixNQUFNLENBQUNDLFFBTGMsQ0FBdkI7QUFPQSxTQUFPO0FBQUVPLElBQUFBO0FBQUYsR0FBUDtBQUNELENBVk07Ozs7QUFZUCxlQUFlc0IsWUFBZixDQUE0Qi9CLEdBQTVCLEVBQWlDO0FBQy9CbUIsRUFBQUEsMkJBQTJCLENBQUNuQixHQUFELENBQTNCOztBQUNBLE1BQUlBLEdBQUcsQ0FBQ2dDLElBQUosQ0FBU0MsVUFBYixFQUF5QjtBQUN2QixVQUFNLElBQUkxQyxLQUFLLENBQUNNLEtBQVYsQ0FDSk4sS0FBSyxDQUFDTSxLQUFOLENBQVl3QixtQkFEUixFQUVKLHVEQUZJLENBQU47QUFJRDs7QUFDRCxNQUFJckIsR0FBRyxDQUFDYSxNQUFKLENBQVdELFNBQVgsSUFBd0JaLEdBQUcsQ0FBQ3VCLElBQUosQ0FBU1gsU0FBckMsRUFBZ0Q7QUFDOUMsUUFBSVosR0FBRyxDQUFDYSxNQUFKLENBQVdELFNBQVgsSUFBd0JaLEdBQUcsQ0FBQ3VCLElBQUosQ0FBU1gsU0FBckMsRUFBZ0Q7QUFDOUMsYUFBT2xCLHlCQUF5QixDQUFDTSxHQUFHLENBQUN1QixJQUFKLENBQVNYLFNBQVYsRUFBcUJaLEdBQUcsQ0FBQ2EsTUFBSixDQUFXRCxTQUFoQyxDQUFoQztBQUNEO0FBQ0Y7O0FBRUQsUUFBTUEsU0FBUyxHQUFHWixHQUFHLENBQUNhLE1BQUosQ0FBV0QsU0FBWCxJQUF3QlosR0FBRyxDQUFDdUIsSUFBSixDQUFTWCxTQUFuRDs7QUFDQSxNQUFJLENBQUNBLFNBQUwsRUFBZ0I7QUFDZCxVQUFNLElBQUlyQixLQUFLLENBQUNNLEtBQVYsQ0FBZ0IsR0FBaEIsRUFBc0IsUUFBT0csR0FBRyxDQUFDa0MsSUFBSyxzQkFBdEMsQ0FBTjtBQUNEOztBQUVELFNBQU8sTUFBTVosb0JBQW9CLENBQUNWLFNBQUQsRUFBWVosR0FBRyxDQUFDdUIsSUFBaEIsRUFBc0J2QixHQUFHLENBQUNDLE1BQTFCLENBQWpDO0FBQ0Q7O0FBRUQsU0FBU2tDLFlBQVQsQ0FBc0JuQyxHQUF0QixFQUEyQjtBQUN6Qm1CLEVBQUFBLDJCQUEyQixDQUFDbkIsR0FBRCxDQUEzQjs7QUFDQSxNQUFJQSxHQUFHLENBQUNnQyxJQUFKLENBQVNDLFVBQWIsRUFBeUI7QUFDdkIsVUFBTSxJQUFJMUMsS0FBSyxDQUFDTSxLQUFWLENBQ0pOLEtBQUssQ0FBQ00sS0FBTixDQUFZd0IsbUJBRFIsRUFFSix1REFGSSxDQUFOO0FBSUQ7O0FBQ0QsTUFBSXJCLEdBQUcsQ0FBQ3VCLElBQUosQ0FBU1gsU0FBVCxJQUFzQlosR0FBRyxDQUFDdUIsSUFBSixDQUFTWCxTQUFULElBQXNCWixHQUFHLENBQUNhLE1BQUosQ0FBV0QsU0FBM0QsRUFBc0U7QUFDcEUsV0FBT2xCLHlCQUF5QixDQUFDTSxHQUFHLENBQUN1QixJQUFKLENBQVNYLFNBQVYsRUFBcUJaLEdBQUcsQ0FBQ2EsTUFBSixDQUFXRCxTQUFoQyxDQUFoQztBQUNEOztBQUNELFFBQU1BLFNBQVMsR0FBR1osR0FBRyxDQUFDYSxNQUFKLENBQVdELFNBQTdCO0FBRUEsU0FBT2lCLG9CQUFvQixDQUFDakIsU0FBRCxFQUFZWixHQUFHLENBQUN1QixJQUFoQixFQUFzQnZCLEdBQUcsQ0FBQ0MsTUFBMUIsQ0FBM0I7QUFDRDs7QUFFRCxNQUFNbUMsWUFBWSxHQUFHcEMsR0FBRyxJQUFJO0FBQzFCLE1BQUlBLEdBQUcsQ0FBQ2dDLElBQUosQ0FBU0MsVUFBYixFQUF5QjtBQUN2QixVQUFNLElBQUkxQyxLQUFLLENBQUNNLEtBQVYsQ0FDSk4sS0FBSyxDQUFDTSxLQUFOLENBQVl3QixtQkFEUixFQUVKLHVEQUZJLENBQU47QUFJRDs7QUFDRCxNQUFJLENBQUM1QixnQkFBZ0IsQ0FBQzRDLGdCQUFqQixDQUFrQ3JDLEdBQUcsQ0FBQ2EsTUFBSixDQUFXRCxTQUE3QyxDQUFMLEVBQThEO0FBQzVELFVBQU0sSUFBSXJCLEtBQUssQ0FBQ00sS0FBVixDQUNKTixLQUFLLENBQUNNLEtBQU4sQ0FBWUMsa0JBRFIsRUFFSkwsZ0JBQWdCLENBQUM2Qyx1QkFBakIsQ0FBeUN0QyxHQUFHLENBQUNhLE1BQUosQ0FBV0QsU0FBcEQsQ0FGSSxDQUFOO0FBSUQ7O0FBQ0QsU0FBT1osR0FBRyxDQUFDQyxNQUFKLENBQVdDLFFBQVgsQ0FBb0JrQyxZQUFwQixDQUFpQ3BDLEdBQUcsQ0FBQ2EsTUFBSixDQUFXRCxTQUE1QyxFQUF1RFAsSUFBdkQsQ0FBNEQsT0FBTztBQUFFSSxJQUFBQSxRQUFRLEVBQUU7QUFBWixHQUFQLENBQTVELENBQVA7QUFDRCxDQWREOztBQWdCTyxNQUFNOEIsYUFBTixTQUE0QkMsc0JBQTVCLENBQTBDO0FBQy9DQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxLQUFMLENBQVcsS0FBWCxFQUFrQixVQUFsQixFQUE4QkMsVUFBVSxDQUFDQyw2QkFBekMsRUFBd0U3QyxhQUF4RTtBQUNBLFNBQUsyQyxLQUFMLENBQ0UsS0FERixFQUVFLHFCQUZGLEVBR0VDLFVBQVUsQ0FBQ0MsNkJBSGIsRUFJRWpDLFlBSkY7QUFNQSxTQUFLK0IsS0FBTCxDQUFXLE1BQVgsRUFBbUIsVUFBbkIsRUFBK0JDLFVBQVUsQ0FBQ0MsNkJBQTFDLEVBQXlFYixZQUF6RTtBQUNBLFNBQUtXLEtBQUwsQ0FDRSxNQURGLEVBRUUscUJBRkYsRUFHRUMsVUFBVSxDQUFDQyw2QkFIYixFQUlFYixZQUpGO0FBTUEsU0FBS1csS0FBTCxDQUNFLEtBREYsRUFFRSxxQkFGRixFQUdFQyxVQUFVLENBQUNDLDZCQUhiLEVBSUVULFlBSkY7QUFNQSxTQUFLTyxLQUFMLENBQ0UsUUFERixFQUVFLHFCQUZGLEVBR0VDLFVBQVUsQ0FBQ0MsNkJBSGIsRUFJRVIsWUFKRjtBQU1EOztBQTVCOEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzY2hlbWFzLmpzXG5cbnZhciBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZSxcbiAgU2NoZW1hQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL0NvbnRyb2xsZXJzL1NjaGVtYUNvbnRyb2xsZXInKTtcblxuaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5pbXBvcnQgKiBhcyBtaWRkbGV3YXJlIGZyb20gJy4uL21pZGRsZXdhcmVzJztcblxuZnVuY3Rpb24gY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZShib2R5Q2xhc3MsIHBhdGhDbGFzcykge1xuICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgUGFyc2UuRXJyb3IuSU5WQUxJRF9DTEFTU19OQU1FLFxuICAgIGBDbGFzcyBuYW1lIG1pc21hdGNoIGJldHdlZW4gJHtib2R5Q2xhc3N9IGFuZCAke3BhdGhDbGFzc30uYFxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRBbGxTY2hlbWFzKHJlcSkge1xuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZVxuICAgIC5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KVxuICAgIC50aGVuKHNjaGVtYUNvbnRyb2xsZXIgPT4gc2NoZW1hQ29udHJvbGxlci5nZXRBbGxDbGFzc2VzKHRydWUpKVxuICAgIC50aGVuKHNjaGVtYXMgPT4gKHsgcmVzcG9uc2U6IHsgcmVzdWx0czogc2NoZW1hcyB9IH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0T25lU2NoZW1hKHJlcSkge1xuICBjb25zdCBjbGFzc05hbWUgPSByZXEucGFyYW1zLmNsYXNzTmFtZTtcbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2VcbiAgICAubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWUgfSlcbiAgICAudGhlbihzY2hlbWFDb250cm9sbGVyID0+IHNjaGVtYUNvbnRyb2xsZXIuZ2V0T25lU2NoZW1hKGNsYXNzTmFtZSwgdHJ1ZSkpXG4gICAgLnRoZW4oc2NoZW1hID0+ICh7IHJlc3BvbnNlOiBzY2hlbWEgfSkpXG4gICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0NMQVNTX05BTUUsIGBDbGFzcyAke2NsYXNzTmFtZX0gZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5URVJOQUxfU0VSVkVSX0VSUk9SLCAnRGF0YWJhc2UgYWRhcHRlciBlcnJvci4nKTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuY29uc3QgY2hlY2tJZkRlZmluZWRTY2hlbWFzSXNVc2VkID0gcmVxID0+IHtcbiAgaWYgKHJlcS5jb25maWc/LnNjaGVtYT8ubG9ja1NjaGVtYXMgPT09IHRydWUpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgJ0Nhbm5vdCBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIHdoZW4gc2NoZW1hcyBvcHRpb25zIGlzIHVzZWQuJ1xuICAgICk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbENyZWF0ZVNjaGVtYSA9IGFzeW5jIChjbGFzc05hbWUsIGJvZHksIGNvbmZpZykgPT4ge1xuICBjb25zdCBjb250cm9sbGVyID0gYXdhaXQgY29uZmlnLmRhdGFiYXNlLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlIH0pO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNvbnRyb2xsZXIuYWRkQ2xhc3NJZk5vdEV4aXN0cyhcbiAgICBjbGFzc05hbWUsXG4gICAgYm9keS5maWVsZHMsXG4gICAgYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsXG4gICAgYm9keS5pbmRleGVzXG4gICk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2UsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJuYWxVcGRhdGVTY2hlbWEgPSBhc3luYyAoY2xhc3NOYW1lLCBib2R5LCBjb25maWcpID0+IHtcbiAgY29uc3QgY29udHJvbGxlciA9IGF3YWl0IGNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb250cm9sbGVyLnVwZGF0ZUNsYXNzKFxuICAgIGNsYXNzTmFtZSxcbiAgICBib2R5LmZpZWxkcyB8fCB7fSxcbiAgICBib2R5LmNsYXNzTGV2ZWxQZXJtaXNzaW9ucyxcbiAgICBib2R5LmluZGV4ZXMsXG4gICAgY29uZmlnLmRhdGFiYXNlXG4gICk7XG4gIHJldHVybiB7IHJlc3BvbnNlIH07XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTY2hlbWEocmVxKSB7XG4gIGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZChyZXEpO1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBjcmVhdGUgYSBzY2hlbWEuXCJcbiAgICApO1xuICB9XG4gIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSAmJiByZXEuYm9keS5jbGFzc05hbWUpIHtcbiAgICBpZiAocmVxLnBhcmFtcy5jbGFzc05hbWUgIT0gcmVxLmJvZHkuY2xhc3NOYW1lKSB7XG4gICAgICByZXR1cm4gY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZShyZXEuYm9keS5jbGFzc05hbWUsIHJlcS5wYXJhbXMuY2xhc3NOYW1lKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBjbGFzc05hbWUgPSByZXEucGFyYW1zLmNsYXNzTmFtZSB8fCByZXEuYm9keS5jbGFzc05hbWU7XG4gIGlmICghY2xhc3NOYW1lKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKDEzNSwgYFBPU1QgJHtyZXEucGF0aH0gbmVlZHMgYSBjbGFzcyBuYW1lLmApO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGludGVybmFsQ3JlYXRlU2NoZW1hKGNsYXNzTmFtZSwgcmVxLmJvZHksIHJlcS5jb25maWcpO1xufVxuXG5mdW5jdGlvbiBtb2RpZnlTY2hlbWEocmVxKSB7XG4gIGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZChyZXEpO1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byB1cGRhdGUgYSBzY2hlbWEuXCJcbiAgICApO1xuICB9XG4gIGlmIChyZXEuYm9keS5jbGFzc05hbWUgJiYgcmVxLmJvZHkuY2xhc3NOYW1lICE9IHJlcS5wYXJhbXMuY2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UocmVxLmJvZHkuY2xhc3NOYW1lLCByZXEucGFyYW1zLmNsYXNzTmFtZSk7XG4gIH1cbiAgY29uc3QgY2xhc3NOYW1lID0gcmVxLnBhcmFtcy5jbGFzc05hbWU7XG5cbiAgcmV0dXJuIGludGVybmFsVXBkYXRlU2NoZW1hKGNsYXNzTmFtZSwgcmVxLmJvZHksIHJlcS5jb25maWcpO1xufVxuXG5jb25zdCBkZWxldGVTY2hlbWEgPSByZXEgPT4ge1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBkZWxldGUgYSBzY2hlbWEuXCJcbiAgICApO1xuICB9XG4gIGlmICghU2NoZW1hQ29udHJvbGxlci5jbGFzc05hbWVJc1ZhbGlkKHJlcS5wYXJhbXMuY2xhc3NOYW1lKSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSxcbiAgICAgIFNjaGVtYUNvbnRyb2xsZXIuaW52YWxpZENsYXNzTmFtZU1lc3NhZ2UocmVxLnBhcmFtcy5jbGFzc05hbWUpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5kZWxldGVTY2hlbWEocmVxLnBhcmFtcy5jbGFzc05hbWUpLnRoZW4oKCkgPT4gKHsgcmVzcG9uc2U6IHt9IH0pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWFzUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvc2NoZW1hcycsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGdldEFsbFNjaGVtYXMpO1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnR0VUJyxcbiAgICAgICcvc2NoZW1hcy86Y2xhc3NOYW1lJyxcbiAgICAgIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsXG4gICAgICBnZXRPbmVTY2hlbWFcbiAgICApO1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL3NjaGVtYXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBjcmVhdGVTY2hlbWEpO1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnUE9TVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgY3JlYXRlU2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BVVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgbW9kaWZ5U2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0RFTEVURScsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgZGVsZXRlU2NoZW1hXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1NjaGVtYXNSb3V0ZXIuanMiXSwibmFtZXMiOlsiUGFyc2UiLCJyZXF1aXJlIiwiU2NoZW1hQ29udHJvbGxlciIsImNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UiLCJib2R5Q2xhc3MiLCJwYXRoQ2xhc3MiLCJFcnJvciIsIklOVkFMSURfQ0xBU1NfTkFNRSIsImdldEFsbFNjaGVtYXMiLCJyZXEiLCJjb25maWciLCJkYXRhYmFzZSIsImxvYWRTY2hlbWEiLCJjbGVhckNhY2hlIiwidGhlbiIsInNjaGVtYUNvbnRyb2xsZXIiLCJnZXRBbGxDbGFzc2VzIiwic2NoZW1hcyIsInJlc3BvbnNlIiwicmVzdWx0cyIsImdldE9uZVNjaGVtYSIsImNsYXNzTmFtZSIsInBhcmFtcyIsInNjaGVtYSIsImNhdGNoIiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJjaGVja0lmRGVmaW5lZFNjaGVtYXNJc1VzZWQiLCJsb2NrU2NoZW1hcyIsIk9QRVJBVElPTl9GT1JCSURERU4iLCJpbnRlcm5hbENyZWF0ZVNjaGVtYSIsImJvZHkiLCJjb250cm9sbGVyIiwiYWRkQ2xhc3NJZk5vdEV4aXN0cyIsImZpZWxkcyIsImNsYXNzTGV2ZWxQZXJtaXNzaW9ucyIsImluZGV4ZXMiLCJpbnRlcm5hbFVwZGF0ZVNjaGVtYSIsInVwZGF0ZUNsYXNzIiwiY3JlYXRlU2NoZW1hIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJwYXRoIiwibW9kaWZ5U2NoZW1hIiwiZGVsZXRlU2NoZW1hIiwiY2xhc3NOYW1lSXNWYWxpZCIsImludmFsaWRDbGFzc05hbWVNZXNzYWdlIiwiU2NoZW1hc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwibWlkZGxld2FyZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0E7O0FBQ0E7Ozs7Ozs7O0FBTkE7QUFF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QSxTQUFLTyxLQUFMLENBQ0UsUUFERixFQUVFLHFCQUZGLEVBR0VDLFVBQVUsQ0FBQ0MsNkJBSGIsRUFJRVIsWUFKRjtBQU1EOztBQTVCOEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzY2hlbWFzLmpzXG5cbnZhciBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZSxcbiAgU2NoZW1hQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL0NvbnRyb2xsZXJzL1NjaGVtYUNvbnRyb2xsZXInKTtcblxuaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5pbXBvcnQgKiBhcyBtaWRkbGV3YXJlIGZyb20gJy4uL21pZGRsZXdhcmVzJztcblxuZnVuY3Rpb24gY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZShib2R5Q2xhc3MsIHBhdGhDbGFzcykge1xuICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgUGFyc2UuRXJyb3IuSU5WQUxJRF9DTEFTU19OQU1FLFxuICAgIGBDbGFzcyBuYW1lIG1pc21hdGNoIGJldHdlZW4gJHtib2R5Q2xhc3N9IGFuZCAke3BhdGhDbGFzc30uYFxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRBbGxTY2hlbWFzKHJlcSkge1xuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZVxuICAgIC5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KVxuICAgIC50aGVuKHNjaGVtYUNvbnRyb2xsZXIgPT4gc2NoZW1hQ29udHJvbGxlci5nZXRBbGxDbGFzc2VzKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KSlcbiAgICAudGhlbihzY2hlbWFzID0+ICh7IHJlc3BvbnNlOiB7IHJlc3VsdHM6IHNjaGVtYXMgfSB9KSk7XG59XG5cbmZ1bmN0aW9uIGdldE9uZVNjaGVtYShyZXEpIHtcbiAgY29uc3QgY2xhc3NOYW1lID0gcmVxLnBhcmFtcy5jbGFzc05hbWU7XG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlXG4gICAgLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlIH0pXG4gICAgLnRoZW4oc2NoZW1hQ29udHJvbGxlciA9PiBzY2hlbWFDb250cm9sbGVyLmdldE9uZVNjaGVtYShjbGFzc05hbWUsIHRydWUpKVxuICAgIC50aGVuKHNjaGVtYSA9PiAoeyByZXNwb25zZTogc2NoZW1hIH0pKVxuICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICBpZiAoZXJyb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9DTEFTU19OQU1FLCBgQ2xhc3MgJHtjbGFzc05hbWV9IGRvZXMgbm90IGV4aXN0LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0RhdGFiYXNlIGFkYXB0ZXIgZXJyb3IuJyk7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbmNvbnN0IGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZCA9IHJlcSA9PiB7XG4gIGlmIChyZXEuY29uZmlnPy5zY2hlbWE/LmxvY2tTY2hlbWFzID09PSB0cnVlKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgICdDYW5ub3QgcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiB3aGVuIHNjaGVtYXMgb3B0aW9ucyBpcyB1c2VkLidcbiAgICApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJuYWxDcmVhdGVTY2hlbWEgPSBhc3luYyAoY2xhc3NOYW1lLCBib2R5LCBjb25maWcpID0+IHtcbiAgY29uc3QgY29udHJvbGxlciA9IGF3YWl0IGNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb250cm9sbGVyLmFkZENsYXNzSWZOb3RFeGlzdHMoXG4gICAgY2xhc3NOYW1lLFxuICAgIGJvZHkuZmllbGRzLFxuICAgIGJvZHkuY2xhc3NMZXZlbFBlcm1pc3Npb25zLFxuICAgIGJvZHkuaW5kZXhlc1xuICApO1xuICByZXR1cm4ge1xuICAgIHJlc3BvbnNlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGludGVybmFsVXBkYXRlU2NoZW1hID0gYXN5bmMgKGNsYXNzTmFtZSwgYm9keSwgY29uZmlnKSA9PiB7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBhd2FpdCBjb25maWcuZGF0YWJhc2UubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWUgfSk7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29udHJvbGxlci51cGRhdGVDbGFzcyhcbiAgICBjbGFzc05hbWUsXG4gICAgYm9keS5maWVsZHMgfHwge30sXG4gICAgYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsXG4gICAgYm9keS5pbmRleGVzLFxuICAgIGNvbmZpZy5kYXRhYmFzZVxuICApO1xuICByZXR1cm4geyByZXNwb25zZSB9O1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2NoZW1hKHJlcSkge1xuICBjaGVja0lmRGVmaW5lZFNjaGVtYXNJc1VzZWQocmVxKTtcbiAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgXCJyZWFkLW9ubHkgbWFzdGVyS2V5IGlzbid0IGFsbG93ZWQgdG8gY3JlYXRlIGEgc2NoZW1hLlwiXG4gICAgKTtcbiAgfVxuICBpZiAocmVxLnBhcmFtcy5jbGFzc05hbWUgJiYgcmVxLmJvZHkuY2xhc3NOYW1lKSB7XG4gICAgaWYgKHJlcS5wYXJhbXMuY2xhc3NOYW1lICE9IHJlcS5ib2R5LmNsYXNzTmFtZSkge1xuICAgICAgcmV0dXJuIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UocmVxLmJvZHkuY2xhc3NOYW1lLCByZXEucGFyYW1zLmNsYXNzTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2xhc3NOYW1lID0gcmVxLnBhcmFtcy5jbGFzc05hbWUgfHwgcmVxLmJvZHkuY2xhc3NOYW1lO1xuICBpZiAoIWNsYXNzTmFtZSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcigxMzUsIGBQT1NUICR7cmVxLnBhdGh9IG5lZWRzIGEgY2xhc3MgbmFtZS5gKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBpbnRlcm5hbENyZWF0ZVNjaGVtYShjbGFzc05hbWUsIHJlcS5ib2R5LCByZXEuY29uZmlnKTtcbn1cblxuZnVuY3Rpb24gbW9kaWZ5U2NoZW1hKHJlcSkge1xuICBjaGVja0lmRGVmaW5lZFNjaGVtYXNJc1VzZWQocmVxKTtcbiAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgXCJyZWFkLW9ubHkgbWFzdGVyS2V5IGlzbid0IGFsbG93ZWQgdG8gdXBkYXRlIGEgc2NoZW1hLlwiXG4gICAgKTtcbiAgfVxuICBpZiAocmVxLmJvZHkuY2xhc3NOYW1lICYmIHJlcS5ib2R5LmNsYXNzTmFtZSAhPSByZXEucGFyYW1zLmNsYXNzTmFtZSkge1xuICAgIHJldHVybiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKHJlcS5ib2R5LmNsYXNzTmFtZSwgcmVxLnBhcmFtcy5jbGFzc05hbWUpO1xuICB9XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuXG4gIHJldHVybiBpbnRlcm5hbFVwZGF0ZVNjaGVtYShjbGFzc05hbWUsIHJlcS5ib2R5LCByZXEuY29uZmlnKTtcbn1cblxuY29uc3QgZGVsZXRlU2NoZW1hID0gcmVxID0+IHtcbiAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgXCJyZWFkLW9ubHkgbWFzdGVyS2V5IGlzbid0IGFsbG93ZWQgdG8gZGVsZXRlIGEgc2NoZW1hLlwiXG4gICAgKTtcbiAgfVxuICBpZiAoIVNjaGVtYUNvbnRyb2xsZXIuY2xhc3NOYW1lSXNWYWxpZChyZXEucGFyYW1zLmNsYXNzTmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5JTlZBTElEX0NMQVNTX05BTUUsXG4gICAgICBTY2hlbWFDb250cm9sbGVyLmludmFsaWRDbGFzc05hbWVNZXNzYWdlKHJlcS5wYXJhbXMuY2xhc3NOYW1lKVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UuZGVsZXRlU2NoZW1hKHJlcS5wYXJhbXMuY2xhc3NOYW1lKS50aGVuKCgpID0+ICh7IHJlc3BvbnNlOiB7fSB9KSk7XG59O1xuXG5leHBvcnQgY2xhc3MgU2NoZW1hc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3NjaGVtYXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBnZXRBbGxTY2hlbWFzKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0dFVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgZ2V0T25lU2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9zY2hlbWFzJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgY3JlYXRlU2NoZW1hKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIGNyZWF0ZVNjaGVtYVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdQVVQnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIG1vZGlmeVNjaGVtYVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdERUxFVEUnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIGRlbGV0ZVNjaGVtYVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/batch.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
const Parse = require('parse/node').Parse;
|
|
4
4
|
|
|
5
|
-
const url = require('url');
|
|
6
|
-
|
|
7
5
|
const path = require('path'); // These methods handle batch requests.
|
|
8
6
|
|
|
9
7
|
|
|
@@ -15,12 +13,12 @@ function mountOnto(router) {
|
|
|
15
13
|
});
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
function parseURL(
|
|
19
|
-
|
|
20
|
-
return
|
|
16
|
+
function parseURL(urlString) {
|
|
17
|
+
try {
|
|
18
|
+
return new URL(urlString);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
return undefined;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
return undefined;
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
function makeBatchRoutingPathFunction(originalUrl, serverURL, publicServerURL) {
|
|
@@ -38,9 +36,9 @@ function makeBatchRoutingPathFunction(originalUrl, serverURL, publicServerURL) {
|
|
|
38
36
|
return path.posix.join('/', requestPath.slice(apiPrefix.length));
|
|
39
37
|
};
|
|
40
38
|
|
|
41
|
-
if (serverURL && publicServerURL && serverURL.
|
|
42
|
-
const localPath = serverURL.
|
|
43
|
-
const publicPath = publicServerURL.
|
|
39
|
+
if (serverURL && publicServerURL && serverURL.pathname != publicServerURL.pathname) {
|
|
40
|
+
const localPath = serverURL.pathname;
|
|
41
|
+
const publicPath = publicServerURL.pathname; // Override the api prefix
|
|
44
42
|
|
|
45
43
|
apiPrefix = localPath;
|
|
46
44
|
return function (requestPath) {
|
|
@@ -143,4 +141,4 @@ module.exports = {
|
|
|
143
141
|
mountOnto,
|
|
144
142
|
makeBatchRoutingPathFunction
|
|
145
143
|
};
|
|
146
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXRjaC5qcyJdLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJ1cmwiLCJwYXRoIiwiYmF0Y2hQYXRoIiwibW91bnRPbnRvIiwicm91dGVyIiwicm91dGUiLCJyZXEiLCJoYW5kbGVCYXRjaCIsInBhcnNlVVJMIiwiVVJMIiwicGFyc2UiLCJ1bmRlZmluZWQiLCJtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uIiwib3JpZ2luYWxVcmwiLCJzZXJ2ZXJVUkwiLCJwdWJsaWNTZXJ2ZXJVUkwiLCJhcGlQcmVmaXhMZW5ndGgiLCJsZW5ndGgiLCJhcGlQcmVmaXgiLCJzbGljZSIsIm1ha2VSb3V0YWJsZVBhdGgiLCJyZXF1ZXN0UGF0aCIsIkVycm9yIiwiSU5WQUxJRF9KU09OIiwicG9zaXgiLCJqb2luIiwibG9jYWxQYXRoIiwicHVibGljUGF0aCIsInN0YXJ0c1dpdGhMb2NhbCIsInN0YXJ0c1dpdGgiLCJzdGFydHNXaXRoUHVibGljIiwicGF0aExlbmd0aFRvVXNlIiwiTWF0aCIsIm1heCIsIm5ld1BhdGgiLCJBcnJheSIsImlzQXJyYXkiLCJib2R5IiwicmVxdWVzdHMiLCJlbmRzV2l0aCIsImNvbmZpZyIsImJhdGNoIiwidHJhbnNhY3Rpb25SZXRyaWVzIiwiaW5pdGlhbFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRyYW5zYWN0aW9uIiwiZGF0YWJhc2UiLCJjcmVhdGVUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsInRoZW4iLCJwcm9taXNlcyIsIm1hcCIsInJlc3RSZXF1ZXN0Iiwicm91dGFibGVQYXRoIiwicmVxdWVzdCIsImF1dGgiLCJpbmZvIiwidHJ5Um91dGVSZXF1ZXN0IiwibWV0aG9kIiwicmVzcG9uc2UiLCJzdWNjZXNzIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImFsbCIsInJlc3VsdHMiLCJmaW5kIiwicmVzdWx0IiwiYWJvcnRUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsInJlamVjdCIsImNvbW1pdFRyYW5zYWN0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ZnZFLEVBQUFBLFNBRGU7QUFFZlMsRUFBQUE7QUFGZSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuY29uc3QgdXJsID0gcmVxdWlyZSgndXJsJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuLy8gVGhlc2UgbWV0aG9kcyBoYW5kbGUgYmF0Y2ggcmVxdWVzdHMuXG5jb25zdCBiYXRjaFBhdGggPSAnL2JhdGNoJztcblxuLy8gTW91bnRzIGEgYmF0Y2gtaGFuZGxlciBvbnRvIGEgUHJvbWlzZVJvdXRlci5cbmZ1bmN0aW9uIG1vdW50T250byhyb3V0ZXIpIHtcbiAgcm91dGVyLnJvdXRlKCdQT1NUJywgYmF0Y2hQYXRoLCByZXEgPT4ge1xuICAgIHJldHVybiBoYW5kbGVCYXRjaChyb3V0ZXIsIHJlcSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXJzZVVSTChVUkwpIHtcbiAgaWYgKHR5cGVvZiBVUkwgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHVybC5wYXJzZShVUkwpO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1ha2VCYXRjaFJvdXRpbmdQYXRoRnVuY3Rpb24ob3JpZ2luYWxVcmwsIHNlcnZlclVSTCwgcHVibGljU2VydmVyVVJMKSB7XG4gIHNlcnZlclVSTCA9IHNlcnZlclVSTCA/IHBhcnNlVVJMKHNlcnZlclVSTCkgOiB1bmRlZmluZWQ7XG4gIHB1YmxpY1NlcnZlclVSTCA9IHB1YmxpY1NlcnZlclVSTCA/IHBhcnNlVVJMKHB1YmxpY1NlcnZlclVSTCkgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgYXBpUHJlZml4TGVuZ3RoID0gb3JpZ2luYWxVcmwubGVuZ3RoIC0gYmF0Y2hQYXRoLmxlbmd0aDtcbiAgbGV0IGFwaVByZWZpeCA9IG9yaWdpbmFsVXJsLnNsaWNlKDAsIGFwaVByZWZpeExlbmd0aCk7XG5cbiAgY29uc3QgbWFrZVJvdXRhYmxlUGF0aCA9IGZ1bmN0aW9uIChyZXF1ZXN0UGF0aCkge1xuICAgIC8vIFRoZSByb3V0YWJsZVBhdGggaXMgdGhlIHBhdGggbWludXMgdGhlIGFwaSBwcmVmaXhcbiAgICBpZiAocmVxdWVzdFBhdGguc2xpY2UoMCwgYXBpUHJlZml4Lmxlbmd0aCkgIT0gYXBpUHJlZml4KSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9KU09OLCAnY2Fubm90IHJvdXRlIGJhdGNoIHBhdGggJyArIHJlcXVlc3RQYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGgucG9zaXguam9pbignLycsIHJlcXVlc3RQYXRoLnNsaWNlKGFwaVByZWZpeC5sZW5ndGgpKTtcbiAgfTtcblxuICBpZiAoc2VydmVyVVJMICYmIHB1YmxpY1NlcnZlclVSTCAmJiBzZXJ2ZXJVUkwucGF0aCAhPSBwdWJsaWNTZXJ2ZXJVUkwucGF0aCkge1xuICAgIGNvbnN0IGxvY2FsUGF0aCA9IHNlcnZlclVSTC5wYXRoO1xuICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwdWJsaWNTZXJ2ZXJVUkwucGF0aDtcblxuICAgIC8vIE92ZXJyaWRlIHRoZSBhcGkgcHJlZml4XG4gICAgYXBpUHJlZml4ID0gbG9jYWxQYXRoO1xuICAgIHJldHVybiBmdW5jdGlvbiAocmVxdWVzdFBhdGgpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgd2hpY2ggc2VydmVyIHVybCB3YXMgdXNlZCBieSBmaWd1cmluZyBvdXQgd2hpY2hcbiAgICAgIC8vIHBhdGggbW9yZSBjbG9zZWx5IG1hdGNoZXMgcmVxdWVzdFBhdGhcbiAgICAgIGNvbnN0IHN0YXJ0c1dpdGhMb2NhbCA9IHJlcXVlc3RQYXRoLnN0YXJ0c1dpdGgobG9jYWxQYXRoKTtcbiAgICAgIGNvbnN0IHN0YXJ0c1dpdGhQdWJsaWMgPSByZXF1ZXN0UGF0aC5zdGFydHNXaXRoKHB1YmxpY1BhdGgpO1xuICAgICAgY29uc3QgcGF0aExlbmd0aFRvVXNlID1cbiAgICAgICAgc3RhcnRzV2l0aExvY2FsICYmIHN0YXJ0c1dpdGhQdWJsaWNcbiAgICAgICAgICA/IE1hdGgubWF4KGxvY2FsUGF0aC5sZW5ndGgsIHB1YmxpY1BhdGgubGVuZ3RoKVxuICAgICAgICAgIDogc3RhcnRzV2l0aExvY2FsXG4gICAgICAgICAgICA/IGxvY2FsUGF0aC5sZW5ndGhcbiAgICAgICAgICAgIDogcHVibGljUGF0aC5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG5ld1BhdGggPSBwYXRoLnBvc2l4LmpvaW4oJy8nLCBsb2NhbFBhdGgsICcvJywgcmVxdWVzdFBhdGguc2xpY2UocGF0aExlbmd0aFRvVXNlKSk7XG5cbiAgICAgIC8vIFVzZSB0aGUgbWV0aG9kIGZvciBsb2NhbCByb3V0aW5nXG4gICAgICByZXR1cm4gbWFrZVJvdXRhYmxlUGF0aChuZXdQYXRoKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG1ha2VSb3V0YWJsZVBhdGg7XG59XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIHtyZXNwb25zZX0gb2JqZWN0LlxuLy8gVE9ETzogcGFzcyBhbG9uZyBhdXRoIGNvcnJlY3RseVxuZnVuY3Rpb24gaGFuZGxlQmF0Y2gocm91dGVyLCByZXEpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHJlcS5ib2R5LnJlcXVlc3RzKSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sICdyZXF1ZXN0cyBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gIH1cblxuICAvLyBUaGUgYmF0Y2ggcGF0aHMgYXJlIGFsbCBmcm9tIHRoZSByb290IG9mIG91ciBkb21haW4uXG4gIC8vIFRoYXQgbWVhbnMgdGhleSBpbmNsdWRlIHRoZSBBUEkgcHJlZml4LCB0aGF0IHRoZSBBUEkgaXMgbW91bnRlZFxuICAvLyB0by4gSG93ZXZlciwgb3VyIHByb21pc2Ugcm91dGVyIGRvZXMgbm90IHJvdXRlIHRoZSBhcGkgcHJlZml4LiBTb1xuICAvLyB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIEFQSSBwcmVmaXgsIHNvIHRoYXQgd2UgY2FuIHN0cmlwIGl0XG4gIC8vIGZyb20gYWxsIHRoZSBzdWJyZXF1ZXN0cy5cbiAgaWYgKCFyZXEub3JpZ2luYWxVcmwuZW5kc1dpdGgoYmF0Y2hQYXRoKSkge1xuICAgIHRocm93ICdpbnRlcm5hbCByb3V0aW5nIHByb2JsZW0gLSBleHBlY3RlZCB1cmwgdG8gZW5kIHdpdGggYmF0Y2gnO1xuICB9XG5cbiAgY29uc3QgbWFrZVJvdXRhYmxlUGF0aCA9IG1ha2VCYXRjaFJvdXRpbmdQYXRoRnVuY3Rpb24oXG4gICAgcmVxLm9yaWdpbmFsVXJsLFxuICAgIHJlcS5jb25maWcuc2VydmVyVVJMLFxuICAgIHJlcS5jb25maWcucHVibGljU2VydmVyVVJMXG4gICk7XG5cbiAgY29uc3QgYmF0Y2ggPSB0cmFuc2FjdGlvblJldHJpZXMgPT4ge1xuICAgIGxldCBpbml0aWFsUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGlmIChyZXEuYm9keS50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgaW5pdGlhbFByb21pc2UgPSByZXEuY29uZmlnLmRhdGFiYXNlLmNyZWF0ZVRyYW5zYWN0aW9uYWxTZXNzaW9uKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluaXRpYWxQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSByZXEuYm9keS5yZXF1ZXN0cy5tYXAocmVzdFJlcXVlc3QgPT4ge1xuICAgICAgICBjb25zdCByb3V0YWJsZVBhdGggPSBtYWtlUm91dGFibGVQYXRoKHJlc3RSZXF1ZXN0LnBhdGgpO1xuXG4gICAgICAgIC8vIENvbnN0cnVjdCBhIHJlcXVlc3QgdGhhdCB3ZSBjYW4gc2VuZCB0byBhIGhhbmRsZXJcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICBib2R5OiByZXN0UmVxdWVzdC5ib2R5LFxuICAgICAgICAgIGNvbmZpZzogcmVxLmNvbmZpZyxcbiAgICAgICAgICBhdXRoOiByZXEuYXV0aCxcbiAgICAgICAgICBpbmZvOiByZXEuaW5mbyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gcm91dGVyLnRyeVJvdXRlUmVxdWVzdChyZXN0UmVxdWVzdC5tZXRob2QsIHJvdXRhYmxlUGF0aCwgcmVxdWVzdCkudGhlbihcbiAgICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiByZXNwb25zZS5yZXNwb25zZSB9O1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3I6IHsgY29kZTogZXJyb3IuY29kZSwgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgIC50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAgICAgIGlmIChyZXEuYm9keS50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdHMuZmluZChyZXN1bHQgPT4gdHlwZW9mIHJlc3VsdC5lcnJvciA9PT0gJ29iamVjdCcpKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmFib3J0VHJhbnNhY3Rpb25hbFNlc3Npb24oKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoeyByZXNwb25zZTogcmVzdWx0cyB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5jb21taXRUcmFuc2FjdGlvbmFsU2Vzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXN1bHRzIH07XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzdWx0cyB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlcnJvciAmJlxuICAgICAgICAgICAgZXJyb3IucmVzcG9uc2UgJiZcbiAgICAgICAgICAgIGVycm9yLnJlc3BvbnNlLmZpbmQoXG4gICAgICAgICAgICAgIGVycm9ySXRlbSA9PiB0eXBlb2YgZXJyb3JJdGVtLmVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvckl0ZW0uZXJyb3IuY29kZSA9PT0gMjUxXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICB0cmFuc2FjdGlvblJldHJpZXMgPiAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gYmF0Y2godHJhbnNhY3Rpb25SZXRyaWVzIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgcmV0dXJuIGJhdGNoKDUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbW91bnRPbnRvLFxuICBtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uLFxufTtcbiJdfQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXRjaC5qcyJdLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJwYXRoIiwiYmF0Y2hQYXRoIiwibW91bnRPbnRvIiwicm91dGVyIiwicm91dGUiLCJyZXEiLCJoYW5kbGVCYXRjaCIsInBhcnNlVVJMIiwidXJsU3RyaW5nIiwiVVJMIiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uIiwib3JpZ2luYWxVcmwiLCJzZXJ2ZXJVUkwiLCJwdWJsaWNTZXJ2ZXJVUkwiLCJhcGlQcmVmaXhMZW5ndGgiLCJsZW5ndGgiLCJhcGlQcmVmaXgiLCJzbGljZSIsIm1ha2VSb3V0YWJsZVBhdGgiLCJyZXF1ZXN0UGF0aCIsIkVycm9yIiwiSU5WQUxJRF9KU09OIiwicG9zaXgiLCJqb2luIiwicGF0aG5hbWUiLCJsb2NhbFBhdGgiLCJwdWJsaWNQYXRoIiwic3RhcnRzV2l0aExvY2FsIiwic3RhcnRzV2l0aCIsInN0YXJ0c1dpdGhQdWJsaWMiLCJwYXRoTGVuZ3RoVG9Vc2UiLCJNYXRoIiwibWF4IiwibmV3UGF0aCIsIkFycmF5IiwiaXNBcnJheSIsImJvZHkiLCJyZXF1ZXN0cyIsImVuZHNXaXRoIiwiY29uZmlnIiwiYmF0Y2giLCJ0cmFuc2FjdGlvblJldHJpZXMiLCJpbml0aWFsUHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidHJhbnNhY3Rpb24iLCJkYXRhYmFzZSIsImNyZWF0ZVRyYW5zYWN0aW9uYWxTZXNzaW9uIiwidGhlbiIsInByb21pc2VzIiwibWFwIiwicmVzdFJlcXVlc3QiLCJyb3V0YWJsZVBhdGgiLCJyZXF1ZXN0IiwiYXV0aCIsImluZm8iLCJ0cnlSb3V0ZVJlcXVlc3QiLCJtZXRob2QiLCJyZXNwb25zZSIsInN1Y2Nlc3MiLCJjb2RlIiwibWVzc2FnZSIsImFsbCIsInJlc3VsdHMiLCJmaW5kIiwicmVzdWx0IiwiYWJvcnRUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsInJlamVjdCIsImNvbW1p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QUZlLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2U7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuLy8gVGhlc2UgbWV0aG9kcyBoYW5kbGUgYmF0Y2ggcmVxdWVzdHMuXG5jb25zdCBiYXRjaFBhdGggPSAnL2JhdGNoJztcblxuLy8gTW91bnRzIGEgYmF0Y2gtaGFuZGxlciBvbnRvIGEgUHJvbWlzZVJvdXRlci5cbmZ1bmN0aW9uIG1vdW50T250byhyb3V0ZXIpIHtcbiAgcm91dGVyLnJvdXRlKCdQT1NUJywgYmF0Y2hQYXRoLCByZXEgPT4ge1xuICAgIHJldHVybiBoYW5kbGVCYXRjaChyb3V0ZXIsIHJlcSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXJzZVVSTCh1cmxTdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFVSTCh1cmxTdHJpbmcpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uKG9yaWdpbmFsVXJsLCBzZXJ2ZXJVUkwsIHB1YmxpY1NlcnZlclVSTCkge1xuICBzZXJ2ZXJVUkwgPSBzZXJ2ZXJVUkwgPyBwYXJzZVVSTChzZXJ2ZXJVUkwpIDogdW5kZWZpbmVkO1xuICBwdWJsaWNTZXJ2ZXJVUkwgPSBwdWJsaWNTZXJ2ZXJVUkwgPyBwYXJzZVVSTChwdWJsaWNTZXJ2ZXJVUkwpIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGFwaVByZWZpeExlbmd0aCA9IG9yaWdpbmFsVXJsLmxlbmd0aCAtIGJhdGNoUGF0aC5sZW5ndGg7XG4gIGxldCBhcGlQcmVmaXggPSBvcmlnaW5hbFVybC5zbGljZSgwLCBhcGlQcmVmaXhMZW5ndGgpO1xuXG4gIGNvbnN0IG1ha2VSb3V0YWJsZVBhdGggPSBmdW5jdGlvbiAocmVxdWVzdFBhdGgpIHtcbiAgICAvLyBUaGUgcm91dGFibGVQYXRoIGlzIHRoZSBwYXRoIG1pbnVzIHRoZSBhcGkgcHJlZml4XG4gICAgaWYgKHJlcXVlc3RQYXRoLnNsaWNlKDAsIGFwaVByZWZpeC5sZW5ndGgpICE9IGFwaVByZWZpeCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfSlNPTiwgJ2Nhbm5vdCByb3V0ZSBiYXRjaCBwYXRoICcgKyByZXF1ZXN0UGF0aCk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoLnBvc2l4LmpvaW4oJy8nLCByZXF1ZXN0UGF0aC5zbGljZShhcGlQcmVmaXgubGVuZ3RoKSk7XG4gIH07XG5cbiAgaWYgKHNlcnZlclVSTCAmJiBwdWJsaWNTZXJ2ZXJVUkwgJiYgc2VydmVyVVJMLnBhdGhuYW1lICE9IHB1YmxpY1NlcnZlclVSTC5wYXRobmFtZSkge1xuICAgIGNvbnN0IGxvY2FsUGF0aCA9IHNlcnZlclVSTC5wYXRobmFtZTtcbiAgICBjb25zdCBwdWJsaWNQYXRoID0gcHVibGljU2VydmVyVVJMLnBhdGhuYW1lO1xuXG4gICAgLy8gT3ZlcnJpZGUgdGhlIGFwaSBwcmVmaXhcbiAgICBhcGlQcmVmaXggPSBsb2NhbFBhdGg7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChyZXF1ZXN0UGF0aCkge1xuICAgICAgLy8gRmlndXJlIG91dCB3aGljaCBzZXJ2ZXIgdXJsIHdhcyB1c2VkIGJ5IGZpZ3VyaW5nIG91dCB3aGljaFxuICAgICAgLy8gcGF0aCBtb3JlIGNsb3NlbHkgbWF0Y2hlcyByZXF1ZXN0UGF0aFxuICAgICAgY29uc3Qgc3RhcnRzV2l0aExvY2FsID0gcmVxdWVzdFBhdGguc3RhcnRzV2l0aChsb2NhbFBhdGgpO1xuICAgICAgY29uc3Qgc3RhcnRzV2l0aFB1YmxpYyA9IHJlcXVlc3RQYXRoLnN0YXJ0c1dpdGgocHVibGljUGF0aCk7XG4gICAgICBjb25zdCBwYXRoTGVuZ3RoVG9Vc2UgPVxuICAgICAgICBzdGFydHNXaXRoTG9jYWwgJiYgc3RhcnRzV2l0aFB1YmxpY1xuICAgICAgICAgID8gTWF0aC5tYXgobG9jYWxQYXRoLmxlbmd0aCwgcHVibGljUGF0aC5sZW5ndGgpXG4gICAgICAgICAgOiBzdGFydHNXaXRoTG9jYWxcbiAgICAgICAgICAgID8gbG9jYWxQYXRoLmxlbmd0aFxuICAgICAgICAgICAgOiBwdWJsaWNQYXRoLmxlbmd0aDtcblxuICAgICAgY29uc3QgbmV3UGF0aCA9IHBhdGgucG9zaXguam9pbignLycsIGxvY2FsUGF0aCwgJy8nLCByZXF1ZXN0UGF0aC5zbGljZShwYXRoTGVuZ3RoVG9Vc2UpKTtcblxuICAgICAgLy8gVXNlIHRoZSBtZXRob2QgZm9yIGxvY2FsIHJvdXRpbmdcbiAgICAgIHJldHVybiBtYWtlUm91dGFibGVQYXRoKG5ld1BhdGgpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gbWFrZVJvdXRhYmxlUGF0aDtcbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgZm9yIGEge3Jlc3BvbnNlfSBvYmplY3QuXG4vLyBUT0RPOiBwYXNzIGFsb25nIGF1dGggY29ycmVjdGx5XG5mdW5jdGlvbiBoYW5kbGVCYXRjaChyb3V0ZXIsIHJlcSkge1xuICBpZiAoIUFycmF5LmlzQXJyYXkocmVxLmJvZHkucmVxdWVzdHMpKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfSlNPTiwgJ3JlcXVlc3RzIG11c3QgYmUgYW4gYXJyYXknKTtcbiAgfVxuXG4gIC8vIFRoZSBiYXRjaCBwYXRocyBhcmUgYWxsIGZyb20gdGhlIHJvb3Qgb2Ygb3VyIGRvbWFpbi5cbiAgLy8gVGhhdCBtZWFucyB0aGV5IGluY2x1ZGUgdGhlIEFQSSBwcmVmaXgsIHRoYXQgdGhlIEFQSSBpcyBtb3VudGVkXG4gIC8vIHRvLiBIb3dldmVyLCBvdXIgcHJvbWlzZSByb3V0ZXIgZG9lcyBub3Qgcm91dGUgdGhlIGFwaSBwcmVmaXguIFNvXG4gIC8vIHdlIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgQVBJIHByZWZpeCwgc28gdGhhdCB3ZSBjYW4gc3RyaXAgaXRcbiAgLy8gZnJvbSBhbGwgdGhlIHN1YnJlcXVlc3RzLlxuICBpZiAoIXJlcS5vcmlnaW5hbFVybC5lbmRzV2l0aChiYXRjaFBhdGgpKSB7XG4gICAgdGhyb3cgJ2ludGVybmFsIHJvdXRpbmcgcHJvYmxlbSAtIGV4cGVjdGVkIHVybCB0byBlbmQgd2l0aCBiYXRjaCc7XG4gIH1cblxuICBjb25zdCBtYWtlUm91dGFibGVQYXRoID0gbWFrZUJhdGNoUm91dGluZ1BhdGhGdW5jdGlvbihcbiAgICByZXEub3JpZ2luYWxVcmwsXG4gICAgcmVxLmNvbmZpZy5zZXJ2ZXJVUkwsXG4gICAgcmVxLmNvbmZpZy5wdWJsaWNTZXJ2ZXJVUkxcbiAgKTtcblxuICBjb25zdCBiYXRjaCA9IHRyYW5zYWN0aW9uUmV0cmllcyA9PiB7XG4gICAgbGV0IGluaXRpYWxQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgaWYgKHJlcS5ib2R5LnRyYW5zYWN0aW9uID09PSB0cnVlKSB7XG4gICAgICBpbml0aWFsUHJvbWlzZSA9IHJlcS5jb25maWcuZGF0YWJhc2UuY3JlYXRlVHJhbnNhY3Rpb25hbFNlc3Npb24oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5pdGlhbFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICBjb25zdCBwcm9taXNlcyA9IHJlcS5ib2R5LnJlcXVlc3RzLm1hcChyZXN0UmVxdWVzdCA9PiB7XG4gICAgICAgIGNvbnN0IHJvdXRhYmxlUGF0aCA9IG1ha2VSb3V0YWJsZVBhdGgocmVzdFJlcXVlc3QucGF0aCk7XG5cbiAgICAgICAgLy8gQ29uc3RydWN0IGEgcmVxdWVzdCB0aGF0IHdlIGNhbiBzZW5kIHRvIGEgaGFuZGxlclxuICAgICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICAgIGJvZHk6IHJlc3RSZXF1ZXN0LmJvZHksXG4gICAgICAgICAgY29uZmlnOiByZXEuY29uZmlnLFxuICAgICAgICAgIGF1dGg6IHJlcS5hdXRoLFxuICAgICAgICAgIGluZm86IHJlcS5pbmZvLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiByb3V0ZXIudHJ5Um91dGVSZXF1ZXN0KHJlc3RSZXF1ZXN0Lm1ldGhvZCwgcm91dGFibGVQYXRoLCByZXF1ZXN0KS50aGVuKFxuICAgICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHJlc3BvbnNlLnJlc3BvbnNlIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBlcnJvcjogeyBjb2RlOiBlcnJvci5jb2RlLCBlcnJvcjogZXJyb3IubWVzc2FnZSB9IH07XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgICAgLnRoZW4ocmVzdWx0cyA9PiB7XG4gICAgICAgICAgaWYgKHJlcS5ib2R5LnRyYW5zYWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAocmVzdWx0cy5maW5kKHJlc3VsdCA9PiB0eXBlb2YgcmVzdWx0LmVycm9yID09PSAnb2JqZWN0JykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UuYWJvcnRUcmFuc2FjdGlvbmFsU2Vzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7IHJlc3BvbnNlOiByZXN1bHRzIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmNvbW1pdFRyYW5zYWN0aW9uYWxTZXNzaW9uKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3VsdHMgfTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXN1bHRzIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yICYmXG4gICAgICAgICAgICBlcnJvci5yZXNwb25zZSAmJlxuICAgICAgICAgICAgZXJyb3IucmVzcG9uc2UuZmluZChcbiAgICAgICAgICAgICAgZXJyb3JJdGVtID0+IHR5cGVvZiBlcnJvckl0ZW0uZXJyb3IgPT09ICdvYmplY3QnICYmIGVycm9ySXRlbS5lcnJvci5jb2RlID09PSAyNTFcbiAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uUmV0cmllcyA+IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBiYXRjaCh0cmFuc2FjdGlvblJldHJpZXMgLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuICByZXR1cm4gYmF0Y2goNSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtb3VudE9udG8sXG4gIG1ha2VCYXRjaFJvdXRpbmdQYXRoRnVuY3Rpb24sXG59O1xuIl19
|