Comparing version 1.1.0 to 1.2.0
@@ -22,2 +22,2 @@ 'use strict'; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRvLWVuY29kZS11cmkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBRXdCO0FBQVQsU0FBUyxhQUFULENBQXVCLGFBQXZCLEVBQTBFO0FBQ3ZGLE1BQU0sUUFBUSxJQUFJLEtBQUosQ0FBVSxjQUFjLE1BQWQsR0FBcUIsQ0FBckIsR0FBdUIsQ0FBdkIsQ0FBbEIsQ0FEaUY7QUFFdkYsUUFBTSxDQUFOLElBQVcsY0FBYyxDQUFkLENBQVgsQ0FGdUY7O29DQUF2Qjs7R0FBdUI7O0FBR3ZGLE9BQUssSUFBSSxJQUFFLENBQUYsRUFBSyxNQUFJLE9BQU8sTUFBUCxFQUFlLElBQUUsR0FBRixFQUFPLEdBQXhDLEVBQTZDO0FBQzNDLFFBQU0sUUFBZ0IsT0FBTyxDQUFQLENBQWhCLENBRHFDO0FBRTNDLFVBQU0sSUFBRSxDQUFGLEdBQUksQ0FBSixDQUFOLEdBQWUsbUJBQW1CLEtBQW5CLENBQWYsQ0FGMkM7QUFHM0MsVUFBTSxJQUFFLENBQUYsR0FBSSxDQUFKLENBQU4sR0FBZSxjQUFjLElBQUUsQ0FBRixDQUE3QixDQUgyQztHQUE3QztBQUtBLFNBQU8sTUFBTSxJQUFOLENBQVcsRUFBWCxDQUFQLENBUnVGO0NBQTFFIiwiZmlsZSI6ImF1dG8tZW5jb2RlLXVyaS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGF1dG9FbmNvZGVVUkkodGVtcGxhdGVQYXJ0czogc3RyaW5nW10sIC4uLnZhbHVlczogYW55W10pOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0cyA9IG5ldyBBcnJheSh0ZW1wbGF0ZVBhcnRzLmxlbmd0aCoyLTEpO1xuICBwYXJ0c1swXSA9IHRlbXBsYXRlUGFydHNbMF07XG4gIGZvciAobGV0IGk9MCwgbGVuPXZhbHVlcy5sZW5ndGg7IGk8bGVuOyBpKyspIHtcbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdmFsdWVzW2ldO1xuICAgIHBhcnRzWzIqaSsxXSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgcGFydHNbMippKzJdID0gdGVtcGxhdGVQYXJ0c1tpKzFdO1xuICB9XG4gIHJldHVybiBwYXJ0cy5qb2luKCcnKTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRvLWVuY29kZS11cmkuanMiXSwibmFtZXMiOlsiYXV0b0VuY29kZVVSSSIsInRlbXBsYXRlUGFydHMiLCJwYXJ0cyIsIkFycmF5IiwibGVuZ3RoIiwidmFsdWVzIiwiaSIsImxlbiIsInZhbHVlIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBRXdCQSxhO0FBQVQsU0FBU0EsYUFBVCxDQUF1QkMsYUFBdkIsRUFBMEU7QUFDdkYsTUFBTUMsUUFBUSxJQUFJQyxLQUFKLENBQVVGLGNBQWNHLE1BQWQsR0FBcUIsQ0FBckIsR0FBdUIsQ0FBakMsQ0FBZDtBQUNBRixRQUFNLENBQU4sSUFBV0QsY0FBYyxDQUFkLENBQVg7O0FBRnVGLG9DQUF2QkksTUFBdUI7QUFBdkJBLFVBQXVCO0FBQUE7O0FBR3ZGLE9BQUssSUFBSUMsSUFBRSxDQUFOLEVBQVNDLE1BQUlGLE9BQU9ELE1BQXpCLEVBQWlDRSxJQUFFQyxHQUFuQyxFQUF3Q0QsR0FBeEMsRUFBNkM7QUFDM0MsUUFBTUUsUUFBZ0JILE9BQU9DLENBQVAsQ0FBdEI7QUFDQUosVUFBTSxJQUFFSSxDQUFGLEdBQUksQ0FBVixJQUFlRyxtQkFBbUJELEtBQW5CLENBQWY7QUFDQU4sVUFBTSxJQUFFSSxDQUFGLEdBQUksQ0FBVixJQUFlTCxjQUFjSyxJQUFFLENBQWhCLENBQWY7QUFDRDtBQUNELFNBQU9KLE1BQU1RLElBQU4sQ0FBVyxFQUFYLENBQVA7QUFDRCIsImZpbGUiOiJhdXRvLWVuY29kZS11cmkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhdXRvRW5jb2RlVVJJKHRlbXBsYXRlUGFydHM6IHN0cmluZ1tdLCAuLi52YWx1ZXM6IGFueVtdKTogc3RyaW5nIHtcbiAgY29uc3QgcGFydHMgPSBuZXcgQXJyYXkodGVtcGxhdGVQYXJ0cy5sZW5ndGgqMi0xKTtcbiAgcGFydHNbMF0gPSB0ZW1wbGF0ZVBhcnRzWzBdO1xuICBmb3IgKGxldCBpPTAsIGxlbj12YWx1ZXMubGVuZ3RoOyBpPGxlbjsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IHZhbHVlc1tpXTtcbiAgICBwYXJ0c1syKmkrMV0gPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgIHBhcnRzWzIqaSsyXSA9IHRlbXBsYXRlUGFydHNbaSsxXTtcbiAgfVxuICByZXR1cm4gcGFydHMuam9pbignJyk7XG59XG4iXX0= |
@@ -47,7 +47,9 @@ 'use strict'; | ||
_templateObject15 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/newsfeed'], ['boxes/', '/newsfeed']), | ||
_templateObject16 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/fields/', ''], ['boxes/', '/fields/', '']), | ||
_templateObject17 = (0, _taggedTemplateLiteral3.default)(['files/', ''], ['files/', '']), | ||
_templateObject18 = (0, _taggedTemplateLiteral3.default)(['files/', '/contents'], ['files/', '/contents']), | ||
_templateObject19 = (0, _taggedTemplateLiteral3.default)(['threads/', ''], ['threads/', '']), | ||
_templateObject20 = (0, _taggedTemplateLiteral3.default)(['search?query=', ''], ['search?query=', '']); | ||
_templateObject16 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/tasks'], ['boxes/', '/tasks']), | ||
_templateObject17 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/fields/', ''], ['boxes/', '/fields/', '']), | ||
_templateObject18 = (0, _taggedTemplateLiteral3.default)(['files/', ''], ['files/', '']), | ||
_templateObject19 = (0, _taggedTemplateLiteral3.default)(['files/', '/contents'], ['files/', '/contents']), | ||
_templateObject20 = (0, _taggedTemplateLiteral3.default)(['threads/', ''], ['threads/', '']), | ||
_templateObject21 = (0, _taggedTemplateLiteral3.default)(['tasks/', ''], ['tasks/', '']), | ||
_templateObject22 = (0, _taggedTemplateLiteral3.default)(['search?query=', ''], ['search?query=', '']); | ||
@@ -78,9 +80,15 @@ var _https = require('https'); | ||
value: function _getRequestOptions(method, path) { | ||
var headers = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; | ||
var encoding = arguments.length <= 3 || arguments[3] === undefined ? 'utf8' : arguments[3]; | ||
var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
var encoding = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'utf8'; | ||
// By default we request the V1 of the API | ||
var prefix = '/api/v1/'; | ||
// If the requested resource is a Task, then use the V2 of the API | ||
if (path.indexOf('tasks') > -1) prefix = '/api/v2'; | ||
return { | ||
method: method, headers: headers, encoding: encoding, | ||
host: 'mailfoogae.appspot.com', | ||
path: '/api/v1/' + path, | ||
path: prefix + path, | ||
auth: this._authKey | ||
@@ -468,2 +476,7 @@ }; | ||
} | ||
}, { | ||
key: 'getTasks', | ||
value: function getTasks(key) { | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject16, key)); | ||
} | ||
}]); | ||
@@ -489,3 +502,3 @@ return Boxes; | ||
value: function getOne(boxKey, key) { | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject16, boxKey, key)); | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject17, boxKey, key)); | ||
} | ||
@@ -495,3 +508,3 @@ }, { | ||
value: function update(boxKey, data) { | ||
return this._c.post((0, _autoEncodeUri2.default)(_templateObject16, boxKey, data.key), data); | ||
return this._c.post((0, _autoEncodeUri2.default)(_templateObject17, boxKey, data.key), data); | ||
} | ||
@@ -518,3 +531,3 @@ }]); | ||
value: function getOne(key) { | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject17, key)); | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject18, key)); | ||
} | ||
@@ -524,3 +537,3 @@ }, { | ||
value: function getContents(key) { | ||
return this._c.getNoParse((0, _autoEncodeUri2.default)(_templateObject18, key)); | ||
return this._c.getNoParse((0, _autoEncodeUri2.default)(_templateObject19, key)); | ||
} | ||
@@ -547,3 +560,3 @@ }]); | ||
value: function getOne(threadKey) { | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject19, threadKey)); | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject20, threadKey)); | ||
} | ||
@@ -554,2 +567,39 @@ }]); | ||
var Tasks = function () { | ||
function Tasks(s, c) { | ||
(0, _classCallCheck3.default)(this, Tasks); | ||
this._s = s; | ||
this._c = c; | ||
} | ||
(0, _createClass3.default)(Tasks, [{ | ||
key: 'getForBox', | ||
value: function getForBox(boxKey) { | ||
return this._s.Boxes.getTasks(boxKey); | ||
} | ||
}, { | ||
key: 'getOne', | ||
value: function getOne(key) { | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject21, key)); | ||
} | ||
}, { | ||
key: 'create', | ||
value: function create(boxKey, data) { | ||
return this._c.post((0, _autoEncodeUri2.default)(_templateObject16, boxKey), data); | ||
} | ||
}, { | ||
key: 'update', | ||
value: function update(key, data) { | ||
return this._c.post((0, _autoEncodeUri2.default)(_templateObject21, key), data); | ||
} | ||
}, { | ||
key: 'delete', | ||
value: function _delete(key) { | ||
return this._c.delete((0, _autoEncodeUri2.default)(_templateObject21, key)); | ||
} | ||
}]); | ||
return Tasks; | ||
}(); | ||
var Streak = exports.Streak = function () { | ||
@@ -565,2 +615,3 @@ function Streak(authKey) { | ||
this.Threads = new Threads(this, this._c); | ||
this.Tasks = new Tasks(this, this._c); | ||
} | ||
@@ -571,3 +622,3 @@ | ||
value: function search(query) { | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject20, query)); | ||
return this._c.get((0, _autoEncodeUri2.default)(_templateObject22, query)); | ||
} | ||
@@ -577,2 +628,2 @@ }]); | ||
}(); | ||
//# sourceMappingURL=data:application/json;base64,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M0IsU0FBSyxPQUFMLEdBQWUsSUFBSSxPQUFKLENBQVksSUFBWixFQUFrQixLQUFLLEVBQUwsQ0FBakMsQ0FOMkI7R0FBN0I7OzZCQVJXOzsyQkFpQkosT0FBd0I7QUFDN0IsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLGlEQUFnQyxNQUFoQyxDQUFQLENBRDZCOzs7U0FqQnBCIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCBxdWVyeXN0cmluZyBmcm9tICdxdWVyeXN0cmluZyc7XG5cbmltcG9ydCBhZXUgZnJvbSAnLi9hdXRvLWVuY29kZS11cmknO1xuXG5jbGFzcyBDb25uSGVscGVyIHtcbiAgX2F1dGhLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihhdXRoS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdXRoS2V5ID0gYXV0aEtleTtcbiAgfVxuXG4gIF9nZXRSZXF1ZXN0T3B0aW9ucyhtZXRob2Q6IHN0cmluZywgcGF0aDogc3RyaW5nLCBoZWFkZXJzOiBPYmplY3Q9e30sIGVuY29kaW5nOiA/c3RyaW5nPSd1dGY4Jyk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCwgaGVhZGVycywgZW5jb2RpbmcsXG4gICAgICBob3N0OiAnbWFpbGZvb2dhZS5hcHBzcG90LmNvbScsXG4gICAgICBwYXRoOiAnL2FwaS92MS8nICsgcGF0aCxcbiAgICAgIGF1dGg6IHRoaXMuX2F1dGhLZXlcbiAgICB9O1xuICB9XG5cbiAgX3BhcnNlUmVzcG9uc2UocmVzcG9uc2U6IGh0dHBzLkluY29taW5nTWVzc2FnZSk6IFByb21pc2Uge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdHJzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgcmVzcG9uc2Uub24oJ2RhdGEnLCAoY2h1bms6IHN0cmluZykgPT4ge1xuICAgICAgICBzdHJzLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG4gICAgICByZXNwb25zZS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHN0ciA9IHN0cnMuam9pbignJyk7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgcmVzb2x2ZShKU09OLnBhcnNlKHN0cikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQganNvbjtcbiAgICAgICAgICAgIGxldCBlcnJvck1lc3NhZ2UgPSBgUmVzcG9uc2UgY29kZSAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgICAgICAgIGlmIChqc29uICYmIGpzb24uZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBqc29uLmVycm9yO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgLy8gSWdub3JlIHBhcnNlIGVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWplY3QoT2JqZWN0LmFzc2lnbigobmV3IEVycm9yKGVycm9yTWVzc2FnZSk6IE9iamVjdCksIHtcbiAgICAgICAgICAgICAgc3RyLCBqc29uLFxuICAgICAgICAgICAgICBzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXNwb25zZS5vbignZXJyb3InLCByZWplY3QpO1xuICAgIH0pO1xuICB9XG5cbiAgX3BsYWluUmVzcG9uc2UocmVzcG9uc2U6IGh0dHBzLkluY29taW5nTWVzc2FnZSk6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGNodW5rczogQnVmZmVyW10gPSBbXTtcbiAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG4gICAgICByZXNwb25zZS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5jb25jYXQoY2h1bmtzKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XG4gICAgICAgICAgICByZXNvbHZlKGJ1Zik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBSZXNwb25zZSBjb2RlICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX1gO1xuICAgICAgICAgICAgcmVqZWN0KE9iamVjdC5hc3NpZ24oKG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpOiBPYmplY3QpLCB7XG4gICAgICAgICAgICAgIGJ1ZixcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVyc1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmVzcG9uc2Uub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldChwYXRoOiBzdHJpbmcpOiBQcm9taXNlIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdHRVQnLCBwYXRoKTtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0KG9wdHMsIHJlcyA9PiB7XG4gICAgICAgIHJlc29sdmUodGhpcy5fcGFyc2VSZXNwb25zZShyZXMpKTtcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdC5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgcmVxdWVzdC5lbmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldE5vUGFyc2UocGF0aDogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdHRVQnLCBwYXRoLCB1bmRlZmluZWQsIG51bGwpO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wbGFpblJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHV0KHBhdGg6IHN0cmluZywgZGF0YTogT2JqZWN0KTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgZHN0ciA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLl9nZXRSZXF1ZXN0T3B0aW9ucygnUFVUJywgcGF0aCArICc/JyArIGRzdHIpO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wYXJzZVJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IFByb21pc2Uge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBvcHRzID0gdGhpcy5fZ2V0UmVxdWVzdE9wdGlvbnMoJ0RFTEVURScsIHBhdGgpO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wYXJzZVJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcG9zdChwYXRoOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8T2JqZWN0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHNlbmQgPSBxdWVyeXN0cmluZy5zdHJpbmdpZnkoe2pzb246SlNPTi5zdHJpbmdpZnkoZGF0YSl9KTtcbiAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLl9nZXRSZXF1ZXN0T3B0aW9ucygnUE9TVCcsIHBhdGgsIHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAnQ29udGVudC1MZW5ndGgnOiBzZW5kLmxlbmd0aFxuICAgICAgfSk7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gaHR0cHMucmVxdWVzdChvcHRzLCByZXMgPT4ge1xuICAgICAgICByZXNvbHZlKHRoaXMuX3BhcnNlUmVzcG9uc2UocmVzKSk7XG4gICAgICB9KTtcbiAgICAgIHJlcXVlc3Qud3JpdGUoc2VuZCk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG59XG5cbmNsYXNzIE1lIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICB9XG4gIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoJ3VzZXJzL21lJyk7XG4gIH1cbn1cblxuY2xhc3MgUGlwZWxpbmVzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIFN0YWdlczogUGlwZWxpbmVTdGFnZXM7XG4gIEZpZWxkczogUGlwZWxpbmVGaWVsZHM7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICAgIHRoaXMuU3RhZ2VzID0gbmV3IFBpcGVsaW5lU3RhZ2VzKHMsIGMpO1xuICAgIHRoaXMuRmllbGRzID0gbmV3IFBpcGVsaW5lRmllbGRzKHMsIGMpO1xuICB9XG4gIGdldEFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoJ3BpcGVsaW5lcycpO1xuICB9XG4gIGdldE9uZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke2tleX1gKTtcbiAgfVxuICBnZXRCb3hlcyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke2tleX0vYm94ZXNgKTtcbiAgfVxuICBnZXRCb3hlc0luU3RhZ2UgKGtleTogc3RyaW5nLCBzdGFnZUtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7a2V5fS9ib3hlcz9zdGFnZUtleT0ke3N0YWdlS2V5fWApO1xuICB9XG4gIGNyZWF0ZShkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wdXQoJ3BpcGVsaW5lcycsIGRhdGEpO1xuICB9XG4gIGRlbGV0ZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmRlbGV0ZShhZXUgYHBpcGVsaW5lcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUoZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucG9zdChhZXUgYHBpcGVsaW5lcy8ke2RhdGEua2V5fWAsIGRhdGEpO1xuICB9XG4gIGdldEZlZWQoa2V5OiBzdHJpbmcsIGRldGFpbExldmVsOiA/c3RyaW5nKSB7XG4gICAgbGV0IHFzID0gJyc7XG4gICAgaWYgKGRldGFpbExldmVsKSB7XG4gICAgICBxcyArPSAnPycgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkoe2RldGFpbExldmVsfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke2tleX0vbmV3c2ZlZWRgICsgcXMpO1xuICB9XG59XG5cbmNsYXNzIFBpcGVsaW5lU3RhZ2VzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICB9XG4gIGdldEFsbChwaXBlS2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9zdGFnZXNgKTtcbiAgfVxuICBnZXRPbmUocGlwZUtleTogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L3N0YWdlcy8ke2tleX1gKTtcbiAgfVxuICBjcmVhdGUocGlwZUtleTogc3RyaW5nLCBkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wdXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9zdGFnZXNgLCBkYXRhKTtcbiAgfVxuICBkZWxldGUocGlwZUtleTogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmRlbGV0ZShhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L3N0YWdlcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUocGlwZUtleTogc3RyaW5nLCBkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wb3N0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vc3RhZ2VzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbn1cblxuY2xhc3MgUGlwZWxpbmVGaWVsZHMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0QWxsKHBpcGVLZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2ZpZWxkc2ApO1xuICB9XG4gIGdldE9uZShwaXBlS2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vZmllbGRzLyR7a2V5fWApO1xuICB9XG4gIGNyZWF0ZShwaXBlS2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2ZpZWxkc2AsIGRhdGEpO1xuICB9XG4gIGRlbGV0ZShwaXBlS2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZGVsZXRlKGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vZmllbGRzLyR7a2V5fWApO1xuICB9XG4gIHVwZGF0ZShwaXBlS2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnBvc3QoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9maWVsZHMvJHtkYXRhLmtleX1gLCBkYXRhKTtcbiAgfVxufVxuXG5jbGFzcyBCb3hlcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBGaWVsZHM6IEJveEZpZWxkcztcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gICAgdGhpcy5GaWVsZHMgPSBuZXcgQm94RmllbGRzKHMsIGMpO1xuICB9XG4gIGdldEFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoJ2JveGVzJyk7XG4gIH1cbiAgZ2V0Rm9yUGlwZWxpbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fcy5QaXBlbGluZXMuZ2V0Qm94ZXMoa2V5KTtcbiAgfVxuICBnZXRPbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX1gKTtcbiAgfVxuICBjcmVhdGUocGlwZUtleSwgZGF0YSkge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2JveGVzYCwgZGF0YSk7XG4gIH1cbiAgZGVsZXRlKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZGVsZXRlKGFldSBgYm94ZXMvJHtrZXl9YCk7XG4gIH1cbiAgdXBkYXRlKGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnBvc3QoYWV1IGBib3hlcy8ke2RhdGEua2V5fWAsIGRhdGEpO1xuICB9XG4gIGdldEZpZWxkcyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYGJveGVzLyR7a2V5fS9maWVsZHNgKTtcbiAgfVxuICBnZXRSZW1pbmRlcnMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vcmVtaW5kZXJzYCk7XG4gIH1cbiAgZ2V0Q29tbWVudHMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vY29tbWVudHNgKTtcbiAgfVxuICAvLyBkZXByZWNhdGVkIG1ldGhvZFxuICBjcmVhdGVDb21tZW50KGtleTogc3RyaW5nLCBkYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucHV0KGFldSBgYm94ZXMvJHtrZXl9L2NvbW1lbnRzYCwgZGF0YSk7XG4gIH1cbiAgcG9zdENvbW1lbnQoa2V5OiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dChhZXUgYGJveGVzLyR7a2V5fS9jb21tZW50c2AsIHttZXNzYWdlfSk7XG4gIH1cbiAgZ2V0RmlsZXMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vZmlsZXNgKTtcbiAgfVxuICBnZXRUaHJlYWRzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtrZXl9L3RocmVhZHNgKTtcbiAgfVxuICBnZXRGZWVkKGtleTogc3RyaW5nLCBkZXRhaWxMZXZlbDogP3N0cmluZykge1xuICAgIGxldCBxcyA9ICcnO1xuICAgIGlmIChkZXRhaWxMZXZlbCkge1xuICAgICAgcXMgKz0gJz8nICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHtkZXRhaWxMZXZlbH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vbmV3c2ZlZWRgICsgcXMpO1xuICB9XG59XG5cbmNsYXNzIEJveEZpZWxkcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBjb25zdHJ1Y3RvcihzOiBTdHJlYWssIGM6IENvbm5IZWxwZXIpIHtcbiAgICB0aGlzLl9zID0gcztcbiAgICB0aGlzLl9jID0gYztcbiAgfVxuICBnZXRGb3JCb3goa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fcy5Cb3hlcy5nZXRGaWVsZHMoa2V5KTtcbiAgfVxuICBnZXRPbmUoYm94S2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtib3hLZXl9L2ZpZWxkcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUoYm94S2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnBvc3QoYWV1IGBib3hlcy8ke2JveEtleX0vZmllbGRzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbn1cblxuY2xhc3MgRmlsZXMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0Rm9yQm94KGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3MuQm94ZXMuZ2V0RmlsZXMoa2V5KTtcbiAgfVxuICBnZXRPbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBmaWxlcy8ke2tleX1gKTtcbiAgfVxuICBnZXRDb250ZW50cyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldE5vUGFyc2UoYWV1IGBmaWxlcy8ke2tleX0vY29udGVudHNgKTtcbiAgfVxufVxuXG5jbGFzcyBUaHJlYWRzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICB9XG4gIGdldEZvckJveChib3hLZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9zLkJveGVzLmdldFRocmVhZHMoYm94S2V5KTtcbiAgfVxuICBnZXRPbmUodGhyZWFkS2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGB0aHJlYWRzLyR7dGhyZWFkS2V5fWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYWsge1xuICBfYzogQ29ubkhlbHBlcjtcbiAgTWU6IE1lO1xuICBQaXBlbGluZXM6IFBpcGVsaW5lcztcbiAgQm94ZXM6IEJveGVzO1xuICBGaWxlczogRmlsZXM7XG4gIFRocmVhZHM6IFRocmVhZHM7XG5cbiAgY29uc3RydWN0b3IoYXV0aEtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYyA9IG5ldyBDb25uSGVscGVyKGF1dGhLZXkpO1xuICAgIHRoaXMuTWUgPSBuZXcgTWUodGhpcywgdGhpcy5fYyk7XG4gICAgdGhpcy5QaXBlbGluZXMgPSBuZXcgUGlwZWxpbmVzKHRoaXMsIHRoaXMuX2MpO1xuICAgIHRoaXMuQm94ZXMgPSBuZXcgQm94ZXModGhpcywgdGhpcy5fYyk7XG4gICAgdGhpcy5GaWxlcyA9IG5ldyBGaWxlcyh0aGlzLCB0aGlzLl9jKTtcbiAgICB0aGlzLlRocmVhZHMgPSBuZXcgVGhyZWFkcyh0aGlzLCB0aGlzLl9jKTtcbiAgfVxuXG4gIHNlYXJjaChxdWVyeTogc3RyaW5nKTogUHJvbWlzZSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgc2VhcmNoP3F1ZXJ5PSR7cXVlcnl9YCk7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJDb25uSGVscGVyIiwiYXV0aEtleSIsIl9hdXRoS2V5IiwibWV0aG9kIiwicGF0aCIsImhlYWRlcnMiLCJlbmNvZGluZyIsInByZWZpeCIsImluZGV4T2YiLCJob3N0IiwiYXV0aCIsInJlc3BvbnNlIiwicmVzb2x2ZSIsInJlamVjdCIsInN0cnMiLCJvbiIsImNodW5rIiwicHVzaCIsInN0ciIsImpvaW4iLCJzdGF0dXNDb2RlIiwiSlNPTiIsInBhcnNlIiwianNvbiIsImVycm9yTWVzc2FnZSIsImVycm9yIiwiZXJyIiwiRXJyb3IiLCJjaHVua3MiLCJidWYiLCJCdWZmZXIiLCJjb25jYXQiLCJvcHRzIiwiX2dldFJlcXVlc3RPcHRpb25zIiwicmVxdWVzdCIsIl9wYXJzZVJlc3BvbnNlIiwicmVzIiwiZW5kIiwidW5kZWZpbmVkIiwiX3BsYWluUmVzcG9uc2UiLCJkYXRhIiwiZHN0ciIsInN0cmluZ2lmeSIsInNlbmQiLCJsZW5ndGgiLCJ3cml0ZSIsIk1lIiwicyIsImMiLCJfcyIsIl9jIiwiZ2V0IiwiUGlwZWxpbmVzIiwiU3RhZ2VzIiwiUGlwZWxpbmVTdGFnZXMiLCJGaWVsZHMiLCJQaXBlbGluZUZpZWxkcyIsImtleSIsInN0YWdlS2V5IiwicHV0IiwiZGVsZXRlIiwicG9zdCIsImRldGFpbExldmVsIiwicXMiLCJwaXBlS2V5IiwiQm94ZXMiLCJCb3hGaWVsZHMiLCJnZXRCb3hlcyIsIm1lc3NhZ2UiLCJnZXRGaWVsZHMiLCJib3hLZXkiLCJGaWxlcyIsImdldEZpbGVzIiwiZ2V0Tm9QYXJzZSIsIlRocmVhZHMiLCJnZXRUaHJlYWRzIiwidGhyZWFkS2V5IiwiVGFza3MiLCJnZXRUYXNrcyIsIlN0cmVhayIsInF1ZXJ5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUE7Ozs7OztJQUVN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QUFLVSxFQUFMLENBQVFXLElBQVIsaURBQTBCUyxNQUExQixHQUEwQzlCLElBQTFDLENBQVA7QUFDRDs7OzJCQUNNaUIsRyxFQUFhakIsSSxFQUFjO0FBQ2hDLGFBQU8sS0FBS1UsRUFBTCxDQUFRVyxJQUFSLGlEQUEwQkosR0FBMUIsR0FBaUNqQixJQUFqQyxDQUFQO0FBQ0Q7Ozs0QkFDTWlCLEcsRUFBYTtBQUNsQixhQUFPLEtBQUtQLEVBQUwsQ0FBUVUsTUFBUixpREFBNEJILEdBQTVCLEVBQVA7QUFDRDs7Ozs7SUFHVXNCLE0sV0FBQUEsTTtBQVNYLGtCQUFZOUUsT0FBWixFQUE2QjtBQUFBOztBQUMzQixTQUFLaUQsRUFBTCxHQUFVLElBQUlsRCxVQUFKLENBQWVDLE9BQWYsQ0FBVjtBQUNBLFNBQUs2QyxFQUFMLEdBQVUsSUFBSUEsRUFBSixDQUFPLElBQVAsRUFBYSxLQUFLSSxFQUFsQixDQUFWO0FBQ0EsU0FBS0UsU0FBTCxHQUFpQixJQUFJQSxTQUFKLENBQWMsSUFBZCxFQUFvQixLQUFLRixFQUF6QixDQUFqQjtBQUNBLFNBQUtlLEtBQUwsR0FBYSxJQUFJQSxLQUFKLENBQVUsSUFBVixFQUFnQixLQUFLZixFQUFyQixDQUFiO0FBQ0EsU0FBS3FCLEtBQUwsR0FBYSxJQUFJQSxLQUFKLENBQVUsSUFBVixFQUFnQixLQUFLckIsRUFBckIsQ0FBYjtBQUNBLFNBQUt3QixPQUFMLEdBQWUsSUFBSUEsT0FBSixDQUFZLElBQVosRUFBa0IsS0FBS3hCLEVBQXZCLENBQWY7QUFDQSxTQUFLMkIsS0FBTCxHQUFhLElBQUlBLEtBQUosQ0FBVSxJQUFWLEVBQWdCLEtBQUszQixFQUFyQixDQUFiO0FBQ0Q7Ozs7MkJBRU04QixLLEVBQWdDO0FBQ3JDLGFBQU8sS0FBSzlCLEVBQUwsQ0FBUUMsR0FBUixpREFBZ0M2QixLQUFoQyxFQUFQO0FBQ0QiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0IHF1ZXJ5c3RyaW5nIGZyb20gJ3F1ZXJ5c3RyaW5nJztcblxuaW1wb3J0IGFldSBmcm9tICcuL2F1dG8tZW5jb2RlLXVyaSc7XG5cbmNsYXNzIENvbm5IZWxwZXIge1xuICBfYXV0aEtleTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGF1dGhLZXk6IHN0cmluZykge1xuICAgIHRoaXMuX2F1dGhLZXkgPSBhdXRoS2V5O1xuICB9XG5cbiAgX2dldFJlcXVlc3RPcHRpb25zKG1ldGhvZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGhlYWRlcnM6IE9iamVjdD17fSwgZW5jb2Rpbmc6ID9zdHJpbmc9J3V0ZjgnKTogT2JqZWN0IHtcbiAgICAvLyBCeSBkZWZhdWx0IHdlIHJlcXVlc3QgdGhlIFYxIG9mIHRoZSBBUElcbiAgICBsZXQgcHJlZml4ID0gJy9hcGkvdjEvJztcblxuICAgIC8vIElmIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgYSBUYXNrLCB0aGVuIHVzZSB0aGUgVjIgb2YgdGhlIEFQSVxuICAgIGlmIChwYXRoLmluZGV4T2YoJ3Rhc2tzJykgPiAtMSkgcHJlZml4ID0gJy9hcGkvdjInO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCwgaGVhZGVycywgZW5jb2RpbmcsXG4gICAgICBob3N0OiAnbWFpbGZvb2dhZS5hcHBzcG90LmNvbScsXG4gICAgICBwYXRoOiBwcmVmaXggKyBwYXRoLFxuICAgICAgYXV0aDogdGhpcy5fYXV0aEtleVxuICAgIH07XG4gIH1cblxuICBfcGFyc2VSZXNwb25zZShyZXNwb25zZTogaHR0cHMuSW5jb21pbmdNZXNzYWdlKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3Ryczogc3RyaW5nW10gPSBbXTtcbiAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKGNodW5rOiBzdHJpbmcpID0+IHtcbiAgICAgICAgc3Rycy5wdXNoKGNodW5rKTtcbiAgICAgIH0pO1xuICAgICAgcmVzcG9uc2Uub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBzdHIgPSBzdHJzLmpvaW4oJycpO1xuICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09PSAyMDApIHtcbiAgICAgICAgICAgIHJlc29sdmUoSlNPTi5wYXJzZShzdHIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGpzb247XG4gICAgICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gYFJlc3BvbnNlIGNvZGUgJHtyZXNwb25zZS5zdGF0dXNDb2RlfWA7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICAgICAgICBpZiAoanNvbiAmJiBqc29uLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0ganNvbi5lcnJvcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIC8vIElnbm9yZSBwYXJzZSBlcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVqZWN0KE9iamVjdC5hc3NpZ24oKG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpOiBPYmplY3QpLCB7XG4gICAgICAgICAgICAgIHN0ciwganNvbixcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVyc1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmVzcG9uc2Uub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIF9wbGFpblJlc3BvbnNlKHJlc3BvbnNlOiBodHRwcy5JbmNvbWluZ01lc3NhZ2UpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBjaHVua3M6IEJ1ZmZlcltdID0gW107XG4gICAgICByZXNwb25zZS5vbignZGF0YScsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgIH0pO1xuICAgICAgcmVzcG9uc2Uub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBidWYgPSBCdWZmZXIuY29uY2F0KGNodW5rcyk7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgcmVzb2x2ZShidWYpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgUmVzcG9uc2UgY29kZSAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgICAgIHJlamVjdChPYmplY3QuYXNzaWduKChuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTogT2JqZWN0KSwge1xuICAgICAgICAgICAgICBidWYsXG4gICAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnNcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQocGF0aDogc3RyaW5nKTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdHRVQnLCBwYXRoKTtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0KG9wdHMsIHJlcyA9PiB7XG4gICAgICAgIHJlc29sdmUodGhpcy5fcGFyc2VSZXNwb25zZShyZXMpKTtcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdC5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgcmVxdWVzdC5lbmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldE5vUGFyc2UocGF0aDogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdHRVQnLCBwYXRoLCB1bmRlZmluZWQsIG51bGwpO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wbGFpblJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHV0KHBhdGg6IHN0cmluZywgZGF0YTogT2JqZWN0KTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgZHN0ciA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLl9nZXRSZXF1ZXN0T3B0aW9ucygnUFVUJywgcGF0aCArICc/JyArIGRzdHIpO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wYXJzZVJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLl9nZXRSZXF1ZXN0T3B0aW9ucygnREVMRVRFJywgcGF0aCk7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gaHR0cHMucmVxdWVzdChvcHRzLCByZXMgPT4ge1xuICAgICAgICByZXNvbHZlKHRoaXMuX3BhcnNlUmVzcG9uc2UocmVzKSk7XG4gICAgICB9KTtcbiAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIHJlcXVlc3QuZW5kKCk7XG4gICAgfSk7XG4gIH1cblxuICBwb3N0KHBhdGg6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc2VuZCA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeSh7anNvbjpKU09OLnN0cmluZ2lmeShkYXRhKX0pO1xuICAgICAgY29uc3Qgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdQT1NUJywgcGF0aCwge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICAgICdDb250ZW50LUxlbmd0aCc6IHNlbmQubGVuZ3RoXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0KG9wdHMsIHJlcyA9PiB7XG4gICAgICAgIHJlc29sdmUodGhpcy5fcGFyc2VSZXNwb25zZShyZXMpKTtcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdC53cml0ZShzZW5kKTtcbiAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIHJlcXVlc3QuZW5kKCk7XG4gICAgfSk7XG4gIH1cbn1cblxuY2xhc3MgTWUge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLl9jLmdldCgndXNlcnMvbWUnKTtcbiAgfVxufVxuXG5jbGFzcyBQaXBlbGluZXMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgU3RhZ2VzOiBQaXBlbGluZVN0YWdlcztcbiAgRmllbGRzOiBQaXBlbGluZUZpZWxkcztcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gICAgdGhpcy5TdGFnZXMgPSBuZXcgUGlwZWxpbmVTdGFnZXMocywgYyk7XG4gICAgdGhpcy5GaWVsZHMgPSBuZXcgUGlwZWxpbmVGaWVsZHMocywgYyk7XG4gIH1cbiAgZ2V0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLl9jLmdldCgncGlwZWxpbmVzJyk7XG4gIH1cbiAgZ2V0T25lKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7a2V5fWApO1xuICB9XG4gIGdldEJveGVzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7a2V5fS9ib3hlc2ApO1xuICB9XG4gIGdldEJveGVzSW5TdGFnZSAoa2V5OiBzdHJpbmcsIHN0YWdlS2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBwaXBlbGluZXMvJHtrZXl9L2JveGVzP3N0YWdlS2V5PSR7c3RhZ2VLZXl9YCk7XG4gIH1cbiAgY3JlYXRlKGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dCgncGlwZWxpbmVzJywgZGF0YSk7XG4gIH1cbiAgZGVsZXRlKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZGVsZXRlKGFldSBgcGlwZWxpbmVzLyR7a2V5fWApO1xuICB9XG4gIHVwZGF0ZShkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wb3N0KGFldSBgcGlwZWxpbmVzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbiAgZ2V0RmVlZChrZXk6IHN0cmluZywgZGV0YWlsTGV2ZWw6ID9zdHJpbmcpIHtcbiAgICBsZXQgcXMgPSAnJztcbiAgICBpZiAoZGV0YWlsTGV2ZWwpIHtcbiAgICAgIHFzICs9ICc/JyArIHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeSh7ZGV0YWlsTGV2ZWx9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7a2V5fS9uZXdzZmVlZGAgKyBxcyk7XG4gIH1cbn1cblxuY2xhc3MgUGlwZWxpbmVTdGFnZXMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0QWxsKHBpcGVLZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L3N0YWdlc2ApO1xuICB9XG4gIGdldE9uZShwaXBlS2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vc3RhZ2VzLyR7a2V5fWApO1xuICB9XG4gIGNyZWF0ZShwaXBlS2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L3N0YWdlc2AsIGRhdGEpO1xuICB9XG4gIGRlbGV0ZShwaXBlS2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZGVsZXRlKGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vc3RhZ2VzLyR7a2V5fWApO1xuICB9XG4gIHVwZGF0ZShwaXBlS2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnBvc3QoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9zdGFnZXMvJHtkYXRhLmtleX1gLCBkYXRhKTtcbiAgfVxufVxuXG5jbGFzcyBQaXBlbGluZUZpZWxkcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBjb25zdHJ1Y3RvcihzOiBTdHJlYWssIGM6IENvbm5IZWxwZXIpIHtcbiAgICB0aGlzLl9zID0gcztcbiAgICB0aGlzLl9jID0gYztcbiAgfVxuICBnZXRBbGwocGlwZUtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vZmllbGRzYCk7XG4gIH1cbiAgZ2V0T25lKHBpcGVLZXk6IHN0cmluZywga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9maWVsZHMvJHtrZXl9YCk7XG4gIH1cbiAgY3JlYXRlKHBpcGVLZXk6IHN0cmluZywgZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucHV0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vZmllbGRzYCwgZGF0YSk7XG4gIH1cbiAgZGVsZXRlKHBpcGVLZXk6IHN0cmluZywga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5kZWxldGUoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9maWVsZHMvJHtrZXl9YCk7XG4gIH1cbiAgdXBkYXRlKHBpcGVLZXk6IHN0cmluZywgZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucG9zdChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2ZpZWxkcy8ke2RhdGEua2V5fWAsIGRhdGEpO1xuICB9XG59XG5cbmNsYXNzIEJveGVzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIEZpZWxkczogQm94RmllbGRzO1xuICBjb25zdHJ1Y3RvcihzOiBTdHJlYWssIGM6IENvbm5IZWxwZXIpIHtcbiAgICB0aGlzLl9zID0gcztcbiAgICB0aGlzLl9jID0gYztcbiAgICB0aGlzLkZpZWxkcyA9IG5ldyBCb3hGaWVsZHMocywgYyk7XG4gIH1cbiAgZ2V0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLl9jLmdldCgnYm94ZXMnKTtcbiAgfVxuICBnZXRGb3JQaXBlbGluZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9zLlBpcGVsaW5lcy5nZXRCb3hlcyhrZXkpO1xuICB9XG4gIGdldE9uZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYGJveGVzLyR7a2V5fWApO1xuICB9XG4gIGNyZWF0ZShwaXBlS2V5LCBkYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucHV0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vYm94ZXNgLCBkYXRhKTtcbiAgfVxuICBkZWxldGUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5kZWxldGUoYWV1IGBib3hlcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUoZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucG9zdChhZXUgYGJveGVzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbiAgZ2V0RmllbGRzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtrZXl9L2ZpZWxkc2ApO1xuICB9XG4gIGdldFJlbWluZGVycyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYGJveGVzLyR7a2V5fS9yZW1pbmRlcnNgKTtcbiAgfVxuICBnZXRDb21tZW50cyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYGJveGVzLyR7a2V5fS9jb21tZW50c2ApO1xuICB9XG4gIC8vIGRlcHJlY2F0ZWQgbWV0aG9kXG4gIGNyZWF0ZUNvbW1lbnQoa2V5OiBzdHJpbmcsIGRhdGEpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wdXQoYWV1IGBib3hlcy8ke2tleX0vY29tbWVudHNgLCBkYXRhKTtcbiAgfVxuICBwb3N0Q29tbWVudChrZXk6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucHV0KGFldSBgYm94ZXMvJHtrZXl9L2NvbW1lbnRzYCwge21lc3NhZ2V9KTtcbiAgfVxuICBnZXRGaWxlcyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYGJveGVzLyR7a2V5fS9maWxlc2ApO1xuICB9XG4gIGdldFRocmVhZHMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vdGhyZWFkc2ApO1xuICB9XG4gIGdldEZlZWQoa2V5OiBzdHJpbmcsIGRldGFpbExldmVsOiA/c3RyaW5nKSB7XG4gICAgbGV0IHFzID0gJyc7XG4gICAgaWYgKGRldGFpbExldmVsKSB7XG4gICAgICBxcyArPSAnPycgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkoe2RldGFpbExldmVsfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYGJveGVzLyR7a2V5fS9uZXdzZmVlZGAgKyBxcyk7XG4gIH1cbiAgZ2V0VGFza3Moa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vdGFza3NgKTtcbiAgfVxufVxuXG5jbGFzcyBCb3hGaWVsZHMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0Rm9yQm94KGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3MuQm94ZXMuZ2V0RmllbGRzKGtleSk7XG4gIH1cbiAgZ2V0T25lKGJveEtleTogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYGJveGVzLyR7Ym94S2V5fS9maWVsZHMvJHtrZXl9YCk7XG4gIH1cbiAgdXBkYXRlKGJveEtleTogc3RyaW5nLCBkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wb3N0KGFldSBgYm94ZXMvJHtib3hLZXl9L2ZpZWxkcy8ke2RhdGEua2V5fWAsIGRhdGEpO1xuICB9XG59XG5cbmNsYXNzIEZpbGVzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICB9XG4gIGdldEZvckJveChrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9zLkJveGVzLmdldEZpbGVzKGtleSk7XG4gIH1cbiAgZ2V0T25lKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgZmlsZXMvJHtrZXl9YCk7XG4gIH1cbiAgZ2V0Q29udGVudHMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXROb1BhcnNlKGFldSBgZmlsZXMvJHtrZXl9L2NvbnRlbnRzYCk7XG4gIH1cbn1cblxuY2xhc3MgVGhyZWFkcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBjb25zdHJ1Y3RvcihzOiBTdHJlYWssIGM6IENvbm5IZWxwZXIpIHtcbiAgICB0aGlzLl9zID0gcztcbiAgICB0aGlzLl9jID0gYztcbiAgfVxuICBnZXRGb3JCb3goYm94S2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fcy5Cb3hlcy5nZXRUaHJlYWRzKGJveEtleSk7XG4gIH1cbiAgZ2V0T25lKHRocmVhZEtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgdGhyZWFkcy8ke3RocmVhZEtleX1gKTtcbiAgfVxufVxuXG5jbGFzcyBUYXNrcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBjb25zdHJ1Y3RvcihzOiBTdHJlYWssIGM6IENvbm5IZWxwZXIpIHtcbiAgICB0aGlzLl9zID0gcztcbiAgICB0aGlzLl9jID0gYztcbiAgfVxuICBnZXRGb3JCb3goYm94S2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fcy5Cb3hlcy5nZXRUYXNrcyhib3hLZXkpO1xuICB9XG4gIGdldE9uZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHRhc2tzLyR7a2V5fWApO1xuICB9XG4gIGNyZWF0ZShib3hLZXk6IHN0cmluZywgZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucG9zdChhZXUgYGJveGVzLyR7Ym94S2V5fS90YXNrc2AsIGRhdGEpO1xuICB9XG4gIHVwZGF0ZShrZXk6IHN0cmluZywgZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucG9zdChhZXUgYHRhc2tzLyR7a2V5fWAsIGRhdGEpO1xuICB9XG4gIGRlbGV0ZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmRlbGV0ZShhZXUgYHRhc2tzLyR7a2V5fWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYWsge1xuICBfYzogQ29ubkhlbHBlcjtcbiAgTWU6IE1lO1xuICBQaXBlbGluZXM6IFBpcGVsaW5lcztcbiAgQm94ZXM6IEJveGVzO1xuICBGaWxlczogRmlsZXM7XG4gIFRocmVhZHM6IFRocmVhZHM7XG4gIFRhc2tzOiBUYXNrcztcblxuICBjb25zdHJ1Y3RvcihhdXRoS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jID0gbmV3IENvbm5IZWxwZXIoYXV0aEtleSk7XG4gICAgdGhpcy5NZSA9IG5ldyBNZSh0aGlzLCB0aGlzLl9jKTtcbiAgICB0aGlzLlBpcGVsaW5lcyA9IG5ldyBQaXBlbGluZXModGhpcywgdGhpcy5fYyk7XG4gICAgdGhpcy5Cb3hlcyA9IG5ldyBCb3hlcyh0aGlzLCB0aGlzLl9jKTtcbiAgICB0aGlzLkZpbGVzID0gbmV3IEZpbGVzKHRoaXMsIHRoaXMuX2MpO1xuICAgIHRoaXMuVGhyZWFkcyA9IG5ldyBUaHJlYWRzKHRoaXMsIHRoaXMuX2MpO1xuICAgIHRoaXMuVGFza3MgPSBuZXcgVGFza3ModGhpcywgdGhpcy5fYyk7XG4gIH1cblxuICBzZWFyY2gocXVlcnk6IHN0cmluZyk6IFByb21pc2U8T2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgc2VhcmNoP3F1ZXJ5PSR7cXVlcnl9YCk7XG4gIH1cbn1cbiJdfQ== |
{ | ||
"name": "streakapi", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "wrapper for the Streak API", | ||
@@ -18,3 +18,4 @@ "keywords": [ | ||
"prepublish": "babel -s inline -d js/ src/ && flow-copy-source -v src js", | ||
"test": "npm run lint && babel-node test/prodtest.js", | ||
"test": "npm run lint && npm run flow_check && babel-node test/prodtest.js", | ||
"flow_check": "flow check", | ||
"lint": "eslint .", | ||
@@ -24,6 +25,13 @@ "lint-fix": "eslint . --fix" | ||
"main": "js/index.js", | ||
"repository": "https://github.com/StreakYC/node-api-wrapper", | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/StreakYC/node-api-wrapper.git" | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/StreakYC/node-api-wrapper/issues" | ||
}, | ||
"homepage": "https://github.com/StreakYC/node-api-wrapper#readme", | ||
"devDependencies": { | ||
"babel-cli": "^6.7.5", | ||
"babel-eslint": "^6.0.2", | ||
"babel-eslint": "^7.1.1", | ||
"babel-plugin-transform-flow-strip-types": "^6.7.0", | ||
@@ -34,3 +42,4 @@ "babel-plugin-transform-runtime": "^6.7.5", | ||
"babel-register": "^6.7.2", | ||
"eslint": "^2.7.0", | ||
"eslint": "^3.11.1", | ||
"flow-bin": "^0.36.0", | ||
"flow-copy-source": "^1.0.2" | ||
@@ -37,0 +46,0 @@ }, |
# NodeJS Wrapper for Streak API | ||
[![Circle CI](https://circleci.com/gh/StreakYC/node-api-wrapper.svg?style=shield)](https://circleci.com/gh/StreakYC/node-api-wrapper) | ||
[![npm version](https://badge.fury.io/js/streakapi.svg)](https://badge.fury.io/js/streakapi) | ||
NodeJS package that acts as a thin wrapper over the Streak API (https://www.streak.com/api). | ||
@@ -75,2 +78,9 @@ | ||
//tasks | ||
streak.Tasks.getForBox(boxKey); | ||
streak.Tasks.getOne(taskKey); | ||
streak.Tasks.create(boxKey, data); | ||
streak.Tasks.delete(taskKey); | ||
streak.Tasks.update(taskKey, data); | ||
//search | ||
@@ -77,0 +87,0 @@ streak.search(query); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
68422
603
0
0
93
0
10