Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

streakapi

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

streakapi - npm Package Compare versions

Comparing version 1.0.2 to 1.1.0

.eslintignore

12

js/auto-encode-uri.js

@@ -1,11 +0,7 @@

//jshint ignore:start
'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = autoEncodeURI;
exports.default = autoEncodeURI;
function autoEncodeURI(templateParts) {

@@ -26,4 +22,2 @@ var parts = new Array(templateParts.length * 2 - 1);

}
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRvLWVuY29kZS11cmkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBR3dCLGFBQWE7O0FBQXRCLFNBQVMsYUFBYSxDQUFDLGFBQXVCLEVBQTRCO0FBQ3ZGLE1BQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hELE9BQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7O29DQUZvQyxNQUFNO0FBQU4sVUFBTTs7O0FBR3RFLE9BQUssSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDM0MsUUFBSSxLQUFhLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLFNBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLFNBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7R0FDbkM7QUFDRCxTQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDdkIiLCJmaWxlIjoiYXV0by1lbmNvZGUtdXJpLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cbi8vanNoaW50IGlnbm9yZTpzdGFydFxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhdXRvRW5jb2RlVVJJKHRlbXBsYXRlUGFydHM6IHN0cmluZ1tdLCAuLi52YWx1ZXM6IGFueVtdKTogc3RyaW5nIHtcbiAgdmFyIHBhcnRzID0gbmV3IEFycmF5KHRlbXBsYXRlUGFydHMubGVuZ3RoKjItMSk7XG4gIHBhcnRzWzBdID0gdGVtcGxhdGVQYXJ0c1swXTtcbiAgZm9yICh2YXIgaT0wLCBsZW49dmFsdWVzLmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgIHZhciB2YWx1ZTogc3RyaW5nID0gdmFsdWVzW2ldO1xuICAgIHBhcnRzWzIqaSsxXSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgcGFydHNbMippKzJdID0gdGVtcGxhdGVQYXJ0c1tpKzFdO1xuICB9XG4gIHJldHVybiBwYXJ0cy5qb2luKCcnKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRvLWVuY29kZS11cmkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBRXdCO0FBQVQsU0FBUyxhQUFULENBQXVCLGFBQXZCLEVBQTBFO0FBQ3ZGLE1BQU0sUUFBUSxJQUFJLEtBQUosQ0FBVSxjQUFjLE1BQWQsR0FBcUIsQ0FBckIsR0FBdUIsQ0FBdkIsQ0FBbEIsQ0FEaUY7QUFFdkYsUUFBTSxDQUFOLElBQVcsY0FBYyxDQUFkLENBQVgsQ0FGdUY7O29DQUF2Qjs7R0FBdUI7O0FBR3ZGLE9BQUssSUFBSSxJQUFFLENBQUYsRUFBSyxNQUFJLE9BQU8sTUFBUCxFQUFlLElBQUUsR0FBRixFQUFPLEdBQXhDLEVBQTZDO0FBQzNDLFFBQU0sUUFBZ0IsT0FBTyxDQUFQLENBQWhCLENBRHFDO0FBRTNDLFVBQU0sSUFBRSxDQUFGLEdBQUksQ0FBSixDQUFOLEdBQWUsbUJBQW1CLEtBQW5CLENBQWYsQ0FGMkM7QUFHM0MsVUFBTSxJQUFFLENBQUYsR0FBSSxDQUFKLENBQU4sR0FBZSxjQUFjLElBQUUsQ0FBRixDQUE3QixDQUgyQztHQUE3QztBQUtBLFNBQU8sTUFBTSxJQUFOLENBQVcsRUFBWCxDQUFQLENBUnVGO0NBQTFFIiwiZmlsZSI6ImF1dG8tZW5jb2RlLXVyaS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGF1dG9FbmNvZGVVUkkodGVtcGxhdGVQYXJ0czogc3RyaW5nW10sIC4uLnZhbHVlczogYW55W10pOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0cyA9IG5ldyBBcnJheSh0ZW1wbGF0ZVBhcnRzLmxlbmd0aCoyLTEpO1xuICBwYXJ0c1swXSA9IHRlbXBsYXRlUGFydHNbMF07XG4gIGZvciAobGV0IGk9MCwgbGVuPXZhbHVlcy5sZW5ndGg7IGk8bGVuOyBpKyspIHtcbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdmFsdWVzW2ldO1xuICAgIHBhcnRzWzIqaSsxXSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgcGFydHNbMippKzJdID0gdGVtcGxhdGVQYXJ0c1tpKzFdO1xuICB9XG4gIHJldHVybiBwYXJ0cy5qb2luKCcnKTtcbn1cbiJdfQ==
'use strict';
var _taggedTemplateLiteral = require('babel-runtime/helpers/tagged-template-literal')['default'];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Streak = undefined;
var _createClass = require('babel-runtime/helpers/create-class')['default'];
var _taggedTemplateLiteral2 = require('babel-runtime/helpers/taggedTemplateLiteral');
var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
var _taggedTemplateLiteral3 = _interopRequireDefault(_taggedTemplateLiteral2);
var _Promise = require('babel-runtime/core-js/promise')['default'];
var _stringify = require('babel-runtime/core-js/json/stringify');
var _Object$assign = require('babel-runtime/core-js/object/assign')['default'];
var _stringify2 = _interopRequireDefault(_stringify);
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
var _assign = require('babel-runtime/core-js/object/assign');
Object.defineProperty(exports, '__esModule', {
value: true
});
var _assign2 = _interopRequireDefault(_assign);
var _templateObject = _taggedTemplateLiteral(['pipelines/', ''], ['pipelines/', '']),
_templateObject2 = _taggedTemplateLiteral(['pipelines/', '/boxes'], ['pipelines/', '/boxes']),
_templateObject3 = _taggedTemplateLiteral(['pipelines/', '/boxes?stageKey=', ''], ['pipelines/', '/boxes?stageKey=', '']),
_templateObject4 = _taggedTemplateLiteral(['pipelines/', '/newsfeed'], ['pipelines/', '/newsfeed']),
_templateObject5 = _taggedTemplateLiteral(['pipelines/', '/stages'], ['pipelines/', '/stages']),
_templateObject6 = _taggedTemplateLiteral(['pipelines/', '/stages/', ''], ['pipelines/', '/stages/', '']),
_templateObject7 = _taggedTemplateLiteral(['pipelines/', '/fields'], ['pipelines/', '/fields']),
_templateObject8 = _taggedTemplateLiteral(['pipelines/', '/fields/', ''], ['pipelines/', '/fields/', '']),
_templateObject9 = _taggedTemplateLiteral(['boxes/', ''], ['boxes/', '']),
_templateObject10 = _taggedTemplateLiteral(['boxes/', '/fields'], ['boxes/', '/fields']),
_templateObject11 = _taggedTemplateLiteral(['boxes/', '/reminders'], ['boxes/', '/reminders']),
_templateObject12 = _taggedTemplateLiteral(['boxes/', '/comments'], ['boxes/', '/comments']),
_templateObject13 = _taggedTemplateLiteral(['boxes/', '/files'], ['boxes/', '/files']),
_templateObject14 = _taggedTemplateLiteral(['boxes/', '/newsfeed'], ['boxes/', '/newsfeed']),
_templateObject15 = _taggedTemplateLiteral(['boxes/', '/fields/', ''], ['boxes/', '/fields/', '']),
_templateObject16 = _taggedTemplateLiteral(['files/', ''], ['files/', '']),
_templateObject17 = _taggedTemplateLiteral(['files/', '/contents'], ['files/', '/contents']),
_templateObject18 = _taggedTemplateLiteral(['search?query=', ''], ['search?query=', '']);
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _templateObject = (0, _taggedTemplateLiteral3.default)(['pipelines/', ''], ['pipelines/', '']),
_templateObject2 = (0, _taggedTemplateLiteral3.default)(['pipelines/', '/boxes'], ['pipelines/', '/boxes']),
_templateObject3 = (0, _taggedTemplateLiteral3.default)(['pipelines/', '/boxes?stageKey=', ''], ['pipelines/', '/boxes?stageKey=', '']),
_templateObject4 = (0, _taggedTemplateLiteral3.default)(['pipelines/', '/newsfeed'], ['pipelines/', '/newsfeed']),
_templateObject5 = (0, _taggedTemplateLiteral3.default)(['pipelines/', '/stages'], ['pipelines/', '/stages']),
_templateObject6 = (0, _taggedTemplateLiteral3.default)(['pipelines/', '/stages/', ''], ['pipelines/', '/stages/', '']),
_templateObject7 = (0, _taggedTemplateLiteral3.default)(['pipelines/', '/fields'], ['pipelines/', '/fields']),
_templateObject8 = (0, _taggedTemplateLiteral3.default)(['pipelines/', '/fields/', ''], ['pipelines/', '/fields/', '']),
_templateObject9 = (0, _taggedTemplateLiteral3.default)(['boxes/', ''], ['boxes/', '']),
_templateObject10 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/fields'], ['boxes/', '/fields']),
_templateObject11 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/reminders'], ['boxes/', '/reminders']),
_templateObject12 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/comments'], ['boxes/', '/comments']),
_templateObject13 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/files'], ['boxes/', '/files']),
_templateObject14 = (0, _taggedTemplateLiteral3.default)(['boxes/', '/threads'], ['boxes/', '/threads']),
_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=', '']);
var _https = require('https');
var _https2 = _interopRequireDefault(_https);
var _querystring = require('querystring');
var _querystring2 = _interopRequireDefault(_querystring);
var _autoEncodeUri = require('./auto-encode-uri');

@@ -42,8 +65,7 @@

var https /* flow https defs seem broken */ = require('https');
var querystring = require('querystring');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ConnHelper = (function () {
var ConnHelper = function () {
function ConnHelper(authKey) {
_classCallCheck(this, ConnHelper);
(0, _classCallCheck3.default)(this, ConnHelper);

@@ -53,3 +75,3 @@ this._authKey = authKey;

_createClass(ConnHelper, [{
(0, _createClass3.default)(ConnHelper, [{
key: '_getRequestOptions',

@@ -70,3 +92,3 @@ value: function _getRequestOptions(method, path) {

value: function _parseResponse(response) {
return new _Promise(function (resolve, reject) {
return new _promise2.default(function (resolve, reject) {
var strs = [];

@@ -82,3 +104,3 @@ response.on('data', function (chunk) {

} else {
var json;
var json = void 0;
var errorMessage = 'Response code ' + response.statusCode;

@@ -90,4 +112,6 @@ try {

}
} catch (err) {}
reject(_Object$assign(new Error(errorMessage), {
} catch (err) {
// Ignore parse error
}
reject((0, _assign2.default)(new Error(errorMessage), {
str: str, json: json,

@@ -108,3 +132,3 @@ statusCode: response.statusCode,

value: function _plainResponse(response) {
return new _Promise(function (resolve, reject) {
return new _promise2.default(function (resolve, reject) {
var chunks = [];

@@ -121,3 +145,3 @@ response.on('data', function (chunk) {

var errorMessage = 'Response code ' + response.statusCode;
reject(_Object$assign(new Error(errorMessage), {
reject((0, _assign2.default)(new Error(errorMessage), {
buf: buf,

@@ -140,5 +164,5 @@ statusCode: response.statusCode,

return new _Promise(function (resolve, reject) {
return new _promise2.default(function (resolve, reject) {
var opts = _this._getRequestOptions('GET', path);
var request = https.request(opts, function (res) {
var request = _https2.default.request(opts, function (res) {
resolve(_this._parseResponse(res));

@@ -155,5 +179,5 @@ });

return new _Promise(function (resolve, reject) {
return new _promise2.default(function (resolve, reject) {
var opts = _this2._getRequestOptions('GET', path, undefined, null);
var request = https.request(opts, function (res) {
var request = _https2.default.request(opts, function (res) {
resolve(_this2._plainResponse(res));

@@ -170,6 +194,6 @@ });

return new _Promise(function (resolve, reject) {
var dstr = querystring.stringify(data);
var opts = _this3._getRequestOptions('PUT', path + "?" + dstr);
var request = https.request(opts, function (res) {
return new _promise2.default(function (resolve, reject) {
var dstr = _querystring2.default.stringify(data);
var opts = _this3._getRequestOptions('PUT', path + '?' + dstr);
var request = _https2.default.request(opts, function (res) {
resolve(_this3._parseResponse(res));

@@ -186,5 +210,5 @@ });

return new _Promise(function (resolve, reject) {
return new _promise2.default(function (resolve, reject) {
var opts = _this4._getRequestOptions('DELETE', path);
var request = https.request(opts, function (res) {
var request = _https2.default.request(opts, function (res) {
resolve(_this4._parseResponse(res));

@@ -201,4 +225,4 @@ });

return new _Promise(function (resolve, reject) {
var send = querystring.stringify({ json: JSON.stringify(data) });
return new _promise2.default(function (resolve, reject) {
var send = _querystring2.default.stringify({ json: (0, _stringify2.default)(data) });
var opts = _this5._getRequestOptions('POST', path, {

@@ -208,3 +232,3 @@ 'Content-Type': 'application/x-www-form-urlencoded',

});
var request = https.request(opts, function (res) {
var request = _https2.default.request(opts, function (res) {
resolve(_this5._parseResponse(res));

@@ -218,9 +242,8 @@ });

}]);
return ConnHelper;
})();
}();
var Me = (function () {
var Me = function () {
function Me(s, c) {
_classCallCheck(this, Me);
(0, _classCallCheck3.default)(this, Me);

@@ -231,3 +254,3 @@ this._s = s;

_createClass(Me, [{
(0, _createClass3.default)(Me, [{
key: 'get',

@@ -238,9 +261,8 @@ value: function get() {

}]);
return Me;
})();
}();
var Pipelines = (function () {
var Pipelines = function () {
function Pipelines(s, c) {
_classCallCheck(this, Pipelines);
(0, _classCallCheck3.default)(this, Pipelines);

@@ -253,3 +275,3 @@ this._s = s;

_createClass(Pipelines, [{
(0, _createClass3.default)(Pipelines, [{
key: 'getAll',

@@ -262,3 +284,3 @@ value: function getAll() {

value: function getOne(key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject, key));
}

@@ -268,3 +290,3 @@ }, {

value: function getBoxes(key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject2, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject2, key));
}

@@ -274,3 +296,3 @@ }, {

value: function getBoxesInStage(key, stageKey) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject3, key, stageKey));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject3, key, stageKey));
}

@@ -285,3 +307,3 @@ }, {

value: function _delete(key) {
return this._c['delete']((0, _autoEncodeUri2['default'])(_templateObject, key));
return this._c.delete((0, _autoEncodeUri2.default)(_templateObject, key));
}

@@ -291,3 +313,3 @@ }, {

value: function update(data) {
return this._c.post((0, _autoEncodeUri2['default'])(_templateObject, data.key), data);
return this._c.post((0, _autoEncodeUri2.default)(_templateObject, data.key), data);
}

@@ -297,16 +319,15 @@ }, {

value: function getFeed(key, detailLevel) {
var qs = "";
var qs = '';
if (detailLevel) {
qs += '?' + querystring.stringify({ detailLevel: detailLevel });
qs += '?' + _querystring2.default.stringify({ detailLevel: detailLevel });
}
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject4, key) + qs);
return this._c.get((0, _autoEncodeUri2.default)(_templateObject4, key) + qs);
}
}]);
return Pipelines;
})();
}();
var PipelineStages = (function () {
var PipelineStages = function () {
function PipelineStages(s, c) {
_classCallCheck(this, PipelineStages);
(0, _classCallCheck3.default)(this, PipelineStages);

@@ -317,6 +338,6 @@ this._s = s;

_createClass(PipelineStages, [{
(0, _createClass3.default)(PipelineStages, [{
key: 'getAll',
value: function getAll(pipeKey) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject5, pipeKey));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject5, pipeKey));
}

@@ -326,3 +347,3 @@ }, {

value: function getOne(pipeKey, key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject6, pipeKey, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject6, pipeKey, key));
}

@@ -332,3 +353,3 @@ }, {

value: function create(pipeKey, data) {
return this._c.put((0, _autoEncodeUri2['default'])(_templateObject5, pipeKey), data);
return this._c.put((0, _autoEncodeUri2.default)(_templateObject5, pipeKey), data);
}

@@ -338,3 +359,3 @@ }, {

value: function _delete(pipeKey, key) {
return this._c['delete']((0, _autoEncodeUri2['default'])(_templateObject6, pipeKey, key));
return this._c.delete((0, _autoEncodeUri2.default)(_templateObject6, pipeKey, key));
}

@@ -344,12 +365,11 @@ }, {

value: function update(pipeKey, data) {
return this._c.post((0, _autoEncodeUri2['default'])(_templateObject6, pipeKey, data.key), data);
return this._c.post((0, _autoEncodeUri2.default)(_templateObject6, pipeKey, data.key), data);
}
}]);
return PipelineStages;
})();
}();
var PipelineFields = (function () {
var PipelineFields = function () {
function PipelineFields(s, c) {
_classCallCheck(this, PipelineFields);
(0, _classCallCheck3.default)(this, PipelineFields);

@@ -360,6 +380,6 @@ this._s = s;

_createClass(PipelineFields, [{
(0, _createClass3.default)(PipelineFields, [{
key: 'getAll',
value: function getAll(pipeKey) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject7, pipeKey));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject7, pipeKey));
}

@@ -369,3 +389,3 @@ }, {

value: function getOne(pipeKey, key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject8, pipeKey, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject8, pipeKey, key));
}

@@ -375,3 +395,3 @@ }, {

value: function create(pipeKey, data) {
return this._c.put((0, _autoEncodeUri2['default'])(_templateObject7, pipeKey), data);
return this._c.put((0, _autoEncodeUri2.default)(_templateObject7, pipeKey), data);
}

@@ -381,3 +401,3 @@ }, {

value: function _delete(pipeKey, key) {
return this._c['delete']((0, _autoEncodeUri2['default'])(_templateObject8, pipeKey, key));
return this._c.delete((0, _autoEncodeUri2.default)(_templateObject8, pipeKey, key));
}

@@ -387,12 +407,11 @@ }, {

value: function update(pipeKey, data) {
return this._c.post((0, _autoEncodeUri2['default'])(_templateObject8, pipeKey, data.key), data);
return this._c.post((0, _autoEncodeUri2.default)(_templateObject8, pipeKey, data.key), data);
}
}]);
return PipelineFields;
})();
}();
var Boxes = (function () {
var Boxes = function () {
function Boxes(s, c) {
_classCallCheck(this, Boxes);
(0, _classCallCheck3.default)(this, Boxes);

@@ -404,3 +423,3 @@ this._s = s;

_createClass(Boxes, [{
(0, _createClass3.default)(Boxes, [{
key: 'getAll',

@@ -418,3 +437,3 @@ value: function getAll() {

value: function getOne(key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject9, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject9, key));
}

@@ -424,3 +443,3 @@ }, {

value: function create(pipeKey, data) {
return this._c.put((0, _autoEncodeUri2['default'])(_templateObject2, pipeKey), data);
return this._c.put((0, _autoEncodeUri2.default)(_templateObject2, pipeKey), data);
}

@@ -430,3 +449,3 @@ }, {

value: function _delete(key) {
return this._c['delete']((0, _autoEncodeUri2['default'])(_templateObject9, key));
return this._c.delete((0, _autoEncodeUri2.default)(_templateObject9, key));
}

@@ -436,3 +455,3 @@ }, {

value: function update(data) {
return this._c.post((0, _autoEncodeUri2['default'])(_templateObject9, data.key), data);
return this._c.post((0, _autoEncodeUri2.default)(_templateObject9, data.key), data);
}

@@ -442,3 +461,3 @@ }, {

value: function getFields(key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject10, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject10, key));
}

@@ -448,3 +467,3 @@ }, {

value: function getReminders(key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject11, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject11, key));
}

@@ -454,31 +473,42 @@ }, {

value: function getComments(key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject12, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject12, key));
}
// deprecated method
}, {
key: 'createComment',
value: function createComment(key, data) {
return this._c.put((0, _autoEncodeUri2['default'])(_templateObject12, key), data);
return this._c.put((0, _autoEncodeUri2.default)(_templateObject12, key), data);
}
}, {
key: 'postComment',
value: function postComment(key, message) {
return this._c.put((0, _autoEncodeUri2.default)(_templateObject12, key), { message: message });
}
}, {
key: 'getFiles',
value: function getFiles(key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject13, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject13, key));
}
}, {
key: 'getThreads',
value: function getThreads(key) {
return this._c.get((0, _autoEncodeUri2.default)(_templateObject14, key));
}
}, {
key: 'getFeed',
value: function getFeed(key, detailLevel) {
var qs = "";
var qs = '';
if (detailLevel) {
qs += '?' + querystring.stringify({ detailLevel: detailLevel });
qs += '?' + _querystring2.default.stringify({ detailLevel: detailLevel });
}
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject14, key) + qs);
return this._c.get((0, _autoEncodeUri2.default)(_templateObject15, key) + qs);
}
}]);
return Boxes;
})();
}();
var BoxFields = (function () {
var BoxFields = function () {
function BoxFields(s, c) {
_classCallCheck(this, BoxFields);
(0, _classCallCheck3.default)(this, BoxFields);

@@ -489,3 +519,3 @@ this._s = s;

_createClass(BoxFields, [{
(0, _createClass3.default)(BoxFields, [{
key: 'getForBox',

@@ -498,3 +528,3 @@ value: function getForBox(key) {

value: function getOne(boxKey, key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject15, boxKey, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject16, boxKey, key));
}

@@ -504,12 +534,11 @@ }, {

value: function update(boxKey, data) {
return this._c.post((0, _autoEncodeUri2['default'])(_templateObject15, boxKey, data.key), data);
return this._c.post((0, _autoEncodeUri2.default)(_templateObject16, boxKey, data.key), data);
}
}]);
return BoxFields;
})();
}();
var Files = (function () {
var Files = function () {
function Files(s, c) {
_classCallCheck(this, Files);
(0, _classCallCheck3.default)(this, Files);

@@ -520,3 +549,3 @@ this._s = s;

_createClass(Files, [{
(0, _createClass3.default)(Files, [{
key: 'getForBox',

@@ -529,3 +558,3 @@ value: function getForBox(key) {

value: function getOne(key) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject16, key));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject17, key));
}

@@ -535,12 +564,33 @@ }, {

value: function getContents(key) {
return this._c.getNoParse((0, _autoEncodeUri2['default'])(_templateObject17, key));
return this._c.getNoParse((0, _autoEncodeUri2.default)(_templateObject18, key));
}
}]);
return Files;
})();
}();
var Streak = (function () {
var Threads = function () {
function Threads(s, c) {
(0, _classCallCheck3.default)(this, Threads);
this._s = s;
this._c = c;
}
(0, _createClass3.default)(Threads, [{
key: 'getForBox',
value: function getForBox(boxKey) {
return this._s.Boxes.getThreads(boxKey);
}
}, {
key: 'getOne',
value: function getOne(threadKey) {
return this._c.get((0, _autoEncodeUri2.default)(_templateObject19, threadKey));
}
}]);
return Threads;
}();
var Streak = exports.Streak = function () {
function Streak(authKey) {
_classCallCheck(this, Streak);
(0, _classCallCheck3.default)(this, Streak);

@@ -552,17 +602,13 @@ this._c = new ConnHelper(authKey);

this.Files = new Files(this, this._c);
this.Threads = new Threads(this, this._c);
}
_createClass(Streak, [{
(0, _createClass3.default)(Streak, [{
key: 'search',
value: function search(query) {
return this._c.get((0, _autoEncodeUri2['default'])(_templateObject18, query));
return this._c.get((0, _autoEncodeUri2.default)(_templateObject20, query));
}
}]);
return Streak;
})();
exports.Streak = Streak;
//jshint ignore:start
//# sourceMappingURL=data:application/json;base64,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U0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDOUMsUUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RDLFFBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztHQUN2Qzs7ZUFiVSxNQUFNOztXQWVYLGdCQUFDLEtBQWEsRUFBVztBQUM3QixhQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxvREFBcUIsS0FBSyxFQUFHLENBQUM7S0FDakQ7OztTQWpCVSxNQUFNIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cbi8vanNoaW50IGlnbm9yZTpzdGFydFxuXG52YXIgaHR0cHM6IGFueS8qIGZsb3cgaHR0cHMgZGVmcyBzZWVtIGJyb2tlbiAqLyA9IHJlcXVpcmUoJ2h0dHBzJyk7XG52YXIgcXVlcnlzdHJpbmcgPSByZXF1aXJlKCdxdWVyeXN0cmluZycpO1xuXG5pbXBvcnQgYWV1IGZyb20gJy4vYXV0by1lbmNvZGUtdXJpJztcblxuY2xhc3MgQ29ubkhlbHBlciB7XG4gIF9hdXRoS2V5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoYXV0aEtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYXV0aEtleSA9IGF1dGhLZXk7XG4gIH1cblxuICBfZ2V0UmVxdWVzdE9wdGlvbnMobWV0aG9kOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgaGVhZGVyczogT2JqZWN0PXt9LCBlbmNvZGluZzogP3N0cmluZz0ndXRmOCcpOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICBtZXRob2QsIGhlYWRlcnMsIGVuY29kaW5nLFxuICAgICAgaG9zdDogJ21haWxmb29nYWUuYXBwc3BvdC5jb20nLFxuICAgICAgcGF0aDogJy9hcGkvdjEvJyArIHBhdGgsXG4gICAgICBhdXRoOiB0aGlzLl9hdXRoS2V5XG4gICAgfTtcbiAgfVxuXG4gIF9wYXJzZVJlc3BvbnNlKHJlc3BvbnNlOiBodHRwcy5JbmNvbWluZ01lc3NhZ2UpOiBQcm9taXNlIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdmFyIHN0cnM6IHN0cmluZ1tdID0gW107XG4gICAgICByZXNwb25zZS5vbignZGF0YScsIChjaHVuazogc3RyaW5nKSA9PiB7XG4gICAgICAgIHN0cnMucHVzaChjaHVuayk7XG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHN0ciA9IHN0cnMuam9pbignJyk7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgcmVzb2x2ZShKU09OLnBhcnNlKHN0cikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIganNvbjtcbiAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSBgUmVzcG9uc2UgY29kZSAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgICAgICAgIGlmIChqc29uICYmIGpzb24uZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBqc29uLmVycm9yO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoKGVycikge31cbiAgICAgICAgICAgIHJlamVjdChPYmplY3QuYXNzaWduKChuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTogT2JqZWN0KSwge1xuICAgICAgICAgICAgICBzdHIsIGpzb24sXG4gICAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnNcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2goZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmVzcG9uc2Uub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIF9wbGFpblJlc3BvbnNlKHJlc3BvbnNlOiBodHRwcy5JbmNvbWluZ01lc3NhZ2UpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB2YXIgY2h1bmtzOiBCdWZmZXJbXSA9IFtdO1xuICAgICAgcmVzcG9uc2Uub24oJ2RhdGEnLCAoY2h1bms6IEJ1ZmZlcikgPT4ge1xuICAgICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlci5jb25jYXQoY2h1bmtzKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XG4gICAgICAgICAgICByZXNvbHZlKGJ1Zik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSBgUmVzcG9uc2UgY29kZSAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgICAgIHJlamVjdChPYmplY3QuYXNzaWduKChuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTogT2JqZWN0KSwge1xuICAgICAgICAgICAgICBidWYsXG4gICAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnNcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2goZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmVzcG9uc2Uub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldChwYXRoOiBzdHJpbmcpOiBQcm9taXNlIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdmFyIG9wdHMgPSB0aGlzLl9nZXRSZXF1ZXN0T3B0aW9ucygnR0VUJywgcGF0aCk7XG4gICAgICB2YXIgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wYXJzZVJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Tm9QYXJzZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB2YXIgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdHRVQnLCBwYXRoLCB1bmRlZmluZWQsIG51bGwpO1xuICAgICAgdmFyIHJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0KG9wdHMsIHJlcyA9PiB7XG4gICAgICAgIHJlc29sdmUodGhpcy5fcGxhaW5SZXNwb25zZShyZXMpKTtcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdC5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgcmVxdWVzdC5lbmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1dChwYXRoOiBzdHJpbmcsIGRhdGE6IE9iamVjdCk6IFByb21pc2U8T2JqZWN0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHZhciBkc3RyID0gcXVlcnlzdHJpbmcuc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgdmFyIG9wdHMgPSB0aGlzLl9nZXRSZXF1ZXN0T3B0aW9ucygnUFVUJywgcGF0aCArIFwiP1wiICsgZHN0cik7XG4gICAgICB2YXIgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wYXJzZVJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IFByb21pc2Uge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB2YXIgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdERUxFVEUnLCBwYXRoKTtcbiAgICAgIHZhciByZXF1ZXN0ID0gaHR0cHMucmVxdWVzdChvcHRzLCByZXMgPT4ge1xuICAgICAgICByZXNvbHZlKHRoaXMuX3BhcnNlUmVzcG9uc2UocmVzKSk7XG4gICAgICB9KTtcbiAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIHJlcXVlc3QuZW5kKCk7XG4gICAgfSk7XG4gIH1cblxuICBwb3N0KHBhdGg6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdmFyIHNlbmQgPSBxdWVyeXN0cmluZy5zdHJpbmdpZnkoe2pzb246SlNPTi5zdHJpbmdpZnkoZGF0YSl9KTtcbiAgICAgIHZhciBvcHRzID0gdGhpcy5fZ2V0UmVxdWVzdE9wdGlvbnMoJ1BPU1QnLCBwYXRoLCB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoJzogc2VuZC5sZW5ndGhcbiAgICAgIH0pO1xuICAgICAgdmFyIHJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0KG9wdHMsIHJlcyA9PiB7XG4gICAgICAgIHJlc29sdmUodGhpcy5fcGFyc2VSZXNwb25zZShyZXMpKTtcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdC53cml0ZShzZW5kKTtcbiAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIHJlcXVlc3QuZW5kKCk7XG4gICAgfSk7XG4gIH1cbn1cblxuY2xhc3MgTWUge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLl9jLmdldCgndXNlcnMvbWUnKTtcbiAgfVxufVxuXG5jbGFzcyBQaXBlbGluZXMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgU3RhZ2VzOiBQaXBlbGluZVN0YWdlcztcbiAgRmllbGRzOiBQaXBlbGluZUZpZWxkcztcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gICAgdGhpcy5TdGFnZXMgPSBuZXcgUGlwZWxpbmVTdGFnZXMocywgYyk7XG4gICAgdGhpcy5GaWVsZHMgPSBuZXcgUGlwZWxpbmVGaWVsZHMocywgYyk7XG4gIH1cbiAgZ2V0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLl9jLmdldCgncGlwZWxpbmVzJyk7XG4gIH1cbiAgZ2V0T25lKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7a2V5fWApO1xuICB9XG4gIGdldEJveGVzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7a2V5fS9ib3hlc2ApO1xuICB9XG4gIGdldEJveGVzSW5TdGFnZSAoa2V5OiBzdHJpbmcsIHN0YWdlS2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBwaXBlbGluZXMvJHtrZXl9L2JveGVzP3N0YWdlS2V5PSR7c3RhZ2VLZXl9YCk7XG4gIH1cbiAgY3JlYXRlKGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dCgncGlwZWxpbmVzJywgZGF0YSk7XG4gIH1cbiAgZGVsZXRlKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZGVsZXRlKGFldSBgcGlwZWxpbmVzLyR7a2V5fWApO1xuICB9XG4gIHVwZGF0ZShkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wb3N0KGFldSBgcGlwZWxpbmVzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbiAgZ2V0RmVlZChrZXk6IHN0cmluZywgZGV0YWlsTGV2ZWw6ID9zdHJpbmcpIHtcbiAgICB2YXIgcXMgPSBcIlwiO1xuICAgIGlmIChkZXRhaWxMZXZlbCkge1xuICAgICAgcXMgKz0gJz8nICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHtkZXRhaWxMZXZlbH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBwaXBlbGluZXMvJHtrZXl9L25ld3NmZWVkYCArIHFzKTtcbiAgfVxufVxuXG5jbGFzcyBQaXBlbGluZVN0YWdlcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBjb25zdHJ1Y3RvcihzOiBTdHJlYWssIGM6IENvbm5IZWxwZXIpIHtcbiAgICB0aGlzLl9zID0gcztcbiAgICB0aGlzLl9jID0gYztcbiAgfVxuICBnZXRBbGwocGlwZUtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vc3RhZ2VzYCk7XG4gIH1cbiAgZ2V0T25lKHBpcGVLZXk6IHN0cmluZywga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9zdGFnZXMvJHtrZXl9YCk7XG4gIH1cbiAgY3JlYXRlKHBpcGVLZXk6IHN0cmluZywgZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucHV0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vc3RhZ2VzYCwgZGF0YSk7XG4gIH1cbiAgZGVsZXRlKHBpcGVLZXk6IHN0cmluZywga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5kZWxldGUoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9zdGFnZXMvJHtrZXl9YCk7XG4gIH1cbiAgdXBkYXRlKHBpcGVLZXk6IHN0cmluZywgZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucG9zdChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L3N0YWdlcy8ke2RhdGEua2V5fWAsIGRhdGEpO1xuICB9XG59XG5cbmNsYXNzIFBpcGVsaW5lRmllbGRzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICB9XG4gIGdldEFsbChwaXBlS2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9maWVsZHNgKTtcbiAgfVxuICBnZXRPbmUocGlwZUtleTogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2ZpZWxkcy8ke2tleX1gKTtcbiAgfVxuICBjcmVhdGUocGlwZUtleTogc3RyaW5nLCBkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wdXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9maWVsZHNgLCBkYXRhKTtcbiAgfVxuICBkZWxldGUocGlwZUtleTogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmRlbGV0ZShhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2ZpZWxkcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUocGlwZUtleTogc3RyaW5nLCBkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wb3N0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vZmllbGRzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbn1cblxuY2xhc3MgQm94ZXMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgRmllbGRzOiBCb3hGaWVsZHM7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICAgIHRoaXMuRmllbGRzID0gbmV3IEJveEZpZWxkcyhzLCBjKTtcbiAgfVxuICBnZXRBbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KCdib3hlcycpO1xuICB9XG4gIGdldEZvclBpcGVsaW5lKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3MuUGlwZWxpbmVzLmdldEJveGVzKGtleSk7XG4gIH1cbiAgZ2V0T25lKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtrZXl9YCk7XG4gIH1cbiAgY3JlYXRlKHBpcGVLZXksIGRhdGEpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wdXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9ib3hlc2AsIGRhdGEpO1xuICB9XG4gIGRlbGV0ZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmRlbGV0ZShhZXUgYGJveGVzLyR7a2V5fWApO1xuICB9XG4gIHVwZGF0ZShkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wb3N0KGFldSBgYm94ZXMvJHtkYXRhLmtleX1gLCBkYXRhKTtcbiAgfVxuICBnZXRGaWVsZHMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vZmllbGRzYCk7XG4gIH1cbiAgZ2V0UmVtaW5kZXJzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtrZXl9L3JlbWluZGVyc2ApO1xuICB9XG4gIGdldENvbW1lbnRzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtrZXl9L2NvbW1lbnRzYCk7XG4gIH1cbiAgY3JlYXRlQ29tbWVudChrZXk6IHN0cmluZywgZGF0YSkge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dChhZXUgYGJveGVzLyR7a2V5fS9jb21tZW50c2AsIGRhdGEpO1xuICB9XG4gIGdldEZpbGVzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtrZXl9L2ZpbGVzYCk7XG4gIH1cbiAgZ2V0RmVlZChrZXk6IHN0cmluZywgZGV0YWlsTGV2ZWw6ID9zdHJpbmcpIHtcbiAgICB2YXIgcXMgPSBcIlwiO1xuICAgIGlmIChkZXRhaWxMZXZlbCkge1xuICAgICAgcXMgKz0gJz8nICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHtkZXRhaWxMZXZlbH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vbmV3c2ZlZWRgICsgcXMpO1xuICB9XG59XG5cbmNsYXNzIEJveEZpZWxkcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBjb25zdHJ1Y3RvcihzOiBTdHJlYWssIGM6IENvbm5IZWxwZXIpIHtcbiAgICB0aGlzLl9zID0gcztcbiAgICB0aGlzLl9jID0gYztcbiAgfVxuICBnZXRGb3JCb3goa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fcy5Cb3hlcy5nZXRGaWVsZHMoa2V5KTtcbiAgfVxuICBnZXRPbmUoYm94S2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtib3hLZXl9L2ZpZWxkcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUoYm94S2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnBvc3QoYWV1IGBib3hlcy8ke2JveEtleX0vZmllbGRzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbn1cblxuY2xhc3MgRmlsZXMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0Rm9yQm94KGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3MuQm94ZXMuZ2V0RmlsZXMoa2V5KTtcbiAgfVxuICBnZXRPbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBmaWxlcy8ke2tleX1gKTtcbiAgfVxuICBnZXRDb250ZW50cyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldE5vUGFyc2UoYWV1IGBmaWxlcy8ke2tleX0vY29udGVudHNgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3RyZWFrIHtcbiAgX2M6IENvbm5IZWxwZXI7XG4gIE1lOiBNZTtcbiAgUGlwZWxpbmVzOiBQaXBlbGluZXM7XG4gIEJveGVzOiBCb3hlcztcbiAgRmlsZXM6IEZpbGVzO1xuXG4gIGNvbnN0cnVjdG9yKGF1dGhLZXk6IHN0cmluZykge1xuICAgIHRoaXMuX2MgPSBuZXcgQ29ubkhlbHBlcihhdXRoS2V5KTtcbiAgICB0aGlzLk1lID0gbmV3IE1lKHRoaXMsIHRoaXMuX2MpO1xuICAgIHRoaXMuUGlwZWxpbmVzID0gbmV3IFBpcGVsaW5lcyh0aGlzLCB0aGlzLl9jKTtcbiAgICB0aGlzLkJveGVzID0gbmV3IEJveGVzKHRoaXMsIHRoaXMuX2MpO1xuICAgIHRoaXMuRmlsZXMgPSBuZXcgRmlsZXModGhpcywgdGhpcy5fYyk7XG4gIH1cblxuICBzZWFyY2gocXVlcnk6IHN0cmluZyk6IFByb21pc2Uge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHNlYXJjaD9xdWVyeT0ke3F1ZXJ5fWApO1xuICB9XG59XG4iXX0=
}();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7SUFFTTtBQUdKLFdBSEksVUFHSixDQUFZLE9BQVosRUFBNkI7d0NBSHpCLFlBR3lCOztBQUMzQixTQUFLLFFBQUwsR0FBZ0IsT0FBaEIsQ0FEMkI7R0FBN0I7OzZCQUhJOzt1Q0FPZSxRQUFnQixNQUFvRTtVQUF0RCxnRUFBZ0Isa0JBQXNDO1VBQWxDLGlFQUFrQixzQkFBZ0I7O0FBQ3JHLGFBQU87QUFDTCxzQkFESyxFQUNHLGdCQURILEVBQ1ksa0JBRFo7QUFFTCxjQUFNLHdCQUFOO0FBQ0EsY0FBTSxhQUFhLElBQWI7QUFDTixjQUFNLEtBQUssUUFBTDtPQUpSLENBRHFHOzs7O21DQVN4RixVQUEwQztBQUN2RCxhQUFPLHNCQUFZLFVBQUMsT0FBRCxFQUFVLE1BQVYsRUFBcUI7QUFDdEMsWUFBTSxPQUFpQixFQUFqQixDQURnQztBQUV0QyxpQkFBUyxFQUFULENBQVksTUFBWixFQUFvQixVQUFDLEtBQUQsRUFBbUI7QUFDckMsZUFBSyxJQUFMLENBQVUsS0FBVixFQURxQztTQUFuQixDQUFwQixDQUZzQztBQUt0QyxpQkFBUyxFQUFULENBQVksS0FBWixFQUFtQixZQUFNO0FBQ3ZCLGNBQUk7QUFDRixnQkFBTSxNQUFNLEtBQUssSUFBTCxDQUFVLEVBQVYsQ0FBTixDQURKO0FBRUYsZ0JBQUksU0FBUyxVQUFULEtBQXdCLEdBQXhCLEVBQTZCO0FBQy9CLHNCQUFRLEtBQUssS0FBTCxDQUFXLEdBQVgsQ0FBUixFQUQrQjthQUFqQyxNQUVPO0FBQ0wsa0JBQUksYUFBSixDQURLO0FBRUwsa0JBQUksa0NBQWdDLFNBQVMsVUFBVCxDQUYvQjtBQUdMLGtCQUFJO0FBQ0YsdUJBQU8sS0FBSyxLQUFMLENBQVcsR0FBWCxDQUFQLENBREU7QUFFRixvQkFBSSxRQUFRLEtBQUssS0FBTCxFQUFZO0FBQ3RCLGlDQUFlLEtBQUssS0FBTCxDQURPO2lCQUF4QjtlQUZGLENBS0UsT0FBTyxHQUFQLEVBQVk7O2VBQVo7QUFHRixxQkFBTyxzQkFBZSxJQUFJLEtBQUosQ0FBVSxZQUFWLENBQWYsRUFBaUQ7QUFDdEQsd0JBRHNELEVBQ2pELFVBRGlEO0FBRXRELDRCQUFZLFNBQVMsVUFBVDtBQUNaLHlCQUFTLFNBQVMsT0FBVDtlQUhKLENBQVAsRUFYSzthQUZQO1dBRkYsQ0FxQkUsT0FBTyxHQUFQLEVBQVk7QUFDWixtQkFBTyxHQUFQLEVBRFk7V0FBWjtTQXRCZSxDQUFuQixDQUxzQztBQStCdEMsaUJBQVMsRUFBVCxDQUFZLE9BQVosRUFBcUIsTUFBckIsRUEvQnNDO09BQXJCLENBQW5CLENBRHVEOzs7O21DQW9DMUMsVUFBa0Q7QUFDL0QsYUFBTyxzQkFBWSxVQUFDLE9BQUQsRUFBVSxNQUFWLEVBQXFCO0FBQ3RDLFlBQU0sU0FBbUIsRUFBbkIsQ0FEZ0M7QUFFdEMsaUJBQVMsRUFBVCxDQUFZLE1BQVosRUFBb0IsVUFBQyxLQUFELEVBQW1CO0FBQ3JDLGlCQUFPLElBQVAsQ0FBWSxLQUFaLEVBRHFDO1NBQW5CLENBQXBCLENBRnNDO0FBS3RDLGlCQUFTLEVBQVQsQ0FBWSxLQUFaLEVBQW1CLFlBQU07QUFDdkIsY0FBSTtBQUNGLGdCQUFNLE1BQU0sT0FBTyxNQUFQLENBQWMsTUFBZCxDQUFOLENBREo7QUFFRixnQkFBSSxTQUFTLFVBQVQsS0FBd0IsR0FBeEIsRUFBNkI7QUFDL0Isc0JBQVEsR0FBUixFQUQrQjthQUFqQyxNQUVPO0FBQ0wsa0JBQU0sa0NBQWdDLFNBQVMsVUFBVCxDQURqQztBQUVMLHFCQUFPLHNCQUFlLElBQUksS0FBSixDQUFVLFlBQVYsQ0FBZixFQUFpRDtBQUN0RCx3QkFEc0Q7QUFFdEQsNEJBQVksU0FBUyxVQUFUO0FBQ1oseUJBQVMsU0FBUyxPQUFUO2VBSEosQ0FBUCxFQUZLO2FBRlA7V0FGRixDQVlFLE9BQU8sR0FBUCxFQUFZO0FBQ1osbUJBQU8sR0FBUCxFQURZO1dBQVo7U0FiZSxDQUFuQixDQUxzQztBQXNCdEMsaUJBQVMsRUFBVCxDQUFZLE9BQVosRUFBcUIsTUFBckIsRUF0QnNDO09BQXJCLENBQW5CLENBRCtEOzs7O3dCQTJCN0QsTUFBdUI7OztBQUN6QixhQUFPLHNCQUFZLFVBQUMsT0FBRCxFQUFVLE1BQVYsRUFBcUI7QUFDdEMsWUFBTSxPQUFPLE1BQUssa0JBQUwsQ0FBd0IsS0FBeEIsRUFBK0IsSUFBL0IsQ0FBUCxDQURnQztBQUV0QyxZQUFNLFVBQVUsZ0JBQU0sT0FBTixDQUFjLElBQWQsRUFBb0IsZUFBTztBQUN6QyxrQkFBUSxNQUFLLGNBQUwsQ0FBb0IsR0FBcEIsQ0FBUixFQUR5QztTQUFQLENBQTlCLENBRmdDO0FBS3RDLGdCQUFRLEVBQVIsQ0FBVyxPQUFYLEVBQW9CLE1BQXBCLEVBTHNDO0FBTXRDLGdCQUFRLEdBQVIsR0FOc0M7T0FBckIsQ0FBbkIsQ0FEeUI7Ozs7K0JBV2hCLE1BQStCOzs7QUFDeEMsYUFBTyxzQkFBWSxVQUFDLE9BQUQsRUFBVSxNQUFWLEVBQXFCO0FBQ3RDLFlBQU0sT0FBTyxPQUFLLGtCQUFMLENBQXdCLEtBQXhCLEVBQStCLElBQS9CLEVBQXFDLFNBQXJDLEVBQWdELElBQWhELENBQVAsQ0FEZ0M7QUFFdEMsWUFBTSxVQUFVLGdCQUFNLE9BQU4sQ0FBYyxJQUFkLEVBQW9CLGVBQU87QUFDekMsa0JBQVEsT0FBSyxjQUFMLENBQW9CLEdBQXBCLENBQVIsRUFEeUM7U0FBUCxDQUE5QixDQUZnQztBQUt0QyxnQkFBUSxFQUFSLENBQVcsT0FBWCxFQUFvQixNQUFwQixFQUxzQztBQU10QyxnQkFBUSxHQUFSLEdBTnNDO09BQXJCLENBQW5CLENBRHdDOzs7O3dCQVd0QyxNQUFjLE1BQStCOzs7QUFDL0MsYUFBTyxzQkFBWSxVQUFDLE9BQUQsRUFBVSxNQUFWLEVBQXFCO0FBQ3RDLFlBQU0sT0FBTyxzQkFBWSxTQUFaLENBQXNCLElBQXRCLENBQVAsQ0FEZ0M7QUFFdEMsWUFBTSxPQUFPLE9BQUssa0JBQUwsQ0FBd0IsS0FBeEIsRUFBK0IsT0FBTyxHQUFQLEdBQWEsSUFBYixDQUF0QyxDQUZnQztBQUd0QyxZQUFNLFVBQVUsZ0JBQU0sT0FBTixDQUFjLElBQWQsRUFBb0IsZUFBTztBQUN6QyxrQkFBUSxPQUFLLGNBQUwsQ0FBb0IsR0FBcEIsQ0FBUixFQUR5QztTQUFQLENBQTlCLENBSGdDO0FBTXRDLGdCQUFRLEVBQVIsQ0FBVyxPQUFYLEVBQW9CLE1BQXBCLEVBTnNDO0FBT3RDLGdCQUFRLEdBQVIsR0FQc0M7T0FBckIsQ0FBbkIsQ0FEK0M7Ozs7NEJBWTFDLE1BQXVCOzs7QUFDNUIsYUFBTyxzQkFBWSxVQUFDLE9BQUQsRUFBVSxNQUFWLEVBQXFCO0FBQ3RDLFlBQU0sT0FBTyxPQUFLLGtCQUFMLENBQXdCLFFBQXhCLEVBQWtDLElBQWxDLENBQVAsQ0FEZ0M7QUFFdEMsWUFBTSxVQUFVLGdCQUFNLE9BQU4sQ0FBYyxJQUFkLEVBQW9CLGVBQU87QUFDekMsa0JBQVEsT0FBSyxjQUFMLENBQW9CLEdBQXBCLENBQVIsRUFEeUM7U0FBUCxDQUE5QixDQUZnQztBQUt0QyxnQkFBUSxFQUFSLENBQVcsT0FBWCxFQUFvQixNQUFwQixFQUxzQztBQU10QyxnQkFBUSxHQUFSLEdBTnNDO09BQXJCLENBQW5CLENBRDRCOzs7O3lCQVd6QixNQUFjLE1BQTRCOzs7QUFDN0MsYUFBTyxzQkFBWSxVQUFDLE9BQUQsRUFBVSxNQUFWLEVBQXFCO0FBQ3RDLFlBQU0sT0FBTyxzQkFBWSxTQUFaLENBQXNCLEVBQUMsTUFBSyx5QkFBZSxJQUFmLENBQUwsRUFBdkIsQ0FBUCxDQURnQztBQUV0QyxZQUFNLE9BQU8sT0FBSyxrQkFBTCxDQUF3QixNQUF4QixFQUFnQyxJQUFoQyxFQUFzQztBQUNqRCwwQkFBZ0IsbUNBQWhCO0FBQ0EsNEJBQWtCLEtBQUssTUFBTDtTQUZQLENBQVAsQ0FGZ0M7QUFNdEMsWUFBTSxVQUFVLGdCQUFNLE9BQU4sQ0FBYyxJQUFkLEVBQW9CLGVBQU87QUFDekMsa0JBQVEsT0FBSyxjQUFMLENBQW9CLEdBQXBCLENBQVIsRUFEeUM7U0FBUCxDQUE5QixDQU5nQztBQVN0QyxnQkFBUSxLQUFSLENBQWMsSUFBZCxFQVRzQztBQVV0QyxnQkFBUSxFQUFSLENBQVcsT0FBWCxFQUFvQixNQUFwQixFQVZzQztBQVd0QyxnQkFBUSxHQUFSLEdBWHNDO09BQXJCLENBQW5CLENBRDZDOzs7U0E1SDNDOzs7SUE2SUE7QUFHSixXQUhJLEVBR0osQ0FBWSxDQUFaLEVBQXVCLENBQXZCLEVBQXNDO3dDQUhsQyxJQUdrQzs7QUFDcEMsU0FBSyxFQUFMLEdBQVUsQ0FBVixDQURvQztBQUVwQyxTQUFLLEVBQUwsR0FBVSxDQUFWLENBRm9DO0dBQXRDOzs2QkFISTs7MEJBT0U7QUFDSixhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsQ0FBWSxVQUFaLENBQVAsQ0FESTs7O1NBUEY7OztJQVlBO0FBS0osV0FMSSxTQUtKLENBQVksQ0FBWixFQUF1QixDQUF2QixFQUFzQzt3Q0FMbEMsV0FLa0M7O0FBQ3BDLFNBQUssRUFBTCxHQUFVLENBQVYsQ0FEb0M7QUFFcEMsU0FBSyxFQUFMLEdBQVUsQ0FBVixDQUZvQztBQUdwQyxTQUFLLE1BQUwsR0FBYyxJQUFJLGNBQUosQ0FBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsQ0FBZCxDQUhvQztBQUlwQyxTQUFLLE1BQUwsR0FBYyxJQUFJLGNBQUosQ0FBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsQ0FBZCxDQUpvQztHQUF0Qzs7NkJBTEk7OzZCQVdLO0FBQ1AsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLENBQVksV0FBWixDQUFQLENBRE87Ozs7MkJBR0YsS0FBYTtBQUNsQixhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsK0NBQTZCLElBQTdCLENBQVAsQ0FEa0I7Ozs7NkJBR1gsS0FBYTtBQUNwQixhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsZ0RBQTZCLElBQTdCLENBQVAsQ0FEb0I7Ozs7b0NBR0wsS0FBYSxVQUFrQjtBQUM5QyxhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsZ0RBQTZCLEtBQXNCLFNBQW5ELENBQVAsQ0FEOEM7Ozs7MkJBR3pDLE1BQWM7QUFDbkIsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLENBQVksV0FBWixFQUF5QixJQUF6QixDQUFQLENBRG1COzs7OzRCQUdkLEtBQWE7QUFDbEIsYUFBTyxLQUFLLEVBQUwsQ0FBUSxNQUFSLCtDQUFnQyxJQUFoQyxDQUFQLENBRGtCOzs7OzJCQUdiLE1BQWM7QUFDbkIsYUFBTyxLQUFLLEVBQUwsQ0FBUSxJQUFSLCtDQUE4QixLQUFLLEdBQUwsQ0FBOUIsRUFBMEMsSUFBMUMsQ0FBUCxDQURtQjs7Ozs0QkFHYixLQUFhLGFBQXNCO0FBQ3pDLFVBQUksS0FBSyxFQUFMLENBRHFDO0FBRXpDLFVBQUksV0FBSixFQUFpQjtBQUNmLGNBQU0sTUFBTSxzQkFBWSxTQUFaLENBQXNCLEVBQUMsd0JBQUQsRUFBdEIsQ0FBTixDQURTO09BQWpCO0FBR0EsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLENBQVksK0NBQWlCLElBQWpCLEdBQWtDLEVBQWxDLENBQW5CLENBTHlDOzs7U0FoQ3ZDOzs7SUF5Q0E7QUFHSixXQUhJLGNBR0osQ0FBWSxDQUFaLEVBQXVCLENBQXZCLEVBQXNDO3dDQUhsQyxnQkFHa0M7O0FBQ3BDLFNBQUssRUFBTCxHQUFVLENBQVYsQ0FEb0M7QUFFcEMsU0FBSyxFQUFMLEdBQVUsQ0FBVixDQUZvQztHQUF0Qzs7NkJBSEk7OzJCQU9HLFNBQWlCO0FBQ3RCLGFBQU8sS0FBSyxFQUFMLENBQVEsR0FBUixnREFBNkIsUUFBN0IsQ0FBUCxDQURzQjs7OzsyQkFHakIsU0FBaUIsS0FBYTtBQUNuQyxhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsZ0RBQTZCLFNBQWtCLElBQS9DLENBQVAsQ0FEbUM7Ozs7MkJBRzlCLFNBQWlCLE1BQWM7QUFDcEMsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLGdEQUE2QixRQUE3QixFQUErQyxJQUEvQyxDQUFQLENBRG9DOzs7OzRCQUcvQixTQUFpQixLQUFhO0FBQ25DLGFBQU8sS0FBSyxFQUFMLENBQVEsTUFBUixnREFBZ0MsU0FBa0IsSUFBbEQsQ0FBUCxDQURtQzs7OzsyQkFHOUIsU0FBaUIsTUFBYztBQUNwQyxhQUFPLEtBQUssRUFBTCxDQUFRLElBQVIsZ0RBQThCLFNBQWtCLEtBQUssR0FBTCxDQUFoRCxFQUE0RCxJQUE1RCxDQUFQLENBRG9DOzs7U0FuQmxDOzs7SUF3QkE7QUFHSixXQUhJLGNBR0osQ0FBWSxDQUFaLEVBQXVCLENBQXZCLEVBQXNDO3dDQUhsQyxnQkFHa0M7O0FBQ3BDLFNBQUssRUFBTCxHQUFVLENBQVYsQ0FEb0M7QUFFcEMsU0FBSyxFQUFMLEdBQVUsQ0FBVixDQUZvQztHQUF0Qzs7NkJBSEk7OzJCQU9HLFNBQWlCO0FBQ3RCLGFBQU8sS0FBSyxFQUFMLENBQVEsR0FBUixnREFBNkIsUUFBN0IsQ0FBUCxDQURzQjs7OzsyQkFHakIsU0FBaUIsS0FBYTtBQUNuQyxhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsZ0RBQTZCLFNBQWtCLElBQS9DLENBQVAsQ0FEbUM7Ozs7MkJBRzlCLFNBQWlCLE1BQWM7QUFDcEMsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLGdEQUE2QixRQUE3QixFQUErQyxJQUEvQyxDQUFQLENBRG9DOzs7OzRCQUcvQixTQUFpQixLQUFhO0FBQ25DLGFBQU8sS0FBSyxFQUFMLENBQVEsTUFBUixnREFBZ0MsU0FBa0IsSUFBbEQsQ0FBUCxDQURtQzs7OzsyQkFHOUIsU0FBaUIsTUFBYztBQUNwQyxhQUFPLEtBQUssRUFBTCxDQUFRLElBQVIsZ0RBQThCLFNBQWtCLEtBQUssR0FBTCxDQUFoRCxFQUE0RCxJQUE1RCxDQUFQLENBRG9DOzs7U0FuQmxDOzs7SUF3QkE7QUFJSixXQUpJLEtBSUosQ0FBWSxDQUFaLEVBQXVCLENBQXZCLEVBQXNDO3dDQUpsQyxPQUlrQzs7QUFDcEMsU0FBSyxFQUFMLEdBQVUsQ0FBVixDQURvQztBQUVwQyxTQUFLLEVBQUwsR0FBVSxDQUFWLENBRm9DO0FBR3BDLFNBQUssTUFBTCxHQUFjLElBQUksU0FBSixDQUFjLENBQWQsRUFBaUIsQ0FBakIsQ0FBZCxDQUhvQztHQUF0Qzs7NkJBSkk7OzZCQVNLO0FBQ1AsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLENBQVksT0FBWixDQUFQLENBRE87Ozs7bUNBR00sS0FBYTtBQUMxQixhQUFPLEtBQUssRUFBTCxDQUFRLFNBQVIsQ0FBa0IsUUFBbEIsQ0FBMkIsR0FBM0IsQ0FBUCxDQUQwQjs7OzsyQkFHckIsS0FBYTtBQUNsQixhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsZ0RBQXlCLElBQXpCLENBQVAsQ0FEa0I7Ozs7MkJBR2IsU0FBUyxNQUFNO0FBQ3BCLGFBQU8sS0FBSyxFQUFMLENBQVEsR0FBUixnREFBNkIsUUFBN0IsRUFBOEMsSUFBOUMsQ0FBUCxDQURvQjs7Ozs0QkFHZixLQUFhO0FBQ2xCLGFBQU8sS0FBSyxFQUFMLENBQVEsTUFBUixnREFBNEIsSUFBNUIsQ0FBUCxDQURrQjs7OzsyQkFHYixNQUFjO0FBQ25CLGFBQU8sS0FBSyxFQUFMLENBQVEsSUFBUixnREFBMEIsS0FBSyxHQUFMLENBQTFCLEVBQXNDLElBQXRDLENBQVAsQ0FEbUI7Ozs7OEJBR1gsS0FBYTtBQUNyQixhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsaURBQXlCLElBQXpCLENBQVAsQ0FEcUI7Ozs7aUNBR1YsS0FBYTtBQUN4QixhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsaURBQXlCLElBQXpCLENBQVAsQ0FEd0I7Ozs7Z0NBR2QsS0FBYTtBQUN2QixhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsaURBQXlCLElBQXpCLENBQVAsQ0FEdUI7Ozs7OztrQ0FJWCxLQUFhLE1BQU07QUFDL0IsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLGlEQUF5QixJQUF6QixFQUF5QyxJQUF6QyxDQUFQLENBRCtCOzs7O2dDQUdyQixLQUFhLFNBQWlCO0FBQ3hDLGFBQU8sS0FBSyxFQUFMLENBQVEsR0FBUixpREFBeUIsSUFBekIsRUFBeUMsRUFBQyxnQkFBRCxFQUF6QyxDQUFQLENBRHdDOzs7OzZCQUdqQyxLQUFhO0FBQ3BCLGFBQU8sS0FBSyxFQUFMLENBQVEsR0FBUixpREFBeUIsSUFBekIsQ0FBUCxDQURvQjs7OzsrQkFHWCxLQUFhO0FBQ3RCLGFBQU8sS0FBSyxFQUFMLENBQVEsR0FBUixpREFBeUIsSUFBekIsQ0FBUCxDQURzQjs7Ozs0QkFHaEIsS0FBYSxhQUFzQjtBQUN6QyxVQUFJLEtBQUssRUFBTCxDQURxQztBQUV6QyxVQUFJLFdBQUosRUFBaUI7QUFDZixjQUFNLE1BQU0sc0JBQVksU0FBWixDQUFzQixFQUFDLHdCQUFELEVBQXRCLENBQU4sQ0FEUztPQUFqQjtBQUdBLGFBQU8sS0FBSyxFQUFMLENBQVEsR0FBUixDQUFZLGdEQUFhLElBQWIsR0FBOEIsRUFBOUIsQ0FBbkIsQ0FMeUM7OztTQWpEdkM7OztJQTBEQTtBQUdKLFdBSEksU0FHSixDQUFZLENBQVosRUFBdUIsQ0FBdkIsRUFBc0M7d0NBSGxDLFdBR2tDOztBQUNwQyxTQUFLLEVBQUwsR0FBVSxDQUFWLENBRG9DO0FBRXBDLFNBQUssRUFBTCxHQUFVLENBQVYsQ0FGb0M7R0FBdEM7OzZCQUhJOzs4QkFPTSxLQUFhO0FBQ3JCLGFBQU8sS0FBSyxFQUFMLENBQVEsS0FBUixDQUFjLFNBQWQsQ0FBd0IsR0FBeEIsQ0FBUCxDQURxQjs7OzsyQkFHaEIsUUFBZ0IsS0FBYTtBQUNsQyxhQUFPLEtBQUssRUFBTCxDQUFRLEdBQVIsaURBQXlCLFFBQWlCLElBQTFDLENBQVAsQ0FEa0M7Ozs7MkJBRzdCLFFBQWdCLE1BQWM7QUFDbkMsYUFBTyxLQUFLLEVBQUwsQ0FBUSxJQUFSLGlEQUEwQixRQUFpQixLQUFLLEdBQUwsQ0FBM0MsRUFBdUQsSUFBdkQsQ0FBUCxDQURtQzs7O1NBYmpDOzs7SUFrQkE7QUFHSixXQUhJLEtBR0osQ0FBWSxDQUFaLEVBQXVCLENBQXZCLEVBQXNDO3dDQUhsQyxPQUdrQzs7QUFDcEMsU0FBSyxFQUFMLEdBQVUsQ0FBVixDQURvQztBQUVwQyxTQUFLLEVBQUwsR0FBVSxDQUFWLENBRm9DO0dBQXRDOzs2QkFISTs7OEJBT00sS0FBYTtBQUNyQixhQUFPLEtBQUssRUFBTCxDQUFRLEtBQVIsQ0FBYyxRQUFkLENBQXVCLEdBQXZCLENBQVAsQ0FEcUI7Ozs7MkJBR2hCLEtBQWE7QUFDbEIsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLGlEQUF5QixJQUF6QixDQUFQLENBRGtCOzs7O2dDQUdSLEtBQWE7QUFDdkIsYUFBTyxLQUFLLEVBQUwsQ0FBUSxVQUFSLGlEQUFnQyxJQUFoQyxDQUFQLENBRHVCOzs7U0FickI7OztJQWtCQTtBQUdKLFdBSEksT0FHSixDQUFZLENBQVosRUFBdUIsQ0FBdkIsRUFBc0M7d0NBSGxDLFNBR2tDOztBQUNwQyxTQUFLLEVBQUwsR0FBVSxDQUFWLENBRG9DO0FBRXBDLFNBQUssRUFBTCxHQUFVLENBQVYsQ0FGb0M7R0FBdEM7OzZCQUhJOzs4QkFPTSxRQUFnQjtBQUN4QixhQUFPLEtBQUssRUFBTCxDQUFRLEtBQVIsQ0FBYyxVQUFkLENBQXlCLE1BQXpCLENBQVAsQ0FEd0I7Ozs7MkJBR25CLFdBQW1CO0FBQ3hCLGFBQU8sS0FBSyxFQUFMLENBQVEsR0FBUixpREFBMkIsVUFBM0IsQ0FBUCxDQUR3Qjs7O1NBVnRCOzs7SUFlTztBQVFYLFdBUlcsTUFRWCxDQUFZLE9BQVosRUFBNkI7d0NBUmxCLFFBUWtCOztBQUMzQixTQUFLLEVBQUwsR0FBVSxJQUFJLFVBQUosQ0FBZSxPQUFmLENBQVYsQ0FEMkI7QUFFM0IsU0FBSyxFQUFMLEdBQVUsSUFBSSxFQUFKLENBQU8sSUFBUCxFQUFhLEtBQUssRUFBTCxDQUF2QixDQUYyQjtBQUczQixTQUFLLFNBQUwsR0FBaUIsSUFBSSxTQUFKLENBQWMsSUFBZCxFQUFvQixLQUFLLEVBQUwsQ0FBckMsQ0FIMkI7QUFJM0IsU0FBSyxLQUFMLEdBQWEsSUFBSSxLQUFKLENBQVUsSUFBVixFQUFnQixLQUFLLEVBQUwsQ0FBN0IsQ0FKMkI7QUFLM0IsU0FBSyxLQUFMLEdBQWEsSUFBSSxLQUFKLENBQVUsSUFBVixFQUFnQixLQUFLLEVBQUwsQ0FBN0IsQ0FMMkI7QUFNM0IsU0FBSyxPQUFMLEdBQWUsSUFBSSxPQUFKLENBQVksSUFBWixFQUFrQixLQUFLLEVBQUwsQ0FBakMsQ0FOMkI7R0FBN0I7OzZCQVJXOzsyQkFpQkosT0FBd0I7QUFDN0IsYUFBTyxLQUFLLEVBQUwsQ0FBUSxHQUFSLGlEQUFnQyxNQUFoQyxDQUFQLENBRDZCOzs7U0FqQnBCIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCBxdWVyeXN0cmluZyBmcm9tICdxdWVyeXN0cmluZyc7XG5cbmltcG9ydCBhZXUgZnJvbSAnLi9hdXRvLWVuY29kZS11cmknO1xuXG5jbGFzcyBDb25uSGVscGVyIHtcbiAgX2F1dGhLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihhdXRoS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdXRoS2V5ID0gYXV0aEtleTtcbiAgfVxuXG4gIF9nZXRSZXF1ZXN0T3B0aW9ucyhtZXRob2Q6IHN0cmluZywgcGF0aDogc3RyaW5nLCBoZWFkZXJzOiBPYmplY3Q9e30sIGVuY29kaW5nOiA/c3RyaW5nPSd1dGY4Jyk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCwgaGVhZGVycywgZW5jb2RpbmcsXG4gICAgICBob3N0OiAnbWFpbGZvb2dhZS5hcHBzcG90LmNvbScsXG4gICAgICBwYXRoOiAnL2FwaS92MS8nICsgcGF0aCxcbiAgICAgIGF1dGg6IHRoaXMuX2F1dGhLZXlcbiAgICB9O1xuICB9XG5cbiAgX3BhcnNlUmVzcG9uc2UocmVzcG9uc2U6IGh0dHBzLkluY29taW5nTWVzc2FnZSk6IFByb21pc2Uge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdHJzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgcmVzcG9uc2Uub24oJ2RhdGEnLCAoY2h1bms6IHN0cmluZykgPT4ge1xuICAgICAgICBzdHJzLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG4gICAgICByZXNwb25zZS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHN0ciA9IHN0cnMuam9pbignJyk7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgcmVzb2x2ZShKU09OLnBhcnNlKHN0cikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQganNvbjtcbiAgICAgICAgICAgIGxldCBlcnJvck1lc3NhZ2UgPSBgUmVzcG9uc2UgY29kZSAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgICAgICAgIGlmIChqc29uICYmIGpzb24uZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBqc29uLmVycm9yO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgLy8gSWdub3JlIHBhcnNlIGVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWplY3QoT2JqZWN0LmFzc2lnbigobmV3IEVycm9yKGVycm9yTWVzc2FnZSk6IE9iamVjdCksIHtcbiAgICAgICAgICAgICAgc3RyLCBqc29uLFxuICAgICAgICAgICAgICBzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXNwb25zZS5vbignZXJyb3InLCByZWplY3QpO1xuICAgIH0pO1xuICB9XG5cbiAgX3BsYWluUmVzcG9uc2UocmVzcG9uc2U6IGh0dHBzLkluY29taW5nTWVzc2FnZSk6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGNodW5rczogQnVmZmVyW10gPSBbXTtcbiAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG4gICAgICByZXNwb25zZS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5jb25jYXQoY2h1bmtzKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XG4gICAgICAgICAgICByZXNvbHZlKGJ1Zik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBSZXNwb25zZSBjb2RlICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX1gO1xuICAgICAgICAgICAgcmVqZWN0KE9iamVjdC5hc3NpZ24oKG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpOiBPYmplY3QpLCB7XG4gICAgICAgICAgICAgIGJ1ZixcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVyc1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmVzcG9uc2Uub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldChwYXRoOiBzdHJpbmcpOiBQcm9taXNlIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdHRVQnLCBwYXRoKTtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0KG9wdHMsIHJlcyA9PiB7XG4gICAgICAgIHJlc29sdmUodGhpcy5fcGFyc2VSZXNwb25zZShyZXMpKTtcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdC5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgcmVxdWVzdC5lbmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldE5vUGFyc2UocGF0aDogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb3B0cyA9IHRoaXMuX2dldFJlcXVlc3RPcHRpb25zKCdHRVQnLCBwYXRoLCB1bmRlZmluZWQsIG51bGwpO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wbGFpblJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHV0KHBhdGg6IHN0cmluZywgZGF0YTogT2JqZWN0KTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgZHN0ciA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLl9nZXRSZXF1ZXN0T3B0aW9ucygnUFVUJywgcGF0aCArICc/JyArIGRzdHIpO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wYXJzZVJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IFByb21pc2Uge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBvcHRzID0gdGhpcy5fZ2V0UmVxdWVzdE9wdGlvbnMoJ0RFTEVURScsIHBhdGgpO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3Qob3B0cywgcmVzID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl9wYXJzZVJlc3BvbnNlKHJlcykpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcG9zdChwYXRoOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8T2JqZWN0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHNlbmQgPSBxdWVyeXN0cmluZy5zdHJpbmdpZnkoe2pzb246SlNPTi5zdHJpbmdpZnkoZGF0YSl9KTtcbiAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLl9nZXRSZXF1ZXN0T3B0aW9ucygnUE9TVCcsIHBhdGgsIHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAnQ29udGVudC1MZW5ndGgnOiBzZW5kLmxlbmd0aFxuICAgICAgfSk7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gaHR0cHMucmVxdWVzdChvcHRzLCByZXMgPT4ge1xuICAgICAgICByZXNvbHZlKHRoaXMuX3BhcnNlUmVzcG9uc2UocmVzKSk7XG4gICAgICB9KTtcbiAgICAgIHJlcXVlc3Qud3JpdGUoc2VuZCk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0pO1xuICB9XG59XG5cbmNsYXNzIE1lIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICB9XG4gIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoJ3VzZXJzL21lJyk7XG4gIH1cbn1cblxuY2xhc3MgUGlwZWxpbmVzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIFN0YWdlczogUGlwZWxpbmVTdGFnZXM7XG4gIEZpZWxkczogUGlwZWxpbmVGaWVsZHM7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICAgIHRoaXMuU3RhZ2VzID0gbmV3IFBpcGVsaW5lU3RhZ2VzKHMsIGMpO1xuICAgIHRoaXMuRmllbGRzID0gbmV3IFBpcGVsaW5lRmllbGRzKHMsIGMpO1xuICB9XG4gIGdldEFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoJ3BpcGVsaW5lcycpO1xuICB9XG4gIGdldE9uZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke2tleX1gKTtcbiAgfVxuICBnZXRCb3hlcyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke2tleX0vYm94ZXNgKTtcbiAgfVxuICBnZXRCb3hlc0luU3RhZ2UgKGtleTogc3RyaW5nLCBzdGFnZUtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7a2V5fS9ib3hlcz9zdGFnZUtleT0ke3N0YWdlS2V5fWApO1xuICB9XG4gIGNyZWF0ZShkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wdXQoJ3BpcGVsaW5lcycsIGRhdGEpO1xuICB9XG4gIGRlbGV0ZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmRlbGV0ZShhZXUgYHBpcGVsaW5lcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUoZGF0YTogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucG9zdChhZXUgYHBpcGVsaW5lcy8ke2RhdGEua2V5fWAsIGRhdGEpO1xuICB9XG4gIGdldEZlZWQoa2V5OiBzdHJpbmcsIGRldGFpbExldmVsOiA/c3RyaW5nKSB7XG4gICAgbGV0IHFzID0gJyc7XG4gICAgaWYgKGRldGFpbExldmVsKSB7XG4gICAgICBxcyArPSAnPycgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkoe2RldGFpbExldmVsfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke2tleX0vbmV3c2ZlZWRgICsgcXMpO1xuICB9XG59XG5cbmNsYXNzIFBpcGVsaW5lU3RhZ2VzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICB9XG4gIGdldEFsbChwaXBlS2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9zdGFnZXNgKTtcbiAgfVxuICBnZXRPbmUocGlwZUtleTogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L3N0YWdlcy8ke2tleX1gKTtcbiAgfVxuICBjcmVhdGUocGlwZUtleTogc3RyaW5nLCBkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wdXQoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9zdGFnZXNgLCBkYXRhKTtcbiAgfVxuICBkZWxldGUocGlwZUtleTogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmRlbGV0ZShhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L3N0YWdlcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUocGlwZUtleTogc3RyaW5nLCBkYXRhOiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5wb3N0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vc3RhZ2VzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbn1cblxuY2xhc3MgUGlwZWxpbmVGaWVsZHMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0QWxsKHBpcGVLZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2ZpZWxkc2ApO1xuICB9XG4gIGdldE9uZShwaXBlS2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vZmllbGRzLyR7a2V5fWApO1xuICB9XG4gIGNyZWF0ZShwaXBlS2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2ZpZWxkc2AsIGRhdGEpO1xuICB9XG4gIGRlbGV0ZShwaXBlS2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZGVsZXRlKGFldSBgcGlwZWxpbmVzLyR7cGlwZUtleX0vZmllbGRzLyR7a2V5fWApO1xuICB9XG4gIHVwZGF0ZShwaXBlS2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnBvc3QoYWV1IGBwaXBlbGluZXMvJHtwaXBlS2V5fS9maWVsZHMvJHtkYXRhLmtleX1gLCBkYXRhKTtcbiAgfVxufVxuXG5jbGFzcyBCb3hlcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBGaWVsZHM6IEJveEZpZWxkcztcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gICAgdGhpcy5GaWVsZHMgPSBuZXcgQm94RmllbGRzKHMsIGMpO1xuICB9XG4gIGdldEFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoJ2JveGVzJyk7XG4gIH1cbiAgZ2V0Rm9yUGlwZWxpbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fcy5QaXBlbGluZXMuZ2V0Qm94ZXMoa2V5KTtcbiAgfVxuICBnZXRPbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX1gKTtcbiAgfVxuICBjcmVhdGUocGlwZUtleSwgZGF0YSkge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dChhZXUgYHBpcGVsaW5lcy8ke3BpcGVLZXl9L2JveGVzYCwgZGF0YSk7XG4gIH1cbiAgZGVsZXRlKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZGVsZXRlKGFldSBgYm94ZXMvJHtrZXl9YCk7XG4gIH1cbiAgdXBkYXRlKGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnBvc3QoYWV1IGBib3hlcy8ke2RhdGEua2V5fWAsIGRhdGEpO1xuICB9XG4gIGdldEZpZWxkcyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldChhZXUgYGJveGVzLyR7a2V5fS9maWVsZHNgKTtcbiAgfVxuICBnZXRSZW1pbmRlcnMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vcmVtaW5kZXJzYCk7XG4gIH1cbiAgZ2V0Q29tbWVudHMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vY29tbWVudHNgKTtcbiAgfVxuICAvLyBkZXByZWNhdGVkIG1ldGhvZFxuICBjcmVhdGVDb21tZW50KGtleTogc3RyaW5nLCBkYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MucHV0KGFldSBgYm94ZXMvJHtrZXl9L2NvbW1lbnRzYCwgZGF0YSk7XG4gIH1cbiAgcG9zdENvbW1lbnQoa2V5OiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLnB1dChhZXUgYGJveGVzLyR7a2V5fS9jb21tZW50c2AsIHttZXNzYWdlfSk7XG4gIH1cbiAgZ2V0RmlsZXMoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vZmlsZXNgKTtcbiAgfVxuICBnZXRUaHJlYWRzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtrZXl9L3RocmVhZHNgKTtcbiAgfVxuICBnZXRGZWVkKGtleTogc3RyaW5nLCBkZXRhaWxMZXZlbDogP3N0cmluZykge1xuICAgIGxldCBxcyA9ICcnO1xuICAgIGlmIChkZXRhaWxMZXZlbCkge1xuICAgICAgcXMgKz0gJz8nICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHtkZXRhaWxMZXZlbH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBib3hlcy8ke2tleX0vbmV3c2ZlZWRgICsgcXMpO1xuICB9XG59XG5cbmNsYXNzIEJveEZpZWxkcyB7XG4gIF9zOiBTdHJlYWs7XG4gIF9jOiBDb25uSGVscGVyO1xuICBjb25zdHJ1Y3RvcihzOiBTdHJlYWssIGM6IENvbm5IZWxwZXIpIHtcbiAgICB0aGlzLl9zID0gcztcbiAgICB0aGlzLl9jID0gYztcbiAgfVxuICBnZXRGb3JCb3goa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fcy5Cb3hlcy5nZXRGaWVsZHMoa2V5KTtcbiAgfVxuICBnZXRPbmUoYm94S2V5OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgYm94ZXMvJHtib3hLZXl9L2ZpZWxkcy8ke2tleX1gKTtcbiAgfVxuICB1cGRhdGUoYm94S2V5OiBzdHJpbmcsIGRhdGE6IE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLl9jLnBvc3QoYWV1IGBib3hlcy8ke2JveEtleX0vZmllbGRzLyR7ZGF0YS5rZXl9YCwgZGF0YSk7XG4gIH1cbn1cblxuY2xhc3MgRmlsZXMge1xuICBfczogU3RyZWFrO1xuICBfYzogQ29ubkhlbHBlcjtcbiAgY29uc3RydWN0b3IoczogU3RyZWFrLCBjOiBDb25uSGVscGVyKSB7XG4gICAgdGhpcy5fcyA9IHM7XG4gICAgdGhpcy5fYyA9IGM7XG4gIH1cbiAgZ2V0Rm9yQm94KGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3MuQm94ZXMuZ2V0RmlsZXMoa2V5KTtcbiAgfVxuICBnZXRPbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGBmaWxlcy8ke2tleX1gKTtcbiAgfVxuICBnZXRDb250ZW50cyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jLmdldE5vUGFyc2UoYWV1IGBmaWxlcy8ke2tleX0vY29udGVudHNgKTtcbiAgfVxufVxuXG5jbGFzcyBUaHJlYWRzIHtcbiAgX3M6IFN0cmVhaztcbiAgX2M6IENvbm5IZWxwZXI7XG4gIGNvbnN0cnVjdG9yKHM6IFN0cmVhaywgYzogQ29ubkhlbHBlcikge1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2MgPSBjO1xuICB9XG4gIGdldEZvckJveChib3hLZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9zLkJveGVzLmdldFRocmVhZHMoYm94S2V5KTtcbiAgfVxuICBnZXRPbmUodGhyZWFkS2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYy5nZXQoYWV1IGB0aHJlYWRzLyR7dGhyZWFkS2V5fWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYWsge1xuICBfYzogQ29ubkhlbHBlcjtcbiAgTWU6IE1lO1xuICBQaXBlbGluZXM6IFBpcGVsaW5lcztcbiAgQm94ZXM6IEJveGVzO1xuICBGaWxlczogRmlsZXM7XG4gIFRocmVhZHM6IFRocmVhZHM7XG5cbiAgY29uc3RydWN0b3IoYXV0aEtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYyA9IG5ldyBDb25uSGVscGVyKGF1dGhLZXkpO1xuICAgIHRoaXMuTWUgPSBuZXcgTWUodGhpcywgdGhpcy5fYyk7XG4gICAgdGhpcy5QaXBlbGluZXMgPSBuZXcgUGlwZWxpbmVzKHRoaXMsIHRoaXMuX2MpO1xuICAgIHRoaXMuQm94ZXMgPSBuZXcgQm94ZXModGhpcywgdGhpcy5fYyk7XG4gICAgdGhpcy5GaWxlcyA9IG5ldyBGaWxlcyh0aGlzLCB0aGlzLl9jKTtcbiAgICB0aGlzLlRocmVhZHMgPSBuZXcgVGhyZWFkcyh0aGlzLCB0aGlzLl9jKTtcbiAgfVxuXG4gIHNlYXJjaChxdWVyeTogc3RyaW5nKTogUHJvbWlzZSB7XG4gICAgcmV0dXJuIHRoaXMuX2MuZ2V0KGFldSBgc2VhcmNoP3F1ZXJ5PSR7cXVlcnl9YCk7XG4gIH1cbn1cbiJdfQ==
{
"name": "streakapi",
"version": "1.0.2",
"version": "1.1.0",
"description": "wrapper for the Streak API",

@@ -17,4 +17,6 @@ "keywords": [

"scripts": {
"prepublish": "babel -s inline --optional runtime -d js/ src/",
"test": "babel-node test/prodtest.js"
"prepublish": "babel -s inline -d js/ src/ && flow-copy-source -v src js",
"test": "npm run lint && babel-node test/prodtest.js",
"lint": "eslint .",
"lint-fix": "eslint . --fix"
},

@@ -24,7 +26,15 @@ "main": "js/index.js",

"devDependencies": {
"babel": "^5.8.20"
"babel-cli": "^6.7.5",
"babel-eslint": "^6.0.2",
"babel-plugin-transform-flow-strip-types": "^6.7.0",
"babel-plugin-transform-runtime": "^6.7.5",
"babel-preset-es2015": "^6.6.0",
"babel-preset-stage-1": "^6.5.0",
"babel-register": "^6.7.2",
"eslint": "^2.7.0",
"flow-copy-source": "^1.0.2"
},
"dependencies": {
"babel-runtime": "^5.8.20"
"babel-runtime": "^6.6.1"
}
}

@@ -29,3 +29,3 @@ # NodeJS Wrapper for Streak API

streak.Pipelines.delete(pipelineKey);
streak.Pipelines.update(data);
streak.Pipelines.update(data); // data must have "key" property containing pipeline key
streak.Pipelines.getFeed(pipelineKey, detailLevel);

@@ -53,7 +53,9 @@

streak.Boxes.delete(key);
streak.Boxes.update(data);
streak.Boxes.update(data); // data must have "key" property containing box key
streak.Boxes.getFields(boxKey);
streak.Boxes.getReminders(boxKey);
streak.Boxes.getComments(boxKey);
streak.Boxes.postComment(boxKey, message);
streak.Boxes.getFiles(boxKey);
streak.Boxes.getThreads(boxKey);
streak.Boxes.getFeed(boxKey, detailLevel);

@@ -71,3 +73,13 @@

//threads
streak.Threads.getForBox(boxKey);
streak.Threads.getOne(threadKey);
//search
streak.search(query);
## Types
Basic [Flow Type](http://flowtype.org/) declarations for this module are
included! If you're using Flow, then no extra setup is necessary to take
advantage of them.

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc